priv/docs/indicator.md

# Indicator

## Lists indicators

**GET** `/accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/indicators`

Retrieves a paginated list of indicators for the account.

### Responses

#### 200 Returns a list of indicators.

> Data is at `body["result"]`

```json
{
  "indicators": [
    {
      "createdAt": "*string*",
      "datasetId": "*string*",
      "indicatorType": "*string*",
      "relatedEvents": [
        {
          "datasetId": "*string*",
          "eventId": "*string*"
        }
      ],
      "tags": [
        {
          "categoryName": "*string*",
          "uuid": "*string*",
          "value": "*string*"
        }
      ],
      "updatedAt": "*string*",
      "uuid": "*string*",
      "value": "*string*"
    }
  ],
  "pagination": {
    "page": "*number*",
    "pageSize": "*number*",
    "totalCount": "*number*",
    "totalPages": "*number*"
  }
}
```



## Creates multiple indicators in bulk

**POST** `/accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/indicators/bulk`

Creates multiple indicators at once with their respective types and related datasets.

### Responses

#### 200 Returns the number of created indicators.

> Data is at `body["result"]`

```json
"*number*"
```

#### 400 Bad Request.

```json
{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Creates a new indicator

**POST** `/accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/indicators/create`

Creates a new indicator with the specified type and related datasets.

### Responses

#### 200 Returns the created indicator.

> Data is at `body["result"]`

```json
{
  "createdAt": "*string*",
  "datasetId": "*string*",
  "indicatorType": "*string*",
  "relatedEvents": [
    {
      "datasetId": "*string*",
      "eventId": "*string*"
    }
  ],
  "tags": [
    {
      "categoryName": "*string*",
      "uuid": "*string*",
      "value": "*string*"
    }
  ],
  "updatedAt": "*string*",
  "uuid": "*string*",
  "value": "*string*"
}
```

#### 400 Bad Request.

```json
{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## List mirrored tags for an indicator dataset

**GET** `/accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/indicators/tags`

Returns all mirrored tags from the indicator dataset (DO mirror table). No pagination.

### Responses

#### 200 Returns an array of mirrored tags.

> Data is at `body["result"]`

```json
[
  {}
]
```

#### 400 Bad Request.

```json
{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```

#### 404 Bad Request.

```json
{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```

#### 500 Bad Request.

```json
{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Updates an indicator

**PATCH** `/accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/indicators/{indicator_id}`

Updates an existing indicator's properties.

### Responses

#### 200 Returns the updated indicator.

> Data is at `body["result"]`

```json
{
  "createdAt": "*string*",
  "datasetId": "*string*",
  "indicatorType": "*string*",
  "relatedEvents": [
    {
      "datasetId": "*string*",
      "eventId": "*string*"
    }
  ],
  "tags": [
    {
      "categoryName": "*string*",
      "uuid": "*string*",
      "value": "*string*"
    }
  ],
  "updatedAt": "*string*",
  "uuid": "*string*",
  "value": "*string*"
}
```

#### 400 Bad Request.

```json
{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```

#### 404 Bad Request.

```json
{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Reads an indicator

**GET** `/accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/indicators/{indicator_id}`

Retrieves a specific indicator by its UUID.

### Responses

#### 200 Returns the indicator.

> Data is at `body["result"]`

```json
{
  "createdAt": "*string*",
  "datasetId": "*string*",
  "indicatorType": "*string*",
  "relatedEvents": [
    {
      "datasetId": "*string*",
      "eventId": "*string*"
    }
  ],
  "tags": [
    {
      "categoryName": "*string*",
      "uuid": "*string*",
      "value": "*string*"
    }
  ],
  "updatedAt": "*string*",
  "uuid": "*string*",
  "value": "*string*"
}
```

#### 404 Bad Request.

```json
{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Deletes an indicator

**DELETE** `/accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/indicators/{indicator_id}`

Deletes a specific indicator by its UUID.

### Responses

#### 200 Indicator deleted successfully.

> Data is at `body["result"]`

```json
{
  "message": "*string*",
  "success": "*boolean*"
}
```

#### 404 Bad Request.

```json
{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Lists indicators across multiple datasets

**GET** `/accounts/{account_id}/cloudforce-one/events/indicators`

Retrieves a paginated list of indicators across specified datasets. Use datasetIds=all or datasetIds=* to query all datasets for the account. If no datasetIds provided, uses the default dataset.

### Responses

#### 200 Returns a paginated list of indicators.

> Data is at `body["result"]`

```json
{
  "properties": {
    "indicators": {
      "items": {
        "createdAt": "*string*",
        "datasetId": "*string*",
        "indicatorType": "*string*",
        "relatedEvents": [
          {
            "datasetId": null,
            "eventId": null
          }
        ],
        "tags": [
          {
            "categoryName": null,
            "uuid": null,
            "value": null
          }
        ],
        "updatedAt": "*string*",
        "uuid": "*string*",
        "value": "*string*"
      },
      "type": "*string*"
    },
    "pagination": {
      "properties": {
        "count": {
          "type": "*string*"
        },
        "page": {
          "type": "*string*"
        },
        "per_page": {
          "type": "*string*"
        },
        "total_count": {
          "type": "*string*"
        }
      },
      "type": "*string*"
    }
  },
  "type": "*string*"
}
```

#### 400 Bad Request.

```json
{
  "errors": [
    {
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```