From 44961742621b7a724e5b7708f42ca43e0b611b07 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Fri, 17 Oct 2025 10:58:01 +0000 Subject: [PATCH] Regenerate client from commit e1cf6b0 of spec repo --- .generator/schemas/v2/openapi.yaml | 891 ++++++++- .../CreateCustomAttributeConfig.java | 46 + .../DeleteCustomAttributeConfig.java | 29 + ...etAllCustomAttributeConfigsByCaseType.java | 30 + .../GetAllCustomAttributes.java | 25 + .../case-management-type/CreateCaseType.java | 39 + .../case-management-type/DeleteCaseType.java | 22 + .../DeleteCaseType_2790986149.java | 25 + .../case-management-type/GetAllCaseTypes.java | 24 + examples/v2/case-management/CommentCase.java | 38 + examples/v2/case-management/CreateCase.java | 3 +- .../v2/case-management/DeleteCaseComment.java | 28 + .../DeleteCaseCustomAttribute.java | 31 + .../UpdateCaseCustomAttribute.java | 52 + .../UpdateCaseDescription.java | 41 + .../v2/case-management/UpdateCaseTitle.java | 40 + .../api/client/v2/api/CaseManagementApi.java | 1763 +++++++++++++---- .../v2/api/CaseManagementAttributeApi.java | 645 ++++++ .../client/v2/api/CaseManagementTypeApi.java | 423 ++++ .../api/client/v2/model/CaseAttributes.java | 70 +- .../api/client/v2/model/CaseComment.java | 178 ++ .../v2/model/CaseCommentAttributes.java | 143 ++ .../client/v2/model/CaseCommentRequest.java | 145 ++ .../client/v2/model/CaseCreateAttributes.java | 39 +- .../api/client/v2/model/CaseTypeCreate.java | 178 ++ .../v2/model/CaseTypeCreateRequest.java | 145 ++ .../api/client/v2/model/CaseTypeResource.java | 196 ++ .../v2/model/CaseTypeResourceAttributes.java | 234 +++ .../client/v2/model/CaseTypeResourceType.java | 54 + .../api/client/v2/model/CaseTypeResponse.java | 136 ++ .../client/v2/model/CaseTypesResponse.java | 149 ++ .../v2/model/CaseUpdateCustomAttribute.java | 182 ++ .../CaseUpdateCustomAttributeRequest.java | 147 ++ .../v2/model/CaseUpdateDescription.java | 181 ++ .../CaseUpdateDescriptionAttributes.java | 145 ++ .../model/CaseUpdateDescriptionRequest.java | 146 ++ .../api/client/v2/model/CaseUpdateTitle.java | 178 ++ .../v2/model/CaseUpdateTitleAttributes.java | 144 ++ .../v2/model/CaseUpdateTitleRequest.java | 145 ++ .../v2/model/CustomAttributeConfig.java | 197 ++ ...CustomAttributeConfigAttributesCreate.java | 263 +++ .../v2/model/CustomAttributeConfigCreate.java | 184 ++ .../CustomAttributeConfigCreateRequest.java | 147 ++ ...stomAttributeConfigResourceAttributes.java | 293 +++ .../CustomAttributeConfigResourceType.java | 58 + .../model/CustomAttributeConfigResponse.java | 137 ++ .../model/CustomAttributeConfigsResponse.java | 151 ++ .../client/v2/model/CustomAttributeType.java | 57 + .../client/v2/model/CustomAttributeValue.java | 209 ++ .../v2/model/CustomAttributeValuesUnion.java | 399 ++++ .../api/client/v2/model/TimelineCell.java | 253 +++ .../client/v2/model/TimelineCellAuthor.java | 210 ++ .../v2/model/TimelineCellAuthorUser.java | 169 ++ .../model/TimelineCellAuthorUserContent.java | 219 ++ .../v2/model/TimelineCellAuthorUserType.java | 55 + .../client/v2/model/TimelineCellContent.java | 211 ++ .../v2/model/TimelineCellContentComment.java | 136 ++ .../client/v2/model/TimelineCellResource.java | 208 ++ .../v2/model/TimelineCellResourceType.java | 57 + .../api/client/v2/model/TimelineCellType.java | 53 + .../api/client/v2/model/TimelineResponse.java | 149 ++ ...e_case_returns_Bad_Request_response.freeze | 2 +- ...ive_case_returns_Bad_Request_response.json | 10 +- ...ive_case_returns_Not_Found_response.freeze | 2 +- .../Archive_case_returns_OK_response.freeze | 2 +- .../v2/Archive_case_returns_OK_response.json | 12 +- ...n_case_returns_Bad_Request_response.freeze | 2 +- ...ign_case_returns_Bad_Request_response.json | 10 +- ...ign_case_returns_Not_Found_response.freeze | 2 +- ...ssign_case_returns_Not_Found_response.json | 14 +- .../v2/Assign_case_returns_OK_response.freeze | 2 +- .../v2/Assign_case_returns_OK_response.json | 24 +- ...t_case_returns_Bad_Request_response.freeze | 1 + ...ent_case_returns_Bad_Request_response.json | 62 + ...ent_case_returns_Not_Found_response.freeze | 1 + ...mment_case_returns_Not_Found_response.json | 32 + .../Comment_case_returns_OK_response.freeze | 1 + .../v2/Comment_case_returns_OK_response.json | 62 + ...a_case_returns_Bad_Request_response.freeze | 2 +- ...e_a_case_returns_Bad_Request_response.json | 4 +- ...ate_a_case_returns_CREATED_response.freeze | 2 +- ...reate_a_case_returns_CREATED_response.json | 16 +- ...e_a_case_returns_Not_Found_response.freeze | 1 + ...ate_a_case_returns_Not_Found_response.json | 32 + ...e_type_returns_Bad_Request_response.freeze | 1 + ...ase_type_returns_Bad_Request_response.json | 32 + ..._case_type_returns_CREATED_response.freeze | 1 + ..._a_case_type_returns_CREATED_response.json | 32 + ...e_type_returns_Bad_Request_response.freeze | 1 + ...ase_type_returns_Bad_Request_response.json | 62 + ..._case_type_returns_CREATED_response.freeze | 1 + ..._a_case_type_returns_CREATED_response.json | 62 + ...ase_type_returns_Not_Found_response.freeze | 1 + ..._case_type_returns_Not_Found_response.json | 32 + ...se_type_returns_NotContent_response.freeze | 1 + ...case_type_returns_NotContent_response.json | 53 + ...ete_a_case_type_returns_OK_response.freeze | 1 + ...elete_a_case_type_returns_OK_response.json | 74 + ...omment_returns_Bad_Request_response.freeze | 1 + ..._comment_returns_Bad_Request_response.json | 58 + ...comment_returns_No_Content_response.freeze | 1 + ...e_comment_returns_No_Content_response.json | 109 + ..._comment_returns_Not_Found_response.freeze | 1 + ...se_comment_returns_Not_Found_response.json | 58 + ...rom_case_returns_Not_Found_response.freeze | 1 + ..._from_case_returns_Not_Found_response.json | 58 + ...ibute_from_case_returns_OK_response.freeze | 1 + ...tribute_from_case_returns_OK_response.json | 139 ++ ...config_returns_Bad_Request_response.freeze | 1 + ...s_config_returns_Bad_Request_response.json | 58 + ..._config_returns_No_Content_response.freeze | 1 + ...es_config_returns_No_Content_response.json | 104 + ..._all_case_types_returns_OK_response.freeze | 1 + ...et_all_case_types_returns_OK_response.json | 28 + ...ig_of_case_type_returns_OK_response.freeze | 1 + ...nfig_of_case_type_returns_OK_response.json | 58 + ...stom_attributes_returns_OK_response.freeze | 1 + ...custom_attributes_returns_OK_response.json | 28 + ...f_a_case_returns_Not_Found_response.freeze | 2 +- ...tails_of_a_case_returns_OK_response.freeze | 2 +- ...details_of_a_case_returns_OK_response.json | 12 +- ...e_case_returns_Bad_Request_response.freeze | 2 +- ...ive_case_returns_Bad_Request_response.json | 10 +- ...ive_case_returns_Not_Found_response.freeze | 2 +- .../Unarchive_case_returns_OK_response.freeze | 2 +- .../Unarchive_case_returns_OK_response.json | 12 +- ...n_case_returns_Bad_Request_response.freeze | 2 +- ...ign_case_returns_Bad_Request_response.json | 10 +- ...ign_case_returns_Not_Found_response.freeze | 2 +- .../Unassign_case_returns_OK_response.freeze | 2 +- .../v2/Unassign_case_returns_OK_response.json | 12 +- ...tributes_returns_Bad_Request_response.json | 2 +- ...tributes_returns_Not_Found_response.freeze | 2 +- ...case_attributes_returns_OK_response.freeze | 2 +- ...e_case_attributes_returns_OK_response.json | 12 +- ...ribute_returns_Bad_Request_response.freeze | 1 + ...ttribute_returns_Bad_Request_response.json | 143 ++ ...ttribute_returns_Not_Found_response.freeze | 1 + ..._attribute_returns_Not_Found_response.json | 62 + ...ustom_attribute_returns_OK_response.freeze | 1 + ..._custom_attribute_returns_OK_response.json | 143 ++ ...iption_returns_Bad_Request_response.freeze | 1 + ...cription_returns_Bad_Request_response.json | 62 + ...cription_returns_Not_Found_response.freeze | 1 + ...escription_returns_Not_Found_response.json | 32 + ...ase_description_returns_OK_response.freeze | 1 + ..._case_description_returns_OK_response.json | 62 + ...iority_returns_Bad_Request_response.freeze | 2 +- ...priority_returns_Bad_Request_response.json | 12 +- ...priority_returns_Not_Found_response.freeze | 2 +- ...e_case_priority_returns_OK_response.freeze | 2 +- ...ate_case_priority_returns_OK_response.json | 12 +- ...status_returns_Bad_Request_response.freeze | 2 +- ...e_status_returns_Bad_Request_response.json | 12 +- ...e_status_returns_Not_Found_response.freeze | 2 +- ...ate_case_status_returns_OK_response.freeze | 2 +- ...pdate_case_status_returns_OK_response.json | 12 +- ..._title_returns_Bad_Request_response.freeze | 1 + ...se_title_returns_Bad_Request_response.json | 62 + ...se_title_returns_Not_Found_response.freeze | 1 + ...case_title_returns_Not_Found_response.json | 32 + ...date_case_title_returns_OK_response.freeze | 1 + ...Update_case_title_returns_OK_response.json | 62 + .../api/client/v2/api/case_management.feature | 168 +- .../v2/api/case_management_attribute.feature | 77 + .../v2/api/case_management_type.feature | 46 + .../com/datadog/api/client/v2/api/given.json | 62 +- .../com/datadog/api/client/v2/api/undo.json | 78 + 168 files changed, 13008 insertions(+), 547 deletions(-) create mode 100644 examples/v2/case-management-attribute/CreateCustomAttributeConfig.java create mode 100644 examples/v2/case-management-attribute/DeleteCustomAttributeConfig.java create mode 100644 examples/v2/case-management-attribute/GetAllCustomAttributeConfigsByCaseType.java create mode 100644 examples/v2/case-management-attribute/GetAllCustomAttributes.java create mode 100644 examples/v2/case-management-type/CreateCaseType.java create mode 100644 examples/v2/case-management-type/DeleteCaseType.java create mode 100644 examples/v2/case-management-type/DeleteCaseType_2790986149.java create mode 100644 examples/v2/case-management-type/GetAllCaseTypes.java create mode 100644 examples/v2/case-management/CommentCase.java create mode 100644 examples/v2/case-management/DeleteCaseComment.java create mode 100644 examples/v2/case-management/DeleteCaseCustomAttribute.java create mode 100644 examples/v2/case-management/UpdateCaseCustomAttribute.java create mode 100644 examples/v2/case-management/UpdateCaseDescription.java create mode 100644 examples/v2/case-management/UpdateCaseTitle.java create mode 100644 src/main/java/com/datadog/api/client/v2/api/CaseManagementAttributeApi.java create mode 100644 src/main/java/com/datadog/api/client/v2/api/CaseManagementTypeApi.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CaseComment.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CaseCommentAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CaseCommentRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CaseTypeCreate.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CaseTypeCreateRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CaseTypeResource.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CaseTypeResourceAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CaseTypeResourceType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CaseTypeResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CaseTypesResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CaseUpdateCustomAttribute.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CaseUpdateCustomAttributeRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CaseUpdateDescription.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CaseUpdateDescriptionAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CaseUpdateDescriptionRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CaseUpdateTitle.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CaseUpdateTitleAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CaseUpdateTitleRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfig.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigAttributesCreate.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigCreate.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigCreateRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigResourceAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigResourceType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigsResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CustomAttributeType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CustomAttributeValue.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CustomAttributeValuesUnion.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/TimelineCell.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/TimelineCellAuthor.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/TimelineCellAuthorUser.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/TimelineCellAuthorUserContent.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/TimelineCellAuthorUserType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/TimelineCellContent.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/TimelineCellContentComment.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/TimelineCellResource.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/TimelineCellResourceType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/TimelineCellType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/TimelineResponse.java create mode 100644 src/test/resources/cassettes/features/v2/Comment_case_returns_Bad_Request_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Comment_case_returns_Bad_Request_response.json create mode 100644 src/test/resources/cassettes/features/v2/Comment_case_returns_Not_Found_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Comment_case_returns_Not_Found_response.json create mode 100644 src/test/resources/cassettes/features/v2/Comment_case_returns_OK_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Comment_case_returns_OK_response.json create mode 100644 src/test/resources/cassettes/features/v2/Create_a_case_returns_Not_Found_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Create_a_case_returns_Not_Found_response.json create mode 100644 src/test/resources/cassettes/features/v2/Create_a_case_type_returns_Bad_Request_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Create_a_case_type_returns_Bad_Request_response.json create mode 100644 src/test/resources/cassettes/features/v2/Create_a_case_type_returns_CREATED_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Create_a_case_type_returns_CREATED_response.json create mode 100644 src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_Bad_Request_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_Bad_Request_response.json create mode 100644 src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_CREATED_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_CREATED_response.json create mode 100644 src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_Not_Found_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_Not_Found_response.json create mode 100644 src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_NotContent_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_NotContent_response.json create mode 100644 src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_OK_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_OK_response.json create mode 100644 src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Bad_Request_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Bad_Request_response.json create mode 100644 src/test/resources/cassettes/features/v2/Delete_case_comment_returns_No_Content_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Delete_case_comment_returns_No_Content_response.json create mode 100644 src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Not_Found_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Not_Found_response.json create mode 100644 src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_Not_Found_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_Not_Found_response.json create mode 100644 src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_OK_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_OK_response.json create mode 100644 src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_Bad_Request_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_Bad_Request_response.json create mode 100644 src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_No_Content_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_No_Content_response.json create mode 100644 src/test/resources/cassettes/features/v2/Get_all_case_types_returns_OK_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Get_all_case_types_returns_OK_response.json create mode 100644 src/test/resources/cassettes/features/v2/Get_all_custom_attributes_config_of_case_type_returns_OK_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Get_all_custom_attributes_config_of_case_type_returns_OK_response.json create mode 100644 src/test/resources/cassettes/features/v2/Get_all_custom_attributes_returns_OK_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Get_all_custom_attributes_returns_OK_response.json create mode 100644 src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Bad_Request_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Bad_Request_response.json create mode 100644 src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Not_Found_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Not_Found_response.json create mode 100644 src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_OK_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_OK_response.json create mode 100644 src/test/resources/cassettes/features/v2/Update_case_description_returns_Bad_Request_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Update_case_description_returns_Bad_Request_response.json create mode 100644 src/test/resources/cassettes/features/v2/Update_case_description_returns_Not_Found_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Update_case_description_returns_Not_Found_response.json create mode 100644 src/test/resources/cassettes/features/v2/Update_case_description_returns_OK_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Update_case_description_returns_OK_response.json create mode 100644 src/test/resources/cassettes/features/v2/Update_case_title_returns_Bad_Request_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Update_case_title_returns_Bad_Request_response.json create mode 100644 src/test/resources/cassettes/features/v2/Update_case_title_returns_Not_Found_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Update_case_title_returns_Not_Found_response.json create mode 100644 src/test/resources/cassettes/features/v2/Update_case_title_returns_OK_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Update_case_title_returns_OK_response.json create mode 100644 src/test/resources/com/datadog/api/client/v2/api/case_management_attribute.feature create mode 100644 src/test/resources/com/datadog/api/client/v2/api/case_management_type.feature diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 0d0a0d67f3d..f0e3cc62693 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 @@ -8464,6 +8496,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 @@ -8491,6 +8528,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 @@ -8517,11 +8587,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 @@ -8652,6 +8724,7 @@ components: - caseTrigger type: object CaseType: + deprecated: true description: Case type enum: - STANDARD @@ -8659,6 +8732,85 @@ components: type: string x-enum-varnames: - STANDARD + 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 + 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: @@ -8686,6 +8838,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: @@ -8740,6 +8940,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: @@ -13121,6 +13350,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: @@ -49647,6 +50047,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: @@ -55864,6 +56378,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` @@ -56009,6 +56686,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 @@ -56085,6 +56924,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 @@ -78816,6 +79693,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 Google Cloud. 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/examples/v2/case-management-attribute/CreateCustomAttributeConfig.java b/examples/v2/case-management-attribute/CreateCustomAttributeConfig.java new file mode 100644 index 00000000000..1d45e2b099d --- /dev/null +++ b/examples/v2/case-management-attribute/CreateCustomAttributeConfig.java @@ -0,0 +1,46 @@ +// Create custom attribute config for a case type returns "CREATED" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CaseManagementAttributeApi; +import com.datadog.api.client.v2.model.CustomAttributeConfigAttributesCreate; +import com.datadog.api.client.v2.model.CustomAttributeConfigCreate; +import com.datadog.api.client.v2.model.CustomAttributeConfigCreateRequest; +import com.datadog.api.client.v2.model.CustomAttributeConfigResourceType; +import com.datadog.api.client.v2.model.CustomAttributeConfigResponse; +import com.datadog.api.client.v2.model.CustomAttributeType; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + CaseManagementAttributeApi apiInstance = new CaseManagementAttributeApi(defaultClient); + + // there is a valid "case_type" in the system + String CASE_TYPE_ID = System.getenv("CASE_TYPE_ID"); + + CustomAttributeConfigCreateRequest body = + new CustomAttributeConfigCreateRequest() + .data( + new CustomAttributeConfigCreate() + .attributes( + new CustomAttributeConfigAttributesCreate() + .displayName("AWS Region 9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d") + .isMulti(true) + .key("region_d9fe56bc9274fbb6") + .type(CustomAttributeType.NUMBER)) + .type(CustomAttributeConfigResourceType.CUSTOM_ATTRIBUTE)); + + try { + CustomAttributeConfigResponse result = + apiInstance.createCustomAttributeConfig(CASE_TYPE_ID, body); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling CaseManagementAttributeApi#createCustomAttributeConfig"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/case-management-attribute/DeleteCustomAttributeConfig.java b/examples/v2/case-management-attribute/DeleteCustomAttributeConfig.java new file mode 100644 index 00000000000..1c35b090351 --- /dev/null +++ b/examples/v2/case-management-attribute/DeleteCustomAttributeConfig.java @@ -0,0 +1,29 @@ +// Delete custom attributes config returns "No Content" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CaseManagementAttributeApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + CaseManagementAttributeApi apiInstance = new CaseManagementAttributeApi(defaultClient); + + // there is a valid "case_type" in the system + String CASE_TYPE_ID = System.getenv("CASE_TYPE_ID"); + + // there is a valid "custom_attribute" in the system + String CUSTOM_ATTRIBUTE_ID = System.getenv("CUSTOM_ATTRIBUTE_ID"); + + try { + apiInstance.deleteCustomAttributeConfig(CASE_TYPE_ID, CUSTOM_ATTRIBUTE_ID); + } catch (ApiException e) { + System.err.println( + "Exception when calling CaseManagementAttributeApi#deleteCustomAttributeConfig"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/case-management-attribute/GetAllCustomAttributeConfigsByCaseType.java b/examples/v2/case-management-attribute/GetAllCustomAttributeConfigsByCaseType.java new file mode 100644 index 00000000000..5eb7cd0cf85 --- /dev/null +++ b/examples/v2/case-management-attribute/GetAllCustomAttributeConfigsByCaseType.java @@ -0,0 +1,30 @@ +// Get all custom attributes config of case type returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CaseManagementAttributeApi; +import com.datadog.api.client.v2.model.CustomAttributeConfigsResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + CaseManagementAttributeApi apiInstance = new CaseManagementAttributeApi(defaultClient); + + // there is a valid "case_type" in the system + String CASE_TYPE_ID = System.getenv("CASE_TYPE_ID"); + + try { + CustomAttributeConfigsResponse result = + apiInstance.getAllCustomAttributeConfigsByCaseType(CASE_TYPE_ID); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling" + + " CaseManagementAttributeApi#getAllCustomAttributeConfigsByCaseType"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/case-management-attribute/GetAllCustomAttributes.java b/examples/v2/case-management-attribute/GetAllCustomAttributes.java new file mode 100644 index 00000000000..1423ab6e7a7 --- /dev/null +++ b/examples/v2/case-management-attribute/GetAllCustomAttributes.java @@ -0,0 +1,25 @@ +// Get all custom attributes returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CaseManagementAttributeApi; +import com.datadog.api.client.v2.model.CustomAttributeConfigsResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + CaseManagementAttributeApi apiInstance = new CaseManagementAttributeApi(defaultClient); + + try { + CustomAttributeConfigsResponse result = apiInstance.getAllCustomAttributes(); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling CaseManagementAttributeApi#getAllCustomAttributes"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/case-management-type/CreateCaseType.java b/examples/v2/case-management-type/CreateCaseType.java new file mode 100644 index 00000000000..b0372f52d47 --- /dev/null +++ b/examples/v2/case-management-type/CreateCaseType.java @@ -0,0 +1,39 @@ +// Create a case type returns "CREATED" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CaseManagementTypeApi; +import com.datadog.api.client.v2.model.CaseTypeCreate; +import com.datadog.api.client.v2.model.CaseTypeCreateRequest; +import com.datadog.api.client.v2.model.CaseTypeResourceAttributes; +import com.datadog.api.client.v2.model.CaseTypeResourceType; +import com.datadog.api.client.v2.model.CaseTypeResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + CaseManagementTypeApi apiInstance = new CaseManagementTypeApi(defaultClient); + + CaseTypeCreateRequest body = + new CaseTypeCreateRequest() + .data( + new CaseTypeCreate() + .attributes( + new CaseTypeResourceAttributes() + .description("Investigations done in case management") + .emoji("👑") + .name("Investigation")) + .type(CaseTypeResourceType.CASE_TYPE)); + + try { + CaseTypeResponse result = apiInstance.createCaseType(body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CaseManagementTypeApi#createCaseType"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/case-management-type/DeleteCaseType.java b/examples/v2/case-management-type/DeleteCaseType.java new file mode 100644 index 00000000000..b3667df27fe --- /dev/null +++ b/examples/v2/case-management-type/DeleteCaseType.java @@ -0,0 +1,22 @@ +// Delete a case type returns "No Content" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CaseManagementTypeApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + CaseManagementTypeApi apiInstance = new CaseManagementTypeApi(defaultClient); + + try { + apiInstance.deleteCaseType("f98a5a5b-e0ff-45d4-b2f5-afe6e74de505"); + } catch (ApiException e) { + System.err.println("Exception when calling CaseManagementTypeApi#deleteCaseType"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/case-management-type/DeleteCaseType_2790986149.java b/examples/v2/case-management-type/DeleteCaseType_2790986149.java new file mode 100644 index 00000000000..639f6bae94b --- /dev/null +++ b/examples/v2/case-management-type/DeleteCaseType_2790986149.java @@ -0,0 +1,25 @@ +// Delete a case type returns "NotContent" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CaseManagementTypeApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + CaseManagementTypeApi apiInstance = new CaseManagementTypeApi(defaultClient); + + // there is a valid "case_type" in the system + String CASE_TYPE_ID = System.getenv("CASE_TYPE_ID"); + + try { + apiInstance.deleteCaseType(CASE_TYPE_ID); + } catch (ApiException e) { + System.err.println("Exception when calling CaseManagementTypeApi#deleteCaseType"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/case-management-type/GetAllCaseTypes.java b/examples/v2/case-management-type/GetAllCaseTypes.java new file mode 100644 index 00000000000..a7b4fbbcf95 --- /dev/null +++ b/examples/v2/case-management-type/GetAllCaseTypes.java @@ -0,0 +1,24 @@ +// Get all case types returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CaseManagementTypeApi; +import com.datadog.api.client.v2.model.CaseTypesResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + CaseManagementTypeApi apiInstance = new CaseManagementTypeApi(defaultClient); + + try { + CaseTypesResponse result = apiInstance.getAllCaseTypes(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CaseManagementTypeApi#getAllCaseTypes"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/case-management/CommentCase.java b/examples/v2/case-management/CommentCase.java new file mode 100644 index 00000000000..12656dfccd2 --- /dev/null +++ b/examples/v2/case-management/CommentCase.java @@ -0,0 +1,38 @@ +// Comment case returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CaseManagementApi; +import com.datadog.api.client.v2.model.CaseComment; +import com.datadog.api.client.v2.model.CaseCommentAttributes; +import com.datadog.api.client.v2.model.CaseCommentRequest; +import com.datadog.api.client.v2.model.CaseResourceType; +import com.datadog.api.client.v2.model.TimelineResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + CaseManagementApi apiInstance = new CaseManagementApi(defaultClient); + + // there is a valid "case" in the system + String CASE_ID = System.getenv("CASE_ID"); + + CaseCommentRequest body = + new CaseCommentRequest() + .data( + new CaseComment() + .attributes(new CaseCommentAttributes().comment("Hello World !")) + .type(CaseResourceType.CASE)); + + try { + TimelineResponse result = apiInstance.commentCase(CASE_ID, body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CaseManagementApi#commentCase"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/case-management/CreateCase.java b/examples/v2/case-management/CreateCase.java index 4f8a995b8b9..78c1df4c575 100644 --- a/examples/v2/case-management/CreateCase.java +++ b/examples/v2/case-management/CreateCase.java @@ -10,7 +10,6 @@ import com.datadog.api.client.v2.model.CasePriority; import com.datadog.api.client.v2.model.CaseResourceType; import com.datadog.api.client.v2.model.CaseResponse; -import com.datadog.api.client.v2.model.CaseType; import com.datadog.api.client.v2.model.NullableUserRelationship; import com.datadog.api.client.v2.model.NullableUserRelationshipData; import com.datadog.api.client.v2.model.ProjectRelationship; @@ -34,7 +33,7 @@ public static void main(String[] args) { new CaseCreateAttributes() .priority(CasePriority.NOT_DEFINED) .title("Security breach investigation in 0cfbc5cbc676ee71") - .type(CaseType.STANDARD)) + .typeId("00000000-0000-0000-0000-000000000001")) .relationships( new CaseCreateRelationships() .assignee( diff --git a/examples/v2/case-management/DeleteCaseComment.java b/examples/v2/case-management/DeleteCaseComment.java new file mode 100644 index 00000000000..d3143739bac --- /dev/null +++ b/examples/v2/case-management/DeleteCaseComment.java @@ -0,0 +1,28 @@ +// Delete case comment returns "No Content" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CaseManagementApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + CaseManagementApi apiInstance = new CaseManagementApi(defaultClient); + + // there is a valid "case" in the system + String CASE_ID = System.getenv("CASE_ID"); + + // there is a valid "comment" in the system + String COMMENT_ID = System.getenv("COMMENT_ID"); + + try { + apiInstance.deleteCaseComment(CASE_ID, COMMENT_ID); + } catch (ApiException e) { + System.err.println("Exception when calling CaseManagementApi#deleteCaseComment"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/case-management/DeleteCaseCustomAttribute.java b/examples/v2/case-management/DeleteCaseCustomAttribute.java new file mode 100644 index 00000000000..a446f9158c7 --- /dev/null +++ b/examples/v2/case-management/DeleteCaseCustomAttribute.java @@ -0,0 +1,31 @@ +// Delete custom attribute from case returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CaseManagementApi; +import com.datadog.api.client.v2.model.CaseResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + CaseManagementApi apiInstance = new CaseManagementApi(defaultClient); + + // there is a valid "case" with a custom "case_type" in the system + String CASE_WITH_TYPE_ID = System.getenv("CASE_WITH_TYPE_ID"); + + // there is a valid "custom_attribute" in the system + String CUSTOM_ATTRIBUTE_ATTRIBUTES_KEY = System.getenv("CUSTOM_ATTRIBUTE_ATTRIBUTES_KEY"); + + try { + CaseResponse result = + apiInstance.deleteCaseCustomAttribute(CASE_WITH_TYPE_ID, CUSTOM_ATTRIBUTE_ATTRIBUTES_KEY); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CaseManagementApi#deleteCaseCustomAttribute"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/case-management/UpdateCaseCustomAttribute.java b/examples/v2/case-management/UpdateCaseCustomAttribute.java new file mode 100644 index 00000000000..2b3452b638a --- /dev/null +++ b/examples/v2/case-management/UpdateCaseCustomAttribute.java @@ -0,0 +1,52 @@ +// Update case custom attribute returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CaseManagementApi; +import com.datadog.api.client.v2.model.CaseResourceType; +import com.datadog.api.client.v2.model.CaseResponse; +import com.datadog.api.client.v2.model.CaseUpdateCustomAttribute; +import com.datadog.api.client.v2.model.CaseUpdateCustomAttributeRequest; +import com.datadog.api.client.v2.model.CustomAttributeType; +import com.datadog.api.client.v2.model.CustomAttributeValue; +import com.datadog.api.client.v2.model.CustomAttributeValuesUnion; +import java.util.Arrays; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + CaseManagementApi apiInstance = new CaseManagementApi(defaultClient); + + // there is a valid "case" with a custom "case_type" in the system + String CASE_WITH_TYPE_ID = System.getenv("CASE_WITH_TYPE_ID"); + + // there is a valid "custom_attribute" in the system + String CUSTOM_ATTRIBUTE_ATTRIBUTES_KEY = System.getenv("CUSTOM_ATTRIBUTE_ATTRIBUTES_KEY"); + + CaseUpdateCustomAttributeRequest body = + new CaseUpdateCustomAttributeRequest() + .data( + new CaseUpdateCustomAttribute() + .attributes( + new CustomAttributeValue() + .type(CustomAttributeType.TEXT) + .isMulti(true) + .value( + CustomAttributeValuesUnion.fromStringList( + Arrays.asList("Abba", "The Cure")))) + .type(CaseResourceType.CASE)); + + try { + CaseResponse result = + apiInstance.updateCaseCustomAttribute( + CASE_WITH_TYPE_ID, CUSTOM_ATTRIBUTE_ATTRIBUTES_KEY, body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CaseManagementApi#updateCaseCustomAttribute"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/case-management/UpdateCaseDescription.java b/examples/v2/case-management/UpdateCaseDescription.java new file mode 100644 index 00000000000..f7902ab723d --- /dev/null +++ b/examples/v2/case-management/UpdateCaseDescription.java @@ -0,0 +1,41 @@ +// Update case description returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CaseManagementApi; +import com.datadog.api.client.v2.model.CaseResourceType; +import com.datadog.api.client.v2.model.CaseResponse; +import com.datadog.api.client.v2.model.CaseUpdateDescription; +import com.datadog.api.client.v2.model.CaseUpdateDescriptionAttributes; +import com.datadog.api.client.v2.model.CaseUpdateDescriptionRequest; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + CaseManagementApi apiInstance = new CaseManagementApi(defaultClient); + + // there is a valid "case" in the system + String CASE_ID = System.getenv("CASE_ID"); + + CaseUpdateDescriptionRequest body = + new CaseUpdateDescriptionRequest() + .data( + new CaseUpdateDescription() + .attributes( + new CaseUpdateDescriptionAttributes() + .description( + "Seeing some weird memory increase... Updating the description")) + .type(CaseResourceType.CASE)); + + try { + CaseResponse result = apiInstance.updateCaseDescription(CASE_ID, body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CaseManagementApi#updateCaseDescription"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/case-management/UpdateCaseTitle.java b/examples/v2/case-management/UpdateCaseTitle.java new file mode 100644 index 00000000000..20d58ef895b --- /dev/null +++ b/examples/v2/case-management/UpdateCaseTitle.java @@ -0,0 +1,40 @@ +// Update case title returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CaseManagementApi; +import com.datadog.api.client.v2.model.CaseResourceType; +import com.datadog.api.client.v2.model.CaseResponse; +import com.datadog.api.client.v2.model.CaseUpdateTitle; +import com.datadog.api.client.v2.model.CaseUpdateTitleAttributes; +import com.datadog.api.client.v2.model.CaseUpdateTitleRequest; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + CaseManagementApi apiInstance = new CaseManagementApi(defaultClient); + + // there is a valid "case" in the system + String CASE_ID = System.getenv("CASE_ID"); + + CaseUpdateTitleRequest body = + new CaseUpdateTitleRequest() + .data( + new CaseUpdateTitle() + .attributes( + new CaseUpdateTitleAttributes() + .title("[UPDATED] Memory leak investigation on API")) + .type(CaseResourceType.CASE)); + + try { + CaseResponse result = apiInstance.updateCaseTitle(CASE_ID, body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CaseManagementApi#updateCaseTitle"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/datadog/api/client/v2/api/CaseManagementApi.java b/src/main/java/com/datadog/api/client/v2/api/CaseManagementApi.java index df176c4d6b9..5143d6939ab 100644 --- a/src/main/java/com/datadog/api/client/v2/api/CaseManagementApi.java +++ b/src/main/java/com/datadog/api/client/v2/api/CaseManagementApi.java @@ -7,17 +7,22 @@ import com.datadog.api.client.Pair; import com.datadog.api.client.v2.model.Case; import com.datadog.api.client.v2.model.CaseAssignRequest; +import com.datadog.api.client.v2.model.CaseCommentRequest; import com.datadog.api.client.v2.model.CaseCreateRequest; import com.datadog.api.client.v2.model.CaseEmptyRequest; import com.datadog.api.client.v2.model.CaseResponse; import com.datadog.api.client.v2.model.CaseSortableField; import com.datadog.api.client.v2.model.CaseUpdateAttributesRequest; +import com.datadog.api.client.v2.model.CaseUpdateCustomAttributeRequest; +import com.datadog.api.client.v2.model.CaseUpdateDescriptionRequest; import com.datadog.api.client.v2.model.CaseUpdatePriorityRequest; import com.datadog.api.client.v2.model.CaseUpdateStatusRequest; +import com.datadog.api.client.v2.model.CaseUpdateTitleRequest; import com.datadog.api.client.v2.model.CasesResponse; import com.datadog.api.client.v2.model.ProjectCreateRequest; import com.datadog.api.client.v2.model.ProjectResponse; import com.datadog.api.client.v2.model.ProjectsResponse; +import com.datadog.api.client.v2.model.TimelineResponse; import jakarta.ws.rs.client.Invocation; import jakarta.ws.rs.core.GenericType; import java.util.ArrayList; @@ -365,6 +370,161 @@ public CompletableFuture> assignCaseWithHttpInfoAsync( new GenericType() {}); } + /** + * Comment case. + * + *

See {@link #commentCaseWithHttpInfo}. + * + * @param caseId Case's UUID or key (required) + * @param body Case comment payload (required) + * @return TimelineResponse + * @throws ApiException if fails to make API call + */ + public TimelineResponse commentCase(String caseId, CaseCommentRequest body) throws ApiException { + return commentCaseWithHttpInfo(caseId, body).getData(); + } + + /** + * Comment case. + * + *

See {@link #commentCaseWithHttpInfoAsync}. + * + * @param caseId Case's UUID or key (required) + * @param body Case comment payload (required) + * @return CompletableFuture<TimelineResponse> + */ + public CompletableFuture commentCaseAsync( + String caseId, CaseCommentRequest body) { + return commentCaseWithHttpInfoAsync(caseId, body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Comment case + * + * @param caseId Case's UUID or key (required) + * @param body Case comment payload (required) + * @return ApiResponse<TimelineResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse commentCaseWithHttpInfo( + String caseId, CaseCommentRequest body) throws ApiException { + Object localVarPostBody = body; + + // verify the required parameter 'caseId' is set + if (caseId == null) { + throw new ApiException( + 400, "Missing the required parameter 'caseId' when calling commentCase"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException(400, "Missing the required parameter 'body' when calling commentCase"); + } + // create path and map variables + String localVarPath = + "/api/v2/cases/{case_id}/comment" + .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CaseManagementApi.commentCase", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Comment case. + * + *

See {@link #commentCaseWithHttpInfo}. + * + * @param caseId Case's UUID or key (required) + * @param body Case comment payload (required) + * @return CompletableFuture<ApiResponse<TimelineResponse>> + */ + public CompletableFuture> commentCaseWithHttpInfoAsync( + String caseId, CaseCommentRequest body) { + Object localVarPostBody = body; + + // verify the required parameter 'caseId' is set + if (caseId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'caseId' when calling commentCase")); + return result; + } + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(400, "Missing the required parameter 'body' when calling commentCase")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/cases/{case_id}/comment" + .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CaseManagementApi.commentCase", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + /** * Create a case. * @@ -630,27 +790,29 @@ public CompletableFuture> createProjectWithHttpInfo } /** - * Remove a project. + * Delete case comment. * - *

See {@link #deleteProjectWithHttpInfo}. + *

See {@link #deleteCaseCommentWithHttpInfo}. * - * @param projectId Project UUID (required) + * @param caseId Case's UUID or key (required) + * @param cellId Timeline cell's UUID (required) * @throws ApiException if fails to make API call */ - public void deleteProject(String projectId) throws ApiException { - deleteProjectWithHttpInfo(projectId); + public void deleteCaseComment(String caseId, String cellId) throws ApiException { + deleteCaseCommentWithHttpInfo(caseId, cellId); } /** - * Remove a project. + * Delete case comment. * - *

See {@link #deleteProjectWithHttpInfoAsync}. + *

See {@link #deleteCaseCommentWithHttpInfoAsync}. * - * @param projectId Project UUID (required) + * @param caseId Case's UUID or key (required) + * @param cellId Timeline cell's UUID (required) * @return CompletableFuture */ - public CompletableFuture deleteProjectAsync(String projectId) { - return deleteProjectWithHttpInfoAsync(projectId) + public CompletableFuture deleteCaseCommentAsync(String caseId, String cellId) { + return deleteCaseCommentWithHttpInfoAsync(caseId, cellId) .thenApply( response -> { return response.getData(); @@ -658,9 +820,10 @@ public CompletableFuture deleteProjectAsync(String projectId) { } /** - * Remove a project using the project's id. + * Delete case comment * - * @param projectId Project UUID (required) + * @param caseId Case's UUID or key (required) + * @param cellId Timeline cell's UUID (required) * @return ApiResponse<Void> * @throws ApiException if fails to make API call * @http.response.details @@ -668,35 +831,45 @@ public CompletableFuture deleteProjectAsync(String projectId) { * Response details * Status Code Description Response Headers * 204 No Content - + * 400 Bad Request - + * 401 Unauthorized - * 403 Forbidden - - * 404 API error response - + * 404 Not Found - * 429 Too many requests - * */ - public ApiResponse deleteProjectWithHttpInfo(String projectId) throws ApiException { + public ApiResponse deleteCaseCommentWithHttpInfo(String caseId, String cellId) + throws ApiException { Object localVarPostBody = null; - // verify the required parameter 'projectId' is set - if (projectId == null) { + // verify the required parameter 'caseId' is set + if (caseId == null) { throw new ApiException( - 400, "Missing the required parameter 'projectId' when calling deleteProject"); + 400, "Missing the required parameter 'caseId' when calling deleteCaseComment"); + } + + // verify the required parameter 'cellId' is set + if (cellId == null) { + throw new ApiException( + 400, "Missing the required parameter 'cellId' when calling deleteCaseComment"); } // create path and map variables String localVarPath = - "/api/v2/cases/projects/{project_id}" - .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())); + "/api/v2/cases/{case_id}/comment/{cell_id}" + .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())) + .replaceAll("\\{" + "cell_id" + "\\}", apiClient.escapeString(cellId.toString())); Map localVarHeaderParams = new HashMap(); Invocation.Builder builder = apiClient.createBuilder( - "v2.CaseManagementApi.deleteProject", + "v2.CaseManagementApi.deleteCaseComment", localVarPath, new ArrayList(), localVarHeaderParams, new HashMap(), new String[] {"*/*"}, - new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + new String[] {"apiKeyAuth", "appKeyAuth"}); return apiClient.invokeAPI( "DELETE", builder, @@ -709,28 +882,40 @@ public ApiResponse deleteProjectWithHttpInfo(String projectId) throws ApiE } /** - * Remove a project. + * Delete case comment. * - *

See {@link #deleteProjectWithHttpInfo}. + *

See {@link #deleteCaseCommentWithHttpInfo}. * - * @param projectId Project UUID (required) + * @param caseId Case's UUID or key (required) + * @param cellId Timeline cell's UUID (required) * @return CompletableFuture<ApiResponse<Void>> */ - public CompletableFuture> deleteProjectWithHttpInfoAsync(String projectId) { + public CompletableFuture> deleteCaseCommentWithHttpInfoAsync( + String caseId, String cellId) { Object localVarPostBody = null; - // verify the required parameter 'projectId' is set - if (projectId == null) { + // verify the required parameter 'caseId' is set + if (caseId == null) { CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally( new ApiException( - 400, "Missing the required parameter 'projectId' when calling deleteProject")); + 400, "Missing the required parameter 'caseId' when calling deleteCaseComment")); + return result; + } + + // verify the required parameter 'cellId' is set + if (cellId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'cellId' when calling deleteCaseComment")); return result; } // create path and map variables String localVarPath = - "/api/v2/cases/projects/{project_id}" - .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())); + "/api/v2/cases/{case_id}/comment/{cell_id}" + .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())) + .replaceAll("\\{" + "cell_id" + "\\}", apiClient.escapeString(cellId.toString())); Map localVarHeaderParams = new HashMap(); @@ -738,13 +923,13 @@ public CompletableFuture> deleteProjectWithHttpInfoAsync(Strin try { builder = apiClient.createBuilder( - "v2.CaseManagementApi.deleteProject", + "v2.CaseManagementApi.deleteCaseComment", localVarPath, new ArrayList(), localVarHeaderParams, new HashMap(), new String[] {"*/*"}, - new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + new String[] {"apiKeyAuth", "appKeyAuth"}); } catch (ApiException ex) { CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally(ex); @@ -762,28 +947,32 @@ public CompletableFuture> deleteProjectWithHttpInfoAsync(Strin } /** - * Get the details of a case. + * Delete custom attribute from case. * - *

See {@link #getCaseWithHttpInfo}. + *

See {@link #deleteCaseCustomAttributeWithHttpInfo}. * * @param caseId Case's UUID or key (required) + * @param customAttributeKey Case Custom attribute's key (required) * @return CaseResponse * @throws ApiException if fails to make API call */ - public CaseResponse getCase(String caseId) throws ApiException { - return getCaseWithHttpInfo(caseId).getData(); + public CaseResponse deleteCaseCustomAttribute(String caseId, String customAttributeKey) + throws ApiException { + return deleteCaseCustomAttributeWithHttpInfo(caseId, customAttributeKey).getData(); } /** - * Get the details of a case. + * Delete custom attribute from case. * - *

See {@link #getCaseWithHttpInfoAsync}. + *

See {@link #deleteCaseCustomAttributeWithHttpInfoAsync}. * * @param caseId Case's UUID or key (required) + * @param customAttributeKey Case Custom attribute's key (required) * @return CompletableFuture<CaseResponse> */ - public CompletableFuture getCaseAsync(String caseId) { - return getCaseWithHttpInfoAsync(caseId) + public CompletableFuture deleteCaseCustomAttributeAsync( + String caseId, String customAttributeKey) { + return deleteCaseCustomAttributeWithHttpInfoAsync(caseId, customAttributeKey) .thenApply( response -> { return response.getData(); @@ -791,9 +980,10 @@ public CompletableFuture getCaseAsync(String caseId) { } /** - * Get the details of case by case_id + * Delete custom attribute from case * * @param caseId Case's UUID or key (required) + * @param customAttributeKey Case Custom attribute's key (required) * @return ApiResponse<CaseResponse> * @throws ApiException if fails to make API call * @http.response.details @@ -801,30 +991,42 @@ public CompletableFuture getCaseAsync(String caseId) { * Response details * Status Code Description Response Headers * 200 OK - - * 400 Bad Request - * 401 Unauthorized - * 403 Forbidden - * 404 Not Found - * 429 Too many requests - * */ - public ApiResponse getCaseWithHttpInfo(String caseId) throws ApiException { + public ApiResponse deleteCaseCustomAttributeWithHttpInfo( + String caseId, String customAttributeKey) throws ApiException { Object localVarPostBody = null; // verify the required parameter 'caseId' is set if (caseId == null) { - throw new ApiException(400, "Missing the required parameter 'caseId' when calling getCase"); + throw new ApiException( + 400, "Missing the required parameter 'caseId' when calling deleteCaseCustomAttribute"); + } + + // verify the required parameter 'customAttributeKey' is set + if (customAttributeKey == null) { + throw new ApiException( + 400, + "Missing the required parameter 'customAttributeKey' when calling" + + " deleteCaseCustomAttribute"); } // create path and map variables String localVarPath = - "/api/v2/cases/{case_id}" - .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())); + "/api/v2/cases/{case_id}/custom_attributes/{custom_attribute_key}" + .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())) + .replaceAll( + "\\{" + "custom_attribute_key" + "\\}", + apiClient.escapeString(customAttributeKey.toString())); Map localVarHeaderParams = new HashMap(); Invocation.Builder builder = apiClient.createBuilder( - "v2.CaseManagementApi.getCase", + "v2.CaseManagementApi.deleteCaseCustomAttribute", localVarPath, new ArrayList(), localVarHeaderParams, @@ -832,7 +1034,7 @@ public ApiResponse getCaseWithHttpInfo(String caseId) throws ApiEx new String[] {"application/json"}, new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); return apiClient.invokeAPI( - "GET", + "DELETE", builder, localVarHeaderParams, new String[] {}, @@ -843,27 +1045,45 @@ public ApiResponse getCaseWithHttpInfo(String caseId) throws ApiEx } /** - * Get the details of a case. + * Delete custom attribute from case. * - *

See {@link #getCaseWithHttpInfo}. + *

See {@link #deleteCaseCustomAttributeWithHttpInfo}. * * @param caseId Case's UUID or key (required) + * @param customAttributeKey Case Custom attribute's key (required) * @return CompletableFuture<ApiResponse<CaseResponse>> */ - public CompletableFuture> getCaseWithHttpInfoAsync(String caseId) { + public CompletableFuture> deleteCaseCustomAttributeWithHttpInfoAsync( + String caseId, String customAttributeKey) { Object localVarPostBody = null; // verify the required parameter 'caseId' is set if (caseId == null) { CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally( - new ApiException(400, "Missing the required parameter 'caseId' when calling getCase")); + new ApiException( + 400, + "Missing the required parameter 'caseId' when calling deleteCaseCustomAttribute")); + return result; + } + + // verify the required parameter 'customAttributeKey' is set + if (customAttributeKey == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'customAttributeKey' when calling" + + " deleteCaseCustomAttribute")); return result; } // create path and map variables String localVarPath = - "/api/v2/cases/{case_id}" - .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())); + "/api/v2/cases/{case_id}/custom_attributes/{custom_attribute_key}" + .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())) + .replaceAll( + "\\{" + "custom_attribute_key" + "\\}", + apiClient.escapeString(customAttributeKey.toString())); Map localVarHeaderParams = new HashMap(); @@ -871,7 +1091,7 @@ public CompletableFuture> getCaseWithHttpInfoAsync(Str try { builder = apiClient.createBuilder( - "v2.CaseManagementApi.getCase", + "v2.CaseManagementApi.deleteCaseCustomAttribute", localVarPath, new ArrayList(), localVarHeaderParams, @@ -884,7 +1104,7 @@ public CompletableFuture> getCaseWithHttpInfoAsync(Str return result; } return apiClient.invokeAPIAsync( - "GET", + "DELETE", builder, localVarHeaderParams, new String[] {}, @@ -895,28 +1115,27 @@ public CompletableFuture> getCaseWithHttpInfoAsync(Str } /** - * Get the details of a project. + * Remove a project. * - *

See {@link #getProjectWithHttpInfo}. + *

See {@link #deleteProjectWithHttpInfo}. * * @param projectId Project UUID (required) - * @return ProjectResponse * @throws ApiException if fails to make API call */ - public ProjectResponse getProject(String projectId) throws ApiException { - return getProjectWithHttpInfo(projectId).getData(); + public void deleteProject(String projectId) throws ApiException { + deleteProjectWithHttpInfo(projectId); } /** - * Get the details of a project. + * Remove a project. * - *

See {@link #getProjectWithHttpInfoAsync}. + *

See {@link #deleteProjectWithHttpInfoAsync}. * * @param projectId Project UUID (required) - * @return CompletableFuture<ProjectResponse> + * @return CompletableFuture */ - public CompletableFuture getProjectAsync(String projectId) { - return getProjectWithHttpInfoAsync(projectId) + public CompletableFuture deleteProjectAsync(String projectId) { + return deleteProjectWithHttpInfoAsync(projectId) .thenApply( response -> { return response.getData(); @@ -924,30 +1143,28 @@ public CompletableFuture getProjectAsync(String projectId) { } /** - * Get the details of a project by project_id. + * Remove a project using the project's id. * * @param projectId Project UUID (required) - * @return ApiResponse<ProjectResponse> + * @return ApiResponse<Void> * @throws ApiException if fails to make API call * @http.response.details * * * - * - * - * + * * - * + * * *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
401 Unauthorized -
204 No Content -
403 Forbidden -
404 Not Found -
404 API error response -
429 Too many requests -
*/ - public ApiResponse getProjectWithHttpInfo(String projectId) throws ApiException { + public ApiResponse deleteProjectWithHttpInfo(String projectId) throws ApiException { Object localVarPostBody = null; // verify the required parameter 'projectId' is set if (projectId == null) { throw new ApiException( - 400, "Missing the required parameter 'projectId' when calling getProject"); + 400, "Missing the required parameter 'projectId' when calling deleteProject"); } // create path and map variables String localVarPath = @@ -958,42 +1175,41 @@ public ApiResponse getProjectWithHttpInfo(String projectId) thr Invocation.Builder builder = apiClient.createBuilder( - "v2.CaseManagementApi.getProject", + "v2.CaseManagementApi.deleteProject", localVarPath, new ArrayList(), localVarHeaderParams, new HashMap(), - new String[] {"application/json"}, + new String[] {"*/*"}, new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); return apiClient.invokeAPI( - "GET", + "DELETE", builder, localVarHeaderParams, new String[] {}, localVarPostBody, new HashMap(), false, - new GenericType() {}); + null); } /** - * Get the details of a project. + * Remove a project. * - *

See {@link #getProjectWithHttpInfo}. + *

See {@link #deleteProjectWithHttpInfo}. * * @param projectId Project UUID (required) - * @return CompletableFuture<ApiResponse<ProjectResponse>> + * @return CompletableFuture<ApiResponse<Void>> */ - public CompletableFuture> getProjectWithHttpInfoAsync( - String projectId) { + public CompletableFuture> deleteProjectWithHttpInfoAsync(String projectId) { Object localVarPostBody = null; // verify the required parameter 'projectId' is set if (projectId == null) { - CompletableFuture> result = new CompletableFuture<>(); + CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally( new ApiException( - 400, "Missing the required parameter 'projectId' when calling getProject")); + 400, "Missing the required parameter 'projectId' when calling deleteProject")); return result; } // create path and map variables @@ -1007,50 +1223,52 @@ public CompletableFuture> getProjectWithHttpInfoAsy try { builder = apiClient.createBuilder( - "v2.CaseManagementApi.getProject", + "v2.CaseManagementApi.deleteProject", localVarPath, new ArrayList(), localVarHeaderParams, new HashMap(), - new String[] {"application/json"}, + new String[] {"*/*"}, new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); } catch (ApiException ex) { - CompletableFuture> result = new CompletableFuture<>(); + CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally(ex); return result; } return apiClient.invokeAPIAsync( - "GET", + "DELETE", builder, localVarHeaderParams, new String[] {}, localVarPostBody, new HashMap(), false, - new GenericType() {}); + null); } /** - * Get all projects. + * Get the details of a case. * - *

See {@link #getProjectsWithHttpInfo}. + *

See {@link #getCaseWithHttpInfo}. * - * @return ProjectsResponse + * @param caseId Case's UUID or key (required) + * @return CaseResponse * @throws ApiException if fails to make API call */ - public ProjectsResponse getProjects() throws ApiException { - return getProjectsWithHttpInfo().getData(); + public CaseResponse getCase(String caseId) throws ApiException { + return getCaseWithHttpInfo(caseId).getData(); } /** - * Get all projects. + * Get the details of a case. * - *

See {@link #getProjectsWithHttpInfoAsync}. + *

See {@link #getCaseWithHttpInfoAsync}. * - * @return CompletableFuture<ProjectsResponse> + * @param caseId Case's UUID or key (required) + * @return CompletableFuture<CaseResponse> */ - public CompletableFuture getProjectsAsync() { - return getProjectsWithHttpInfoAsync() + public CompletableFuture getCaseAsync(String caseId) { + return getCaseWithHttpInfoAsync(caseId) .thenApply( response -> { return response.getData(); @@ -1058,9 +1276,10 @@ public CompletableFuture getProjectsAsync() { } /** - * Get all projects. + * Get the details of case by case_id * - * @return ApiResponse<ProjectsResponse> + * @param caseId Case's UUID or key (required) + * @return ApiResponse<CaseResponse> * @throws ApiException if fails to make API call * @http.response.details * @@ -1074,16 +1293,23 @@ public CompletableFuture getProjectsAsync() { * *
429 Too many requests -
*/ - public ApiResponse getProjectsWithHttpInfo() throws ApiException { + public ApiResponse getCaseWithHttpInfo(String caseId) throws ApiException { Object localVarPostBody = null; + + // verify the required parameter 'caseId' is set + if (caseId == null) { + throw new ApiException(400, "Missing the required parameter 'caseId' when calling getCase"); + } // create path and map variables - String localVarPath = "/api/v2/cases/projects"; + String localVarPath = + "/api/v2/cases/{case_id}" + .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())); Map localVarHeaderParams = new HashMap(); Invocation.Builder builder = apiClient.createBuilder( - "v2.CaseManagementApi.getProjects", + "v2.CaseManagementApi.getCase", localVarPath, new ArrayList(), localVarHeaderParams, @@ -1098,20 +1324,31 @@ public ApiResponse getProjectsWithHttpInfo() throws ApiExcepti localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } /** - * Get all projects. + * Get the details of a case. * - *

See {@link #getProjectsWithHttpInfo}. + *

See {@link #getCaseWithHttpInfo}. * - * @return CompletableFuture<ApiResponse<ProjectsResponse>> + * @param caseId Case's UUID or key (required) + * @return CompletableFuture<ApiResponse<CaseResponse>> */ - public CompletableFuture> getProjectsWithHttpInfoAsync() { + public CompletableFuture> getCaseWithHttpInfoAsync(String caseId) { Object localVarPostBody = null; + + // verify the required parameter 'caseId' is set + if (caseId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(400, "Missing the required parameter 'caseId' when calling getCase")); + return result; + } // create path and map variables - String localVarPath = "/api/v2/cases/projects"; + String localVarPath = + "/api/v2/cases/{case_id}" + .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())); Map localVarHeaderParams = new HashMap(); @@ -1119,7 +1356,7 @@ public CompletableFuture> getProjectsWithHttpInfoA try { builder = apiClient.createBuilder( - "v2.CaseManagementApi.getProjects", + "v2.CaseManagementApi.getCase", localVarPath, new ArrayList(), localVarHeaderParams, @@ -1127,7 +1364,7 @@ public CompletableFuture> getProjectsWithHttpInfoA new String[] {"application/json"}, new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); } catch (ApiException ex) { - CompletableFuture> result = new CompletableFuture<>(); + CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally(ex); return result; } @@ -1139,95 +1376,32 @@ public CompletableFuture> getProjectsWithHttpInfoA localVarPostBody, new HashMap(), false, - new GenericType() {}); - } - - /** Manage optional parameters to searchCases. */ - public static class SearchCasesOptionalParameters { - private Long pageSize; - private Long pageNumber; - private CaseSortableField sortField; - private String filter; - private Boolean sortAsc; - - /** - * Set pageSize. - * - * @param pageSize Size for a given page. The maximum allowed value is 100. (optional, default - * to 10) - * @return SearchCasesOptionalParameters - */ - public SearchCasesOptionalParameters pageSize(Long pageSize) { - this.pageSize = pageSize; - return this; - } - - /** - * Set pageNumber. - * - * @param pageNumber Specific page number to return. (optional, default to 0) - * @return SearchCasesOptionalParameters - */ - public SearchCasesOptionalParameters pageNumber(Long pageNumber) { - this.pageNumber = pageNumber; - return this; - } - - /** - * Set sortField. - * - * @param sortField Specify which field to sort (optional) - * @return SearchCasesOptionalParameters - */ - public SearchCasesOptionalParameters sortField(CaseSortableField sortField) { - this.sortField = sortField; - return this; - } - - /** - * Set filter. - * - * @param filter Search query (optional) - * @return SearchCasesOptionalParameters - */ - public SearchCasesOptionalParameters filter(String filter) { - this.filter = filter; - return this; - } - - /** - * Set sortAsc. - * - * @param sortAsc Specify if order is ascending or not (optional, default to false) - * @return SearchCasesOptionalParameters - */ - public SearchCasesOptionalParameters sortAsc(Boolean sortAsc) { - this.sortAsc = sortAsc; - return this; - } + new GenericType() {}); } /** - * Search cases. + * Get the details of a project. * - *

See {@link #searchCasesWithHttpInfo}. + *

See {@link #getProjectWithHttpInfo}. * - * @return CasesResponse + * @param projectId Project UUID (required) + * @return ProjectResponse * @throws ApiException if fails to make API call */ - public CasesResponse searchCases() throws ApiException { - return searchCasesWithHttpInfo(new SearchCasesOptionalParameters()).getData(); + public ProjectResponse getProject(String projectId) throws ApiException { + return getProjectWithHttpInfo(projectId).getData(); } /** - * Search cases. + * Get the details of a project. * - *

See {@link #searchCasesWithHttpInfoAsync}. + *

See {@link #getProjectWithHttpInfoAsync}. * - * @return CompletableFuture<CasesResponse> + * @param projectId Project UUID (required) + * @return CompletableFuture<ProjectResponse> */ - public CompletableFuture searchCasesAsync() { - return searchCasesWithHttpInfoAsync(new SearchCasesOptionalParameters()) + public CompletableFuture getProjectAsync(String projectId) { + return getProjectWithHttpInfoAsync(projectId) .thenApply( response -> { return response.getData(); @@ -1235,93 +1409,862 @@ public CompletableFuture searchCasesAsync() { } /** - * Search cases. - * - *

See {@link #searchCasesWithHttpInfo}. + * Get the details of a project by project_id. * - * @param parameters Optional parameters for the request. - * @return CasesResponse + * @param projectId Project UUID (required) + * @return ApiResponse<ProjectResponse> * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
429 Too many requests -
*/ - public CasesResponse searchCases(SearchCasesOptionalParameters parameters) throws ApiException { - return searchCasesWithHttpInfo(parameters).getData(); - } + public ApiResponse getProjectWithHttpInfo(String projectId) throws ApiException { + Object localVarPostBody = null; - /** - * Search cases. - * - *

See {@link #searchCasesWithHttpInfoAsync}. - * - * @param parameters Optional parameters for the request. - * @return CompletableFuture<CasesResponse> - */ - public CompletableFuture searchCasesAsync( - SearchCasesOptionalParameters parameters) { - return searchCasesWithHttpInfoAsync(parameters) - .thenApply( - response -> { - return response.getData(); - }); + // verify the required parameter 'projectId' is set + if (projectId == null) { + throw new ApiException( + 400, "Missing the required parameter 'projectId' when calling getProject"); + } + // create path and map variables + String localVarPath = + "/api/v2/cases/projects/{project_id}" + .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CaseManagementApi.getProject", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); } /** - * Search cases. + * Get the details of a project. * - *

See {@link #searchCasesWithHttpInfo}. + *

See {@link #getProjectWithHttpInfo}. * - * @return PaginationIterable<Case> + * @param projectId Project UUID (required) + * @return CompletableFuture<ApiResponse<ProjectResponse>> */ - public PaginationIterable searchCasesWithPagination() { - SearchCasesOptionalParameters parameters = new SearchCasesOptionalParameters(); - return searchCasesWithPagination(parameters); + public CompletableFuture> getProjectWithHttpInfoAsync( + String projectId) { + Object localVarPostBody = null; + + // verify the required parameter 'projectId' is set + if (projectId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'projectId' when calling getProject")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/cases/projects/{project_id}" + .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CaseManagementApi.getProject", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get all projects. + * + *

See {@link #getProjectsWithHttpInfo}. + * + * @return ProjectsResponse + * @throws ApiException if fails to make API call + */ + public ProjectsResponse getProjects() throws ApiException { + return getProjectsWithHttpInfo().getData(); + } + + /** + * Get all projects. + * + *

See {@link #getProjectsWithHttpInfoAsync}. + * + * @return CompletableFuture<ProjectsResponse> + */ + public CompletableFuture getProjectsAsync() { + return getProjectsWithHttpInfoAsync() + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get all projects. + * + * @return ApiResponse<ProjectsResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse getProjectsWithHttpInfo() throws ApiException { + Object localVarPostBody = null; + // create path and map variables + String localVarPath = "/api/v2/cases/projects"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CaseManagementApi.getProjects", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get all projects. + * + *

See {@link #getProjectsWithHttpInfo}. + * + * @return CompletableFuture<ApiResponse<ProjectsResponse>> + */ + public CompletableFuture> getProjectsWithHttpInfoAsync() { + Object localVarPostBody = null; + // create path and map variables + String localVarPath = "/api/v2/cases/projects"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CaseManagementApi.getProjects", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** Manage optional parameters to searchCases. */ + public static class SearchCasesOptionalParameters { + private Long pageSize; + private Long pageNumber; + private CaseSortableField sortField; + private String filter; + private Boolean sortAsc; + + /** + * Set pageSize. + * + * @param pageSize Size for a given page. The maximum allowed value is 100. (optional, default + * to 10) + * @return SearchCasesOptionalParameters + */ + public SearchCasesOptionalParameters pageSize(Long pageSize) { + this.pageSize = pageSize; + return this; + } + + /** + * Set pageNumber. + * + * @param pageNumber Specific page number to return. (optional, default to 0) + * @return SearchCasesOptionalParameters + */ + public SearchCasesOptionalParameters pageNumber(Long pageNumber) { + this.pageNumber = pageNumber; + return this; + } + + /** + * Set sortField. + * + * @param sortField Specify which field to sort (optional) + * @return SearchCasesOptionalParameters + */ + public SearchCasesOptionalParameters sortField(CaseSortableField sortField) { + this.sortField = sortField; + return this; + } + + /** + * Set filter. + * + * @param filter Search query (optional) + * @return SearchCasesOptionalParameters + */ + public SearchCasesOptionalParameters filter(String filter) { + this.filter = filter; + return this; + } + + /** + * Set sortAsc. + * + * @param sortAsc Specify if order is ascending or not (optional, default to false) + * @return SearchCasesOptionalParameters + */ + public SearchCasesOptionalParameters sortAsc(Boolean sortAsc) { + this.sortAsc = sortAsc; + return this; + } + } + + /** + * Search cases. + * + *

See {@link #searchCasesWithHttpInfo}. + * + * @return CasesResponse + * @throws ApiException if fails to make API call + */ + public CasesResponse searchCases() throws ApiException { + return searchCasesWithHttpInfo(new SearchCasesOptionalParameters()).getData(); + } + + /** + * Search cases. + * + *

See {@link #searchCasesWithHttpInfoAsync}. + * + * @return CompletableFuture<CasesResponse> + */ + public CompletableFuture searchCasesAsync() { + return searchCasesWithHttpInfoAsync(new SearchCasesOptionalParameters()) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Search cases. + * + *

See {@link #searchCasesWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return CasesResponse + * @throws ApiException if fails to make API call + */ + public CasesResponse searchCases(SearchCasesOptionalParameters parameters) throws ApiException { + return searchCasesWithHttpInfo(parameters).getData(); + } + + /** + * Search cases. + * + *

See {@link #searchCasesWithHttpInfoAsync}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<CasesResponse> + */ + public CompletableFuture searchCasesAsync( + SearchCasesOptionalParameters parameters) { + return searchCasesWithHttpInfoAsync(parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Search cases. + * + *

See {@link #searchCasesWithHttpInfo}. + * + * @return PaginationIterable<Case> + */ + public PaginationIterable searchCasesWithPagination() { + SearchCasesOptionalParameters parameters = new SearchCasesOptionalParameters(); + return searchCasesWithPagination(parameters); + } + + /** + * Search cases. + * + *

See {@link #searchCasesWithHttpInfo}. + * + * @return CasesResponse + */ + public PaginationIterable searchCasesWithPagination( + SearchCasesOptionalParameters parameters) { + String resultsPath = "getData"; + String valueGetterPath = ""; + String valueSetterPath = "pageNumber"; + Boolean valueSetterParamOptional = true; + parameters.pageNumber(0l); + Long limit; + + if (parameters.pageSize == null) { + limit = 10l; + parameters.pageSize(limit); + } else { + limit = parameters.pageSize; + } + + LinkedHashMap args = new LinkedHashMap(); + args.put("optionalParams", parameters); + + PaginationIterable iterator = + new PaginationIterable( + this, + "searchCases", + resultsPath, + valueGetterPath, + valueSetterPath, + valueSetterParamOptional, + false, + limit, + args); + + return iterator; + } + + /** + * Search cases. + * + * @param parameters Optional parameters for the request. + * @return ApiResponse<CasesResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse searchCasesWithHttpInfo( + SearchCasesOptionalParameters parameters) throws ApiException { + Object localVarPostBody = null; + Long pageSize = parameters.pageSize; + Long pageNumber = parameters.pageNumber; + CaseSortableField sortField = parameters.sortField; + String filter = parameters.filter; + Boolean sortAsc = parameters.sortAsc; + // create path and map variables + String localVarPath = "/api/v2/cases"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[size]", pageSize)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[number]", pageNumber)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "sort[field]", sortField)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter", filter)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "sort[asc]", sortAsc)); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CaseManagementApi.searchCases", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Search cases. + * + *

See {@link #searchCasesWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<CasesResponse>> + */ + public CompletableFuture> searchCasesWithHttpInfoAsync( + SearchCasesOptionalParameters parameters) { + Object localVarPostBody = null; + Long pageSize = parameters.pageSize; + Long pageNumber = parameters.pageNumber; + CaseSortableField sortField = parameters.sortField; + String filter = parameters.filter; + Boolean sortAsc = parameters.sortAsc; + // create path and map variables + String localVarPath = "/api/v2/cases"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[size]", pageSize)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[number]", pageNumber)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "sort[field]", sortField)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter", filter)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "sort[asc]", sortAsc)); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CaseManagementApi.searchCases", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Unarchive case. + * + *

See {@link #unarchiveCaseWithHttpInfo}. + * + * @param caseId Case's UUID or key (required) + * @param body Unarchive case payload (required) + * @return CaseResponse + * @throws ApiException if fails to make API call + */ + public CaseResponse unarchiveCase(String caseId, CaseEmptyRequest body) throws ApiException { + return unarchiveCaseWithHttpInfo(caseId, body).getData(); + } + + /** + * Unarchive case. + * + *

See {@link #unarchiveCaseWithHttpInfoAsync}. + * + * @param caseId Case's UUID or key (required) + * @param body Unarchive case payload (required) + * @return CompletableFuture<CaseResponse> + */ + public CompletableFuture unarchiveCaseAsync(String caseId, CaseEmptyRequest body) { + return unarchiveCaseWithHttpInfoAsync(caseId, body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Unarchive case + * + * @param caseId Case's UUID or key (required) + * @param body Unarchive case payload (required) + * @return ApiResponse<CaseResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse unarchiveCaseWithHttpInfo(String caseId, CaseEmptyRequest body) + throws ApiException { + Object localVarPostBody = body; + + // verify the required parameter 'caseId' is set + if (caseId == null) { + throw new ApiException( + 400, "Missing the required parameter 'caseId' when calling unarchiveCase"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling unarchiveCase"); + } + // create path and map variables + String localVarPath = + "/api/v2/cases/{case_id}/unarchive" + .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CaseManagementApi.unarchiveCase", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Unarchive case. + * + *

See {@link #unarchiveCaseWithHttpInfo}. + * + * @param caseId Case's UUID or key (required) + * @param body Unarchive case payload (required) + * @return CompletableFuture<ApiResponse<CaseResponse>> + */ + public CompletableFuture> unarchiveCaseWithHttpInfoAsync( + String caseId, CaseEmptyRequest body) { + Object localVarPostBody = body; + + // verify the required parameter 'caseId' is set + if (caseId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'caseId' when calling unarchiveCase")); + return result; + } + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'body' when calling unarchiveCase")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/cases/{case_id}/unarchive" + .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CaseManagementApi.unarchiveCase", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Unassign case. + * + *

See {@link #unassignCaseWithHttpInfo}. + * + * @param caseId Case's UUID or key (required) + * @param body Unassign case payload (required) + * @return CaseResponse + * @throws ApiException if fails to make API call + */ + public CaseResponse unassignCase(String caseId, CaseEmptyRequest body) throws ApiException { + return unassignCaseWithHttpInfo(caseId, body).getData(); + } + + /** + * Unassign case. + * + *

See {@link #unassignCaseWithHttpInfoAsync}. + * + * @param caseId Case's UUID or key (required) + * @param body Unassign case payload (required) + * @return CompletableFuture<CaseResponse> + */ + public CompletableFuture unassignCaseAsync(String caseId, CaseEmptyRequest body) { + return unassignCaseWithHttpInfoAsync(caseId, body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Unassign case + * + * @param caseId Case's UUID or key (required) + * @param body Unassign case payload (required) + * @return ApiResponse<CaseResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse unassignCaseWithHttpInfo(String caseId, CaseEmptyRequest body) + throws ApiException { + Object localVarPostBody = body; + + // verify the required parameter 'caseId' is set + if (caseId == null) { + throw new ApiException( + 400, "Missing the required parameter 'caseId' when calling unassignCase"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling unassignCase"); + } + // create path and map variables + String localVarPath = + "/api/v2/cases/{case_id}/unassign" + .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CaseManagementApi.unassignCase", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Unassign case. + * + *

See {@link #unassignCaseWithHttpInfo}. + * + * @param caseId Case's UUID or key (required) + * @param body Unassign case payload (required) + * @return CompletableFuture<ApiResponse<CaseResponse>> + */ + public CompletableFuture> unassignCaseWithHttpInfoAsync( + String caseId, CaseEmptyRequest body) { + Object localVarPostBody = body; + + // verify the required parameter 'caseId' is set + if (caseId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'caseId' when calling unassignCase")); + return result; + } + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(400, "Missing the required parameter 'body' when calling unassignCase")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/cases/{case_id}/unassign" + .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CaseManagementApi.unassignCase", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Update case attributes. + * + *

See {@link #updateAttributesWithHttpInfo}. + * + * @param caseId Case's UUID or key (required) + * @param body Case attributes update payload (required) + * @return CaseResponse + * @throws ApiException if fails to make API call + */ + public CaseResponse updateAttributes(String caseId, CaseUpdateAttributesRequest body) + throws ApiException { + return updateAttributesWithHttpInfo(caseId, body).getData(); } /** - * Search cases. + * Update case attributes. * - *

See {@link #searchCasesWithHttpInfo}. + *

See {@link #updateAttributesWithHttpInfoAsync}. * - * @return CasesResponse + * @param caseId Case's UUID or key (required) + * @param body Case attributes update payload (required) + * @return CompletableFuture<CaseResponse> */ - public PaginationIterable searchCasesWithPagination( - SearchCasesOptionalParameters parameters) { - String resultsPath = "getData"; - String valueGetterPath = ""; - String valueSetterPath = "pageNumber"; - Boolean valueSetterParamOptional = true; - parameters.pageNumber(0l); - Long limit; - - if (parameters.pageSize == null) { - limit = 10l; - parameters.pageSize(limit); - } else { - limit = parameters.pageSize; - } - - LinkedHashMap args = new LinkedHashMap(); - args.put("optionalParams", parameters); - - PaginationIterable iterator = - new PaginationIterable( - this, - "searchCases", - resultsPath, - valueGetterPath, - valueSetterPath, - valueSetterParamOptional, - false, - limit, - args); - - return iterator; + public CompletableFuture updateAttributesAsync( + String caseId, CaseUpdateAttributesRequest body) { + return updateAttributesWithHttpInfoAsync(caseId, body) + .thenApply( + response -> { + return response.getData(); + }); } /** - * Search cases. + * Update case attributes * - * @param parameters Optional parameters for the request. - * @return ApiResponse<CasesResponse> + * @param caseId Case's UUID or key (required) + * @param body Case attributes update payload (required) + * @return ApiResponse<CaseResponse> * @throws ApiException if fails to make API call * @http.response.details * @@ -1335,126 +2278,142 @@ public PaginationIterable searchCasesWithPagination( * *
429 Too many requests -
*/ - public ApiResponse searchCasesWithHttpInfo( - SearchCasesOptionalParameters parameters) throws ApiException { - Object localVarPostBody = null; - Long pageSize = parameters.pageSize; - Long pageNumber = parameters.pageNumber; - CaseSortableField sortField = parameters.sortField; - String filter = parameters.filter; - Boolean sortAsc = parameters.sortAsc; + public ApiResponse updateAttributesWithHttpInfo( + String caseId, CaseUpdateAttributesRequest body) throws ApiException { + Object localVarPostBody = body; + + // verify the required parameter 'caseId' is set + if (caseId == null) { + throw new ApiException( + 400, "Missing the required parameter 'caseId' when calling updateAttributes"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling updateAttributes"); + } // create path and map variables - String localVarPath = "/api/v2/cases"; + String localVarPath = + "/api/v2/cases/{case_id}/attributes" + .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())); - List localVarQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[size]", pageSize)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[number]", pageNumber)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "sort[field]", sortField)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter", filter)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "sort[asc]", sortAsc)); - Invocation.Builder builder = apiClient.createBuilder( - "v2.CaseManagementApi.searchCases", + "v2.CaseManagementApi.updateAttributes", localVarPath, - localVarQueryParams, + new ArrayList(), localVarHeaderParams, new HashMap(), new String[] {"application/json"}, new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); return apiClient.invokeAPI( - "GET", + "POST", builder, localVarHeaderParams, - new String[] {}, + new String[] {"application/json"}, localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } /** - * Search cases. + * Update case attributes. * - *

See {@link #searchCasesWithHttpInfo}. + *

See {@link #updateAttributesWithHttpInfo}. * - * @param parameters Optional parameters for the request. - * @return CompletableFuture<ApiResponse<CasesResponse>> + * @param caseId Case's UUID or key (required) + * @param body Case attributes update payload (required) + * @return CompletableFuture<ApiResponse<CaseResponse>> */ - public CompletableFuture> searchCasesWithHttpInfoAsync( - SearchCasesOptionalParameters parameters) { - Object localVarPostBody = null; - Long pageSize = parameters.pageSize; - Long pageNumber = parameters.pageNumber; - CaseSortableField sortField = parameters.sortField; - String filter = parameters.filter; - Boolean sortAsc = parameters.sortAsc; + public CompletableFuture> updateAttributesWithHttpInfoAsync( + String caseId, CaseUpdateAttributesRequest body) { + Object localVarPostBody = body; + + // verify the required parameter 'caseId' is set + if (caseId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'caseId' when calling updateAttributes")); + return result; + } + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'body' when calling updateAttributes")); + return result; + } // create path and map variables - String localVarPath = "/api/v2/cases"; + String localVarPath = + "/api/v2/cases/{case_id}/attributes" + .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())); - List localVarQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[size]", pageSize)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[number]", pageNumber)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "sort[field]", sortField)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter", filter)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "sort[asc]", sortAsc)); - Invocation.Builder builder; try { builder = apiClient.createBuilder( - "v2.CaseManagementApi.searchCases", + "v2.CaseManagementApi.updateAttributes", localVarPath, - localVarQueryParams, + new ArrayList(), localVarHeaderParams, new HashMap(), new String[] {"application/json"}, new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); } catch (ApiException ex) { - CompletableFuture> result = new CompletableFuture<>(); + CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally(ex); return result; } return apiClient.invokeAPIAsync( - "GET", + "POST", builder, localVarHeaderParams, - new String[] {}, + new String[] {"application/json"}, localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } /** - * Unarchive case. + * Update case custom attribute. * - *

See {@link #unarchiveCaseWithHttpInfo}. + *

See {@link #updateCaseCustomAttributeWithHttpInfo}. * * @param caseId Case's UUID or key (required) - * @param body Unarchive case payload (required) + * @param customAttributeKey Case Custom attribute's key (required) + * @param body Update case custom attribute payload (required) * @return CaseResponse * @throws ApiException if fails to make API call */ - public CaseResponse unarchiveCase(String caseId, CaseEmptyRequest body) throws ApiException { - return unarchiveCaseWithHttpInfo(caseId, body).getData(); + public CaseResponse updateCaseCustomAttribute( + String caseId, String customAttributeKey, CaseUpdateCustomAttributeRequest body) + throws ApiException { + return updateCaseCustomAttributeWithHttpInfo(caseId, customAttributeKey, body).getData(); } /** - * Unarchive case. + * Update case custom attribute. * - *

See {@link #unarchiveCaseWithHttpInfoAsync}. + *

See {@link #updateCaseCustomAttributeWithHttpInfoAsync}. * * @param caseId Case's UUID or key (required) - * @param body Unarchive case payload (required) + * @param customAttributeKey Case Custom attribute's key (required) + * @param body Update case custom attribute payload (required) * @return CompletableFuture<CaseResponse> */ - public CompletableFuture unarchiveCaseAsync(String caseId, CaseEmptyRequest body) { - return unarchiveCaseWithHttpInfoAsync(caseId, body) + public CompletableFuture updateCaseCustomAttributeAsync( + String caseId, String customAttributeKey, CaseUpdateCustomAttributeRequest body) { + return updateCaseCustomAttributeWithHttpInfoAsync(caseId, customAttributeKey, body) .thenApply( response -> { return response.getData(); @@ -1462,10 +2421,11 @@ public CompletableFuture unarchiveCaseAsync(String caseId, CaseEmp } /** - * Unarchive case + * Update case custom attribute * * @param caseId Case's UUID or key (required) - * @param body Unarchive case payload (required) + * @param customAttributeKey Case Custom attribute's key (required) + * @param body Update case custom attribute payload (required) * @return ApiResponse<CaseResponse> * @throws ApiException if fails to make API call * @http.response.details @@ -1480,31 +2440,43 @@ public CompletableFuture unarchiveCaseAsync(String caseId, CaseEmp * 429 Too many requests - * */ - public ApiResponse unarchiveCaseWithHttpInfo(String caseId, CaseEmptyRequest body) + public ApiResponse updateCaseCustomAttributeWithHttpInfo( + String caseId, String customAttributeKey, CaseUpdateCustomAttributeRequest body) throws ApiException { Object localVarPostBody = body; // verify the required parameter 'caseId' is set if (caseId == null) { throw new ApiException( - 400, "Missing the required parameter 'caseId' when calling unarchiveCase"); + 400, "Missing the required parameter 'caseId' when calling updateCaseCustomAttribute"); + } + + // verify the required parameter 'customAttributeKey' is set + if (customAttributeKey == null) { + throw new ApiException( + 400, + "Missing the required parameter 'customAttributeKey' when calling" + + " updateCaseCustomAttribute"); } // verify the required parameter 'body' is set if (body == null) { throw new ApiException( - 400, "Missing the required parameter 'body' when calling unarchiveCase"); + 400, "Missing the required parameter 'body' when calling updateCaseCustomAttribute"); } // create path and map variables String localVarPath = - "/api/v2/cases/{case_id}/unarchive" - .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())); + "/api/v2/cases/{case_id}/custom_attributes/{custom_attribute_key}" + .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())) + .replaceAll( + "\\{" + "custom_attribute_key" + "\\}", + apiClient.escapeString(customAttributeKey.toString())); Map localVarHeaderParams = new HashMap(); Invocation.Builder builder = apiClient.createBuilder( - "v2.CaseManagementApi.unarchiveCase", + "v2.CaseManagementApi.updateCaseCustomAttribute", localVarPath, new ArrayList(), localVarHeaderParams, @@ -1523,16 +2495,17 @@ public ApiResponse unarchiveCaseWithHttpInfo(String caseId, CaseEm } /** - * Unarchive case. + * Update case custom attribute. * - *

See {@link #unarchiveCaseWithHttpInfo}. + *

See {@link #updateCaseCustomAttributeWithHttpInfo}. * * @param caseId Case's UUID or key (required) - * @param body Unarchive case payload (required) + * @param customAttributeKey Case Custom attribute's key (required) + * @param body Update case custom attribute payload (required) * @return CompletableFuture<ApiResponse<CaseResponse>> */ - public CompletableFuture> unarchiveCaseWithHttpInfoAsync( - String caseId, CaseEmptyRequest body) { + public CompletableFuture> updateCaseCustomAttributeWithHttpInfoAsync( + String caseId, String customAttributeKey, CaseUpdateCustomAttributeRequest body) { Object localVarPostBody = body; // verify the required parameter 'caseId' is set @@ -1540,7 +2513,19 @@ public CompletableFuture> unarchiveCaseWithHttpInfoAsy CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally( new ApiException( - 400, "Missing the required parameter 'caseId' when calling unarchiveCase")); + 400, + "Missing the required parameter 'caseId' when calling updateCaseCustomAttribute")); + return result; + } + + // verify the required parameter 'customAttributeKey' is set + if (customAttributeKey == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'customAttributeKey' when calling" + + " updateCaseCustomAttribute")); return result; } @@ -1549,13 +2534,16 @@ public CompletableFuture> unarchiveCaseWithHttpInfoAsy CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally( new ApiException( - 400, "Missing the required parameter 'body' when calling unarchiveCase")); + 400, "Missing the required parameter 'body' when calling updateCaseCustomAttribute")); return result; } // create path and map variables String localVarPath = - "/api/v2/cases/{case_id}/unarchive" - .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())); + "/api/v2/cases/{case_id}/custom_attributes/{custom_attribute_key}" + .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())) + .replaceAll( + "\\{" + "custom_attribute_key" + "\\}", + apiClient.escapeString(customAttributeKey.toString())); Map localVarHeaderParams = new HashMap(); @@ -1563,7 +2551,7 @@ public CompletableFuture> unarchiveCaseWithHttpInfoAsy try { builder = apiClient.createBuilder( - "v2.CaseManagementApi.unarchiveCase", + "v2.CaseManagementApi.updateCaseCustomAttribute", localVarPath, new ArrayList(), localVarHeaderParams, @@ -1587,30 +2575,32 @@ public CompletableFuture> unarchiveCaseWithHttpInfoAsy } /** - * Unassign case. + * Update case description. * - *

See {@link #unassignCaseWithHttpInfo}. + *

See {@link #updateCaseDescriptionWithHttpInfo}. * * @param caseId Case's UUID or key (required) - * @param body Unassign case payload (required) + * @param body Case description update payload (required) * @return CaseResponse * @throws ApiException if fails to make API call */ - public CaseResponse unassignCase(String caseId, CaseEmptyRequest body) throws ApiException { - return unassignCaseWithHttpInfo(caseId, body).getData(); + public CaseResponse updateCaseDescription(String caseId, CaseUpdateDescriptionRequest body) + throws ApiException { + return updateCaseDescriptionWithHttpInfo(caseId, body).getData(); } /** - * Unassign case. + * Update case description. * - *

See {@link #unassignCaseWithHttpInfoAsync}. + *

See {@link #updateCaseDescriptionWithHttpInfoAsync}. * * @param caseId Case's UUID or key (required) - * @param body Unassign case payload (required) + * @param body Case description update payload (required) * @return CompletableFuture<CaseResponse> */ - public CompletableFuture unassignCaseAsync(String caseId, CaseEmptyRequest body) { - return unassignCaseWithHttpInfoAsync(caseId, body) + public CompletableFuture updateCaseDescriptionAsync( + String caseId, CaseUpdateDescriptionRequest body) { + return updateCaseDescriptionWithHttpInfoAsync(caseId, body) .thenApply( response -> { return response.getData(); @@ -1618,10 +2608,10 @@ public CompletableFuture unassignCaseAsync(String caseId, CaseEmpt } /** - * Unassign case + * Update case description * * @param caseId Case's UUID or key (required) - * @param body Unassign case payload (required) + * @param body Case description update payload (required) * @return ApiResponse<CaseResponse> * @throws ApiException if fails to make API call * @http.response.details @@ -1636,31 +2626,31 @@ public CompletableFuture unassignCaseAsync(String caseId, CaseEmpt * 429 Too many requests - * */ - public ApiResponse unassignCaseWithHttpInfo(String caseId, CaseEmptyRequest body) - throws ApiException { + public ApiResponse updateCaseDescriptionWithHttpInfo( + String caseId, CaseUpdateDescriptionRequest body) throws ApiException { Object localVarPostBody = body; // verify the required parameter 'caseId' is set if (caseId == null) { throw new ApiException( - 400, "Missing the required parameter 'caseId' when calling unassignCase"); + 400, "Missing the required parameter 'caseId' when calling updateCaseDescription"); } // verify the required parameter 'body' is set if (body == null) { throw new ApiException( - 400, "Missing the required parameter 'body' when calling unassignCase"); + 400, "Missing the required parameter 'body' when calling updateCaseDescription"); } // create path and map variables String localVarPath = - "/api/v2/cases/{case_id}/unassign" + "/api/v2/cases/{case_id}/description" .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())); Map localVarHeaderParams = new HashMap(); Invocation.Builder builder = apiClient.createBuilder( - "v2.CaseManagementApi.unassignCase", + "v2.CaseManagementApi.updateCaseDescription", localVarPath, new ArrayList(), localVarHeaderParams, @@ -1679,16 +2669,16 @@ public ApiResponse unassignCaseWithHttpInfo(String caseId, CaseEmp } /** - * Unassign case. + * Update case description. * - *

See {@link #unassignCaseWithHttpInfo}. + *

See {@link #updateCaseDescriptionWithHttpInfo}. * * @param caseId Case's UUID or key (required) - * @param body Unassign case payload (required) + * @param body Case description update payload (required) * @return CompletableFuture<ApiResponse<CaseResponse>> */ - public CompletableFuture> unassignCaseWithHttpInfoAsync( - String caseId, CaseEmptyRequest body) { + public CompletableFuture> updateCaseDescriptionWithHttpInfoAsync( + String caseId, CaseUpdateDescriptionRequest body) { Object localVarPostBody = body; // verify the required parameter 'caseId' is set @@ -1696,7 +2686,7 @@ public CompletableFuture> unassignCaseWithHttpInfoAsyn CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally( new ApiException( - 400, "Missing the required parameter 'caseId' when calling unassignCase")); + 400, "Missing the required parameter 'caseId' when calling updateCaseDescription")); return result; } @@ -1704,12 +2694,13 @@ public CompletableFuture> unassignCaseWithHttpInfoAsyn if (body == null) { CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally( - new ApiException(400, "Missing the required parameter 'body' when calling unassignCase")); + new ApiException( + 400, "Missing the required parameter 'body' when calling updateCaseDescription")); return result; } // create path and map variables String localVarPath = - "/api/v2/cases/{case_id}/unassign" + "/api/v2/cases/{case_id}/description" .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())); Map localVarHeaderParams = new HashMap(); @@ -1718,7 +2709,7 @@ public CompletableFuture> unassignCaseWithHttpInfoAsyn try { builder = apiClient.createBuilder( - "v2.CaseManagementApi.unassignCase", + "v2.CaseManagementApi.updateCaseDescription", localVarPath, new ArrayList(), localVarHeaderParams, @@ -1742,32 +2733,32 @@ public CompletableFuture> unassignCaseWithHttpInfoAsyn } /** - * Update case attributes. + * Update case title. * - *

See {@link #updateAttributesWithHttpInfo}. + *

See {@link #updateCaseTitleWithHttpInfo}. * * @param caseId Case's UUID or key (required) - * @param body Case attributes update payload (required) + * @param body Case title update payload (required) * @return CaseResponse * @throws ApiException if fails to make API call */ - public CaseResponse updateAttributes(String caseId, CaseUpdateAttributesRequest body) + public CaseResponse updateCaseTitle(String caseId, CaseUpdateTitleRequest body) throws ApiException { - return updateAttributesWithHttpInfo(caseId, body).getData(); + return updateCaseTitleWithHttpInfo(caseId, body).getData(); } /** - * Update case attributes. + * Update case title. * - *

See {@link #updateAttributesWithHttpInfoAsync}. + *

See {@link #updateCaseTitleWithHttpInfoAsync}. * * @param caseId Case's UUID or key (required) - * @param body Case attributes update payload (required) + * @param body Case title update payload (required) * @return CompletableFuture<CaseResponse> */ - public CompletableFuture updateAttributesAsync( - String caseId, CaseUpdateAttributesRequest body) { - return updateAttributesWithHttpInfoAsync(caseId, body) + public CompletableFuture updateCaseTitleAsync( + String caseId, CaseUpdateTitleRequest body) { + return updateCaseTitleWithHttpInfoAsync(caseId, body) .thenApply( response -> { return response.getData(); @@ -1775,10 +2766,10 @@ public CompletableFuture updateAttributesAsync( } /** - * Update case attributes + * Update case title * * @param caseId Case's UUID or key (required) - * @param body Case attributes update payload (required) + * @param body Case title update payload (required) * @return ApiResponse<CaseResponse> * @throws ApiException if fails to make API call * @http.response.details @@ -1793,31 +2784,31 @@ public CompletableFuture updateAttributesAsync( * 429 Too many requests - * */ - public ApiResponse updateAttributesWithHttpInfo( - String caseId, CaseUpdateAttributesRequest body) throws ApiException { + public ApiResponse updateCaseTitleWithHttpInfo( + String caseId, CaseUpdateTitleRequest body) throws ApiException { Object localVarPostBody = body; // verify the required parameter 'caseId' is set if (caseId == null) { throw new ApiException( - 400, "Missing the required parameter 'caseId' when calling updateAttributes"); + 400, "Missing the required parameter 'caseId' when calling updateCaseTitle"); } // verify the required parameter 'body' is set if (body == null) { throw new ApiException( - 400, "Missing the required parameter 'body' when calling updateAttributes"); + 400, "Missing the required parameter 'body' when calling updateCaseTitle"); } // create path and map variables String localVarPath = - "/api/v2/cases/{case_id}/attributes" + "/api/v2/cases/{case_id}/title" .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())); Map localVarHeaderParams = new HashMap(); Invocation.Builder builder = apiClient.createBuilder( - "v2.CaseManagementApi.updateAttributes", + "v2.CaseManagementApi.updateCaseTitle", localVarPath, new ArrayList(), localVarHeaderParams, @@ -1836,16 +2827,16 @@ public ApiResponse updateAttributesWithHttpInfo( } /** - * Update case attributes. + * Update case title. * - *

See {@link #updateAttributesWithHttpInfo}. + *

See {@link #updateCaseTitleWithHttpInfo}. * * @param caseId Case's UUID or key (required) - * @param body Case attributes update payload (required) + * @param body Case title update payload (required) * @return CompletableFuture<ApiResponse<CaseResponse>> */ - public CompletableFuture> updateAttributesWithHttpInfoAsync( - String caseId, CaseUpdateAttributesRequest body) { + public CompletableFuture> updateCaseTitleWithHttpInfoAsync( + String caseId, CaseUpdateTitleRequest body) { Object localVarPostBody = body; // verify the required parameter 'caseId' is set @@ -1853,7 +2844,7 @@ public CompletableFuture> updateAttributesWithHttpInfo CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally( new ApiException( - 400, "Missing the required parameter 'caseId' when calling updateAttributes")); + 400, "Missing the required parameter 'caseId' when calling updateCaseTitle")); return result; } @@ -1862,12 +2853,12 @@ public CompletableFuture> updateAttributesWithHttpInfo CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally( new ApiException( - 400, "Missing the required parameter 'body' when calling updateAttributes")); + 400, "Missing the required parameter 'body' when calling updateCaseTitle")); return result; } // create path and map variables String localVarPath = - "/api/v2/cases/{case_id}/attributes" + "/api/v2/cases/{case_id}/title" .replaceAll("\\{" + "case_id" + "\\}", apiClient.escapeString(caseId.toString())); Map localVarHeaderParams = new HashMap(); @@ -1876,7 +2867,7 @@ public CompletableFuture> updateAttributesWithHttpInfo try { builder = apiClient.createBuilder( - "v2.CaseManagementApi.updateAttributes", + "v2.CaseManagementApi.updateCaseTitle", localVarPath, new ArrayList(), localVarHeaderParams, diff --git a/src/main/java/com/datadog/api/client/v2/api/CaseManagementAttributeApi.java b/src/main/java/com/datadog/api/client/v2/api/CaseManagementAttributeApi.java new file mode 100644 index 00000000000..dc59a1a237b --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/api/CaseManagementAttributeApi.java @@ -0,0 +1,645 @@ +package com.datadog.api.client.v2.api; + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.ApiResponse; +import com.datadog.api.client.Pair; +import com.datadog.api.client.v2.model.CustomAttributeConfigCreateRequest; +import com.datadog.api.client.v2.model.CustomAttributeConfigResponse; +import com.datadog.api.client.v2.model.CustomAttributeConfigsResponse; +import jakarta.ws.rs.client.Invocation; +import jakarta.ws.rs.core.GenericType; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CaseManagementAttributeApi { + private ApiClient apiClient; + + public CaseManagementAttributeApi() { + this(ApiClient.getDefaultApiClient()); + } + + public CaseManagementAttributeApi(ApiClient apiClient) { + this.apiClient = apiClient; + } + + /** + * Get the API client. + * + * @return API client + */ + public ApiClient getApiClient() { + return apiClient; + } + + /** + * Set the API client. + * + * @param apiClient an instance of API client + */ + public void setApiClient(ApiClient apiClient) { + this.apiClient = apiClient; + } + + /** + * Create custom attribute config for a case type. + * + *

See {@link #createCustomAttributeConfigWithHttpInfo}. + * + * @param caseTypeId Case type's UUID (required) + * @param body Custom attribute config payload (required) + * @return CustomAttributeConfigResponse + * @throws ApiException if fails to make API call + */ + public CustomAttributeConfigResponse createCustomAttributeConfig( + String caseTypeId, CustomAttributeConfigCreateRequest body) throws ApiException { + return createCustomAttributeConfigWithHttpInfo(caseTypeId, body).getData(); + } + + /** + * Create custom attribute config for a case type. + * + *

See {@link #createCustomAttributeConfigWithHttpInfoAsync}. + * + * @param caseTypeId Case type's UUID (required) + * @param body Custom attribute config payload (required) + * @return CompletableFuture<CustomAttributeConfigResponse> + */ + public CompletableFuture createCustomAttributeConfigAsync( + String caseTypeId, CustomAttributeConfigCreateRequest body) { + return createCustomAttributeConfigWithHttpInfoAsync(caseTypeId, body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Create custom attribute config for a case type + * + * @param caseTypeId Case type's UUID (required) + * @param body Custom attribute config payload (required) + * @return ApiResponse<CustomAttributeConfigResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
201 CREATED -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse createCustomAttributeConfigWithHttpInfo( + String caseTypeId, CustomAttributeConfigCreateRequest body) throws ApiException { + Object localVarPostBody = body; + + // verify the required parameter 'caseTypeId' is set + if (caseTypeId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'caseTypeId' when calling createCustomAttributeConfig"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling createCustomAttributeConfig"); + } + // create path and map variables + String localVarPath = + "/api/v2/cases/types/{case_type_id}/custom_attributes" + .replaceAll( + "\\{" + "case_type_id" + "\\}", apiClient.escapeString(caseTypeId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CaseManagementAttributeApi.createCustomAttributeConfig", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Create custom attribute config for a case type. + * + *

See {@link #createCustomAttributeConfigWithHttpInfo}. + * + * @param caseTypeId Case type's UUID (required) + * @param body Custom attribute config payload (required) + * @return CompletableFuture<ApiResponse<CustomAttributeConfigResponse>> + */ + public CompletableFuture> + createCustomAttributeConfigWithHttpInfoAsync( + String caseTypeId, CustomAttributeConfigCreateRequest body) { + Object localVarPostBody = body; + + // verify the required parameter 'caseTypeId' is set + if (caseTypeId == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'caseTypeId' when calling" + + " createCustomAttributeConfig")); + return result; + } + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'body' when calling createCustomAttributeConfig")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/cases/types/{case_type_id}/custom_attributes" + .replaceAll( + "\\{" + "case_type_id" + "\\}", apiClient.escapeString(caseTypeId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CaseManagementAttributeApi.createCustomAttributeConfig", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Delete custom attributes config. + * + *

See {@link #deleteCustomAttributeConfigWithHttpInfo}. + * + * @param caseTypeId Case type's UUID (required) + * @param customAttributeId Case Custom attribute's UUID (required) + * @throws ApiException if fails to make API call + */ + public void deleteCustomAttributeConfig(String caseTypeId, String customAttributeId) + throws ApiException { + deleteCustomAttributeConfigWithHttpInfo(caseTypeId, customAttributeId); + } + + /** + * Delete custom attributes config. + * + *

See {@link #deleteCustomAttributeConfigWithHttpInfoAsync}. + * + * @param caseTypeId Case type's UUID (required) + * @param customAttributeId Case Custom attribute's UUID (required) + * @return CompletableFuture + */ + public CompletableFuture deleteCustomAttributeConfigAsync( + String caseTypeId, String customAttributeId) { + return deleteCustomAttributeConfigWithHttpInfoAsync(caseTypeId, customAttributeId) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Delete custom attribute config + * + * @param caseTypeId Case type's UUID (required) + * @param customAttributeId Case Custom attribute's UUID (required) + * @return ApiResponse<Void> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
204 No Content -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
429 Too many requests -
+ */ + public ApiResponse deleteCustomAttributeConfigWithHttpInfo( + String caseTypeId, String customAttributeId) throws ApiException { + Object localVarPostBody = null; + + // verify the required parameter 'caseTypeId' is set + if (caseTypeId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'caseTypeId' when calling deleteCustomAttributeConfig"); + } + + // verify the required parameter 'customAttributeId' is set + if (customAttributeId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'customAttributeId' when calling" + + " deleteCustomAttributeConfig"); + } + // create path and map variables + String localVarPath = + "/api/v2/cases/types/{case_type_id}/custom_attributes/{custom_attribute_id}" + .replaceAll( + "\\{" + "case_type_id" + "\\}", apiClient.escapeString(caseTypeId.toString())) + .replaceAll( + "\\{" + "custom_attribute_id" + "\\}", + apiClient.escapeString(customAttributeId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CaseManagementAttributeApi.deleteCustomAttributeConfig", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "DELETE", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Delete custom attributes config. + * + *

See {@link #deleteCustomAttributeConfigWithHttpInfo}. + * + * @param caseTypeId Case type's UUID (required) + * @param customAttributeId Case Custom attribute's UUID (required) + * @return CompletableFuture<ApiResponse<Void>> + */ + public CompletableFuture> deleteCustomAttributeConfigWithHttpInfoAsync( + String caseTypeId, String customAttributeId) { + Object localVarPostBody = null; + + // verify the required parameter 'caseTypeId' is set + if (caseTypeId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'caseTypeId' when calling" + + " deleteCustomAttributeConfig")); + return result; + } + + // verify the required parameter 'customAttributeId' is set + if (customAttributeId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'customAttributeId' when calling" + + " deleteCustomAttributeConfig")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/cases/types/{case_type_id}/custom_attributes/{custom_attribute_id}" + .replaceAll( + "\\{" + "case_type_id" + "\\}", apiClient.escapeString(caseTypeId.toString())) + .replaceAll( + "\\{" + "custom_attribute_id" + "\\}", + apiClient.escapeString(customAttributeId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CaseManagementAttributeApi.deleteCustomAttributeConfig", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "DELETE", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Get all custom attributes config of case type. + * + *

See {@link #getAllCustomAttributeConfigsByCaseTypeWithHttpInfo}. + * + * @param caseTypeId Case type's UUID (required) + * @return CustomAttributeConfigsResponse + * @throws ApiException if fails to make API call + */ + public CustomAttributeConfigsResponse getAllCustomAttributeConfigsByCaseType(String caseTypeId) + throws ApiException { + return getAllCustomAttributeConfigsByCaseTypeWithHttpInfo(caseTypeId).getData(); + } + + /** + * Get all custom attributes config of case type. + * + *

See {@link #getAllCustomAttributeConfigsByCaseTypeWithHttpInfoAsync}. + * + * @param caseTypeId Case type's UUID (required) + * @return CompletableFuture<CustomAttributeConfigsResponse> + */ + public CompletableFuture + getAllCustomAttributeConfigsByCaseTypeAsync(String caseTypeId) { + return getAllCustomAttributeConfigsByCaseTypeWithHttpInfoAsync(caseTypeId) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get all custom attribute config of case type + * + * @param caseTypeId Case type's UUID (required) + * @return ApiResponse<CustomAttributeConfigsResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
429 Too many requests -
+ */ + public ApiResponse + getAllCustomAttributeConfigsByCaseTypeWithHttpInfo(String caseTypeId) throws ApiException { + Object localVarPostBody = null; + + // verify the required parameter 'caseTypeId' is set + if (caseTypeId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'caseTypeId' when calling" + + " getAllCustomAttributeConfigsByCaseType"); + } + // create path and map variables + String localVarPath = + "/api/v2/cases/types/{case_type_id}/custom_attributes" + .replaceAll( + "\\{" + "case_type_id" + "\\}", apiClient.escapeString(caseTypeId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CaseManagementAttributeApi.getAllCustomAttributeConfigsByCaseType", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get all custom attributes config of case type. + * + *

See {@link #getAllCustomAttributeConfigsByCaseTypeWithHttpInfo}. + * + * @param caseTypeId Case type's UUID (required) + * @return CompletableFuture<ApiResponse<CustomAttributeConfigsResponse>> + */ + public CompletableFuture> + getAllCustomAttributeConfigsByCaseTypeWithHttpInfoAsync(String caseTypeId) { + Object localVarPostBody = null; + + // verify the required parameter 'caseTypeId' is set + if (caseTypeId == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'caseTypeId' when calling" + + " getAllCustomAttributeConfigsByCaseType")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/cases/types/{case_type_id}/custom_attributes" + .replaceAll( + "\\{" + "case_type_id" + "\\}", apiClient.escapeString(caseTypeId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CaseManagementAttributeApi.getAllCustomAttributeConfigsByCaseType", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get all custom attributes. + * + *

See {@link #getAllCustomAttributesWithHttpInfo}. + * + * @return CustomAttributeConfigsResponse + * @throws ApiException if fails to make API call + */ + public CustomAttributeConfigsResponse getAllCustomAttributes() throws ApiException { + return getAllCustomAttributesWithHttpInfo().getData(); + } + + /** + * Get all custom attributes. + * + *

See {@link #getAllCustomAttributesWithHttpInfoAsync}. + * + * @return CompletableFuture<CustomAttributeConfigsResponse> + */ + public CompletableFuture getAllCustomAttributesAsync() { + return getAllCustomAttributesWithHttpInfoAsync() + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get all custom attributes + * + * @return ApiResponse<CustomAttributeConfigsResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
401 Unauthorized -
403 Forbidden -
429 Too many requests -
+ */ + public ApiResponse getAllCustomAttributesWithHttpInfo() + throws ApiException { + Object localVarPostBody = null; + // create path and map variables + String localVarPath = "/api/v2/cases/types/custom_attributes"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CaseManagementAttributeApi.getAllCustomAttributes", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get all custom attributes. + * + *

See {@link #getAllCustomAttributesWithHttpInfo}. + * + * @return CompletableFuture<ApiResponse<CustomAttributeConfigsResponse>> + */ + public CompletableFuture> + getAllCustomAttributesWithHttpInfoAsync() { + Object localVarPostBody = null; + // create path and map variables + String localVarPath = "/api/v2/cases/types/custom_attributes"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CaseManagementAttributeApi.getAllCustomAttributes", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/api/CaseManagementTypeApi.java b/src/main/java/com/datadog/api/client/v2/api/CaseManagementTypeApi.java new file mode 100644 index 00000000000..ac7825306c7 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/api/CaseManagementTypeApi.java @@ -0,0 +1,423 @@ +package com.datadog.api.client.v2.api; + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.ApiResponse; +import com.datadog.api.client.Pair; +import com.datadog.api.client.v2.model.CaseTypeCreateRequest; +import com.datadog.api.client.v2.model.CaseTypeResponse; +import com.datadog.api.client.v2.model.CaseTypesResponse; +import jakarta.ws.rs.client.Invocation; +import jakarta.ws.rs.core.GenericType; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CaseManagementTypeApi { + private ApiClient apiClient; + + public CaseManagementTypeApi() { + this(ApiClient.getDefaultApiClient()); + } + + public CaseManagementTypeApi(ApiClient apiClient) { + this.apiClient = apiClient; + } + + /** + * Get the API client. + * + * @return API client + */ + public ApiClient getApiClient() { + return apiClient; + } + + /** + * Set the API client. + * + * @param apiClient an instance of API client + */ + public void setApiClient(ApiClient apiClient) { + this.apiClient = apiClient; + } + + /** + * Create a case type. + * + *

See {@link #createCaseTypeWithHttpInfo}. + * + * @param body Case type payload (required) + * @return CaseTypeResponse + * @throws ApiException if fails to make API call + */ + public CaseTypeResponse createCaseType(CaseTypeCreateRequest body) throws ApiException { + return createCaseTypeWithHttpInfo(body).getData(); + } + + /** + * Create a case type. + * + *

See {@link #createCaseTypeWithHttpInfoAsync}. + * + * @param body Case type payload (required) + * @return CompletableFuture<CaseTypeResponse> + */ + public CompletableFuture createCaseTypeAsync(CaseTypeCreateRequest body) { + return createCaseTypeWithHttpInfoAsync(body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Create a Case Type + * + * @param body Case type payload (required) + * @return ApiResponse<CaseTypeResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
201 CREATED -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
429 Too many requests -
+ */ + public ApiResponse createCaseTypeWithHttpInfo(CaseTypeCreateRequest body) + throws ApiException { + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling createCaseType"); + } + // create path and map variables + String localVarPath = "/api/v2/cases/types"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CaseManagementTypeApi.createCaseType", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Create a case type. + * + *

See {@link #createCaseTypeWithHttpInfo}. + * + * @param body Case type payload (required) + * @return CompletableFuture<ApiResponse<CaseTypeResponse>> + */ + public CompletableFuture> createCaseTypeWithHttpInfoAsync( + CaseTypeCreateRequest body) { + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'body' when calling createCaseType")); + return result; + } + // create path and map variables + String localVarPath = "/api/v2/cases/types"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CaseManagementTypeApi.createCaseType", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Delete a case type. + * + *

See {@link #deleteCaseTypeWithHttpInfo}. + * + * @param caseTypeId Case type's UUID (required) + * @throws ApiException if fails to make API call + */ + public void deleteCaseType(String caseTypeId) throws ApiException { + deleteCaseTypeWithHttpInfo(caseTypeId); + } + + /** + * Delete a case type. + * + *

See {@link #deleteCaseTypeWithHttpInfoAsync}. + * + * @param caseTypeId Case type's UUID (required) + * @return CompletableFuture + */ + public CompletableFuture deleteCaseTypeAsync(String caseTypeId) { + return deleteCaseTypeWithHttpInfoAsync(caseTypeId) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Delete a case type + * + * @param caseTypeId Case type's UUID (required) + * @return ApiResponse<Void> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
204 No Content -
401 Unauthorized -
403 Forbidden -
429 Too many requests -
+ */ + public ApiResponse deleteCaseTypeWithHttpInfo(String caseTypeId) throws ApiException { + Object localVarPostBody = null; + + // verify the required parameter 'caseTypeId' is set + if (caseTypeId == null) { + throw new ApiException( + 400, "Missing the required parameter 'caseTypeId' when calling deleteCaseType"); + } + // create path and map variables + String localVarPath = + "/api/v2/cases/types/{case_type_id}" + .replaceAll( + "\\{" + "case_type_id" + "\\}", apiClient.escapeString(caseTypeId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CaseManagementTypeApi.deleteCaseType", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "DELETE", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Delete a case type. + * + *

See {@link #deleteCaseTypeWithHttpInfo}. + * + * @param caseTypeId Case type's UUID (required) + * @return CompletableFuture<ApiResponse<Void>> + */ + public CompletableFuture> deleteCaseTypeWithHttpInfoAsync(String caseTypeId) { + Object localVarPostBody = null; + + // verify the required parameter 'caseTypeId' is set + if (caseTypeId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'caseTypeId' when calling deleteCaseType")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/cases/types/{case_type_id}" + .replaceAll( + "\\{" + "case_type_id" + "\\}", apiClient.escapeString(caseTypeId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CaseManagementTypeApi.deleteCaseType", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "DELETE", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Get all case types. + * + *

See {@link #getAllCaseTypesWithHttpInfo}. + * + * @return CaseTypesResponse + * @throws ApiException if fails to make API call + */ + public CaseTypesResponse getAllCaseTypes() throws ApiException { + return getAllCaseTypesWithHttpInfo().getData(); + } + + /** + * Get all case types. + * + *

See {@link #getAllCaseTypesWithHttpInfoAsync}. + * + * @return CompletableFuture<CaseTypesResponse> + */ + public CompletableFuture getAllCaseTypesAsync() { + return getAllCaseTypesWithHttpInfoAsync() + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get all case types + * + * @return ApiResponse<CaseTypesResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
401 Unauthorized -
403 Forbidden -
429 Too many requests -
+ */ + public ApiResponse getAllCaseTypesWithHttpInfo() throws ApiException { + Object localVarPostBody = null; + // create path and map variables + String localVarPath = "/api/v2/cases/types"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CaseManagementTypeApi.getAllCaseTypes", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get all case types. + * + *

See {@link #getAllCaseTypesWithHttpInfo}. + * + * @return CompletableFuture<ApiResponse<CaseTypesResponse>> + */ + public CompletableFuture> getAllCaseTypesWithHttpInfoAsync() { + Object localVarPostBody = null; + // create path and map variables + String localVarPath = "/api/v2/cases/types"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CaseManagementTypeApi.getAllCaseTypes", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CaseAttributes.java b/src/main/java/com/datadog/api/client/v2/model/CaseAttributes.java index f4ceb3cf415..bc59cfd5915 100644 --- a/src/main/java/com/datadog/api/client/v2/model/CaseAttributes.java +++ b/src/main/java/com/datadog/api/client/v2/model/CaseAttributes.java @@ -25,6 +25,7 @@ CaseAttributes.JSON_PROPERTY_ATTRIBUTES, CaseAttributes.JSON_PROPERTY_CLOSED_AT, CaseAttributes.JSON_PROPERTY_CREATED_AT, + CaseAttributes.JSON_PROPERTY_CUSTOM_ATTRIBUTES, CaseAttributes.JSON_PROPERTY_DESCRIPTION, CaseAttributes.JSON_PROPERTY_JIRA_ISSUE, CaseAttributes.JSON_PROPERTY_KEY, @@ -33,7 +34,8 @@ CaseAttributes.JSON_PROPERTY_SERVICE_NOW_TICKET, CaseAttributes.JSON_PROPERTY_STATUS, CaseAttributes.JSON_PROPERTY_TITLE, - CaseAttributes.JSON_PROPERTY_TYPE + CaseAttributes.JSON_PROPERTY_TYPE, + CaseAttributes.JSON_PROPERTY_TYPE_ID }) @jakarta.annotation.Generated( value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") @@ -51,6 +53,9 @@ public class CaseAttributes { public static final String JSON_PROPERTY_CREATED_AT = "created_at"; private OffsetDateTime createdAt; + public static final String JSON_PROPERTY_CUSTOM_ATTRIBUTES = "custom_attributes"; + private Map customAttributes = null; + public static final String JSON_PROPERTY_DESCRIPTION = "description"; private String description; @@ -79,6 +84,9 @@ public class CaseAttributes { public static final String JSON_PROPERTY_TYPE = "type"; private CaseType type; + public static final String JSON_PROPERTY_TYPE_ID = "type_id"; + private String typeId; + /** * Timestamp of when the case was archived * @@ -172,6 +180,36 @@ public OffsetDateTime getCreatedAt() { return createdAt; } + public CaseAttributes customAttributes(Map customAttributes) { + this.customAttributes = customAttributes; + return this; + } + + public CaseAttributes putCustomAttributesItem( + String key, CustomAttributeValue customAttributesItem) { + if (this.customAttributes == null) { + this.customAttributes = new HashMap<>(); + } + this.customAttributes.put(key, customAttributesItem); + return this; + } + + /** + * Case custom attributes + * + * @return customAttributes + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CUSTOM_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Map getCustomAttributes() { + return customAttributes; + } + + public void setCustomAttributes(Map customAttributes) { + this.customAttributes = customAttributes; + } + public CaseAttributes description(String description) { this.description = description; return this; @@ -373,7 +411,9 @@ public CaseAttributes type(CaseType type) { * Case type * * @return type + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_TYPE) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @@ -381,6 +421,7 @@ public CaseType getType() { return type; } + @Deprecated public void setType(CaseType type) { if (!type.isValid()) { this.unparsed = true; @@ -388,6 +429,27 @@ public void setType(CaseType type) { this.type = type; } + public CaseAttributes typeId(String typeId) { + this.typeId = typeId; + return this; + } + + /** + * Case type UUID + * + * @return typeId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TYPE_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + /** * A container for additional, undeclared properties. This is a holder for any undeclared * properties as specified with the 'additionalProperties' keyword in the OAS document. @@ -448,6 +510,7 @@ public boolean equals(Object o) { && Objects.equals(this.attributes, caseAttributes.attributes) && Objects.equals(this.closedAt, caseAttributes.closedAt) && Objects.equals(this.createdAt, caseAttributes.createdAt) + && Objects.equals(this.customAttributes, caseAttributes.customAttributes) && Objects.equals(this.description, caseAttributes.description) && Objects.equals(this.jiraIssue, caseAttributes.jiraIssue) && Objects.equals(this.key, caseAttributes.key) @@ -457,6 +520,7 @@ public boolean equals(Object o) { && Objects.equals(this.status, caseAttributes.status) && Objects.equals(this.title, caseAttributes.title) && Objects.equals(this.type, caseAttributes.type) + && Objects.equals(this.typeId, caseAttributes.typeId) && Objects.equals(this.additionalProperties, caseAttributes.additionalProperties); } @@ -467,6 +531,7 @@ public int hashCode() { attributes, closedAt, createdAt, + customAttributes, description, jiraIssue, key, @@ -476,6 +541,7 @@ public int hashCode() { status, title, type, + typeId, additionalProperties); } @@ -487,6 +553,7 @@ public String toString() { sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); sb.append(" closedAt: ").append(toIndentedString(closedAt)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" customAttributes: ").append(toIndentedString(customAttributes)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" jiraIssue: ").append(toIndentedString(jiraIssue)).append("\n"); sb.append(" key: ").append(toIndentedString(key)).append("\n"); @@ -496,6 +563,7 @@ public String toString() { sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" title: ").append(toIndentedString(title)).append("\n"); sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" typeId: ").append(toIndentedString(typeId)).append("\n"); sb.append(" additionalProperties: ") .append(toIndentedString(additionalProperties)) .append("\n"); diff --git a/src/main/java/com/datadog/api/client/v2/model/CaseComment.java b/src/main/java/com/datadog/api/client/v2/model/CaseComment.java new file mode 100644 index 00000000000..482beac0f04 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CaseComment.java @@ -0,0 +1,178 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Case comment */ +@JsonPropertyOrder({CaseComment.JSON_PROPERTY_ATTRIBUTES, CaseComment.JSON_PROPERTY_TYPE}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CaseComment { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private CaseCommentAttributes attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private CaseResourceType type = CaseResourceType.CASE; + + public CaseComment() {} + + @JsonCreator + public CaseComment( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + CaseCommentAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) CaseResourceType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public CaseComment attributes(CaseCommentAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Case comment attributes + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CaseCommentAttributes getAttributes() { + return attributes; + } + + public void setAttributes(CaseCommentAttributes attributes) { + this.attributes = attributes; + } + + public CaseComment type(CaseResourceType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Case resource type + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CaseResourceType getType() { + return type; + } + + public void setType(CaseResourceType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CaseComment + */ + @JsonAnySetter + public CaseComment putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CaseComment object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CaseComment caseComment = (CaseComment) o; + return Objects.equals(this.attributes, caseComment.attributes) + && Objects.equals(this.type, caseComment.type) + && Objects.equals(this.additionalProperties, caseComment.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CaseComment {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CaseCommentAttributes.java b/src/main/java/com/datadog/api/client/v2/model/CaseCommentAttributes.java new file mode 100644 index 00000000000..b5204d539b5 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CaseCommentAttributes.java @@ -0,0 +1,143 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Case comment attributes */ +@JsonPropertyOrder({CaseCommentAttributes.JSON_PROPERTY_COMMENT}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CaseCommentAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_COMMENT = "comment"; + private String comment; + + public CaseCommentAttributes() {} + + @JsonCreator + public CaseCommentAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_COMMENT) String comment) { + this.comment = comment; + } + + public CaseCommentAttributes comment(String comment) { + this.comment = comment; + return this; + } + + /** + * The CaseCommentAttributes message. + * + * @return comment + */ + @JsonProperty(JSON_PROPERTY_COMMENT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CaseCommentAttributes + */ + @JsonAnySetter + public CaseCommentAttributes putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CaseCommentAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CaseCommentAttributes caseCommentAttributes = (CaseCommentAttributes) o; + return Objects.equals(this.comment, caseCommentAttributes.comment) + && Objects.equals(this.additionalProperties, caseCommentAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(comment, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CaseCommentAttributes {\n"); + sb.append(" comment: ").append(toIndentedString(comment)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CaseCommentRequest.java b/src/main/java/com/datadog/api/client/v2/model/CaseCommentRequest.java new file mode 100644 index 00000000000..0cfbac94be2 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CaseCommentRequest.java @@ -0,0 +1,145 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Case comment request */ +@JsonPropertyOrder({CaseCommentRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CaseCommentRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private CaseComment data; + + public CaseCommentRequest() {} + + @JsonCreator + public CaseCommentRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) CaseComment data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public CaseCommentRequest data(CaseComment data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Case comment + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CaseComment getData() { + return data; + } + + public void setData(CaseComment data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CaseCommentRequest + */ + @JsonAnySetter + public CaseCommentRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CaseCommentRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CaseCommentRequest caseCommentRequest = (CaseCommentRequest) o; + return Objects.equals(this.data, caseCommentRequest.data) + && Objects.equals(this.additionalProperties, caseCommentRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CaseCommentRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CaseCreateAttributes.java b/src/main/java/com/datadog/api/client/v2/model/CaseCreateAttributes.java index 3aa9cd247a5..1d35f9fb34e 100644 --- a/src/main/java/com/datadog/api/client/v2/model/CaseCreateAttributes.java +++ b/src/main/java/com/datadog/api/client/v2/model/CaseCreateAttributes.java @@ -22,7 +22,7 @@ CaseCreateAttributes.JSON_PROPERTY_DESCRIPTION, CaseCreateAttributes.JSON_PROPERTY_PRIORITY, CaseCreateAttributes.JSON_PROPERTY_TITLE, - CaseCreateAttributes.JSON_PROPERTY_TYPE + CaseCreateAttributes.JSON_PROPERTY_TYPE_ID }) @jakarta.annotation.Generated( value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") @@ -37,18 +37,17 @@ public class CaseCreateAttributes { public static final String JSON_PROPERTY_TITLE = "title"; private String title; - public static final String JSON_PROPERTY_TYPE = "type"; - private CaseType type; + public static final String JSON_PROPERTY_TYPE_ID = "type_id"; + private String typeId; public CaseCreateAttributes() {} @JsonCreator public CaseCreateAttributes( @JsonProperty(required = true, value = JSON_PROPERTY_TITLE) String title, - @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) CaseType type) { + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE_ID) String typeId) { this.title = title; - this.type = type; - this.unparsed |= !type.isValid(); + this.typeId = typeId; } public CaseCreateAttributes description(String description) { @@ -117,28 +116,24 @@ public void setTitle(String title) { this.title = title; } - public CaseCreateAttributes type(CaseType type) { - this.type = type; - this.unparsed |= !type.isValid(); + public CaseCreateAttributes typeId(String typeId) { + this.typeId = typeId; return this; } /** - * Case type + * Case type UUID * - * @return type + * @return typeId */ - @JsonProperty(JSON_PROPERTY_TYPE) + @JsonProperty(JSON_PROPERTY_TYPE_ID) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public CaseType getType() { - return type; + public String getTypeId() { + return typeId; } - public void setType(CaseType type) { - if (!type.isValid()) { - this.unparsed = true; - } - this.type = type; + public void setTypeId(String typeId) { + this.typeId = typeId; } /** @@ -200,13 +195,13 @@ public boolean equals(Object o) { return Objects.equals(this.description, caseCreateAttributes.description) && Objects.equals(this.priority, caseCreateAttributes.priority) && Objects.equals(this.title, caseCreateAttributes.title) - && Objects.equals(this.type, caseCreateAttributes.type) + && Objects.equals(this.typeId, caseCreateAttributes.typeId) && Objects.equals(this.additionalProperties, caseCreateAttributes.additionalProperties); } @Override public int hashCode() { - return Objects.hash(description, priority, title, type, additionalProperties); + return Objects.hash(description, priority, title, typeId, additionalProperties); } @Override @@ -216,7 +211,7 @@ public String toString() { sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); sb.append(" title: ").append(toIndentedString(title)).append("\n"); - sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" typeId: ").append(toIndentedString(typeId)).append("\n"); sb.append(" additionalProperties: ") .append(toIndentedString(additionalProperties)) .append("\n"); diff --git a/src/main/java/com/datadog/api/client/v2/model/CaseTypeCreate.java b/src/main/java/com/datadog/api/client/v2/model/CaseTypeCreate.java new file mode 100644 index 00000000000..30869ad898a --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CaseTypeCreate.java @@ -0,0 +1,178 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Case type */ +@JsonPropertyOrder({CaseTypeCreate.JSON_PROPERTY_ATTRIBUTES, CaseTypeCreate.JSON_PROPERTY_TYPE}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CaseTypeCreate { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private CaseTypeResourceAttributes attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private CaseTypeResourceType type = CaseTypeResourceType.CASE_TYPE; + + public CaseTypeCreate() {} + + @JsonCreator + public CaseTypeCreate( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + CaseTypeResourceAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) CaseTypeResourceType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public CaseTypeCreate attributes(CaseTypeResourceAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Case Type resource attributes + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CaseTypeResourceAttributes getAttributes() { + return attributes; + } + + public void setAttributes(CaseTypeResourceAttributes attributes) { + this.attributes = attributes; + } + + public CaseTypeCreate type(CaseTypeResourceType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Case type resource type + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CaseTypeResourceType getType() { + return type; + } + + public void setType(CaseTypeResourceType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CaseTypeCreate + */ + @JsonAnySetter + public CaseTypeCreate putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CaseTypeCreate object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CaseTypeCreate caseTypeCreate = (CaseTypeCreate) o; + return Objects.equals(this.attributes, caseTypeCreate.attributes) + && Objects.equals(this.type, caseTypeCreate.type) + && Objects.equals(this.additionalProperties, caseTypeCreate.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CaseTypeCreate {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CaseTypeCreateRequest.java b/src/main/java/com/datadog/api/client/v2/model/CaseTypeCreateRequest.java new file mode 100644 index 00000000000..f2d74605f3f --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CaseTypeCreateRequest.java @@ -0,0 +1,145 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Case type create request */ +@JsonPropertyOrder({CaseTypeCreateRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CaseTypeCreateRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private CaseTypeCreate data; + + public CaseTypeCreateRequest() {} + + @JsonCreator + public CaseTypeCreateRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) CaseTypeCreate data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public CaseTypeCreateRequest data(CaseTypeCreate data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Case type + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CaseTypeCreate getData() { + return data; + } + + public void setData(CaseTypeCreate data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CaseTypeCreateRequest + */ + @JsonAnySetter + public CaseTypeCreateRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CaseTypeCreateRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CaseTypeCreateRequest caseTypeCreateRequest = (CaseTypeCreateRequest) o; + return Objects.equals(this.data, caseTypeCreateRequest.data) + && Objects.equals(this.additionalProperties, caseTypeCreateRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CaseTypeCreateRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CaseTypeResource.java b/src/main/java/com/datadog/api/client/v2/model/CaseTypeResource.java new file mode 100644 index 00000000000..e19a10d2fb3 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CaseTypeResource.java @@ -0,0 +1,196 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** The definition of CaseType object. */ +@JsonPropertyOrder({ + CaseTypeResource.JSON_PROPERTY_ATTRIBUTES, + CaseTypeResource.JSON_PROPERTY_ID, + CaseTypeResource.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CaseTypeResource { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private CaseTypeResourceAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private CaseTypeResourceType type = CaseTypeResourceType.CASE_TYPE; + + public CaseTypeResource attributes(CaseTypeResourceAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Case Type resource attributes + * + * @return attributes + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public CaseTypeResourceAttributes getAttributes() { + return attributes; + } + + public void setAttributes(CaseTypeResourceAttributes attributes) { + this.attributes = attributes; + } + + public CaseTypeResource id(String id) { + this.id = id; + return this; + } + + /** + * Case type's identifier + * + * @return id + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CaseTypeResource type(CaseTypeResourceType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Case type resource type + * + * @return type + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public CaseTypeResourceType getType() { + return type; + } + + public void setType(CaseTypeResourceType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CaseTypeResource + */ + @JsonAnySetter + public CaseTypeResource putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CaseTypeResource object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CaseTypeResource caseTypeResource = (CaseTypeResource) o; + return Objects.equals(this.attributes, caseTypeResource.attributes) + && Objects.equals(this.id, caseTypeResource.id) + && Objects.equals(this.type, caseTypeResource.type) + && Objects.equals(this.additionalProperties, caseTypeResource.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CaseTypeResource {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CaseTypeResourceAttributes.java b/src/main/java/com/datadog/api/client/v2/model/CaseTypeResourceAttributes.java new file mode 100644 index 00000000000..17eea93daaa --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CaseTypeResourceAttributes.java @@ -0,0 +1,234 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.time.OffsetDateTime; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import org.openapitools.jackson.nullable.JsonNullable; + +/** Case Type resource attributes */ +@JsonPropertyOrder({ + CaseTypeResourceAttributes.JSON_PROPERTY_DELETED_AT, + CaseTypeResourceAttributes.JSON_PROPERTY_DESCRIPTION, + CaseTypeResourceAttributes.JSON_PROPERTY_EMOJI, + CaseTypeResourceAttributes.JSON_PROPERTY_NAME +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CaseTypeResourceAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DELETED_AT = "deleted_at"; + private JsonNullable deletedAt = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_EMOJI = "emoji"; + private String emoji; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public CaseTypeResourceAttributes() {} + + @JsonCreator + public CaseTypeResourceAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_NAME) String name) { + this.name = name; + } + + /** + * Timestamp of when the case type was deleted + * + * @return deletedAt + */ + @jakarta.annotation.Nullable + @JsonIgnore + public OffsetDateTime getDeletedAt() { + + if (deletedAt == null) { + deletedAt = JsonNullable.undefined(); + } + return deletedAt.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_DELETED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getDeletedAt_JsonNullable() { + return deletedAt; + } + + @JsonProperty(JSON_PROPERTY_DELETED_AT) + private void setDeletedAt_JsonNullable(JsonNullable deletedAt) { + this.deletedAt = deletedAt; + } + + public CaseTypeResourceAttributes description(String description) { + this.description = description; + return this; + } + + /** + * Case type description. + * + * @return description + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CaseTypeResourceAttributes emoji(String emoji) { + this.emoji = emoji; + return this; + } + + /** + * Case type emoji. + * + * @return emoji + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_EMOJI) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getEmoji() { + return emoji; + } + + public void setEmoji(String emoji) { + this.emoji = emoji; + } + + public CaseTypeResourceAttributes name(String name) { + this.name = name; + return this; + } + + /** + * Case type name. + * + * @return name + */ + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CaseTypeResourceAttributes + */ + @JsonAnySetter + public CaseTypeResourceAttributes putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CaseTypeResourceAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CaseTypeResourceAttributes caseTypeResourceAttributes = (CaseTypeResourceAttributes) o; + return Objects.equals(this.deletedAt, caseTypeResourceAttributes.deletedAt) + && Objects.equals(this.description, caseTypeResourceAttributes.description) + && Objects.equals(this.emoji, caseTypeResourceAttributes.emoji) + && Objects.equals(this.name, caseTypeResourceAttributes.name) + && Objects.equals( + this.additionalProperties, caseTypeResourceAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(deletedAt, description, emoji, name, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CaseTypeResourceAttributes {\n"); + sb.append(" deletedAt: ").append(toIndentedString(deletedAt)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" emoji: ").append(toIndentedString(emoji)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CaseTypeResourceType.java b/src/main/java/com/datadog/api/client/v2/model/CaseTypeResourceType.java new file mode 100644 index 00000000000..5bb1ab98d66 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CaseTypeResourceType.java @@ -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. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Case type resource type */ +@JsonSerialize(using = CaseTypeResourceType.CaseTypeResourceTypeSerializer.class) +public class CaseTypeResourceType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("case_type")); + + public static final CaseTypeResourceType CASE_TYPE = new CaseTypeResourceType("case_type"); + + CaseTypeResourceType(String value) { + super(value, allowedValues); + } + + public static class CaseTypeResourceTypeSerializer extends StdSerializer { + public CaseTypeResourceTypeSerializer(Class t) { + super(t); + } + + public CaseTypeResourceTypeSerializer() { + this(null); + } + + @Override + public void serialize( + CaseTypeResourceType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static CaseTypeResourceType fromValue(String value) { + return new CaseTypeResourceType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CaseTypeResponse.java b/src/main/java/com/datadog/api/client/v2/model/CaseTypeResponse.java new file mode 100644 index 00000000000..91f61b68372 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CaseTypeResponse.java @@ -0,0 +1,136 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Case type response */ +@JsonPropertyOrder({CaseTypeResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CaseTypeResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private CaseTypeResource data; + + public CaseTypeResponse data(CaseTypeResource data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * The definition of CaseType object. + * + * @return data + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public CaseTypeResource getData() { + return data; + } + + public void setData(CaseTypeResource data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CaseTypeResponse + */ + @JsonAnySetter + public CaseTypeResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CaseTypeResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CaseTypeResponse caseTypeResponse = (CaseTypeResponse) o; + return Objects.equals(this.data, caseTypeResponse.data) + && Objects.equals(this.additionalProperties, caseTypeResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CaseTypeResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CaseTypesResponse.java b/src/main/java/com/datadog/api/client/v2/model/CaseTypesResponse.java new file mode 100644 index 00000000000..f0f500a5aee --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CaseTypesResponse.java @@ -0,0 +1,149 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Case types response. */ +@JsonPropertyOrder({CaseTypesResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CaseTypesResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = null; + + public CaseTypesResponse data(List data) { + this.data = data; + for (CaseTypeResource item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public CaseTypesResponse addDataItem(CaseTypeResource dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * List of case types + * + * @return data + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CaseTypesResponse + */ + @JsonAnySetter + public CaseTypesResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CaseTypesResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CaseTypesResponse caseTypesResponse = (CaseTypesResponse) o; + return Objects.equals(this.data, caseTypesResponse.data) + && Objects.equals(this.additionalProperties, caseTypesResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CaseTypesResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CaseUpdateCustomAttribute.java b/src/main/java/com/datadog/api/client/v2/model/CaseUpdateCustomAttribute.java new file mode 100644 index 00000000000..2f5f7769c24 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CaseUpdateCustomAttribute.java @@ -0,0 +1,182 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Case update custom attribute */ +@JsonPropertyOrder({ + CaseUpdateCustomAttribute.JSON_PROPERTY_ATTRIBUTES, + CaseUpdateCustomAttribute.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CaseUpdateCustomAttribute { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private CustomAttributeValue attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private CaseResourceType type = CaseResourceType.CASE; + + public CaseUpdateCustomAttribute() {} + + @JsonCreator + public CaseUpdateCustomAttribute( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + CustomAttributeValue attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) CaseResourceType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public CaseUpdateCustomAttribute attributes(CustomAttributeValue attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Custom attribute values + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CustomAttributeValue getAttributes() { + return attributes; + } + + public void setAttributes(CustomAttributeValue attributes) { + this.attributes = attributes; + } + + public CaseUpdateCustomAttribute type(CaseResourceType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Case resource type + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CaseResourceType getType() { + return type; + } + + public void setType(CaseResourceType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CaseUpdateCustomAttribute + */ + @JsonAnySetter + public CaseUpdateCustomAttribute putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CaseUpdateCustomAttribute object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CaseUpdateCustomAttribute caseUpdateCustomAttribute = (CaseUpdateCustomAttribute) o; + return Objects.equals(this.attributes, caseUpdateCustomAttribute.attributes) + && Objects.equals(this.type, caseUpdateCustomAttribute.type) + && Objects.equals( + this.additionalProperties, caseUpdateCustomAttribute.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CaseUpdateCustomAttribute {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CaseUpdateCustomAttributeRequest.java b/src/main/java/com/datadog/api/client/v2/model/CaseUpdateCustomAttributeRequest.java new file mode 100644 index 00000000000..28eaf3b4359 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CaseUpdateCustomAttributeRequest.java @@ -0,0 +1,147 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Case update custom attribute request */ +@JsonPropertyOrder({CaseUpdateCustomAttributeRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CaseUpdateCustomAttributeRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private CaseUpdateCustomAttribute data; + + public CaseUpdateCustomAttributeRequest() {} + + @JsonCreator + public CaseUpdateCustomAttributeRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) CaseUpdateCustomAttribute data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public CaseUpdateCustomAttributeRequest data(CaseUpdateCustomAttribute data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Case update custom attribute + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CaseUpdateCustomAttribute getData() { + return data; + } + + public void setData(CaseUpdateCustomAttribute data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CaseUpdateCustomAttributeRequest + */ + @JsonAnySetter + public CaseUpdateCustomAttributeRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CaseUpdateCustomAttributeRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CaseUpdateCustomAttributeRequest caseUpdateCustomAttributeRequest = + (CaseUpdateCustomAttributeRequest) o; + return Objects.equals(this.data, caseUpdateCustomAttributeRequest.data) + && Objects.equals( + this.additionalProperties, caseUpdateCustomAttributeRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CaseUpdateCustomAttributeRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CaseUpdateDescription.java b/src/main/java/com/datadog/api/client/v2/model/CaseUpdateDescription.java new file mode 100644 index 00000000000..6ae4a9c9a26 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CaseUpdateDescription.java @@ -0,0 +1,181 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Case update description */ +@JsonPropertyOrder({ + CaseUpdateDescription.JSON_PROPERTY_ATTRIBUTES, + CaseUpdateDescription.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CaseUpdateDescription { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private CaseUpdateDescriptionAttributes attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private CaseResourceType type = CaseResourceType.CASE; + + public CaseUpdateDescription() {} + + @JsonCreator + public CaseUpdateDescription( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + CaseUpdateDescriptionAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) CaseResourceType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public CaseUpdateDescription attributes(CaseUpdateDescriptionAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Case update description attributes + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CaseUpdateDescriptionAttributes getAttributes() { + return attributes; + } + + public void setAttributes(CaseUpdateDescriptionAttributes attributes) { + this.attributes = attributes; + } + + public CaseUpdateDescription type(CaseResourceType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Case resource type + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CaseResourceType getType() { + return type; + } + + public void setType(CaseResourceType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CaseUpdateDescription + */ + @JsonAnySetter + public CaseUpdateDescription putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CaseUpdateDescription object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CaseUpdateDescription caseUpdateDescription = (CaseUpdateDescription) o; + return Objects.equals(this.attributes, caseUpdateDescription.attributes) + && Objects.equals(this.type, caseUpdateDescription.type) + && Objects.equals(this.additionalProperties, caseUpdateDescription.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CaseUpdateDescription {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CaseUpdateDescriptionAttributes.java b/src/main/java/com/datadog/api/client/v2/model/CaseUpdateDescriptionAttributes.java new file mode 100644 index 00000000000..7adb5ebcf4b --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CaseUpdateDescriptionAttributes.java @@ -0,0 +1,145 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Case update description attributes */ +@JsonPropertyOrder({CaseUpdateDescriptionAttributes.JSON_PROPERTY_DESCRIPTION}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CaseUpdateDescriptionAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public CaseUpdateDescriptionAttributes() {} + + @JsonCreator + public CaseUpdateDescriptionAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_DESCRIPTION) String description) { + this.description = description; + } + + public CaseUpdateDescriptionAttributes description(String description) { + this.description = description; + return this; + } + + /** + * Case new description + * + * @return description + */ + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CaseUpdateDescriptionAttributes + */ + @JsonAnySetter + public CaseUpdateDescriptionAttributes putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CaseUpdateDescriptionAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CaseUpdateDescriptionAttributes caseUpdateDescriptionAttributes = + (CaseUpdateDescriptionAttributes) o; + return Objects.equals(this.description, caseUpdateDescriptionAttributes.description) + && Objects.equals( + this.additionalProperties, caseUpdateDescriptionAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(description, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CaseUpdateDescriptionAttributes {\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CaseUpdateDescriptionRequest.java b/src/main/java/com/datadog/api/client/v2/model/CaseUpdateDescriptionRequest.java new file mode 100644 index 00000000000..7449c03839a --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CaseUpdateDescriptionRequest.java @@ -0,0 +1,146 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Case update description request */ +@JsonPropertyOrder({CaseUpdateDescriptionRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CaseUpdateDescriptionRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private CaseUpdateDescription data; + + public CaseUpdateDescriptionRequest() {} + + @JsonCreator + public CaseUpdateDescriptionRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) CaseUpdateDescription data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public CaseUpdateDescriptionRequest data(CaseUpdateDescription data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Case update description + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CaseUpdateDescription getData() { + return data; + } + + public void setData(CaseUpdateDescription data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CaseUpdateDescriptionRequest + */ + @JsonAnySetter + public CaseUpdateDescriptionRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CaseUpdateDescriptionRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CaseUpdateDescriptionRequest caseUpdateDescriptionRequest = (CaseUpdateDescriptionRequest) o; + return Objects.equals(this.data, caseUpdateDescriptionRequest.data) + && Objects.equals( + this.additionalProperties, caseUpdateDescriptionRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CaseUpdateDescriptionRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CaseUpdateTitle.java b/src/main/java/com/datadog/api/client/v2/model/CaseUpdateTitle.java new file mode 100644 index 00000000000..3c07d65dd94 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CaseUpdateTitle.java @@ -0,0 +1,178 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Case update title */ +@JsonPropertyOrder({CaseUpdateTitle.JSON_PROPERTY_ATTRIBUTES, CaseUpdateTitle.JSON_PROPERTY_TYPE}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CaseUpdateTitle { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private CaseUpdateTitleAttributes attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private CaseResourceType type = CaseResourceType.CASE; + + public CaseUpdateTitle() {} + + @JsonCreator + public CaseUpdateTitle( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + CaseUpdateTitleAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) CaseResourceType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public CaseUpdateTitle attributes(CaseUpdateTitleAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Case update title attributes + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CaseUpdateTitleAttributes getAttributes() { + return attributes; + } + + public void setAttributes(CaseUpdateTitleAttributes attributes) { + this.attributes = attributes; + } + + public CaseUpdateTitle type(CaseResourceType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Case resource type + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CaseResourceType getType() { + return type; + } + + public void setType(CaseResourceType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CaseUpdateTitle + */ + @JsonAnySetter + public CaseUpdateTitle putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CaseUpdateTitle object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CaseUpdateTitle caseUpdateTitle = (CaseUpdateTitle) o; + return Objects.equals(this.attributes, caseUpdateTitle.attributes) + && Objects.equals(this.type, caseUpdateTitle.type) + && Objects.equals(this.additionalProperties, caseUpdateTitle.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CaseUpdateTitle {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CaseUpdateTitleAttributes.java b/src/main/java/com/datadog/api/client/v2/model/CaseUpdateTitleAttributes.java new file mode 100644 index 00000000000..3121ebf38b8 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CaseUpdateTitleAttributes.java @@ -0,0 +1,144 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Case update title attributes */ +@JsonPropertyOrder({CaseUpdateTitleAttributes.JSON_PROPERTY_TITLE}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CaseUpdateTitleAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_TITLE = "title"; + private String title; + + public CaseUpdateTitleAttributes() {} + + @JsonCreator + public CaseUpdateTitleAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_TITLE) String title) { + this.title = title; + } + + public CaseUpdateTitleAttributes title(String title) { + this.title = title; + return this; + } + + /** + * Case new title + * + * @return title + */ + @JsonProperty(JSON_PROPERTY_TITLE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CaseUpdateTitleAttributes + */ + @JsonAnySetter + public CaseUpdateTitleAttributes putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CaseUpdateTitleAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CaseUpdateTitleAttributes caseUpdateTitleAttributes = (CaseUpdateTitleAttributes) o; + return Objects.equals(this.title, caseUpdateTitleAttributes.title) + && Objects.equals( + this.additionalProperties, caseUpdateTitleAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(title, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CaseUpdateTitleAttributes {\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CaseUpdateTitleRequest.java b/src/main/java/com/datadog/api/client/v2/model/CaseUpdateTitleRequest.java new file mode 100644 index 00000000000..e4ccef55fa0 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CaseUpdateTitleRequest.java @@ -0,0 +1,145 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Case update title request */ +@JsonPropertyOrder({CaseUpdateTitleRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CaseUpdateTitleRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private CaseUpdateTitle data; + + public CaseUpdateTitleRequest() {} + + @JsonCreator + public CaseUpdateTitleRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) CaseUpdateTitle data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public CaseUpdateTitleRequest data(CaseUpdateTitle data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Case update title + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CaseUpdateTitle getData() { + return data; + } + + public void setData(CaseUpdateTitle data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CaseUpdateTitleRequest + */ + @JsonAnySetter + public CaseUpdateTitleRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CaseUpdateTitleRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CaseUpdateTitleRequest caseUpdateTitleRequest = (CaseUpdateTitleRequest) o; + return Objects.equals(this.data, caseUpdateTitleRequest.data) + && Objects.equals(this.additionalProperties, caseUpdateTitleRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CaseUpdateTitleRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfig.java b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfig.java new file mode 100644 index 00000000000..8bfd5692e19 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfig.java @@ -0,0 +1,197 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** The definition of CustomAttributeConfig object. */ +@JsonPropertyOrder({ + CustomAttributeConfig.JSON_PROPERTY_ATTRIBUTES, + CustomAttributeConfig.JSON_PROPERTY_ID, + CustomAttributeConfig.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CustomAttributeConfig { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private CustomAttributeConfigResourceAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private CustomAttributeConfigResourceType type = + CustomAttributeConfigResourceType.CUSTOM_ATTRIBUTE; + + public CustomAttributeConfig attributes(CustomAttributeConfigResourceAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Custom attribute resource attributes + * + * @return attributes + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public CustomAttributeConfigResourceAttributes getAttributes() { + return attributes; + } + + public void setAttributes(CustomAttributeConfigResourceAttributes attributes) { + this.attributes = attributes; + } + + public CustomAttributeConfig id(String id) { + this.id = id; + return this; + } + + /** + * Custom attribute configs identifier + * + * @return id + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CustomAttributeConfig type(CustomAttributeConfigResourceType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Custom attributes config JSON:API resource type + * + * @return type + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public CustomAttributeConfigResourceType getType() { + return type; + } + + public void setType(CustomAttributeConfigResourceType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CustomAttributeConfig + */ + @JsonAnySetter + public CustomAttributeConfig putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CustomAttributeConfig object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CustomAttributeConfig customAttributeConfig = (CustomAttributeConfig) o; + return Objects.equals(this.attributes, customAttributeConfig.attributes) + && Objects.equals(this.id, customAttributeConfig.id) + && Objects.equals(this.type, customAttributeConfig.type) + && Objects.equals(this.additionalProperties, customAttributeConfig.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CustomAttributeConfig {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigAttributesCreate.java b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigAttributesCreate.java new file mode 100644 index 00000000000..ef58f0c6427 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigAttributesCreate.java @@ -0,0 +1,263 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Custom attribute config resource attributes */ +@JsonPropertyOrder({ + CustomAttributeConfigAttributesCreate.JSON_PROPERTY_DESCRIPTION, + CustomAttributeConfigAttributesCreate.JSON_PROPERTY_DISPLAY_NAME, + CustomAttributeConfigAttributesCreate.JSON_PROPERTY_IS_MULTI, + CustomAttributeConfigAttributesCreate.JSON_PROPERTY_KEY, + CustomAttributeConfigAttributesCreate.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CustomAttributeConfigAttributesCreate { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_DISPLAY_NAME = "display_name"; + private String displayName; + + public static final String JSON_PROPERTY_IS_MULTI = "is_multi"; + private Boolean isMulti; + + public static final String JSON_PROPERTY_KEY = "key"; + private String key; + + public static final String JSON_PROPERTY_TYPE = "type"; + private CustomAttributeType type; + + public CustomAttributeConfigAttributesCreate() {} + + @JsonCreator + public CustomAttributeConfigAttributesCreate( + @JsonProperty(required = true, value = JSON_PROPERTY_DISPLAY_NAME) String displayName, + @JsonProperty(required = true, value = JSON_PROPERTY_IS_MULTI) Boolean isMulti, + @JsonProperty(required = true, value = JSON_PROPERTY_KEY) String key, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) CustomAttributeType type) { + this.displayName = displayName; + this.isMulti = isMulti; + this.key = key; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public CustomAttributeConfigAttributesCreate description(String description) { + this.description = description; + return this; + } + + /** + * Custom attribute description. + * + * @return description + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CustomAttributeConfigAttributesCreate displayName(String displayName) { + this.displayName = displayName; + return this; + } + + /** + * Custom attribute name. + * + * @return displayName + */ + @JsonProperty(JSON_PROPERTY_DISPLAY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getDisplayName() { + return displayName; + } + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + public CustomAttributeConfigAttributesCreate isMulti(Boolean isMulti) { + this.isMulti = isMulti; + return this; + } + + /** + * Whether multiple values can be set + * + * @return isMulti + */ + @JsonProperty(JSON_PROPERTY_IS_MULTI) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getIsMulti() { + return isMulti; + } + + public void setIsMulti(Boolean isMulti) { + this.isMulti = isMulti; + } + + public CustomAttributeConfigAttributesCreate key(String key) { + this.key = key; + return this; + } + + /** + * Custom attribute key. This will be the value use to search on this custom attribute + * + * @return key + */ + @JsonProperty(JSON_PROPERTY_KEY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public CustomAttributeConfigAttributesCreate type(CustomAttributeType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Custom attributes type + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CustomAttributeType getType() { + return type; + } + + public void setType(CustomAttributeType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CustomAttributeConfigAttributesCreate + */ + @JsonAnySetter + public CustomAttributeConfigAttributesCreate putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CustomAttributeConfigAttributesCreate object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CustomAttributeConfigAttributesCreate customAttributeConfigAttributesCreate = + (CustomAttributeConfigAttributesCreate) o; + return Objects.equals(this.description, customAttributeConfigAttributesCreate.description) + && Objects.equals(this.displayName, customAttributeConfigAttributesCreate.displayName) + && Objects.equals(this.isMulti, customAttributeConfigAttributesCreate.isMulti) + && Objects.equals(this.key, customAttributeConfigAttributesCreate.key) + && Objects.equals(this.type, customAttributeConfigAttributesCreate.type) + && Objects.equals( + this.additionalProperties, customAttributeConfigAttributesCreate.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(description, displayName, isMulti, key, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CustomAttributeConfigAttributesCreate {\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" displayName: ").append(toIndentedString(displayName)).append("\n"); + sb.append(" isMulti: ").append(toIndentedString(isMulti)).append("\n"); + sb.append(" key: ").append(toIndentedString(key)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigCreate.java b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigCreate.java new file mode 100644 index 00000000000..6c3f83bac1d --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigCreate.java @@ -0,0 +1,184 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Custom attribute config */ +@JsonPropertyOrder({ + CustomAttributeConfigCreate.JSON_PROPERTY_ATTRIBUTES, + CustomAttributeConfigCreate.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CustomAttributeConfigCreate { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private CustomAttributeConfigAttributesCreate attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private CustomAttributeConfigResourceType type = + CustomAttributeConfigResourceType.CUSTOM_ATTRIBUTE; + + public CustomAttributeConfigCreate() {} + + @JsonCreator + public CustomAttributeConfigCreate( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + CustomAttributeConfigAttributesCreate attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + CustomAttributeConfigResourceType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public CustomAttributeConfigCreate attributes(CustomAttributeConfigAttributesCreate attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Custom attribute config resource attributes + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CustomAttributeConfigAttributesCreate getAttributes() { + return attributes; + } + + public void setAttributes(CustomAttributeConfigAttributesCreate attributes) { + this.attributes = attributes; + } + + public CustomAttributeConfigCreate type(CustomAttributeConfigResourceType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Custom attributes config JSON:API resource type + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CustomAttributeConfigResourceType getType() { + return type; + } + + public void setType(CustomAttributeConfigResourceType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CustomAttributeConfigCreate + */ + @JsonAnySetter + public CustomAttributeConfigCreate putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CustomAttributeConfigCreate object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CustomAttributeConfigCreate customAttributeConfigCreate = (CustomAttributeConfigCreate) o; + return Objects.equals(this.attributes, customAttributeConfigCreate.attributes) + && Objects.equals(this.type, customAttributeConfigCreate.type) + && Objects.equals( + this.additionalProperties, customAttributeConfigCreate.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CustomAttributeConfigCreate {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigCreateRequest.java b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigCreateRequest.java new file mode 100644 index 00000000000..8d72693da17 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigCreateRequest.java @@ -0,0 +1,147 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Custom attribute config create request */ +@JsonPropertyOrder({CustomAttributeConfigCreateRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CustomAttributeConfigCreateRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private CustomAttributeConfigCreate data; + + public CustomAttributeConfigCreateRequest() {} + + @JsonCreator + public CustomAttributeConfigCreateRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) CustomAttributeConfigCreate data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public CustomAttributeConfigCreateRequest data(CustomAttributeConfigCreate data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Custom attribute config + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CustomAttributeConfigCreate getData() { + return data; + } + + public void setData(CustomAttributeConfigCreate data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CustomAttributeConfigCreateRequest + */ + @JsonAnySetter + public CustomAttributeConfigCreateRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CustomAttributeConfigCreateRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CustomAttributeConfigCreateRequest customAttributeConfigCreateRequest = + (CustomAttributeConfigCreateRequest) o; + return Objects.equals(this.data, customAttributeConfigCreateRequest.data) + && Objects.equals( + this.additionalProperties, customAttributeConfigCreateRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CustomAttributeConfigCreateRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigResourceAttributes.java b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigResourceAttributes.java new file mode 100644 index 00000000000..bed132e68bb --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigResourceAttributes.java @@ -0,0 +1,293 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Custom attribute resource attributes */ +@JsonPropertyOrder({ + CustomAttributeConfigResourceAttributes.JSON_PROPERTY_CASE_TYPE_ID, + CustomAttributeConfigResourceAttributes.JSON_PROPERTY_DESCRIPTION, + CustomAttributeConfigResourceAttributes.JSON_PROPERTY_DISPLAY_NAME, + CustomAttributeConfigResourceAttributes.JSON_PROPERTY_IS_MULTI, + CustomAttributeConfigResourceAttributes.JSON_PROPERTY_KEY, + CustomAttributeConfigResourceAttributes.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CustomAttributeConfigResourceAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_CASE_TYPE_ID = "case_type_id"; + private String caseTypeId; + + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_DISPLAY_NAME = "display_name"; + private String displayName; + + public static final String JSON_PROPERTY_IS_MULTI = "is_multi"; + private Boolean isMulti; + + public static final String JSON_PROPERTY_KEY = "key"; + private String key; + + public static final String JSON_PROPERTY_TYPE = "type"; + private CustomAttributeType type; + + public CustomAttributeConfigResourceAttributes() {} + + @JsonCreator + public CustomAttributeConfigResourceAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_CASE_TYPE_ID) String caseTypeId, + @JsonProperty(required = true, value = JSON_PROPERTY_DISPLAY_NAME) String displayName, + @JsonProperty(required = true, value = JSON_PROPERTY_IS_MULTI) Boolean isMulti, + @JsonProperty(required = true, value = JSON_PROPERTY_KEY) String key, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) CustomAttributeType type) { + this.caseTypeId = caseTypeId; + this.displayName = displayName; + this.isMulti = isMulti; + this.key = key; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public CustomAttributeConfigResourceAttributes caseTypeId(String caseTypeId) { + this.caseTypeId = caseTypeId; + return this; + } + + /** + * Custom attribute config identifier. + * + * @return caseTypeId + */ + @JsonProperty(JSON_PROPERTY_CASE_TYPE_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getCaseTypeId() { + return caseTypeId; + } + + public void setCaseTypeId(String caseTypeId) { + this.caseTypeId = caseTypeId; + } + + public CustomAttributeConfigResourceAttributes description(String description) { + this.description = description; + return this; + } + + /** + * Custom attribute description. + * + * @return description + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CustomAttributeConfigResourceAttributes displayName(String displayName) { + this.displayName = displayName; + return this; + } + + /** + * Custom attribute name. + * + * @return displayName + */ + @JsonProperty(JSON_PROPERTY_DISPLAY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getDisplayName() { + return displayName; + } + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + public CustomAttributeConfigResourceAttributes isMulti(Boolean isMulti) { + this.isMulti = isMulti; + return this; + } + + /** + * Whether multiple values can be set + * + * @return isMulti + */ + @JsonProperty(JSON_PROPERTY_IS_MULTI) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getIsMulti() { + return isMulti; + } + + public void setIsMulti(Boolean isMulti) { + this.isMulti = isMulti; + } + + public CustomAttributeConfigResourceAttributes key(String key) { + this.key = key; + return this; + } + + /** + * Custom attribute key. This will be the value use to search on this custom attribute + * + * @return key + */ + @JsonProperty(JSON_PROPERTY_KEY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public CustomAttributeConfigResourceAttributes type(CustomAttributeType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Custom attributes type + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CustomAttributeType getType() { + return type; + } + + public void setType(CustomAttributeType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CustomAttributeConfigResourceAttributes + */ + @JsonAnySetter + public CustomAttributeConfigResourceAttributes putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CustomAttributeConfigResourceAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CustomAttributeConfigResourceAttributes customAttributeConfigResourceAttributes = + (CustomAttributeConfigResourceAttributes) o; + return Objects.equals(this.caseTypeId, customAttributeConfigResourceAttributes.caseTypeId) + && Objects.equals(this.description, customAttributeConfigResourceAttributes.description) + && Objects.equals(this.displayName, customAttributeConfigResourceAttributes.displayName) + && Objects.equals(this.isMulti, customAttributeConfigResourceAttributes.isMulti) + && Objects.equals(this.key, customAttributeConfigResourceAttributes.key) + && Objects.equals(this.type, customAttributeConfigResourceAttributes.type) + && Objects.equals( + this.additionalProperties, + customAttributeConfigResourceAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + caseTypeId, description, displayName, isMulti, key, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CustomAttributeConfigResourceAttributes {\n"); + sb.append(" caseTypeId: ").append(toIndentedString(caseTypeId)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" displayName: ").append(toIndentedString(displayName)).append("\n"); + sb.append(" isMulti: ").append(toIndentedString(isMulti)).append("\n"); + sb.append(" key: ").append(toIndentedString(key)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigResourceType.java b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigResourceType.java new file mode 100644 index 00000000000..567f0258057 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigResourceType.java @@ -0,0 +1,58 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Custom attributes config JSON:API resource type */ +@JsonSerialize( + using = CustomAttributeConfigResourceType.CustomAttributeConfigResourceTypeSerializer.class) +public class CustomAttributeConfigResourceType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("custom_attribute")); + + public static final CustomAttributeConfigResourceType CUSTOM_ATTRIBUTE = + new CustomAttributeConfigResourceType("custom_attribute"); + + CustomAttributeConfigResourceType(String value) { + super(value, allowedValues); + } + + public static class CustomAttributeConfigResourceTypeSerializer + extends StdSerializer { + public CustomAttributeConfigResourceTypeSerializer(Class t) { + super(t); + } + + public CustomAttributeConfigResourceTypeSerializer() { + this(null); + } + + @Override + public void serialize( + CustomAttributeConfigResourceType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static CustomAttributeConfigResourceType fromValue(String value) { + return new CustomAttributeConfigResourceType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigResponse.java b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigResponse.java new file mode 100644 index 00000000000..a598f645190 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigResponse.java @@ -0,0 +1,137 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Custom attribute config response. */ +@JsonPropertyOrder({CustomAttributeConfigResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CustomAttributeConfigResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private CustomAttributeConfig data; + + public CustomAttributeConfigResponse data(CustomAttributeConfig data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * The definition of CustomAttributeConfig object. + * + * @return data + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public CustomAttributeConfig getData() { + return data; + } + + public void setData(CustomAttributeConfig data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CustomAttributeConfigResponse + */ + @JsonAnySetter + public CustomAttributeConfigResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CustomAttributeConfigResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CustomAttributeConfigResponse customAttributeConfigResponse = (CustomAttributeConfigResponse) o; + return Objects.equals(this.data, customAttributeConfigResponse.data) + && Objects.equals( + this.additionalProperties, customAttributeConfigResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CustomAttributeConfigResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigsResponse.java b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigsResponse.java new file mode 100644 index 00000000000..91727757130 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeConfigsResponse.java @@ -0,0 +1,151 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Custom attribute configs response. */ +@JsonPropertyOrder({CustomAttributeConfigsResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CustomAttributeConfigsResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = null; + + public CustomAttributeConfigsResponse data(List data) { + this.data = data; + for (CustomAttributeConfig item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public CustomAttributeConfigsResponse addDataItem(CustomAttributeConfig dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * List of custom attribute configs of case type + * + * @return data + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CustomAttributeConfigsResponse + */ + @JsonAnySetter + public CustomAttributeConfigsResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CustomAttributeConfigsResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CustomAttributeConfigsResponse customAttributeConfigsResponse = + (CustomAttributeConfigsResponse) o; + return Objects.equals(this.data, customAttributeConfigsResponse.data) + && Objects.equals( + this.additionalProperties, customAttributeConfigsResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CustomAttributeConfigsResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CustomAttributeType.java b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeType.java new file mode 100644 index 00000000000..52453089872 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeType.java @@ -0,0 +1,57 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Custom attributes type */ +@JsonSerialize(using = CustomAttributeType.CustomAttributeTypeSerializer.class) +public class CustomAttributeType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("URL", "TEXT", "NUMBER")); + + public static final CustomAttributeType URL = new CustomAttributeType("URL"); + public static final CustomAttributeType TEXT = new CustomAttributeType("TEXT"); + public static final CustomAttributeType NUMBER = new CustomAttributeType("NUMBER"); + + CustomAttributeType(String value) { + super(value, allowedValues); + } + + public static class CustomAttributeTypeSerializer extends StdSerializer { + public CustomAttributeTypeSerializer(Class t) { + super(t); + } + + public CustomAttributeTypeSerializer() { + this(null); + } + + @Override + public void serialize( + CustomAttributeType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static CustomAttributeType fromValue(String value) { + return new CustomAttributeType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CustomAttributeValue.java b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeValue.java new file mode 100644 index 00000000000..f7f8f1cd9c9 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeValue.java @@ -0,0 +1,209 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Custom attribute values */ +@JsonPropertyOrder({ + CustomAttributeValue.JSON_PROPERTY_IS_MULTI, + CustomAttributeValue.JSON_PROPERTY_TYPE, + CustomAttributeValue.JSON_PROPERTY_VALUE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CustomAttributeValue { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_IS_MULTI = "is_multi"; + private Boolean isMulti; + + public static final String JSON_PROPERTY_TYPE = "type"; + private CustomAttributeType type; + + public static final String JSON_PROPERTY_VALUE = "value"; + private CustomAttributeValuesUnion value; + + public CustomAttributeValue() {} + + @JsonCreator + public CustomAttributeValue( + @JsonProperty(required = true, value = JSON_PROPERTY_IS_MULTI) Boolean isMulti, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) CustomAttributeType type, + @JsonProperty(required = true, value = JSON_PROPERTY_VALUE) + CustomAttributeValuesUnion value) { + this.isMulti = isMulti; + this.type = type; + this.unparsed |= !type.isValid(); + this.value = value; + this.unparsed |= value.unparsed; + } + + public CustomAttributeValue isMulti(Boolean isMulti) { + this.isMulti = isMulti; + return this; + } + + /** + * If true, value must be an array + * + * @return isMulti + */ + @JsonProperty(JSON_PROPERTY_IS_MULTI) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getIsMulti() { + return isMulti; + } + + public void setIsMulti(Boolean isMulti) { + this.isMulti = isMulti; + } + + public CustomAttributeValue type(CustomAttributeType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Custom attributes type + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CustomAttributeType getType() { + return type; + } + + public void setType(CustomAttributeType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + public CustomAttributeValue value(CustomAttributeValuesUnion value) { + this.value = value; + this.unparsed |= value.unparsed; + return this; + } + + /** + * Union of supported value for a custom attribute + * + * @return value + */ + @JsonProperty(JSON_PROPERTY_VALUE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CustomAttributeValuesUnion getValue() { + return value; + } + + public void setValue(CustomAttributeValuesUnion value) { + this.value = value; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CustomAttributeValue + */ + @JsonAnySetter + public CustomAttributeValue putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CustomAttributeValue object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CustomAttributeValue customAttributeValue = (CustomAttributeValue) o; + return Objects.equals(this.isMulti, customAttributeValue.isMulti) + && Objects.equals(this.type, customAttributeValue.type) + && Objects.equals(this.value, customAttributeValue.value) + && Objects.equals(this.additionalProperties, customAttributeValue.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(isMulti, type, value, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CustomAttributeValue {\n"); + sb.append(" isMulti: ").append(toIndentedString(isMulti)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CustomAttributeValuesUnion.java b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeValuesUnion.java new file mode 100644 index 00000000000..521dcbbbea2 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CustomAttributeValuesUnion.java @@ -0,0 +1,399 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.AbstractOpenApiSchema; +import com.datadog.api.client.JSON; +import com.datadog.api.client.UnparsedObject; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.JsonToken; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.MapperFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.deser.std.StdDeserializer; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import jakarta.ws.rs.core.GenericType; +import java.io.IOException; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +@JsonDeserialize(using = CustomAttributeValuesUnion.CustomAttributeValuesUnionDeserializer.class) +@JsonSerialize(using = CustomAttributeValuesUnion.CustomAttributeValuesUnionSerializer.class) +public class CustomAttributeValuesUnion extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(CustomAttributeValuesUnion.class.getName()); + + @JsonIgnore public boolean unparsed = false; + + public static class CustomAttributeValuesUnionSerializer + extends StdSerializer { + public CustomAttributeValuesUnionSerializer(Class t) { + super(t); + } + + public CustomAttributeValuesUnionSerializer() { + this(null); + } + + @Override + public void serialize( + CustomAttributeValuesUnion value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.getActualInstance()); + } + } + + public static class CustomAttributeValuesUnionDeserializer + extends StdDeserializer { + public CustomAttributeValuesUnionDeserializer() { + this(CustomAttributeValuesUnion.class); + } + + public CustomAttributeValuesUnionDeserializer(Class vc) { + super(vc); + } + + @Override + public CustomAttributeValuesUnion deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException, JsonProcessingException { + JsonNode tree = jp.readValueAsTree(); + Object deserialized = null; + Object tmp = null; + boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS); + int match = 0; + JsonToken token = tree.traverse(jp.getCodec()).nextToken(); + // deserialize String + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (String.class.equals(Integer.class) + || String.class.equals(Long.class) + || String.class.equals(Float.class) + || String.class.equals(Double.class) + || String.class.equals(Boolean.class) + || String.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((String.class.equals(Integer.class) || String.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((String.class.equals(Float.class) || String.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (String.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (String.class.equals(String.class) && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = tree.traverse(jp.getCodec()).readValueAs(String.class); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + deserialized = tmp; + match++; + + log.log(Level.FINER, "Input data matches schema 'String'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'String'", e); + } + + // deserialize List + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (List.class.equals(Integer.class) + || List.class.equals(Long.class) + || List.class.equals(Float.class) + || List.class.equals(Double.class) + || List.class.equals(Boolean.class) + || List.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((List.class.equals(Integer.class) || List.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((List.class.equals(Float.class) || List.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (List.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= (List.class.equals(String.class) && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = tree.traverse(jp.getCodec()).readValueAs(new TypeReference>() {}); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + deserialized = tmp; + match++; + + log.log(Level.FINER, "Input data matches schema 'List'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'List'", e); + } + + // deserialize Double + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (Double.class.equals(Integer.class) + || Double.class.equals(Long.class) + || Double.class.equals(Float.class) + || Double.class.equals(Double.class) + || Double.class.equals(Boolean.class) + || Double.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((Double.class.equals(Integer.class) || Double.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((Double.class.equals(Float.class) || Double.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (Double.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (Double.class.equals(String.class) && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = tree.traverse(jp.getCodec()).readValueAs(Double.class); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + deserialized = tmp; + match++; + + log.log(Level.FINER, "Input data matches schema 'Double'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'Double'", e); + } + + // deserialize List + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (List.class.equals(Integer.class) + || List.class.equals(Long.class) + || List.class.equals(Float.class) + || List.class.equals(Double.class) + || List.class.equals(Boolean.class) + || List.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((List.class.equals(Integer.class) || List.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((List.class.equals(Float.class) || List.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (List.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= (List.class.equals(String.class) && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = tree.traverse(jp.getCodec()).readValueAs(new TypeReference>() {}); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + deserialized = tmp; + match++; + + log.log(Level.FINER, "Input data matches schema 'List'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'List'", e); + } + + CustomAttributeValuesUnion ret = new CustomAttributeValuesUnion(); + if (match == 1) { + ret.setActualInstance(deserialized); + } else { + Map res = + new ObjectMapper() + .readValue( + tree.traverse(jp.getCodec()).readValueAsTree().toString(), + new TypeReference>() {}); + ret.setActualInstance(new UnparsedObject(res)); + } + return ret; + } + + /** Handle deserialization of the 'null' value. */ + @Override + public CustomAttributeValuesUnion getNullValue(DeserializationContext ctxt) + throws JsonMappingException { + throw new JsonMappingException(ctxt.getParser(), "CustomAttributeValuesUnion cannot be null"); + } + } + + // store a list of schema names defined in oneOf + public static final Map schemas = new HashMap(); + + public CustomAttributeValuesUnion() { + super("oneOf", Boolean.FALSE); + } + + public CustomAttributeValuesUnion(String o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + public static CustomAttributeValuesUnion fromStringList(List o) { + CustomAttributeValuesUnion instance = new CustomAttributeValuesUnion(); + instance.setActualInstance(o); + return instance; + } + + public CustomAttributeValuesUnion(Double o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + public static CustomAttributeValuesUnion fromDoubleList(List o) { + CustomAttributeValuesUnion instance = new CustomAttributeValuesUnion(); + instance.setActualInstance(o); + return instance; + } + + static { + schemas.put("String", new GenericType() {}); + schemas.put("List", new GenericType>() {}); + schemas.put("Double", new GenericType() {}); + schemas.put("List", new GenericType>() {}); + JSON.registerDescendants( + CustomAttributeValuesUnion.class, Collections.unmodifiableMap(schemas)); + } + + @Override + public Map getSchemas() { + return CustomAttributeValuesUnion.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: String, List<String>, Double, List<Double> + * + *

It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be a + * composed schema (allOf, anyOf, oneOf). + */ + @Override + public void setActualInstance(Object instance) { + if (JSON.isInstanceOf(String.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + if (JSON.isInstanceOf(List.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + if (JSON.isInstanceOf(Double.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + if (JSON.isInstanceOf(List.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + + if (JSON.isInstanceOf(UnparsedObject.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + throw new RuntimeException( + "Invalid instance type. Must be String, List, Double, List"); + } + + /** + * Get the actual instance, which can be the following: String, List<String>, Double, + * List<Double> + * + * @return The actual instance (String, List<String>, Double, List<Double>) + */ + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `String`. If the actual instance is not `String`, the + * ClassCastException will be thrown. + * + * @return The actual instance of `String` + * @throws ClassCastException if the instance is not `String` + */ + public String getString() throws ClassCastException { + return (String) super.getActualInstance(); + } + + /** + * Get the actual instance of `List<String>`. If the actual instance is not + * `List<String>`, the ClassCastException will be thrown. + * + * @return The actual instance of `List<String>` + * @throws ClassCastException if the instance is not `List<String>` + */ + public List getStringList() throws ClassCastException { + return (List) super.getActualInstance(); + } + + /** + * Get the actual instance of `Double`. If the actual instance is not `Double`, the + * ClassCastException will be thrown. + * + * @return The actual instance of `Double` + * @throws ClassCastException if the instance is not `Double` + */ + public Double getDouble() throws ClassCastException { + return (Double) super.getActualInstance(); + } + + /** + * Get the actual instance of `List<Double>`. If the actual instance is not + * `List<Double>`, the ClassCastException will be thrown. + * + * @return The actual instance of `List<Double>` + * @throws ClassCastException if the instance is not `List<Double>` + */ + public List getDoubleList() throws ClassCastException { + return (List) super.getActualInstance(); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/TimelineCell.java b/src/main/java/com/datadog/api/client/v2/model/TimelineCell.java new file mode 100644 index 00000000000..d15aff100af --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/TimelineCell.java @@ -0,0 +1,253 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.time.OffsetDateTime; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** timeline cell */ +@JsonPropertyOrder({ + TimelineCell.JSON_PROPERTY_AUTHOR, + TimelineCell.JSON_PROPERTY_CELL_CONTENT, + TimelineCell.JSON_PROPERTY_CREATED_AT, + TimelineCell.JSON_PROPERTY_DELETED_AT, + TimelineCell.JSON_PROPERTY_MODIFIED_AT, + TimelineCell.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class TimelineCell { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_AUTHOR = "author"; + private TimelineCellAuthor author; + + public static final String JSON_PROPERTY_CELL_CONTENT = "cell_content"; + private TimelineCellContent cellContent; + + public static final String JSON_PROPERTY_CREATED_AT = "created_at"; + private OffsetDateTime createdAt; + + public static final String JSON_PROPERTY_DELETED_AT = "deleted_at"; + private OffsetDateTime deletedAt; + + public static final String JSON_PROPERTY_MODIFIED_AT = "modified_at"; + private OffsetDateTime modifiedAt; + + public static final String JSON_PROPERTY_TYPE = "type"; + private TimelineCellType type; + + public TimelineCell author(TimelineCellAuthor author) { + this.author = author; + this.unparsed |= author.unparsed; + return this; + } + + /** + * author of the timeline cell + * + * @return author + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_AUTHOR) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public TimelineCellAuthor getAuthor() { + return author; + } + + public void setAuthor(TimelineCellAuthor author) { + this.author = author; + } + + public TimelineCell cellContent(TimelineCellContent cellContent) { + this.cellContent = cellContent; + this.unparsed |= cellContent.unparsed; + return this; + } + + /** + * timeline cell content + * + * @return cellContent + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CELL_CONTENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public TimelineCellContent getCellContent() { + return cellContent; + } + + public void setCellContent(TimelineCellContent cellContent) { + this.cellContent = cellContent; + } + + /** + * Timestamp of when the cell was created + * + * @return createdAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + /** + * Timestamp of when the cell was deleted + * + * @return deletedAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DELETED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getDeletedAt() { + return deletedAt; + } + + /** + * Timestamp of when the cell was last modified + * + * @return modifiedAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_MODIFIED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getModifiedAt() { + return modifiedAt; + } + + public TimelineCell type(TimelineCellType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Timeline cell content type + * + * @return type + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public TimelineCellType getType() { + return type; + } + + public void setType(TimelineCellType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return TimelineCell + */ + @JsonAnySetter + public TimelineCell putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this TimelineCell object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimelineCell timelineCell = (TimelineCell) o; + return Objects.equals(this.author, timelineCell.author) + && Objects.equals(this.cellContent, timelineCell.cellContent) + && Objects.equals(this.createdAt, timelineCell.createdAt) + && Objects.equals(this.deletedAt, timelineCell.deletedAt) + && Objects.equals(this.modifiedAt, timelineCell.modifiedAt) + && Objects.equals(this.type, timelineCell.type) + && Objects.equals(this.additionalProperties, timelineCell.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + author, cellContent, createdAt, deletedAt, modifiedAt, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TimelineCell {\n"); + sb.append(" author: ").append(toIndentedString(author)).append("\n"); + sb.append(" cellContent: ").append(toIndentedString(cellContent)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" deletedAt: ").append(toIndentedString(deletedAt)).append("\n"); + sb.append(" modifiedAt: ").append(toIndentedString(modifiedAt)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/TimelineCellAuthor.java b/src/main/java/com/datadog/api/client/v2/model/TimelineCellAuthor.java new file mode 100644 index 00000000000..3c2fe2afdc8 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/TimelineCellAuthor.java @@ -0,0 +1,210 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.AbstractOpenApiSchema; +import com.datadog.api.client.JSON; +import com.datadog.api.client.UnparsedObject; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.JsonToken; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.MapperFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.deser.std.StdDeserializer; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import jakarta.ws.rs.core.GenericType; +import java.io.IOException; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +@JsonDeserialize(using = TimelineCellAuthor.TimelineCellAuthorDeserializer.class) +@JsonSerialize(using = TimelineCellAuthor.TimelineCellAuthorSerializer.class) +public class TimelineCellAuthor extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(TimelineCellAuthor.class.getName()); + + @JsonIgnore public boolean unparsed = false; + + public static class TimelineCellAuthorSerializer extends StdSerializer { + public TimelineCellAuthorSerializer(Class t) { + super(t); + } + + public TimelineCellAuthorSerializer() { + this(null); + } + + @Override + public void serialize(TimelineCellAuthor value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.getActualInstance()); + } + } + + public static class TimelineCellAuthorDeserializer extends StdDeserializer { + public TimelineCellAuthorDeserializer() { + this(TimelineCellAuthor.class); + } + + public TimelineCellAuthorDeserializer(Class vc) { + super(vc); + } + + @Override + public TimelineCellAuthor deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException, JsonProcessingException { + JsonNode tree = jp.readValueAsTree(); + Object deserialized = null; + Object tmp = null; + boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS); + int match = 0; + JsonToken token = tree.traverse(jp.getCodec()).nextToken(); + // deserialize TimelineCellAuthorUser + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (TimelineCellAuthorUser.class.equals(Integer.class) + || TimelineCellAuthorUser.class.equals(Long.class) + || TimelineCellAuthorUser.class.equals(Float.class) + || TimelineCellAuthorUser.class.equals(Double.class) + || TimelineCellAuthorUser.class.equals(Boolean.class) + || TimelineCellAuthorUser.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((TimelineCellAuthorUser.class.equals(Integer.class) + || TimelineCellAuthorUser.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((TimelineCellAuthorUser.class.equals(Float.class) + || TimelineCellAuthorUser.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (TimelineCellAuthorUser.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (TimelineCellAuthorUser.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = tree.traverse(jp.getCodec()).readValueAs(TimelineCellAuthorUser.class); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + if (!((TimelineCellAuthorUser) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log(Level.FINER, "Input data matches schema 'TimelineCellAuthorUser'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'TimelineCellAuthorUser'", e); + } + + TimelineCellAuthor ret = new TimelineCellAuthor(); + if (match == 1) { + ret.setActualInstance(deserialized); + } else { + Map res = + new ObjectMapper() + .readValue( + tree.traverse(jp.getCodec()).readValueAsTree().toString(), + new TypeReference>() {}); + ret.setActualInstance(new UnparsedObject(res)); + } + return ret; + } + + /** Handle deserialization of the 'null' value. */ + @Override + public TimelineCellAuthor getNullValue(DeserializationContext ctxt) + throws JsonMappingException { + throw new JsonMappingException(ctxt.getParser(), "TimelineCellAuthor cannot be null"); + } + } + + // store a list of schema names defined in oneOf + public static final Map schemas = new HashMap(); + + public TimelineCellAuthor() { + super("oneOf", Boolean.FALSE); + } + + public TimelineCellAuthor(TimelineCellAuthorUser o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("TimelineCellAuthorUser", new GenericType() {}); + JSON.registerDescendants(TimelineCellAuthor.class, Collections.unmodifiableMap(schemas)); + } + + @Override + public Map getSchemas() { + return TimelineCellAuthor.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: TimelineCellAuthorUser + * + *

It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be a + * composed schema (allOf, anyOf, oneOf). + */ + @Override + public void setActualInstance(Object instance) { + if (JSON.isInstanceOf(TimelineCellAuthorUser.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + + if (JSON.isInstanceOf(UnparsedObject.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + throw new RuntimeException("Invalid instance type. Must be TimelineCellAuthorUser"); + } + + /** + * Get the actual instance, which can be the following: TimelineCellAuthorUser + * + * @return The actual instance (TimelineCellAuthorUser) + */ + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `TimelineCellAuthorUser`. If the actual instance is not + * `TimelineCellAuthorUser`, the ClassCastException will be thrown. + * + * @return The actual instance of `TimelineCellAuthorUser` + * @throws ClassCastException if the instance is not `TimelineCellAuthorUser` + */ + public TimelineCellAuthorUser getTimelineCellAuthorUser() throws ClassCastException { + return (TimelineCellAuthorUser) super.getActualInstance(); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/TimelineCellAuthorUser.java b/src/main/java/com/datadog/api/client/v2/model/TimelineCellAuthorUser.java new file mode 100644 index 00000000000..c32c284e825 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/TimelineCellAuthorUser.java @@ -0,0 +1,169 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** timeline cell user author */ +@JsonPropertyOrder({ + TimelineCellAuthorUser.JSON_PROPERTY_CONTENT, + TimelineCellAuthorUser.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class TimelineCellAuthorUser { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_CONTENT = "content"; + private TimelineCellAuthorUserContent content; + + public static final String JSON_PROPERTY_TYPE = "type"; + private TimelineCellAuthorUserType type; + + public TimelineCellAuthorUser content(TimelineCellAuthorUserContent content) { + this.content = content; + this.unparsed |= content.unparsed; + return this; + } + + /** + * user author content. + * + * @return content + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CONTENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public TimelineCellAuthorUserContent getContent() { + return content; + } + + public void setContent(TimelineCellAuthorUserContent content) { + this.content = content; + } + + public TimelineCellAuthorUser type(TimelineCellAuthorUserType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * user author type. + * + * @return type + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public TimelineCellAuthorUserType getType() { + return type; + } + + public void setType(TimelineCellAuthorUserType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return TimelineCellAuthorUser + */ + @JsonAnySetter + public TimelineCellAuthorUser putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this TimelineCellAuthorUser object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimelineCellAuthorUser timelineCellAuthorUser = (TimelineCellAuthorUser) o; + return Objects.equals(this.content, timelineCellAuthorUser.content) + && Objects.equals(this.type, timelineCellAuthorUser.type) + && Objects.equals(this.additionalProperties, timelineCellAuthorUser.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(content, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TimelineCellAuthorUser {\n"); + sb.append(" content: ").append(toIndentedString(content)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/TimelineCellAuthorUserContent.java b/src/main/java/com/datadog/api/client/v2/model/TimelineCellAuthorUserContent.java new file mode 100644 index 00000000000..6701cf1dc01 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/TimelineCellAuthorUserContent.java @@ -0,0 +1,219 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** user author content. */ +@JsonPropertyOrder({ + TimelineCellAuthorUserContent.JSON_PROPERTY_EMAIL, + TimelineCellAuthorUserContent.JSON_PROPERTY_HANDLE, + TimelineCellAuthorUserContent.JSON_PROPERTY_ID, + TimelineCellAuthorUserContent.JSON_PROPERTY_NAME +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class TimelineCellAuthorUserContent { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_EMAIL = "email"; + private String email; + + public static final String JSON_PROPERTY_HANDLE = "handle"; + private String handle; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public TimelineCellAuthorUserContent email(String email) { + this.email = email; + return this; + } + + /** + * user email + * + * @return email + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_EMAIL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public TimelineCellAuthorUserContent handle(String handle) { + this.handle = handle; + return this; + } + + /** + * user handle + * + * @return handle + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_HANDLE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getHandle() { + return handle; + } + + public void setHandle(String handle) { + this.handle = handle; + } + + public TimelineCellAuthorUserContent id(String id) { + this.id = id; + return this; + } + + /** + * user UUID + * + * @return id + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public TimelineCellAuthorUserContent name(String name) { + this.name = name; + return this; + } + + /** + * user name + * + * @return name + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return TimelineCellAuthorUserContent + */ + @JsonAnySetter + public TimelineCellAuthorUserContent putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this TimelineCellAuthorUserContent object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimelineCellAuthorUserContent timelineCellAuthorUserContent = (TimelineCellAuthorUserContent) o; + return Objects.equals(this.email, timelineCellAuthorUserContent.email) + && Objects.equals(this.handle, timelineCellAuthorUserContent.handle) + && Objects.equals(this.id, timelineCellAuthorUserContent.id) + && Objects.equals(this.name, timelineCellAuthorUserContent.name) + && Objects.equals( + this.additionalProperties, timelineCellAuthorUserContent.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(email, handle, id, name, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TimelineCellAuthorUserContent {\n"); + sb.append(" email: ").append(toIndentedString(email)).append("\n"); + sb.append(" handle: ").append(toIndentedString(handle)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/TimelineCellAuthorUserType.java b/src/main/java/com/datadog/api/client/v2/model/TimelineCellAuthorUserType.java new file mode 100644 index 00000000000..3abcddbc17e --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/TimelineCellAuthorUserType.java @@ -0,0 +1,55 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** user author type. */ +@JsonSerialize(using = TimelineCellAuthorUserType.TimelineCellAuthorUserTypeSerializer.class) +public class TimelineCellAuthorUserType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("USER")); + + public static final TimelineCellAuthorUserType USER = new TimelineCellAuthorUserType("USER"); + + TimelineCellAuthorUserType(String value) { + super(value, allowedValues); + } + + public static class TimelineCellAuthorUserTypeSerializer + extends StdSerializer { + public TimelineCellAuthorUserTypeSerializer(Class t) { + super(t); + } + + public TimelineCellAuthorUserTypeSerializer() { + this(null); + } + + @Override + public void serialize( + TimelineCellAuthorUserType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static TimelineCellAuthorUserType fromValue(String value) { + return new TimelineCellAuthorUserType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/TimelineCellContent.java b/src/main/java/com/datadog/api/client/v2/model/TimelineCellContent.java new file mode 100644 index 00000000000..13bae414d02 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/TimelineCellContent.java @@ -0,0 +1,211 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.AbstractOpenApiSchema; +import com.datadog.api.client.JSON; +import com.datadog.api.client.UnparsedObject; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.JsonToken; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.MapperFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.deser.std.StdDeserializer; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import jakarta.ws.rs.core.GenericType; +import java.io.IOException; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +@JsonDeserialize(using = TimelineCellContent.TimelineCellContentDeserializer.class) +@JsonSerialize(using = TimelineCellContent.TimelineCellContentSerializer.class) +public class TimelineCellContent extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(TimelineCellContent.class.getName()); + + @JsonIgnore public boolean unparsed = false; + + public static class TimelineCellContentSerializer extends StdSerializer { + public TimelineCellContentSerializer(Class t) { + super(t); + } + + public TimelineCellContentSerializer() { + this(null); + } + + @Override + public void serialize( + TimelineCellContent value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.getActualInstance()); + } + } + + public static class TimelineCellContentDeserializer extends StdDeserializer { + public TimelineCellContentDeserializer() { + this(TimelineCellContent.class); + } + + public TimelineCellContentDeserializer(Class vc) { + super(vc); + } + + @Override + public TimelineCellContent deserialize(JsonParser jp, DeserializationContext ctxt) + throws IOException, JsonProcessingException { + JsonNode tree = jp.readValueAsTree(); + Object deserialized = null; + Object tmp = null; + boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS); + int match = 0; + JsonToken token = tree.traverse(jp.getCodec()).nextToken(); + // deserialize TimelineCellContentComment + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (TimelineCellContentComment.class.equals(Integer.class) + || TimelineCellContentComment.class.equals(Long.class) + || TimelineCellContentComment.class.equals(Float.class) + || TimelineCellContentComment.class.equals(Double.class) + || TimelineCellContentComment.class.equals(Boolean.class) + || TimelineCellContentComment.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((TimelineCellContentComment.class.equals(Integer.class) + || TimelineCellContentComment.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((TimelineCellContentComment.class.equals(Float.class) + || TimelineCellContentComment.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (TimelineCellContentComment.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (TimelineCellContentComment.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = tree.traverse(jp.getCodec()).readValueAs(TimelineCellContentComment.class); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + if (!((TimelineCellContentComment) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log(Level.FINER, "Input data matches schema 'TimelineCellContentComment'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'TimelineCellContentComment'", e); + } + + TimelineCellContent ret = new TimelineCellContent(); + if (match == 1) { + ret.setActualInstance(deserialized); + } else { + Map res = + new ObjectMapper() + .readValue( + tree.traverse(jp.getCodec()).readValueAsTree().toString(), + new TypeReference>() {}); + ret.setActualInstance(new UnparsedObject(res)); + } + return ret; + } + + /** Handle deserialization of the 'null' value. */ + @Override + public TimelineCellContent getNullValue(DeserializationContext ctxt) + throws JsonMappingException { + throw new JsonMappingException(ctxt.getParser(), "TimelineCellContent cannot be null"); + } + } + + // store a list of schema names defined in oneOf + public static final Map schemas = new HashMap(); + + public TimelineCellContent() { + super("oneOf", Boolean.FALSE); + } + + public TimelineCellContent(TimelineCellContentComment o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("TimelineCellContentComment", new GenericType() {}); + JSON.registerDescendants(TimelineCellContent.class, Collections.unmodifiableMap(schemas)); + } + + @Override + public Map getSchemas() { + return TimelineCellContent.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: TimelineCellContentComment + * + *

It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be a + * composed schema (allOf, anyOf, oneOf). + */ + @Override + public void setActualInstance(Object instance) { + if (JSON.isInstanceOf(TimelineCellContentComment.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + + if (JSON.isInstanceOf(UnparsedObject.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + throw new RuntimeException("Invalid instance type. Must be TimelineCellContentComment"); + } + + /** + * Get the actual instance, which can be the following: TimelineCellContentComment + * + * @return The actual instance (TimelineCellContentComment) + */ + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `TimelineCellContentComment`. If the actual instance is not + * `TimelineCellContentComment`, the ClassCastException will be thrown. + * + * @return The actual instance of `TimelineCellContentComment` + * @throws ClassCastException if the instance is not `TimelineCellContentComment` + */ + public TimelineCellContentComment getTimelineCellContentComment() throws ClassCastException { + return (TimelineCellContentComment) super.getActualInstance(); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/TimelineCellContentComment.java b/src/main/java/com/datadog/api/client/v2/model/TimelineCellContentComment.java new file mode 100644 index 00000000000..5748841aeac --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/TimelineCellContentComment.java @@ -0,0 +1,136 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** comment content */ +@JsonPropertyOrder({TimelineCellContentComment.JSON_PROPERTY_MESSAGE}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class TimelineCellContentComment { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_MESSAGE = "message"; + private String message; + + public TimelineCellContentComment message(String message) { + this.message = message; + return this; + } + + /** + * comment message + * + * @return message + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_MESSAGE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return TimelineCellContentComment + */ + @JsonAnySetter + public TimelineCellContentComment putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this TimelineCellContentComment object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimelineCellContentComment timelineCellContentComment = (TimelineCellContentComment) o; + return Objects.equals(this.message, timelineCellContentComment.message) + && Objects.equals( + this.additionalProperties, timelineCellContentComment.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(message, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TimelineCellContentComment {\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/TimelineCellResource.java b/src/main/java/com/datadog/api/client/v2/model/TimelineCellResource.java new file mode 100644 index 00000000000..8384d21b7e5 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/TimelineCellResource.java @@ -0,0 +1,208 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Timeline cell JSON:API resource */ +@JsonPropertyOrder({ + TimelineCellResource.JSON_PROPERTY_ATTRIBUTES, + TimelineCellResource.JSON_PROPERTY_ID, + TimelineCellResource.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class TimelineCellResource { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private TimelineCell attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private TimelineCellResourceType type = TimelineCellResourceType.TIMELINE_CELL; + + public TimelineCellResource() {} + + @JsonCreator + public TimelineCellResource( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) TimelineCell attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) TimelineCellResourceType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public TimelineCellResource attributes(TimelineCell attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * timeline cell + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public TimelineCell getAttributes() { + return attributes; + } + + public void setAttributes(TimelineCell attributes) { + this.attributes = attributes; + } + + public TimelineCellResource id(String id) { + this.id = id; + return this; + } + + /** + * Timeline cell's identifier + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public TimelineCellResource type(TimelineCellResourceType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Timeline cell JSON:API resource type + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public TimelineCellResourceType getType() { + return type; + } + + public void setType(TimelineCellResourceType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return TimelineCellResource + */ + @JsonAnySetter + public TimelineCellResource putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this TimelineCellResource object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimelineCellResource timelineCellResource = (TimelineCellResource) o; + return Objects.equals(this.attributes, timelineCellResource.attributes) + && Objects.equals(this.id, timelineCellResource.id) + && Objects.equals(this.type, timelineCellResource.type) + && Objects.equals(this.additionalProperties, timelineCellResource.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TimelineCellResource {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/TimelineCellResourceType.java b/src/main/java/com/datadog/api/client/v2/model/TimelineCellResourceType.java new file mode 100644 index 00000000000..eec695ab70a --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/TimelineCellResourceType.java @@ -0,0 +1,57 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Timeline cell JSON:API resource type */ +@JsonSerialize(using = TimelineCellResourceType.TimelineCellResourceTypeSerializer.class) +public class TimelineCellResourceType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("timeline_cell")); + + public static final TimelineCellResourceType TIMELINE_CELL = + new TimelineCellResourceType("timeline_cell"); + + TimelineCellResourceType(String value) { + super(value, allowedValues); + } + + public static class TimelineCellResourceTypeSerializer + extends StdSerializer { + public TimelineCellResourceTypeSerializer(Class t) { + super(t); + } + + public TimelineCellResourceTypeSerializer() { + this(null); + } + + @Override + public void serialize( + TimelineCellResourceType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static TimelineCellResourceType fromValue(String value) { + return new TimelineCellResourceType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/TimelineCellType.java b/src/main/java/com/datadog/api/client/v2/model/TimelineCellType.java new file mode 100644 index 00000000000..4b0ee5d84a5 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/TimelineCellType.java @@ -0,0 +1,53 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Timeline cell content type */ +@JsonSerialize(using = TimelineCellType.TimelineCellTypeSerializer.class) +public class TimelineCellType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("COMMENT")); + + public static final TimelineCellType COMMENT = new TimelineCellType("COMMENT"); + + TimelineCellType(String value) { + super(value, allowedValues); + } + + public static class TimelineCellTypeSerializer extends StdSerializer { + public TimelineCellTypeSerializer(Class t) { + super(t); + } + + public TimelineCellTypeSerializer() { + this(null); + } + + @Override + public void serialize(TimelineCellType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static TimelineCellType fromValue(String value) { + return new TimelineCellType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/TimelineResponse.java b/src/main/java/com/datadog/api/client/v2/model/TimelineResponse.java new file mode 100644 index 00000000000..f9066ca42e3 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/TimelineResponse.java @@ -0,0 +1,149 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Timeline response */ +@JsonPropertyOrder({TimelineResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class TimelineResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = null; + + public TimelineResponse data(List data) { + this.data = data; + for (TimelineCellResource item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public TimelineResponse addDataItem(TimelineCellResource dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * The TimelineResponse data. + * + * @return data + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return TimelineResponse + */ + @JsonAnySetter + public TimelineResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this TimelineResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TimelineResponse timelineResponse = (TimelineResponse) o; + return Objects.equals(this.data, timelineResponse.data) + && Objects.equals(this.additionalProperties, timelineResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TimelineResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/test/resources/cassettes/features/v2/Archive_case_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Archive_case_returns_Bad_Request_response.freeze index 081a252daba..586a14bae6e 100644 --- a/src/test/resources/cassettes/features/v2/Archive_case_returns_Bad_Request_response.freeze +++ b/src/test/resources/cassettes/features/v2/Archive_case_returns_Bad_Request_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:40.919Z \ No newline at end of file +2025-10-01T12:46:29.817Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Archive_case_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Archive_case_returns_Bad_Request_response.json index 2ceb9bc6b02..559428de639 100644 --- a/src/test/resources/cassettes/features/v2/Archive_case_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Archive_case_returns_Bad_Request_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}" + "json": "{\"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": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"3601878d-b851-43b6-900f-0deb35e536d7\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:30.261735Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"3601878d-b851-43b6-900f-0deb35e536d7\",\"key\":\"DDFC-82968\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83056\",\"status\":\"OPEN\",\"status_name\":\"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" @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "0a6534d0-42f2-5075-64f8-7ab28f449a8e" + "id": "79babc38-7a70-5347-c8a6-73b0e70145ea" }, { "httpRequest": { @@ -37,7 +37,7 @@ }, "headers": {}, "method": "POST", - "path": "/api/v2/cases/6706fe66-cabd-4b22-b4c5-dd478bba421a/archive", + "path": "/api/v2/cases/3601878d-b851-43b6-900f-0deb35e536d7/archive", "keepAlive": false, "secure": true }, @@ -57,6 +57,6 @@ "timeToLive": { "unlimited": true }, - "id": "75643134-d0d3-2339-03bf-06a1fd35338d" + "id": "e1a10cf1-3e3c-c706-790a-1973ce7c87c7" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Archive_case_returns_Not_Found_response.freeze b/src/test/resources/cassettes/features/v2/Archive_case_returns_Not_Found_response.freeze index 59cf7189dfa..df0d34f0c4e 100644 --- a/src/test/resources/cassettes/features/v2/Archive_case_returns_Not_Found_response.freeze +++ b/src/test/resources/cassettes/features/v2/Archive_case_returns_Not_Found_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:41.730Z \ No newline at end of file +2025-10-01T12:46:30.876Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Archive_case_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Archive_case_returns_OK_response.freeze index 57508d48548..12270626115 100644 --- a/src/test/resources/cassettes/features/v2/Archive_case_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/Archive_case_returns_OK_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:42.155Z \ No newline at end of file +2025-10-01T12:46:31.029Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Archive_case_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Archive_case_returns_OK_response.json index a541533896d..129c2364491 100644 --- a/src/test/resources/cassettes/features/v2/Archive_case_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Archive_case_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}" + "json": "{\"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": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"b5cf9b44-cb77-4487-a436-0e3ef4e88d49\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:31.456149Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"b5cf9b44-cb77-4487-a436-0e3ef4e88d49\",\"key\":\"DDFC-82969\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83057\",\"status\":\"OPEN\",\"status_name\":\"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" @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "0a6534d0-42f2-5075-64f8-7ab28f449a93" + "id": "79babc38-7a70-5347-c8a6-73b0e70145f0" }, { "httpRequest": { @@ -37,12 +37,12 @@ }, "headers": {}, "method": "POST", - "path": "/api/v2/cases/b074b409-24f8-42ae-b545-b1486429630d/archive", + "path": "/api/v2/cases/b5cf9b44-cb77-4487-a436-0e3ef4e88d49/archive", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"b5cf9b44-cb77-4487-a436-0e3ef4e88d49\",\"type\":\"case\",\"attributes\":{\"archived_at\":\"2025-10-01T12:46:31.920596976Z\",\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:31.456149Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"b5cf9b44-cb77-4487-a436-0e3ef4e88d49\",\"key\":\"DDFC-82969\",\"merge_status\":\"NOT_MERGED\",\"modified_at\":\"2025-10-01T12:46:31.920597Z\",\"priority\":\"P4\",\"public_id\":\"83057\",\"status\":\"OPEN\",\"status_name\":\"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" @@ -57,6 +57,6 @@ "timeToLive": { "unlimited": true }, - "id": "f102e988-9a3b-0592-a1d5-f6e9c4d2deb8" + "id": "57529eb3-3888-9ea0-582e-398aac78c8cc" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Assign_case_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Assign_case_returns_Bad_Request_response.freeze index 7decaaaea4b..ea5b97b0a6d 100644 --- a/src/test/resources/cassettes/features/v2/Assign_case_returns_Bad_Request_response.freeze +++ b/src/test/resources/cassettes/features/v2/Assign_case_returns_Bad_Request_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:43.015Z \ No newline at end of file +2025-10-01T12:46:31.968Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Assign_case_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Assign_case_returns_Bad_Request_response.json index 99a9b106623..244a30dd57f 100644 --- a/src/test/resources/cassettes/features/v2/Assign_case_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Assign_case_returns_Bad_Request_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}" + "json": "{\"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": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"1beeecc8-5c4f-4194-a785-e5c60234e263\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:32.453117Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"1beeecc8-5c4f-4194-a785-e5c60234e263\",\"key\":\"DDFC-82970\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83058\",\"status\":\"OPEN\",\"status_name\":\"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" @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "0a6534d0-42f2-5075-64f8-7ab28f449a94" + "id": "79babc38-7a70-5347-c8a6-73b0e70145f2" }, { "httpRequest": { @@ -37,7 +37,7 @@ }, "headers": {}, "method": "POST", - "path": "/api/v2/cases/510b0121-1477-43c0-8986-78f011016d48/assign", + "path": "/api/v2/cases/1beeecc8-5c4f-4194-a785-e5c60234e263/assign", "keepAlive": false, "secure": true }, @@ -57,6 +57,6 @@ "timeToLive": { "unlimited": true }, - "id": "389b3a16-ce31-21bf-75a0-da30a1d8d867" + "id": "30bda267-2a5e-f496-0edc-0461cb732a9b" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Assign_case_returns_Not_Found_response.freeze b/src/test/resources/cassettes/features/v2/Assign_case_returns_Not_Found_response.freeze index 067940f74d7..db07d6fb575 100644 --- a/src/test/resources/cassettes/features/v2/Assign_case_returns_Not_Found_response.freeze +++ b/src/test/resources/cassettes/features/v2/Assign_case_returns_Not_Found_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:43.820Z \ No newline at end of file +2025-10-01T12:46:32.968Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Assign_case_returns_Not_Found_response.json b/src/test/resources/cassettes/features/v2/Assign_case_returns_Not_Found_response.json index ed497e5b400..f51e1246651 100644 --- a/src/test/resources/cassettes/features/v2/Assign_case_returns_Not_Found_response.json +++ b/src/test/resources/cassettes/features/v2/Assign_case_returns_Not_Found_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"email\":\"Test-Assign_case_returns_Not_Found_response-1753105963@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}" + "json": "{\"data\":{\"attributes\":{\"email\":\"Test-Assign_case_returns_Not_Found_response-1759322792@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}}}}\n", + "body": "{\"data\":{\"type\":\"users\",\"id\":\"a906fadf-9ec4-11f0-8e55-4666095c4509\",\"attributes\":{\"name\":null,\"handle\":\"test-assign_case_returns_not_found_response-1759322792@datadoghq.com\",\"created_at\":\"2025-10-01T12:46:33.507125+00:00\",\"modified_at\":\"2025-10-01T12:46:33.507125+00:00\",\"email\":\"test-assign_case_returns_not_found_response-1759322792@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/4d05db0354c1408750042bd62d0f0663?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\"}}}}}\n", "headers": { "Content-Type": [ "application/json" @@ -27,13 +27,13 @@ "timeToLive": { "unlimited": true }, - "id": "3a6509b8-912e-674e-1435-d921d51c7b19" + "id": "27bfb8aa-e9d8-b7af-12f9-6d8800aecba3" }, { "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"assignee_id\":\"fa033cd0-6639-11f0-b658-96290b93dbfc\"},\"type\":\"case\"}}" + "json": "{\"data\":{\"attributes\":{\"assignee_id\":\"a906fadf-9ec4-11f0-8e55-4666095c4509\"},\"type\":\"case\"}}" }, "headers": {}, "method": "POST", @@ -57,13 +57,13 @@ "timeToLive": { "unlimited": true }, - "id": "2fc59d78-30ab-c6f2-3dfd-fc7e3227a10f" + "id": "ecabd163-f51a-4fa1-3ba2-4c47b8d91a58" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/users/fa033cd0-6639-11f0-b658-96290b93dbfc", + "path": "/api/v2/users/a906fadf-9ec4-11f0-8e55-4666095c4509", "keepAlive": false, "secure": true }, @@ -78,6 +78,6 @@ "timeToLive": { "unlimited": true }, - "id": "13e04c01-3bdd-3931-4e4a-143c5dc2c240" + "id": "430f0781-8f29-e557-aefa-cafea724d7c5" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Assign_case_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Assign_case_returns_OK_response.freeze index 4e634aa5c58..791da7476a0 100644 --- a/src/test/resources/cassettes/features/v2/Assign_case_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/Assign_case_returns_OK_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:45.309Z \ No newline at end of file +2025-10-01T12:46:34.590Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Assign_case_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Assign_case_returns_OK_response.json index d362d500209..075165fbc98 100644 --- a/src/test/resources/cassettes/features/v2/Assign_case_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Assign_case_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}" + "json": "{\"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": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"3266bb95-e129-4377-a6a1-16cbd3e07395\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:35.065341Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"3266bb95-e129-4377-a6a1-16cbd3e07395\",\"key\":\"DDFC-82971\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83059\",\"status\":\"OPEN\",\"status_name\":\"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" @@ -27,13 +27,13 @@ "timeToLive": { "unlimited": true }, - "id": "0a6534d0-42f2-5075-64f8-7ab28f449a9a" + "id": "79babc38-7a70-5347-c8a6-73b0e70145fd" }, { "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"email\":\"Test-Assign_case_returns_OK_response-1753105965@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}" + "json": "{\"data\":{\"attributes\":{\"email\":\"Test-Assign_case_returns_OK_response-1759322794@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}" }, "headers": {}, "method": "POST", @@ -42,7 +42,7 @@ "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}}}}\n", + "body": "{\"data\":{\"type\":\"users\",\"id\":\"aa4556b9-9ec4-11f0-8e55-4666095c4509\",\"attributes\":{\"name\":null,\"handle\":\"test-assign_case_returns_ok_response-1759322794@datadoghq.com\",\"created_at\":\"2025-10-01T12:46:35.593518+00:00\",\"modified_at\":\"2025-10-01T12:46:35.593518+00:00\",\"email\":\"test-assign_case_returns_ok_response-1759322794@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/0b128b1184e8a9942ff24d7a55b04d84?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\"}}}}}\n", "headers": { "Content-Type": [ "application/json" @@ -57,22 +57,22 @@ "timeToLive": { "unlimited": true }, - "id": "1c46448e-7d25-abe9-27a6-cc18e2daee88" + "id": "4b743354-44f9-b130-5659-6ada19cf5360" }, { "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"assignee_id\":\"fb218c6d-6639-11f0-a2d3-1a819e56f795\"},\"type\":\"case\"}}" + "json": "{\"data\":{\"attributes\":{\"assignee_id\":\"aa4556b9-9ec4-11f0-8e55-4666095c4509\"},\"type\":\"case\"}}" }, "headers": {}, "method": "POST", - "path": "/api/v2/cases/fd1228dc-d475-4a0b-8677-7a9ce3b50b3d/assign", + "path": "/api/v2/cases/3266bb95-e129-4377-a6a1-16cbd3e07395/assign", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"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\":\"\"}}]}", + "body": "{\"data\":{\"id\":\"3266bb95-e129-4377-a6a1-16cbd3e07395\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:35.065341Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"3266bb95-e129-4377-a6a1-16cbd3e07395\",\"key\":\"DDFC-82971\",\"merge_status\":\"NOT_MERGED\",\"modified_at\":\"2025-10-01T12:46:36.127269Z\",\"priority\":\"P4\",\"public_id\":\"83059\",\"status\":\"OPEN\",\"status_name\":\"Open\",\"title\":\"My new case\",\"type\":\"STANDARD\",\"type_id\":\"00000000-0000-0000-0000-000000000001\"},\"relationships\":{\"assignee\":{\"data\":{\"id\":\"aa4556b9-9ec4-11f0-8e55-4666095c4509\",\"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\":\"aa4556b9-9ec4-11f0-8e55-4666095c4509\",\"type\":\"user\",\"attributes\":{\"active\":false,\"email\":\"test-assign_case_returns_ok_response-1759322794@datadoghq.com\",\"handle\":\"test-assign_case_returns_ok_response-1759322794@datadoghq.com\",\"name\":\"\"}}]}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -87,13 +87,13 @@ "timeToLive": { "unlimited": true }, - "id": "4ccb70fc-741d-3b01-ad3f-a75043756876" + "id": "13bc6938-d07a-ad87-fcb8-ea5ff6f91d23" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/users/fb218c6d-6639-11f0-a2d3-1a819e56f795", + "path": "/api/v2/users/aa4556b9-9ec4-11f0-8e55-4666095c4509", "keepAlive": false, "secure": true }, @@ -108,6 +108,6 @@ "timeToLive": { "unlimited": true }, - "id": "e845491b-aa68-cb59-40d8-6d0133e35e2a" + "id": "ce688cf4-a7e2-c67b-c28a-6c0b211f2d33" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Comment_case_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Comment_case_returns_Bad_Request_response.freeze new file mode 100644 index 00000000000..bea3893eb21 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Comment_case_returns_Bad_Request_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:46:36.797Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Comment_case_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Comment_case_returns_Bad_Request_response.json new file mode 100644 index 00000000000..e7fba0da841 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Comment_case_returns_Bad_Request_response.json @@ -0,0 +1,62 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"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": {}, + "method": "POST", + "path": "/api/v2/cases", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"5ce18aba-c435-4b23-9818-bf79e97dcc66\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:37.280816Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"5ce18aba-c435-4b23-9818-bf79e97dcc66\",\"key\":\"DDFC-82972\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83060\",\"status\":\"OPEN\",\"status_name\":\"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" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "79babc38-7a70-5347-c8a6-73b0e70145f3" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"comment\":\"\"},\"type\":\"case\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/5ce18aba-c435-4b23-9818-bf79e97dcc66/comment", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"errors\":[{\"status\":\"400\",\"title\":\"Bad Request\"}]}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 400, + "reasonPhrase": "Bad Request" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "565c699f-09b1-73bd-c8fa-7550bcbc4135" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Comment_case_returns_Not_Found_response.freeze b/src/test/resources/cassettes/features/v2/Comment_case_returns_Not_Found_response.freeze new file mode 100644 index 00000000000..255f9d3d9c0 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Comment_case_returns_Not_Found_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:46:37.749Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Comment_case_returns_Not_Found_response.json b/src/test/resources/cassettes/features/v2/Comment_case_returns_Not_Found_response.json new file mode 100644 index 00000000000..631da176003 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Comment_case_returns_Not_Found_response.json @@ -0,0 +1,32 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"comment\":\"Hello world !\"},\"type\":\"case\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/67d80aa3-36ff-44b9-a694-c501a7591737/comment", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"errors\":[{\"code\":\"resource_not_found\",\"title\":\"case not found\"}]}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 404, + "reasonPhrase": "Not Found" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "880d2358-dcbd-ddea-2416-553756adc9c8" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Comment_case_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Comment_case_returns_OK_response.freeze new file mode 100644 index 00000000000..654ac6feecc --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Comment_case_returns_OK_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:46:38.181Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Comment_case_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Comment_case_returns_OK_response.json new file mode 100644 index 00000000000..b8a295d04c6 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Comment_case_returns_OK_response.json @@ -0,0 +1,62 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"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": {}, + "method": "POST", + "path": "/api/v2/cases", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"1e943f20-0e96-4833-bc3f-728b8991d32e\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:38.628783Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"1e943f20-0e96-4833-bc3f-728b8991d32e\",\"key\":\"DDFC-82973\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83061\",\"status\":\"OPEN\",\"status_name\":\"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" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "79babc38-7a70-5347-c8a6-73b0e70145ed" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"comment\":\"Hello World !\"},\"type\":\"case\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/1e943f20-0e96-4833-bc3f-728b8991d32e/comment", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":[{\"id\":\"d18d2a69-215e-40e6-a186-445ac1291dee\",\"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-10-01T12:46:39.051704699Z\",\"type\":\"COMMENT\"}}]}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "44eb7d93-b01e-d6bc-e444-07428474e0a3" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_a_case_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Create_a_case_returns_Bad_Request_response.freeze index 4494f306b1b..bc84c11affb 100644 --- a/src/test/resources/cassettes/features/v2/Create_a_case_returns_Bad_Request_response.freeze +++ b/src/test/resources/cassettes/features/v2/Create_a_case_returns_Bad_Request_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:47.155Z \ No newline at end of file +2025-10-01T12:46:39.097Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_a_case_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Create_a_case_returns_Bad_Request_response.json index 06ec1cdb1ea..6934e5c7742 100644 --- a/src/test/resources/cassettes/features/v2/Create_a_case_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Create_a_case_returns_Bad_Request_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"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\"}}" + "json": "{\"data\":{\"attributes\":{\"priority\":\"NOT_DEFINED\",\"title\":\"Security breach investigation\",\"type_id\":\"00000000-0000-0000-0000-000000000001\"},\"relationships\":{\"assignee\":{\"data\":{\"id\":\"e555e290-ed65-49bd-ae18-8acbfcf18db7\",\"type\":\"userx\"}},\"project\":{\"data\":{\"id\":\"e555e290-ed65-49bd-ae18-8acbfcf18db7\",\"type\":\"project\"}}},\"type\":\"case\"}}" }, "headers": {}, "method": "POST", @@ -27,6 +27,6 @@ "timeToLive": { "unlimited": true }, - "id": "c53a0d91-6308-6fd6-b142-d95814505a59" + "id": "53d9f927-59e0-6113-1ac1-ba5e54485190" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_a_case_returns_CREATED_response.freeze b/src/test/resources/cassettes/features/v2/Create_a_case_returns_CREATED_response.freeze index c1e8fb0c3bf..8fe8003a09d 100644 --- a/src/test/resources/cassettes/features/v2/Create_a_case_returns_CREATED_response.freeze +++ b/src/test/resources/cassettes/features/v2/Create_a_case_returns_CREATED_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:47.527Z \ No newline at end of file +2025-10-01T12:46:39.524Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_a_case_returns_CREATED_response.json b/src/test/resources/cassettes/features/v2/Create_a_case_returns_CREATED_response.json index 5d05eb38fc8..a5a579f21a3 100644 --- a/src/test/resources/cassettes/features/v2/Create_a_case_returns_CREATED_response.json +++ b/src/test/resources/cassettes/features/v2/Create_a_case_returns_CREATED_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"email\":\"Test-Create_a_case_returns_CREATED_response-1753105967@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}" + "json": "{\"data\":{\"attributes\":{\"email\":\"Test-Create_a_case_returns_CREATED_response-1759322799@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}}}}\n", + "body": "{\"data\":{\"type\":\"users\",\"id\":\"ace4fe48-9ec4-11f0-988b-7627cf2efb1e\",\"attributes\":{\"name\":null,\"handle\":\"test-create_a_case_returns_created_response-1759322799@datadoghq.com\",\"created_at\":\"2025-10-01T12:46:39.995279+00:00\",\"modified_at\":\"2025-10-01T12:46:39.995279+00:00\",\"email\":\"test-create_a_case_returns_created_response-1759322799@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/a3dcdca0c5122ad399c31e6815d86aef?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\"}}}}}\n", "headers": { "Content-Type": [ "application/json" @@ -27,13 +27,13 @@ "timeToLive": { "unlimited": true }, - "id": "c041f86f-bb92-fed5-164f-2b8e519f13ab" + "id": "379ed071-c7a1-d911-3ecb-1ff0d7bea917" }, { "httpRequest": { "body": { "type": "JSON", - "json": "{\"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\"}}" + "json": "{\"data\":{\"attributes\":{\"priority\":\"NOT_DEFINED\",\"title\":\"Security breach investigation in 6667abc22c9b9dc7\",\"type_id\":\"00000000-0000-0000-0000-000000000001\"},\"relationships\":{\"assignee\":{\"data\":{\"id\":\"ace4fe48-9ec4-11f0-988b-7627cf2efb1e\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}" }, "headers": {}, "method": "POST", @@ -42,7 +42,7 @@ "secure": true }, "httpResponse": { - "body": "{\"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\":\"\"}}]}", + "body": "{\"data\":{\"id\":\"58b1c40f-26af-4aed-84bf-6008b6f16d91\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:40.526592Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"58b1c40f-26af-4aed-84bf-6008b6f16d91\",\"key\":\"DDFC-82974\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"NOT_DEFINED\",\"public_id\":\"83062\",\"status\":\"OPEN\",\"status_name\":\"Open\",\"title\":\"Security breach investigation in 6667abc22c9b9dc7\",\"type\":\"STANDARD\",\"type_id\":\"00000000-0000-0000-0000-000000000001\"},\"relationships\":{\"assignee\":{\"data\":{\"id\":\"ace4fe48-9ec4-11f0-988b-7627cf2efb1e\",\"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\":\"ace4fe48-9ec4-11f0-988b-7627cf2efb1e\",\"type\":\"user\",\"attributes\":{\"active\":false,\"email\":\"test-create_a_case_returns_created_response-1759322799@datadoghq.com\",\"handle\":\"test-create_a_case_returns_created_response-1759322799@datadoghq.com\",\"name\":\"\"}}]}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -57,13 +57,13 @@ "timeToLive": { "unlimited": true }, - "id": "cd1eb429-0366-5851-7b6b-147e02d981e7" + "id": "9024f513-4185-843c-8c3e-80cb9d6fed3b" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/users/fc35a29f-6639-11f0-8bee-a24ce66fd256", + "path": "/api/v2/users/ace4fe48-9ec4-11f0-988b-7627cf2efb1e", "keepAlive": false, "secure": true }, @@ -78,6 +78,6 @@ "timeToLive": { "unlimited": true }, - "id": "84e4feda-c559-f349-d177-1d8c606e81fb" + "id": "1844c6a8-9800-0799-91a9-07cc8d1c159c" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_a_case_returns_Not_Found_response.freeze b/src/test/resources/cassettes/features/v2/Create_a_case_returns_Not_Found_response.freeze new file mode 100644 index 00000000000..a89b60caf5e --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Create_a_case_returns_Not_Found_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:46:41.174Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_a_case_returns_Not_Found_response.json b/src/test/resources/cassettes/features/v2/Create_a_case_returns_Not_Found_response.json new file mode 100644 index 00000000000..6c09d1c92b1 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Create_a_case_returns_Not_Found_response.json @@ -0,0 +1,32 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"priority\":\"NOT_DEFINED\",\"title\":\"Security breach investigation\",\"type_id\":\"00000000-0000-0000-0000-000000000001\"},\"relationships\":{\"assignee\":{\"data\":{\"id\":\"721074c8-63df-4d8f-a43d-ab41dd24ec35\",\"type\":\"user\"}},\"project\":{\"data\":{\"id\":\"721074c8-63df-4d8f-a43d-ab41dd24ec35\",\"type\":\"project\"}}},\"type\":\"case\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"errors\":[{\"code\":\"resource_not_found\",\"title\":\"project not found\"}]}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 404, + "reasonPhrase": "Not Found" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "592a4a0e-3f30-cc8a-ae6f-a53a79b0595a" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_a_case_type_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Create_a_case_type_returns_Bad_Request_response.freeze new file mode 100644 index 00000000000..d35cc73198d --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Create_a_case_type_returns_Bad_Request_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:50:35.054Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_a_case_type_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Create_a_case_type_returns_Bad_Request_response.json new file mode 100644 index 00000000000..31877ee540a --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Create_a_case_type_returns_Bad_Request_response.json @@ -0,0 +1,32 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"description\":\"Investigations done in case management\",\"emoji\":\"notanemoji\",\"name\":\"Investigation\"},\"type\":\"case_type\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/types", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"errors\":[{\"status\":\"400\",\"title\":\"Bad Request\"}]}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 400, + "reasonPhrase": "Bad Request" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "5bab3f95-66b1-499d-a89c-b11b6fdd5570" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_a_case_type_returns_CREATED_response.freeze b/src/test/resources/cassettes/features/v2/Create_a_case_type_returns_CREATED_response.freeze new file mode 100644 index 00000000000..cc86c25c8c1 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Create_a_case_type_returns_CREATED_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:50:35.961Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_a_case_type_returns_CREATED_response.json b/src/test/resources/cassettes/features/v2/Create_a_case_type_returns_CREATED_response.json new file mode 100644 index 00000000000..e00a4becd73 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Create_a_case_type_returns_CREATED_response.json @@ -0,0 +1,32 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"description\":\"Investigations done in case management\",\"emoji\":\"\ud83d\udc51\",\"name\":\"Investigation\"},\"type\":\"case_type\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/types", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"e3cb41d0-cd05-4c9d-8158-fc044587487f\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Investigations done in case management\",\"emoji\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "28a9041b-1142-bed5-dadf-ea904b8411ae" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_Bad_Request_response.freeze new file mode 100644 index 00000000000..2d6e5a6e94b --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_Bad_Request_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:50:11.446Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_Bad_Request_response.json new file mode 100644 index 00000000000..c312b3face8 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_Bad_Request_response.json @@ -0,0 +1,62 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"name\":\"World\"},\"type\":\"case_type\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/types", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"a52ea7e5-7cdf-4414-a585-63e58d3dc7a0\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "dc45fc73-0f09-c12d-941b-eaf799af6466" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"display_name\":\"AWS Region 17593230-0000-0000-0000-175932301100\",\"is_multi\":true,\"key\":\"region_4fd8eeb20ad8f927\",\"type\":\"FLOAT\"},\"type\":\"custom_attribute\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/types/a52ea7e5-7cdf-4414-a585-63e58d3dc7a0/custom_attributes", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"errors\":[{\"status\":\"400\",\"title\":\"Bad Request\"}]}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 400, + "reasonPhrase": "Bad Request" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "4126a24e-c727-68f9-00a4-f66380b3d6e0" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_CREATED_response.freeze b/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_CREATED_response.freeze new file mode 100644 index 00000000000..af7454d52ba --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_CREATED_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:50:12.380Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_CREATED_response.json b/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_CREATED_response.json new file mode 100644 index 00000000000..2ce378fae66 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_CREATED_response.json @@ -0,0 +1,62 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"name\":\"World\"},\"type\":\"case_type\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/types", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"d6472e40-180e-4f7f-bdc0-9c8a749da7ee\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "dc45fc73-0f09-c12d-941b-eaf799af646a" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"display_name\":\"AWS Region 17593230-0000-0000-0000-175932301200\",\"is_multi\":true,\"key\":\"region_34a76e3ae14c4076\",\"type\":\"NUMBER\"},\"type\":\"custom_attribute\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/types/d6472e40-180e-4f7f-bdc0-9c8a749da7ee/custom_attributes", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"d57aff81-87df-478e-af85-9553e0a5d221\",\"type\":\"custom_attribute\",\"attributes\":{\"case_type\":\"TUNKNOWN\",\"case_type_id\":\"d6472e40-180e-4f7f-bdc0-9c8a749da7ee\",\"display_name\":\"AWS Region 17593230-0000-0000-0000-175932301200\",\"is_multi\":true,\"key\":\"region_34a76e3ae14c4076\",\"type\":\"NUMBER\"}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "35d5b048-4c61-3eab-3d42-d3d69f7f85f3" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_Not_Found_response.freeze b/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_Not_Found_response.freeze new file mode 100644 index 00000000000..191d7b314ea --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_Not_Found_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:50:12.967Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_Not_Found_response.json b/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_Not_Found_response.json new file mode 100644 index 00000000000..143a346faba --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_Not_Found_response.json @@ -0,0 +1,32 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"display_name\":\"AWS Region 79eef6c4d883c2c5\",\"is_multi\":true,\"key\":\"region_79eef6c4d883c2c5\",\"type\":\"NUMBER\"},\"type\":\"custom_attribute\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/types/9fd476d7-a955-454a-851d-980c655c02d3/custom_attributes", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"errors\":[{\"code\":\"resource_not_found\",\"title\":\"case_type not found\"}]}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 404, + "reasonPhrase": "Not Found" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "d7bfcfc8-6553-57fd-dded-441b6392e705" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_NotContent_response.freeze b/src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_NotContent_response.freeze new file mode 100644 index 00000000000..67d3184573c --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_NotContent_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:50:36.464Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_NotContent_response.json b/src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_NotContent_response.json new file mode 100644 index 00000000000..423beb9380f --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_NotContent_response.json @@ -0,0 +1,53 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"name\":\"World\"},\"type\":\"case_type\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/types", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"f580bda9-aed7-49b6-ad70-5707d1c183fa\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "dc45fc73-0f09-c12d-941b-eaf799af6461" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/cases/types/f580bda9-aed7-49b6-ad70-5707d1c183fa", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "headers": {}, + "statusCode": 204, + "reasonPhrase": "No Content" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "8dc28aee-8623-d4cd-9b74-999eff067451" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_OK_response.freeze new file mode 100644 index 00000000000..4ca9e03b09e --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_OK_response.freeze @@ -0,0 +1 @@ +2025-08-19T18:29:15.696Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_OK_response.json new file mode 100644 index 00000000000..d44f28ca671 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_OK_response.json @@ -0,0 +1,74 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"name\":\"World\"},\"type\":\"case_type\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/types", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"08c89b77-5c9d-4f4f-8d0f-fe6d36351539\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"name\":\"World\"}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "dc45fc73-0f09-c12d-941b-eaf799af6462" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/cases/types/08c89b77-5c9d-4f4f-8d0f-fe6d36351539", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "headers": {}, + "statusCode": 204, + "reasonPhrase": "No Content" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "e1d14add-9dc1-1a58-dd34-8b8718d53f2f" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/cases/types/08c89b77-5c9d-4f4f-8d0f-fe6d36351539", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "headers": {}, + "statusCode": 204, + "reasonPhrase": "No Content" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "e1d14add-9dc1-1a58-dd34-8b8718d53f30" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Bad_Request_response.freeze new file mode 100644 index 00000000000..f373662bda6 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Bad_Request_response.freeze @@ -0,0 +1 @@ +2025-08-21T12:21:38.654Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Bad_Request_response.json new file mode 100644 index 00000000000..a9b1b0a59f2 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Bad_Request_response.json @@ -0,0 +1,58 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"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": {}, + "method": "POST", + "path": "/api/v2/cases", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"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" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "79babc38-7a70-5347-c8a6-73b0e70145ff" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/cases/b17ef97a-c38f-4b67-91a6-546a0a3da4d3/comment/not-an-uuid", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"errors\":[{\"status\":\"400\",\"title\":\"Invalid Parameter\",\"detail\":\"invalid parameter \\\"CommentID\\\" in \\\"path\\\"; expected type \\\"uuid\\\"\"}]}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 400, + "reasonPhrase": "Bad Request" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "0d109e78-76b0-a1bd-29e9-91aec50d6e3b" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_No_Content_response.freeze b/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_No_Content_response.freeze new file mode 100644 index 00000000000..72e5af03f17 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_No_Content_response.freeze @@ -0,0 +1 @@ +2025-08-21T12:21:39.426Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_No_Content_response.json b/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_No_Content_response.json new file mode 100644 index 00000000000..329ab257b1d --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_No_Content_response.json @@ -0,0 +1,109 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"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": {}, + "method": "POST", + "path": "/api/v2/cases", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"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" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "79babc38-7a70-5347-c8a6-73b0e70145f6" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"comment\":\"This is my new comment !\"},\"type\":\"case\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/ba3da7da-9df1-4b1d-82be-e7d3d8ee865f/comment", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"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" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "d5077314-a760-7c70-1fcd-bacbb8044b97" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/cases/ba3da7da-9df1-4b1d-82be-e7d3d8ee865f/comment/bd8ee088-15bc-43a1-bc95-92e365b71459", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "headers": {}, + "statusCode": 204, + "reasonPhrase": "No Content" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "6f285605-7524-df4e-04ab-8966b3eddc4a" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/cases/ba3da7da-9df1-4b1d-82be-e7d3d8ee865f/comment/bd8ee088-15bc-43a1-bc95-92e365b71459", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"errors\":[{\"code\":\"resource_not_found\",\"title\":\"timeline cell not found\"}]}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 404, + "reasonPhrase": "Not Found" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "6f285605-7524-df4e-04ab-8966b3eddc4b" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Not_Found_response.freeze b/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Not_Found_response.freeze new file mode 100644 index 00000000000..e7e401d337b --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Not_Found_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:46:41.670Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Not_Found_response.json b/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Not_Found_response.json new file mode 100644 index 00000000000..afc14299adc --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Not_Found_response.json @@ -0,0 +1,58 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"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": {}, + "method": "POST", + "path": "/api/v2/cases", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"41de4d6f-9ed2-478f-b180-3a383c14dc64\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:42.111632Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"41de4d6f-9ed2-478f-b180-3a383c14dc64\",\"key\":\"DDFC-82975\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83064\",\"status\":\"OPEN\",\"status_name\":\"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" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "79babc38-7a70-5347-c8a6-73b0e70145f5" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/cases/41de4d6f-9ed2-478f-b180-3a383c14dc64/comment/23fca2aa-4967-4936-bdd7-9157d9e456d7", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"errors\":[{\"code\":\"resource_not_found\",\"title\":\"timeline cell not found\"}]}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 404, + "reasonPhrase": "Not Found" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "c736bcd4-97f0-ef9b-9852-4bdb89d929ad" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_Not_Found_response.freeze b/src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_Not_Found_response.freeze new file mode 100644 index 00000000000..437e011d446 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_Not_Found_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:46:42.614Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_Not_Found_response.json b/src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_Not_Found_response.json new file mode 100644 index 00000000000..0c846427a6c --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_Not_Found_response.json @@ -0,0 +1,58 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"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": {}, + "method": "POST", + "path": "/api/v2/cases", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"16b310dd-5329-48c5-82fe-ccd2b39cb0e5\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:43.066117Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"16b310dd-5329-48c5-82fe-ccd2b39cb0e5\",\"key\":\"DDFC-82976\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83065\",\"status\":\"OPEN\",\"status_name\":\"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" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "79babc38-7a70-5347-c8a6-73b0e70145eb" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/cases/16b310dd-5329-48c5-82fe-ccd2b39cb0e5/custom_attributes/invalid_key", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"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" + ] + }, + "statusCode": 404, + "reasonPhrase": "Not Found" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "230dc6ce-a811-89ee-78ea-c567ccd8e048" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_OK_response.freeze new file mode 100644 index 00000000000..ec2e383177e --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_OK_response.freeze @@ -0,0 +1 @@ +2025-08-21T12:21:42.721Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_OK_response.json new file mode 100644 index 00000000000..63612794c7f --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_OK_response.json @@ -0,0 +1,139 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"name\":\"World\"},\"type\":\"case_type\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/types", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"3dd78296-b989-466d-97ef-428517d851ee\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"name\":\"World\"}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "dc45fc73-0f09-c12d-941b-eaf799af6463" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"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": {}, + "method": "POST", + "path": "/api/v2/cases/types/3dd78296-b989-466d-97ef-428517d851ee/custom_attributes", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"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" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "eed2101f-c442-228b-8e95-d4e94cd0ee5f" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"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": {}, + "method": "POST", + "path": "/api/v2/cases", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"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" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "2006258b-82c5-50f4-4e19-b5b4f4ca3f5c" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/cases/15f17d2e-4972-44d9-9f31-684f2d19a16c/custom_attributes/attribute_08d279361f9bcdbb", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"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" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "cc204f00-01c7-9cb8-606a-150e24c6ab29" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/cases/types/3dd78296-b989-466d-97ef-428517d851ee", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "headers": {}, + "statusCode": 204, + "reasonPhrase": "No Content" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "c1761595-88eb-1b82-8849-239e3345d4ae" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_Bad_Request_response.freeze new file mode 100644 index 00000000000..cbdeebeb1d6 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_Bad_Request_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:50:13.409Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_Bad_Request_response.json new file mode 100644 index 00000000000..2dc635d3a78 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_Bad_Request_response.json @@ -0,0 +1,58 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"name\":\"World\"},\"type\":\"case_type\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/types", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"3ffd2bc8-e360-40d4-8ed6-60f72161fd89\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "dc45fc73-0f09-c12d-941b-eaf799af6467" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/cases/types/3ffd2bc8-e360-40d4-8ed6-60f72161fd89/custom_attributes/not-an-uuid", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"errors\":[{\"status\":\"400\",\"title\":\"Invalid Parameter\",\"detail\":\"invalid parameter \\\"CustomAttributeId\\\" in \\\"path\\\"; expected type \\\"uuid\\\"\"}]}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 400, + "reasonPhrase": "Bad Request" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "5d2b11a3-67bc-3a6c-50b3-cd56a8525e46" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_No_Content_response.freeze b/src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_No_Content_response.freeze new file mode 100644 index 00000000000..84a97519aa2 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_No_Content_response.freeze @@ -0,0 +1 @@ +2025-08-21T12:41:46.533Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_No_Content_response.json b/src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_No_Content_response.json new file mode 100644 index 00000000000..c787f38d63d --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_No_Content_response.json @@ -0,0 +1,104 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"name\":\"World\"},\"type\":\"case_type\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/types", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"fdf93265-be3d-4a97-ae0d-540b049f7753\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"name\":\"World\"}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "dc45fc73-0f09-c12d-941b-eaf799af6469" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"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": {}, + "method": "POST", + "path": "/api/v2/cases/types/fdf93265-be3d-4a97-ae0d-540b049f7753/custom_attributes", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"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" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "28e26c7b-944d-ae65-c47f-1824e35eae3f" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/cases/types/fdf93265-be3d-4a97-ae0d-540b049f7753/custom_attributes/7ce13520-94b7-4391-bb64-c45776011f05", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "headers": {}, + "statusCode": 204, + "reasonPhrase": "No Content" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "c59c4485-0c64-b61a-4b2d-2e78befb86b4" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/cases/types/fdf93265-be3d-4a97-ae0d-540b049f7753", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "headers": {}, + "statusCode": 204, + "reasonPhrase": "No Content" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "b7827c15-7234-9f03-55e3-feef612afa7c" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_all_case_types_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Get_all_case_types_returns_OK_response.freeze new file mode 100644 index 00000000000..a9cdebec1ff --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Get_all_case_types_returns_OK_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:50:38.593Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_all_case_types_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_all_case_types_returns_OK_response.json new file mode 100644 index 00000000000..c3f2ee7e1b3 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Get_all_case_types_returns_OK_response.json @@ -0,0 +1,28 @@ +[ + { + "httpRequest": { + "headers": {}, + "method": "GET", + "path": "/api/v2/cases/types", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":[{\"id\":\"00000000-0000-0000-0000-000000000001\",\"type\":\"case_type\",\"attributes\":{\"description\":\"General tasks and investigations\",\"emoji\":\"\",\"internal\":true,\"name\":\"Standard\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"00000000-0000-0000-0000-000000000002\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Triage and investigate correlated alerts and events\",\"emoji\":\"\",\"internal\":true,\"name\":\"Event Management\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"00000000-0000-0000-0000-000000000003\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Used By Datadog Security products and for general security workflows\",\"emoji\":\"\",\"internal\":true,\"name\":\"Security\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"00000000-0000-0000-0000-000000000004\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Request and track approvals\",\"emoji\":\"\",\"internal\":true,\"name\":\"Change Request\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"Pending Approval\"},{\"name\":\"Approved\"},{\"name\":\"Implementing\"}],\"default\":\"Pending Approval\"},\"closed\":{\"status_options\":[{\"name\":\"Completed\"},{\"name\":\"Cancelled\"},{\"name\":\"Declined\"}],\"default\":\"Completed\"}}}},{\"id\":\"00000000-0000-0000-0000-000000000005\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Triage and investigate errors\",\"emoji\":\"\",\"internal\":true,\"name\":\"Error Tracking\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"38d28f4f-7ce8-4fbd-ae42-326edf758eb8\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Investigations done in case management\",\"emoji\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"b2304cb7-a65c-4f71-bb17-0800b4badb16\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Investigations done in case management\",\"emoji\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"95802802-1241-4825-835b-1c0322a7ef97\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Investigations done in case management\",\"emoji\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"1855fd31-e717-4af4-85d0-698c652ea0b6\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Investigations done in case management\",\"emoji\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"0cab85fe-12ee-423e-a86e-2363d0e6f5ac\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"5755912a-fb4b-4597-b118-1b0b40f7bb85\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T09:09:06.196109Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"7ab3b17d-a929-465f-80fa-ada92a865000\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Investigations done in case management\",\"emoji\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"7c4b1f31-e48a-49c3-bd41-4646baa16649\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T09:13:20.969149Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"09c05ec2-311a-4c36-a813-f72a4a85ec45\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Investigations done in case management\",\"emoji\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"ecea0a37-7f91-4e88-9b16-6f25cd4bdef3\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T09:15:45.46212Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"5458e2b8-7362-4b38-85b3-1ab1ea73e08f\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Investigations done in case management\",\"emoji\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"9daa0418-d01c-498a-96d2-7cfe1b2158d5\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T09:17:15.497537Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"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\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"af272a35-fa50-4619-b3df-1ee540b8586a\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T09:18:32.54125Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"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\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"c0da0f83-128b-434c-a535-b1414efab20b\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T09:22:36.72Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"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\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"933b2876-4617-4674-8ac1-64fa9fa56b87\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T18:24:38.561424Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"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\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"08c89b77-5c9d-4f4f-8d0f-fe6d36351539\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T18:29:16.570705Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"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\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"dd0ca022-0166-4012-8179-dab74b6e4946\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T18:34:52.380136Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"581f9946-2777-4ca2-98f5-839a8583507b\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:12:42.070634Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"d9a99e7c-255c-4328-b29c-249bbbce55d5\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:12:43.427514Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"05978c06-ac0e-480b-a7d5-e1a8f8fe8005\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:12:45.680688Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"ce6e2d21-6719-46d8-8639-f8a196f42678\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:25:30.303213Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"3d9d8463-80fa-4434-a9e4-5dc4f3669c4e\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:25:31.642643Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"fa261a4c-91f2-4d06-972f-a35bee0543f3\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:25:33.792069Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"1de6d896-26ac-4349-9b00-6acfe4879fda\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:37:44.971336Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"f2578542-b2b9-4180-81cf-2eec21b94af1\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:37:46.300977Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"e3c1d47a-e3ae-43ab-8181-334c3bba197e\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:37:48.496084Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"3d603ba5-4391-425b-b12c-cb6dcecc44d6\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:43:19.932314Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"29174d43-f800-4e6f-8756-bf632cd6de41\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:43:22.335462Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"f997d450-7912-4801-a26b-dde8e5ee077e\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:44:00.498935Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"94df43bd-6d07-4187-9a0a-0b8fdee7d1cc\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:44:02.704517Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"b53a3523-4a91-4a29-8634-7d10457d7922\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:46:02.69294Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"2ce0cf3d-c48e-40a2-a3c1-bd5790617e48\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:46:04.026799Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"f86f0afb-4e9d-4cd3-b72a-c62befbee6f1\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:46:05.838903Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"3d86fef6-9e70-4167-b067-4136058dac19\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:49:07.463675Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"55be152c-d505-406f-b1b6-e3ea735cbf5b\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:49:08.784736Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"b108c666-e8e9-4c4e-b912-2c12b00f4f32\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:49:10.569418Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"a706b5ab-f74e-4a11-b3a2-02eb6879241d\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:49:50.869037Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"921b1edd-bbd8-4130-8fb6-417d0be654bd\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:49:52.205117Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"27f02f54-745d-4398-a1a5-ca77708df7e1\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:49:53.955522Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"1e002aff-0037-49f2-b266-4929032860be\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:52:04.296502Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"d9c649e3-92d5-4149-8f1b-e512c466a16d\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:52:05.632924Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"07eb5ad1-bac7-4eab-9341-8edb850f1b74\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:52:07.394803Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"f15cae28-3df0-4c46-ba06-2bd1570a7f68\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:57:00.706851Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"4a252863-46c5-474a-acef-dfd42982ed68\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:57:02.039005Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"9e32b021-edaf-408e-8659-c2b850a1abf3\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:57:03.353195Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"c229eb1e-e333-4f9b-937e-5aeb78d9069f\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:58:47.224259Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"0f4d4aed-e1d3-4fec-88db-f932656653dd\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:58:48.558757Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"c5065726-f32f-4554-a819-de0362e5a773\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T19:58:50.336027Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"e2018774-4cfa-4ad6-8bd0-366479b8de8e\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:03:19.632702Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"a46e33f1-d290-4aa8-a192-b4f58e063330\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:03:20.945982Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"e935a49b-d4cf-45f3-a63d-5fc857237fbe\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:03:22.683799Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"cb091c10-d4b9-4d93-be90-3b8c1166c4e4\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:05:50.137825Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"12b06e26-8f8f-45d0-be5d-0a3c1046ebb8\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:05:51.471366Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"ada38cc4-4191-484d-bfea-604c921839f5\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:05:53.224893Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"ce15011e-b4ea-41e6-8628-4131f2773ae4\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:07:00.572959Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"a8f6af82-7364-4fa2-be63-f9d82d49f126\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:07:01.933445Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"2f08290c-c478-4c47-9f00-36973b7b021a\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:07:03.713436Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"6bdcc12d-4f8f-4b9f-b33a-645b1c1fac78\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:16:47.195594Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"d3f2e924-efb4-4fea-858a-b0a104de58f1\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:16:48.531005Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"6e204166-35d3-4150-85c9-2b3f1d6a85c5\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-19T20:16:50.266373Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"3024568e-3252-40be-b2c5-ecc1898ad815\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T09:16:27.084779Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"2b8488a4-bdab-482c-8a9c-d2a571da65a9\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T09:17:37.421421Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"f0e8ea33-8b30-47de-b9fe-f77b651381a7\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T09:20:12.422783Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"127dd6ad-3a98-4fc6-9e51-edb38b509385\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T09:20:13.955239Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"e7773938-e80d-4bbc-874f-7c655daadee8\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T10:57:28.035038Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"c8e6f6e7-19e3-433e-bba9-73a013527105\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T10:57:35.415978Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"3feeec2b-a582-42a2-a4a2-b6ea50dc5876\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T10:57:36.981262Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"1c08bb63-9e9e-4a0d-bc5a-b90dabe3c95d\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:19:10.000286Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"fe1f962c-99bd-4de2-90c2-0d685a383ce1\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:19:17.329016Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"45efdca9-7cde-4363-888c-c6ffc37000fc\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:19:19.242715Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"6fc2e97b-4d59-48ee-8a00-039b07f147e4\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:22:49.696501Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"387f5315-b404-40f6-9005-cccac8ef06fa\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:22:57.691398Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"37ab3980-5401-4a6f-ae3d-f0f428310448\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:23:00.351616Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"9b42bc58-728f-4ea3-8ab9-d6194ef6e6a8\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:46:41.280003Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"d3f86d4c-876b-4ebd-9c71-050d5d60aacb\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:46:49.368221Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"644f21a0-a650-410c-a8ec-c7ceadeaa28d\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:46:51.227809Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"14b8f6a9-3bd9-4fad-b66e-68dac1bf547a\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:59:08.635193Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"6c66be3b-c6d1-45b0-b1c4-473c04f3dc39\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:59:16.615113Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"fbd65d3f-0fd5-4898-958d-f1e4ded98164\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T11:59:19.279382Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"581c81f2-968c-4f23-bc35-e5a4f76246e6\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T12:20:04.568041Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"2cf3b0ea-aced-42f8-af92-252b294fb478\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T12:20:12.864796Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"e2d429a0-5dc2-4e7d-aafc-07588da368b2\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T12:20:15.558827Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"7a657b5f-8683-451e-a006-57ea6976073f\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T12:57:00.687594Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"cfbe7974-89c8-4198-ab82-8a184607d214\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"6915e7c1-3e5e-40fb-b7c8-6bc23b427d20\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T12:57:03.107095Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"71f640f9-7639-4531-93a7-de3fb2ca12a0\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"96dd3710-e051-49f3-b26a-e8dd9a51f87f\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T12:57:05.538619Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"4d130488-a5f8-4f0a-a738-91dbf1fbf3a6\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:00:30.252878Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"d34c57fb-54a6-4f6c-a86e-3a73de621e2d\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"184c9894-a9a3-49cf-a6cc-489e6842a3dd\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:00:32.655453Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"032f775d-3a79-426c-bcb7-6b42d3be7ac7\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"fb17bf17-f0bb-4722-b4e5-32445e7f5527\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:00:35.022904Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"7f184906-a942-4917-a4e0-e8e2fa74b990\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:02:24.873029Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"70214597-0ebf-470d-a7c8-6c596d786ba2\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:02:26.060226Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"e7b57afc-4e28-4c57-9d17-42b1c48eebd9\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:02:27.638116Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"289574f3-de0e-47f0-81c7-06ae80937f31\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:02:29.214104Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"897c1c2e-5f52-46be-9abd-e7a01d3420f4\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:02:30.403304Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"eefd1896-506b-4035-9b60-110ac28e1814\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:07:20.994716Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"c351af96-9af2-4847-a0c8-11b201b1ae5f\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:07:29.127227Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"0c16ab5a-ac15-49a0-ad03-aef57d4d42e8\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:07:31.878967Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"5ee6243b-b005-4bd4-a5f2-fe8c4ff2ddfe\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:13:13.116651Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"7f70d4a0-d06d-49f5-928f-c2ca73aeb862\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:13:21.344841Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"1387ec4d-f40a-4b31-8d0f-bc161326e588\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:13:24.125802Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"02323717-20b8-4ecf-8c34-ef7dd1841f46\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:23:39.707537Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"8ba67013-03d9-47e6-b0fc-746ce6587cef\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:23:48.028828Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"7615e5a7-d95b-41b2-a082-47bf7ac815b9\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:23:50.74861Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"b9e753b2-d41d-40d6-8c1c-3e8522b9cfd5\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:26:49.560438Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"ba86214d-a2f3-4067-b507-77d75ad9db7d\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:26:58.639584Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"7a256076-d73a-4581-a955-c036ca560fd3\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:27:01.335547Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"ca5baeb1-1abf-4983-8761-922382085818\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:28:12.129245Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"a080a4f4-8f02-47b0-854f-b96d06d137e8\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:28:20.260597Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"220d930b-828d-4b57-a38f-f09ced11d439\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:28:23.005866Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"7eb35cdb-4622-4a60-beb1-d292387b0314\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:32:16.836893Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"bb399fc7-2ae4-4b9c-a645-b46f50b01347\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:32:24.852829Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"2402c3fb-d0a2-4460-bd62-da434e3dff7c\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:32:27.626252Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"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\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"ebfc643b-bf3e-4dab-bff0-8c297d1773f3\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:59:32.398071Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"dc882f3b-36c2-4488-bb32-60367b473df2\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:59:53.449498Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"b300e2b4-5084-443b-b8f2-d1d3611be8d6\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:59:54.609448Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"adc74163-422f-4667-a3a6-9c361863333e\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:59:56.196341Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"25acc483-052f-412f-92a5-00ef2c22fbbb\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:59:57.745023Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"ffa14c93-06d0-4cc2-bcce-f41901be46df\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T13:59:58.908354Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"c8338d5b-1e0b-4d0e-a404-35ca2f47ff0d\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T14:00:40.051477Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"3879f548-5eec-4c3f-8d7b-b0b2671fd522\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T14:00:49.182953Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"6e04d185-29aa-4770-b14d-fd2741f049cc\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T14:00:52.010409Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"02f6995d-1ce3-4890-b797-e00b3761eafc\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:46:45.09765Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"895b0b2c-98de-482b-b315-195ca654cfd0\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:46:46.298225Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"1debd831-4fa0-40af-b9ca-58e1a718ecb3\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:46:47.832594Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"fe5f13b0-63d5-4a2a-8396-08a2a4e831ab\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:46:49.386532Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"34c76089-ee0c-4f48-bf98-6b9d4e792544\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:46:50.530716Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"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\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"b7459998-1c94-4840-a0ab-3d030f5d582b\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:47:09.896859Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"9adc531f-1c5f-4140-b833-32f35e8dbee2\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:50:13.125537Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"f66b10ec-73f2-420c-8c2e-b2264cb5577a\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:50:14.31455Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"da768aba-f8c0-473c-bd1c-e4ea9d9f682b\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:50:15.939157Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"4937b115-31fa-4b14-b03b-774a978cbe86\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:50:17.533068Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"887f07b4-8b57-4949-880d-12fb460c9b37\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-20T15:50:18.74212Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"559cfd8c-3fb3-4a1c-b0f1-bb36cde9634a\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:14:45.824907Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"a9a925b3-6198-4ad1-8fb7-1d6e2691ed4f\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:14:46.984977Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"e5e19e07-79a9-42d1-b8b7-72d4290648eb\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:14:48.524998Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"1ceaf193-152c-481f-8eb0-08e9470f6d8b\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:14:50.414457Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"6cef1f4c-7201-4e60-b7a1-7843a82835d2\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:14:51.834989Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"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\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"d6cc97e5-830f-467f-9d7e-d44fe9376cb2\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:15:16.048802Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"b93415ca-0644-47d6-9547-f1af159ebe69\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:15:52.950749Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"e9e97b17-30cf-4068-8c5a-657b509b56bf\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:16:01.620133Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"56855740-86fc-42c5-9ed3-82bed933cfa3\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:16:04.310919Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"21779b8e-c1e1-4886-94e9-1b5b18d21366\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:27:38.520987Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"dd9805ac-43e8-447d-a521-25bbddf47f8a\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:27:47.342964Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"1295370d-69c2-43d1-899f-71e9d67e5474\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:27:50.106242Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"b7b7e66e-e6a4-451f-95a1-ad427e83da19\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:44:03.293497Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"615f2510-83f5-46ba-b244-012ced51027a\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:44:11.483169Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"6010ef55-cf69-4e91-959d-a6f14a6384ee\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:44:14.154381Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"e4641157-ebc4-4e6d-b785-84fc8f0347f3\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:49:04.540305Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"602b0512-58e4-4fa5-a004-dccd954b7ab8\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:49:12.994315Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"0295702b-41e6-4a9e-8681-a237d11b5843\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T11:49:15.713764Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"bfa696f1-341e-4216-ba15-81ac431d6419\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:02:32.063175Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"54997fa0-0c3f-43cb-9e84-39f5f5ce3f09\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:02:40.160052Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"1e036814-3134-4bc5-8e97-1f14ba77fac3\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:02:42.899008Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"3dd78296-b989-466d-97ef-428517d851ee\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:21:44.554387Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"b36e8af6-a952-43bb-b54b-d7b80fc1344e\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:21:52.745427Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"bf109065-175f-4d2f-848d-8f5232dfce1a\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:21:55.422802Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"869f4c88-f545-4aa1-a03f-152bb52186bf\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:41:43.69428Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"c19925d5-97c0-4e0e-a49e-fef562db5519\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:41:44.899197Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"1f787bd5-127a-4005-85df-6d24eb8955c1\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:41:46.505589Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"fdf93265-be3d-4a97-ae0d-540b049f7753\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:41:48.1106Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"f69a1398-c8b2-47bf-a624-4374634b4cf6\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:41:49.337557Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"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\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"c0bff0de-fe8f-4edd-83c5-b07e1480ca5f\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-08-21T12:42:18.644537Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"cd55412c-1231-4a0f-bc15-ea9b18d3a725\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-09-04T08:57:05.266866Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"c731cc10-0e89-436c-a9aa-4bd8a2e6ca31\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-09-04T08:57:06.551977Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"80c93fe7-a888-4e9d-abb1-abd31f5df031\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-09-04T08:57:08.15913Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"38619645-ccb4-4787-9755-6d3881fa5c3e\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-09-04T08:57:09.311993Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"f1e661ad-1076-4f84-8165-254304c10a2a\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-09-04T08:57:28.016602Z\",\"description\":\"Investigations done in case management\",\"emoji\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"a2cbb86a-010d-4dae-8d90-f97207c3ce63\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-09-04T08:57:28.845895Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"00000000-0000-0000-0000-000000000007\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Triage and investigate logs optimization insights\",\"emoji\":\"\",\"internal\":true,\"name\":\"Logs Optimization Insights\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"658965cb-30af-417a-b83d-4ea61d7ad995\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-09-04T09:04:13.717815Z\",\"description\":\"Investigations done in case management\",\"emoji\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"baa64ec8-924d-4d8e-bc41-819fe61d6e22\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-09-04T09:04:14.541556Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"b13fcd85-8d58-4539-9100-2b7d811a1fb4\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-09-04T09:05:19.972962Z\",\"description\":\"Investigations done in case management\",\"emoji\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"3e9ee917-5e9d-405b-a9e7-433092714e91\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-09-04T09:05:20.810533Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"fd1c8062-ecc0-4b79-b466-3ab057b54018\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-09-04T09:10:58.297595Z\",\"description\":\"Investigations done in case management\",\"emoji\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"3e4616fc-83a9-4321-a026-a710a71d082b\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-09-04T09:10:59.098774Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"cd95d1a3-d547-4fd6-99ee-af1c7cc5e4c5\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-09-04T09:11:55.879801Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"1fab87e4-341d-4a79-a294-171b4e2c22f8\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-09-04T09:11:57.084868Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"8fa9005a-76e7-4742-ab6c-b68b1b9f036b\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-09-04T09:11:58.678865Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"cf9dfa09-a302-428a-83c0-cd9a61ca3308\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-09-04T09:11:59.862839Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"be22d02b-fbd1-4bc8-919b-e81873b33f15\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"e91f9e49-6352-4a49-89b1-2ecadbe47190\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"2bb990c4-2d35-412c-9d9f-c66980cbf830\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"416ecaad-9be8-423f-bd23-df5062de555e\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"a52ea7e5-7cdf-4414-a585-63e58d3dc7a0\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"d6472e40-180e-4f7f-bdc0-9c8a749da7ee\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"3ffd2bc8-e360-40d4-8ed6-60f72161fd89\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"f91c5f4a-53c4-4f18-a21d-9f82fd7bd3e9\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"e3cb41d0-cd05-4c9d-8158-fc044587487f\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Investigations done in case management\",\"emoji\":\"\ud83d\udc51\",\"internal\":false,\"name\":\"Investigation\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}},{\"id\":\"f580bda9-aed7-49b6-ad70-5707d1c183fa\",\"type\":\"case_type\",\"attributes\":{\"deleted_at\":\"2025-10-01T12:50:38.54792Z\",\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}}]}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "ef27994a-81ec-3307-2212-e9c5048936b8" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_all_custom_attributes_config_of_case_type_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Get_all_custom_attributes_config_of_case_type_returns_OK_response.freeze new file mode 100644 index 00000000000..cf3d363b1b5 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Get_all_custom_attributes_config_of_case_type_returns_OK_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:50:14.270Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_all_custom_attributes_config_of_case_type_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_all_custom_attributes_config_of_case_type_returns_OK_response.json new file mode 100644 index 00000000000..7fb128d6529 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Get_all_custom_attributes_config_of_case_type_returns_OK_response.json @@ -0,0 +1,58 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"name\":\"World\"},\"type\":\"case_type\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/types", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"f91c5f4a-53c4-4f18-a21d-9f82fd7bd3e9\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"internal\":false,\"name\":\"World\",\"statuses_config\":{\"open\":{\"status_options\":[{\"name\":\"Open\"}],\"default\":\"Open\"},\"in_progress\":{\"status_options\":[{\"name\":\"In Progress\"}],\"default\":\"In Progress\"},\"closed\":{\"status_options\":[{\"name\":\"Closed\"}],\"default\":\"Closed\"}}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "dc45fc73-0f09-c12d-941b-eaf799af6468" + }, + { + "httpRequest": { + "headers": {}, + "method": "GET", + "path": "/api/v2/cases/types/f91c5f4a-53c4-4f18-a21d-9f82fd7bd3e9/custom_attributes", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":[]}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "ddf9f835-bdea-a89a-f97f-3988170bf208" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_all_custom_attributes_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Get_all_custom_attributes_returns_OK_response.freeze new file mode 100644 index 00000000000..666a0caf407 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Get_all_custom_attributes_returns_OK_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:50:15.131Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_all_custom_attributes_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_all_custom_attributes_returns_OK_response.json new file mode 100644 index 00000000000..6eb7491d364 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Get_all_custom_attributes_returns_OK_response.json @@ -0,0 +1,28 @@ +[ + { + "httpRequest": { + "headers": {}, + "method": "GET", + "path": "/api/v2/cases/types/custom_attributes", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":[{\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"0dc4a14f-f96b-4a27-893a-72341da7ce1d\",\"type\":\"custom_attribute\",\"attributes\":{\"case_type\":\"TUNKNOWN\",\"case_type_id\":\"1fab87e4-341d-4a79-a294-171b4e2c22f8\",\"display_name\":\"AWS Region 17569771-0000-0000-0000-175697711500\",\"is_multi\":true,\"key\":\"region_eaa423ff52828a39\",\"type\":\"NUMBER\"}},{\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\":\"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\"}},{\"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\":\"b69de08d-1bf5-40d5-9945-a2156baf85a4\",\"type\":\"custom_attribute\",\"attributes\":{\"case_type\":\"TUNKNOWN\",\"case_type_id\":\"c731cc10-0e89-436c-a9aa-4bd8a2e6ca31\",\"display_name\":\"AWS Region 17569762-0000-0000-0000-175697622500\",\"is_multi\":true,\"key\":\"region_397146208a8593df\",\"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\":\"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\":\"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\":\"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\":\"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\":\"d57aff81-87df-478e-af85-9553e0a5d221\",\"type\":\"custom_attribute\",\"attributes\":{\"case_type\":\"TUNKNOWN\",\"case_type_id\":\"d6472e40-180e-4f7f-bdc0-9c8a749da7ee\",\"display_name\":\"AWS Region 17593230-0000-0000-0000-175932301200\",\"is_multi\":true,\"key\":\"region_34a76e3ae14c4076\",\"type\":\"NUMBER\"}},{\"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\":\"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\":\"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\":\"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\":\"18c4708d-2e46-4632-8c3e-39ff21e7d6f4\",\"type\":\"custom_attribute\",\"attributes\":{\"case_type\":\"TUNKNOWN\",\"case_type_id\":\"e91f9e49-6352-4a49-89b1-2ecadbe47190\",\"display_name\":\"AWS Region 17593228-0000-0000-0000-175932285700\",\"is_multi\":true,\"key\":\"region_f9e15fd9e3128078\",\"type\":\"NUMBER\"}},{\"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\":\"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\":\"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\":\"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\"}}]}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "2a69ff63-a582-b23f-c2e6-dc1b92404b23" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_the_details_of_a_case_returns_Not_Found_response.freeze b/src/test/resources/cassettes/features/v2/Get_the_details_of_a_case_returns_Not_Found_response.freeze index 65a7dda9877..c8951896424 100644 --- a/src/test/resources/cassettes/features/v2/Get_the_details_of_a_case_returns_Not_Found_response.freeze +++ b/src/test/resources/cassettes/features/v2/Get_the_details_of_a_case_returns_Not_Found_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:48.953Z \ No newline at end of file +2025-10-01T12:46:43.569Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_the_details_of_a_case_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Get_the_details_of_a_case_returns_OK_response.freeze index 683f8abed3a..10a2481a020 100644 --- a/src/test/resources/cassettes/features/v2/Get_the_details_of_a_case_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/Get_the_details_of_a_case_returns_OK_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:49.345Z \ No newline at end of file +2025-10-01T12:46:44.009Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_the_details_of_a_case_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_the_details_of_a_case_returns_OK_response.json index 37d9cae0d46..ec14e25a720 100644 --- a/src/test/resources/cassettes/features/v2/Get_the_details_of_a_case_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_the_details_of_a_case_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}" + "json": "{\"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": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"da266ceb-843c-4af1-9190-9f1ab13fd4f4\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:44.422586Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"da266ceb-843c-4af1-9190-9f1ab13fd4f4\",\"key\":\"DDFC-82977\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83066\",\"status\":\"OPEN\",\"status_name\":\"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" @@ -27,18 +27,18 @@ "timeToLive": { "unlimited": true }, - "id": "0a6534d0-42f2-5075-64f8-7ab28f449a92" + "id": "79babc38-7a70-5347-c8a6-73b0e70145ef" }, { "httpRequest": { "headers": {}, "method": "GET", - "path": "/api/v2/cases/5e66536f-3946-41fd-9e0f-183e719d7128", + "path": "/api/v2/cases/da266ceb-843c-4af1-9190-9f1ab13fd4f4", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"da266ceb-843c-4af1-9190-9f1ab13fd4f4\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:44.422586Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"da266ceb-843c-4af1-9190-9f1ab13fd4f4\",\"key\":\"DDFC-82977\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83066\",\"status\":\"OPEN\",\"status_name\":\"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" @@ -53,6 +53,6 @@ "timeToLive": { "unlimited": true }, - "id": "2d750a1f-b5cb-9c2f-0ec8-401990f8293d" + "id": "79ba9a29-6735-bbf1-bd2a-c825ed36150a" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Unarchive_case_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Unarchive_case_returns_Bad_Request_response.freeze index 22ddf6aec45..7fe2db8b1d4 100644 --- a/src/test/resources/cassettes/features/v2/Unarchive_case_returns_Bad_Request_response.freeze +++ b/src/test/resources/cassettes/features/v2/Unarchive_case_returns_Bad_Request_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:50.131Z \ No newline at end of file +2025-10-01T12:46:44.940Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Unarchive_case_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Unarchive_case_returns_Bad_Request_response.json index c325d972d6c..008ab19ac30 100644 --- a/src/test/resources/cassettes/features/v2/Unarchive_case_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Unarchive_case_returns_Bad_Request_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}" + "json": "{\"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": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"add421a8-61e3-416e-85ec-9db7440bc951\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:45.339926Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"add421a8-61e3-416e-85ec-9db7440bc951\",\"key\":\"DDFC-82978\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83067\",\"status\":\"OPEN\",\"status_name\":\"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" @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "0a6534d0-42f2-5075-64f8-7ab28f449a98" + "id": "79babc38-7a70-5347-c8a6-73b0e70145fb" }, { "httpRequest": { @@ -37,7 +37,7 @@ }, "headers": {}, "method": "POST", - "path": "/api/v2/cases/5fd92551-50b8-46e9-899d-5846cf3eab9e/unarchive", + "path": "/api/v2/cases/add421a8-61e3-416e-85ec-9db7440bc951/unarchive", "keepAlive": false, "secure": true }, @@ -57,6 +57,6 @@ "timeToLive": { "unlimited": true }, - "id": "606a4ae8-236d-1bcf-f95b-75593921880d" + "id": "8727092a-b76e-793e-8833-3319aae69e02" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Unarchive_case_returns_Not_Found_response.freeze b/src/test/resources/cassettes/features/v2/Unarchive_case_returns_Not_Found_response.freeze index 091e5f1693e..68dbfea67e4 100644 --- a/src/test/resources/cassettes/features/v2/Unarchive_case_returns_Not_Found_response.freeze +++ b/src/test/resources/cassettes/features/v2/Unarchive_case_returns_Not_Found_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:50.895Z \ No newline at end of file +2025-10-01T12:46:45.896Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Unarchive_case_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Unarchive_case_returns_OK_response.freeze index c118a3ee003..5a7cef238be 100644 --- a/src/test/resources/cassettes/features/v2/Unarchive_case_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/Unarchive_case_returns_OK_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:51.279Z \ No newline at end of file +2025-10-01T12:46:46.650Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Unarchive_case_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Unarchive_case_returns_OK_response.json index ea2776255e0..5b97823cb04 100644 --- a/src/test/resources/cassettes/features/v2/Unarchive_case_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Unarchive_case_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}" + "json": "{\"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": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"6f53ae15-54ca-418d-b3bc-ae2b039dbb5c\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:47.573675Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"6f53ae15-54ca-418d-b3bc-ae2b039dbb5c\",\"key\":\"DDFC-82979\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83068\",\"status\":\"OPEN\",\"status_name\":\"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" @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "0a6534d0-42f2-5075-64f8-7ab28f449a8d" + "id": "79babc38-7a70-5347-c8a6-73b0e70145e9" }, { "httpRequest": { @@ -37,12 +37,12 @@ }, "headers": {}, "method": "POST", - "path": "/api/v2/cases/b6a0f192-9be6-4898-b05b-f4cc308de679/unarchive", + "path": "/api/v2/cases/6f53ae15-54ca-418d-b3bc-ae2b039dbb5c/unarchive", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"6f53ae15-54ca-418d-b3bc-ae2b039dbb5c\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:47.573675Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"6f53ae15-54ca-418d-b3bc-ae2b039dbb5c\",\"key\":\"DDFC-82979\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83068\",\"status\":\"OPEN\",\"status_name\":\"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" @@ -57,6 +57,6 @@ "timeToLive": { "unlimited": true }, - "id": "2e646eb3-3de0-9a50-a837-3aaf12064055" + "id": "0d959302-a31b-60d1-3dd9-f3356b4f4618" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Unassign_case_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Unassign_case_returns_Bad_Request_response.freeze index 7b3f4dbd149..0400accbe4b 100644 --- a/src/test/resources/cassettes/features/v2/Unassign_case_returns_Bad_Request_response.freeze +++ b/src/test/resources/cassettes/features/v2/Unassign_case_returns_Bad_Request_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:52.067Z \ No newline at end of file +2025-10-01T12:46:48.330Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Unassign_case_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Unassign_case_returns_Bad_Request_response.json index 6d5c5104fa7..536e468388d 100644 --- a/src/test/resources/cassettes/features/v2/Unassign_case_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Unassign_case_returns_Bad_Request_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}" + "json": "{\"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": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"976a6c59-d5b2-477a-95e4-00d154bcf447\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:48.896678Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"976a6c59-d5b2-477a-95e4-00d154bcf447\",\"key\":\"DDFC-82980\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83069\",\"status\":\"OPEN\",\"status_name\":\"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" @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "0a6534d0-42f2-5075-64f8-7ab28f449a9b" + "id": "79babc38-7a70-5347-c8a6-73b0e70145fe" }, { "httpRequest": { @@ -37,7 +37,7 @@ }, "headers": {}, "method": "POST", - "path": "/api/v2/cases/6e4af4e8-67fd-461a-9664-adf910673121/unassign", + "path": "/api/v2/cases/976a6c59-d5b2-477a-95e4-00d154bcf447/unassign", "keepAlive": false, "secure": true }, @@ -57,6 +57,6 @@ "timeToLive": { "unlimited": true }, - "id": "c6d80aa4-c12f-d13c-9fd8-9c1ba24e6b71" + "id": "5c813948-145f-9b61-4df2-1155a36ee278" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Unassign_case_returns_Not_Found_response.freeze b/src/test/resources/cassettes/features/v2/Unassign_case_returns_Not_Found_response.freeze index d41e392f87a..319319a4248 100644 --- a/src/test/resources/cassettes/features/v2/Unassign_case_returns_Not_Found_response.freeze +++ b/src/test/resources/cassettes/features/v2/Unassign_case_returns_Not_Found_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:52.854Z \ No newline at end of file +2025-10-01T12:46:49.773Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Unassign_case_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Unassign_case_returns_OK_response.freeze index f5e55d1024e..9fe15caf998 100644 --- a/src/test/resources/cassettes/features/v2/Unassign_case_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/Unassign_case_returns_OK_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:53.249Z \ No newline at end of file +2025-10-01T12:46:50.389Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Unassign_case_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Unassign_case_returns_OK_response.json index bbfedefba5d..1655523c8e2 100644 --- a/src/test/resources/cassettes/features/v2/Unassign_case_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Unassign_case_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}" + "json": "{\"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": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"83f41574-2062-47de-be0e-b3c2ae43ef5c\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:50.896205Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"83f41574-2062-47de-be0e-b3c2ae43ef5c\",\"key\":\"DDFC-82981\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83070\",\"status\":\"OPEN\",\"status_name\":\"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" @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "0a6534d0-42f2-5075-64f8-7ab28f449a90" + "id": "79babc38-7a70-5347-c8a6-73b0e70145ec" }, { "httpRequest": { @@ -37,12 +37,12 @@ }, "headers": {}, "method": "POST", - "path": "/api/v2/cases/b222e3e7-19fe-434f-ab26-7e0845775ccd/unassign", + "path": "/api/v2/cases/83f41574-2062-47de-be0e-b3c2ae43ef5c/unassign", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"83f41574-2062-47de-be0e-b3c2ae43ef5c\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:50.896205Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"83f41574-2062-47de-be0e-b3c2ae43ef5c\",\"key\":\"DDFC-82981\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83070\",\"status\":\"OPEN\",\"status_name\":\"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" @@ -57,6 +57,6 @@ "timeToLive": { "unlimited": true }, - "id": "17abcb43-5f8a-9c91-d3c5-68726f2e29e9" + "id": "5eb29ce2-3f49-70ae-cf29-0825ada34982" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_Bad_Request_response.json index c45971c2478..c403571c4ea 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "0a6534d0-42f2-5075-64f8-7ab28f449a8f" + "id": "0a6534d0-42f2-5075-64f8-7ab28f449a8d" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_Not_Found_response.freeze b/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_Not_Found_response.freeze index 9cc9365f135..737a9c4ddb5 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_Not_Found_response.freeze +++ b/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_Not_Found_response.freeze @@ -1 +1 @@ -2025-07-21T08:23:42.266Z \ No newline at end of file +2025-10-01T12:46:52.080Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_OK_response.freeze index d438f1b5b22..9619ed45f87 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_OK_response.freeze @@ -1 +1 @@ -2025-07-21T18:43:31.851Z \ No newline at end of file +2025-10-01T12:46:52.908Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_OK_response.json index 970384d872c..5aa43032332 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}" + "json": "{\"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": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"916e1b61-25b1-4da9-b3a3-000150b675f6\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:53.522427Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"916e1b61-25b1-4da9-b3a3-000150b675f6\",\"key\":\"DDFC-82982\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83071\",\"status\":\"OPEN\",\"status_name\":\"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" @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "0a6534d0-42f2-5075-64f8-7ab28f449a97" + "id": "79babc38-7a70-5347-c8a6-73b0e70145f9" }, { "httpRequest": { @@ -37,12 +37,12 @@ }, "headers": {}, "method": "POST", - "path": "/api/v2/cases/f396c907-777d-4985-9e9d-2a420a0c0515/attributes", + "path": "/api/v2/cases/916e1b61-25b1-4da9-b3a3-000150b675f6/attributes", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"916e1b61-25b1-4da9-b3a3-000150b675f6\",\"type\":\"case\",\"attributes\":{\"attributes\":{\"env\":[\"test\"],\"service\":[\"web-store\",\"web-api\"],\"team\":[\"engineer\"]},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:53.522427Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"916e1b61-25b1-4da9-b3a3-000150b675f6\",\"key\":\"DDFC-82982\",\"merge_status\":\"NOT_MERGED\",\"modified_at\":\"2025-10-01T12:46:54.057858Z\",\"priority\":\"P4\",\"public_id\":\"83071\",\"status\":\"OPEN\",\"status_name\":\"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" @@ -57,6 +57,6 @@ "timeToLive": { "unlimited": true }, - "id": "2bc87020-cc36-ac8d-24cf-bd38fc3c838f" + "id": "d5b91317-cfef-6581-e933-8a16f2c399d8" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Bad_Request_response.freeze new file mode 100644 index 00000000000..2b0f39ba660 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Bad_Request_response.freeze @@ -0,0 +1 @@ +2025-08-21T12:21:50.857Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Bad_Request_response.json new file mode 100644 index 00000000000..0fb05ef1dd5 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Bad_Request_response.json @@ -0,0 +1,143 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"name\":\"World\"},\"type\":\"case_type\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/types", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"b36e8af6-a952-43bb-b54b-d7b80fc1344e\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"name\":\"World\"}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "dc45fc73-0f09-c12d-941b-eaf799af6465" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"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": {}, + "method": "POST", + "path": "/api/v2/cases/types/b36e8af6-a952-43bb-b54b-d7b80fc1344e/custom_attributes", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"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" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "17affdbd-013f-a6c5-e210-9650279d068d" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"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": {}, + "method": "POST", + "path": "/api/v2/cases", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"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" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "3067b3e8-003f-854e-c61a-9be47132765f" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"is_multi\":true,\"type\":\"FLOAT\",\"value\":[1,2.4]},\"type\":\"case\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/5ed64f4d-a8d0-4dc6-879c-9b5f10a25cdb/custom_attributes/attribute_1d2a4f8f9b39a284", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"errors\":[{\"status\":\"400\",\"title\":\"Bad Request\"}]}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 400, + "reasonPhrase": "Bad Request" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "a6b09b05-138c-036e-2806-d8fbb89a4fbe" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/cases/types/b36e8af6-a952-43bb-b54b-d7b80fc1344e", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "headers": {}, + "statusCode": 204, + "reasonPhrase": "No Content" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "dbd94a38-e14a-a237-8d06-3fda458ade55" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Not_Found_response.freeze b/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Not_Found_response.freeze new file mode 100644 index 00000000000..3f6e4336b9c --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Not_Found_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:46:54.092Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Not_Found_response.json b/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Not_Found_response.json new file mode 100644 index 00000000000..6ac2a8d7015 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Not_Found_response.json @@ -0,0 +1,62 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"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": {}, + "method": "POST", + "path": "/api/v2/cases", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"8e87c755-54a9-470a-9118-62a0942ec870\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:54.666096Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"8e87c755-54a9-470a-9118-62a0942ec870\",\"key\":\"DDFC-82983\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83072\",\"status\":\"OPEN\",\"status_name\":\"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" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "79babc38-7a70-5347-c8a6-73b0e70145f8" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"is_multi\":true,\"type\":\"TEXT\",\"value\":[\"Abba\",\"The Cure\"]},\"type\":\"case\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/8e87c755-54a9-470a-9118-62a0942ec870/custom_attributes/invalid_key", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"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" + ] + }, + "statusCode": 404, + "reasonPhrase": "Not Found" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "ae0c1365-24e0-cce5-9084-21fddee76fb1" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_OK_response.freeze new file mode 100644 index 00000000000..0df4d79f680 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_OK_response.freeze @@ -0,0 +1 @@ +2025-08-21T12:21:53.550Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_OK_response.json new file mode 100644 index 00000000000..ee590d62b00 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_OK_response.json @@ -0,0 +1,143 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"name\":\"World\"},\"type\":\"case_type\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/types", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"bf109065-175f-4d2f-848d-8f5232dfce1a\",\"type\":\"case_type\",\"attributes\":{\"description\":\"Worldwide case type\",\"emoji\":\"\ud83c\udf0d\",\"name\":\"World\"}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "dc45fc73-0f09-c12d-941b-eaf799af6464" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"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": {}, + "method": "POST", + "path": "/api/v2/cases/types/bf109065-175f-4d2f-848d-8f5232dfce1a/custom_attributes", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"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" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "32b4c175-a369-8ce7-fa35-fc7c8dcc746c" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"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": {}, + "method": "POST", + "path": "/api/v2/cases", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"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" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "733dd96a-98d6-31cb-b849-88c648f366fa" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"is_multi\":true,\"type\":\"TEXT\",\"value\":[\"Abba\",\"The Cure\"]},\"type\":\"case\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/4e88fd93-7a35-46a1-881e-3ee48185afe4/custom_attributes/attribute_661efcf8a00203e4", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"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" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "e708e50e-afd8-510f-79eb-bd816067da24" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/cases/types/bf109065-175f-4d2f-848d-8f5232dfce1a", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "headers": {}, + "statusCode": 204, + "reasonPhrase": "No Content" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "12bd5b4e-6889-5694-d1c1-04d2ac801002" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_description_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Update_case_description_returns_Bad_Request_response.freeze new file mode 100644 index 00000000000..cb9d0b8766f --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Update_case_description_returns_Bad_Request_response.freeze @@ -0,0 +1 @@ +2025-08-20T11:23:00.312Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_description_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_case_description_returns_Bad_Request_response.json new file mode 100644 index 00000000000..431f560d206 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Update_case_description_returns_Bad_Request_response.json @@ -0,0 +1,62 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"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" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "0a6534d0-42f2-5075-64f8-7ab28f449a8e" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"description\":\"Seeing some weird memory increase... We shouldn't ignore this\"},\"type\":\"case\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/efb715f8-47e6-4035-a8aa-2562ac8d46b1/description", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"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" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "87eaabbc-cb2b-f779-cf54-4e0e40819e53" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_description_returns_Not_Found_response.freeze b/src/test/resources/cassettes/features/v2/Update_case_description_returns_Not_Found_response.freeze new file mode 100644 index 00000000000..ff73a339670 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Update_case_description_returns_Not_Found_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:46:55.741Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_description_returns_Not_Found_response.json b/src/test/resources/cassettes/features/v2/Update_case_description_returns_Not_Found_response.json new file mode 100644 index 00000000000..4962f4ed8ba --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Update_case_description_returns_Not_Found_response.json @@ -0,0 +1,32 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"description\":\"Seeing some weird memory increase... We shouldn't ignore this\"},\"type\":\"case\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/0198c6b0-2a0a-7bea-87ff-3876f119aebb/description", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"errors\":[{\"code\":\"resource_not_found\",\"title\":\"case not found\"}]}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 404, + "reasonPhrase": "Not Found" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "a5fa9fc2-2fbb-254e-00b6-27d6e5420c50" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_description_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Update_case_description_returns_OK_response.freeze new file mode 100644 index 00000000000..f5684a8e2aa --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Update_case_description_returns_OK_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:46:56.936Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_description_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_case_description_returns_OK_response.json new file mode 100644 index 00000000000..b0c0bef8a87 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Update_case_description_returns_OK_response.json @@ -0,0 +1,62 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"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": {}, + "method": "POST", + "path": "/api/v2/cases", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"bb8284e0-959e-43db-9920-adf55f37ed7d\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:57.927663Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"bb8284e0-959e-43db-9920-adf55f37ed7d\",\"key\":\"DDFC-82984\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83073\",\"status\":\"OPEN\",\"status_name\":\"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" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "79babc38-7a70-5347-c8a6-73b0e7014600" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"description\":\"Seeing some weird memory increase... Updating the description\"},\"type\":\"case\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/bb8284e0-959e-43db-9920-adf55f37ed7d/description", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"bb8284e0-959e-43db-9920-adf55f37ed7d\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:46:57.927663Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"Seeing some weird memory increase... Updating the description\",\"insights\":[],\"internal_id\":\"bb8284e0-959e-43db-9920-adf55f37ed7d\",\"key\":\"DDFC-82984\",\"merge_status\":\"NOT_MERGED\",\"modified_at\":\"2025-10-01T12:46:59.32863Z\",\"priority\":\"P4\",\"public_id\":\"83073\",\"status\":\"OPEN\",\"status_name\":\"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" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "2a758c5a-a7aa-f4ad-a5ec-47150a1c5f20" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_priority_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Update_case_priority_returns_Bad_Request_response.freeze index 34a73d972c2..a4821efc16f 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_priority_returns_Bad_Request_response.freeze +++ b/src/test/resources/cassettes/features/v2/Update_case_priority_returns_Bad_Request_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:56.000Z \ No newline at end of file +2025-10-01T12:46:59.356Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_priority_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_case_priority_returns_Bad_Request_response.json index fae1a47aafd..4eb6a1d4d89 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_priority_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Update_case_priority_returns_Bad_Request_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}" + "json": "{\"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": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"66eb3131-0b3b-489b-b672-2781600cc1e6\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:47:00.373489Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"66eb3131-0b3b-489b-b672-2781600cc1e6\",\"key\":\"DDFC-82985\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83074\",\"status\":\"OPEN\",\"status_name\":\"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" @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "0a6534d0-42f2-5075-64f8-7ab28f449a96" + "id": "79babc38-7a70-5347-c8a6-73b0e70145f7" }, { "httpRequest": { @@ -37,12 +37,12 @@ }, "headers": {}, "method": "POST", - "path": "/api/v2/cases/57868e9a-2697-4384-b724-8e118b20a7f3/priority", + "path": "/api/v2/cases/66eb3131-0b3b-489b-b672-2781600cc1e6/priority", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"errors\":[{\"title\":\"Generic Error\",\"detail\":\"invalid priority P1234. Must be one of P2, P3, P4, P5, NOT_DEFINED, P1\"}]}", + "body": "{\"errors\":[{\"title\":\"Generic Error\",\"detail\":\"invalid priority P1234. Must be one of NOT_DEFINED, P1, P2, P3, P4, P5\"}]}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -57,6 +57,6 @@ "timeToLive": { "unlimited": true }, - "id": "72df50c0-46cd-23a2-9858-a891311aeca1" + "id": "43319c4b-1308-2ac9-2bd4-eedd3e613c7d" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_priority_returns_Not_Found_response.freeze b/src/test/resources/cassettes/features/v2/Update_case_priority_returns_Not_Found_response.freeze index f6b3d2f6982..d1d5e408c73 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_priority_returns_Not_Found_response.freeze +++ b/src/test/resources/cassettes/features/v2/Update_case_priority_returns_Not_Found_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:56.765Z \ No newline at end of file +2025-10-01T12:47:00.978Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_priority_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Update_case_priority_returns_OK_response.freeze index 9b134590a27..da62d2e6f68 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_priority_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/Update_case_priority_returns_OK_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:57.162Z \ No newline at end of file +2025-10-01T12:47:01.924Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_priority_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_case_priority_returns_OK_response.json index 506d3c58b55..56d9bae88eb 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_priority_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_case_priority_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}" + "json": "{\"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": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"d42afb74-0480-4535-bf4d-af0353d32c1c\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:47:02.764285Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"d42afb74-0480-4535-bf4d-af0353d32c1c\",\"key\":\"DDFC-82986\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83075\",\"status\":\"OPEN\",\"status_name\":\"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" @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "0a6534d0-42f2-5075-64f8-7ab28f449a91" + "id": "79babc38-7a70-5347-c8a6-73b0e70145ee" }, { "httpRequest": { @@ -37,12 +37,12 @@ }, "headers": {}, "method": "POST", - "path": "/api/v2/cases/18014b24-6e64-4ca5-8cac-7ccbdd65258b/priority", + "path": "/api/v2/cases/d42afb74-0480-4535-bf4d-af0353d32c1c/priority", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"d42afb74-0480-4535-bf4d-af0353d32c1c\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:47:02.764285Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"d42afb74-0480-4535-bf4d-af0353d32c1c\",\"key\":\"DDFC-82986\",\"merge_status\":\"NOT_MERGED\",\"modified_at\":\"2025-10-01T12:47:03.296015Z\",\"priority\":\"P3\",\"public_id\":\"83075\",\"status\":\"OPEN\",\"status_name\":\"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" @@ -57,6 +57,6 @@ "timeToLive": { "unlimited": true }, - "id": "1a133ade-9b95-6e64-7d2b-b7ec6d4755b4" + "id": "a48226ee-212a-02a3-0d63-59437a27c03f" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_status_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Update_case_status_returns_Bad_Request_response.freeze index f149d8dad29..fa70f7c3252 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_status_returns_Bad_Request_response.freeze +++ b/src/test/resources/cassettes/features/v2/Update_case_status_returns_Bad_Request_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:57.959Z \ No newline at end of file +2025-10-01T12:47:03.345Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_status_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_case_status_returns_Bad_Request_response.json index d56ee91cbd3..caa06d06b79 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_status_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Update_case_status_returns_Bad_Request_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}" + "json": "{\"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": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"53897bb0-8e8b-4652-985b-0b9e2e8c3a30\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:47:04.237961Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"53897bb0-8e8b-4652-985b-0b9e2e8c3a30\",\"key\":\"DDFC-82987\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83076\",\"status\":\"OPEN\",\"status_name\":\"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" @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "0a6534d0-42f2-5075-64f8-7ab28f449a99" + "id": "79babc38-7a70-5347-c8a6-73b0e70145fc" }, { "httpRequest": { @@ -37,12 +37,12 @@ }, "headers": {}, "method": "POST", - "path": "/api/v2/cases/98319575-b53b-43be-96b2-7595a5f1be6c/status", + "path": "/api/v2/cases/53897bb0-8e8b-4652-985b-0b9e2e8c3a30/status", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"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\"}]}", + "body": "{\"errors\":[{\"title\":\"Generic Error\",\"detail\":\"invalid status OPENED. Must be one of CANCELLED, DECLINED, NOT_STARTED, SUNKNOWN, IN_PROGRESS, ACKNOWLEDGED, TRIGGERED, PENDING_APPROVAL, IMPLEMENTING, COMPLETED, OPEN, CLOSED, RESOLVED, APPROVED\"}]}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -57,6 +57,6 @@ "timeToLive": { "unlimited": true }, - "id": "195135ee-0304-f678-903a-f6058a0be0e6" + "id": "fa695953-ee18-d658-7966-9142f8b79819" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_status_returns_Not_Found_response.freeze b/src/test/resources/cassettes/features/v2/Update_case_status_returns_Not_Found_response.freeze index ca65b4f9cfe..9c685217ae0 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_status_returns_Not_Found_response.freeze +++ b/src/test/resources/cassettes/features/v2/Update_case_status_returns_Not_Found_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:58.721Z \ No newline at end of file +2025-10-01T12:47:04.727Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_status_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Update_case_status_returns_OK_response.freeze index 086a7bba2e6..447e0043d27 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_status_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/Update_case_status_returns_OK_response.freeze @@ -1 +1 @@ -2025-07-21T13:52:59.116Z \ No newline at end of file +2025-10-01T12:47:05.138Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_status_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_case_status_returns_OK_response.json index 31e08d18db4..12566dc0383 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_status_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_case_status_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"priority\":\"P4\",\"title\":\"My new case\",\"type\":\"STANDARD\"},\"relationships\":{\"project\":{\"data\":{\"id\":\"d4bbe1af-f36e-42f1-87c1-493ca35c320e\",\"type\":\"project\"}}},\"type\":\"case\"}}" + "json": "{\"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": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"e030702b-1f81-4ff0-94ba-ff9650823cf3\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:47:05.547127Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"e030702b-1f81-4ff0-94ba-ff9650823cf3\",\"key\":\"DDFC-82988\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83077\",\"status\":\"OPEN\",\"status_name\":\"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" @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "0a6534d0-42f2-5075-64f8-7ab28f449a95" + "id": "79babc38-7a70-5347-c8a6-73b0e70145f4" }, { "httpRequest": { @@ -37,12 +37,12 @@ }, "headers": {}, "method": "POST", - "path": "/api/v2/cases/6d09fb31-6357-4f35-b1af-eaa0047f19f0/status", + "path": "/api/v2/cases/e030702b-1f81-4ff0-94ba-ff9650823cf3/status", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"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 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\"}}]}", + "body": "{\"data\":{\"id\":\"e030702b-1f81-4ff0-94ba-ff9650823cf3\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:47:05.547127Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"e030702b-1f81-4ff0-94ba-ff9650823cf3\",\"key\":\"DDFC-82988\",\"merge_status\":\"NOT_MERGED\",\"modified_at\":\"2025-10-01T12:47:05.982532Z\",\"priority\":\"P4\",\"public_id\":\"83077\",\"status\":\"IN_PROGRESS\",\"status_name\":\"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": [ "application/vnd.api+json" @@ -57,6 +57,6 @@ "timeToLive": { "unlimited": true }, - "id": "1b6a4861-322f-fe6c-3bd9-5d34b6d2e305" + "id": "69253082-0f2e-d31f-e1e0-70a9f50ccb2f" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_title_returns_Bad_Request_response.freeze b/src/test/resources/cassettes/features/v2/Update_case_title_returns_Bad_Request_response.freeze new file mode 100644 index 00000000000..ca09c6cf32d --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Update_case_title_returns_Bad_Request_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:47:06.013Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_title_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_case_title_returns_Bad_Request_response.json new file mode 100644 index 00000000000..5b71267e4f0 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Update_case_title_returns_Bad_Request_response.json @@ -0,0 +1,62 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"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": {}, + "method": "POST", + "path": "/api/v2/cases", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"de7cd20f-3755-44aa-9f89-846b6ae37124\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:47:06.439831Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"de7cd20f-3755-44aa-9f89-846b6ae37124\",\"key\":\"DDFC-82989\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83078\",\"status\":\"OPEN\",\"status_name\":\"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" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "79babc38-7a70-5347-c8a6-73b0e70145fa" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"title\":\"\"},\"type\":\"case\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/de7cd20f-3755-44aa-9f89-846b6ae37124/title", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"errors\":[{\"status\":\"400\",\"title\":\"Bad Request\"}]}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 400, + "reasonPhrase": "Bad Request" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "884ef7cf-369c-0d48-d024-100b746703c7" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_title_returns_Not_Found_response.freeze b/src/test/resources/cassettes/features/v2/Update_case_title_returns_Not_Found_response.freeze new file mode 100644 index 00000000000..e6b859cee6a --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Update_case_title_returns_Not_Found_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:47:06.918Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_title_returns_Not_Found_response.json b/src/test/resources/cassettes/features/v2/Update_case_title_returns_Not_Found_response.json new file mode 100644 index 00000000000..6364198e099 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Update_case_title_returns_Not_Found_response.json @@ -0,0 +1,32 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"title\":\"Memory leak investigation on API\"},\"type\":\"case\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/0198c6b8-b08f-7c08-978a-d95217f2eeac/title", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"errors\":[{\"code\":\"resource_not_found\",\"title\":\"case not found\"}]}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 404, + "reasonPhrase": "Not Found" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "4e265ccb-fa85-b49b-1331-6129143e495e" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_title_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Update_case_title_returns_OK_response.freeze new file mode 100644 index 00000000000..898a971bbd3 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Update_case_title_returns_OK_response.freeze @@ -0,0 +1 @@ +2025-10-01T12:47:07.351Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_case_title_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_case_title_returns_OK_response.json new file mode 100644 index 00000000000..50866402a79 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Update_case_title_returns_OK_response.json @@ -0,0 +1,62 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"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": {}, + "method": "POST", + "path": "/api/v2/cases", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"4c4bfc12-4f7c-4891-a8d0-70a15a0f29c2\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:47:07.778878Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"4c4bfc12-4f7c-4891-a8d0-70a15a0f29c2\",\"key\":\"DDFC-82990\",\"merge_status\":\"NOT_MERGED\",\"priority\":\"P4\",\"public_id\":\"83079\",\"status\":\"OPEN\",\"status_name\":\"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" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "79babc38-7a70-5347-c8a6-73b0e70145f1" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"title\":\"[UPDATED] Memory leak investigation on API\"},\"type\":\"case\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/cases/4c4bfc12-4f7c-4891-a8d0-70a15a0f29c2/title", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"4c4bfc12-4f7c-4891-a8d0-70a15a0f29c2\",\"type\":\"case\",\"attributes\":{\"attributes\":{},\"comment_count\":0,\"created_at\":\"2025-10-01T12:47:07.778878Z\",\"creation_source\":\"MANUAL\",\"custom_attributes\":{},\"description\":\"\",\"insights\":[],\"internal_id\":\"4c4bfc12-4f7c-4891-a8d0-70a15a0f29c2\",\"key\":\"DDFC-82990\",\"merge_status\":\"NOT_MERGED\",\"modified_at\":\"2025-10-01T12:47:08.214456Z\",\"priority\":\"P4\",\"public_id\":\"83079\",\"status\":\"OPEN\",\"status_name\":\"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" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "76ae267d-127e-fb17-a7b1-449d572b5eb5" + } +] \ No newline at end of file diff --git a/src/test/resources/com/datadog/api/client/v2/api/case_management.feature b/src/test/resources/com/datadog/api/client/v2/api/case_management.feature index 58c95f71668..2f239155671 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/case_management.feature +++ b/src/test/resources/com/datadog/api/client/v2/api/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": "e555e290-ed65-49bd-ae18-8acbfcf18db7", "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": "721074c8-63df-4d8f-a43d-ab41dd24ec35", "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/src/test/resources/com/datadog/api/client/v2/api/case_management_attribute.feature b/src/test/resources/com/datadog/api/client/v2/api/case_management_attribute.feature new file mode 100644 index 00000000000..3ac06e724b7 --- /dev/null +++ b/src/test/resources/com/datadog/api/client/v2/api/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 {{unique_hash}}", "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/src/test/resources/com/datadog/api/client/v2/api/case_management_type.feature b/src/test/resources/com/datadog/api/client/v2/api/case_management_type.feature new file mode 100644 index 00000000000..0773d7d241b --- /dev/null +++ b/src/test/resources/com/datadog/api/client/v2/api/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/src/test/resources/com/datadog/api/client/v2/api/given.json b/src/test/resources/com/datadog/api/client/v2/api/given.json index e31a9e2e23d..23b1000e2cd 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/given.json +++ b/src/test/resources/com/datadog/api/client/v2/api/given.json @@ -129,7 +129,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", @@ -138,6 +138,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/src/test/resources/com/datadog/api/client/v2/api/undo.json b/src/test/resources/com/datadog/api/client/v2/api/undo.json index 6e05ad8acd5..f804a3dce1d 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/undo.json +++ b/src/test/resources/com/datadog/api/client/v2/api/undo.json @@ -575,6 +575,48 @@ "type": "safe" } }, + "GetAllCaseTypes": { + "tag": "Case Management Type", + "undo": { + "type": "safe" + } + }, + "CreateCaseType": { + "tag": "Case Management Type", + "undo": { + "type": "safe" + } + }, + "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": { @@ -599,6 +641,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": { @@ -611,6 +683,12 @@ "type": "idempotent" } }, + "UpdateCaseTitle": { + "tag": "Case Management", + "undo": { + "type": "idempotent" + } + }, "UnarchiveCase": { "tag": "Case Management", "undo": {