---
title: Add insights to a work item
description: Adds one or more insights to a work item.
breadcrumbs: Docs > API > Add insights to a work item
---

> For the complete documentation index, see [llms.txt](https://dnd37xeb23o8n.cloudfront.net/stefon.simmons/docs-astro-web-10435/llms.txt).

# Add insights to a work item

## v2 (latest)

| Datadog site      | API endpoint                                                      |
| ----------------- | ----------------------------------------------------------------- |
| app.datadoghq.com | PUT https://api.datadoghq.com/api/v2/cases/{case_id}/insights     |
| us3.datadoghq.com | PUT https://api.us3.datadoghq.com/api/v2/cases/{case_id}/insights |
| us5.datadoghq.com | PUT https://api.us5.datadoghq.com/api/v2/cases/{case_id}/insights |
| app.datadoghq.eu  | PUT https://api.datadoghq.eu/api/v2/cases/{case_id}/insights      |
| ap1.datadoghq.com | PUT https://api.ap1.datadoghq.com/api/v2/cases/{case_id}/insights |
| ap2.datadoghq.com | PUT https://api.ap2.datadoghq.com/api/v2/cases/{case_id}/insights |
| uk1.datadoghq.com | PUT https://api.uk1.datadoghq.com/api/v2/cases/{case_id}/insights |
| app.ddog-gov.com  | PUT https://api.ddog-gov.com/api/v2/cases/{case_id}/insights      |
| us2.ddog-gov.com  | PUT https://api.us2.ddog-gov.com/api/v2/cases/{case_id}/insights  |

### Overview

Adds one or more insights to a work item. Insights are references to related Datadog resources (such as monitors, security signals, incidents, or error tracking issues) that provide investigative context. Up to 100 insights can be added per request. Each insight requires a type (see `CaseInsightType` for allowed values), a ref (URL path to the resource), and a resource_id.

OAuth apps require the `cases_write` authorization [scope](https://dnd37xeb23o8n.cloudfront.net/stefon.simmons/docs-astro-web-10435/api/latest/scopes.md#case-management) to access this endpoint.

### Arguments

#### Path Parameters

| Field                | Type   | Description             |
| -------------------- | ------ | ----------------------- |
| case_id [*required*] | string | Work item's UUID or key |

### Request

#### Body Data (required)

Work item insights request.

{% tabs %}
{% tab label="Model" %}
| Parent field | Field                    | Type     | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ------------ | ------------------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|              | data [*required*]        | object   | Data object containing the insights to add or remove.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| data         | attributes [*required*]  | object   | Attributes for adding or removing insights from a work item.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| attributes   | insights [*required*]    | [object] | Array of insights to add to or remove from a work item.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| insights     | ref [*required*]         | string   | The URL path or deep link to the insight resource within Datadog (for example, `/monitors/12345?q=total`).                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| insights     | resource_id [*required*] | string   | The unique identifier of the referenced Datadog resource (for example, a monitor ID, incident ID, or signal ID).                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| insights     | type [*required*]        | enum     | The type of Datadog resource linked to the work item as contextual evidence. Each type corresponds to a different Datadog product signal (for example, a security finding, a monitor alert, or an incident). Allowed enum values: `SECURITY_SIGNAL`, `MONITOR`, `EVENT_CORRELATION`, `ERROR_TRACKING`, `CLOUD_COST_RECOMMENDATION`, `INCIDENT`, `SENSITIVE_DATA_SCANNER_ISSUE`, `EVENT`, `WATCHDOG_STORY`, `WIDGET`, `SECURITY_FINDING`, `INSIGHT_SCORECARD_CAMPAIGN`, `RESOURCE_POLICY`, `APM_RECOMMENDATION`, `SCM_URL`, `PROFILING_DOWNSIZING_EXPERIMENT`. |
| data         | type [*required*]        | enum     | JSON:API resource type for work items. Allowed enum values: `case`. Default: `case`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
{% /tab %}

{% tab label="Example" %}
```json
{
  "data": {
    "attributes": {
      "insights": [
        {
          "ref": "/monitors/12345?q=total",
          "resource_id": "12345",
          "type": "SECURITY_SIGNAL"
        }
      ]
    },
    "type": "case"
  }
}
```
{% /tab %}
{% /tabs %}

### Response

{% tabs %}
{% tab label="200" %}
OK

{% tabs %}
{% tab label="Model" %}
Work item response

| Parent field         | Field                   | Type      | Description                                                                                                                                                                                                       |
| -------------------- | ----------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|                      | data                    | object    | A work item                                                                                                                                                                                                       |
| data                 | attributes [*required*] | object    | Work item resource attributes                                                                                                                                                                                     |
| attributes           | archived_at             | date-time | Timestamp of when the work item was archived Read-only.                                                                                                                                                           |
| attributes           | attributes              | object    | Key-value pairs of work item attributes. Each key maps to an array of string values, used for flexible metadata such as labels or tags.                                                                           |
| additionalProperties | <any-key>               | [string]  |                                                                                                                                                                                                                   |
| attributes           | closed_at               | date-time | Timestamp of when the work item was closed Read-only.                                                                                                                                                             |
| attributes           | created_at              | date-time | Timestamp of when the work item was created Read-only.                                                                                                                                                            |
| attributes           | custom_attributes       | object    | Work item custom attributes                                                                                                                                                                                       |
| additionalProperties | <any-key>               | object    | A typed value for a custom attribute on a specific work item.                                                                                                                                                     |
| <any-key>            | is_multi [*required*]   | boolean   | If true, value must be an array                                                                                                                                                                                   |
| <any-key>            | type [*required*]       | enum      | The data type of the custom attribute, which determines the allowed values and UI input control. Allowed enum values: `URL`, `TEXT`, `NUMBER`, `SELECT`.                                                          |
| <any-key>            | value [*required*]      | <oneOf>   | The value of a custom attribute. The accepted format depends on the attribute's type and whether it accepts multiple values.                                                                                      |
| value                | Object 1                | string    | A string value for a TEXT, URL, or SELECT-type custom attribute.                                                                                                                                                  |
| value                | Object 2                | [string]  | An array of string values for a multi-value TEXT, URL, or SELECT-type custom attribute.                                                                                                                           |
| value                | Object 3                | double    | A numeric value for a NUMBER-type custom attribute.                                                                                                                                                               |
| value                | Object 4                | [number]  | An array of numeric values for a multi-value NUMBER-type custom attribute.                                                                                                                                        |
| attributes           | description             | string    | Description                                                                                                                                                                                                       |
| attributes           | jira_issue              | object    | Jira issue attached to work item Read-only.                                                                                                                                                                       |
| jira_issue           | result                  | object    | Jira issue information                                                                                                                                                                                            |
| result               | issue_id                | string    | Jira issue ID                                                                                                                                                                                                     |
| result               | issue_key               | string    | Jira issue key                                                                                                                                                                                                    |
| result               | issue_url               | string    | Jira issue URL                                                                                                                                                                                                    |
| result               | project_key             | string    | Jira project key                                                                                                                                                                                                  |
| jira_issue           | status                  | enum      | Work item status Read-only. Allowed enum values: `IN_PROGRESS`, `COMPLETED`, `FAILED`. Default: `IN_PROGRESS`.                                                                                                    |
| attributes           | key                     | string    | Key                                                                                                                                                                                                               |
| attributes           | modified_at             | date-time | Timestamp of when the work item was last modified Read-only.                                                                                                                                                      |
| attributes           | priority                | enum      | Work item priority Allowed enum values: `NOT_DEFINED`, `P1`, `P2`, `P3`, `P4`, `P5`. Default: `NOT_DEFINED`.                                                                                                      |
| attributes           | service_now_ticket      | object    | ServiceNow ticket attached to work item Read-only.                                                                                                                                                                |
| service_now_ticket   | result                  | object    | ServiceNow ticket information                                                                                                                                                                                     |
| result               | sys_target_link         | string    | Link to the Incident created on ServiceNow                                                                                                                                                                        |
| service_now_ticket   | status                  | enum      | Work item status Read-only. Allowed enum values: `IN_PROGRESS`, `COMPLETED`, `FAILED`. Default: `IN_PROGRESS`.                                                                                                    |
| attributes           | status                  | enum      | **DEPRECATED**: Deprecated way of representing the work item status, which only supports OPEN, IN_PROGRESS, and CLOSED statuses. Use `status_name` instead. Allowed enum values: `OPEN`, `IN_PROGRESS`, `CLOSED`. |
| attributes           | status_group            | enum      | Status group of the work item. Allowed enum values: `SG_OPEN`, `SG_IN_PROGRESS`, `SG_CLOSED`.                                                                                                                     |
| attributes           | status_name             | string    | Status of the work item. Must be one of the existing statuses for the work item's type.                                                                                                                           |
| attributes           | title                   | string    | Title                                                                                                                                                                                                             |
| attributes           | type                    | enum      | **DEPRECATED**: Work item type Allowed enum values: `STANDARD`.                                                                                                                                                   |
| attributes           | type_id                 | string    | Work item type UUID                                                                                                                                                                                               |
| data                 | id [*required*]         | string    | Work item's identifier                                                                                                                                                                                            |
| data                 | relationships           | object    | Resources related to a work item                                                                                                                                                                                  |
| relationships        | assignee                | object    | Relationship to user.                                                                                                                                                                                             |
| assignee             | data [*required*]       | object    | Relationship to user object.                                                                                                                                                                                      |
| data                 | id [*required*]         | string    | A unique identifier that represents the user.                                                                                                                                                                     |
| data                 | type [*required*]       | enum      | User resource type. Allowed enum values: `user`. Default: `user`.                                                                                                                                                 |
| relationships        | created_by              | object    | Relationship to user.                                                                                                                                                                                             |
| created_by           | data [*required*]       | object    | Relationship to user object.                                                                                                                                                                                      |
| data                 | id [*required*]         | string    | A unique identifier that represents the user.                                                                                                                                                                     |
| data                 | type [*required*]       | enum      | User resource type. Allowed enum values: `user`. Default: `user`.                                                                                                                                                 |
| relationships        | modified_by             | object    | Relationship to user.                                                                                                                                                                                             |
| modified_by          | data [*required*]       | object    | Relationship to user object.                                                                                                                                                                                      |
| data                 | id [*required*]         | string    | A unique identifier that represents the user.                                                                                                                                                                     |
| data                 | type [*required*]       | enum      | User resource type. Allowed enum values: `user`. Default: `user`.                                                                                                                                                 |
| relationships        | project                 | object    | Relationship to project.                                                                                                                                                                                          |
| project              | data [*required*]       | object    | Relationship to project object.                                                                                                                                                                                   |
| data                 | id [*required*]         | string    | A unique identifier that represents the project.                                                                                                                                                                  |
| data                 | type [*required*]       | enum      | Project resource type. Allowed enum values: `project`. Default: `project`.                                                                                                                                        |
| data                 | type [*required*]       | enum      | JSON:API resource type for work items. Allowed enum values: `case`. Default: `case`.                                                                                                                              |
{% /tab %}

{% tab label="Example" %}
```json
{
  "data": {
    "attributes": {
      "archived_at": "2019-09-19T10:00:00.000Z",
      "attributes": {
        "<any-key>": []
      },
      "closed_at": "2019-09-19T10:00:00.000Z",
      "created_at": "2019-09-19T10:00:00.000Z",
      "custom_attributes": {
        "<any-key>": {
          "is_multi": false,
          "type": "NUMBER",
          "value": {
            "description": "",
            "type": ""
          }
        }
      },
      "description": "string",
      "jira_issue": {
        "result": {
          "issue_id": "string",
          "issue_key": "string",
          "issue_url": "string",
          "project_key": "string"
        },
        "status": "COMPLETED"
      },
      "key": "CASEM-4523",
      "modified_at": "2019-09-19T10:00:00.000Z",
      "priority": "NOT_DEFINED",
      "service_now_ticket": {
        "result": {
          "sys_target_link": "string"
        },
        "status": "COMPLETED"
      },
      "status": "OPEN",
      "status_group": "SG_OPEN",
      "status_name": "Open",
      "title": "Memory leak investigation on API",
      "type": "STANDARD",
      "type_id": "3b010bde-09ce-4449-b745-71dd5f861963"
    },
    "id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
    "relationships": {
      "assignee": {
        "data": {
          "id": "00000000-0000-0000-0000-000000000000",
          "type": "user"
        }
      },
      "created_by": {
        "data": {
          "id": "00000000-0000-0000-0000-000000000000",
          "type": "user"
        }
      },
      "modified_by": {
        "data": {
          "id": "00000000-0000-0000-0000-000000000000",
          "type": "user"
        }
      },
      "project": {
        "data": {
          "id": "e555e290-ed65-49bd-ae18-8acbfcf18db7",
          "type": "project"
        }
      }
    },
    "type": "case"
  }
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="400" %}
Bad Request

{% tabs %}
{% tab label="Model" %}
API error response.

| Parent field | Field               | Type     | Description                                                                     |
| ------------ | ------------------- | -------- | ------------------------------------------------------------------------------- |
|              | errors [*required*] | [object] | A list of errors.                                                               |
| errors       | detail              | string   | A human-readable explanation specific to this occurrence of the error.          |
| errors       | meta                | object   | Non-standard meta-information about the error                                   |
| errors       | source              | object   | References to the source of the error.                                          |
| source       | header              | string   | A string indicating the name of a single request header which caused the error. |
| source       | parameter           | string   | A string indicating which URI query parameter caused the error.                 |
| source       | pointer             | string   | A JSON pointer to the value in the request document that caused the error.      |
| errors       | status              | string   | Status code of the response.                                                    |
| errors       | title               | string   | Short human-readable summary of the error.                                      |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="401" %}
Unauthorized

{% tabs %}
{% tab label="Model" %}
API error response.

| Parent field | Field               | Type     | Description                                                                     |
| ------------ | ------------------- | -------- | ------------------------------------------------------------------------------- |
|              | errors [*required*] | [object] | A list of errors.                                                               |
| errors       | detail              | string   | A human-readable explanation specific to this occurrence of the error.          |
| errors       | meta                | object   | Non-standard meta-information about the error                                   |
| errors       | source              | object   | References to the source of the error.                                          |
| source       | header              | string   | A string indicating the name of a single request header which caused the error. |
| source       | parameter           | string   | A string indicating which URI query parameter caused the error.                 |
| source       | pointer             | string   | A JSON pointer to the value in the request document that caused the error.      |
| errors       | status              | string   | Status code of the response.                                                    |
| errors       | title               | string   | Short human-readable summary of the error.                                      |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="403" %}
Forbidden

{% tabs %}
{% tab label="Model" %}
API error response.

| Parent field | Field               | Type     | Description                                                                     |
| ------------ | ------------------- | -------- | ------------------------------------------------------------------------------- |
|              | errors [*required*] | [object] | A list of errors.                                                               |
| errors       | detail              | string   | A human-readable explanation specific to this occurrence of the error.          |
| errors       | meta                | object   | Non-standard meta-information about the error                                   |
| errors       | source              | object   | References to the source of the error.                                          |
| source       | header              | string   | A string indicating the name of a single request header which caused the error. |
| source       | parameter           | string   | A string indicating which URI query parameter caused the error.                 |
| source       | pointer             | string   | A JSON pointer to the value in the request document that caused the error.      |
| errors       | status              | string   | Status code of the response.                                                    |
| errors       | title               | string   | Short human-readable summary of the error.                                      |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="404" %}
Not Found

{% tabs %}
{% tab label="Model" %}
API error response.

| Parent field | Field               | Type     | Description                                                                     |
| ------------ | ------------------- | -------- | ------------------------------------------------------------------------------- |
|              | errors [*required*] | [object] | A list of errors.                                                               |
| errors       | detail              | string   | A human-readable explanation specific to this occurrence of the error.          |
| errors       | meta                | object   | Non-standard meta-information about the error                                   |
| errors       | source              | object   | References to the source of the error.                                          |
| source       | header              | string   | A string indicating the name of a single request header which caused the error. |
| source       | parameter           | string   | A string indicating which URI query parameter caused the error.                 |
| source       | pointer             | string   | A JSON pointer to the value in the request document that caused the error.      |
| errors       | status              | string   | Status code of the response.                                                    |
| errors       | title               | string   | Short human-readable summary of the error.                                      |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="429" %}
Too many requests

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}
{% /tabs %}

### Code Example

{% tabs %}
{% tab label="Curl" %}
```bash
# Path parameters
export case_id="f98a5a5b-e0ff-45d4-b2f5-afe6e74de504"

# Set your Datadog site and credentials
export DD_SITE="datadoghq.com" # Or us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ap1.datadoghq.com, ap2.datadoghq.com, uk1.datadoghq.com, ddog-gov.com, us2.ddog-gov.com
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

curl -X PUT "https://api.${DD_SITE}/api/v2/cases/${case_id}/insights" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
  "data": {
    "attributes": {
      "insights": [
        {
          "ref": "/monitors/12345?q=total",
          "resource_id": "12345",
          "type": "SECURITY_SIGNAL"
        }
      ]
    },
    "type": "case"
  }
}
EOF
```
{% /tab %}

{% tab label="Go" %}
```go
// Add insights to a case returns "OK" response

package main

import (
	"context"
	"encoding/json"
	"fmt"
	"os"

	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)

func main() {
	body := datadogV2.CaseInsightsRequest{
		Data: datadogV2.CaseInsightsData{
			Attributes: datadogV2.CaseInsightsAttributes{
				Insights: []datadogV2.CaseInsight{
					{
						Ref:        "/monitors/12345?q=total",
						ResourceId: "12345",
						Type:       datadogV2.CASEINSIGHTTYPE_SECURITY_SIGNAL,
					},
				},
			},
			Type: datadogV2.CASERESOURCETYPE_CASE,
		},
	}
	ctx := datadog.NewDefaultContext(context.Background())
	ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewCaseManagementApi(apiClient)
	resp, r, err := api.AddCaseInsights(ctx, "case_id", body)

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `CaseManagementApi.AddCaseInsights`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `CaseManagementApi.AddCaseInsights`:\n%s\n", responseContent)
}
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=go) and then save the example to `main.go` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"
```
{% /tab %}

{% tab label="Java" %}
```java
// Add insights to a case returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.CaseManagementApi;
import com.datadog.api.client.v2.model.CaseInsight;
import com.datadog.api.client.v2.model.CaseInsightType;
import com.datadog.api.client.v2.model.CaseInsightsAttributes;
import com.datadog.api.client.v2.model.CaseInsightsData;
import com.datadog.api.client.v2.model.CaseInsightsRequest;
import com.datadog.api.client.v2.model.CaseResourceType;
import com.datadog.api.client.v2.model.CaseResponse;
import java.util.Collections;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
    CaseManagementApi apiInstance = new CaseManagementApi(defaultClient);

    CaseInsightsRequest body =
        new CaseInsightsRequest()
            .data(
                new CaseInsightsData()
                    .attributes(
                        new CaseInsightsAttributes()
                            .insights(
                                Collections.singletonList(
                                    new CaseInsight()
                                        .ref("/monitors/12345?q=total")
                                        .resourceId("12345")
                                        .type(CaseInsightType.SECURITY_SIGNAL))))
                    .type(CaseResourceType.CASE));

    try {
      CaseResponse result =
          apiInstance.addCaseInsights("f98a5a5b-e0ff-45d4-b2f5-afe6e74de504", body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling CaseManagementApi#addCaseInsights");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=java) and then save the example to `Example.java` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"
```
{% /tab %}

{% tab label="Python" %}
```python
"""
Add insights to a case returns "OK" response
"""

from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.case_management_api import CaseManagementApi
from datadog_api_client.v2.model.case_insight import CaseInsight
from datadog_api_client.v2.model.case_insight_type import CaseInsightType
from datadog_api_client.v2.model.case_insights_attributes import CaseInsightsAttributes
from datadog_api_client.v2.model.case_insights_data import CaseInsightsData
from datadog_api_client.v2.model.case_insights_request import CaseInsightsRequest
from datadog_api_client.v2.model.case_resource_type import CaseResourceType

body = CaseInsightsRequest(
    data=CaseInsightsData(
        attributes=CaseInsightsAttributes(
            insights=[
                CaseInsight(
                    ref="/monitors/12345?q=total",
                    resource_id="12345",
                    type=CaseInsightType.SECURITY_SIGNAL,
                ),
            ],
        ),
        type=CaseResourceType.CASE,
    ),
)

configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
    api_instance = CaseManagementApi(api_client)
    response = api_instance.add_case_insights(case_id="case_id", body=body)

    print(response)
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=python) and then save the example to `example.py` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"
```
{% /tab %}

{% tab label="Ruby" %}
```ruby
# Add insights to a case returns "OK" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.access_token = ENV["DD_BEARER_TOKEN"]
end
api_instance = DatadogAPIClient::V2::CaseManagementAPI.new

body = DatadogAPIClient::V2::CaseInsightsRequest.new({
  data: DatadogAPIClient::V2::CaseInsightsData.new({
    attributes: DatadogAPIClient::V2::CaseInsightsAttributes.new({
      insights: [
        DatadogAPIClient::V2::CaseInsight.new({
          ref: "/monitors/12345?q=total",
          resource_id: "12345",
          type: DatadogAPIClient::V2::CaseInsightType::SECURITY_SIGNAL,
        }),
      ],
    }),
    type: DatadogAPIClient::V2::CaseResourceType::CASE,
  }),
})
p api_instance.add_case_insights("case_id", body)
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=ruby) and then save the example to `example.rb` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"
```
{% /tab %}

{% tab label="Rust" %}
```rust
// Add insights to a case returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_case_management::CaseManagementAPI;
use datadog_api_client::datadogV2::model::CaseInsight;
use datadog_api_client::datadogV2::model::CaseInsightType;
use datadog_api_client::datadogV2::model::CaseInsightsAttributes;
use datadog_api_client::datadogV2::model::CaseInsightsData;
use datadog_api_client::datadogV2::model::CaseInsightsRequest;
use datadog_api_client::datadogV2::model::CaseResourceType;

#[tokio::main]
async fn main() {
    let body = CaseInsightsRequest::new(CaseInsightsData::new(
        CaseInsightsAttributes::new(vec![CaseInsight::new(
            "/monitors/12345?q=total".to_string(),
            "12345".to_string(),
            CaseInsightType::SECURITY_SIGNAL,
        )]),
        CaseResourceType::CASE,
    ));
    let configuration = datadog::Configuration::new();
    let api = CaseManagementAPI::with_config(configuration);
    let resp = api.add_case_insights("case_id".to_string(), body).await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=rust) and then save the example to `src/main.rs` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
```
{% /tab %}

{% tab label="TypeScript" %}
```typescript
/**
 * Add insights to a case returns "OK" response
 */

import { client, v2 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration({
  authMethods: {
    AuthZ: {
      accessToken: process.env.DD_BEARER_TOKEN as string,
    },
  },
});
const apiInstance = new v2.CaseManagementApi(configuration);

const params: v2.CaseManagementApiAddCaseInsightsRequest = {
  body: {
    data: {
      attributes: {
        insights: [
          {
            ref: "/monitors/12345?q=total",
            resourceId: "12345",
            type: "SECURITY_SIGNAL",
          },
        ],
      },
      type: "case",
    },
  },
  caseId: "case_id",
};

apiInstance
  .addCaseInsights(params)
  .then((data: v2.CaseResponse) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data)
    );
  })
  .catch((error: any) => console.error(error));
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=typescript) and then save the example to `example.ts` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"
```
{% /tab %}
{% /tabs %}
