# Generate a compliance report

Admin only. A report is a name and the set of checks it runs; a report that asks nothing is refused. reviewWindowDays (90 by default) is how long a sign-off counts for and is read by the seat-review check. A second report under the same name is refused as a conflict.

Access class: `workspace:admin`.

## Endpoint

`POST /v1/workspace/compliance/reports`

## Request body

Content type: `application/json`.

```json
{
  "body": {
    "active": true,
    "checks": [
      "string"
    ],
    "description": "string",
    "name": "string",
    "reviewWindowDays": 1
  },
  "params": {},
  "query": {}
}
```

## Responses

### 201

the action's answer

Content type: `application/json`.

```json
{
  "data": {
    "active": true,
    "checks": [
      "string"
    ],
    "createdAt": "string",
    "createdBy": 1,
    "description": "string",
    "id": "",
    "lastRun": {
      "checksRun": [
        "string"
      ],
      "decisions": [
        "string"
      ],
      "failed": 1,
      "id": "",
      "outcome": "string",
      "passed": 1,
      "ranAt": "string",
      "ranBy": 1,
      "reportId": "",
      "reportName": "string",
      "standing": "string",
      "subjects": 1
    },
    "name": "string",
    "reviewWindowDays": 1,
    "updatedAt": "string"
  }
}
```

### default

a refusal: `{"error": "<what a person needs to read>"}`. 401 no credential, 402 the plan does not include this, 403 the seat does not, 404 the thing does not exist or is not yours to see.

Content type: `application/json`.

```json
{
  "error": "string"
}
```
