diff --git a/.generated-info b/.generated-info index 68b9d37040..2f4903611b 100644 --- a/.generated-info +++ b/.generated-info @@ -1,4 +1,4 @@ { - "spec_repo_commit": "c3b2b7d", - "generated": "2025-08-25 10:18:13.118" + "spec_repo_commit": "397f8fc", + "generated": "2025-08-25 12:54:30.446" } diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 123b5ff156..553b70ed34 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -200,6 +200,22 @@ components: required: true schema: type: string + CaseCustomAttributeIDPathParameter: + description: Case Custom attribute's UUID + example: f98a5a5b-e0ff-45d4-b2f5-afe6e74de505 + in: path + name: custom_attribute_id + required: true + schema: + type: string + CaseCustomAttributeKeyPathParameter: + description: Case Custom attribute's key + example: aws_region + in: path + name: custom_attribute_key + required: true + schema: + type: string CaseIDPathParameter: description: Case's UUID or key example: f98a5a5b-e0ff-45d4-b2f5-afe6e74de504 @@ -215,6 +231,22 @@ components: required: false schema: $ref: '#/components/schemas/CaseSortableField' + CaseTypeIDPathParameter: + description: Case type's UUID + example: f98a5a5b-e0ff-45d4-b2f5-afe6e74de505 + in: path + name: case_type_id + required: true + schema: + type: string + CellIDPathParameter: + description: Timeline cell's UUID + example: f98a5a5b-e0ff-45d4-b2f5-afe6e74de504 + in: path + name: cell_id + required: true + schema: + type: string CloudAccountID: description: Cloud Account id. in: path @@ -7246,6 +7278,11 @@ components: format: date-time readOnly: true type: string + custom_attributes: + additionalProperties: + $ref: '#/components/schemas/CustomAttributeValue' + description: Case custom attributes + type: object description: description: Description type: string @@ -7273,6 +7310,39 @@ components: type: string type: $ref: '#/components/schemas/CaseType' + type_id: + description: Case type UUID + example: 3b010bde-09ce-4449-b745-71dd5f861963 + type: string + type: object + CaseComment: + description: Case comment + properties: + attributes: + $ref: '#/components/schemas/CaseCommentAttributes' + type: + $ref: '#/components/schemas/CaseResourceType' + required: + - attributes + - type + type: object + CaseCommentAttributes: + description: Case comment attributes + properties: + comment: + description: The `CaseCommentAttributes` `message`. + example: This is my comment ! + type: string + required: + - comment + type: object + CaseCommentRequest: + description: Case comment request + properties: + data: + $ref: '#/components/schemas/CaseComment' + required: + - data type: object CaseCreate: description: Case creation data @@ -7299,11 +7369,13 @@ components: description: Title example: Security breach investigation type: string - type: - $ref: '#/components/schemas/CaseType' + type_id: + description: Case type UUID + example: 3b010bde-09ce-4449-b745-71dd5f861963 + type: string required: - title - - type + - type_id type: object CaseCreateRelationships: description: Relationships formed with the case on creation @@ -7434,13 +7506,96 @@ components: - caseTrigger type: object CaseType: + deprecated: true description: Case type enum: - STANDARD + - TUNKNOWN example: STANDARD type: string x-enum-varnames: - STANDARD + - TUNKNOWN + CaseTypeCreate: + description: Case type + properties: + attributes: + $ref: '#/components/schemas/CaseTypeResourceAttributes' + type: + $ref: '#/components/schemas/CaseTypeResourceType' + required: + - attributes + - type + type: object + CaseTypeCreateRequest: + description: Case type create request + properties: + data: + $ref: '#/components/schemas/CaseTypeCreate' + required: + - data + type: object + CaseTypeResource: + description: The definition of `CaseType` object. + properties: + attributes: + $ref: '#/components/schemas/CaseTypeResourceAttributes' + id: + description: Case type's identifier + example: aeadc05e-98a8-11ec-ac2c-da7ad0900001 + type: string + type: + $ref: '#/components/schemas/CaseTypeResourceType' + type: object + CaseTypeResourceAttributes: + description: Case Type resource attributes + properties: + deleted_at: + description: Timestamp of when the case type was deleted + format: date-time + nullable: true + readOnly: true + type: string + description: + description: Case type description. + example: Investigations done in case management + type: string + emoji: + description: Case type emoji. + example: "\U0001F575\U0001F3FB\u200D\u2642\uFE0F" + type: string + name: + description: Case type name. + example: Investigation + type: string + required: + - name + - emoji + type: object + CaseTypeResourceType: + default: case_type + description: Case type resource type + enum: + - case_type + example: case_type + type: string + x-enum-varnames: + - CASE_TYPE + CaseTypeResponse: + description: Case type response + properties: + data: + $ref: '#/components/schemas/CaseTypeResource' + type: object + CaseTypesResponse: + description: Case types response. + properties: + data: + description: List of case types + items: + $ref: '#/components/schemas/CaseTypeResource' + type: array + type: object CaseUpdateAttributes: description: Case update attributes properties: @@ -7468,6 +7623,54 @@ components: required: - data type: object + CaseUpdateCustomAttribute: + description: Case update custom attribute + properties: + attributes: + $ref: '#/components/schemas/CustomAttributeValue' + type: + $ref: '#/components/schemas/CaseResourceType' + required: + - attributes + - type + type: object + CaseUpdateCustomAttributeRequest: + description: Case update custom attribute request + properties: + data: + $ref: '#/components/schemas/CaseUpdateCustomAttribute' + required: + - data + type: object + CaseUpdateDescription: + description: Case update description + properties: + attributes: + $ref: '#/components/schemas/CaseUpdateDescriptionAttributes' + type: + $ref: '#/components/schemas/CaseResourceType' + required: + - attributes + - type + type: object + CaseUpdateDescriptionAttributes: + description: Case update description attributes + properties: + description: + description: Case new description + example: Seeing some weird memory increase... We shouldn't ignore this + type: string + required: + - description + type: object + CaseUpdateDescriptionRequest: + description: Case update description request + properties: + data: + $ref: '#/components/schemas/CaseUpdateDescription' + required: + - data + type: object CaseUpdatePriority: description: Case priority status properties: @@ -7522,6 +7725,35 @@ components: required: - data type: object + CaseUpdateTitle: + description: Case update title + properties: + attributes: + $ref: '#/components/schemas/CaseUpdateTitleAttributes' + type: + $ref: '#/components/schemas/CaseResourceType' + required: + - attributes + - type + type: object + CaseUpdateTitleAttributes: + description: Case update title attributes + properties: + title: + description: Case new title + example: Memory leak investigation on API + type: string + required: + - title + type: object + CaseUpdateTitleRequest: + description: Case update title request + properties: + data: + $ref: '#/components/schemas/CaseUpdateTitle' + required: + - data + type: object CasesResponse: description: Response with cases properties: @@ -11227,6 +11459,177 @@ components: data: $ref: '#/components/schemas/CsmServerlessCoverageAnalysisData' type: object + CustomAttributeConfig: + description: The definition of `CustomAttributeConfig` object. + properties: + attributes: + $ref: '#/components/schemas/CustomAttributeConfigResourceAttributes' + id: + description: Custom attribute configs identifier + example: aeadc05e-98a8-11ec-ac2c-da7ad0900001 + type: string + type: + $ref: '#/components/schemas/CustomAttributeConfigResourceType' + type: object + CustomAttributeConfigAttributesCreate: + description: Custom attribute config resource attributes + properties: + description: + description: Custom attribute description. + example: AWS Region, must be a valid region supported by AWS + type: string + display_name: + description: Custom attribute name. + example: AWS Region + type: string + is_multi: + description: Whether multiple values can be set + example: true + type: boolean + key: + description: Custom attribute key. This will be the value use to search + on this custom attribute + example: aws_region + type: string + type: + $ref: '#/components/schemas/CustomAttributeType' + required: + - display_name + - key + - type + - is_multi + type: object + CustomAttributeConfigCreate: + description: Custom attribute config + properties: + attributes: + $ref: '#/components/schemas/CustomAttributeConfigAttributesCreate' + type: + $ref: '#/components/schemas/CustomAttributeConfigResourceType' + required: + - attributes + - type + type: object + CustomAttributeConfigCreateRequest: + description: Custom attribute config create request + properties: + data: + $ref: '#/components/schemas/CustomAttributeConfigCreate' + required: + - data + type: object + CustomAttributeConfigResourceAttributes: + description: Custom attribute resource attributes + properties: + case_type_id: + description: Custom attribute config identifier. + example: aeadc05e-98a8-11ec-ac2c-da7ad0900001 + type: string + description: + description: Custom attribute description. + example: AWS Region, must be a valid region supported by AWS + type: string + display_name: + description: Custom attribute name. + example: AWS Region + type: string + is_multi: + description: Whether multiple values can be set + example: true + type: boolean + key: + description: Custom attribute key. This will be the value use to search + on this custom attribute + example: aws_region + type: string + type: + $ref: '#/components/schemas/CustomAttributeType' + required: + - case_type_id + - display_name + - key + - type + - is_multi + type: object + CustomAttributeConfigResourceType: + default: custom_attribute + description: Custom attributes config JSON:API resource type + enum: + - custom_attribute + example: custom_attribute + type: string + x-enum-varnames: + - CUSTOM_ATTRIBUTE + CustomAttributeConfigResponse: + description: Custom attribute config response. + properties: + data: + $ref: '#/components/schemas/CustomAttributeConfig' + type: object + CustomAttributeConfigsResponse: + description: Custom attribute configs response. + properties: + data: + description: List of custom attribute configs of case type + items: + $ref: '#/components/schemas/CustomAttributeConfig' + type: array + type: object + CustomAttributeMultiNumberValue: + description: Values of multi NUMBER custom attribute + items: + description: NUMBER value + format: double + type: number + type: array + CustomAttributeMultiStringValue: + description: Value of multi TEXT/URL custom attribute + items: + description: TEXT/URL Value + type: string + type: array + CustomAttributeNumberValue: + description: Value of NUMBER custom attribute + format: double + type: number + CustomAttributeStringValue: + description: Value of TEXT/URL custom attribute + type: string + CustomAttributeType: + description: Custom attributes type + enum: + - URL + - TEXT + - NUMBER + example: NUMBER + type: string + x-enum-varnames: + - URL + - TEXT + - NUMBER + CustomAttributeValue: + description: Custom attribute values + properties: + is_multi: + description: If true, value must be an array + example: false + type: boolean + type: + $ref: '#/components/schemas/CustomAttributeType' + value: + $ref: '#/components/schemas/CustomAttributeValuesUnion' + required: + - type + - is_multi + - value + type: object + CustomAttributeValuesUnion: + description: Union of supported value for a custom attribute + oneOf: + - $ref: '#/components/schemas/CustomAttributeStringValue' + - $ref: '#/components/schemas/CustomAttributeMultiStringValue' + - $ref: '#/components/schemas/CustomAttributeNumberValue' + - $ref: '#/components/schemas/CustomAttributeMultiNumberValue' CustomConnection: description: A custom connection used by an app. properties: @@ -43332,6 +43735,120 @@ components: - time_zone - restrictions type: object + TimelineCell: + description: timeline cell + properties: + author: + $ref: '#/components/schemas/TimelineCellAuthor' + cell_content: + $ref: '#/components/schemas/TimelineCellContent' + created_at: + description: Timestamp of when the cell was created + format: date-time + readOnly: true + type: string + deleted_at: + description: Timestamp of when the cell was deleted + format: date-time + readOnly: true + type: string + modified_at: + description: Timestamp of when the cell was last modified + format: date-time + readOnly: true + type: string + type: + $ref: '#/components/schemas/TimelineCellType' + type: object + TimelineCellAuthor: + description: author of the timeline cell + oneOf: + - $ref: '#/components/schemas/TimelineCellAuthorUser' + TimelineCellAuthorUser: + description: timeline cell user author + properties: + content: + $ref: '#/components/schemas/TimelineCellAuthorUserContent' + type: + $ref: '#/components/schemas/TimelineCellAuthorUserType' + type: object + TimelineCellAuthorUserContent: + description: user author content. + properties: + email: + description: user email + type: string + handle: + description: user handle + type: string + id: + description: user UUID + type: string + name: + description: user name + type: string + type: object + TimelineCellAuthorUserType: + description: user author type. + enum: + - USER + example: USER + type: string + x-enum-varnames: + - USER + TimelineCellContent: + description: timeline cell content + oneOf: + - $ref: '#/components/schemas/TimelineCellContentComment' + TimelineCellContentComment: + description: comment content + properties: + message: + description: comment message + type: string + type: object + TimelineCellResource: + description: Timeline cell JSON:API resource + properties: + attributes: + $ref: '#/components/schemas/TimelineCell' + id: + description: Timeline cell's identifier + example: aeadc05e-98a8-11ec-ac2c-da7ad0900001 + type: string + type: + $ref: '#/components/schemas/TimelineCellResourceType' + required: + - id + - type + - attributes + type: object + TimelineCellResourceType: + default: timeline_cell + description: Timeline cell JSON:API resource type + enum: + - timeline_cell + example: timeline_cell + type: string + x-enum-varnames: + - TIMELINE_CELL + TimelineCellType: + description: Timeline cell content type + enum: + - COMMENT + example: COMMENT + type: string + x-enum-varnames: + - COMMENT + TimelineResponse: + description: Timeline response + properties: + data: + description: The `TimelineResponse` `data`. + items: + $ref: '#/components/schemas/TimelineCellResource' + type: array + type: object TimeseriesFormulaQueryRequest: description: A request wrapper around a single timeseries query to be executed. properties: @@ -48219,6 +48736,169 @@ paths: summary: Get the details of a project tags: - Case Management + /api/v2/cases/types: + get: + description: Get all case types + operationId: GetAllCaseTypes + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CaseTypesResponse' + description: OK + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Get all case types + tags: + - Case Management Type + post: + description: Create a Case Type + operationId: CreateCaseType + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CaseTypeCreateRequest' + description: Case type payload + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/CaseTypeResponse' + description: CREATED + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Create a case type + tags: + - Case Management Type + /api/v2/cases/types/custom_attributes: + get: + description: Get all custom attributes + operationId: GetAllCustomAttributes + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomAttributeConfigsResponse' + description: OK + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Get all custom attributes + tags: + - Case Management Attribute + /api/v2/cases/types/{case_type_id}: + delete: + description: Delete a case type + operationId: DeleteCaseType + parameters: + - $ref: '#/components/parameters/CaseTypeIDPathParameter' + responses: + '204': + description: No Content + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Delete a case type + tags: + - Case Management Type + /api/v2/cases/types/{case_type_id}/custom_attributes: + get: + description: Get all custom attribute config of case type + operationId: GetAllCustomAttributeConfigsByCaseType + parameters: + - $ref: '#/components/parameters/CaseTypeIDPathParameter' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomAttributeConfigsResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Get all custom attributes config of case type + tags: + - Case Management Attribute + post: + description: Create custom attribute config for a case type + operationId: CreateCustomAttributeConfig + parameters: + - $ref: '#/components/parameters/CaseTypeIDPathParameter' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CustomAttributeConfigCreateRequest' + description: Custom attribute config payload + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomAttributeConfigResponse' + description: CREATED + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Create custom attribute config for a case type + tags: + - Case Management Attribute + /api/v2/cases/types/{case_type_id}/custom_attributes/{custom_attribute_id}: + delete: + description: Delete custom attribute config + operationId: DeleteCustomAttributeConfig + parameters: + - $ref: '#/components/parameters/CaseTypeIDPathParameter' + - $ref: '#/components/parameters/CaseCustomAttributeIDPathParameter' + responses: + '204': + description: No Content + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Delete custom attributes config + tags: + - Case Management Attribute /api/v2/cases/{case_id}: get: description: Get the details of case by `case_id` @@ -48364,6 +49044,168 @@ paths: summary: Update case attributes tags: - Case Management + /api/v2/cases/{case_id}/comment: + post: + description: Comment case + operationId: CommentCase + parameters: + - $ref: '#/components/parameters/CaseIDPathParameter' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CaseCommentRequest' + description: Case comment payload + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TimelineResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Comment case + tags: + - Case Management + /api/v2/cases/{case_id}/comment/{cell_id}: + delete: + description: Delete case comment + operationId: DeleteCaseComment + parameters: + - $ref: '#/components/parameters/CaseIDPathParameter' + - $ref: '#/components/parameters/CellIDPathParameter' + responses: + '204': + description: No Content + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Delete case comment + tags: + - Case Management + /api/v2/cases/{case_id}/custom_attributes/{custom_attribute_key}: + delete: + description: Delete custom attribute from case + operationId: DeleteCaseCustomAttribute + parameters: + - $ref: '#/components/parameters/CaseIDPathParameter' + - $ref: '#/components/parameters/CaseCustomAttributeKeyPathParameter' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CaseResponse' + description: OK + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Delete custom attribute from case + tags: + - Case Management + post: + description: Update case custom attribute + operationId: UpdateCaseCustomAttribute + parameters: + - $ref: '#/components/parameters/CaseIDPathParameter' + - $ref: '#/components/parameters/CaseCustomAttributeKeyPathParameter' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CaseUpdateCustomAttributeRequest' + description: Update case custom attribute payload + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CaseResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Update case custom attribute + tags: + - Case Management + /api/v2/cases/{case_id}/description: + post: + description: Update case description + operationId: UpdateCaseDescription + parameters: + - $ref: '#/components/parameters/CaseIDPathParameter' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CaseUpdateDescriptionRequest' + description: Case description update payload + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CaseResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Update case description + tags: + - Case Management /api/v2/cases/{case_id}/priority: post: description: Update case priority @@ -48440,6 +49282,44 @@ paths: summary: Update case status tags: - Case Management + /api/v2/cases/{case_id}/title: + post: + description: Update case title + operationId: UpdateCaseTitle + parameters: + - $ref: '#/components/parameters/CaseIDPathParameter' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CaseUpdateTitleRequest' + description: Case title update payload + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CaseResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cases_write + summary: Update case title + tags: + - Case Management /api/v2/cases/{case_id}/unarchive: post: description: Unarchive case @@ -68952,6 +69832,14 @@ tags: [Case Management page](https://docs.datadoghq.com/service_management/case_management/) for more information. name: Case Management +- description: View and configure custom attributes within Case Management. See the + [Case Management page](https://docs.datadoghq.com/service_management/case_management/) + for more information. + name: Case Management Attribute +- description: View and configure case types within Case Management. See the [Case + Management page](https://docs.datadoghq.com/service_management/case_management/) + for more information. + name: Case Management Type - description: The Cloud Cost Management API allows you to set up, edit, and delete Cloud Cost Management accounts for AWS, Azure, and GCP. You can query your cost data by using the [Metrics endpoint](https://docs.datadoghq.com/api/latest/metrics/#query-timeseries-data-across-multiple-products) diff --git a/docs/datadog_api_client.v2.api.rst b/docs/datadog_api_client.v2.api.rst index 503ed65d6b..baa5802f9f 100644 --- a/docs/datadog_api_client.v2.api.rst +++ b/docs/datadog_api_client.v2.api.rst @@ -81,6 +81,20 @@ datadog\_api\_client.v2.api.case\_management\_api module :members: :show-inheritance: +datadog\_api\_client.v2.api.case\_management\_attribute\_api module +------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.api.case_management_attribute_api + :members: + :show-inheritance: + +datadog\_api\_client.v2.api.case\_management\_type\_api module +-------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.api.case_management_type_api + :members: + :show-inheritance: + datadog\_api\_client.v2.api.ci\_visibility\_pipelines\_api module ----------------------------------------------------------------- diff --git a/docs/datadog_api_client.v2.model.rst b/docs/datadog_api_client.v2.model.rst index 2f8c1b79c8..3129d6259b 100644 --- a/docs/datadog_api_client.v2.model.rst +++ b/docs/datadog_api_client.v2.model.rst @@ -2258,6 +2258,27 @@ datadog\_api\_client.v2.model.case\_attributes module :members: :show-inheritance: +datadog\_api\_client.v2.model.case\_comment module +-------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.case_comment + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.case\_comment\_attributes module +-------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.case_comment_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.case\_comment\_request module +----------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.case_comment_request + :members: + :show-inheritance: + datadog\_api\_client.v2.model.case\_create module ------------------------------------------------- @@ -2370,6 +2391,55 @@ datadog\_api\_client.v2.model.case\_type module :members: :show-inheritance: +datadog\_api\_client.v2.model.case\_type\_create module +------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.case_type_create + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.case\_type\_create\_request module +---------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.case_type_create_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.case\_type\_resource module +--------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.case_type_resource + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.case\_type\_resource\_attributes module +--------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.case_type_resource_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.case\_type\_resource\_type module +--------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.case_type_resource_type + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.case\_type\_response module +--------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.case_type_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.case\_types\_response module +---------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.case_types_response + :members: + :show-inheritance: + datadog\_api\_client.v2.model.case\_update\_attributes module ------------------------------------------------------------- @@ -2391,6 +2461,41 @@ datadog\_api\_client.v2.model.case\_update\_attributes\_request module :members: :show-inheritance: +datadog\_api\_client.v2.model.case\_update\_custom\_attribute module +-------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.case_update_custom_attribute + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.case\_update\_custom\_attribute\_request module +----------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.case_update_custom_attribute_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.case\_update\_description module +-------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.case_update_description + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.case\_update\_description\_attributes module +-------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.case_update_description_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.case\_update\_description\_request module +----------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.case_update_description_request + :members: + :show-inheritance: + datadog\_api\_client.v2.model.case\_update\_priority module ----------------------------------------------------------- @@ -2433,6 +2538,27 @@ datadog\_api\_client.v2.model.case\_update\_status\_request module :members: :show-inheritance: +datadog\_api\_client.v2.model.case\_update\_title module +-------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.case_update_title + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.case\_update\_title\_attributes module +-------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.case_update_title_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.case\_update\_title\_request module +----------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.case_update_title_request + :members: + :show-inheritance: + datadog\_api\_client.v2.model.cases\_response module ---------------------------------------------------- @@ -4589,6 +4715,83 @@ datadog\_api\_client.v2.model.csm\_serverless\_coverage\_analysis\_response modu :members: :show-inheritance: +datadog\_api\_client.v2.model.custom\_attribute\_config module +-------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.custom_attribute_config + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.custom\_attribute\_config\_attributes\_create module +---------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.custom_attribute_config_attributes_create + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.custom\_attribute\_config\_create module +---------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.custom_attribute_config_create + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.custom\_attribute\_config\_create\_request module +------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.custom_attribute_config_create_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.custom\_attribute\_config\_resource\_attributes module +------------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.custom_attribute_config_resource_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.custom\_attribute\_config\_resource\_type module +------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.custom_attribute_config_resource_type + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.custom\_attribute\_config\_response module +------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.custom_attribute_config_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.custom\_attribute\_configs\_response module +------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.custom_attribute_configs_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.custom\_attribute\_type module +------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.custom_attribute_type + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.custom\_attribute\_value module +------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.custom_attribute_value + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.custom\_attribute\_values\_union module +--------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.custom_attribute_values_union + :members: + :show-inheritance: + datadog\_api\_client.v2.model.custom\_connection module ------------------------------------------------------- @@ -19289,6 +19492,83 @@ datadog\_api\_client.v2.model.time\_restrictions module :members: :show-inheritance: +datadog\_api\_client.v2.model.timeline\_cell module +--------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.timeline_cell + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.timeline\_cell\_author module +----------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.timeline_cell_author + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.timeline\_cell\_author\_user module +----------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.timeline_cell_author_user + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.timeline\_cell\_author\_user\_content module +-------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.timeline_cell_author_user_content + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.timeline\_cell\_author\_user\_type module +----------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.timeline_cell_author_user_type + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.timeline\_cell\_content module +------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.timeline_cell_content + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.timeline\_cell\_content\_comment module +--------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.timeline_cell_content_comment + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.timeline\_cell\_resource module +------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.timeline_cell_resource + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.timeline\_cell\_resource\_type module +------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.timeline_cell_resource_type + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.timeline\_cell\_type module +--------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.timeline_cell_type + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.timeline\_response module +------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.timeline_response + :members: + :show-inheritance: + datadog\_api\_client.v2.model.timeseries\_formula\_query\_request module ------------------------------------------------------------------------ diff --git a/examples/v2/case-management-attribute/CreateCustomAttributeConfig.py b/examples/v2/case-management-attribute/CreateCustomAttributeConfig.py new file mode 100644 index 0000000000..00fed58972 --- /dev/null +++ b/examples/v2/case-management-attribute/CreateCustomAttributeConfig.py @@ -0,0 +1,34 @@ +""" +Create custom attribute config for a case type returns "CREATED" response +""" + +from os import environ +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.case_management_attribute_api import CaseManagementAttributeApi +from datadog_api_client.v2.model.custom_attribute_config_attributes_create import CustomAttributeConfigAttributesCreate +from datadog_api_client.v2.model.custom_attribute_config_create import CustomAttributeConfigCreate +from datadog_api_client.v2.model.custom_attribute_config_create_request import CustomAttributeConfigCreateRequest +from datadog_api_client.v2.model.custom_attribute_config_resource_type import CustomAttributeConfigResourceType +from datadog_api_client.v2.model.custom_attribute_type import CustomAttributeType + +# there is a valid "case_type" in the system +CASE_TYPE_ID = environ["CASE_TYPE_ID"] + +body = CustomAttributeConfigCreateRequest( + data=CustomAttributeConfigCreate( + attributes=CustomAttributeConfigAttributesCreate( + display_name="AWS Region 9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d", + is_multi=True, + key="region_d9fe56bc9274fbb6", + type=CustomAttributeType.NUMBER, + ), + type=CustomAttributeConfigResourceType.CUSTOM_ATTRIBUTE, + ), +) + +configuration = Configuration() +with ApiClient(configuration) as api_client: + api_instance = CaseManagementAttributeApi(api_client) + response = api_instance.create_custom_attribute_config(case_type_id=CASE_TYPE_ID, body=body) + + print(response) diff --git a/examples/v2/case-management-attribute/DeleteCustomAttributeConfig.py b/examples/v2/case-management-attribute/DeleteCustomAttributeConfig.py new file mode 100644 index 0000000000..59691ad2a9 --- /dev/null +++ b/examples/v2/case-management-attribute/DeleteCustomAttributeConfig.py @@ -0,0 +1,21 @@ +""" +Delete custom attributes config returns "No Content" response +""" + +from os import environ +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.case_management_attribute_api import CaseManagementAttributeApi + +# there is a valid "case_type" in the system +CASE_TYPE_ID = environ["CASE_TYPE_ID"] + +# there is a valid "custom_attribute" in the system +CUSTOM_ATTRIBUTE_ID = environ["CUSTOM_ATTRIBUTE_ID"] + +configuration = Configuration() +with ApiClient(configuration) as api_client: + api_instance = CaseManagementAttributeApi(api_client) + api_instance.delete_custom_attribute_config( + case_type_id=CASE_TYPE_ID, + custom_attribute_id=CUSTOM_ATTRIBUTE_ID, + ) diff --git a/examples/v2/case-management-attribute/GetAllCustomAttributeConfigsByCaseType.py b/examples/v2/case-management-attribute/GetAllCustomAttributeConfigsByCaseType.py new file mode 100644 index 0000000000..942c412be9 --- /dev/null +++ b/examples/v2/case-management-attribute/GetAllCustomAttributeConfigsByCaseType.py @@ -0,0 +1,19 @@ +""" +Get all custom attributes config of case type returns "OK" response +""" + +from os import environ +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.case_management_attribute_api import CaseManagementAttributeApi + +# there is a valid "case_type" in the system +CASE_TYPE_ID = environ["CASE_TYPE_ID"] + +configuration = Configuration() +with ApiClient(configuration) as api_client: + api_instance = CaseManagementAttributeApi(api_client) + response = api_instance.get_all_custom_attribute_configs_by_case_type( + case_type_id=CASE_TYPE_ID, + ) + + print(response) diff --git a/examples/v2/case-management-attribute/GetAllCustomAttributes.py b/examples/v2/case-management-attribute/GetAllCustomAttributes.py new file mode 100644 index 0000000000..74fca78051 --- /dev/null +++ b/examples/v2/case-management-attribute/GetAllCustomAttributes.py @@ -0,0 +1,13 @@ +""" +Get all custom attributes returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.case_management_attribute_api import CaseManagementAttributeApi + +configuration = Configuration() +with ApiClient(configuration) as api_client: + api_instance = CaseManagementAttributeApi(api_client) + response = api_instance.get_all_custom_attributes() + + print(response) diff --git a/examples/v2/case-management-type/CreateCaseType.py b/examples/v2/case-management-type/CreateCaseType.py new file mode 100644 index 0000000000..98d53aaf18 --- /dev/null +++ b/examples/v2/case-management-type/CreateCaseType.py @@ -0,0 +1,28 @@ +""" +Create a case type returns "CREATED" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.case_management_type_api import CaseManagementTypeApi +from datadog_api_client.v2.model.case_type_create import CaseTypeCreate +from datadog_api_client.v2.model.case_type_create_request import CaseTypeCreateRequest +from datadog_api_client.v2.model.case_type_resource_attributes import CaseTypeResourceAttributes +from datadog_api_client.v2.model.case_type_resource_type import CaseTypeResourceType + +body = CaseTypeCreateRequest( + data=CaseTypeCreate( + attributes=CaseTypeResourceAttributes( + description="Investigations done in case management", + emoji="👑", + name="Investigation", + ), + type=CaseTypeResourceType.CASE_TYPE, + ), +) + +configuration = Configuration() +with ApiClient(configuration) as api_client: + api_instance = CaseManagementTypeApi(api_client) + response = api_instance.create_case_type(body=body) + + print(response) diff --git a/examples/v2/case-management-type/DeleteCaseType.py b/examples/v2/case-management-type/DeleteCaseType.py new file mode 100644 index 0000000000..92a33e14ed --- /dev/null +++ b/examples/v2/case-management-type/DeleteCaseType.py @@ -0,0 +1,13 @@ +""" +Delete a case type returns "No Content" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.case_management_type_api import CaseManagementTypeApi + +configuration = Configuration() +with ApiClient(configuration) as api_client: + api_instance = CaseManagementTypeApi(api_client) + api_instance.delete_case_type( + case_type_id="case_type_id", + ) diff --git a/examples/v2/case-management-type/DeleteCaseType_2790986149.py b/examples/v2/case-management-type/DeleteCaseType_2790986149.py new file mode 100644 index 0000000000..302a3f90db --- /dev/null +++ b/examples/v2/case-management-type/DeleteCaseType_2790986149.py @@ -0,0 +1,17 @@ +""" +Delete a case type returns "NotContent" response +""" + +from os import environ +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.case_management_type_api import CaseManagementTypeApi + +# there is a valid "case_type" in the system +CASE_TYPE_ID = environ["CASE_TYPE_ID"] + +configuration = Configuration() +with ApiClient(configuration) as api_client: + api_instance = CaseManagementTypeApi(api_client) + api_instance.delete_case_type( + case_type_id=CASE_TYPE_ID, + ) diff --git a/examples/v2/case-management-type/GetAllCaseTypes.py b/examples/v2/case-management-type/GetAllCaseTypes.py new file mode 100644 index 0000000000..16783472d6 --- /dev/null +++ b/examples/v2/case-management-type/GetAllCaseTypes.py @@ -0,0 +1,13 @@ +""" +Get all case types returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.case_management_type_api import CaseManagementTypeApi + +configuration = Configuration() +with ApiClient(configuration) as api_client: + api_instance = CaseManagementTypeApi(api_client) + response = api_instance.get_all_case_types() + + print(response) diff --git a/examples/v2/case-management/CommentCase.py b/examples/v2/case-management/CommentCase.py new file mode 100644 index 0000000000..ebbf786f1b --- /dev/null +++ b/examples/v2/case-management/CommentCase.py @@ -0,0 +1,30 @@ +""" +Comment 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_comment import CaseComment +from datadog_api_client.v2.model.case_comment_attributes import CaseCommentAttributes +from datadog_api_client.v2.model.case_comment_request import CaseCommentRequest +from datadog_api_client.v2.model.case_resource_type import CaseResourceType + +# there is a valid "case" in the system +CASE_ID = environ["CASE_ID"] + +body = CaseCommentRequest( + data=CaseComment( + attributes=CaseCommentAttributes( + comment="Hello World !", + ), + type=CaseResourceType.CASE, + ), +) + +configuration = Configuration() +with ApiClient(configuration) as api_client: + api_instance = CaseManagementApi(api_client) + response = api_instance.comment_case(case_id=CASE_ID, body=body) + + print(response) diff --git a/examples/v2/case-management/CreateCase.py b/examples/v2/case-management/CreateCase.py index 49dc4a84f4..80a1a7e137 100644 --- a/examples/v2/case-management/CreateCase.py +++ b/examples/v2/case-management/CreateCase.py @@ -11,7 +11,6 @@ from datadog_api_client.v2.model.case_create_request import CaseCreateRequest from datadog_api_client.v2.model.case_priority import CasePriority from datadog_api_client.v2.model.case_resource_type import CaseResourceType -from datadog_api_client.v2.model.case_type import CaseType from datadog_api_client.v2.model.nullable_user_relationship import NullableUserRelationship from datadog_api_client.v2.model.nullable_user_relationship_data import NullableUserRelationshipData from datadog_api_client.v2.model.project_relationship import ProjectRelationship @@ -27,7 +26,7 @@ attributes=CaseCreateAttributes( priority=CasePriority.NOT_DEFINED, title="Security breach investigation in 0cfbc5cbc676ee71", - type=CaseType.STANDARD, + type_id="00000000-0000-0000-0000-000000000001", ), relationships=CaseCreateRelationships( assignee=NullableUserRelationship( diff --git a/examples/v2/case-management/DeleteCaseComment.py b/examples/v2/case-management/DeleteCaseComment.py new file mode 100644 index 0000000000..c5b419a064 --- /dev/null +++ b/examples/v2/case-management/DeleteCaseComment.py @@ -0,0 +1,21 @@ +""" +Delete case comment returns "No Content" response +""" + +from os import environ +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.case_management_api import CaseManagementApi + +# there is a valid "case" in the system +CASE_ID = environ["CASE_ID"] + +# there is a valid "comment" in the system +COMMENT_ID = environ["COMMENT_ID"] + +configuration = Configuration() +with ApiClient(configuration) as api_client: + api_instance = CaseManagementApi(api_client) + api_instance.delete_case_comment( + case_id=CASE_ID, + cell_id=COMMENT_ID, + ) diff --git a/examples/v2/case-management/DeleteCaseCustomAttribute.py b/examples/v2/case-management/DeleteCaseCustomAttribute.py new file mode 100644 index 0000000000..835d5b723d --- /dev/null +++ b/examples/v2/case-management/DeleteCaseCustomAttribute.py @@ -0,0 +1,23 @@ +""" +Delete custom attribute from 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 + +# there is a valid "case" with a custom "case_type" in the system +CASE_WITH_TYPE_ID = environ["CASE_WITH_TYPE_ID"] + +# there is a valid "custom_attribute" in the system +CUSTOM_ATTRIBUTE_ATTRIBUTES_KEY = environ["CUSTOM_ATTRIBUTE_ATTRIBUTES_KEY"] + +configuration = Configuration() +with ApiClient(configuration) as api_client: + api_instance = CaseManagementApi(api_client) + response = api_instance.delete_case_custom_attribute( + case_id=CASE_WITH_TYPE_ID, + custom_attribute_key=CUSTOM_ATTRIBUTE_ATTRIBUTES_KEY, + ) + + print(response) diff --git a/examples/v2/case-management/UpdateCaseCustomAttribute.py b/examples/v2/case-management/UpdateCaseCustomAttribute.py new file mode 100644 index 0000000000..b058ce3397 --- /dev/null +++ b/examples/v2/case-management/UpdateCaseCustomAttribute.py @@ -0,0 +1,38 @@ +""" +Update case custom attribute 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_resource_type import CaseResourceType +from datadog_api_client.v2.model.case_update_custom_attribute import CaseUpdateCustomAttribute +from datadog_api_client.v2.model.case_update_custom_attribute_request import CaseUpdateCustomAttributeRequest +from datadog_api_client.v2.model.custom_attribute_type import CustomAttributeType +from datadog_api_client.v2.model.custom_attribute_value import CustomAttributeValue + +# there is a valid "case" with a custom "case_type" in the system +CASE_WITH_TYPE_ID = environ["CASE_WITH_TYPE_ID"] + +# there is a valid "custom_attribute" in the system +CUSTOM_ATTRIBUTE_ATTRIBUTES_KEY = environ["CUSTOM_ATTRIBUTE_ATTRIBUTES_KEY"] + +body = CaseUpdateCustomAttributeRequest( + data=CaseUpdateCustomAttribute( + attributes=CustomAttributeValue( + type=CustomAttributeType.TEXT, + is_multi=True, + value=["Abba", "The Cure"], + ), + type=CaseResourceType.CASE, + ), +) + +configuration = Configuration() +with ApiClient(configuration) as api_client: + api_instance = CaseManagementApi(api_client) + response = api_instance.update_case_custom_attribute( + case_id=CASE_WITH_TYPE_ID, custom_attribute_key=CUSTOM_ATTRIBUTE_ATTRIBUTES_KEY, body=body + ) + + print(response) diff --git a/examples/v2/case-management/UpdateCaseDescription.py b/examples/v2/case-management/UpdateCaseDescription.py new file mode 100644 index 0000000000..a10db29103 --- /dev/null +++ b/examples/v2/case-management/UpdateCaseDescription.py @@ -0,0 +1,30 @@ +""" +Update case description 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_resource_type import CaseResourceType +from datadog_api_client.v2.model.case_update_description import CaseUpdateDescription +from datadog_api_client.v2.model.case_update_description_attributes import CaseUpdateDescriptionAttributes +from datadog_api_client.v2.model.case_update_description_request import CaseUpdateDescriptionRequest + +# there is a valid "case" in the system +CASE_ID = environ["CASE_ID"] + +body = CaseUpdateDescriptionRequest( + data=CaseUpdateDescription( + attributes=CaseUpdateDescriptionAttributes( + description="Seeing some weird memory increase... Updating the description", + ), + type=CaseResourceType.CASE, + ), +) + +configuration = Configuration() +with ApiClient(configuration) as api_client: + api_instance = CaseManagementApi(api_client) + response = api_instance.update_case_description(case_id=CASE_ID, body=body) + + print(response) diff --git a/examples/v2/case-management/UpdateCaseTitle.py b/examples/v2/case-management/UpdateCaseTitle.py new file mode 100644 index 0000000000..65617861a3 --- /dev/null +++ b/examples/v2/case-management/UpdateCaseTitle.py @@ -0,0 +1,30 @@ +""" +Update case title 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_resource_type import CaseResourceType +from datadog_api_client.v2.model.case_update_title import CaseUpdateTitle +from datadog_api_client.v2.model.case_update_title_attributes import CaseUpdateTitleAttributes +from datadog_api_client.v2.model.case_update_title_request import CaseUpdateTitleRequest + +# there is a valid "case" in the system +CASE_ID = environ["CASE_ID"] + +body = CaseUpdateTitleRequest( + data=CaseUpdateTitle( + attributes=CaseUpdateTitleAttributes( + title="[UPDATED] Memory leak investigation on API", + ), + type=CaseResourceType.CASE, + ), +) + +configuration = Configuration() +with ApiClient(configuration) as api_client: + api_instance = CaseManagementApi(api_client) + response = api_instance.update_case_title(case_id=CASE_ID, body=body) + + print(response) diff --git a/src/datadog_api_client/v2/api/case_management_api.py b/src/datadog_api_client/v2/api/case_management_api.py index 58897a085d..bb4974cfe6 100644 --- a/src/datadog_api_client/v2/api/case_management_api.py +++ b/src/datadog_api_client/v2/api/case_management_api.py @@ -25,8 +25,13 @@ from datadog_api_client.v2.model.case_empty_request import CaseEmptyRequest from datadog_api_client.v2.model.case_assign_request import CaseAssignRequest from datadog_api_client.v2.model.case_update_attributes_request import CaseUpdateAttributesRequest +from datadog_api_client.v2.model.timeline_response import TimelineResponse +from datadog_api_client.v2.model.case_comment_request import CaseCommentRequest +from datadog_api_client.v2.model.case_update_custom_attribute_request import CaseUpdateCustomAttributeRequest +from datadog_api_client.v2.model.case_update_description_request import CaseUpdateDescriptionRequest from datadog_api_client.v2.model.case_update_priority_request import CaseUpdatePriorityRequest from datadog_api_client.v2.model.case_update_status_request import CaseUpdateStatusRequest +from datadog_api_client.v2.model.case_update_title_request import CaseUpdateTitleRequest class CaseManagementApi: @@ -91,6 +96,32 @@ def __init__(self, api_client=None): api_client=api_client, ) + self._comment_case_endpoint = _Endpoint( + settings={ + "response_type": (TimelineResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/cases/{case_id}/comment", + "operation_id": "comment_case", + "http_method": "POST", + "version": "v2", + }, + params_map={ + "case_id": { + "required": True, + "openapi_types": (str,), + "attribute": "case_id", + "location": "path", + }, + "body": { + "required": True, + "openapi_types": (CaseCommentRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["application/json"], "content_type": ["application/json"]}, + api_client=api_client, + ) + self._create_case_endpoint = _Endpoint( settings={ "response_type": (CaseResponse,), @@ -131,6 +162,64 @@ def __init__(self, api_client=None): api_client=api_client, ) + self._delete_case_comment_endpoint = _Endpoint( + settings={ + "response_type": None, + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/cases/{case_id}/comment/{cell_id}", + "operation_id": "delete_case_comment", + "http_method": "DELETE", + "version": "v2", + }, + params_map={ + "case_id": { + "required": True, + "openapi_types": (str,), + "attribute": "case_id", + "location": "path", + }, + "cell_id": { + "required": True, + "openapi_types": (str,), + "attribute": "cell_id", + "location": "path", + }, + }, + headers_map={ + "accept": ["*/*"], + }, + api_client=api_client, + ) + + self._delete_case_custom_attribute_endpoint = _Endpoint( + settings={ + "response_type": (CaseResponse,), + "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], + "endpoint_path": "/api/v2/cases/{case_id}/custom_attributes/{custom_attribute_key}", + "operation_id": "delete_case_custom_attribute", + "http_method": "DELETE", + "version": "v2", + }, + params_map={ + "case_id": { + "required": True, + "openapi_types": (str,), + "attribute": "case_id", + "location": "path", + }, + "custom_attribute_key": { + "required": True, + "openapi_types": (str,), + "attribute": "custom_attribute_key", + "location": "path", + }, + }, + headers_map={ + "accept": ["application/json"], + }, + api_client=api_client, + ) + self._delete_project_endpoint = _Endpoint( settings={ "response_type": None, @@ -336,6 +425,90 @@ def __init__(self, api_client=None): api_client=api_client, ) + self._update_case_custom_attribute_endpoint = _Endpoint( + settings={ + "response_type": (CaseResponse,), + "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], + "endpoint_path": "/api/v2/cases/{case_id}/custom_attributes/{custom_attribute_key}", + "operation_id": "update_case_custom_attribute", + "http_method": "POST", + "version": "v2", + }, + params_map={ + "case_id": { + "required": True, + "openapi_types": (str,), + "attribute": "case_id", + "location": "path", + }, + "custom_attribute_key": { + "required": True, + "openapi_types": (str,), + "attribute": "custom_attribute_key", + "location": "path", + }, + "body": { + "required": True, + "openapi_types": (CaseUpdateCustomAttributeRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["application/json"], "content_type": ["application/json"]}, + api_client=api_client, + ) + + self._update_case_description_endpoint = _Endpoint( + settings={ + "response_type": (CaseResponse,), + "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], + "endpoint_path": "/api/v2/cases/{case_id}/description", + "operation_id": "update_case_description", + "http_method": "POST", + "version": "v2", + }, + params_map={ + "case_id": { + "required": True, + "openapi_types": (str,), + "attribute": "case_id", + "location": "path", + }, + "body": { + "required": True, + "openapi_types": (CaseUpdateDescriptionRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["application/json"], "content_type": ["application/json"]}, + api_client=api_client, + ) + + self._update_case_title_endpoint = _Endpoint( + settings={ + "response_type": (CaseResponse,), + "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], + "endpoint_path": "/api/v2/cases/{case_id}/title", + "operation_id": "update_case_title", + "http_method": "POST", + "version": "v2", + }, + params_map={ + "case_id": { + "required": True, + "openapi_types": (str,), + "attribute": "case_id", + "location": "path", + }, + "body": { + "required": True, + "openapi_types": (CaseUpdateTitleRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["application/json"], "content_type": ["application/json"]}, + api_client=api_client, + ) + self._update_priority_endpoint = _Endpoint( settings={ "response_type": (CaseResponse,), @@ -432,6 +605,28 @@ def assign_case( return self._assign_case_endpoint.call_with_http_info(**kwargs) + def comment_case( + self, + case_id: str, + body: CaseCommentRequest, + ) -> TimelineResponse: + """Comment case. + + Comment case + + :param case_id: Case's UUID or key + :type case_id: str + :param body: Case comment payload + :type body: CaseCommentRequest + :rtype: TimelineResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["case_id"] = case_id + + kwargs["body"] = body + + return self._comment_case_endpoint.call_with_http_info(**kwargs) + def create_case( self, body: CaseCreateRequest, @@ -466,6 +661,50 @@ def create_project( return self._create_project_endpoint.call_with_http_info(**kwargs) + def delete_case_comment( + self, + case_id: str, + cell_id: str, + ) -> None: + """Delete case comment. + + Delete case comment + + :param case_id: Case's UUID or key + :type case_id: str + :param cell_id: Timeline cell's UUID + :type cell_id: str + :rtype: None + """ + kwargs: Dict[str, Any] = {} + kwargs["case_id"] = case_id + + kwargs["cell_id"] = cell_id + + return self._delete_case_comment_endpoint.call_with_http_info(**kwargs) + + def delete_case_custom_attribute( + self, + case_id: str, + custom_attribute_key: str, + ) -> CaseResponse: + """Delete custom attribute from case. + + Delete custom attribute from case + + :param case_id: Case's UUID or key + :type case_id: str + :param custom_attribute_key: Case Custom attribute's key + :type custom_attribute_key: str + :rtype: CaseResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["case_id"] = case_id + + kwargs["custom_attribute_key"] = custom_attribute_key + + return self._delete_case_custom_attribute_endpoint.call_with_http_info(**kwargs) + def delete_project( self, project_id: str, @@ -693,6 +932,77 @@ def update_attributes( return self._update_attributes_endpoint.call_with_http_info(**kwargs) + def update_case_custom_attribute( + self, + case_id: str, + custom_attribute_key: str, + body: CaseUpdateCustomAttributeRequest, + ) -> CaseResponse: + """Update case custom attribute. + + Update case custom attribute + + :param case_id: Case's UUID or key + :type case_id: str + :param custom_attribute_key: Case Custom attribute's key + :type custom_attribute_key: str + :param body: Update case custom attribute payload + :type body: CaseUpdateCustomAttributeRequest + :rtype: CaseResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["case_id"] = case_id + + kwargs["custom_attribute_key"] = custom_attribute_key + + kwargs["body"] = body + + return self._update_case_custom_attribute_endpoint.call_with_http_info(**kwargs) + + def update_case_description( + self, + case_id: str, + body: CaseUpdateDescriptionRequest, + ) -> CaseResponse: + """Update case description. + + Update case description + + :param case_id: Case's UUID or key + :type case_id: str + :param body: Case description update payload + :type body: CaseUpdateDescriptionRequest + :rtype: CaseResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["case_id"] = case_id + + kwargs["body"] = body + + return self._update_case_description_endpoint.call_with_http_info(**kwargs) + + def update_case_title( + self, + case_id: str, + body: CaseUpdateTitleRequest, + ) -> CaseResponse: + """Update case title. + + Update case title + + :param case_id: Case's UUID or key + :type case_id: str + :param body: Case title update payload + :type body: CaseUpdateTitleRequest + :rtype: CaseResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["case_id"] = case_id + + kwargs["body"] = body + + return self._update_case_title_endpoint.call_with_http_info(**kwargs) + def update_priority( self, case_id: str, diff --git a/src/datadog_api_client/v2/api/case_management_attribute_api.py b/src/datadog_api_client/v2/api/case_management_attribute_api.py new file mode 100644 index 0000000000..f27f357ad0 --- /dev/null +++ b/src/datadog_api_client/v2/api/case_management_attribute_api.py @@ -0,0 +1,190 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Any, Dict + +from datadog_api_client.api_client import ApiClient, Endpoint as _Endpoint +from datadog_api_client.configuration import Configuration +from datadog_api_client.v2.model.custom_attribute_configs_response import CustomAttributeConfigsResponse +from datadog_api_client.v2.model.custom_attribute_config_response import CustomAttributeConfigResponse +from datadog_api_client.v2.model.custom_attribute_config_create_request import CustomAttributeConfigCreateRequest + + +class CaseManagementAttributeApi: + """ + View and configure custom attributes within Case Management. See the `Case Management page `_ for more information. + """ + + def __init__(self, api_client=None): + if api_client is None: + api_client = ApiClient(Configuration()) + self.api_client = api_client + + self._create_custom_attribute_config_endpoint = _Endpoint( + settings={ + "response_type": (CustomAttributeConfigResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/cases/types/{case_type_id}/custom_attributes", + "operation_id": "create_custom_attribute_config", + "http_method": "POST", + "version": "v2", + }, + params_map={ + "case_type_id": { + "required": True, + "openapi_types": (str,), + "attribute": "case_type_id", + "location": "path", + }, + "body": { + "required": True, + "openapi_types": (CustomAttributeConfigCreateRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["application/json"], "content_type": ["application/json"]}, + api_client=api_client, + ) + + self._delete_custom_attribute_config_endpoint = _Endpoint( + settings={ + "response_type": None, + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/cases/types/{case_type_id}/custom_attributes/{custom_attribute_id}", + "operation_id": "delete_custom_attribute_config", + "http_method": "DELETE", + "version": "v2", + }, + params_map={ + "case_type_id": { + "required": True, + "openapi_types": (str,), + "attribute": "case_type_id", + "location": "path", + }, + "custom_attribute_id": { + "required": True, + "openapi_types": (str,), + "attribute": "custom_attribute_id", + "location": "path", + }, + }, + headers_map={ + "accept": ["*/*"], + }, + api_client=api_client, + ) + + self._get_all_custom_attribute_configs_by_case_type_endpoint = _Endpoint( + settings={ + "response_type": (CustomAttributeConfigsResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/cases/types/{case_type_id}/custom_attributes", + "operation_id": "get_all_custom_attribute_configs_by_case_type", + "http_method": "GET", + "version": "v2", + }, + params_map={ + "case_type_id": { + "required": True, + "openapi_types": (str,), + "attribute": "case_type_id", + "location": "path", + }, + }, + headers_map={ + "accept": ["application/json"], + }, + api_client=api_client, + ) + + self._get_all_custom_attributes_endpoint = _Endpoint( + settings={ + "response_type": (CustomAttributeConfigsResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/cases/types/custom_attributes", + "operation_id": "get_all_custom_attributes", + "http_method": "GET", + "version": "v2", + }, + params_map={}, + headers_map={ + "accept": ["application/json"], + }, + api_client=api_client, + ) + + def create_custom_attribute_config( + self, + case_type_id: str, + body: CustomAttributeConfigCreateRequest, + ) -> CustomAttributeConfigResponse: + """Create custom attribute config for a case type. + + Create custom attribute config for a case type + + :param case_type_id: Case type's UUID + :type case_type_id: str + :param body: Custom attribute config payload + :type body: CustomAttributeConfigCreateRequest + :rtype: CustomAttributeConfigResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["case_type_id"] = case_type_id + + kwargs["body"] = body + + return self._create_custom_attribute_config_endpoint.call_with_http_info(**kwargs) + + def delete_custom_attribute_config( + self, + case_type_id: str, + custom_attribute_id: str, + ) -> None: + """Delete custom attributes config. + + Delete custom attribute config + + :param case_type_id: Case type's UUID + :type case_type_id: str + :param custom_attribute_id: Case Custom attribute's UUID + :type custom_attribute_id: str + :rtype: None + """ + kwargs: Dict[str, Any] = {} + kwargs["case_type_id"] = case_type_id + + kwargs["custom_attribute_id"] = custom_attribute_id + + return self._delete_custom_attribute_config_endpoint.call_with_http_info(**kwargs) + + def get_all_custom_attribute_configs_by_case_type( + self, + case_type_id: str, + ) -> CustomAttributeConfigsResponse: + """Get all custom attributes config of case type. + + Get all custom attribute config of case type + + :param case_type_id: Case type's UUID + :type case_type_id: str + :rtype: CustomAttributeConfigsResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["case_type_id"] = case_type_id + + return self._get_all_custom_attribute_configs_by_case_type_endpoint.call_with_http_info(**kwargs) + + def get_all_custom_attributes( + self, + ) -> CustomAttributeConfigsResponse: + """Get all custom attributes. + + Get all custom attributes + + :rtype: CustomAttributeConfigsResponse + """ + kwargs: Dict[str, Any] = {} + return self._get_all_custom_attributes_endpoint.call_with_http_info(**kwargs) diff --git a/src/datadog_api_client/v2/api/case_management_type_api.py b/src/datadog_api_client/v2/api/case_management_type_api.py new file mode 100644 index 0000000000..37551c8731 --- /dev/null +++ b/src/datadog_api_client/v2/api/case_management_type_api.py @@ -0,0 +1,128 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Any, Dict + +from datadog_api_client.api_client import ApiClient, Endpoint as _Endpoint +from datadog_api_client.configuration import Configuration +from datadog_api_client.v2.model.case_types_response import CaseTypesResponse +from datadog_api_client.v2.model.case_type_response import CaseTypeResponse +from datadog_api_client.v2.model.case_type_create_request import CaseTypeCreateRequest + + +class CaseManagementTypeApi: + """ + View and configure case types within Case Management. See the `Case Management page `_ for more information. + """ + + def __init__(self, api_client=None): + if api_client is None: + api_client = ApiClient(Configuration()) + self.api_client = api_client + + self._create_case_type_endpoint = _Endpoint( + settings={ + "response_type": (CaseTypeResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/cases/types", + "operation_id": "create_case_type", + "http_method": "POST", + "version": "v2", + }, + params_map={ + "body": { + "required": True, + "openapi_types": (CaseTypeCreateRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["application/json"], "content_type": ["application/json"]}, + api_client=api_client, + ) + + self._delete_case_type_endpoint = _Endpoint( + settings={ + "response_type": None, + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/cases/types/{case_type_id}", + "operation_id": "delete_case_type", + "http_method": "DELETE", + "version": "v2", + }, + params_map={ + "case_type_id": { + "required": True, + "openapi_types": (str,), + "attribute": "case_type_id", + "location": "path", + }, + }, + headers_map={ + "accept": ["*/*"], + }, + api_client=api_client, + ) + + self._get_all_case_types_endpoint = _Endpoint( + settings={ + "response_type": (CaseTypesResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/cases/types", + "operation_id": "get_all_case_types", + "http_method": "GET", + "version": "v2", + }, + params_map={}, + headers_map={ + "accept": ["application/json"], + }, + api_client=api_client, + ) + + def create_case_type( + self, + body: CaseTypeCreateRequest, + ) -> CaseTypeResponse: + """Create a case type. + + Create a Case Type + + :param body: Case type payload + :type body: CaseTypeCreateRequest + :rtype: CaseTypeResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["body"] = body + + return self._create_case_type_endpoint.call_with_http_info(**kwargs) + + def delete_case_type( + self, + case_type_id: str, + ) -> None: + """Delete a case type. + + Delete a case type + + :param case_type_id: Case type's UUID + :type case_type_id: str + :rtype: None + """ + kwargs: Dict[str, Any] = {} + kwargs["case_type_id"] = case_type_id + + return self._delete_case_type_endpoint.call_with_http_info(**kwargs) + + def get_all_case_types( + self, + ) -> CaseTypesResponse: + """Get all case types. + + Get all case types + + :rtype: CaseTypesResponse + """ + kwargs: Dict[str, Any] = {} + return self._get_all_case_types_endpoint.call_with_http_info(**kwargs) diff --git a/src/datadog_api_client/v2/apis/__init__.py b/src/datadog_api_client/v2/apis/__init__.py index 30a5f51bd2..033fed00f2 100644 --- a/src/datadog_api_client/v2/apis/__init__.py +++ b/src/datadog_api_client/v2/apis/__init__.py @@ -14,6 +14,8 @@ from datadog_api_client.v2.api.csm_coverage_analysis_api import CSMCoverageAnalysisApi from datadog_api_client.v2.api.csm_threats_api import CSMThreatsApi from datadog_api_client.v2.api.case_management_api import CaseManagementApi +from datadog_api_client.v2.api.case_management_attribute_api import CaseManagementAttributeApi +from datadog_api_client.v2.api.case_management_type_api import CaseManagementTypeApi from datadog_api_client.v2.api.cloud_cost_management_api import CloudCostManagementApi from datadog_api_client.v2.api.cloud_network_monitoring_api import CloudNetworkMonitoringApi from datadog_api_client.v2.api.cloudflare_integration_api import CloudflareIntegrationApi @@ -89,6 +91,8 @@ "CSMCoverageAnalysisApi", "CSMThreatsApi", "CaseManagementApi", + "CaseManagementAttributeApi", + "CaseManagementTypeApi", "CloudCostManagementApi", "CloudNetworkMonitoringApi", "CloudflareIntegrationApi", diff --git a/src/datadog_api_client/v2/model/case_attributes.py b/src/datadog_api_client/v2/model/case_attributes.py index 25535569eb..8bbc4faaf1 100644 --- a/src/datadog_api_client/v2/model/case_attributes.py +++ b/src/datadog_api_client/v2/model/case_attributes.py @@ -3,7 +3,7 @@ # Copyright 2019-Present Datadog, Inc. from __future__ import annotations -from typing import Union, TYPE_CHECKING +from typing import Dict, Union, TYPE_CHECKING from datadog_api_client.model_utils import ( ModelNormal, @@ -17,6 +17,7 @@ if TYPE_CHECKING: from datadog_api_client.v2.model.case_object_attributes import CaseObjectAttributes + from datadog_api_client.v2.model.custom_attribute_value import CustomAttributeValue from datadog_api_client.v2.model.jira_issue import JiraIssue from datadog_api_client.v2.model.case_priority import CasePriority from datadog_api_client.v2.model.service_now_ticket import ServiceNowTicket @@ -28,6 +29,7 @@ class CaseAttributes(ModelNormal): @cached_property def openapi_types(_): from datadog_api_client.v2.model.case_object_attributes import CaseObjectAttributes + from datadog_api_client.v2.model.custom_attribute_value import CustomAttributeValue from datadog_api_client.v2.model.jira_issue import JiraIssue from datadog_api_client.v2.model.case_priority import CasePriority from datadog_api_client.v2.model.service_now_ticket import ServiceNowTicket @@ -39,6 +41,7 @@ def openapi_types(_): "attributes": (CaseObjectAttributes,), "closed_at": (datetime, none_type), "created_at": (datetime,), + "custom_attributes": ({str: (CustomAttributeValue,)},), "description": (str,), "jira_issue": (JiraIssue,), "key": (str,), @@ -48,6 +51,7 @@ def openapi_types(_): "status": (CaseStatus,), "title": (str,), "type": (CaseType,), + "type_id": (str,), } attribute_map = { @@ -55,6 +59,7 @@ def openapi_types(_): "attributes": "attributes", "closed_at": "closed_at", "created_at": "created_at", + "custom_attributes": "custom_attributes", "description": "description", "jira_issue": "jira_issue", "key": "key", @@ -64,6 +69,7 @@ def openapi_types(_): "status": "status", "title": "title", "type": "type", + "type_id": "type_id", } read_only_vars = { "archived_at", @@ -80,6 +86,7 @@ def __init__( attributes: Union[CaseObjectAttributes, UnsetType] = unset, closed_at: Union[datetime, none_type, UnsetType] = unset, created_at: Union[datetime, UnsetType] = unset, + custom_attributes: Union[Dict[str, CustomAttributeValue], UnsetType] = unset, description: Union[str, UnsetType] = unset, jira_issue: Union[JiraIssue, none_type, UnsetType] = unset, key: Union[str, UnsetType] = unset, @@ -89,6 +96,7 @@ def __init__( status: Union[CaseStatus, UnsetType] = unset, title: Union[str, UnsetType] = unset, type: Union[CaseType, UnsetType] = unset, + type_id: Union[str, UnsetType] = unset, **kwargs, ): """ @@ -106,6 +114,9 @@ def __init__( :param created_at: Timestamp of when the case was created :type created_at: datetime, optional + :param custom_attributes: Case custom attributes + :type custom_attributes: {str: (CustomAttributeValue,)}, optional + :param description: Description :type description: str, optional @@ -130,8 +141,11 @@ def __init__( :param title: Title :type title: str, optional - :param type: Case type + :param type: Case type **Deprecated**. :type type: CaseType, optional + + :param type_id: Case type UUID + :type type_id: str, optional """ if archived_at is not unset: kwargs["archived_at"] = archived_at @@ -141,6 +155,8 @@ def __init__( kwargs["closed_at"] = closed_at if created_at is not unset: kwargs["created_at"] = created_at + if custom_attributes is not unset: + kwargs["custom_attributes"] = custom_attributes if description is not unset: kwargs["description"] = description if jira_issue is not unset: @@ -159,4 +175,6 @@ def __init__( kwargs["title"] = title if type is not unset: kwargs["type"] = type + if type_id is not unset: + kwargs["type_id"] = type_id super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/case_comment.py b/src/datadog_api_client/v2/model/case_comment.py new file mode 100644 index 0000000000..7b648429d1 --- /dev/null +++ b/src/datadog_api_client/v2/model/case_comment.py @@ -0,0 +1,48 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.case_comment_attributes import CaseCommentAttributes + from datadog_api_client.v2.model.case_resource_type import CaseResourceType + + +class CaseComment(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.case_comment_attributes import CaseCommentAttributes + from datadog_api_client.v2.model.case_resource_type import CaseResourceType + + return { + "attributes": (CaseCommentAttributes,), + "type": (CaseResourceType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__(self_, attributes: CaseCommentAttributes, type: CaseResourceType, **kwargs): + """ + Case comment + + :param attributes: Case comment attributes + :type attributes: CaseCommentAttributes + + :param type: Case resource type + :type type: CaseResourceType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/case_comment_attributes.py b/src/datadog_api_client/v2/model/case_comment_attributes.py new file mode 100644 index 0000000000..17341277dc --- /dev/null +++ b/src/datadog_api_client/v2/model/case_comment_attributes.py @@ -0,0 +1,33 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +class CaseCommentAttributes(ModelNormal): + @cached_property + def openapi_types(_): + return { + "comment": (str,), + } + + attribute_map = { + "comment": "comment", + } + + def __init__(self_, comment: str, **kwargs): + """ + Case comment attributes + + :param comment: The ``CaseCommentAttributes`` ``message``. + :type comment: str + """ + super().__init__(kwargs) + + self_.comment = comment diff --git a/src/datadog_api_client/v2/model/case_comment_request.py b/src/datadog_api_client/v2/model/case_comment_request.py new file mode 100644 index 0000000000..ac55f3bbf0 --- /dev/null +++ b/src/datadog_api_client/v2/model/case_comment_request.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.case_comment import CaseComment + + +class CaseCommentRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.case_comment import CaseComment + + return { + "data": (CaseComment,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: CaseComment, **kwargs): + """ + Case comment request + + :param data: Case comment + :type data: CaseComment + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/case_create_attributes.py b/src/datadog_api_client/v2/model/case_create_attributes.py index 0f25494e39..63997d4187 100644 --- a/src/datadog_api_client/v2/model/case_create_attributes.py +++ b/src/datadog_api_client/v2/model/case_create_attributes.py @@ -15,33 +15,31 @@ if TYPE_CHECKING: from datadog_api_client.v2.model.case_priority import CasePriority - from datadog_api_client.v2.model.case_type import CaseType class CaseCreateAttributes(ModelNormal): @cached_property def openapi_types(_): from datadog_api_client.v2.model.case_priority import CasePriority - from datadog_api_client.v2.model.case_type import CaseType return { "description": (str,), "priority": (CasePriority,), "title": (str,), - "type": (CaseType,), + "type_id": (str,), } attribute_map = { "description": "description", "priority": "priority", "title": "title", - "type": "type", + "type_id": "type_id", } def __init__( self_, title: str, - type: CaseType, + type_id: str, description: Union[str, UnsetType] = unset, priority: Union[CasePriority, UnsetType] = unset, **kwargs, @@ -58,8 +56,8 @@ def __init__( :param title: Title :type title: str - :param type: Case type - :type type: CaseType + :param type_id: Case type UUID + :type type_id: str """ if description is not unset: kwargs["description"] = description @@ -68,4 +66,4 @@ def __init__( super().__init__(kwargs) self_.title = title - self_.type = type + self_.type_id = type_id diff --git a/src/datadog_api_client/v2/model/case_type.py b/src/datadog_api_client/v2/model/case_type.py index b135b1f3cb..8fa167acc0 100644 --- a/src/datadog_api_client/v2/model/case_type.py +++ b/src/datadog_api_client/v2/model/case_type.py @@ -16,14 +16,16 @@ class CaseType(ModelSimple): """ Case type - :param value: If omitted defaults to "STANDARD". Must be one of ["STANDARD"]. + :param value: Must be one of ["STANDARD", "TUNKNOWN"]. :type value: str """ allowed_values = { "STANDARD", + "TUNKNOWN", } STANDARD: ClassVar["CaseType"] + TUNKNOWN: ClassVar["CaseType"] @cached_property def openapi_types(_): @@ -33,3 +35,4 @@ def openapi_types(_): CaseType.STANDARD = CaseType("STANDARD") +CaseType.TUNKNOWN = CaseType("TUNKNOWN") diff --git a/src/datadog_api_client/v2/model/case_type_create.py b/src/datadog_api_client/v2/model/case_type_create.py new file mode 100644 index 0000000000..556f644bbb --- /dev/null +++ b/src/datadog_api_client/v2/model/case_type_create.py @@ -0,0 +1,48 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.case_type_resource_attributes import CaseTypeResourceAttributes + from datadog_api_client.v2.model.case_type_resource_type import CaseTypeResourceType + + +class CaseTypeCreate(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.case_type_resource_attributes import CaseTypeResourceAttributes + from datadog_api_client.v2.model.case_type_resource_type import CaseTypeResourceType + + return { + "attributes": (CaseTypeResourceAttributes,), + "type": (CaseTypeResourceType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__(self_, attributes: CaseTypeResourceAttributes, type: CaseTypeResourceType, **kwargs): + """ + Case type + + :param attributes: Case Type resource attributes + :type attributes: CaseTypeResourceAttributes + + :param type: Case type resource type + :type type: CaseTypeResourceType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/case_type_create_request.py b/src/datadog_api_client/v2/model/case_type_create_request.py new file mode 100644 index 0000000000..67ee84fed2 --- /dev/null +++ b/src/datadog_api_client/v2/model/case_type_create_request.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.case_type_create import CaseTypeCreate + + +class CaseTypeCreateRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.case_type_create import CaseTypeCreate + + return { + "data": (CaseTypeCreate,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: CaseTypeCreate, **kwargs): + """ + Case type create request + + :param data: Case type + :type data: CaseTypeCreate + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/case_type_resource.py b/src/datadog_api_client/v2/model/case_type_resource.py new file mode 100644 index 0000000000..9e973b4207 --- /dev/null +++ b/src/datadog_api_client/v2/model/case_type_resource.py @@ -0,0 +1,64 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.case_type_resource_attributes import CaseTypeResourceAttributes + from datadog_api_client.v2.model.case_type_resource_type import CaseTypeResourceType + + +class CaseTypeResource(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.case_type_resource_attributes import CaseTypeResourceAttributes + from datadog_api_client.v2.model.case_type_resource_type import CaseTypeResourceType + + return { + "attributes": (CaseTypeResourceAttributes,), + "id": (str,), + "type": (CaseTypeResourceType,), + } + + attribute_map = { + "attributes": "attributes", + "id": "id", + "type": "type", + } + + def __init__( + self_, + attributes: Union[CaseTypeResourceAttributes, UnsetType] = unset, + id: Union[str, UnsetType] = unset, + type: Union[CaseTypeResourceType, UnsetType] = unset, + **kwargs, + ): + """ + The definition of ``CaseType`` object. + + :param attributes: Case Type resource attributes + :type attributes: CaseTypeResourceAttributes, optional + + :param id: Case type's identifier + :type id: str, optional + + :param type: Case type resource type + :type type: CaseTypeResourceType, optional + """ + if attributes is not unset: + kwargs["attributes"] = attributes + if id is not unset: + kwargs["id"] = id + if type is not unset: + kwargs["type"] = type + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/case_type_resource_attributes.py b/src/datadog_api_client/v2/model/case_type_resource_attributes.py new file mode 100644 index 0000000000..e37b4ccac6 --- /dev/null +++ b/src/datadog_api_client/v2/model/case_type_resource_attributes.py @@ -0,0 +1,68 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + datetime, + none_type, + unset, + UnsetType, +) + + +class CaseTypeResourceAttributes(ModelNormal): + @cached_property + def openapi_types(_): + return { + "deleted_at": (datetime, none_type), + "description": (str,), + "emoji": (str,), + "name": (str,), + } + + attribute_map = { + "deleted_at": "deleted_at", + "description": "description", + "emoji": "emoji", + "name": "name", + } + read_only_vars = { + "deleted_at", + } + + def __init__( + self_, + emoji: str, + name: str, + deleted_at: Union[datetime, none_type, UnsetType] = unset, + description: Union[str, UnsetType] = unset, + **kwargs, + ): + """ + Case Type resource attributes + + :param deleted_at: Timestamp of when the case type was deleted + :type deleted_at: datetime, none_type, optional + + :param description: Case type description. + :type description: str, optional + + :param emoji: Case type emoji. + :type emoji: str + + :param name: Case type name. + :type name: str + """ + if deleted_at is not unset: + kwargs["deleted_at"] = deleted_at + if description is not unset: + kwargs["description"] = description + super().__init__(kwargs) + + self_.emoji = emoji + self_.name = name diff --git a/src/datadog_api_client/v2/model/case_type_resource_type.py b/src/datadog_api_client/v2/model/case_type_resource_type.py new file mode 100644 index 0000000000..20e98517ed --- /dev/null +++ b/src/datadog_api_client/v2/model/case_type_resource_type.py @@ -0,0 +1,35 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class CaseTypeResourceType(ModelSimple): + """ + Case type resource type + + :param value: If omitted defaults to "case_type". Must be one of ["case_type"]. + :type value: str + """ + + allowed_values = { + "case_type", + } + CASE_TYPE: ClassVar["CaseTypeResourceType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +CaseTypeResourceType.CASE_TYPE = CaseTypeResourceType("case_type") diff --git a/src/datadog_api_client/v2/model/case_type_response.py b/src/datadog_api_client/v2/model/case_type_response.py new file mode 100644 index 0000000000..6fe3035b2e --- /dev/null +++ b/src/datadog_api_client/v2/model/case_type_response.py @@ -0,0 +1,42 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.case_type_resource import CaseTypeResource + + +class CaseTypeResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.case_type_resource import CaseTypeResource + + return { + "data": (CaseTypeResource,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: Union[CaseTypeResource, UnsetType] = unset, **kwargs): + """ + Case type response + + :param data: The definition of ``CaseType`` object. + :type data: CaseTypeResource, optional + """ + if data is not unset: + kwargs["data"] = data + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/case_types_response.py b/src/datadog_api_client/v2/model/case_types_response.py new file mode 100644 index 0000000000..74d323d5d8 --- /dev/null +++ b/src/datadog_api_client/v2/model/case_types_response.py @@ -0,0 +1,42 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.case_type_resource import CaseTypeResource + + +class CaseTypesResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.case_type_resource import CaseTypeResource + + return { + "data": ([CaseTypeResource],), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: Union[List[CaseTypeResource], UnsetType] = unset, **kwargs): + """ + Case types response. + + :param data: List of case types + :type data: [CaseTypeResource], optional + """ + if data is not unset: + kwargs["data"] = data + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/case_update_custom_attribute.py b/src/datadog_api_client/v2/model/case_update_custom_attribute.py new file mode 100644 index 0000000000..9e1461464b --- /dev/null +++ b/src/datadog_api_client/v2/model/case_update_custom_attribute.py @@ -0,0 +1,48 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.custom_attribute_value import CustomAttributeValue + from datadog_api_client.v2.model.case_resource_type import CaseResourceType + + +class CaseUpdateCustomAttribute(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.custom_attribute_value import CustomAttributeValue + from datadog_api_client.v2.model.case_resource_type import CaseResourceType + + return { + "attributes": (CustomAttributeValue,), + "type": (CaseResourceType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__(self_, attributes: CustomAttributeValue, type: CaseResourceType, **kwargs): + """ + Case update custom attribute + + :param attributes: Custom attribute values + :type attributes: CustomAttributeValue + + :param type: Case resource type + :type type: CaseResourceType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/case_update_custom_attribute_request.py b/src/datadog_api_client/v2/model/case_update_custom_attribute_request.py new file mode 100644 index 0000000000..c35246b442 --- /dev/null +++ b/src/datadog_api_client/v2/model/case_update_custom_attribute_request.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.case_update_custom_attribute import CaseUpdateCustomAttribute + + +class CaseUpdateCustomAttributeRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.case_update_custom_attribute import CaseUpdateCustomAttribute + + return { + "data": (CaseUpdateCustomAttribute,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: CaseUpdateCustomAttribute, **kwargs): + """ + Case update custom attribute request + + :param data: Case update custom attribute + :type data: CaseUpdateCustomAttribute + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/case_update_description.py b/src/datadog_api_client/v2/model/case_update_description.py new file mode 100644 index 0000000000..232c4ea07e --- /dev/null +++ b/src/datadog_api_client/v2/model/case_update_description.py @@ -0,0 +1,48 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.case_update_description_attributes import CaseUpdateDescriptionAttributes + from datadog_api_client.v2.model.case_resource_type import CaseResourceType + + +class CaseUpdateDescription(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.case_update_description_attributes import CaseUpdateDescriptionAttributes + from datadog_api_client.v2.model.case_resource_type import CaseResourceType + + return { + "attributes": (CaseUpdateDescriptionAttributes,), + "type": (CaseResourceType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__(self_, attributes: CaseUpdateDescriptionAttributes, type: CaseResourceType, **kwargs): + """ + Case update description + + :param attributes: Case update description attributes + :type attributes: CaseUpdateDescriptionAttributes + + :param type: Case resource type + :type type: CaseResourceType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/case_update_description_attributes.py b/src/datadog_api_client/v2/model/case_update_description_attributes.py new file mode 100644 index 0000000000..f21673b843 --- /dev/null +++ b/src/datadog_api_client/v2/model/case_update_description_attributes.py @@ -0,0 +1,33 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +class CaseUpdateDescriptionAttributes(ModelNormal): + @cached_property + def openapi_types(_): + return { + "description": (str,), + } + + attribute_map = { + "description": "description", + } + + def __init__(self_, description: str, **kwargs): + """ + Case update description attributes + + :param description: Case new description + :type description: str + """ + super().__init__(kwargs) + + self_.description = description diff --git a/src/datadog_api_client/v2/model/case_update_description_request.py b/src/datadog_api_client/v2/model/case_update_description_request.py new file mode 100644 index 0000000000..f5bf46f1dc --- /dev/null +++ b/src/datadog_api_client/v2/model/case_update_description_request.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.case_update_description import CaseUpdateDescription + + +class CaseUpdateDescriptionRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.case_update_description import CaseUpdateDescription + + return { + "data": (CaseUpdateDescription,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: CaseUpdateDescription, **kwargs): + """ + Case update description request + + :param data: Case update description + :type data: CaseUpdateDescription + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/case_update_title.py b/src/datadog_api_client/v2/model/case_update_title.py new file mode 100644 index 0000000000..fb1ac8456c --- /dev/null +++ b/src/datadog_api_client/v2/model/case_update_title.py @@ -0,0 +1,48 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.case_update_title_attributes import CaseUpdateTitleAttributes + from datadog_api_client.v2.model.case_resource_type import CaseResourceType + + +class CaseUpdateTitle(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.case_update_title_attributes import CaseUpdateTitleAttributes + from datadog_api_client.v2.model.case_resource_type import CaseResourceType + + return { + "attributes": (CaseUpdateTitleAttributes,), + "type": (CaseResourceType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__(self_, attributes: CaseUpdateTitleAttributes, type: CaseResourceType, **kwargs): + """ + Case update title + + :param attributes: Case update title attributes + :type attributes: CaseUpdateTitleAttributes + + :param type: Case resource type + :type type: CaseResourceType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/case_update_title_attributes.py b/src/datadog_api_client/v2/model/case_update_title_attributes.py new file mode 100644 index 0000000000..3abb18f547 --- /dev/null +++ b/src/datadog_api_client/v2/model/case_update_title_attributes.py @@ -0,0 +1,33 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +class CaseUpdateTitleAttributes(ModelNormal): + @cached_property + def openapi_types(_): + return { + "title": (str,), + } + + attribute_map = { + "title": "title", + } + + def __init__(self_, title: str, **kwargs): + """ + Case update title attributes + + :param title: Case new title + :type title: str + """ + super().__init__(kwargs) + + self_.title = title diff --git a/src/datadog_api_client/v2/model/case_update_title_request.py b/src/datadog_api_client/v2/model/case_update_title_request.py new file mode 100644 index 0000000000..d4fe343174 --- /dev/null +++ b/src/datadog_api_client/v2/model/case_update_title_request.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.case_update_title import CaseUpdateTitle + + +class CaseUpdateTitleRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.case_update_title import CaseUpdateTitle + + return { + "data": (CaseUpdateTitle,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: CaseUpdateTitle, **kwargs): + """ + Case update title request + + :param data: Case update title + :type data: CaseUpdateTitle + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/custom_attribute_config.py b/src/datadog_api_client/v2/model/custom_attribute_config.py new file mode 100644 index 0000000000..3df8b1075c --- /dev/null +++ b/src/datadog_api_client/v2/model/custom_attribute_config.py @@ -0,0 +1,68 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.custom_attribute_config_resource_attributes import ( + CustomAttributeConfigResourceAttributes, + ) + from datadog_api_client.v2.model.custom_attribute_config_resource_type import CustomAttributeConfigResourceType + + +class CustomAttributeConfig(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.custom_attribute_config_resource_attributes import ( + CustomAttributeConfigResourceAttributes, + ) + from datadog_api_client.v2.model.custom_attribute_config_resource_type import CustomAttributeConfigResourceType + + return { + "attributes": (CustomAttributeConfigResourceAttributes,), + "id": (str,), + "type": (CustomAttributeConfigResourceType,), + } + + attribute_map = { + "attributes": "attributes", + "id": "id", + "type": "type", + } + + def __init__( + self_, + attributes: Union[CustomAttributeConfigResourceAttributes, UnsetType] = unset, + id: Union[str, UnsetType] = unset, + type: Union[CustomAttributeConfigResourceType, UnsetType] = unset, + **kwargs, + ): + """ + The definition of ``CustomAttributeConfig`` object. + + :param attributes: Custom attribute resource attributes + :type attributes: CustomAttributeConfigResourceAttributes, optional + + :param id: Custom attribute configs identifier + :type id: str, optional + + :param type: Custom attributes config JSON:API resource type + :type type: CustomAttributeConfigResourceType, optional + """ + if attributes is not unset: + kwargs["attributes"] = attributes + if id is not unset: + kwargs["id"] = id + if type is not unset: + kwargs["type"] = type + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/custom_attribute_config_attributes_create.py b/src/datadog_api_client/v2/model/custom_attribute_config_attributes_create.py new file mode 100644 index 0000000000..2c414e300c --- /dev/null +++ b/src/datadog_api_client/v2/model/custom_attribute_config_attributes_create.py @@ -0,0 +1,75 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.custom_attribute_type import CustomAttributeType + + +class CustomAttributeConfigAttributesCreate(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.custom_attribute_type import CustomAttributeType + + return { + "description": (str,), + "display_name": (str,), + "is_multi": (bool,), + "key": (str,), + "type": (CustomAttributeType,), + } + + attribute_map = { + "description": "description", + "display_name": "display_name", + "is_multi": "is_multi", + "key": "key", + "type": "type", + } + + def __init__( + self_, + display_name: str, + is_multi: bool, + key: str, + type: CustomAttributeType, + description: Union[str, UnsetType] = unset, + **kwargs, + ): + """ + Custom attribute config resource attributes + + :param description: Custom attribute description. + :type description: str, optional + + :param display_name: Custom attribute name. + :type display_name: str + + :param is_multi: Whether multiple values can be set + :type is_multi: bool + + :param key: Custom attribute key. This will be the value use to search on this custom attribute + :type key: str + + :param type: Custom attributes type + :type type: CustomAttributeType + """ + if description is not unset: + kwargs["description"] = description + super().__init__(kwargs) + + self_.display_name = display_name + self_.is_multi = is_multi + self_.key = key + self_.type = type diff --git a/src/datadog_api_client/v2/model/custom_attribute_config_create.py b/src/datadog_api_client/v2/model/custom_attribute_config_create.py new file mode 100644 index 0000000000..dc95d9f0a4 --- /dev/null +++ b/src/datadog_api_client/v2/model/custom_attribute_config_create.py @@ -0,0 +1,54 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.custom_attribute_config_attributes_create import ( + CustomAttributeConfigAttributesCreate, + ) + from datadog_api_client.v2.model.custom_attribute_config_resource_type import CustomAttributeConfigResourceType + + +class CustomAttributeConfigCreate(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.custom_attribute_config_attributes_create import ( + CustomAttributeConfigAttributesCreate, + ) + from datadog_api_client.v2.model.custom_attribute_config_resource_type import CustomAttributeConfigResourceType + + return { + "attributes": (CustomAttributeConfigAttributesCreate,), + "type": (CustomAttributeConfigResourceType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__( + self_, attributes: CustomAttributeConfigAttributesCreate, type: CustomAttributeConfigResourceType, **kwargs + ): + """ + Custom attribute config + + :param attributes: Custom attribute config resource attributes + :type attributes: CustomAttributeConfigAttributesCreate + + :param type: Custom attributes config JSON:API resource type + :type type: CustomAttributeConfigResourceType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/custom_attribute_config_create_request.py b/src/datadog_api_client/v2/model/custom_attribute_config_create_request.py new file mode 100644 index 0000000000..1c8b76aa2a --- /dev/null +++ b/src/datadog_api_client/v2/model/custom_attribute_config_create_request.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.custom_attribute_config_create import CustomAttributeConfigCreate + + +class CustomAttributeConfigCreateRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.custom_attribute_config_create import CustomAttributeConfigCreate + + return { + "data": (CustomAttributeConfigCreate,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: CustomAttributeConfigCreate, **kwargs): + """ + Custom attribute config create request + + :param data: Custom attribute config + :type data: CustomAttributeConfigCreate + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/custom_attribute_config_resource_attributes.py b/src/datadog_api_client/v2/model/custom_attribute_config_resource_attributes.py new file mode 100644 index 0000000000..a8bc185fc0 --- /dev/null +++ b/src/datadog_api_client/v2/model/custom_attribute_config_resource_attributes.py @@ -0,0 +1,82 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.custom_attribute_type import CustomAttributeType + + +class CustomAttributeConfigResourceAttributes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.custom_attribute_type import CustomAttributeType + + return { + "case_type_id": (str,), + "description": (str,), + "display_name": (str,), + "is_multi": (bool,), + "key": (str,), + "type": (CustomAttributeType,), + } + + attribute_map = { + "case_type_id": "case_type_id", + "description": "description", + "display_name": "display_name", + "is_multi": "is_multi", + "key": "key", + "type": "type", + } + + def __init__( + self_, + case_type_id: str, + display_name: str, + is_multi: bool, + key: str, + type: CustomAttributeType, + description: Union[str, UnsetType] = unset, + **kwargs, + ): + """ + Custom attribute resource attributes + + :param case_type_id: Custom attribute config identifier. + :type case_type_id: str + + :param description: Custom attribute description. + :type description: str, optional + + :param display_name: Custom attribute name. + :type display_name: str + + :param is_multi: Whether multiple values can be set + :type is_multi: bool + + :param key: Custom attribute key. This will be the value use to search on this custom attribute + :type key: str + + :param type: Custom attributes type + :type type: CustomAttributeType + """ + if description is not unset: + kwargs["description"] = description + super().__init__(kwargs) + + self_.case_type_id = case_type_id + self_.display_name = display_name + self_.is_multi = is_multi + self_.key = key + self_.type = type diff --git a/src/datadog_api_client/v2/model/custom_attribute_config_resource_type.py b/src/datadog_api_client/v2/model/custom_attribute_config_resource_type.py new file mode 100644 index 0000000000..a12572613a --- /dev/null +++ b/src/datadog_api_client/v2/model/custom_attribute_config_resource_type.py @@ -0,0 +1,35 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class CustomAttributeConfigResourceType(ModelSimple): + """ + Custom attributes config JSON:API resource type + + :param value: If omitted defaults to "custom_attribute". Must be one of ["custom_attribute"]. + :type value: str + """ + + allowed_values = { + "custom_attribute", + } + CUSTOM_ATTRIBUTE: ClassVar["CustomAttributeConfigResourceType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +CustomAttributeConfigResourceType.CUSTOM_ATTRIBUTE = CustomAttributeConfigResourceType("custom_attribute") diff --git a/src/datadog_api_client/v2/model/custom_attribute_config_response.py b/src/datadog_api_client/v2/model/custom_attribute_config_response.py new file mode 100644 index 0000000000..986f84e336 --- /dev/null +++ b/src/datadog_api_client/v2/model/custom_attribute_config_response.py @@ -0,0 +1,42 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.custom_attribute_config import CustomAttributeConfig + + +class CustomAttributeConfigResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.custom_attribute_config import CustomAttributeConfig + + return { + "data": (CustomAttributeConfig,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: Union[CustomAttributeConfig, UnsetType] = unset, **kwargs): + """ + Custom attribute config response. + + :param data: The definition of ``CustomAttributeConfig`` object. + :type data: CustomAttributeConfig, optional + """ + if data is not unset: + kwargs["data"] = data + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/custom_attribute_configs_response.py b/src/datadog_api_client/v2/model/custom_attribute_configs_response.py new file mode 100644 index 0000000000..ecfce1adda --- /dev/null +++ b/src/datadog_api_client/v2/model/custom_attribute_configs_response.py @@ -0,0 +1,42 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.custom_attribute_config import CustomAttributeConfig + + +class CustomAttributeConfigsResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.custom_attribute_config import CustomAttributeConfig + + return { + "data": ([CustomAttributeConfig],), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: Union[List[CustomAttributeConfig], UnsetType] = unset, **kwargs): + """ + Custom attribute configs response. + + :param data: List of custom attribute configs of case type + :type data: [CustomAttributeConfig], optional + """ + if data is not unset: + kwargs["data"] = data + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/custom_attribute_type.py b/src/datadog_api_client/v2/model/custom_attribute_type.py new file mode 100644 index 0000000000..1e91eafa96 --- /dev/null +++ b/src/datadog_api_client/v2/model/custom_attribute_type.py @@ -0,0 +1,41 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class CustomAttributeType(ModelSimple): + """ + Custom attributes type + + :param value: Must be one of ["URL", "TEXT", "NUMBER"]. + :type value: str + """ + + allowed_values = { + "URL", + "TEXT", + "NUMBER", + } + URL: ClassVar["CustomAttributeType"] + TEXT: ClassVar["CustomAttributeType"] + NUMBER: ClassVar["CustomAttributeType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +CustomAttributeType.URL = CustomAttributeType("URL") +CustomAttributeType.TEXT = CustomAttributeType("TEXT") +CustomAttributeType.NUMBER = CustomAttributeType("NUMBER") diff --git a/src/datadog_api_client/v2/model/custom_attribute_value.py b/src/datadog_api_client/v2/model/custom_attribute_value.py new file mode 100644 index 0000000000..80fc1e8cc7 --- /dev/null +++ b/src/datadog_api_client/v2/model/custom_attribute_value.py @@ -0,0 +1,60 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.custom_attribute_type import CustomAttributeType + from datadog_api_client.v2.model.custom_attribute_values_union import CustomAttributeValuesUnion + + +class CustomAttributeValue(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.custom_attribute_type import CustomAttributeType + from datadog_api_client.v2.model.custom_attribute_values_union import CustomAttributeValuesUnion + + return { + "is_multi": (bool,), + "type": (CustomAttributeType,), + "value": (CustomAttributeValuesUnion,), + } + + attribute_map = { + "is_multi": "is_multi", + "type": "type", + "value": "value", + } + + def __init__( + self_, + is_multi: bool, + type: CustomAttributeType, + value: Union[CustomAttributeValuesUnion, str, List[str], float, List[float]], + **kwargs, + ): + """ + Custom attribute values + + :param is_multi: If true, value must be an array + :type is_multi: bool + + :param type: Custom attributes type + :type type: CustomAttributeType + + :param value: Union of supported value for a custom attribute + :type value: CustomAttributeValuesUnion + """ + super().__init__(kwargs) + + self_.is_multi = is_multi + self_.type = type + self_.value = value diff --git a/src/datadog_api_client/v2/model/custom_attribute_values_union.py b/src/datadog_api_client/v2/model/custom_attribute_values_union.py new file mode 100644 index 0000000000..2f7a506c3e --- /dev/null +++ b/src/datadog_api_client/v2/model/custom_attribute_values_union.py @@ -0,0 +1,36 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelComposed, + cached_property, +) + + +class CustomAttributeValuesUnion(ModelComposed): + def __init__(self, **kwargs): + """ + Union of supported value for a custom attribute + """ + super().__init__(kwargs) + + @cached_property + def _composed_schemas(_): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + return { + "oneOf": [ + str, + [str], + float, + [float], + ], + } diff --git a/src/datadog_api_client/v2/model/timeline_cell.py b/src/datadog_api_client/v2/model/timeline_cell.py new file mode 100644 index 0000000000..4b6a3ee955 --- /dev/null +++ b/src/datadog_api_client/v2/model/timeline_cell.py @@ -0,0 +1,98 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + datetime, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.timeline_cell_author import TimelineCellAuthor + from datadog_api_client.v2.model.timeline_cell_content import TimelineCellContent + from datadog_api_client.v2.model.timeline_cell_type import TimelineCellType + from datadog_api_client.v2.model.timeline_cell_author_user import TimelineCellAuthorUser + from datadog_api_client.v2.model.timeline_cell_content_comment import TimelineCellContentComment + + +class TimelineCell(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.timeline_cell_author import TimelineCellAuthor + from datadog_api_client.v2.model.timeline_cell_content import TimelineCellContent + from datadog_api_client.v2.model.timeline_cell_type import TimelineCellType + + return { + "author": (TimelineCellAuthor,), + "cell_content": (TimelineCellContent,), + "created_at": (datetime,), + "deleted_at": (datetime,), + "modified_at": (datetime,), + "type": (TimelineCellType,), + } + + attribute_map = { + "author": "author", + "cell_content": "cell_content", + "created_at": "created_at", + "deleted_at": "deleted_at", + "modified_at": "modified_at", + "type": "type", + } + read_only_vars = { + "created_at", + "deleted_at", + "modified_at", + } + + def __init__( + self_, + author: Union[TimelineCellAuthor, TimelineCellAuthorUser, UnsetType] = unset, + cell_content: Union[TimelineCellContent, TimelineCellContentComment, UnsetType] = unset, + created_at: Union[datetime, UnsetType] = unset, + deleted_at: Union[datetime, UnsetType] = unset, + modified_at: Union[datetime, UnsetType] = unset, + type: Union[TimelineCellType, UnsetType] = unset, + **kwargs, + ): + """ + timeline cell + + :param author: author of the timeline cell + :type author: TimelineCellAuthor, optional + + :param cell_content: timeline cell content + :type cell_content: TimelineCellContent, optional + + :param created_at: Timestamp of when the cell was created + :type created_at: datetime, optional + + :param deleted_at: Timestamp of when the cell was deleted + :type deleted_at: datetime, optional + + :param modified_at: Timestamp of when the cell was last modified + :type modified_at: datetime, optional + + :param type: Timeline cell content type + :type type: TimelineCellType, optional + """ + if author is not unset: + kwargs["author"] = author + if cell_content is not unset: + kwargs["cell_content"] = cell_content + if created_at is not unset: + kwargs["created_at"] = created_at + if deleted_at is not unset: + kwargs["deleted_at"] = deleted_at + if modified_at is not unset: + kwargs["modified_at"] = modified_at + if type is not unset: + kwargs["type"] = type + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/timeline_cell_author.py b/src/datadog_api_client/v2/model/timeline_cell_author.py new file mode 100644 index 0000000000..94b2a51cdc --- /dev/null +++ b/src/datadog_api_client/v2/model/timeline_cell_author.py @@ -0,0 +1,41 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelComposed, + cached_property, +) + + +class TimelineCellAuthor(ModelComposed): + def __init__(self, **kwargs): + """ + author of the timeline cell + + :param content: user author content. + :type content: TimelineCellAuthorUserContent, optional + + :param type: user author type. + :type type: TimelineCellAuthorUserType, optional + """ + super().__init__(kwargs) + + @cached_property + def _composed_schemas(_): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + from datadog_api_client.v2.model.timeline_cell_author_user import TimelineCellAuthorUser + + return { + "oneOf": [ + TimelineCellAuthorUser, + ], + } diff --git a/src/datadog_api_client/v2/model/timeline_cell_author_user.py b/src/datadog_api_client/v2/model/timeline_cell_author_user.py new file mode 100644 index 0000000000..1ad3902245 --- /dev/null +++ b/src/datadog_api_client/v2/model/timeline_cell_author_user.py @@ -0,0 +1,56 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.timeline_cell_author_user_content import TimelineCellAuthorUserContent + from datadog_api_client.v2.model.timeline_cell_author_user_type import TimelineCellAuthorUserType + + +class TimelineCellAuthorUser(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.timeline_cell_author_user_content import TimelineCellAuthorUserContent + from datadog_api_client.v2.model.timeline_cell_author_user_type import TimelineCellAuthorUserType + + return { + "content": (TimelineCellAuthorUserContent,), + "type": (TimelineCellAuthorUserType,), + } + + attribute_map = { + "content": "content", + "type": "type", + } + + def __init__( + self_, + content: Union[TimelineCellAuthorUserContent, UnsetType] = unset, + type: Union[TimelineCellAuthorUserType, UnsetType] = unset, + **kwargs, + ): + """ + timeline cell user author + + :param content: user author content. + :type content: TimelineCellAuthorUserContent, optional + + :param type: user author type. + :type type: TimelineCellAuthorUserType, optional + """ + if content is not unset: + kwargs["content"] = content + if type is not unset: + kwargs["type"] = type + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/timeline_cell_author_user_content.py b/src/datadog_api_client/v2/model/timeline_cell_author_user_content.py new file mode 100644 index 0000000000..b32f89371f --- /dev/null +++ b/src/datadog_api_client/v2/model/timeline_cell_author_user_content.py @@ -0,0 +1,64 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +class TimelineCellAuthorUserContent(ModelNormal): + @cached_property + def openapi_types(_): + return { + "email": (str,), + "handle": (str,), + "id": (str,), + "name": (str,), + } + + attribute_map = { + "email": "email", + "handle": "handle", + "id": "id", + "name": "name", + } + + def __init__( + self_, + email: Union[str, UnsetType] = unset, + handle: Union[str, UnsetType] = unset, + id: Union[str, UnsetType] = unset, + name: Union[str, UnsetType] = unset, + **kwargs, + ): + """ + user author content. + + :param email: user email + :type email: str, optional + + :param handle: user handle + :type handle: str, optional + + :param id: user UUID + :type id: str, optional + + :param name: user name + :type name: str, optional + """ + if email is not unset: + kwargs["email"] = email + if handle is not unset: + kwargs["handle"] = handle + if id is not unset: + kwargs["id"] = id + if name is not unset: + kwargs["name"] = name + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/timeline_cell_author_user_type.py b/src/datadog_api_client/v2/model/timeline_cell_author_user_type.py new file mode 100644 index 0000000000..d15571e252 --- /dev/null +++ b/src/datadog_api_client/v2/model/timeline_cell_author_user_type.py @@ -0,0 +1,35 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class TimelineCellAuthorUserType(ModelSimple): + """ + user author type. + + :param value: If omitted defaults to "USER". Must be one of ["USER"]. + :type value: str + """ + + allowed_values = { + "USER", + } + USER: ClassVar["TimelineCellAuthorUserType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +TimelineCellAuthorUserType.USER = TimelineCellAuthorUserType("USER") diff --git a/src/datadog_api_client/v2/model/timeline_cell_content.py b/src/datadog_api_client/v2/model/timeline_cell_content.py new file mode 100644 index 0000000000..86d5d8d47b --- /dev/null +++ b/src/datadog_api_client/v2/model/timeline_cell_content.py @@ -0,0 +1,38 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelComposed, + cached_property, +) + + +class TimelineCellContent(ModelComposed): + def __init__(self, **kwargs): + """ + timeline cell content + + :param message: comment message + :type message: str, optional + """ + super().__init__(kwargs) + + @cached_property + def _composed_schemas(_): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + from datadog_api_client.v2.model.timeline_cell_content_comment import TimelineCellContentComment + + return { + "oneOf": [ + TimelineCellContentComment, + ], + } diff --git a/src/datadog_api_client/v2/model/timeline_cell_content_comment.py b/src/datadog_api_client/v2/model/timeline_cell_content_comment.py new file mode 100644 index 0000000000..dd17fb5510 --- /dev/null +++ b/src/datadog_api_client/v2/model/timeline_cell_content_comment.py @@ -0,0 +1,36 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +class TimelineCellContentComment(ModelNormal): + @cached_property + def openapi_types(_): + return { + "message": (str,), + } + + attribute_map = { + "message": "message", + } + + def __init__(self_, message: Union[str, UnsetType] = unset, **kwargs): + """ + comment content + + :param message: comment message + :type message: str, optional + """ + if message is not unset: + kwargs["message"] = message + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/timeline_cell_resource.py b/src/datadog_api_client/v2/model/timeline_cell_resource.py new file mode 100644 index 0000000000..ef37d1708e --- /dev/null +++ b/src/datadog_api_client/v2/model/timeline_cell_resource.py @@ -0,0 +1,54 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.timeline_cell import TimelineCell + from datadog_api_client.v2.model.timeline_cell_resource_type import TimelineCellResourceType + + +class TimelineCellResource(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.timeline_cell import TimelineCell + from datadog_api_client.v2.model.timeline_cell_resource_type import TimelineCellResourceType + + return { + "attributes": (TimelineCell,), + "id": (str,), + "type": (TimelineCellResourceType,), + } + + attribute_map = { + "attributes": "attributes", + "id": "id", + "type": "type", + } + + def __init__(self_, attributes: TimelineCell, id: str, type: TimelineCellResourceType, **kwargs): + """ + Timeline cell JSON:API resource + + :param attributes: timeline cell + :type attributes: TimelineCell + + :param id: Timeline cell's identifier + :type id: str + + :param type: Timeline cell JSON:API resource type + :type type: TimelineCellResourceType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.id = id + self_.type = type diff --git a/src/datadog_api_client/v2/model/timeline_cell_resource_type.py b/src/datadog_api_client/v2/model/timeline_cell_resource_type.py new file mode 100644 index 0000000000..822cf468ff --- /dev/null +++ b/src/datadog_api_client/v2/model/timeline_cell_resource_type.py @@ -0,0 +1,35 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class TimelineCellResourceType(ModelSimple): + """ + Timeline cell JSON:API resource type + + :param value: If omitted defaults to "timeline_cell". Must be one of ["timeline_cell"]. + :type value: str + """ + + allowed_values = { + "timeline_cell", + } + TIMELINE_CELL: ClassVar["TimelineCellResourceType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +TimelineCellResourceType.TIMELINE_CELL = TimelineCellResourceType("timeline_cell") diff --git a/src/datadog_api_client/v2/model/timeline_cell_type.py b/src/datadog_api_client/v2/model/timeline_cell_type.py new file mode 100644 index 0000000000..9524459304 --- /dev/null +++ b/src/datadog_api_client/v2/model/timeline_cell_type.py @@ -0,0 +1,35 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class TimelineCellType(ModelSimple): + """ + Timeline cell content type + + :param value: If omitted defaults to "COMMENT". Must be one of ["COMMENT"]. + :type value: str + """ + + allowed_values = { + "COMMENT", + } + COMMENT: ClassVar["TimelineCellType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +TimelineCellType.COMMENT = TimelineCellType("COMMENT") diff --git a/src/datadog_api_client/v2/model/timeline_response.py b/src/datadog_api_client/v2/model/timeline_response.py new file mode 100644 index 0000000000..71b2c4a0f6 --- /dev/null +++ b/src/datadog_api_client/v2/model/timeline_response.py @@ -0,0 +1,42 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.timeline_cell_resource import TimelineCellResource + + +class TimelineResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.timeline_cell_resource import TimelineCellResource + + return { + "data": ([TimelineCellResource],), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: Union[List[TimelineCellResource], UnsetType] = unset, **kwargs): + """ + Timeline response + + :param data: The ``TimelineResponse`` ``data``. + :type data: [TimelineCellResource], optional + """ + if data is not unset: + kwargs["data"] = data + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/models/__init__.py b/src/datadog_api_client/v2/models/__init__.py index a370727c3b..b9556edabe 100644 --- a/src/datadog_api_client/v2/models/__init__.py +++ b/src/datadog_api_client/v2/models/__init__.py @@ -499,6 +499,9 @@ from datadog_api_client.v2.model.case_assign_attributes import CaseAssignAttributes from datadog_api_client.v2.model.case_assign_request import CaseAssignRequest from datadog_api_client.v2.model.case_attributes import CaseAttributes +from datadog_api_client.v2.model.case_comment import CaseComment +from datadog_api_client.v2.model.case_comment_attributes import CaseCommentAttributes +from datadog_api_client.v2.model.case_comment_request import CaseCommentRequest from datadog_api_client.v2.model.case_create import CaseCreate from datadog_api_client.v2.model.case_create_attributes import CaseCreateAttributes from datadog_api_client.v2.model.case_create_relationships import CaseCreateRelationships @@ -515,15 +518,30 @@ from datadog_api_client.v2.model.case_trigger import CaseTrigger from datadog_api_client.v2.model.case_trigger_wrapper import CaseTriggerWrapper from datadog_api_client.v2.model.case_type import CaseType +from datadog_api_client.v2.model.case_type_create import CaseTypeCreate +from datadog_api_client.v2.model.case_type_create_request import CaseTypeCreateRequest +from datadog_api_client.v2.model.case_type_resource import CaseTypeResource +from datadog_api_client.v2.model.case_type_resource_attributes import CaseTypeResourceAttributes +from datadog_api_client.v2.model.case_type_resource_type import CaseTypeResourceType +from datadog_api_client.v2.model.case_type_response import CaseTypeResponse +from datadog_api_client.v2.model.case_types_response import CaseTypesResponse from datadog_api_client.v2.model.case_update_attributes import CaseUpdateAttributes from datadog_api_client.v2.model.case_update_attributes_attributes import CaseUpdateAttributesAttributes from datadog_api_client.v2.model.case_update_attributes_request import CaseUpdateAttributesRequest +from datadog_api_client.v2.model.case_update_custom_attribute import CaseUpdateCustomAttribute +from datadog_api_client.v2.model.case_update_custom_attribute_request import CaseUpdateCustomAttributeRequest +from datadog_api_client.v2.model.case_update_description import CaseUpdateDescription +from datadog_api_client.v2.model.case_update_description_attributes import CaseUpdateDescriptionAttributes +from datadog_api_client.v2.model.case_update_description_request import CaseUpdateDescriptionRequest from datadog_api_client.v2.model.case_update_priority import CaseUpdatePriority from datadog_api_client.v2.model.case_update_priority_attributes import CaseUpdatePriorityAttributes from datadog_api_client.v2.model.case_update_priority_request import CaseUpdatePriorityRequest from datadog_api_client.v2.model.case_update_status import CaseUpdateStatus from datadog_api_client.v2.model.case_update_status_attributes import CaseUpdateStatusAttributes from datadog_api_client.v2.model.case_update_status_request import CaseUpdateStatusRequest +from datadog_api_client.v2.model.case_update_title import CaseUpdateTitle +from datadog_api_client.v2.model.case_update_title_attributes import CaseUpdateTitleAttributes +from datadog_api_client.v2.model.case_update_title_request import CaseUpdateTitleRequest from datadog_api_client.v2.model.cases_response import CasesResponse from datadog_api_client.v2.model.cases_response_meta import CasesResponseMeta from datadog_api_client.v2.model.cases_response_meta_pagination import CasesResponseMetaPagination @@ -851,6 +869,19 @@ ) from datadog_api_client.v2.model.csm_serverless_coverage_analysis_data import CsmServerlessCoverageAnalysisData from datadog_api_client.v2.model.csm_serverless_coverage_analysis_response import CsmServerlessCoverageAnalysisResponse +from datadog_api_client.v2.model.custom_attribute_config import CustomAttributeConfig +from datadog_api_client.v2.model.custom_attribute_config_attributes_create import CustomAttributeConfigAttributesCreate +from datadog_api_client.v2.model.custom_attribute_config_create import CustomAttributeConfigCreate +from datadog_api_client.v2.model.custom_attribute_config_create_request import CustomAttributeConfigCreateRequest +from datadog_api_client.v2.model.custom_attribute_config_resource_attributes import ( + CustomAttributeConfigResourceAttributes, +) +from datadog_api_client.v2.model.custom_attribute_config_resource_type import CustomAttributeConfigResourceType +from datadog_api_client.v2.model.custom_attribute_config_response import CustomAttributeConfigResponse +from datadog_api_client.v2.model.custom_attribute_configs_response import CustomAttributeConfigsResponse +from datadog_api_client.v2.model.custom_attribute_type import CustomAttributeType +from datadog_api_client.v2.model.custom_attribute_value import CustomAttributeValue +from datadog_api_client.v2.model.custom_attribute_values_union import CustomAttributeValuesUnion from datadog_api_client.v2.model.custom_connection import CustomConnection from datadog_api_client.v2.model.custom_connection_attributes import CustomConnectionAttributes from datadog_api_client.v2.model.custom_connection_attributes_on_prem_runner import ( @@ -3768,6 +3799,17 @@ from datadog_api_client.v2.model.teams_response_meta_pagination import TeamsResponseMetaPagination from datadog_api_client.v2.model.time_restriction import TimeRestriction from datadog_api_client.v2.model.time_restrictions import TimeRestrictions +from datadog_api_client.v2.model.timeline_cell import TimelineCell +from datadog_api_client.v2.model.timeline_cell_author import TimelineCellAuthor +from datadog_api_client.v2.model.timeline_cell_author_user import TimelineCellAuthorUser +from datadog_api_client.v2.model.timeline_cell_author_user_content import TimelineCellAuthorUserContent +from datadog_api_client.v2.model.timeline_cell_author_user_type import TimelineCellAuthorUserType +from datadog_api_client.v2.model.timeline_cell_content import TimelineCellContent +from datadog_api_client.v2.model.timeline_cell_content_comment import TimelineCellContentComment +from datadog_api_client.v2.model.timeline_cell_resource import TimelineCellResource +from datadog_api_client.v2.model.timeline_cell_resource_type import TimelineCellResourceType +from datadog_api_client.v2.model.timeline_cell_type import TimelineCellType +from datadog_api_client.v2.model.timeline_response import TimelineResponse from datadog_api_client.v2.model.timeseries_formula_query_request import TimeseriesFormulaQueryRequest from datadog_api_client.v2.model.timeseries_formula_query_response import TimeseriesFormulaQueryResponse from datadog_api_client.v2.model.timeseries_formula_request import TimeseriesFormulaRequest @@ -4344,6 +4386,9 @@ "CaseAssignAttributes", "CaseAssignRequest", "CaseAttributes", + "CaseComment", + "CaseCommentAttributes", + "CaseCommentRequest", "CaseCreate", "CaseCreateAttributes", "CaseCreateRelationships", @@ -4360,15 +4405,30 @@ "CaseTrigger", "CaseTriggerWrapper", "CaseType", + "CaseTypeCreate", + "CaseTypeCreateRequest", + "CaseTypeResource", + "CaseTypeResourceAttributes", + "CaseTypeResourceType", + "CaseTypeResponse", + "CaseTypesResponse", "CaseUpdateAttributes", "CaseUpdateAttributesAttributes", "CaseUpdateAttributesRequest", + "CaseUpdateCustomAttribute", + "CaseUpdateCustomAttributeRequest", + "CaseUpdateDescription", + "CaseUpdateDescriptionAttributes", + "CaseUpdateDescriptionRequest", "CaseUpdatePriority", "CaseUpdatePriorityAttributes", "CaseUpdatePriorityRequest", "CaseUpdateStatus", "CaseUpdateStatusAttributes", "CaseUpdateStatusRequest", + "CaseUpdateTitle", + "CaseUpdateTitleAttributes", + "CaseUpdateTitleRequest", "CasesResponse", "CasesResponseMeta", "CasesResponseMetaPagination", @@ -4602,6 +4662,17 @@ "CsmServerlessCoverageAnalysisAttributes", "CsmServerlessCoverageAnalysisData", "CsmServerlessCoverageAnalysisResponse", + "CustomAttributeConfig", + "CustomAttributeConfigAttributesCreate", + "CustomAttributeConfigCreate", + "CustomAttributeConfigCreateRequest", + "CustomAttributeConfigResourceAttributes", + "CustomAttributeConfigResourceType", + "CustomAttributeConfigResponse", + "CustomAttributeConfigsResponse", + "CustomAttributeType", + "CustomAttributeValue", + "CustomAttributeValuesUnion", "CustomConnection", "CustomConnectionAttributes", "CustomConnectionAttributesOnPremRunner", @@ -6709,6 +6780,17 @@ "TeamsResponseMetaPagination", "TimeRestriction", "TimeRestrictions", + "TimelineCell", + "TimelineCellAuthor", + "TimelineCellAuthorUser", + "TimelineCellAuthorUserContent", + "TimelineCellAuthorUserType", + "TimelineCellContent", + "TimelineCellContentComment", + "TimelineCellResource", + "TimelineCellResourceType", + "TimelineCellType", + "TimelineResponse", "TimeseriesFormulaQueryRequest", "TimeseriesFormulaQueryResponse", "TimeseriesFormulaRequest", diff --git a/tests/v2/cassettes/test_scenarios/test_archive_case_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_archive_case_returns_bad_request_response.frozen index 081a252dab..abe36a5543 100644 --- a/tests/v2/cassettes/test_scenarios/test_archive_case_returns_bad_request_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_archive_case_returns_bad_request_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:40.919Z \ No newline at end of file +2025-08-21T12:21:27.652Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_archive_case_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_archive_case_returns_bad_request_response.yaml index 1243424bfb..a94a4d56e5 100644 --- a/tests/v2/cassettes/test_scenarios/test_archive_case_returns_bad_request_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_archive_case_returns_bad_request_response.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type":"STANDARD"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' headers: accept: - application/json @@ -10,7 +10,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"6706fe66-cabd-4b22-b4c5-dd478bba421a","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:41.25066Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"6706fe66-cabd-4b22-b4c5-dd478bba421a","key":"DDFC-72317","merge_status":"NOT_MERGED","priority":"P4","public_id":"72377","status":"OPEN","title":"My + string: '{"data":{"id":"74cc2130-e95a-41d4-8a12-e94f03d8e84a","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:27.993539Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"74cc2130-e95a-41d4-8a12-e94f03d8e84a","key":"DDFC-77675","merge_status":"NOT_MERGED","priority":"P4","public_id":"77757","status":"OPEN","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: @@ -26,7 +26,7 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/6706fe66-cabd-4b22-b4c5-dd478bba421a/archive + uri: https://api.datadoghq.com/api/v2/cases/74cc2130-e95a-41d4-8a12-e94f03d8e84a/archive response: body: string: '{"errors":[{"status":"400","title":"Bad Request","detail":"got type diff --git a/tests/v2/cassettes/test_scenarios/test_archive_case_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_archive_case_returns_not_found_response.frozen index 59cf7189df..f4e4baa596 100644 --- a/tests/v2/cassettes/test_scenarios/test_archive_case_returns_not_found_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_archive_case_returns_not_found_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:41.730Z \ No newline at end of file +2025-08-21T12:21:28.471Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_archive_case_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_archive_case_returns_ok_response.frozen index 57508d4854..afa0d9d078 100644 --- a/tests/v2/cassettes/test_scenarios/test_archive_case_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_archive_case_returns_ok_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:42.155Z \ No newline at end of file +2025-08-21T12:21:28.882Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_archive_case_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_archive_case_returns_ok_response.yaml index 0b48beee56..d2bcb7d936 100644 --- a/tests/v2/cassettes/test_scenarios/test_archive_case_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_archive_case_returns_ok_response.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type":"STANDARD"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' headers: accept: - application/json @@ -10,7 +10,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"b074b409-24f8-42ae-b545-b1486429630d","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:42.51392Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"b074b409-24f8-42ae-b545-b1486429630d","key":"DDFC-72318","merge_status":"NOT_MERGED","priority":"P4","public_id":"72378","status":"OPEN","title":"My + string: '{"data":{"id":"ebf39a42-7726-4b1e-a21a-0e42933aeb4b","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:29.220105Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"ebf39a42-7726-4b1e-a21a-0e42933aeb4b","key":"DDFC-77676","merge_status":"NOT_MERGED","priority":"P4","public_id":"77758","status":"OPEN","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: @@ -26,10 +26,10 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/b074b409-24f8-42ae-b545-b1486429630d/archive + uri: https://api.datadoghq.com/api/v2/cases/ebf39a42-7726-4b1e-a21a-0e42933aeb4b/archive response: body: - string: '{"data":{"id":"b074b409-24f8-42ae-b545-b1486429630d","type":"case","attributes":{"archived_at":"2025-07-21T13:52:42.933945716Z","attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:42.51392Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"b074b409-24f8-42ae-b545-b1486429630d","key":"DDFC-72318","merge_status":"NOT_MERGED","modified_at":"2025-07-21T13:52:42.933946Z","priority":"P4","public_id":"72378","status":"OPEN","title":"My + string: '{"data":{"id":"ebf39a42-7726-4b1e-a21a-0e42933aeb4b","type":"case","attributes":{"archived_at":"2025-08-21T12:21:29.628037323Z","attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:29.220105Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"ebf39a42-7726-4b1e-a21a-0e42933aeb4b","key":"DDFC-77676","merge_status":"NOT_MERGED","modified_at":"2025-08-21T12:21:29.628037Z","priority":"P4","public_id":"77758","status":"OPEN","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"modified_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: diff --git a/tests/v2/cassettes/test_scenarios/test_assign_case_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_assign_case_returns_bad_request_response.frozen index 7decaaaea4..2a23424cdd 100644 --- a/tests/v2/cassettes/test_scenarios/test_assign_case_returns_bad_request_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_assign_case_returns_bad_request_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:43.015Z \ No newline at end of file +2025-08-21T12:21:29.698Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_assign_case_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_assign_case_returns_bad_request_response.yaml index 7772706753..151f5ff9e9 100644 --- a/tests/v2/cassettes/test_scenarios/test_assign_case_returns_bad_request_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_assign_case_returns_bad_request_response.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type":"STANDARD"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' headers: accept: - application/json @@ -10,7 +10,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"510b0121-1477-43c0-8986-78f011016d48","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:43.335245Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"510b0121-1477-43c0-8986-78f011016d48","key":"DDFC-72319","merge_status":"NOT_MERGED","priority":"P4","public_id":"72379","status":"OPEN","title":"My + string: '{"data":{"id":"58c097c1-b44a-4eca-8e92-ec2598a6ca04","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:30.034351Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"58c097c1-b44a-4eca-8e92-ec2598a6ca04","key":"DDFC-77677","merge_status":"NOT_MERGED","priority":"P4","public_id":"77759","status":"OPEN","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: @@ -26,7 +26,7 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/510b0121-1477-43c0-8986-78f011016d48/assign + uri: https://api.datadoghq.com/api/v2/cases/58c097c1-b44a-4eca-8e92-ec2598a6ca04/assign response: body: string: '{"errors":[{"status":"400","title":"Bad Request"}]}' diff --git a/tests/v2/cassettes/test_scenarios/test_assign_case_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_assign_case_returns_not_found_response.frozen index 067940f74d..23d4a92202 100644 --- a/tests/v2/cassettes/test_scenarios/test_assign_case_returns_not_found_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_assign_case_returns_not_found_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:43.820Z \ No newline at end of file +2025-08-21T12:21:30.504Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_assign_case_returns_not_found_response.yaml b/tests/v2/cassettes/test_scenarios/test_assign_case_returns_not_found_response.yaml index cb0bf4b840..a7536ee67f 100644 --- a/tests/v2/cassettes/test_scenarios/test_assign_case_returns_not_found_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_assign_case_returns_not_found_response.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"email":"Test-Assign_case_returns_Not_Found_response-1753105963@datadoghq.com","title":"user + body: '{"data":{"attributes":{"email":"Test-Assign_case_returns_Not_Found_response-1755778890@datadoghq.com","title":"user title"},"type":"users"}}' headers: accept: @@ -11,7 +11,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/users response: body: - string: '{"data":{"type":"users","id":"fa033cd0-6639-11f0-b658-96290b93dbfc","attributes":{"name":null,"handle":"test-assign_case_returns_not_found_response-1753105963@datadoghq.com","created_at":"2025-07-21T13:52:44.217086+00:00","modified_at":"2025-07-21T13:52:44.217086+00:00","email":"test-assign_case_returns_not_found_response-1753105963@datadoghq.com","icon":"https://secure.gravatar.com/avatar/de9eda912656e39d585005ddc0880775?s=48&d=retro","title":"user + string: '{"data":{"type":"users","id":"5e7df5cb-7e89-11f0-b3e2-2ee8b0ead543","attributes":{"name":null,"handle":"test-assign_case_returns_not_found_response-1755778890@datadoghq.com","created_at":"2025-08-21T12:21:30.941829+00:00","modified_at":"2025-08-21T12:21:30.941829+00:00","email":"test-assign_case_returns_not_found_response-1755778890@datadoghq.com","icon":"https://secure.gravatar.com/avatar/64a43b3e8bfc89456f8304f2382a6ca6?s=48&d=retro","title":"user title","verified":false,"service_account":false,"disabled":false,"allowed_login_methods":[],"status":"Pending"},"relationships":{"roles":{"data":[]},"org":{"data":{"type":"orgs","id":"4dee724d-00cc-11ea-a77b-570c9d03c6c5"}}}}} ' @@ -22,7 +22,7 @@ interactions: code: 201 message: Created - request: - body: '{"data":{"attributes":{"assignee_id":"fa033cd0-6639-11f0-b658-96290b93dbfc"},"type":"case"}}' + body: '{"data":{"attributes":{"assignee_id":"5e7df5cb-7e89-11f0-b3e2-2ee8b0ead543"},"type":"case"}}' headers: accept: - application/json @@ -45,7 +45,7 @@ interactions: accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/users/fa033cd0-6639-11f0-b658-96290b93dbfc + uri: https://api.datadoghq.com/api/v2/users/5e7df5cb-7e89-11f0-b3e2-2ee8b0ead543 response: body: string: '' diff --git a/tests/v2/cassettes/test_scenarios/test_assign_case_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_assign_case_returns_ok_response.frozen index 4e634aa5c5..eaddcd09c0 100644 --- a/tests/v2/cassettes/test_scenarios/test_assign_case_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_assign_case_returns_ok_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:45.309Z \ No newline at end of file +2025-08-21T12:21:32.041Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_assign_case_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_assign_case_returns_ok_response.yaml index 15dc415d47..70f3f85181 100644 --- a/tests/v2/cassettes/test_scenarios/test_assign_case_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_assign_case_returns_ok_response.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type":"STANDARD"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' headers: accept: - application/json @@ -10,7 +10,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"fd1228dc-d475-4a0b-8677-7a9ce3b50b3d","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:45.654592Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"fd1228dc-d475-4a0b-8677-7a9ce3b50b3d","key":"DDFC-72320","merge_status":"NOT_MERGED","priority":"P4","public_id":"72380","status":"OPEN","title":"My + string: '{"data":{"id":"518b7916-d7f6-437b-9d53-fd1171a34e36","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:32.399774Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"518b7916-d7f6-437b-9d53-fd1171a34e36","key":"DDFC-77678","merge_status":"NOT_MERGED","priority":"P4","public_id":"77760","status":"OPEN","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: @@ -19,7 +19,7 @@ interactions: code: 201 message: Created - request: - body: '{"data":{"attributes":{"email":"Test-Assign_case_returns_OK_response-1753105965@datadoghq.com","title":"user + body: '{"data":{"attributes":{"email":"Test-Assign_case_returns_OK_response-1755778892@datadoghq.com","title":"user title"},"type":"users"}}' headers: accept: @@ -30,7 +30,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/users response: body: - string: '{"data":{"type":"users","id":"fb218c6d-6639-11f0-a2d3-1a819e56f795","attributes":{"name":null,"handle":"test-assign_case_returns_ok_response-1753105965@datadoghq.com","created_at":"2025-07-21T13:52:46.093451+00:00","modified_at":"2025-07-21T13:52:46.093451+00:00","email":"test-assign_case_returns_ok_response-1753105965@datadoghq.com","icon":"https://secure.gravatar.com/avatar/a6015cb53f5ee1693a8a69c8f6904fae?s=48&d=retro","title":"user + string: '{"data":{"type":"users","id":"5fa2dcfc-7e89-11f0-b48f-b232d3abeaee","attributes":{"name":null,"handle":"test-assign_case_returns_ok_response-1755778892@datadoghq.com","created_at":"2025-08-21T12:21:32.861393+00:00","modified_at":"2025-08-21T12:21:32.861393+00:00","email":"test-assign_case_returns_ok_response-1755778892@datadoghq.com","icon":"https://secure.gravatar.com/avatar/535bf423901f0d3afd616c55201a53b7?s=48&d=retro","title":"user title","verified":false,"service_account":false,"disabled":false,"allowed_login_methods":[],"status":"Pending"},"relationships":{"roles":{"data":[]},"org":{"data":{"type":"orgs","id":"4dee724d-00cc-11ea-a77b-570c9d03c6c5"}}}}} ' @@ -41,18 +41,18 @@ interactions: code: 201 message: Created - request: - body: '{"data":{"attributes":{"assignee_id":"fb218c6d-6639-11f0-a2d3-1a819e56f795"},"type":"case"}}' + body: '{"data":{"attributes":{"assignee_id":"5fa2dcfc-7e89-11f0-b48f-b232d3abeaee"},"type":"case"}}' headers: accept: - application/json content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/fd1228dc-d475-4a0b-8677-7a9ce3b50b3d/assign + uri: https://api.datadoghq.com/api/v2/cases/518b7916-d7f6-437b-9d53-fd1171a34e36/assign response: body: - string: '{"data":{"id":"fd1228dc-d475-4a0b-8677-7a9ce3b50b3d","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:45.654592Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"fd1228dc-d475-4a0b-8677-7a9ce3b50b3d","key":"DDFC-72320","merge_status":"NOT_MERGED","modified_at":"2025-07-21T13:52:46.52116Z","priority":"P4","public_id":"72380","status":"OPEN","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"assignee":{"data":{"id":"fb218c6d-6639-11f0-a2d3-1a819e56f795","type":"user"}},"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"modified_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}},{"id":"fb218c6d-6639-11f0-a2d3-1a819e56f795","type":"user","attributes":{"active":false,"email":"test-assign_case_returns_ok_response-1753105965@datadoghq.com","handle":"test-assign_case_returns_ok_response-1753105965@datadoghq.com","name":""}}]}' + string: '{"data":{"id":"518b7916-d7f6-437b-9d53-fd1171a34e36","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:32.399774Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"518b7916-d7f6-437b-9d53-fd1171a34e36","key":"DDFC-77678","merge_status":"NOT_MERGED","modified_at":"2025-08-21T12:21:33.288617Z","priority":"P4","public_id":"77760","status":"OPEN","title":"My + new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"assignee":{"data":{"id":"5fa2dcfc-7e89-11f0-b48f-b232d3abeaee","type":"user"}},"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"modified_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}},{"id":"5fa2dcfc-7e89-11f0-b48f-b232d3abeaee","type":"user","attributes":{"active":false,"email":"test-assign_case_returns_ok_response-1755778892@datadoghq.com","handle":"test-assign_case_returns_ok_response-1755778892@datadoghq.com","name":""}}]}' headers: content-type: - application/vnd.api+json @@ -65,7 +65,7 @@ interactions: accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/users/fb218c6d-6639-11f0-a2d3-1a819e56f795 + uri: https://api.datadoghq.com/api/v2/users/5fa2dcfc-7e89-11f0-b48f-b232d3abeaee response: body: string: '' diff --git a/tests/v2/cassettes/test_scenarios/test_comment_case_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_comment_case_returns_bad_request_response.frozen new file mode 100644 index 0000000000..c342510f6c --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_comment_case_returns_bad_request_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:21:33.905Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_comment_case_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_comment_case_returns_bad_request_response.yaml new file mode 100644 index 0000000000..793564fb5b --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_comment_case_returns_bad_request_response.yaml @@ -0,0 +1,39 @@ +interactions: +- request: + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases + response: + body: + string: '{"data":{"id":"abf22995-c1a1-4052-a28a-9ff104bd3996","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:34.272688Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"abf22995-c1a1-4052-a28a-9ff104bd3996","key":"DDFC-77679","merge_status":"NOT_MERGED","priority":"P4","public_id":"77761","status":"OPEN","title":"My + new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"comment":""},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/abf22995-c1a1-4052-a28a-9ff104bd3996/comment + response: + body: + string: '{"errors":[{"status":"400","title":"Bad Request"}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 400 + message: Bad Request +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_comment_case_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_comment_case_returns_not_found_response.frozen new file mode 100644 index 0000000000..5253bbf506 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_comment_case_returns_not_found_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:21:34.728Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_comment_case_returns_not_found_response.yaml b/tests/v2/cassettes/test_scenarios/test_comment_case_returns_not_found_response.yaml new file mode 100644 index 0000000000..5f7aaffd4b --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_comment_case_returns_not_found_response.yaml @@ -0,0 +1,20 @@ +interactions: +- request: + body: '{"data":{"attributes":{"comment":"Hello world !"},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/67d80aa3-36ff-44b9-a694-c501a7591737/comment + response: + body: + string: '{"errors":[{"code":"resource_not_found","title":"case not found"}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_comment_case_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_comment_case_returns_ok_response.frozen new file mode 100644 index 0000000000..31d9d7c662 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_comment_case_returns_ok_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:21:35.118Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_comment_case_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_comment_case_returns_ok_response.yaml new file mode 100644 index 0000000000..bf58c23ad0 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_comment_case_returns_ok_response.yaml @@ -0,0 +1,54 @@ +interactions: +- request: + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases + response: + body: + string: '{"data":{"id":"a5d60060-c004-4eaa-932a-8107847feda4","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:35.460989Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"a5d60060-c004-4eaa-932a-8107847feda4","key":"DDFC-77680","merge_status":"NOT_MERGED","priority":"P4","public_id":"77762","status":"OPEN","title":"My + new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"comment":"Hello World !"},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/a5d60060-c004-4eaa-932a-8107847feda4/comment + response: + body: + string: '{"data":[{"id":"ea039a22-2da2-43fe-b2ec-71b7c4091459","type":"timeline_cell","attributes":{"author":{"type":"USER","content":{"ID":"3ad549bf-eba0-11e9-a77a-0705486660d0","name":"frog","email":"frog@datadoghq.com","handle":"frog@datadoghq.com","active":true}},"cell_content":{"message":"Hello + World !"},"content":"{\"message\":\"Hello World !\"}","created_at":"2025-08-21T12:21:35.873104965Z","type":"COMMENT"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 200 + message: OK +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/a5d60060-c004-4eaa-932a-8107847feda4/comment/ea039a22-2da2-43fe-b2ec-71b7c4091459 + response: + body: + string: '' + headers: {} + status: + code: 204 + message: No Content +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_bad_request_response.frozen index 4494f306b1..cde7721161 100644 --- a/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_bad_request_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_bad_request_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:47.155Z \ No newline at end of file +2025-08-21T12:21:36.374Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_bad_request_response.yaml index a270cb0fe5..02a1f47295 100644 --- a/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_bad_request_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_bad_request_response.yaml @@ -1,7 +1,7 @@ interactions: - request: body: '{"data":{"attributes":{"priority":"NOT_DEFINED","title":"Security breach - investigation","type":"STANDARD"},"relationships":{"assignee":{"data":{"id":"00000000-0000-0000-0000-000000000000","type":"userx"}},"project":{"data":{"id":"e555e290-ed65-49bd-ae18-8acbfcf18db7","type":"project"}}},"type":"case"}}' + investigation","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"assignee":{"data":{"id":"00000000-0000-0000-0000-000000000000","type":"userx"}},"project":{"data":{"id":"e555e290-ed65-49bd-ae18-8acbfcf18db7","type":"project"}}},"type":"case"}}' headers: accept: - application/json diff --git a/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_created_response.frozen b/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_created_response.frozen index c1e8fb0c3b..e381fa1f38 100644 --- a/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_created_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_created_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:47.527Z \ No newline at end of file +2025-08-21T12:21:36.744Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_created_response.yaml b/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_created_response.yaml index ee77c5abd5..48d72c52a0 100644 --- a/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_created_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_created_response.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"email":"Test-Create_a_case_returns_CREATED_response-1753105967@datadoghq.com","title":"user + body: '{"data":{"attributes":{"email":"Test-Create_a_case_returns_CREATED_response-1755778896@datadoghq.com","title":"user title"},"type":"users"}}' headers: accept: @@ -11,7 +11,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/users response: body: - string: '{"data":{"type":"users","id":"fc35a29f-6639-11f0-8bee-a24ce66fd256","attributes":{"name":null,"handle":"test-create_a_case_returns_created_response-1753105967@datadoghq.com","created_at":"2025-07-21T13:52:47.902815+00:00","modified_at":"2025-07-21T13:52:47.902815+00:00","email":"test-create_a_case_returns_created_response-1753105967@datadoghq.com","icon":"https://secure.gravatar.com/avatar/600ad64c52b4a9b6a9f2a46d8fa9ec0a?s=48&d=retro","title":"user + string: '{"data":{"type":"users","id":"62317a89-7e89-11f0-9461-ce4f97735c1f","attributes":{"name":null,"handle":"test-create_a_case_returns_created_response-1755778896@datadoghq.com","created_at":"2025-08-21T12:21:37.151481+00:00","modified_at":"2025-08-21T12:21:37.151481+00:00","email":"test-create_a_case_returns_created_response-1755778896@datadoghq.com","icon":"https://secure.gravatar.com/avatar/4f1bc8c54bac47b85df020d44f88b368?s=48&d=retro","title":"user title","verified":false,"service_account":false,"disabled":false,"allowed_login_methods":[],"status":"Pending"},"relationships":{"roles":{"data":[]},"org":{"data":{"type":"orgs","id":"4dee724d-00cc-11ea-a77b-570c9d03c6c5"}}}}} ' @@ -23,7 +23,7 @@ interactions: message: Created - request: body: '{"data":{"attributes":{"priority":"NOT_DEFINED","title":"Security breach - investigation in 20df485fb3942e6f","type":"STANDARD"},"relationships":{"assignee":{"data":{"id":"fc35a29f-6639-11f0-8bee-a24ce66fd256","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + investigation in bcacd973748e4428","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"assignee":{"data":{"id":"62317a89-7e89-11f0-9461-ce4f97735c1f","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' headers: accept: - application/json @@ -33,8 +33,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"2275ce7b-781b-4539-b0f3-2cc1b2140565","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:48.320633Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"2275ce7b-781b-4539-b0f3-2cc1b2140565","key":"DDFC-72321","merge_status":"NOT_MERGED","priority":"NOT_DEFINED","public_id":"72381","status":"OPEN","title":"Security - breach investigation in 20df485fb3942e6f","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"assignee":{"data":{"id":"fc35a29f-6639-11f0-8bee-a24ce66fd256","type":"user"}},"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}},{"id":"fc35a29f-6639-11f0-8bee-a24ce66fd256","type":"user","attributes":{"active":false,"email":"test-create_a_case_returns_created_response-1753105967@datadoghq.com","handle":"test-create_a_case_returns_created_response-1753105967@datadoghq.com","name":""}}]}' + string: '{"data":{"id":"137da184-00bd-4491-90e8-f6e8e5a371db","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:37.576237Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"137da184-00bd-4491-90e8-f6e8e5a371db","key":"DDFC-77681","merge_status":"NOT_MERGED","priority":"NOT_DEFINED","public_id":"77763","status":"OPEN","title":"Security + breach investigation in bcacd973748e4428","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"assignee":{"data":{"id":"62317a89-7e89-11f0-9461-ce4f97735c1f","type":"user"}},"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}},{"id":"62317a89-7e89-11f0-9461-ce4f97735c1f","type":"user","attributes":{"active":false,"email":"test-create_a_case_returns_created_response-1755778896@datadoghq.com","handle":"test-create_a_case_returns_created_response-1755778896@datadoghq.com","name":""}}]}' headers: content-type: - application/vnd.api+json @@ -47,7 +47,7 @@ interactions: accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/users/fc35a29f-6639-11f0-8bee-a24ce66fd256 + uri: https://api.datadoghq.com/api/v2/users/62317a89-7e89-11f0-9461-ce4f97735c1f response: body: string: '' diff --git a/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_not_found_response.frozen new file mode 100644 index 0000000000..3598fdeadb --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_not_found_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:21:38.277Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_not_found_response.yaml b/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_not_found_response.yaml new file mode 100644 index 0000000000..a865acfebd --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_create_a_case_returns_not_found_response.yaml @@ -0,0 +1,21 @@ +interactions: +- request: + body: '{"data":{"attributes":{"priority":"NOT_DEFINED","title":"Security breach + investigation","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"assignee":{"data":{"id":"00000000-0000-0000-0000-000000000000","type":"user"}},"project":{"data":{"id":"721074c8-63df-4d8f-a43d-ab41dd24ec35","type":"project"}}},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases + response: + body: + string: '{"errors":[{"code":"resource_not_found","title":"project not found"}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_create_a_case_type_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_create_a_case_type_returns_bad_request_response.frozen new file mode 100644 index 0000000000..31c4d64145 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_create_a_case_type_returns_bad_request_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:42:16.724Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_create_a_case_type_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_create_a_case_type_returns_bad_request_response.yaml new file mode 100644 index 0000000000..53b979c16a --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_create_a_case_type_returns_bad_request_response.yaml @@ -0,0 +1,20 @@ +interactions: +- request: + body: '{"data":{"attributes":{"description":"Investigations done in case management","emoji":"notanemoji","name":"Investigation"},"type":"case_type"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/types + response: + body: + string: '{"errors":[{"status":"400","title":"Bad Request"}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 400 + message: Bad Request +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_create_a_case_type_returns_created_response.frozen b/tests/v2/cassettes/test_scenarios/test_create_a_case_type_returns_created_response.frozen new file mode 100644 index 0000000000..624032a5fe --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_create_a_case_type_returns_created_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:42:17.112Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_create_a_case_type_returns_created_response.yaml b/tests/v2/cassettes/test_scenarios/test_create_a_case_type_returns_created_response.yaml new file mode 100644 index 0000000000..31d12956ea --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_create_a_case_type_returns_created_response.yaml @@ -0,0 +1,38 @@ +interactions: +- request: + body: "{\"data\":{\"attributes\":{\"description\":\"Investigations done in case\ + \ management\",\"emoji\":\"\U0001F451\",\"name\":\"Investigation\"},\"type\"\ + :\"case_type\"}}" + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/types + response: + body: + string: "{\"data\":{\"id\":\"5ec976bf-2f12-43c4-be20-542518b5906e\",\"type\"\ + :\"case_type\",\"attributes\":{\"description\":\"Investigations done in case\ + \ management\",\"emoji\":\"\U0001F451\",\"name\":\"Investigation\"}}}" + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/types/5ec976bf-2f12-43c4-be20-542518b5906e + response: + body: + string: '' + headers: {} + status: + code: 204 + message: No Content +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_create_custom_attribute_config_for_a_case_type_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_create_custom_attribute_config_for_a_case_type_returns_bad_request_response.frozen new file mode 100644 index 0000000000..52de478f35 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_create_custom_attribute_config_for_a_case_type_returns_bad_request_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:41:42.531Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_create_custom_attribute_config_for_a_case_type_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_create_custom_attribute_config_for_a_case_type_returns_bad_request_response.yaml new file mode 100644 index 0000000000..594dddcec0 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_create_custom_attribute_config_for_a_case_type_returns_bad_request_response.yaml @@ -0,0 +1,55 @@ +interactions: +- request: + body: "{\"data\":{\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\"\ + :\"\U0001F30D\",\"name\":\"World\"},\"type\":\"case_type\"}}" + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/types + response: + body: + string: "{\"data\":{\"id\":\"869f4c88-f545-4aa1-a03f-152bb52186bf\",\"type\"\ + :\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"\ + emoji\":\"\U0001F30D\",\"name\":\"World\"}}}" + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"display_name":"AWS Region 17557801-0000-0000-0000-175578010200","is_multi":true,"key":"region_a9c736ee59b5f856","type":"FLOAT"},"type":"custom_attribute"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/types/869f4c88-f545-4aa1-a03f-152bb52186bf/custom_attributes + response: + body: + string: '{"errors":[{"status":"400","title":"Bad Request"}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 400 + message: Bad Request +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/types/869f4c88-f545-4aa1-a03f-152bb52186bf + response: + body: + string: '' + headers: {} + status: + code: 204 + message: No Content +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_create_custom_attribute_config_for_a_case_type_returns_created_response.frozen b/tests/v2/cassettes/test_scenarios/test_create_custom_attribute_config_for_a_case_type_returns_created_response.frozen new file mode 100644 index 0000000000..5fad94f19d --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_create_custom_attribute_config_for_a_case_type_returns_created_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:41:43.718Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_create_custom_attribute_config_for_a_case_type_returns_created_response.yaml b/tests/v2/cassettes/test_scenarios/test_create_custom_attribute_config_for_a_case_type_returns_created_response.yaml new file mode 100644 index 0000000000..bc740a0140 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_create_custom_attribute_config_for_a_case_type_returns_created_response.yaml @@ -0,0 +1,56 @@ +interactions: +- request: + body: "{\"data\":{\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\"\ + :\"\U0001F30D\",\"name\":\"World\"},\"type\":\"case_type\"}}" + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/types + response: + body: + string: "{\"data\":{\"id\":\"c19925d5-97c0-4e0e-a49e-fef562db5519\",\"type\"\ + :\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"\ + emoji\":\"\U0001F30D\",\"name\":\"World\"}}}" + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"display_name":"AWS Region 17557801-0000-0000-0000-175578010300","is_multi":true,"key":"region_ba6c2c263864f56d","type":"NUMBER"},"type":"custom_attribute"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/types/c19925d5-97c0-4e0e-a49e-fef562db5519/custom_attributes + response: + body: + string: '{"data":{"id":"63f3f34c-5ec2-4d90-ba8e-63431a6a7010","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"c19925d5-97c0-4e0e-a49e-fef562db5519","display_name":"AWS + Region 17557801-0000-0000-0000-175578010300","is_multi":true,"key":"region_ba6c2c263864f56d","type":"NUMBER"}}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/types/c19925d5-97c0-4e0e-a49e-fef562db5519 + response: + body: + string: '' + headers: {} + status: + code: 204 + message: No Content +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_create_custom_attribute_config_for_a_case_type_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_create_custom_attribute_config_for_a_case_type_returns_not_found_response.frozen new file mode 100644 index 0000000000..2500ff79ae --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_create_custom_attribute_config_for_a_case_type_returns_not_found_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:41:44.923Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_create_custom_attribute_config_for_a_case_type_returns_not_found_response.yaml b/tests/v2/cassettes/test_scenarios/test_create_custom_attribute_config_for_a_case_type_returns_not_found_response.yaml new file mode 100644 index 0000000000..02ccb7836c --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_create_custom_attribute_config_for_a_case_type_returns_not_found_response.yaml @@ -0,0 +1,20 @@ +interactions: +- request: + body: '{"data":{"attributes":{"display_name":"AWS Region 17557801-0000-0000-0000-175578010400","is_multi":true,"key":"region_6308950d19b5ef21","type":"NUMBER"},"type":"custom_attribute"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/types/9fd476d7-a955-454a-851d-980c655c02d3/custom_attributes + response: + body: + string: '{"errors":[{"code":"resource_not_found","title":"case_type not found"}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_delete_a_case_type_returns_notcontent_response.frozen b/tests/v2/cassettes/test_scenarios/test_delete_a_case_type_returns_notcontent_response.frozen new file mode 100644 index 0000000000..a3ed73edb2 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_delete_a_case_type_returns_notcontent_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:42:17.902Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_delete_a_case_type_returns_notcontent_response.yaml b/tests/v2/cassettes/test_scenarios/test_delete_a_case_type_returns_notcontent_response.yaml new file mode 100644 index 0000000000..622290fd5d --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_delete_a_case_type_returns_notcontent_response.yaml @@ -0,0 +1,51 @@ +interactions: +- request: + body: "{\"data\":{\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\"\ + :\"\U0001F30D\",\"name\":\"World\"},\"type\":\"case_type\"}}" + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/types + response: + body: + string: "{\"data\":{\"id\":\"c0bff0de-fe8f-4edd-83c5-b07e1480ca5f\",\"type\"\ + :\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"\ + emoji\":\"\U0001F30D\",\"name\":\"World\"}}}" + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/types/c0bff0de-fe8f-4edd-83c5-b07e1480ca5f + response: + body: + string: '' + headers: {} + status: + code: 204 + message: No Content +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/types/c0bff0de-fe8f-4edd-83c5-b07e1480ca5f + response: + body: + string: '' + headers: {} + status: + code: 204 + message: No Content +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_delete_a_case_type_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_delete_a_case_type_returns_ok_response.frozen new file mode 100644 index 0000000000..4ca9e03b09 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_delete_a_case_type_returns_ok_response.frozen @@ -0,0 +1 @@ +2025-08-19T18:29:15.696Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_delete_a_case_type_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_delete_a_case_type_returns_ok_response.yaml new file mode 100644 index 0000000000..836d376bd5 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_delete_a_case_type_returns_ok_response.yaml @@ -0,0 +1,51 @@ +interactions: +- request: + body: "{\"data\":{\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\"\ + :\"\U0001F30D\",\"name\":\"World\"},\"type\":\"case_type\"}}" + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/types + response: + body: + string: "{\"data\":{\"id\":\"08c89b77-5c9d-4f4f-8d0f-fe6d36351539\",\"type\"\ + :\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"\ + emoji\":\"\U0001F30D\",\"name\":\"World\"}}}" + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/types/08c89b77-5c9d-4f4f-8d0f-fe6d36351539 + response: + body: + string: '' + headers: {} + status: + code: 204 + message: No Content +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/types/08c89b77-5c9d-4f4f-8d0f-fe6d36351539 + response: + body: + string: '' + headers: {} + status: + code: 204 + message: No Content +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_bad_request_response.frozen new file mode 100644 index 0000000000..f373662bda --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_bad_request_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:21:38.654Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_bad_request_response.yaml new file mode 100644 index 0000000000..ec2ff1104e --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_bad_request_response.yaml @@ -0,0 +1,38 @@ +interactions: +- request: + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases + response: + body: + string: '{"data":{"id":"b17ef97a-c38f-4b67-91a6-546a0a3da4d3","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:39.002325Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"b17ef97a-c38f-4b67-91a6-546a0a3da4d3","key":"DDFC-77682","merge_status":"NOT_MERGED","priority":"P4","public_id":"77765","status":"OPEN","title":"My + new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/b17ef97a-c38f-4b67-91a6-546a0a3da4d3/comment/not-an-uuid + response: + body: + string: '{"errors":[{"status":"400","title":"Invalid Parameter","detail":"invalid + parameter \"CommentID\" in \"path\"; expected type \"uuid\""}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 400 + message: Bad Request +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_no_content_response.frozen b/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_no_content_response.frozen new file mode 100644 index 0000000000..72e5af03f1 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_no_content_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:21:39.426Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_no_content_response.yaml b/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_no_content_response.yaml new file mode 100644 index 0000000000..3d4639c58c --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_no_content_response.yaml @@ -0,0 +1,71 @@ +interactions: +- request: + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases + response: + body: + string: '{"data":{"id":"ba3da7da-9df1-4b1d-82be-e7d3d8ee865f","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:39.790273Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"ba3da7da-9df1-4b1d-82be-e7d3d8ee865f","key":"DDFC-77683","merge_status":"NOT_MERGED","priority":"P4","public_id":"77766","status":"OPEN","title":"My + new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"comment":"This is my new comment !"},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/ba3da7da-9df1-4b1d-82be-e7d3d8ee865f/comment + response: + body: + string: '{"data":[{"id":"bd8ee088-15bc-43a1-bc95-92e365b71459","type":"timeline_cell","attributes":{"author":{"type":"USER","content":{"ID":"3ad549bf-eba0-11e9-a77a-0705486660d0","name":"frog","email":"frog@datadoghq.com","handle":"frog@datadoghq.com","active":true}},"cell_content":{"message":"This + is my new comment !"},"content":"{\"message\":\"This is my new comment !\"}","created_at":"2025-08-21T12:21:40.169700502Z","type":"COMMENT"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 200 + message: OK +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/ba3da7da-9df1-4b1d-82be-e7d3d8ee865f/comment/bd8ee088-15bc-43a1-bc95-92e365b71459 + response: + body: + string: '' + headers: {} + status: + code: 204 + message: No Content +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/ba3da7da-9df1-4b1d-82be-e7d3d8ee865f/comment/bd8ee088-15bc-43a1-bc95-92e365b71459 + response: + body: + string: '{"errors":[{"code":"resource_not_found","title":"timeline cell not + found"}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_not_found_response.frozen new file mode 100644 index 0000000000..611d425c71 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_not_found_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:21:41.092Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_not_found_response.yaml b/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_not_found_response.yaml new file mode 100644 index 0000000000..e9028b2ad1 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_not_found_response.yaml @@ -0,0 +1,38 @@ +interactions: +- request: + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases + response: + body: + string: '{"data":{"id":"1933248b-25b2-43fa-8758-a83156a4f2d6","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:41.429607Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"1933248b-25b2-43fa-8758-a83156a4f2d6","key":"DDFC-77684","merge_status":"NOT_MERGED","priority":"P4","public_id":"77767","status":"OPEN","title":"My + new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/1933248b-25b2-43fa-8758-a83156a4f2d6/comment/23fca2aa-4967-4936-bdd7-9157d9e456d7 + response: + body: + string: '{"errors":[{"code":"resource_not_found","title":"timeline cell not + found"}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_delete_custom_attribute_from_case_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_delete_custom_attribute_from_case_returns_not_found_response.frozen new file mode 100644 index 0000000000..6bdf710ece --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_delete_custom_attribute_from_case_returns_not_found_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:21:41.919Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_delete_custom_attribute_from_case_returns_not_found_response.yaml b/tests/v2/cassettes/test_scenarios/test_delete_custom_attribute_from_case_returns_not_found_response.yaml new file mode 100644 index 0000000000..6278402d6f --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_delete_custom_attribute_from_case_returns_not_found_response.yaml @@ -0,0 +1,38 @@ +interactions: +- request: + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases + response: + body: + string: '{"data":{"id":"66a1d45d-1414-478a-86c1-5be13054fedd","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:42.274409Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"66a1d45d-1414-478a-86c1-5be13054fedd","key":"DDFC-77685","merge_status":"NOT_MERGED","priority":"P4","public_id":"77768","status":"OPEN","title":"My + new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: null + headers: + accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/66a1d45d-1414-478a-86c1-5be13054fedd/custom_attributes/invalid_key + response: + body: + string: '{"errors":[{"code":"resource_not_found","title":"failed to update case + (command func error): custom attribute configuration not found","meta":{"key":"invalid_key"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_delete_custom_attribute_from_case_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_delete_custom_attribute_from_case_returns_ok_response.frozen new file mode 100644 index 0000000000..ec2e383177 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_delete_custom_attribute_from_case_returns_ok_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:21:42.721Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_delete_custom_attribute_from_case_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_delete_custom_attribute_from_case_returns_ok_response.yaml new file mode 100644 index 0000000000..83af2325a0 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_delete_custom_attribute_from_case_returns_ok_response.yaml @@ -0,0 +1,93 @@ +interactions: +- request: + body: "{\"data\":{\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\"\ + :\"\U0001F30D\",\"name\":\"World\"},\"type\":\"case_type\"}}" + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/types + response: + body: + string: "{\"data\":{\"id\":\"3dd78296-b989-466d-97ef-428517d851ee\",\"type\"\ + :\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"\ + emoji\":\"\U0001F30D\",\"name\":\"World\"}}}" + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"description":"And its brand new description","display_name":"Attribute + 17557789-0000-0000-0000-175577890200","is_multi":true,"key":"attribute_08d279361f9bcdbb","type":"TEXT"},"type":"custom_attribute"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/types/3dd78296-b989-466d-97ef-428517d851ee/custom_attributes + response: + body: + string: '{"data":{"id":"c18c3669-9507-4293-ac56-08711b1e16a6","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"3dd78296-b989-466d-97ef-428517d851ee","description":"And + its brand new description","display_name":"Attribute 17557789-0000-0000-0000-175577890200","is_multi":true,"key":"attribute_08d279361f9bcdbb","type":"TEXT"}}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"3dd78296-b989-466d-97ef-428517d851ee"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases + response: + body: + string: '{"data":{"id":"15f17d2e-4972-44d9-9f31-684f2d19a16c","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:43.791404Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"15f17d2e-4972-44d9-9f31-684f2d19a16c","key":"DDFC-77686","merge_status":"NOT_MERGED","priority":"P4","public_id":"77769","status":"OPEN","title":"My + new case","type":"TUNKNOWN","type_id":"3dd78296-b989-466d-97ef-428517d851ee"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: null + headers: + accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/15f17d2e-4972-44d9-9f31-684f2d19a16c/custom_attributes/attribute_08d279361f9bcdbb + response: + body: + string: '{"data":{"id":"15f17d2e-4972-44d9-9f31-684f2d19a16c","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:43.791404Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"15f17d2e-4972-44d9-9f31-684f2d19a16c","key":"DDFC-77686","merge_status":"NOT_MERGED","priority":"P4","public_id":"77769","status":"OPEN","title":"My + new case","type":"TUNKNOWN","type_id":"3dd78296-b989-466d-97ef-428517d851ee"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 200 + message: OK +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/types/3dd78296-b989-466d-97ef-428517d851ee + response: + body: + string: '' + headers: {} + status: + code: 204 + message: No Content +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_delete_custom_attributes_config_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_delete_custom_attributes_config_returns_bad_request_response.frozen new file mode 100644 index 0000000000..1fcab2e180 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_delete_custom_attributes_config_returns_bad_request_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:41:45.309Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_delete_custom_attributes_config_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_delete_custom_attributes_config_returns_bad_request_response.yaml new file mode 100644 index 0000000000..352b14395c --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_delete_custom_attributes_config_returns_bad_request_response.yaml @@ -0,0 +1,54 @@ +interactions: +- request: + body: "{\"data\":{\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\"\ + :\"\U0001F30D\",\"name\":\"World\"},\"type\":\"case_type\"}}" + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/types + response: + body: + string: "{\"data\":{\"id\":\"1f787bd5-127a-4005-85df-6d24eb8955c1\",\"type\"\ + :\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"\ + emoji\":\"\U0001F30D\",\"name\":\"World\"}}}" + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/types/1f787bd5-127a-4005-85df-6d24eb8955c1/custom_attributes/not-an-uuid + response: + body: + string: '{"errors":[{"status":"400","title":"Invalid Parameter","detail":"invalid + parameter \"CustomAttributeId\" in \"path\"; expected type \"uuid\""}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 400 + message: Bad Request +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/types/1f787bd5-127a-4005-85df-6d24eb8955c1 + response: + body: + string: '' + headers: {} + status: + code: 204 + message: No Content +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_delete_custom_attributes_config_returns_no_content_response.frozen b/tests/v2/cassettes/test_scenarios/test_delete_custom_attributes_config_returns_no_content_response.frozen new file mode 100644 index 0000000000..84a97519aa --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_delete_custom_attributes_config_returns_no_content_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:41:46.533Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_delete_custom_attributes_config_returns_no_content_response.yaml b/tests/v2/cassettes/test_scenarios/test_delete_custom_attributes_config_returns_no_content_response.yaml new file mode 100644 index 0000000000..f04d38121f --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_delete_custom_attributes_config_returns_no_content_response.yaml @@ -0,0 +1,71 @@ +interactions: +- request: + body: "{\"data\":{\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\"\ + :\"\U0001F30D\",\"name\":\"World\"},\"type\":\"case_type\"}}" + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/types + response: + body: + string: "{\"data\":{\"id\":\"fdf93265-be3d-4a97-ae0d-540b049f7753\",\"type\"\ + :\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"\ + emoji\":\"\U0001F30D\",\"name\":\"World\"}}}" + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"description":"And its brand new description","display_name":"Attribute + 17557801-0000-0000-0000-175578010600","is_multi":true,"key":"attribute_a058b510f096c932","type":"TEXT"},"type":"custom_attribute"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/types/fdf93265-be3d-4a97-ae0d-540b049f7753/custom_attributes + response: + body: + string: '{"data":{"id":"7ce13520-94b7-4391-bb64-c45776011f05","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"fdf93265-be3d-4a97-ae0d-540b049f7753","description":"And + its brand new description","display_name":"Attribute 17557801-0000-0000-0000-175578010600","is_multi":true,"key":"attribute_a058b510f096c932","type":"TEXT"}}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/types/fdf93265-be3d-4a97-ae0d-540b049f7753/custom_attributes/7ce13520-94b7-4391-bb64-c45776011f05 + response: + body: + string: '' + headers: {} + status: + code: 204 + message: No Content +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/types/fdf93265-be3d-4a97-ae0d-540b049f7753 + response: + body: + string: '' + headers: {} + status: + code: 204 + message: No Content +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_get_all_case_types_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_get_all_case_types_returns_ok_response.frozen new file mode 100644 index 0000000000..89769a3222 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_get_all_case_types_returns_ok_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:42:19.085Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_get_all_case_types_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_get_all_case_types_returns_ok_response.yaml new file mode 100644 index 0000000000..7c5a8582d4 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_get_all_case_types_returns_ok_response.yaml @@ -0,0 +1,542 @@ +interactions: +- request: + body: null + headers: + accept: + - application/json + method: GET + uri: https://api.datadoghq.com/api/v2/cases/types + response: + body: + string: "{\"data\":[{\"id\":\"00000000-0000-0000-0000-000000000001\",\"type\"\ + :\"case_type\",\"attributes\":{\"description\":\"General tasks and investigations\"\ + ,\"emoji\":\"\",\"name\":\"Standard\"}},{\"id\":\"00000000-0000-0000-0000-000000000002\"\ + ,\"type\":\"case_type\",\"attributes\":{\"description\":\"Triage and investigate\ + \ correlated alerts and events\",\"emoji\":\"\",\"name\":\"Event Management\"\ + }},{\"id\":\"00000000-0000-0000-0000-000000000003\",\"type\":\"case_type\"\ + ,\"attributes\":{\"description\":\"Used By Datadog Security products and for\ + \ general security workflows\",\"emoji\":\"\",\"name\":\"Security\"}},{\"\ + id\":\"00000000-0000-0000-0000-000000000004\",\"type\":\"case_type\",\"attributes\"\ + :{\"description\":\"Request and track approvals\",\"emoji\":\"\",\"name\"\ + :\"Change Request\"}},{\"id\":\"00000000-0000-0000-0000-000000000005\",\"\ + type\":\"case_type\",\"attributes\":{\"description\":\"Triage and investigate\ + \ errors\",\"emoji\":\"\",\"name\":\"Error Tracking\"}},{\"id\":\"38d28f4f-7ce8-4fbd-ae42-326edf758eb8\"\ + ,\"type\":\"case_type\",\"attributes\":{\"description\":\"Investigations done\ + \ in case management\",\"emoji\":\"\U0001F451\",\"name\":\"Investigation\"\ + }},{\"id\":\"b2304cb7-a65c-4f71-bb17-0800b4badb16\",\"type\":\"case_type\"\ + ,\"attributes\":{\"description\":\"Investigations done in case management\"\ + ,\"emoji\":\"\U0001F451\",\"name\":\"Investigation\"}},{\"id\":\"95802802-1241-4825-835b-1c0322a7ef97\"\ + ,\"type\":\"case_type\",\"attributes\":{\"description\":\"Investigations done\ + \ in case management\",\"emoji\":\"\U0001F451\",\"name\":\"Investigation\"\ + }},{\"id\":\"1855fd31-e717-4af4-85d0-698c652ea0b6\",\"type\":\"case_type\"\ + ,\"attributes\":{\"description\":\"Investigations done in case management\"\ + ,\"emoji\":\"\U0001F451\",\"name\":\"Investigation\"}},{\"id\":\"0cab85fe-12ee-423e-a86e-2363d0e6f5ac\"\ + ,\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\"\ + ,\"emoji\":\"\U0001F30D\",\"name\":\"World\"}},{\"id\":\"5755912a-fb4b-4597-b118-1b0b40f7bb85\"\ + ,\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T09:09:06.196109Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"7ab3b17d-a929-465f-80fa-ada92a865000\",\"type\":\"\ + case_type\",\"attributes\":{\"description\":\"Investigations done in case\ + \ management\",\"emoji\":\"\U0001F451\",\"name\":\"Investigation\"}},{\"id\"\ + :\"7c4b1f31-e48a-49c3-bd41-4646baa16649\",\"type\":\"case_type\",\"attributes\"\ + :{\"deleted_at\":\"2025-08-19T09:13:20.969149Z\",\"description\":\"Worldwide\ + \ case type\",\"emoji\":\"\U0001F30D\",\"name\":\"World\"}},{\"id\":\"09c05ec2-311a-4c36-a813-f72a4a85ec45\"\ + ,\"type\":\"case_type\",\"attributes\":{\"description\":\"Investigations done\ + \ in case management\",\"emoji\":\"\U0001F451\",\"name\":\"Investigation\"\ + }},{\"id\":\"ecea0a37-7f91-4e88-9b16-6f25cd4bdef3\",\"type\":\"case_type\"\ + ,\"attributes\":{\"deleted_at\":\"2025-08-19T09:15:45.46212Z\",\"description\"\ + :\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\":\"World\"}},{\"\ + id\":\"5458e2b8-7362-4b38-85b3-1ab1ea73e08f\",\"type\":\"case_type\",\"attributes\"\ + :{\"description\":\"Investigations done in case management\",\"emoji\":\"\U0001F451\ + \",\"name\":\"Investigation\"}},{\"id\":\"9daa0418-d01c-498a-96d2-7cfe1b2158d5\"\ + ,\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T09:17:15.497537Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"1e2c240d-168c-4b12-aa9b-92376f59f633\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T09:18:31.367268Z\"\ + ,\"description\":\"Investigations done in case management\",\"emoji\":\"\U0001F451\ + \",\"name\":\"Investigation\"}},{\"id\":\"af272a35-fa50-4619-b3df-1ee540b8586a\"\ + ,\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T09:18:32.54125Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"e7717df7-6d36-4cf0-9e07-e58a5fac1cde\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T09:22:35.514966Z\"\ + ,\"description\":\"Investigations done in case management\",\"emoji\":\"\U0001F451\ + \",\"name\":\"Investigation\"}},{\"id\":\"c0da0f83-128b-434c-a535-b1414efab20b\"\ + ,\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T09:22:36.72Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"a6029ab5-177f-437c-97cb-764b2dc80cb6\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T18:24:37.254566Z\"\ + ,\"description\":\"Investigations done in case management\",\"emoji\":\"\U0001F451\ + \",\"name\":\"Investigation\"}},{\"id\":\"933b2876-4617-4674-8ac1-64fa9fa56b87\"\ + ,\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T18:24:38.561424Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"20303a04-10d7-4a67-8afb-cecfb6783004\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T18:29:15.253583Z\"\ + ,\"description\":\"Investigations done in case management\",\"emoji\":\"\U0001F451\ + \",\"name\":\"Investigation\"}},{\"id\":\"08c89b77-5c9d-4f4f-8d0f-fe6d36351539\"\ + ,\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T18:29:16.570705Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"0aec1cee-fa44-468c-86ff-3afab2292f30\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T18:34:51.437054Z\"\ + ,\"description\":\"Investigations done in case management\",\"emoji\":\"\U0001F451\ + \",\"name\":\"Investigation\"}},{\"id\":\"dd0ca022-0166-4012-8179-dab74b6e4946\"\ + ,\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T18:34:52.380136Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"581f9946-2777-4ca2-98f5-839a8583507b\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:12:42.070634Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"d9a99e7c-255c-4328-b29c-249bbbce55d5\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:12:43.427514Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"05978c06-ac0e-480b-a7d5-e1a8f8fe8005\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:12:45.680688Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"ce6e2d21-6719-46d8-8639-f8a196f42678\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:25:30.303213Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"3d9d8463-80fa-4434-a9e4-5dc4f3669c4e\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:25:31.642643Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"fa261a4c-91f2-4d06-972f-a35bee0543f3\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:25:33.792069Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"1de6d896-26ac-4349-9b00-6acfe4879fda\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:37:44.971336Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"f2578542-b2b9-4180-81cf-2eec21b94af1\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:37:46.300977Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"e3c1d47a-e3ae-43ab-8181-334c3bba197e\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:37:48.496084Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"3d603ba5-4391-425b-b12c-cb6dcecc44d6\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:43:19.932314Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"29174d43-f800-4e6f-8756-bf632cd6de41\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:43:22.335462Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"f997d450-7912-4801-a26b-dde8e5ee077e\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:44:00.498935Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"94df43bd-6d07-4187-9a0a-0b8fdee7d1cc\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:44:02.704517Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"b53a3523-4a91-4a29-8634-7d10457d7922\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:46:02.69294Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"2ce0cf3d-c48e-40a2-a3c1-bd5790617e48\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:46:04.026799Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"f86f0afb-4e9d-4cd3-b72a-c62befbee6f1\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:46:05.838903Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"3d86fef6-9e70-4167-b067-4136058dac19\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:49:07.463675Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"55be152c-d505-406f-b1b6-e3ea735cbf5b\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:49:08.784736Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"b108c666-e8e9-4c4e-b912-2c12b00f4f32\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:49:10.569418Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"a706b5ab-f74e-4a11-b3a2-02eb6879241d\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:49:50.869037Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"921b1edd-bbd8-4130-8fb6-417d0be654bd\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:49:52.205117Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"27f02f54-745d-4398-a1a5-ca77708df7e1\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:49:53.955522Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"1e002aff-0037-49f2-b266-4929032860be\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:52:04.296502Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"d9c649e3-92d5-4149-8f1b-e512c466a16d\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:52:05.632924Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"07eb5ad1-bac7-4eab-9341-8edb850f1b74\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:52:07.394803Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"f15cae28-3df0-4c46-ba06-2bd1570a7f68\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:57:00.706851Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"4a252863-46c5-474a-acef-dfd42982ed68\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:57:02.039005Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"9e32b021-edaf-408e-8659-c2b850a1abf3\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:57:03.353195Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"c229eb1e-e333-4f9b-937e-5aeb78d9069f\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:58:47.224259Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"0f4d4aed-e1d3-4fec-88db-f932656653dd\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:58:48.558757Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"c5065726-f32f-4554-a819-de0362e5a773\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:58:50.336027Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"e2018774-4cfa-4ad6-8bd0-366479b8de8e\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:03:19.632702Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"a46e33f1-d290-4aa8-a192-b4f58e063330\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:03:20.945982Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"e935a49b-d4cf-45f3-a63d-5fc857237fbe\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:03:22.683799Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"cb091c10-d4b9-4d93-be90-3b8c1166c4e4\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:05:50.137825Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"12b06e26-8f8f-45d0-be5d-0a3c1046ebb8\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:05:51.471366Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"ada38cc4-4191-484d-bfea-604c921839f5\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:05:53.224893Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"ce15011e-b4ea-41e6-8628-4131f2773ae4\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:07:00.572959Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"a8f6af82-7364-4fa2-be63-f9d82d49f126\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:07:01.933445Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"2f08290c-c478-4c47-9f00-36973b7b021a\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:07:03.713436Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"6bdcc12d-4f8f-4b9f-b33a-645b1c1fac78\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:16:47.195594Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"d3f2e924-efb4-4fea-858a-b0a104de58f1\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:16:48.531005Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"6e204166-35d3-4150-85c9-2b3f1d6a85c5\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:16:50.266373Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"3024568e-3252-40be-b2c5-ecc1898ad815\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T09:16:27.084779Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"2b8488a4-bdab-482c-8a9c-d2a571da65a9\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T09:17:37.421421Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"f0e8ea33-8b30-47de-b9fe-f77b651381a7\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T09:20:12.422783Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"127dd6ad-3a98-4fc6-9e51-edb38b509385\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T09:20:13.955239Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"e7773938-e80d-4bbc-874f-7c655daadee8\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T10:57:28.035038Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"c8e6f6e7-19e3-433e-bba9-73a013527105\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T10:57:35.415978Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"3feeec2b-a582-42a2-a4a2-b6ea50dc5876\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T10:57:36.981262Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"1c08bb63-9e9e-4a0d-bc5a-b90dabe3c95d\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:19:10.000286Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"fe1f962c-99bd-4de2-90c2-0d685a383ce1\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:19:17.329016Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"45efdca9-7cde-4363-888c-c6ffc37000fc\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:19:19.242715Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"6fc2e97b-4d59-48ee-8a00-039b07f147e4\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:22:49.696501Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"387f5315-b404-40f6-9005-cccac8ef06fa\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:22:57.691398Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"37ab3980-5401-4a6f-ae3d-f0f428310448\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:23:00.351616Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"9b42bc58-728f-4ea3-8ab9-d6194ef6e6a8\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:46:41.280003Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"d3f86d4c-876b-4ebd-9c71-050d5d60aacb\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:46:49.368221Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"644f21a0-a650-410c-a8ec-c7ceadeaa28d\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:46:51.227809Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"14b8f6a9-3bd9-4fad-b66e-68dac1bf547a\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:59:08.635193Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"6c66be3b-c6d1-45b0-b1c4-473c04f3dc39\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:59:16.615113Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"fbd65d3f-0fd5-4898-958d-f1e4ded98164\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:59:19.279382Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"581c81f2-968c-4f23-bc35-e5a4f76246e6\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T12:20:04.568041Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"2cf3b0ea-aced-42f8-af92-252b294fb478\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T12:20:12.864796Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"e2d429a0-5dc2-4e7d-aafc-07588da368b2\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T12:20:15.558827Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"7a657b5f-8683-451e-a006-57ea6976073f\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T12:57:00.687594Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"cfbe7974-89c8-4198-ab82-8a184607d214\",\"type\":\"\ + case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\"\ + :\"\U0001F30D\",\"name\":\"World\"}},{\"id\":\"6915e7c1-3e5e-40fb-b7c8-6bc23b427d20\"\ + ,\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T12:57:03.107095Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"71f640f9-7639-4531-93a7-de3fb2ca12a0\",\"type\":\"\ + case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\"\ + :\"\U0001F30D\",\"name\":\"World\"}},{\"id\":\"96dd3710-e051-49f3-b26a-e8dd9a51f87f\"\ + ,\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T12:57:05.538619Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"4d130488-a5f8-4f0a-a738-91dbf1fbf3a6\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:00:30.252878Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"d34c57fb-54a6-4f6c-a86e-3a73de621e2d\",\"type\":\"\ + case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\"\ + :\"\U0001F30D\",\"name\":\"World\"}},{\"id\":\"184c9894-a9a3-49cf-a6cc-489e6842a3dd\"\ + ,\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:00:32.655453Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"032f775d-3a79-426c-bcb7-6b42d3be7ac7\",\"type\":\"\ + case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\"\ + :\"\U0001F30D\",\"name\":\"World\"}},{\"id\":\"fb17bf17-f0bb-4722-b4e5-32445e7f5527\"\ + ,\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:00:35.022904Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"7f184906-a942-4917-a4e0-e8e2fa74b990\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:02:24.873029Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"70214597-0ebf-470d-a7c8-6c596d786ba2\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:02:26.060226Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"e7b57afc-4e28-4c57-9d17-42b1c48eebd9\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:02:27.638116Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"289574f3-de0e-47f0-81c7-06ae80937f31\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:02:29.214104Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"897c1c2e-5f52-46be-9abd-e7a01d3420f4\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:02:30.403304Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"eefd1896-506b-4035-9b60-110ac28e1814\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:07:20.994716Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"c351af96-9af2-4847-a0c8-11b201b1ae5f\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:07:29.127227Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"0c16ab5a-ac15-49a0-ad03-aef57d4d42e8\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:07:31.878967Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"5ee6243b-b005-4bd4-a5f2-fe8c4ff2ddfe\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:13:13.116651Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"7f70d4a0-d06d-49f5-928f-c2ca73aeb862\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:13:21.344841Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"1387ec4d-f40a-4b31-8d0f-bc161326e588\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:13:24.125802Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"02323717-20b8-4ecf-8c34-ef7dd1841f46\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:23:39.707537Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"8ba67013-03d9-47e6-b0fc-746ce6587cef\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:23:48.028828Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"7615e5a7-d95b-41b2-a082-47bf7ac815b9\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:23:50.74861Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"b9e753b2-d41d-40d6-8c1c-3e8522b9cfd5\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:26:49.560438Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"ba86214d-a2f3-4067-b507-77d75ad9db7d\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:26:58.639584Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"7a256076-d73a-4581-a955-c036ca560fd3\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:27:01.335547Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"ca5baeb1-1abf-4983-8761-922382085818\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:28:12.129245Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"a080a4f4-8f02-47b0-854f-b96d06d137e8\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:28:20.260597Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"220d930b-828d-4b57-a38f-f09ced11d439\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:28:23.005866Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"7eb35cdb-4622-4a60-beb1-d292387b0314\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:32:16.836893Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"bb399fc7-2ae4-4b9c-a645-b46f50b01347\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:32:24.852829Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"2402c3fb-d0a2-4460-bd62-da434e3dff7c\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:32:27.626252Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"14c085b7-3e9b-4dfd-9dc0-3adc9e2aaef8\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:59:31.577893Z\"\ + ,\"description\":\"Investigations done in case management\",\"emoji\":\"\U0001F451\ + \",\"name\":\"Investigation\"}},{\"id\":\"ebfc643b-bf3e-4dab-bff0-8c297d1773f3\"\ + ,\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:59:32.398071Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"dc882f3b-36c2-4488-bb32-60367b473df2\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:59:53.449498Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"b300e2b4-5084-443b-b8f2-d1d3611be8d6\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:59:54.609448Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"adc74163-422f-4667-a3a6-9c361863333e\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:59:56.196341Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"25acc483-052f-412f-92a5-00ef2c22fbbb\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:59:57.745023Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"ffa14c93-06d0-4cc2-bcce-f41901be46df\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:59:58.908354Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"c8338d5b-1e0b-4d0e-a404-35ca2f47ff0d\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T14:00:40.051477Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"3879f548-5eec-4c3f-8d7b-b0b2671fd522\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T14:00:49.182953Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"6e04d185-29aa-4770-b14d-fd2741f049cc\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T14:00:52.010409Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"02f6995d-1ce3-4890-b797-e00b3761eafc\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:46:45.09765Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"895b0b2c-98de-482b-b315-195ca654cfd0\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:46:46.298225Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"1debd831-4fa0-40af-b9ca-58e1a718ecb3\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:46:47.832594Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"fe5f13b0-63d5-4a2a-8396-08a2a4e831ab\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:46:49.386532Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"34c76089-ee0c-4f48-bf98-6b9d4e792544\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:46:50.530716Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"a7168617-45a8-4fa1-9657-b6c18f4b4a1b\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:47:09.132674Z\"\ + ,\"description\":\"Investigations done in case management\",\"emoji\":\"\U0001F451\ + \",\"name\":\"Investigation\"}},{\"id\":\"b7459998-1c94-4840-a0ab-3d030f5d582b\"\ + ,\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:47:09.896859Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"9adc531f-1c5f-4140-b833-32f35e8dbee2\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:50:13.125537Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"f66b10ec-73f2-420c-8c2e-b2264cb5577a\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:50:14.31455Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"da768aba-f8c0-473c-bd1c-e4ea9d9f682b\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:50:15.939157Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"4937b115-31fa-4b14-b03b-774a978cbe86\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:50:17.533068Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"887f07b4-8b57-4949-880d-12fb460c9b37\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:50:18.74212Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"559cfd8c-3fb3-4a1c-b0f1-bb36cde9634a\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:14:45.824907Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"a9a925b3-6198-4ad1-8fb7-1d6e2691ed4f\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:14:46.984977Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"e5e19e07-79a9-42d1-b8b7-72d4290648eb\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:14:48.524998Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"1ceaf193-152c-481f-8eb0-08e9470f6d8b\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:14:50.414457Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"6cef1f4c-7201-4e60-b7a1-7843a82835d2\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:14:51.834989Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"6d142c7f-6ab3-4d54-8cdf-f600ddb40ea2\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:15:15.232477Z\"\ + ,\"description\":\"Investigations done in case management\",\"emoji\":\"\U0001F451\ + \",\"name\":\"Investigation\"}},{\"id\":\"d6cc97e5-830f-467f-9d7e-d44fe9376cb2\"\ + ,\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:15:16.048802Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"b93415ca-0644-47d6-9547-f1af159ebe69\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:15:52.950749Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"e9e97b17-30cf-4068-8c5a-657b509b56bf\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:16:01.620133Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"56855740-86fc-42c5-9ed3-82bed933cfa3\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:16:04.310919Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"21779b8e-c1e1-4886-94e9-1b5b18d21366\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:27:38.520987Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"dd9805ac-43e8-447d-a521-25bbddf47f8a\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:27:47.342964Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"1295370d-69c2-43d1-899f-71e9d67e5474\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:27:50.106242Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"b7b7e66e-e6a4-451f-95a1-ad427e83da19\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:44:03.293497Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"615f2510-83f5-46ba-b244-012ced51027a\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:44:11.483169Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"6010ef55-cf69-4e91-959d-a6f14a6384ee\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:44:14.154381Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"e4641157-ebc4-4e6d-b785-84fc8f0347f3\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:49:04.540305Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"602b0512-58e4-4fa5-a004-dccd954b7ab8\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:49:12.994315Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"0295702b-41e6-4a9e-8681-a237d11b5843\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:49:15.713764Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"bfa696f1-341e-4216-ba15-81ac431d6419\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:02:32.063175Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"54997fa0-0c3f-43cb-9e84-39f5f5ce3f09\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:02:40.160052Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"1e036814-3134-4bc5-8e97-1f14ba77fac3\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:02:42.899008Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"3dd78296-b989-466d-97ef-428517d851ee\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:21:44.554387Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"b36e8af6-a952-43bb-b54b-d7b80fc1344e\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:21:52.745427Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"bf109065-175f-4d2f-848d-8f5232dfce1a\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:21:55.422802Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"869f4c88-f545-4aa1-a03f-152bb52186bf\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:41:43.69428Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"c19925d5-97c0-4e0e-a49e-fef562db5519\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:41:44.899197Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"1f787bd5-127a-4005-85df-6d24eb8955c1\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:41:46.505589Z\"\ + ,\"description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\"\ + :\"World\"}},{\"id\":\"fdf93265-be3d-4a97-ae0d-540b049f7753\",\"type\":\"\ + case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:41:48.1106Z\",\"\ + description\":\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\":\"\ + World\"}},{\"id\":\"f69a1398-c8b2-47bf-a624-4374634b4cf6\",\"type\":\"case_type\"\ + ,\"attributes\":{\"deleted_at\":\"2025-08-21T12:41:49.337557Z\",\"description\"\ + :\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\":\"World\"}},{\"\ + id\":\"5ec976bf-2f12-43c4-be20-542518b5906e\",\"type\":\"case_type\",\"attributes\"\ + :{\"deleted_at\":\"2025-08-21T12:42:17.873694Z\",\"description\":\"Investigations\ + \ done in case management\",\"emoji\":\"\U0001F451\",\"name\":\"Investigation\"\ + }},{\"id\":\"c0bff0de-fe8f-4edd-83c5-b07e1480ca5f\",\"type\":\"case_type\"\ + ,\"attributes\":{\"deleted_at\":\"2025-08-21T12:42:18.644537Z\",\"description\"\ + :\"Worldwide case type\",\"emoji\":\"\U0001F30D\",\"name\":\"World\"}}]}" + headers: + content-type: + - application/vnd.api+json + status: + code: 200 + message: OK +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_get_all_custom_attributes_config_of_case_type_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_get_all_custom_attributes_config_of_case_type_returns_ok_response.frozen new file mode 100644 index 0000000000..2fee7be465 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_get_all_custom_attributes_config_of_case_type_returns_ok_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:41:48.135Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_get_all_custom_attributes_config_of_case_type_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_get_all_custom_attributes_config_of_case_type_returns_ok_response.yaml new file mode 100644 index 0000000000..740ea9d29c --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_get_all_custom_attributes_config_of_case_type_returns_ok_response.yaml @@ -0,0 +1,53 @@ +interactions: +- request: + body: "{\"data\":{\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\"\ + :\"\U0001F30D\",\"name\":\"World\"},\"type\":\"case_type\"}}" + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/types + response: + body: + string: "{\"data\":{\"id\":\"f69a1398-c8b2-47bf-a624-4374634b4cf6\",\"type\"\ + :\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"\ + emoji\":\"\U0001F30D\",\"name\":\"World\"}}}" + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: null + headers: + accept: + - application/json + method: GET + uri: https://api.datadoghq.com/api/v2/cases/types/f69a1398-c8b2-47bf-a624-4374634b4cf6/custom_attributes + response: + body: + string: '{"data":[]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 200 + message: OK +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/types/f69a1398-c8b2-47bf-a624-4374634b4cf6 + response: + body: + string: '' + headers: {} + status: + code: 204 + message: No Content +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_get_all_custom_attributes_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_get_all_custom_attributes_returns_ok_response.frozen new file mode 100644 index 0000000000..9313152efc --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_get_all_custom_attributes_returns_ok_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:41:49.382Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_get_all_custom_attributes_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_get_all_custom_attributes_returns_ok_response.yaml new file mode 100644 index 0000000000..cba5f90098 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_get_all_custom_attributes_returns_ok_response.yaml @@ -0,0 +1,80 @@ +interactions: +- request: + body: null + headers: + accept: + - application/json + method: GET + uri: https://api.datadoghq.com/api/v2/cases/types/custom_attributes + response: + body: + string: '{"data":[{"id":"bda504ee-c9d9-45d9-bb48-e08f41452e42","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"d9a99e7c-255c-4328-b29c-249bbbce55d5","display_name":"AWS + Region","is_multi":true,"key":"aws_region","type":"NUMBER"}},{"id":"e2b302ff-22de-4c4b-a1e0-6c485e4d5475","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"a8f6af82-7364-4fa2-be63-f9d82d49f126","display_name":"AWS + Region 17556340-0000-0000-0000-175563402000","is_multi":true,"key":"region_0ee45d926ae1e848","type":"NUMBER"}},{"id":"1333cfaf-56fd-4be3-83b0-5404920deb21","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"d3f2e924-efb4-4fea-858a-b0a104de58f1","display_name":"AWS + Region 17556346-0000-0000-0000-175563460700","is_multi":true,"key":"region_77c0e57a87ea0c59","type":"NUMBER"}},{"id":"71559a35-48cf-4bca-bc26-a58227513098","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"6fc2e97b-4d59-48ee-8a00-039b07f147e4","description":"And + its brand new description","display_name":"Attribute 17556889-0000-0000-0000-175568896700","is_multi":true,"key":"attribute_f083308d73cf8fb6","type":"TEXT"}},{"id":"9a9dfa93-5247-4b9c-8016-e941bf7b90be","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"387f5315-b404-40f6-9005-cccac8ef06fa","description":"And + its brand new description","display_name":"Attribute 17556889-0000-0000-0000-175568897500","is_multi":true,"key":"attribute_9ba0031081800ba4","type":"TEXT"}},{"id":"48376b02-6ce2-4933-84cb-901f326acb3f","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"37ab3980-5401-4a6f-ae3d-f0f428310448","description":"And + its brand new description","display_name":"Attribute 17556889-0000-0000-0000-175568897800","is_multi":true,"key":"attribute_c34388c70e9fcf0d","type":"TEXT"}},{"id":"25e06f7e-2d3e-4ec0-8b27-7b4405a06bcd","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"9b42bc58-728f-4ea3-8ab9-d6194ef6e6a8","description":"And + its brand new description","display_name":"Attribute 17556903-0000-0000-0000-175569039900","is_multi":true,"key":"attribute_8378b7e8181b8c7e","type":"TEXT"}},{"id":"3e191a3a-2ff3-413c-a90f-6209de01d780","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"d3f86d4c-876b-4ebd-9c71-050d5d60aacb","description":"And + its brand new description","display_name":"Attribute 17556904-0000-0000-0000-175569040700","is_multi":true,"key":"attribute_4a060a293658c6f4","type":"TEXT"}},{"id":"aa4bccbc-7e9b-4b07-8ca2-df7143363aa7","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"644f21a0-a650-410c-a8ec-c7ceadeaa28d","description":"And + its brand new description","display_name":"Attribute 17556904-0000-0000-0000-175569040900","is_multi":true,"key":"attribute_523da46ac3093bf6","type":"TEXT"}},{"id":"1462324f-dc66-431f-a947-c9388be48a24","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"14b8f6a9-3bd9-4fad-b66e-68dac1bf547a","description":"And + its brand new description","display_name":"Attribute 17556911-0000-0000-0000-175569114600","is_multi":true,"key":"attribute_814788f737a0ef11","type":"TEXT"}},{"id":"3f8875d3-35bb-44ef-9fd0-fbab1df96f12","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"6c66be3b-c6d1-45b0-b1c4-473c04f3dc39","description":"And + its brand new description","display_name":"Attribute 17556911-0000-0000-0000-175569115400","is_multi":true,"key":"attribute_a98069ab218fcfe9","type":"TEXT"}},{"id":"b2cd82c7-8be8-4463-8e8d-9401835f7522","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"fbd65d3f-0fd5-4898-958d-f1e4ded98164","description":"And + its brand new description","display_name":"Attribute 17556911-0000-0000-0000-175569115700","is_multi":true,"key":"attribute_d46a2098b9ee266f","type":"TEXT"}},{"id":"a9230c4e-044b-4484-906d-6fa58695a811","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"581c81f2-968c-4f23-bc35-e5a4f76246e6","description":"And + its brand new description","display_name":"Attribute 17556924-0000-0000-0000-175569240200","is_multi":true,"key":"attribute_8859075b7a20193b","type":"TEXT"}},{"id":"b4524398-8030-4efb-8a62-b756bd5a805e","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"2cf3b0ea-aced-42f8-af92-252b294fb478","description":"And + its brand new description","display_name":"Attribute 17556924-0000-0000-0000-175569241100","is_multi":true,"key":"attribute_86c4dfcf527d6e57","type":"TEXT"}},{"id":"39317cd6-883f-44d6-9bed-5483d0159755","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"e2d429a0-5dc2-4e7d-aafc-07588da368b2","description":"And + its brand new description","display_name":"Attribute 17556924-0000-0000-0000-175569241300","is_multi":true,"key":"attribute_a134bb4fb8e28721","type":"TEXT"}},{"id":"61982db9-3df8-4812-bb05-0e0653b9850c","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"cfbe7974-89c8-4198-ab82-8a184607d214","display_name":"AWS + Region 17556946-0000-0000-0000-175569462000","is_multi":true,"key":"region_775cb03d363e3098","type":"NUMBER"}},{"id":"59398b5f-7790-49ee-8788-7ff04cc6a9dc","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"d34c57fb-54a6-4f6c-a86e-3a73de621e2d","display_name":"AWS + Region 17556948-0000-0000-0000-175569483000","is_multi":true,"key":"region_b52c3b58c2bf7600","type":"NUMBER"}},{"id":"a7a2d485-b59a-48c2-a656-01118748e67a","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"70214597-0ebf-470d-a7c8-6c596d786ba2","display_name":"AWS + Region 17556949-0000-0000-0000-175569494400","is_multi":true,"key":"region_b7851408833202a0","type":"NUMBER"}},{"id":"52605ddf-9fac-40fe-aed9-0dacb93d9faf","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"eefd1896-506b-4035-9b60-110ac28e1814","description":"And + its brand new description","display_name":"Attribute 17556952-0000-0000-0000-175569523900","is_multi":true,"key":"attribute_5c0b319faa816705","type":"TEXT"}},{"id":"688a583a-c76c-466a-97ef-835efb9411d6","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"c351af96-9af2-4847-a0c8-11b201b1ae5f","description":"And + its brand new description","display_name":"Attribute 17556952-0000-0000-0000-175569524700","is_multi":true,"key":"attribute_7d75ff84c4e2bc37","type":"TEXT"}},{"id":"a33fb20d-794d-465e-a46c-be7976a3eecc","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"0c16ab5a-ac15-49a0-ad03-aef57d4d42e8","description":"And + its brand new description","display_name":"Attribute 17556952-0000-0000-0000-175569524900","is_multi":true,"key":"attribute_178cc47942e4b613","type":"TEXT"}},{"id":"481e660d-e54a-4431-9eb6-aa3eafbba793","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"5ee6243b-b005-4bd4-a5f2-fe8c4ff2ddfe","description":"And + its brand new description","display_name":"Attribute 17556955-0000-0000-0000-175569559100","is_multi":true,"key":"attribute_ce39a90e4dbff5b2","type":"TEXT"}},{"id":"d57330bb-2e36-4f85-a181-de5b407c0784","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"7f70d4a0-d06d-49f5-928f-c2ca73aeb862","description":"And + its brand new description","display_name":"Attribute 17556955-0000-0000-0000-175569559900","is_multi":true,"key":"attribute_5028395cf6855c3c","type":"TEXT"}},{"id":"686b5832-2ea3-49a8-b56c-19209626b503","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"1387ec4d-f40a-4b31-8d0f-bc161326e588","description":"And + its brand new description","display_name":"Attribute 17556956-0000-0000-0000-175569560200","is_multi":true,"key":"attribute_30e2ba5485ed5459","type":"TEXT"}},{"id":"3404866e-32d7-4f50-854c-a06e8f12e39a","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"02323717-20b8-4ecf-8c34-ef7dd1841f46","description":"And + its brand new description","display_name":"Attribute 17556962-0000-0000-0000-175569621700","is_multi":true,"key":"attribute_7d1796807c0cb52e","type":"TEXT"}},{"id":"23ae2400-0dee-4f38-bb01-bef603a5a6ce","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"8ba67013-03d9-47e6-b0fc-746ce6587cef","description":"And + its brand new description","display_name":"Attribute 17556962-0000-0000-0000-175569622600","is_multi":true,"key":"attribute_749357e183774ae6","type":"TEXT"}},{"id":"5c06455e-72c8-422e-9ef8-3c2dcbd74bdb","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"7615e5a7-d95b-41b2-a082-47bf7ac815b9","description":"And + its brand new description","display_name":"Attribute 17556962-0000-0000-0000-175569622800","is_multi":true,"key":"attribute_a4e4d3ba3d31a1ef","type":"TEXT"}},{"id":"79120912-9860-42f0-9ba6-e42ee7aacaaf","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"b9e753b2-d41d-40d6-8c1c-3e8522b9cfd5","description":"And + its brand new description","display_name":"Attribute 17556964-0000-0000-0000-175569640700","is_multi":true,"key":"attribute_e265f65dbcb73e83","type":"TEXT"}},{"id":"9763ab6a-4c89-403d-95d5-3fe4313f0d6b","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"ba86214d-a2f3-4067-b507-77d75ad9db7d","description":"And + its brand new description","display_name":"Attribute 17556964-0000-0000-0000-175569641600","is_multi":true,"key":"attribute_3964549f8b8f9c18","type":"TEXT"}},{"id":"ee11612f-2bc5-4d4b-8c6c-6ab3661ae7d6","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"7a256076-d73a-4581-a955-c036ca560fd3","description":"And + its brand new description","display_name":"Attribute 17556964-0000-0000-0000-175569641900","is_multi":true,"key":"attribute_7566d967ae17a843","type":"TEXT"}},{"id":"599f166e-e3cc-4884-8bae-815313734aee","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"ca5baeb1-1abf-4983-8761-922382085818","description":"And + its brand new description","display_name":"Attribute 17556964-0000-0000-0000-175569649000","is_multi":true,"key":"attribute_60c26d0a25bc30d4","type":"TEXT"}},{"id":"1bdfa747-cf2e-4e0c-8b41-06d8d5d55c04","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"a080a4f4-8f02-47b0-854f-b96d06d137e8","description":"And + its brand new description","display_name":"Attribute 17556964-0000-0000-0000-175569649800","is_multi":true,"key":"attribute_77453b443abcee52","type":"TEXT"}},{"id":"a8822151-6c4b-45a5-9259-e881b235503f","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"220d930b-828d-4b57-a38f-f09ced11d439","description":"And + its brand new description","display_name":"Attribute 17556965-0000-0000-0000-175569650100","is_multi":true,"key":"attribute_1915854b20a2258d","type":"TEXT"}},{"id":"6fc1b29c-338d-4ab1-bf7e-6a0467a32c76","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"7eb35cdb-4622-4a60-beb1-d292387b0314","description":"And + its brand new description","display_name":"Attribute 17556967-0000-0000-0000-175569673400","is_multi":true,"key":"attribute_6f914c880f7b16f5","type":"TEXT"}},{"id":"85c0c697-fe36-4118-9d0e-01fa549f42ca","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"bb399fc7-2ae4-4b9c-a645-b46f50b01347","description":"And + its brand new description","display_name":"Attribute 17556967-0000-0000-0000-175569674300","is_multi":true,"key":"attribute_db02e2104de4b2ff","type":"TEXT"}},{"id":"97ffb8a9-75b7-40cb-a086-2e20954d0b00","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"2402c3fb-d0a2-4460-bd62-da434e3dff7c","description":"And + its brand new description","display_name":"Attribute 17556967-0000-0000-0000-175569674500","is_multi":true,"key":"attribute_5a41c02f06567fd0","type":"TEXT"}},{"id":"c4dbb6c6-5f3a-4d91-a105-58717ae692ba","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"b300e2b4-5084-443b-b8f2-d1d3611be8d6","display_name":"AWS + Region 17556983-0000-0000-0000-175569839300","is_multi":true,"key":"region_fa9fe2cc487703c1","type":"NUMBER"}},{"id":"14cc89ac-6ce2-4f75-a761-bf724ef1fc4a","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"c8338d5b-1e0b-4d0e-a404-35ca2f47ff0d","description":"And + its brand new description","display_name":"Attribute 17556984-0000-0000-0000-175569843800","is_multi":true,"key":"attribute_5aa6271564fed657","type":"TEXT"}},{"id":"cafa5687-2248-4f06-8d99-4afbcaa902c8","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"3879f548-5eec-4c3f-8d7b-b0b2671fd522","description":"And + its brand new description","display_name":"Attribute 17556984-0000-0000-0000-175569844700","is_multi":true,"key":"attribute_af26a7482e81c29e","type":"TEXT"}},{"id":"13f4bfa6-aa37-47c1-95c5-187f47944a3b","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"6e04d185-29aa-4770-b14d-fd2741f049cc","description":"And + its brand new description","display_name":"Attribute 17556984-0000-0000-0000-175569845000","is_multi":true,"key":"attribute_988ac85e509c81a6","type":"TEXT"}},{"id":"c9a3bb56-eb9e-4b4b-9283-db8f1dc68605","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"895b0b2c-98de-482b-b315-195ca654cfd0","display_name":"AWS + Region 17557048-0000-0000-0000-175570480500","is_multi":true,"key":"region_0bc4f8f70481eb5f","type":"NUMBER"}},{"id":"a1d3eb0e-c8c5-4fcc-bb7b-a9e630d9b394","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"f66b10ec-73f2-420c-8c2e-b2264cb5577a","display_name":"AWS + Region 17557050-0000-0000-0000-175570501300","is_multi":true,"key":"region_63d115f6f026a1ba","type":"NUMBER"}},{"id":"f4a4bf9a-c1e0-4f10-8429-45754b878c21","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"a9a925b3-6198-4ad1-8fb7-1d6e2691ed4f","display_name":"AWS + Region 17557748-0000-0000-0000-175577488500","is_multi":true,"key":"region_8264a16ae84e0888","type":"NUMBER"}},{"id":"00011772-5eb7-4ef7-a517-bbb81c349119","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"b93415ca-0644-47d6-9547-f1af159ebe69","description":"And + its brand new description","display_name":"Attribute 17557749-0000-0000-0000-175577495000","is_multi":true,"key":"attribute_84def13b217a3016","type":"TEXT"}},{"id":"72c3cc35-62ef-49e8-b6c6-0e92d379d824","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"e9e97b17-30cf-4068-8c5a-657b509b56bf","description":"And + its brand new description","display_name":"Attribute 17557749-0000-0000-0000-175577495900","is_multi":true,"key":"attribute_58502fb5f71ba03c","type":"TEXT"}},{"id":"f69cc9b7-d422-4b17-916d-d37702882a43","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"56855740-86fc-42c5-9ed3-82bed933cfa3","description":"And + its brand new description","display_name":"Attribute 17557749-0000-0000-0000-175577496200","is_multi":true,"key":"attribute_11aa72538cbc80b0","type":"TEXT"}},{"id":"a7162904-b251-4be6-9122-7e7063f26cfa","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"21779b8e-c1e1-4886-94e9-1b5b18d21366","description":"And + its brand new description","display_name":"Attribute 17557756-0000-0000-0000-175577565600","is_multi":true,"key":"attribute_da8b014dc613e74e","type":"TEXT"}},{"id":"6f9ac272-9f08-47d4-b6d9-e2213a8c67e9","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"dd9805ac-43e8-447d-a521-25bbddf47f8a","description":"And + its brand new description","display_name":"Attribute 17557756-0000-0000-0000-175577566500","is_multi":true,"key":"attribute_7d7558fef3d3f18a","type":"TEXT"}},{"id":"d489ec89-c7d9-4777-ae78-94327a9761d7","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"1295370d-69c2-43d1-899f-71e9d67e5474","description":"And + its brand new description","display_name":"Attribute 17557756-0000-0000-0000-175577566800","is_multi":true,"key":"attribute_cea115a7c56274af","type":"TEXT"}},{"id":"b8472f11-c928-4600-bf66-57e4ef0ac2ac","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"b7b7e66e-e6a4-451f-95a1-ad427e83da19","description":"And + its brand new description","display_name":"Attribute 17557766-0000-0000-0000-175577664100","is_multi":true,"key":"attribute_b1e51c15e5eb4c95","type":"TEXT"}},{"id":"f72172a1-50c2-404a-81cd-4b79c7dc6cfd","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"615f2510-83f5-46ba-b244-012ced51027a","description":"And + its brand new description","display_name":"Attribute 17557766-0000-0000-0000-175577664900","is_multi":true,"key":"attribute_87f0debab731bcf4","type":"TEXT"}},{"id":"93911656-ee55-4269-a8a0-640cd2292eae","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"6010ef55-cf69-4e91-959d-a6f14a6384ee","description":"And + its brand new description","display_name":"Attribute 17557766-0000-0000-0000-175577665200","is_multi":true,"key":"attribute_d97d47c4d1519f5d","type":"TEXT"}},{"id":"680b2451-2eaa-445e-8a60-73c114e0e10a","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"e4641157-ebc4-4e6d-b785-84fc8f0347f3","description":"And + its brand new description","display_name":"Attribute 17557769-0000-0000-0000-175577694200","is_multi":true,"key":"attribute_f462946738b6f280","type":"TEXT"}},{"id":"1fa53572-5ba9-441c-8280-c0e1421569ea","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"602b0512-58e4-4fa5-a004-dccd954b7ab8","description":"And + its brand new description","display_name":"Attribute 17557769-0000-0000-0000-175577695100","is_multi":true,"key":"attribute_7f2c794a40953354","type":"TEXT"}},{"id":"1458f000-f648-4f8a-910d-faf267187405","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"0295702b-41e6-4a9e-8681-a237d11b5843","description":"And + its brand new description","display_name":"Attribute 17557769-0000-0000-0000-175577695300","is_multi":true,"key":"attribute_fb1043dd816c6a32","type":"TEXT"}},{"id":"65a48561-437a-4f26-9eab-69de97482927","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"bfa696f1-341e-4216-ba15-81ac431d6419","description":"And + its brand new description","display_name":"Attribute 17557777-0000-0000-0000-175577775000","is_multi":true,"key":"attribute_4b505c18f8fde726","type":"TEXT"}},{"id":"9679710e-1710-4b81-9fdc-a8aefdc5181c","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"54997fa0-0c3f-43cb-9e84-39f5f5ce3f09","description":"And + its brand new description","display_name":"Attribute 17557777-0000-0000-0000-175577775800","is_multi":true,"key":"attribute_f6b3b818b9e7896f","type":"TEXT"}},{"id":"812ca37d-f3e8-4f12-9f38-a7f72321b7fc","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"1e036814-3134-4bc5-8e97-1f14ba77fac3","description":"And + its brand new description","display_name":"Attribute 17557777-0000-0000-0000-175577776000","is_multi":true,"key":"attribute_48ad4b2bdda0532c","type":"TEXT"}},{"id":"c18c3669-9507-4293-ac56-08711b1e16a6","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"3dd78296-b989-466d-97ef-428517d851ee","description":"And + its brand new description","display_name":"Attribute 17557789-0000-0000-0000-175577890200","is_multi":true,"key":"attribute_08d279361f9bcdbb","type":"TEXT"}},{"id":"49cb8cff-1ff0-4476-b0c9-042e08935cb9","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"b36e8af6-a952-43bb-b54b-d7b80fc1344e","description":"And + its brand new description","display_name":"Attribute 17557789-0000-0000-0000-175577891000","is_multi":true,"key":"attribute_1d2a4f8f9b39a284","type":"TEXT"}},{"id":"df10a213-93aa-4406-98a7-f9a7c5dccefd","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"bf109065-175f-4d2f-848d-8f5232dfce1a","description":"And + its brand new description","display_name":"Attribute 17557789-0000-0000-0000-175577891300","is_multi":true,"key":"attribute_661efcf8a00203e4","type":"TEXT"}},{"id":"63f3f34c-5ec2-4d90-ba8e-63431a6a7010","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"c19925d5-97c0-4e0e-a49e-fef562db5519","display_name":"AWS + Region 17557801-0000-0000-0000-175578010300","is_multi":true,"key":"region_ba6c2c263864f56d","type":"NUMBER"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 200 + message: OK +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_get_the_details_of_a_case_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_get_the_details_of_a_case_returns_not_found_response.frozen index 65a7dda987..aa938cdc38 100644 --- a/tests/v2/cassettes/test_scenarios/test_get_the_details_of_a_case_returns_not_found_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_get_the_details_of_a_case_returns_not_found_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:48.953Z \ No newline at end of file +2025-08-21T12:21:44.593Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_get_the_details_of_a_case_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_get_the_details_of_a_case_returns_ok_response.frozen index 683f8abed3..af8197f687 100644 --- a/tests/v2/cassettes/test_scenarios/test_get_the_details_of_a_case_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_get_the_details_of_a_case_returns_ok_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:49.345Z \ No newline at end of file +2025-08-21T12:21:44.965Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_get_the_details_of_a_case_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_get_the_details_of_a_case_returns_ok_response.yaml index 856b536db5..b84056ab7e 100644 --- a/tests/v2/cassettes/test_scenarios/test_get_the_details_of_a_case_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_get_the_details_of_a_case_returns_ok_response.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type":"STANDARD"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' headers: accept: - application/json @@ -10,7 +10,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"5e66536f-3946-41fd-9e0f-183e719d7128","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:49.694835Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"5e66536f-3946-41fd-9e0f-183e719d7128","key":"DDFC-72322","merge_status":"NOT_MERGED","priority":"P4","public_id":"72382","status":"OPEN","title":"My + string: '{"data":{"id":"57667464-015f-4387-8e29-17f62ee3059b","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:45.294236Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"57667464-015f-4387-8e29-17f62ee3059b","key":"DDFC-77687","merge_status":"NOT_MERGED","priority":"P4","public_id":"77770","status":"OPEN","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: @@ -24,10 +24,10 @@ interactions: accept: - application/json method: GET - uri: https://api.datadoghq.com/api/v2/cases/5e66536f-3946-41fd-9e0f-183e719d7128 + uri: https://api.datadoghq.com/api/v2/cases/57667464-015f-4387-8e29-17f62ee3059b response: body: - string: '{"data":{"id":"5e66536f-3946-41fd-9e0f-183e719d7128","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:49.694835Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"5e66536f-3946-41fd-9e0f-183e719d7128","key":"DDFC-72322","merge_status":"NOT_MERGED","priority":"P4","public_id":"72382","status":"OPEN","title":"My + string: '{"data":{"id":"57667464-015f-4387-8e29-17f62ee3059b","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:45.294236Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"57667464-015f-4387-8e29-17f62ee3059b","key":"DDFC-77687","merge_status":"NOT_MERGED","priority":"P4","public_id":"77770","status":"OPEN","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: diff --git a/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_bad_request_response.frozen index 22ddf6aec4..5dd9a6d723 100644 --- a/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_bad_request_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_bad_request_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:50.131Z \ No newline at end of file +2025-08-21T12:21:45.759Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_bad_request_response.yaml index 03b56cd6c9..939578779b 100644 --- a/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_bad_request_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_bad_request_response.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type":"STANDARD"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' headers: accept: - application/json @@ -10,7 +10,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"5fd92551-50b8-46e9-899d-5846cf3eab9e","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:50.459513Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"5fd92551-50b8-46e9-899d-5846cf3eab9e","key":"DDFC-72323","merge_status":"NOT_MERGED","priority":"P4","public_id":"72383","status":"OPEN","title":"My + string: '{"data":{"id":"2a6a9b1e-c443-4202-9c43-89a5252d1c7b","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:46.10473Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"2a6a9b1e-c443-4202-9c43-89a5252d1c7b","key":"DDFC-77688","merge_status":"NOT_MERGED","priority":"P4","public_id":"77771","status":"OPEN","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: @@ -26,7 +26,7 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/5fd92551-50b8-46e9-899d-5846cf3eab9e/unarchive + uri: https://api.datadoghq.com/api/v2/cases/2a6a9b1e-c443-4202-9c43-89a5252d1c7b/unarchive response: body: string: '{"errors":[{"status":"400","title":"Bad Request","detail":"got type diff --git a/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_not_found_response.frozen index 091e5f1693..09c802bf1f 100644 --- a/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_not_found_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_not_found_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:50.895Z \ No newline at end of file +2025-08-21T12:21:46.550Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_ok_response.frozen index c118a3ee00..59d272c541 100644 --- a/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_ok_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:51.279Z \ No newline at end of file +2025-08-21T12:21:46.929Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_ok_response.yaml index 9cdc21eea2..8f6f5eacca 100644 --- a/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_ok_response.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type":"STANDARD"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' headers: accept: - application/json @@ -10,7 +10,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"b6a0f192-9be6-4898-b05b-f4cc308de679","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:51.610535Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"b6a0f192-9be6-4898-b05b-f4cc308de679","key":"DDFC-72324","merge_status":"NOT_MERGED","priority":"P4","public_id":"72384","status":"OPEN","title":"My + string: '{"data":{"id":"8a827d30-4f30-43b4-96b5-dff1ef3db096","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:47.258408Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"8a827d30-4f30-43b4-96b5-dff1ef3db096","key":"DDFC-77689","merge_status":"NOT_MERGED","priority":"P4","public_id":"77772","status":"OPEN","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: @@ -26,10 +26,10 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/b6a0f192-9be6-4898-b05b-f4cc308de679/unarchive + uri: https://api.datadoghq.com/api/v2/cases/8a827d30-4f30-43b4-96b5-dff1ef3db096/unarchive response: body: - string: '{"data":{"id":"b6a0f192-9be6-4898-b05b-f4cc308de679","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:51.610535Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"b6a0f192-9be6-4898-b05b-f4cc308de679","key":"DDFC-72324","merge_status":"NOT_MERGED","priority":"P4","public_id":"72384","status":"OPEN","title":"My + string: '{"data":{"id":"8a827d30-4f30-43b4-96b5-dff1ef3db096","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:47.258408Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"8a827d30-4f30-43b4-96b5-dff1ef3db096","key":"DDFC-77689","merge_status":"NOT_MERGED","priority":"P4","public_id":"77772","status":"OPEN","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: diff --git a/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_bad_request_response.frozen index 7b3f4dbd14..8f573f99e3 100644 --- a/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_bad_request_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_bad_request_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:52.067Z \ No newline at end of file +2025-08-21T12:21:47.700Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_bad_request_response.yaml index 033f3b3802..b3a5538164 100644 --- a/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_bad_request_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_bad_request_response.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type":"STANDARD"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' headers: accept: - application/json @@ -10,7 +10,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"6e4af4e8-67fd-461a-9664-adf910673121","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:52.413703Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"6e4af4e8-67fd-461a-9664-adf910673121","key":"DDFC-72325","merge_status":"NOT_MERGED","priority":"P4","public_id":"72385","status":"OPEN","title":"My + string: '{"data":{"id":"f38fac75-2d9f-4d1a-b2bd-b8a7e049d63c","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:48.050049Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"f38fac75-2d9f-4d1a-b2bd-b8a7e049d63c","key":"DDFC-77690","merge_status":"NOT_MERGED","priority":"P4","public_id":"77773","status":"OPEN","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: @@ -26,7 +26,7 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/6e4af4e8-67fd-461a-9664-adf910673121/unassign + uri: https://api.datadoghq.com/api/v2/cases/f38fac75-2d9f-4d1a-b2bd-b8a7e049d63c/unassign response: body: string: '{"errors":[{"status":"400","title":"Bad Request","detail":"got type diff --git a/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_not_found_response.frozen index d41e392f87..ab109a77df 100644 --- a/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_not_found_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_not_found_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:52.854Z \ No newline at end of file +2025-08-21T12:21:48.487Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_ok_response.frozen index f5e55d1024..462ec14c66 100644 --- a/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_ok_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:53.249Z \ No newline at end of file +2025-08-21T12:21:48.890Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_ok_response.yaml index ce658db5f9..f3d41a2b8a 100644 --- a/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_ok_response.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type":"STANDARD"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' headers: accept: - application/json @@ -10,7 +10,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"b222e3e7-19fe-434f-ab26-7e0845775ccd","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:53.581415Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"b222e3e7-19fe-434f-ab26-7e0845775ccd","key":"DDFC-72326","merge_status":"NOT_MERGED","priority":"P4","public_id":"72386","status":"OPEN","title":"My + string: '{"data":{"id":"c4036f1d-1f52-4720-822c-beb4d0ed433a","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:49.224833Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"c4036f1d-1f52-4720-822c-beb4d0ed433a","key":"DDFC-77691","merge_status":"NOT_MERGED","priority":"P4","public_id":"77774","status":"OPEN","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: @@ -26,10 +26,10 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/b222e3e7-19fe-434f-ab26-7e0845775ccd/unassign + uri: https://api.datadoghq.com/api/v2/cases/c4036f1d-1f52-4720-822c-beb4d0ed433a/unassign response: body: - string: '{"data":{"id":"b222e3e7-19fe-434f-ab26-7e0845775ccd","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:53.581415Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"b222e3e7-19fe-434f-ab26-7e0845775ccd","key":"DDFC-72326","merge_status":"NOT_MERGED","priority":"P4","public_id":"72386","status":"OPEN","title":"My + string: '{"data":{"id":"c4036f1d-1f52-4720-822c-beb4d0ed433a","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:49.224833Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"c4036f1d-1f52-4720-822c-beb4d0ed433a","key":"DDFC-77691","merge_status":"NOT_MERGED","priority":"P4","public_id":"77774","status":"OPEN","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_attributes_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_attributes_returns_not_found_response.frozen index 9cc9365f13..6532d0eaa1 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_attributes_returns_not_found_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_case_attributes_returns_not_found_response.frozen @@ -1 +1 @@ -2025-07-21T08:23:42.266Z \ No newline at end of file +2025-08-21T12:21:49.646Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_attributes_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_attributes_returns_ok_response.frozen index d438f1b5b2..59779f145b 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_attributes_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_case_attributes_returns_ok_response.frozen @@ -1 +1 @@ -2025-07-21T18:43:31.851Z \ No newline at end of file +2025-08-21T12:21:50.038Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_attributes_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_attributes_returns_ok_response.yaml index fe1f0b530b..92795cf2b3 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_attributes_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_update_case_attributes_returns_ok_response.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type":"STANDARD"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' headers: accept: - application/json @@ -10,7 +10,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"f396c907-777d-4985-9e9d-2a420a0c0515","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T18:42:41.549781Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"f396c907-777d-4985-9e9d-2a420a0c0515","key":"DDFC-72342","merge_status":"NOT_MERGED","priority":"P4","public_id":"72402","status":"OPEN","title":"My + string: '{"data":{"id":"892ea8b9-1e16-48ac-a078-57d3edb55fb9","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:50.40253Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"892ea8b9-1e16-48ac-a078-57d3edb55fb9","key":"DDFC-77692","merge_status":"NOT_MERGED","priority":"P4","public_id":"77775","status":"OPEN","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: @@ -26,10 +26,10 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/f396c907-777d-4985-9e9d-2a420a0c0515/attributes + uri: https://api.datadoghq.com/api/v2/cases/892ea8b9-1e16-48ac-a078-57d3edb55fb9/attributes response: body: - string: '{"data":{"id":"f396c907-777d-4985-9e9d-2a420a0c0515","type":"case","attributes":{"attributes":{"env":["test"],"service":["web-store","web-api"],"team":["engineer"]},"comment_count":0,"created_at":"2025-07-21T18:42:41.549781Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"f396c907-777d-4985-9e9d-2a420a0c0515","key":"DDFC-72342","merge_status":"NOT_MERGED","modified_at":"2025-07-21T18:42:41.694883Z","priority":"P4","public_id":"72402","status":"OPEN","title":"My + string: '{"data":{"id":"892ea8b9-1e16-48ac-a078-57d3edb55fb9","type":"case","attributes":{"attributes":{"env":["test"],"service":["web-store","web-api"],"team":["engineer"]},"comment_count":0,"created_at":"2025-08-21T12:21:50.40253Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"892ea8b9-1e16-48ac-a078-57d3edb55fb9","key":"DDFC-77692","merge_status":"NOT_MERGED","modified_at":"2025-08-21T12:21:50.793875Z","priority":"P4","public_id":"77775","status":"OPEN","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"modified_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_bad_request_response.frozen new file mode 100644 index 0000000000..2b0f39ba66 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_bad_request_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:21:50.857Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_bad_request_response.yaml new file mode 100644 index 0000000000..467939ce7f --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_bad_request_response.yaml @@ -0,0 +1,94 @@ +interactions: +- request: + body: "{\"data\":{\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\"\ + :\"\U0001F30D\",\"name\":\"World\"},\"type\":\"case_type\"}}" + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/types + response: + body: + string: "{\"data\":{\"id\":\"b36e8af6-a952-43bb-b54b-d7b80fc1344e\",\"type\"\ + :\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"\ + emoji\":\"\U0001F30D\",\"name\":\"World\"}}}" + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"description":"And its brand new description","display_name":"Attribute + 17557789-0000-0000-0000-175577891000","is_multi":true,"key":"attribute_1d2a4f8f9b39a284","type":"TEXT"},"type":"custom_attribute"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/types/b36e8af6-a952-43bb-b54b-d7b80fc1344e/custom_attributes + response: + body: + string: '{"data":{"id":"49cb8cff-1ff0-4476-b0c9-042e08935cb9","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"b36e8af6-a952-43bb-b54b-d7b80fc1344e","description":"And + its brand new description","display_name":"Attribute 17557789-0000-0000-0000-175577891000","is_multi":true,"key":"attribute_1d2a4f8f9b39a284","type":"TEXT"}}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"b36e8af6-a952-43bb-b54b-d7b80fc1344e"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases + response: + body: + string: '{"data":{"id":"5ed64f4d-a8d0-4dc6-879c-9b5f10a25cdb","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:51.92835Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"5ed64f4d-a8d0-4dc6-879c-9b5f10a25cdb","key":"DDFC-77693","merge_status":"NOT_MERGED","priority":"P4","public_id":"77776","status":"OPEN","title":"My + new case","type":"TUNKNOWN","type_id":"b36e8af6-a952-43bb-b54b-d7b80fc1344e"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"is_multi":true,"type":"FLOAT","value":[1,2.4]},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/5ed64f4d-a8d0-4dc6-879c-9b5f10a25cdb/custom_attributes/attribute_1d2a4f8f9b39a284 + response: + body: + string: '{"errors":[{"status":"400","title":"Bad Request"}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 400 + message: Bad Request +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/types/b36e8af6-a952-43bb-b54b-d7b80fc1344e + response: + body: + string: '' + headers: {} + status: + code: 204 + message: No Content +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_not_found_response.frozen new file mode 100644 index 0000000000..a5ef615dd5 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_not_found_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:21:52.792Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_not_found_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_not_found_response.yaml new file mode 100644 index 0000000000..54a124de7a --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_not_found_response.yaml @@ -0,0 +1,41 @@ +interactions: +- request: + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases + response: + body: + string: '{"data":{"id":"7c0948c1-6d74-4bb2-bfbe-67a671aad927","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:53.118809Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"7c0948c1-6d74-4bb2-bfbe-67a671aad927","key":"DDFC-77694","merge_status":"NOT_MERGED","priority":"P4","public_id":"77777","status":"OPEN","title":"My + new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"is_multi":true,"type":"TEXT","value":["Abba","The + Cure"]},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/7c0948c1-6d74-4bb2-bfbe-67a671aad927/custom_attributes/invalid_key + response: + body: + string: '{"errors":[{"code":"resource_not_found","title":"failed to update case + (command func error): custom attribute configuration not found","meta":{"key":"invalid_key"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_ok_response.frozen new file mode 100644 index 0000000000..0df4d79f68 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_ok_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:21:53.550Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_ok_response.yaml new file mode 100644 index 0000000000..2f4e80a921 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_ok_response.yaml @@ -0,0 +1,97 @@ +interactions: +- request: + body: "{\"data\":{\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\"\ + :\"\U0001F30D\",\"name\":\"World\"},\"type\":\"case_type\"}}" + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/types + response: + body: + string: "{\"data\":{\"id\":\"bf109065-175f-4d2f-848d-8f5232dfce1a\",\"type\"\ + :\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"\ + emoji\":\"\U0001F30D\",\"name\":\"World\"}}}" + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"description":"And its brand new description","display_name":"Attribute + 17557789-0000-0000-0000-175577891300","is_multi":true,"key":"attribute_661efcf8a00203e4","type":"TEXT"},"type":"custom_attribute"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/types/bf109065-175f-4d2f-848d-8f5232dfce1a/custom_attributes + response: + body: + string: '{"data":{"id":"df10a213-93aa-4406-98a7-f9a7c5dccefd","type":"custom_attribute","attributes":{"case_type":"TUNKNOWN","case_type_id":"bf109065-175f-4d2f-848d-8f5232dfce1a","description":"And + its brand new description","display_name":"Attribute 17557789-0000-0000-0000-175577891300","is_multi":true,"key":"attribute_661efcf8a00203e4","type":"TEXT"}}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"bf109065-175f-4d2f-848d-8f5232dfce1a"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases + response: + body: + string: '{"data":{"id":"4e88fd93-7a35-46a1-881e-3ee48185afe4","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:54.635083Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"4e88fd93-7a35-46a1-881e-3ee48185afe4","key":"DDFC-77695","merge_status":"NOT_MERGED","priority":"P4","public_id":"77778","status":"OPEN","title":"My + new case","type":"TUNKNOWN","type_id":"bf109065-175f-4d2f-848d-8f5232dfce1a"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"is_multi":true,"type":"TEXT","value":["Abba","The + Cure"]},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/4e88fd93-7a35-46a1-881e-3ee48185afe4/custom_attributes/attribute_661efcf8a00203e4 + response: + body: + string: '{"data":{"id":"4e88fd93-7a35-46a1-881e-3ee48185afe4","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:54.635083Z","creation_source":"MANUAL","custom_attributes":{"attribute_661efcf8a00203e4":{"type":"TEXT","is_multi":true,"value":["Abba","The + Cure"]}},"description":"","insights":[],"internal_id":"4e88fd93-7a35-46a1-881e-3ee48185afe4","key":"DDFC-77695","merge_status":"NOT_MERGED","modified_at":"2025-08-21T12:21:55.036815Z","priority":"P4","public_id":"77778","status":"OPEN","title":"My + new case","type":"TUNKNOWN","type_id":"bf109065-175f-4d2f-848d-8f5232dfce1a"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 200 + message: OK +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/cases/types/bf109065-175f-4d2f-848d-8f5232dfce1a + response: + body: + string: '' + headers: {} + status: + code: 204 + message: No Content +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_bad_request_response.frozen new file mode 100644 index 0000000000..cb9d0b8766 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_bad_request_response.frozen @@ -0,0 +1 @@ +2025-08-20T11:23:00.312Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_bad_request_response.yaml new file mode 100644 index 0000000000..7366ecd907 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_bad_request_response.yaml @@ -0,0 +1,42 @@ +interactions: +- request: + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type":"STANDARD"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases + response: + body: + string: '{"data":{"id":"efb715f8-47e6-4035-a8aa-2562ac8d46b1","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-20T11:23:00.725437Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"efb715f8-47e6-4035-a8aa-2562ac8d46b1","key":"DDFC-77120","merge_status":"NOT_MERGED","priority":"P4","public_id":"77187","status":"OPEN","title":"My + new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"description":"Seeing some weird memory increase... + We shouldn''t ignore this"},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/efb715f8-47e6-4035-a8aa-2562ac8d46b1/description + response: + body: + string: '{"data":{"id":"efb715f8-47e6-4035-a8aa-2562ac8d46b1","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-20T11:23:00.725437Z","creation_source":"MANUAL","custom_attributes":{},"description":"Seeing + some weird memory increase... We shouldn''t ignore this","insights":[],"internal_id":"efb715f8-47e6-4035-a8aa-2562ac8d46b1","key":"DDFC-77120","merge_status":"NOT_MERGED","modified_at":"2025-08-20T11:23:01.102685Z","priority":"P4","public_id":"77187","status":"OPEN","title":"My + new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"modified_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 200 + message: OK +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_not_found_response.frozen new file mode 100644 index 0000000000..4dd5f89b23 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_not_found_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:21:55.478Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_not_found_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_not_found_response.yaml new file mode 100644 index 0000000000..c60eb83a10 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_not_found_response.yaml @@ -0,0 +1,21 @@ +interactions: +- request: + body: '{"data":{"attributes":{"description":"Seeing some weird memory increase... + We shouldn''t ignore this"},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/0198c6b0-2a0a-7bea-87ff-3876f119aebb/description + response: + body: + string: '{"errors":[{"code":"resource_not_found","title":"case not found"}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_ok_response.frozen new file mode 100644 index 0000000000..3435783f30 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_ok_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:21:55.857Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_ok_response.yaml new file mode 100644 index 0000000000..1db033c565 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_ok_response.yaml @@ -0,0 +1,42 @@ +interactions: +- request: + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases + response: + body: + string: '{"data":{"id":"916512cd-427c-4717-95e7-21a35fec7045","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:56.218952Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"916512cd-427c-4717-95e7-21a35fec7045","key":"DDFC-77696","merge_status":"NOT_MERGED","priority":"P4","public_id":"77779","status":"OPEN","title":"My + new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"description":"Seeing some weird memory increase... + Updating the description"},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/916512cd-427c-4717-95e7-21a35fec7045/description + response: + body: + string: '{"data":{"id":"916512cd-427c-4717-95e7-21a35fec7045","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:56.218952Z","creation_source":"MANUAL","custom_attributes":{},"description":"Seeing + some weird memory increase... Updating the description","insights":[],"internal_id":"916512cd-427c-4717-95e7-21a35fec7045","key":"DDFC-77696","merge_status":"NOT_MERGED","modified_at":"2025-08-21T12:21:56.610465Z","priority":"P4","public_id":"77779","status":"OPEN","title":"My + new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"modified_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 200 + message: OK +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_bad_request_response.frozen index 34a73d972c..82101508dd 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_bad_request_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_bad_request_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:56.000Z \ No newline at end of file +2025-08-21T12:21:56.669Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_bad_request_response.yaml index d1a0d006e8..a0c3ba88d1 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_bad_request_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_bad_request_response.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type":"STANDARD"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' headers: accept: - application/json @@ -10,7 +10,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"57868e9a-2697-4384-b724-8e118b20a7f3","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:56.317328Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"57868e9a-2697-4384-b724-8e118b20a7f3","key":"DDFC-72329","merge_status":"NOT_MERGED","priority":"P4","public_id":"72389","status":"OPEN","title":"My + string: '{"data":{"id":"9eabf475-c826-4251-8cfd-00a970c5c293","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:56.999975Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"9eabf475-c826-4251-8cfd-00a970c5c293","key":"DDFC-77697","merge_status":"NOT_MERGED","priority":"P4","public_id":"77780","status":"OPEN","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: @@ -26,11 +26,11 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/57868e9a-2697-4384-b724-8e118b20a7f3/priority + uri: https://api.datadoghq.com/api/v2/cases/9eabf475-c826-4251-8cfd-00a970c5c293/priority response: body: string: '{"errors":[{"title":"Generic Error","detail":"invalid priority P1234. - Must be one of P2, P3, P4, P5, NOT_DEFINED, P1"}]}' + Must be one of P5, NOT_DEFINED, P1, P2, P3, P4"}]}' headers: content-type: - application/vnd.api+json diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_not_found_response.frozen index f6b3d2f698..028a9dd4fc 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_not_found_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_not_found_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:56.765Z \ No newline at end of file +2025-08-21T12:21:57.445Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_ok_response.frozen index 9b134590a2..e3749d03ef 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_ok_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:57.162Z \ No newline at end of file +2025-08-21T12:21:57.827Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_ok_response.yaml index 0dc2947a16..876775332e 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_ok_response.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type":"STANDARD"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' headers: accept: - application/json @@ -10,7 +10,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"18014b24-6e64-4ca5-8cac-7ccbdd65258b","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:57.488697Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"18014b24-6e64-4ca5-8cac-7ccbdd65258b","key":"DDFC-72330","merge_status":"NOT_MERGED","priority":"P4","public_id":"72390","status":"OPEN","title":"My + string: '{"data":{"id":"d61a54f2-f227-4ebb-8ebc-988f69afd3eb","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:58.17342Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"d61a54f2-f227-4ebb-8ebc-988f69afd3eb","key":"DDFC-77698","merge_status":"NOT_MERGED","priority":"P4","public_id":"77781","status":"OPEN","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: @@ -26,10 +26,10 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/18014b24-6e64-4ca5-8cac-7ccbdd65258b/priority + uri: https://api.datadoghq.com/api/v2/cases/d61a54f2-f227-4ebb-8ebc-988f69afd3eb/priority response: body: - string: '{"data":{"id":"18014b24-6e64-4ca5-8cac-7ccbdd65258b","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:57.488697Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"18014b24-6e64-4ca5-8cac-7ccbdd65258b","key":"DDFC-72330","merge_status":"NOT_MERGED","modified_at":"2025-07-21T13:52:57.885095Z","priority":"P3","public_id":"72390","status":"OPEN","title":"My + string: '{"data":{"id":"d61a54f2-f227-4ebb-8ebc-988f69afd3eb","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:58.17342Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"d61a54f2-f227-4ebb-8ebc-988f69afd3eb","key":"DDFC-77698","merge_status":"NOT_MERGED","modified_at":"2025-08-21T12:21:58.559386Z","priority":"P3","public_id":"77781","status":"OPEN","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"modified_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_bad_request_response.frozen index f149d8dad2..cdb2505af7 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_bad_request_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_bad_request_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:57.959Z \ No newline at end of file +2025-08-21T12:21:58.619Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_bad_request_response.yaml index b9adfc6c0a..1632cee8a9 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_bad_request_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_bad_request_response.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type":"STANDARD"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' headers: accept: - application/json @@ -10,7 +10,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"98319575-b53b-43be-96b2-7595a5f1be6c","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:58.293018Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"98319575-b53b-43be-96b2-7595a5f1be6c","key":"DDFC-72331","merge_status":"NOT_MERGED","priority":"P4","public_id":"72391","status":"OPEN","title":"My + string: '{"data":{"id":"63cc6417-0142-4ce1-bf1d-87d8fc3bd303","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:21:58.938307Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"63cc6417-0142-4ce1-bf1d-87d8fc3bd303","key":"DDFC-77699","merge_status":"NOT_MERGED","priority":"P4","public_id":"77782","status":"OPEN","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: @@ -26,13 +26,12 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/98319575-b53b-43be-96b2-7595a5f1be6c/status + uri: https://api.datadoghq.com/api/v2/cases/63cc6417-0142-4ce1-bf1d-87d8fc3bd303/status response: body: string: '{"errors":[{"title":"Generic Error","detail":"invalid status OPENED. - Must be one of PENDING_APPROVAL, APPROVED, IMPLEMENTING, CANCELLED, SUNKNOWN, - ACKNOWLEDGED, TRIGGERED, RESOLVED, COMPLETED, DECLINED, OPEN, IN_PROGRESS, - CLOSED"}]}' + Must be one of OPEN, IN_PROGRESS, RESOLVED, APPROVED, IMPLEMENTING, COMPLETED, + SUNKNOWN, CLOSED, ACKNOWLEDGED, TRIGGERED, PENDING_APPROVAL, CANCELLED, DECLINED"}]}' headers: content-type: - application/vnd.api+json diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_not_found_response.frozen index ca65b4f9cf..09c0c1defc 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_not_found_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_not_found_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:58.721Z \ No newline at end of file +2025-08-21T12:21:59.362Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_ok_response.frozen index 086a7bba2e..6c51eaaf38 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_ok_response.frozen @@ -1 +1 @@ -2025-07-21T13:52:59.116Z \ No newline at end of file +2025-08-21T12:21:59.734Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_ok_response.yaml index 808952d724..d2bc284988 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_ok_response.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type":"STANDARD"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' headers: accept: - application/json @@ -10,7 +10,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"6d09fb31-6357-4f35-b1af-eaa0047f19f0","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:59.449985Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"6d09fb31-6357-4f35-b1af-eaa0047f19f0","key":"DDFC-72332","merge_status":"NOT_MERGED","priority":"P4","public_id":"72392","status":"OPEN","title":"My + string: '{"data":{"id":"76addf8c-0ab5-4cf2-a899-34e7d12a25b4","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:22:00.083032Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"76addf8c-0ab5-4cf2-a899-34e7d12a25b4","key":"DDFC-77700","merge_status":"NOT_MERGED","priority":"P4","public_id":"77783","status":"OPEN","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: @@ -26,10 +26,10 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/6d09fb31-6357-4f35-b1af-eaa0047f19f0/status + uri: https://api.datadoghq.com/api/v2/cases/76addf8c-0ab5-4cf2-a899-34e7d12a25b4/status response: body: - string: '{"data":{"id":"6d09fb31-6357-4f35-b1af-eaa0047f19f0","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-07-21T13:52:59.449985Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"6d09fb31-6357-4f35-b1af-eaa0047f19f0","key":"DDFC-72332","merge_status":"NOT_MERGED","modified_at":"2025-07-21T13:52:59.835103Z","priority":"P4","public_id":"72392","status":"IN_PROGRESS","title":"My + string: '{"data":{"id":"76addf8c-0ab5-4cf2-a899-34e7d12a25b4","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:22:00.083032Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"76addf8c-0ab5-4cf2-a899-34e7d12a25b4","key":"DDFC-77700","merge_status":"NOT_MERGED","modified_at":"2025-08-21T12:22:00.475171Z","priority":"P4","public_id":"77783","status":"IN_PROGRESS","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"modified_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' headers: content-type: diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_bad_request_response.frozen new file mode 100644 index 0000000000..9849c9994e --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_bad_request_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:22:00.535Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_bad_request_response.yaml new file mode 100644 index 0000000000..19613c5fe1 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_bad_request_response.yaml @@ -0,0 +1,39 @@ +interactions: +- request: + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases + response: + body: + string: '{"data":{"id":"7e718455-3552-40dc-8368-ab2b5d675201","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:22:00.877559Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"7e718455-3552-40dc-8368-ab2b5d675201","key":"DDFC-77701","merge_status":"NOT_MERGED","priority":"P4","public_id":"77784","status":"OPEN","title":"My + new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"title":""},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/7e718455-3552-40dc-8368-ab2b5d675201/title + response: + body: + string: '{"errors":[{"status":"400","title":"Bad Request"}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 400 + message: Bad Request +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_not_found_response.frozen new file mode 100644 index 0000000000..c82708bd14 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_not_found_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:22:01.292Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_not_found_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_not_found_response.yaml new file mode 100644 index 0000000000..388e2bfa60 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_not_found_response.yaml @@ -0,0 +1,20 @@ +interactions: +- request: + body: '{"data":{"attributes":{"title":"Memory leak investigation on API"},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/0198c6b8-b08f-7c08-978a-d95217f2eeac/title + response: + body: + string: '{"errors":[{"code":"resource_not_found","title":"case not found"}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_ok_response.frozen new file mode 100644 index 0000000000..578d4c42ab --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_ok_response.frozen @@ -0,0 +1 @@ +2025-08-21T12:22:01.665Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_ok_response.yaml new file mode 100644 index 0000000000..521f0a11e6 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_ok_response.yaml @@ -0,0 +1,41 @@ +interactions: +- request: + body: '{"data":{"attributes":{"priority":"P4","title":"My new case","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases + response: + body: + string: '{"data":{"id":"0552fadc-d83a-4a3d-a718-4a7b0b061a78","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:22:01.992227Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"0552fadc-d83a-4a3d-a718-4a7b0b061a78","key":"DDFC-77702","merge_status":"NOT_MERGED","priority":"P4","public_id":"77785","status":"OPEN","title":"My + new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"title":"[UPDATED] Memory leak investigation on + API"},"type":"case"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/cases/0552fadc-d83a-4a3d-a718-4a7b0b061a78/title + response: + body: + string: '{"data":{"id":"0552fadc-d83a-4a3d-a718-4a7b0b061a78","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-08-21T12:22:01.992227Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"0552fadc-d83a-4a3d-a718-4a7b0b061a78","key":"DDFC-77702","merge_status":"NOT_MERGED","modified_at":"2025-08-21T12:22:02.369131Z","priority":"P4","public_id":"77785","status":"OPEN","title":"[UPDATED] + Memory leak investigation on API","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"modified_by":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"user","attributes":{"active":true,"email":"frog@datadoghq.com","handle":"frog@datadoghq.com","name":"frog"}}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 200 + message: OK +version: 1 diff --git a/tests/v2/features/case_management.feature b/tests/v2/features/case_management.feature index 58c95f7166..155221b2dd 100644 --- a/tests/v2/features/case_management.feature +++ b/tests/v2/features/case_management.feature @@ -64,10 +64,36 @@ Feature: Case Management When the request is sent Then the response status is 200 OK + @team:DataDog/case-management + Scenario: Comment case returns "Bad Request" response + Given new "CommentCase" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And body with value {"data": {"attributes": {"comment": ""}, "type": "case"}} + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/case-management + Scenario: Comment case returns "Not Found" response + Given new "CommentCase" request + And request contains "case_id" parameter with value "67d80aa3-36ff-44b9-a694-c501a7591737" + And body with value {"data": {"attributes": {"comment": "Hello world !"}, "type": "case"}} + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/case-management + Scenario: Comment case returns "OK" response + Given new "CommentCase" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And body with value {"data": {"attributes": {"comment": "Hello World !"}, "type": "case"}} + When the request is sent + Then the response status is 200 OK + @team:DataDog/case-management Scenario: Create a case returns "Bad Request" response Given new "CreateCase" request - And body with value {"data": {"attributes": {"priority": "NOT_DEFINED", "title": "Security breach investigation", "type": "STANDARD"}, "relationships": {"assignee": {"data": {"id": "00000000-0000-0000-0000-000000000000", "type": "userx"}}, "project": {"data": {"id": "e555e290-ed65-49bd-ae18-8acbfcf18db7", "type": "project"}}}, "type": "case"}} + And body with value {"data": {"attributes": {"priority": "NOT_DEFINED", "title": "Security breach investigation", "type_id": "00000000-0000-0000-0000-000000000001"}, "relationships": {"assignee": {"data": {"id": "00000000-0000-0000-0000-000000000000", "type": "userx"}}, "project": {"data": {"id": "e555e290-ed65-49bd-ae18-8acbfcf18db7", "type": "project"}}}, "type": "case"}} When the request is sent Then the response status is 400 Bad Request @@ -75,7 +101,7 @@ Feature: Case Management Scenario: Create a case returns "CREATED" response Given new "CreateCase" request And there is a valid "user" in the system - And body with value {"data": {"attributes": {"priority": "NOT_DEFINED", "title": "Security breach investigation in {{ unique_hash }}", "type": "STANDARD"}, "relationships": {"assignee": {"data": {"id": "{{user.data.id}}", "type": "user"} }, "project": {"data": {"id": "d4bbe1af-f36e-42f1-87c1-493ca35c320e", "type": "project"}}}, "type": "case"}} + And body with value {"data": {"attributes": {"priority": "NOT_DEFINED", "title": "Security breach investigation in {{ unique_hash }}", "type_id": "00000000-0000-0000-0000-000000000001"}, "relationships": {"assignee": {"data": {"id": "{{user.data.id}}", "type": "user"} }, "project": {"data": {"id": "d4bbe1af-f36e-42f1-87c1-493ca35c320e", "type": "project"}}}, "type": "case"}} When the request is sent Then the response status is 201 CREATED And the response "data" has field "id" @@ -83,10 +109,10 @@ Feature: Case Management And the response "data.attributes.type" is equal to "STANDARD" And the response "data.attributes.priority" is equal to "NOT_DEFINED" - @generated @skip @team:DataDog/case-management + @team:DataDog/case-management Scenario: Create a case returns "Not Found" response Given new "CreateCase" request - And body with value {"data": {"attributes": {"priority": "NOT_DEFINED", "title": "Security breach investigation", "type": "STANDARD"}, "relationships": {"assignee": {"data": {"id": "00000000-0000-0000-0000-000000000000", "type": "user"}}, "project": {"data": {"id": "e555e290-ed65-49bd-ae18-8acbfcf18db7", "type": "project"}}}, "type": "case"}} + And body with value {"data": {"attributes": {"priority": "NOT_DEFINED", "title": "Security breach investigation", "type_id": "00000000-0000-0000-0000-000000000001"}, "relationships": {"assignee": {"data": {"id": "00000000-0000-0000-0000-000000000000", "type": "user"}}, "project": {"data": {"id": "721074c8-63df-4d8f-a43d-ab41dd24ec35", "type": "project"}}}, "type": "case"}} When the request is sent Then the response status is 404 Not Found @@ -111,6 +137,54 @@ Feature: Case Management When the request is sent Then the response status is 404 Not Found + @skip @team:DataDog/case-management + Scenario: Delete case comment returns "Bad Request" response + Given new "DeleteCaseComment" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And request contains "cell_id" parameter with value "not-an-uuid" + When the request is sent + Then the response status is 400 Bad Request + + @skip @team:DataDog/case-management + Scenario: Delete case comment returns "No Content" response + Given new "DeleteCaseComment" request + And there is a valid "case" in the system + And there is a valid "comment" in the system + And request contains "case_id" parameter from "case.id" + And request contains "cell_id" parameter from "comment.id" + When the request is sent + Then the response status is 204 No Content + + @team:DataDog/case-management + Scenario: Delete case comment returns "Not Found" response + Given new "DeleteCaseComment" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And request contains "cell_id" parameter with value "23fca2aa-4967-4936-bdd7-9157d9e456d7" + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/case-management + Scenario: Delete custom attribute from case returns "Not Found" response + Given new "DeleteCaseCustomAttribute" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And request contains "custom_attribute_key" parameter with value "invalid_key" + When the request is sent + Then the response status is 404 Not Found + + @skip @team:DataDog/case-management + Scenario: Delete custom attribute from case returns "OK" response + Given new "DeleteCaseCustomAttribute" request + And there is a valid "case_type" in the system + And there is a valid "custom_attribute" in the system + And there is a valid "case" with a custom "case_type" in the system + And request contains "case_id" parameter from "case_with_type.id" + And request contains "custom_attribute_key" parameter from "custom_attribute.attributes.key" + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/case-management Scenario: Get all projects returns "Bad Request" response Given new "GetProjects" request @@ -289,6 +363,66 @@ Feature: Case Management When the request is sent Then the response status is 200 OK + @skip @team:DataDog/case-management + Scenario: Update case custom attribute returns "Bad Request" response + Given new "UpdateCaseCustomAttribute" request + And there is a valid "case_type" in the system + And there is a valid "custom_attribute" in the system + And there is a valid "case" with a custom "case_type" in the system + And request contains "case_id" parameter from "case_with_type.id" + And request contains "custom_attribute_key" parameter from "custom_attribute.attributes.key" + And body with value {"data": {"attributes": {"type": "FLOAT", "is_multi": true, "value": [1.0, 2.4]}, "type": "case"}} + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/case-management + Scenario: Update case custom attribute returns "Not Found" response + Given new "UpdateCaseCustomAttribute" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And request contains "custom_attribute_key" parameter with value "invalid_key" + And body with value {"data": {"attributes": {"type": "TEXT", "is_multi": true, "value": ["Abba", "The Cure"]}, "type": "case"}} + When the request is sent + Then the response status is 404 Not Found + + @skip @team:DataDog/case-management + Scenario: Update case custom attribute returns "OK" response + Given new "UpdateCaseCustomAttribute" request + And there is a valid "case_type" in the system + And there is a valid "custom_attribute" in the system + And there is a valid "case" with a custom "case_type" in the system + And request contains "case_id" parameter from "case_with_type.id" + And request contains "custom_attribute_key" parameter from "custom_attribute.attributes.key" + And body with value {"data": {"attributes": {"type": "TEXT", "is_multi": true, "value": ["Abba", "The Cure"]}, "type": "case"}} + When the request is sent + Then the response status is 200 OK + + @skip @team:DataDog/case-management + Scenario: Update case description returns "Bad Request" response + Given new "UpdateCaseDescription" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And body with value {"data": {"attributes": {"description": "Seeing some weird memory increase... We shouldn't ignore this"}, "type": "case"}} + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/case-management + Scenario: Update case description returns "Not Found" response + Given new "UpdateCaseDescription" request + And request contains "case_id" parameter with value "0198c6b0-2a0a-7bea-87ff-3876f119aebb" + And body with value {"data": {"attributes": {"description": "Seeing some weird memory increase... We shouldn't ignore this"}, "type": "case"}} + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/case-management + Scenario: Update case description returns "OK" response + Given new "UpdateCaseDescription" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And body with value {"data": {"attributes": {"description": "Seeing some weird memory increase... Updating the description"}, "type": "case"}} + When the request is sent + Then the response status is 200 OK + @team:DataDog/case-management Scenario: Update case priority returns "Bad Request" response Given new "UpdatePriority" request @@ -342,3 +476,29 @@ Feature: Case Management When the request is sent Then the response status is 200 OK And the response "data.attributes.status" is equal to "IN_PROGRESS" + + @team:DataDog/case-management + Scenario: Update case title returns "Bad Request" response + Given new "UpdateCaseTitle" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And body with value {"data": {"attributes": {"title": ""}, "type": "case"}} + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/case-management + Scenario: Update case title returns "Not Found" response + Given new "UpdateCaseTitle" request + And request contains "case_id" parameter with value "0198c6b8-b08f-7c08-978a-d95217f2eeac" + And body with value {"data": {"attributes": {"title": "Memory leak investigation on API"}, "type": "case"}} + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/case-management + Scenario: Update case title returns "OK" response + Given new "UpdateCaseTitle" request + And there is a valid "case" in the system + And request contains "case_id" parameter from "case.id" + And body with value {"data": {"attributes": {"title": "[UPDATED] Memory leak investigation on API"}, "type": "case"}} + When the request is sent + Then the response status is 200 OK diff --git a/tests/v2/features/case_management_attribute.feature b/tests/v2/features/case_management_attribute.feature new file mode 100644 index 0000000000..19874bff67 --- /dev/null +++ b/tests/v2/features/case_management_attribute.feature @@ -0,0 +1,77 @@ +@endpoint(case-management-attribute) @endpoint(case-management-attribute-v2) +Feature: Case Management Attribute + View and configure custom attributes within Case Management. See the [Case + Management + page](https://docs.datadoghq.com/service_management/case_management/) for + more information. + + Background: + Given a valid "apiKeyAuth" key in the system + And a valid "appKeyAuth" key in the system + And an instance of "CaseManagementAttribute" API + + @team:DataDog/case-management + Scenario: Create custom attribute config for a case type returns "Bad Request" response + Given new "CreateCustomAttributeConfig" request + And there is a valid "case_type" in the system + And request contains "case_type_id" parameter from "case_type.id" + And body with value {"data": {"attributes": {"display_name": "AWS Region {{uuid}}", "is_multi": true, "key": "region_{{unique_hash}}", "type": "FLOAT"}, "type": "custom_attribute"}} + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/case-management + Scenario: Create custom attribute config for a case type returns "CREATED" response + Given new "CreateCustomAttributeConfig" request + And there is a valid "case_type" in the system + And request contains "case_type_id" parameter from "case_type.id" + And body with value {"data": {"attributes": {"display_name": "AWS Region {{uuid}}", "is_multi": true, "key": "region_{{unique_hash}}", "type": "NUMBER"}, "type": "custom_attribute"}} + When the request is sent + Then the response status is 201 CREATED + + @team:DataDog/case-management + Scenario: Create custom attribute config for a case type returns "Not Found" response + Given new "CreateCustomAttributeConfig" request + And request contains "case_type_id" parameter with value "9fd476d7-a955-454a-851d-980c655c02d3" + And body with value {"data": {"attributes": {"display_name": "AWS Region {{uuid}}", "is_multi": true, "key": "region_{{unique_hash}}", "type": "NUMBER"}, "type": "custom_attribute"}} + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/case-management + Scenario: Delete custom attributes config returns "Bad Request" response + Given new "DeleteCustomAttributeConfig" request + And there is a valid "case_type" in the system + And request contains "case_type_id" parameter from "case_type.id" + And request contains "custom_attribute_id" parameter with value "not-an-uuid" + When the request is sent + Then the response status is 400 Bad Request + + @skip @team:DataDog/case-management + Scenario: Delete custom attributes config returns "No Content" response + Given new "DeleteCustomAttributeConfig" request + And there is a valid "case_type" in the system + And there is a valid "custom_attribute" in the system + And request contains "case_type_id" parameter from "case_type.id" + And request contains "custom_attribute_id" parameter from "custom_attribute.id" + When the request is sent + Then the response status is 204 No Content + + @skip @team:DataDog/case-management + Scenario: Get all custom attributes config of case type returns "Bad Request" response + Given new "GetAllCustomAttributeConfigsByCaseType" request + And request contains "case_type_id" parameter with value "not-an-uuid" + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/case-management + Scenario: Get all custom attributes config of case type returns "OK" response + Given new "GetAllCustomAttributeConfigsByCaseType" request + And there is a valid "case_type" in the system + And request contains "case_type_id" parameter from "case_type.id" + When the request is sent + Then the response status is 200 OK + + @team:DataDog/case-management + Scenario: Get all custom attributes returns "OK" response + Given new "GetAllCustomAttributes" request + When the request is sent + Then the response status is 200 OK diff --git a/tests/v2/features/case_management_type.feature b/tests/v2/features/case_management_type.feature new file mode 100644 index 0000000000..0773d7d241 --- /dev/null +++ b/tests/v2/features/case_management_type.feature @@ -0,0 +1,46 @@ +@endpoint(case-management-type) @endpoint(case-management-type-v2) +Feature: Case Management Type + View and configure case types within Case Management. See the [Case + Management + page](https://docs.datadoghq.com/service_management/case_management/) for + more information. + + Background: + Given a valid "apiKeyAuth" key in the system + And a valid "appKeyAuth" key in the system + And an instance of "CaseManagementType" API + + @team:DataDog/case-management + Scenario: Create a case type returns "Bad Request" response + Given new "CreateCaseType" request + And body with value {"data": {"attributes": {"description": "Investigations done in case management", "emoji": "notanemoji", "name": "Investigation"}, "type": "case_type"}} + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/case-management + Scenario: Create a case type returns "CREATED" response + Given new "CreateCaseType" request + And body with value {"data": {"attributes": {"description": "Investigations done in case management", "emoji": "👑", "name": "Investigation"}, "type": "case_type"}} + When the request is sent + Then the response status is 201 CREATED + + @generated @skip @team:DataDog/case-management + Scenario: Delete a case type returns "No Content" response + Given new "DeleteCaseType" request + And request contains "case_type_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 204 No Content + + @team:DataDog/case-management + Scenario: Delete a case type returns "NotContent" response + Given new "DeleteCaseType" request + And there is a valid "case_type" in the system + And request contains "case_type_id" parameter from "case_type.id" + When the request is sent + Then the response status is 204 OK + + @team:DataDog/case-management + Scenario: Get all case types returns "OK" response + Given new "GetAllCaseTypes" request + When the request is sent + Then the response status is 200 OK diff --git a/tests/v2/features/given.json b/tests/v2/features/given.json index b609709365..23091a1f79 100644 --- a/tests/v2/features/given.json +++ b/tests/v2/features/given.json @@ -87,7 +87,7 @@ "parameters": [ { "name": "body", - "value": "{\n \"data\": {\n \"attributes\": {\n \"title\": \"My new case\",\n \"type\": \"STANDARD\",\n \"priority\": \"P4\"\n },\n \"relationships\": {\n \"project\": {\n \"data\": {\n \"id\": \"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\n \"type\": \"project\"\n }\n }\n },\n \"type\": \"case\"\n }\n}" + "value": "{\n \"data\": {\n \"attributes\": {\n \"title\": \"My new case\",\n \"type_id\": \"00000000-0000-0000-0000-000000000001\",\n \"priority\": \"P4\"\n },\n \"relationships\": {\n \"project\": {\n \"data\": {\n \"id\": \"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\n \"type\": \"project\"\n }\n }\n },\n \"type\": \"case\"\n }\n}" } ], "source": "data", @@ -96,6 +96,66 @@ "tag": "Case Management", "operationId": "CreateCase" }, + { + "parameters": [ + { + "name": "body", + "value": "{\n \"data\": {\n \"attributes\": {\n \"title\": \"My new case\",\n \"type_id\": \"{{ case_type.id }}\",\n \"priority\": \"P4\"\n },\n \"relationships\": {\n \"project\": {\n \"data\": {\n \"id\": \"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\n \"type\": \"project\"\n }\n }\n },\n \"type\": \"case\"\n }\n}" + } + ], + "source": "data", + "step": "there is a valid \"case\" with a custom \"case_type\" in the system", + "key": "case_with_type", + "tag": "Case Management", + "operationId": "CreateCase" + }, + { + "parameters": [ + { + "name": "body", + "value": "{\n \"data\": {\n \"type\": \"case_type\",\n \"attributes\": {\n \"description\": \"Worldwide case type\",\n \"emoji\": \"\ud83c\udf0d\",\n \"name\": \"World\"\n }\n }\n}" + } + ], + "source": "data", + "step": "there is a valid \"case_type\" in the system", + "key": "case_type", + "tag": "Case Management Type", + "operationId": "CreateCaseType" + }, + { + "parameters": [ + { + "name": "case_type_id", + "source": "case_type.id" + }, + { + "name": "body", + "value": "{\n \"data\": {\n \"type\": \"custom_attribute\",\n \"attributes\": {\n \"display_name\":\"Attribute {{uuid}}\",\n \"key\":\"attribute_{{unique_hash}}\",\n \"description\":\"And its brand new description\",\n \"type\":\"TEXT\",\n \"is_multi\":true\n }\n }\n}" + } + ], + "source": "data", + "step": "there is a valid \"custom_attribute\" in the system", + "key": "custom_attribute", + "tag": "Case Management Attribute", + "operationId": "CreateCustomAttributeConfig" + }, + { + "parameters": [ + { + "name": "case_id", + "source": "case.id" + }, + { + "name": "body", + "value": "{\n \"data\": {\n \"type\": \"case\",\n \"attributes\": {\n \"comment\": \"This is my new comment !\"\n }\n }\n}" + } + ], + "source": "data[0]", + "step": "there is a valid \"comment\" in the system", + "key": "comment", + "tag": "Case Management", + "operationId": "CommentCase" + }, { "parameters": [ { diff --git a/tests/v2/features/undo.json b/tests/v2/features/undo.json index 9878d7a467..a5f5cd152e 100644 --- a/tests/v2/features/undo.json +++ b/tests/v2/features/undo.json @@ -428,6 +428,55 @@ "type": "safe" } }, + "GetAllCaseTypes": { + "tag": "Case Management Type", + "undo": { + "type": "safe" + } + }, + "CreateCaseType": { + "tag": "Case Management Type", + "undo": { + "operationId": "DeleteCaseType", + "parameters": [ + { + "name": "case_type_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "GetAllCustomAttributes": { + "tag": "Case Management Attribute", + "undo": { + "type": "safe" + } + }, + "DeleteCaseType": { + "tag": "Case Management Type", + "undo": { + "type": "idempotent" + } + }, + "GetAllCustomAttributeConfigsByCaseType": { + "tag": "Case Management Attribute", + "undo": { + "type": "safe" + } + }, + "CreateCustomAttributeConfig": { + "tag": "Case Management Attribute", + "undo": { + "type": "safe" + } + }, + "DeleteCustomAttributeConfig": { + "tag": "Case Management Attribute", + "undo": { + "type": "idempotent" + } + }, "GetCase": { "tag": "Case Management", "undo": { @@ -452,6 +501,36 @@ "type": "idempotent" } }, + "CommentCase": { + "tag": "Case Management", + "undo": { + "type": "safe" + } + }, + "DeleteCaseComment": { + "tag": "Case Management", + "undo": { + "type": "idempotent" + } + }, + "DeleteCaseCustomAttribute": { + "tag": "Case Management", + "undo": { + "type": "idempotent" + } + }, + "UpdateCaseCustomAttribute": { + "tag": "Case Management", + "undo": { + "type": "idempotent" + } + }, + "UpdateCaseDescription": { + "tag": "Case Management", + "undo": { + "type": "idempotent" + } + }, "UpdatePriority": { "tag": "Case Management", "undo": { @@ -464,6 +543,12 @@ "type": "idempotent" } }, + "UpdateCaseTitle": { + "tag": "Case Management", + "undo": { + "type": "idempotent" + } + }, "UnarchiveCase": { "tag": "Case Management", "undo": {