diff --git a/.generator/schemas/v1/openapi.yaml b/.generator/schemas/v1/openapi.yaml index dba7bb99f9..244b12fa07 100644 --- a/.generator/schemas/v1/openapi.yaml +++ b/.generator/schemas/v1/openapi.yaml @@ -2537,6 +2537,43 @@ components: type: string x-enum-varnames: - EVENT_TIMELINE + EventsAggregation: + description: The type of aggregation that can be performed on events-based queries. + example: avg + oneOf: + - $ref: '#/components/schemas/EventsAggregationValue' + - $ref: '#/components/schemas/EventsAggregationPercentile' + EventsAggregationPercentile: + description: Percentile aggregation. + pattern: ^pc[0-9]+(\.[0-9]+)?$ + type: string + EventsAggregationValue: + description: Standard aggregation types for events-based queries. + enum: + - avg + - cardinality + - count + - delta + - earliest + - latest + - max + - median + - min + - most_frequent + - sum + type: string + x-enum-varnames: + - AVG + - CARDINALITY + - COUNT + - DELTA + - EARLIEST + - LATEST + - MAX + - MEDIAN + - MIN + - MOST_FREQUENT + - SUM FormulaAndFunctionApmDependencyStatName: description: APM statistic. enum: @@ -10989,6 +11026,55 @@ components: required: - metric type: object + ProductAnalyticsAudienceAccountSubquery: + description: Product Analytics audience account subquery. + properties: + name: + type: string + query: + type: string + type: object + ProductAnalyticsAudienceFilters: + description: Product Analytics/RUM audience filters. + properties: + accounts: + items: + $ref: '#/components/schemas/ProductAnalyticsAudienceAccountSubquery' + type: array + filter_condition: + type: string + segments: + items: + $ref: '#/components/schemas/ProductAnalyticsAudienceSegmentSubquery' + type: array + users: + items: + $ref: '#/components/schemas/ProductAnalyticsAudienceUserSubquery' + type: array + type: object + ProductAnalyticsAudienceOccurrenceFilter: + properties: + operator: + type: string + value: + type: string + type: object + ProductAnalyticsAudienceSegmentSubquery: + description: Product Analytics audience segment subquery. + properties: + name: + type: string + segment_id: + type: string + type: object + ProductAnalyticsAudienceUserSubquery: + description: Product Analytics audience user subquery. + properties: + name: + type: string + query: + type: string + type: object QuerySortOrder: default: desc description: Direction of sort. @@ -12765,6 +12851,252 @@ components: type: string x-enum-varnames: - SLO + SankeyJoinKeys: + additionalProperties: false + description: Join keys. + properties: + primary: + description: Primary join key. + example: session.id + type: string + secondary: + description: Secondary join keys. + items: + description: Secondary join key. + type: string + type: array + required: + - primary + type: object + SankeyNetworkDataSource: + default: network + description: Network data source type. + enum: + - network_device_flows + - network + example: network + type: string + x-enum-varnames: + - NETWORK_DEVICE_FLOWS + - NETWORK + SankeyNetworkQuery: + additionalProperties: false + description: Query configuration for Sankey network widget. + properties: + compute: + $ref: '#/components/schemas/SankeyNetworkQueryCompute' + data_source: + $ref: '#/components/schemas/SankeyNetworkDataSource' + group_by: + description: Fields to group by. + example: + - source + - destination + items: + type: string + type: array + limit: + description: Maximum number of results. + example: 100 + format: int64 + type: integer + mode: + $ref: '#/components/schemas/SankeyNetworkQueryMode' + query_string: + description: Query string for filtering network data. + example: '*' + type: string + should_exclude_missing: + description: Whether to exclude missing values. + type: boolean + sort: + $ref: '#/components/schemas/SankeyNetworkQuerySort' + required: + - data_source + - query_string + - group_by + - limit + type: object + SankeyNetworkQueryCompute: + additionalProperties: false + description: Compute aggregation for network queries. + properties: + aggregation: + $ref: '#/components/schemas/EventsAggregation' + metric: + description: Metric to aggregate. + example: '' + type: string + required: + - aggregation + - metric + type: object + SankeyNetworkQueryMode: + default: target + description: Sankey mode for network queries. + enum: + - target + example: target + type: string + x-enum-varnames: + - TARGET + SankeyNetworkQuerySort: + description: Sort configuration for network queries. + properties: + field: + description: Field to sort by. + type: string + order: + $ref: '#/components/schemas/WidgetSort' + type: object + SankeyNetworkRequest: + additionalProperties: false + description: Sankey widget request for network data source. + properties: + query: + $ref: '#/components/schemas/SankeyNetworkQuery' + request_type: + $ref: '#/components/schemas/SankeyNetworkRequestType' + required: + - query + - request_type + type: object + SankeyNetworkRequestType: + default: netflow_sankey + description: Type of request for network Sankey widget. + enum: + - netflow_sankey + example: netflow_sankey + type: string + x-enum-varnames: + - NETFLOW_SANKEY + SankeyRumDataSource: + default: rum + description: Sankey widget with RUM data source. + enum: + - rum + - product_analytics + example: rum + type: string + x-enum-varnames: + - RUM + - PRODUCT_ANALYTICS + SankeyRumQuery: + additionalProperties: false + description: Sankey widget with RUM data source query. + properties: + audience_filters: + $ref: '#/components/schemas/ProductAnalyticsAudienceFilters' + data_source: + $ref: '#/components/schemas/SankeyRumDataSource' + entries_per_step: + description: Entries per step. + format: int64 + type: integer + join_keys: + $ref: '#/components/schemas/SankeyJoinKeys' + mode: + $ref: '#/components/schemas/SankeyRumQueryMode' + number_of_steps: + description: Number of steps. + format: int64 + type: integer + occurrences: + $ref: '#/components/schemas/ProductAnalyticsAudienceOccurrenceFilter' + query_string: + description: Query string. + example: '@type:view' + type: string + source: + description: Source. + type: string + subquery_id: + description: Subquery ID. + type: string + target: + description: Target. + type: string + required: + - data_source + - query_string + - mode + type: object + SankeyRumQueryMode: + default: source + description: Sankey mode for RUM queries. + enum: + - source + - target + example: source + type: string + x-enum-varnames: + - SOURCE + - TARGET + SankeyRumRequest: + additionalProperties: false + description: Sankey widget with RUM data source. + properties: + query: + $ref: '#/components/schemas/SankeyRumQuery' + request_type: + $ref: '#/components/schemas/SankeyWidgetDefinitionType' + required: + - query + - request_type + type: object + SankeyWidgetDefinition: + additionalProperties: false + description: The Sankey diagram visualizes the flow of data between categories, + stages or sets of values. + properties: + requests: + description: List of Sankey widget requests. + example: + - query: + data_source: rum + mode: source + query_string: '@type:view' + request_type: sankey + items: + $ref: '#/components/schemas/SankeyWidgetRequest' + minItems: 1 + type: array + show_other_links: + description: Whether to show links for "other" category. + type: boolean + sort_nodes: + description: Whether to sort nodes in the Sankey diagram. + type: boolean + time: + $ref: '#/components/schemas/WidgetTime' + title: + description: Title of your widget. + type: string + title_align: + $ref: '#/components/schemas/WidgetTextAlign' + title_size: + description: Size of the title. + type: string + type: + $ref: '#/components/schemas/SankeyWidgetDefinitionType' + required: + - type + - requests + type: object + SankeyWidgetDefinitionType: + default: sankey + description: Type of the Sankey widget. + enum: + - sankey + example: sankey + type: string + x-enum-varnames: + - SANKEY + SankeyWidgetRequest: + description: Request definition for Sankey widget. + oneOf: + - $ref: '#/components/schemas/SankeyRumRequest' + - $ref: '#/components/schemas/SankeyNetworkRequest' ScatterPlotRequest: description: Updated scatter plot. properties: @@ -24880,6 +25212,7 @@ components: - $ref: '#/components/schemas/SLOListWidgetDefinition' - $ref: '#/components/schemas/SLOWidgetDefinition' - $ref: '#/components/schemas/ScatterPlotWidgetDefinition' + - $ref: '#/components/schemas/SankeyWidgetDefinition' - $ref: '#/components/schemas/ServiceMapWidgetDefinition' - $ref: '#/components/schemas/ServiceSummaryWidgetDefinition' - $ref: '#/components/schemas/SplitGraphWidgetDefinition' diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index fb8574b175..abac03b8a8 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -9168,11 +9168,6 @@ components: CaseCreateAttributes: description: Case creation attributes properties: - custom_attributes: - additionalProperties: - $ref: '#/components/schemas/CustomAttributeValue' - description: Case custom attributes - type: object description: description: Description type: string @@ -14717,9 +14712,9 @@ components: type: number type: array CustomAttributeMultiStringValue: - description: Value of multi TEXT/URL/SELECT custom attribute + description: Value of multi TEXT/URL custom attribute items: - description: TEXT/URL/SELECT Value + description: TEXT/URL Value type: string type: array CustomAttributeNumberValue: @@ -14727,7 +14722,7 @@ components: format: double type: number CustomAttributeStringValue: - description: Value of TEXT/URL/SELECT custom attribute + description: Value of TEXT/URL custom attribute type: string CustomAttributeType: description: Custom attributes type @@ -14735,14 +14730,12 @@ components: - URL - TEXT - NUMBER - - SELECT example: NUMBER type: string x-enum-varnames: - URL - TEXT - NUMBER - - SELECT CustomAttributeValue: description: Custom attribute values properties: @@ -15885,6 +15878,78 @@ components: type: string nullable: true type: array + DORADeploymentFetchResponse: + description: Response for fetching a single deployment event. + properties: + data: + $ref: '#/components/schemas/DORADeploymentObject' + type: object + DORADeploymentObject: + description: A DORA deployment event. + example: + attributes: + custom_tags: + - language:java + - department:engineering + - region:us-east-1 + env: production + finished_at: 1693491984000000000 + git: + commit_sha: 66adc9350f2cc9b250b69abddab733dd55e1a588 + repository_url: https://github.com/organization/example-repository + service: shopist + started_at: 1693491974000000000 + team: backend + version: v1.12.07 + id: 4242fcdd31586083 + type: dora_deployment + properties: + attributes: + $ref: '#/components/schemas/DORADeploymentObjectAttributes' + id: + description: The ID of the deployment event. + type: string + type: + $ref: '#/components/schemas/DORADeploymentType' + type: object + DORADeploymentObjectAttributes: + description: The attributes of the deployment event. + properties: + custom_tags: + $ref: '#/components/schemas/DORACustomTags' + env: + description: Environment name to where the service was deployed. + example: production + type: string + finished_at: + description: Unix timestamp when the deployment finished. + example: 1693491984000000000 + format: int64 + type: integer + git: + $ref: '#/components/schemas/DORAGitInfo' + service: + description: Service name. + example: shopist + type: string + started_at: + description: Unix timestamp when the deployment started. + example: 1693491974000000000 + format: int64 + type: integer + team: + description: Name of the team owning the deployed service. + example: backend + type: string + version: + description: Version to correlate with APM Deployment Tracking. + example: v1.12.07 + type: string + required: + - service + - started_at + - finished_at + type: object DORADeploymentRequest: description: Request to create a DORA deployment event. properties: @@ -15975,18 +16040,53 @@ components: type: string x-enum-varnames: - DORA_DEPLOYMENT - DORAEvent: - description: A DORA event. + DORADeploymentsListResponse: + description: Response for the list deployments endpoint. + example: + data: + - attributes: + custom_tags: + - language:java + - department:engineering + - region:us-east-1 + env: production + finished_at: 1693491984000000000 + git: + commit_sha: 66adc9350f2cc9b250b69abddab733dd55e1a588 + repository_url: https://github.com/organization/example-repository + service: shopist + started_at: 1693491974000000000 + team: backend + version: v1.12.07 + id: 4242fcdd31586083 + type: dora_deployment + - attributes: + custom_tags: + - language:go + - department:platform + env: production + finished_at: 1693492084000000000 + git: + commit_sha: 77bdc9350f2cc9b250b69abddab733dd55e1a599 + repository_url: https://github.com/organization/api-service + service: api-service + started_at: 1693492074000000000 + team: backend + version: v2.1.0 + id: 4242fcdd31586084 + type: dora_deployment properties: - attributes: - description: The attributes of the event. - type: object - id: - description: The ID of the event. - type: string - type: - description: The type of the event. - type: string + data: + description: The list of DORA deployment events. + items: + $ref: '#/components/schemas/DORADeploymentObject' + type: array + type: object + DORAFailureFetchResponse: + description: Response for fetching a single failure event. + properties: + data: + $ref: '#/components/schemas/DORAIncidentObject' type: object DORAFailureRequest: description: Request to create a DORA failure event. @@ -16090,11 +16190,45 @@ components: type: string x-enum-varnames: - DORA_FAILURE - DORAFetchResponse: - description: Response for the DORA fetch endpoints. + DORAFailuresListResponse: + description: Response for the list failures endpoint. + example: + data: + - attributes: + custom_tags: + - incident_type:database + - department:engineering + env: production + finished_at: 1693492274000000000 + name: Database outage + services: + - shopist + severity: SEV-1 + started_at: 1693492174000000000 + team: backend + id: 4242fcdd31586085 + type: dora_incident + - attributes: + custom_tags: + - incident_type:service_down + - department:platform + env: production + finished_at: 1693492474000000000 + name: API service outage + services: + - api-service + - payment-service + severity: SEV-2 + started_at: 1693492374000000000 + team: backend + id: 4242fcdd31586086 + type: dora_incident properties: data: - $ref: '#/components/schemas/DORAEvent' + description: The list of DORA incident events. + items: + $ref: '#/components/schemas/DORAIncidentObject' + type: array type: object DORAGitInfo: description: Git info for DORA Metrics events. @@ -16107,6 +16241,82 @@ components: - repository_url - commit_sha type: object + DORAIncidentObject: + description: A DORA incident event. + example: + attributes: + custom_tags: + - incident_type:database + - department:engineering + env: production + finished_at: 1693492274000000000 + git: + commit_sha: 66adc9350f2cc9b250b69abddab733dd55e1a588 + repository_url: https://github.com/organization/example-repository + name: Database outage + services: + - shopist + severity: SEV-1 + started_at: 1693492174000000000 + team: backend + id: 4242fcdd31586085 + type: dora_incident + properties: + attributes: + $ref: '#/components/schemas/DORAIncidentObjectAttributes' + id: + description: The ID of the incident event. + type: string + type: + $ref: '#/components/schemas/DORAFailureType' + type: object + DORAIncidentObjectAttributes: + description: The attributes of the incident event. + properties: + custom_tags: + $ref: '#/components/schemas/DORACustomTags' + env: + description: Environment name that was impacted by the incident. + example: production + type: string + finished_at: + description: Unix timestamp when the incident finished. + example: 1693491984000000000 + format: int64 + type: integer + git: + $ref: '#/components/schemas/DORAGitInfo' + name: + description: Incident name. + example: Database outage + type: string + services: + description: Service names impacted by the incident. + example: + - shopist + items: + type: string + type: array + severity: + description: Incident severity. + example: SEV-1 + type: string + started_at: + description: Unix timestamp when the incident started. + example: 1693491974000000000 + format: int64 + type: integer + team: + description: Name of the team owning the services impacted. + example: backend + type: string + version: + description: Version to correlate with APM Deployment Tracking. + example: v1.12.07 + type: string + required: + - started_at + type: object DORAListDeploymentsRequest: description: Request to get a list of deployments. example: @@ -16126,32 +16336,31 @@ components: type: object DORAListDeploymentsRequestAttributes: description: Attributes to get a list of deployments. - example: - from: '2025-01-01T00:00:00Z' - limit: 500 - query: service:(shopist OR api-service OR payment-service) env:(production - OR staging) team:(backend OR platform) - sort: -started_at - to: '2025-01-31T23:59:59Z' properties: from: description: Minimum timestamp for requested events. + example: '2025-01-01T00:00:00Z' format: date-time type: string limit: default: 10 description: Maximum number of events in the response. + example: 500 format: int32 maximum: 1000 type: integer query: description: Search query with event platform syntax. + example: service:(shopist OR api-service OR payment-service) env:(production + OR staging) team:(backend OR platform) type: string sort: description: Sort order (prefixed with `-` for descending). + example: -started_at type: string to: description: Maximum timestamp for requested events. + example: '2025-01-31T23:59:59Z' format: date-time type: string type: object @@ -16174,9 +16383,11 @@ components: - attributes type: object DORAListDeploymentsRequestDataType: + default: dora_deployments_list_request description: The definition of `DORAListDeploymentsRequestDataType` object. enum: - dora_deployments_list_request + example: dora_deployments_list_request type: string x-enum-varnames: - DORA_DEPLOYMENTS_LIST_REQUEST @@ -16199,32 +16410,31 @@ components: type: object DORAListFailuresRequestAttributes: description: Attributes to get a list of failures. - example: - from: '2025-01-01T00:00:00Z' - limit: 500 - query: severity:(SEV-1 OR SEV-2) env:(production OR staging) service:(shopist - OR api-service OR payment-service) team:(backend OR platform OR payments) - sort: -started_at - to: '2025-01-31T23:59:59Z' properties: from: description: Minimum timestamp for requested events. + example: '2025-01-01T00:00:00Z' format: date-time type: string limit: default: 10 description: Maximum number of events in the response. + example: 500 format: int32 maximum: 1000 type: integer query: description: Search query with event platform syntax. + example: severity:(SEV-1 OR SEV-2) env:(production OR staging) service:(shopist + OR api-service OR payment-service) team:(backend OR platform OR payments) type: string sort: description: Sort order (prefixed with `-` for descending). + example: -started_at type: string to: description: Maximum timestamp for requested events. + example: '2025-01-31T23:59:59Z' format: date-time type: string type: object @@ -16247,54 +16457,14 @@ components: - attributes type: object DORAListFailuresRequestDataType: + default: dora_failures_list_request description: The definition of `DORAListFailuresRequestDataType` object. enum: - dora_failures_list_request + example: dora_failures_list_request type: string x-enum-varnames: - DORA_FAILURES_LIST_REQUEST - DORAListResponse: - description: Response for the DORA list endpoints. - example: - data: - - attributes: - custom_tags: - - language:java - - department:engineering - - region:us-east-1 - env: production - finished_at: 1693491984000000000 - git: - commit_sha: 66adc9350f2cc9b250b69abddab733dd55e1a588 - repository_url: https://github.com/organization/example-repository - service: shopist - started_at: 1693491974000000000 - team: backend - version: v1.12.07 - id: 4242fcdd31586083 - type: dora_deployment - - attributes: - custom_tags: - - language:go - - department:platform - env: production - finished_at: 1693492084000000000 - git: - commit_sha: 77bdc9350f2cc9b250b69abddab733dd55e1a599 - repository_url: https://github.com/organization/api-service - service: api-service - started_at: 1693492074000000000 - team: backend - version: v2.1.0 - id: 4242fcdd31586084 - type: dora_deployment - properties: - data: - description: The list of DORA events. - items: - $ref: '#/components/schemas/DORAEvent' - type: array - type: object DashboardListAddItemsRequest: description: Request containing a list of dashboards to add. properties: @@ -67827,7 +67997,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/DORAListResponse' + $ref: '#/components/schemas/DORADeploymentsListResponse' description: OK '400': content: @@ -67865,26 +68035,8 @@ paths: '200': content: application/json: - example: - data: - attributes: - custom_tags: - - language:java - - department:engineering - - region:us-east-1 - env: staging - finished_at: 1693491984000000000 - git: - commit_sha: 66adc9350f2cc9b250b69abddab733dd55e1a588 - repository_url: https://github.com/organization/example-repository - service: shopist - started_at: 1693491974000000000 - team: backend - version: v1.12.07 - id: 4242fcdd31586083 - type: dora_deployment - schema: - $ref: '#/components/schemas/DORAFetchResponse' + schema: + $ref: '#/components/schemas/DORADeploymentFetchResponse' description: OK '400': content: @@ -68001,66 +68153,8 @@ paths: '200': content: application/json: - example: - data: - - attributes: - custom_tags: - - language:java - - department:engineering - - region:us-east-1 - env: production - finished_at: 1693491984000000000 - git: - commit_sha: 66adc9350f2cc9b250b69abddab733dd55e1a588 - repository_url: https://github.com/organization/example-repository - name: Web server is down; all requests are failing. - services: - - shopist - severity: SEV-1 - started_at: 1693491974000000000 - team: backend - id: 4242fcdd31586085 - type: dora_failure - - attributes: - custom_tags: - - language:go - - department:platform - env: production - finished_at: 1693492084000000000 - git: - commit_sha: 77bdc9350f2cc9b250b69abddab733dd55e1a599 - repository_url: https://github.com/organization/api-service - name: Database connection timeout - services: - - api-service - - payment-service - severity: SEV-1 - started_at: 1693492074000000000 - team: platform - version: v2.1.0 - id: 4242fcdd31586086 - type: dora_failure - - attributes: - custom_tags: - - language:python - - department:payments - - region:eu-west-1 - env: staging - finished_at: 1693492204000000000 - git: - commit_sha: 99edc9350f2cc9b250b69abddab733dd55e1a601 - repository_url: https://github.com/organization/payment-service - name: Payment gateway API rate limit exceeded - services: - - payment-service - severity: SEV-2 - started_at: 1693492174000000000 - team: payments - version: v1.8.3 - id: 4242fcdd31586087 - type: dora_failure - schema: - $ref: '#/components/schemas/DORAListResponse' + schema: + $ref: '#/components/schemas/DORAFailuresListResponse' description: OK '400': content: @@ -68098,28 +68192,8 @@ paths: '200': content: application/json: - example: - data: - attributes: - custom_tags: - - language:java - - department:engineering - - region:us-east-1 - env: staging - finished_at: 1693491984000000000 - git: - commit_sha: 66adc9350f2cc9b250b69abddab733dd55e1a588 - repository_url: https://github.com/organization/example-repository - name: Web server is down; all requests are failing. - services: - - shopist - severity: High - started_at: 1693491974000000000 - team: backend - id: 4242fcdd31586085 - type: dora_failure - schema: - $ref: '#/components/schemas/DORAFetchResponse' + schema: + $ref: '#/components/schemas/DORAFailureFetchResponse' description: OK '400': content: diff --git a/docs/datadog_api_client.v1.model.rst b/docs/datadog_api_client.v1.model.rst index 60a000a874..e8a8207c6e 100644 --- a/docs/datadog_api_client.v1.model.rst +++ b/docs/datadog_api_client.v1.model.rst @@ -767,6 +767,20 @@ datadog\_api\_client.v1.model.event\_timeline\_widget\_definition\_type module :members: :show-inheritance: +datadog\_api\_client.v1.model.events\_aggregation module +-------------------------------------------------------- + +.. automodule:: datadog_api_client.v1.model.events_aggregation + :members: + :show-inheritance: + +datadog\_api\_client.v1.model.events\_aggregation\_value module +--------------------------------------------------------------- + +.. automodule:: datadog_api_client.v1.model.events_aggregation_value + :members: + :show-inheritance: + datadog\_api\_client.v1.model.formula\_and\_function\_apm\_dependency\_stat\_name module ---------------------------------------------------------------------------------------- @@ -3105,6 +3119,41 @@ datadog\_api\_client.v1.model.process\_query\_definition module :members: :show-inheritance: +datadog\_api\_client.v1.model.product\_analytics\_audience\_account\_subquery module +------------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v1.model.product_analytics_audience_account_subquery + :members: + :show-inheritance: + +datadog\_api\_client.v1.model.product\_analytics\_audience\_filters module +-------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v1.model.product_analytics_audience_filters + :members: + :show-inheritance: + +datadog\_api\_client.v1.model.product\_analytics\_audience\_occurrence\_filter module +------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v1.model.product_analytics_audience_occurrence_filter + :members: + :show-inheritance: + +datadog\_api\_client.v1.model.product\_analytics\_audience\_segment\_subquery module +------------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v1.model.product_analytics_audience_segment_subquery + :members: + :show-inheritance: + +datadog\_api\_client.v1.model.product\_analytics\_audience\_user\_subquery module +--------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v1.model.product_analytics_audience_user_subquery + :members: + :show-inheritance: + datadog\_api\_client.v1.model.query\_sort\_order module ------------------------------------------------------- @@ -3175,6 +3224,111 @@ datadog\_api\_client.v1.model.run\_workflow\_widget\_input module :members: :show-inheritance: +datadog\_api\_client.v1.model.sankey\_join\_keys module +------------------------------------------------------- + +.. automodule:: datadog_api_client.v1.model.sankey_join_keys + :members: + :show-inheritance: + +datadog\_api\_client.v1.model.sankey\_network\_data\_source module +------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v1.model.sankey_network_data_source + :members: + :show-inheritance: + +datadog\_api\_client.v1.model.sankey\_network\_query module +----------------------------------------------------------- + +.. automodule:: datadog_api_client.v1.model.sankey_network_query + :members: + :show-inheritance: + +datadog\_api\_client.v1.model.sankey\_network\_query\_compute module +-------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v1.model.sankey_network_query_compute + :members: + :show-inheritance: + +datadog\_api\_client.v1.model.sankey\_network\_query\_mode module +----------------------------------------------------------------- + +.. automodule:: datadog_api_client.v1.model.sankey_network_query_mode + :members: + :show-inheritance: + +datadog\_api\_client.v1.model.sankey\_network\_query\_sort module +----------------------------------------------------------------- + +.. automodule:: datadog_api_client.v1.model.sankey_network_query_sort + :members: + :show-inheritance: + +datadog\_api\_client.v1.model.sankey\_network\_request module +------------------------------------------------------------- + +.. automodule:: datadog_api_client.v1.model.sankey_network_request + :members: + :show-inheritance: + +datadog\_api\_client.v1.model.sankey\_network\_request\_type module +------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v1.model.sankey_network_request_type + :members: + :show-inheritance: + +datadog\_api\_client.v1.model.sankey\_rum\_data\_source module +-------------------------------------------------------------- + +.. automodule:: datadog_api_client.v1.model.sankey_rum_data_source + :members: + :show-inheritance: + +datadog\_api\_client.v1.model.sankey\_rum\_query module +------------------------------------------------------- + +.. automodule:: datadog_api_client.v1.model.sankey_rum_query + :members: + :show-inheritance: + +datadog\_api\_client.v1.model.sankey\_rum\_query\_mode module +------------------------------------------------------------- + +.. automodule:: datadog_api_client.v1.model.sankey_rum_query_mode + :members: + :show-inheritance: + +datadog\_api\_client.v1.model.sankey\_rum\_request module +--------------------------------------------------------- + +.. automodule:: datadog_api_client.v1.model.sankey_rum_request + :members: + :show-inheritance: + +datadog\_api\_client.v1.model.sankey\_widget\_definition module +--------------------------------------------------------------- + +.. automodule:: datadog_api_client.v1.model.sankey_widget_definition + :members: + :show-inheritance: + +datadog\_api\_client.v1.model.sankey\_widget\_definition\_type module +--------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v1.model.sankey_widget_definition_type + :members: + :show-inheritance: + +datadog\_api\_client.v1.model.sankey\_widget\_request module +------------------------------------------------------------ + +.. automodule:: datadog_api_client.v1.model.sankey_widget_request + :members: + :show-inheritance: + datadog\_api\_client.v1.model.scatter\_plot\_request module ----------------------------------------------------------- diff --git a/docs/datadog_api_client.v2.model.rst b/docs/datadog_api_client.v2.model.rst index 2e859a4f0f..831f388abf 100644 --- a/docs/datadog_api_client.v2.model.rst +++ b/docs/datadog_api_client.v2.model.rst @@ -7214,6 +7214,27 @@ datadog\_api\_client.v2.model.domain\_allowlist\_type module :members: :show-inheritance: +datadog\_api\_client.v2.model.dora\_deployment\_fetch\_response module +---------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.dora_deployment_fetch_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.dora\_deployment\_object module +------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.dora_deployment_object + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.dora\_deployment\_object\_attributes module +------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.dora_deployment_object_attributes + :members: + :show-inheritance: + datadog\_api\_client.v2.model.dora\_deployment\_request module -------------------------------------------------------------- @@ -7256,10 +7277,17 @@ datadog\_api\_client.v2.model.dora\_deployment\_type module :members: :show-inheritance: -datadog\_api\_client.v2.model.dora\_event module ------------------------------------------------- +datadog\_api\_client.v2.model.dora\_deployments\_list\_response module +---------------------------------------------------------------------- -.. automodule:: datadog_api_client.v2.model.dora_event +.. automodule:: datadog_api_client.v2.model.dora_deployments_list_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.dora\_failure\_fetch\_response module +------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.dora_failure_fetch_response :members: :show-inheritance: @@ -7305,10 +7333,10 @@ datadog\_api\_client.v2.model.dora\_failure\_type module :members: :show-inheritance: -datadog\_api\_client.v2.model.dora\_fetch\_response module ----------------------------------------------------------- +datadog\_api\_client.v2.model.dora\_failures\_list\_response module +------------------------------------------------------------------- -.. automodule:: datadog_api_client.v2.model.dora_fetch_response +.. automodule:: datadog_api_client.v2.model.dora_failures_list_response :members: :show-inheritance: @@ -7319,6 +7347,20 @@ datadog\_api\_client.v2.model.dora\_git\_info module :members: :show-inheritance: +datadog\_api\_client.v2.model.dora\_incident\_object module +----------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.dora_incident_object + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.dora\_incident\_object\_attributes module +----------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.dora_incident_object_attributes + :members: + :show-inheritance: + datadog\_api\_client.v2.model.dora\_list\_deployments\_request module --------------------------------------------------------------------- @@ -7375,13 +7417,6 @@ datadog\_api\_client.v2.model.dora\_list\_failures\_request\_data\_type module :members: :show-inheritance: -datadog\_api\_client.v2.model.dora\_list\_response module ---------------------------------------------------------- - -.. automodule:: datadog_api_client.v2.model.dora_list_response - :members: - :show-inheritance: - datadog\_api\_client.v2.model.downtime\_create\_request module -------------------------------------------------------------- diff --git a/examples/v1/dashboards/CreateDashboard_258152475.py b/examples/v1/dashboards/CreateDashboard_258152475.py new file mode 100644 index 0000000000..b178225675 --- /dev/null +++ b/examples/v1/dashboards/CreateDashboard_258152475.py @@ -0,0 +1,62 @@ +""" +Create a new dashboard with sankey widget and network data source +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v1.api.dashboards_api import DashboardsApi +from datadog_api_client.v1.model.dashboard import Dashboard +from datadog_api_client.v1.model.dashboard_layout_type import DashboardLayoutType +from datadog_api_client.v1.model.sankey_network_data_source import SankeyNetworkDataSource +from datadog_api_client.v1.model.sankey_network_query import SankeyNetworkQuery +from datadog_api_client.v1.model.sankey_network_request import SankeyNetworkRequest +from datadog_api_client.v1.model.sankey_network_request_type import SankeyNetworkRequestType +from datadog_api_client.v1.model.sankey_widget_definition import SankeyWidgetDefinition +from datadog_api_client.v1.model.sankey_widget_definition_type import SankeyWidgetDefinitionType +from datadog_api_client.v1.model.widget import Widget +from datadog_api_client.v1.model.widget_layout import WidgetLayout +from datadog_api_client.v1.model.widget_text_align import WidgetTextAlign + +body = Dashboard( + title="Example-Dashboard", + description="", + widgets=[ + Widget( + layout=WidgetLayout( + x=0, + y=0, + width=47, + height=15, + ), + definition=SankeyWidgetDefinition( + title="", + title_size="16", + title_align=WidgetTextAlign.LEFT, + type=SankeyWidgetDefinitionType.SANKEY, + requests=[ + SankeyNetworkRequest( + query=SankeyNetworkQuery( + data_source=SankeyNetworkDataSource.NETWORK, + query_string="*", + group_by=[ + "source", + "destination", + ], + limit=100, + ), + request_type=SankeyNetworkRequestType.NETFLOW_SANKEY, + ), + ], + ), + ), + ], + template_variables=[], + layout_type=DashboardLayoutType.FREE, + notify_list=[], +) + +configuration = Configuration() +with ApiClient(configuration) as api_client: + api_instance = DashboardsApi(api_client) + response = api_instance.create_dashboard(body=body) + + print(response) diff --git a/examples/v1/dashboards/CreateDashboard_2932151909.py b/examples/v1/dashboards/CreateDashboard_2932151909.py new file mode 100644 index 0000000000..48db8f8192 --- /dev/null +++ b/examples/v1/dashboards/CreateDashboard_2932151909.py @@ -0,0 +1,58 @@ +""" +Create a new dashboard with sankey widget and rum data source +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v1.api.dashboards_api import DashboardsApi +from datadog_api_client.v1.model.dashboard import Dashboard +from datadog_api_client.v1.model.dashboard_layout_type import DashboardLayoutType +from datadog_api_client.v1.model.sankey_rum_data_source import SankeyRumDataSource +from datadog_api_client.v1.model.sankey_rum_query import SankeyRumQuery +from datadog_api_client.v1.model.sankey_rum_query_mode import SankeyRumQueryMode +from datadog_api_client.v1.model.sankey_rum_request import SankeyRumRequest +from datadog_api_client.v1.model.sankey_widget_definition import SankeyWidgetDefinition +from datadog_api_client.v1.model.sankey_widget_definition_type import SankeyWidgetDefinitionType +from datadog_api_client.v1.model.widget import Widget +from datadog_api_client.v1.model.widget_layout import WidgetLayout +from datadog_api_client.v1.model.widget_text_align import WidgetTextAlign + +body = Dashboard( + title="Example-Dashboard", + description="", + widgets=[ + Widget( + layout=WidgetLayout( + x=0, + y=0, + width=47, + height=15, + ), + definition=SankeyWidgetDefinition( + title="", + title_size="16", + title_align=WidgetTextAlign.LEFT, + type=SankeyWidgetDefinitionType.SANKEY, + requests=[ + SankeyRumRequest( + query=SankeyRumQuery( + data_source=SankeyRumDataSource.RUM, + query_string="@type:view", + mode=SankeyRumQueryMode.SOURCE, + ), + request_type=SankeyWidgetDefinitionType.SANKEY, + ), + ], + ), + ), + ], + template_variables=[], + layout_type=DashboardLayoutType.FREE, + notify_list=[], +) + +configuration = Configuration() +with ApiClient(configuration) as api_client: + api_instance = DashboardsApi(api_client) + response = api_instance.create_dashboard(body=body) + + print(response) diff --git a/examples/v1/dashboards/CreateDashboard_373890042.py b/examples/v1/dashboards/CreateDashboard_373890042.py new file mode 100644 index 0000000000..a843810ba3 --- /dev/null +++ b/examples/v1/dashboards/CreateDashboard_373890042.py @@ -0,0 +1,58 @@ +""" +Create a new dashboard with sankey widget and product analytics data source +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v1.api.dashboards_api import DashboardsApi +from datadog_api_client.v1.model.dashboard import Dashboard +from datadog_api_client.v1.model.dashboard_layout_type import DashboardLayoutType +from datadog_api_client.v1.model.sankey_rum_data_source import SankeyRumDataSource +from datadog_api_client.v1.model.sankey_rum_query import SankeyRumQuery +from datadog_api_client.v1.model.sankey_rum_query_mode import SankeyRumQueryMode +from datadog_api_client.v1.model.sankey_rum_request import SankeyRumRequest +from datadog_api_client.v1.model.sankey_widget_definition import SankeyWidgetDefinition +from datadog_api_client.v1.model.sankey_widget_definition_type import SankeyWidgetDefinitionType +from datadog_api_client.v1.model.widget import Widget +from datadog_api_client.v1.model.widget_layout import WidgetLayout +from datadog_api_client.v1.model.widget_text_align import WidgetTextAlign + +body = Dashboard( + title="Example-Dashboard", + description="", + widgets=[ + Widget( + layout=WidgetLayout( + x=0, + y=0, + width=47, + height=15, + ), + definition=SankeyWidgetDefinition( + title="", + title_size="16", + title_align=WidgetTextAlign.LEFT, + type=SankeyWidgetDefinitionType.SANKEY, + requests=[ + SankeyRumRequest( + query=SankeyRumQuery( + data_source=SankeyRumDataSource.PRODUCT_ANALYTICS, + query_string="@type:session", + mode=SankeyRumQueryMode.SOURCE, + ), + request_type=SankeyWidgetDefinitionType.SANKEY, + ), + ], + ), + ), + ], + template_variables=[], + layout_type=DashboardLayoutType.FREE, + notify_list=[], +) + +configuration = Configuration() +with ApiClient(configuration) as api_client: + api_instance = DashboardsApi(api_client) + response = api_instance.create_dashboard(body=body) + + print(response) diff --git a/src/datadog_api_client/v1/model/events_aggregation.py b/src/datadog_api_client/v1/model/events_aggregation.py new file mode 100644 index 0000000000..e35de67c8c --- /dev/null +++ b/src/datadog_api_client/v1/model/events_aggregation.py @@ -0,0 +1,34 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelComposed, + cached_property, +) + + +class EventsAggregation(ModelComposed): + def __init__(self, **kwargs): + """ + The type of aggregation that can be performed on events-based queries. + """ + super().__init__(kwargs) + + @cached_property + def _composed_schemas(_): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + return { + "oneOf": [ + str, + str, + ], + } diff --git a/src/datadog_api_client/v1/model/events_aggregation_value.py b/src/datadog_api_client/v1/model/events_aggregation_value.py new file mode 100644 index 0000000000..04a265414b --- /dev/null +++ b/src/datadog_api_client/v1/model/events_aggregation_value.py @@ -0,0 +1,65 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class EventsAggregationValue(ModelSimple): + """ + Standard aggregation types for events-based queries. + + :param value: Must be one of ["avg", "cardinality", "count", "delta", "earliest", "latest", "max", "median", "min", "most_frequent", "sum"]. + :type value: str + """ + + allowed_values = { + "avg", + "cardinality", + "count", + "delta", + "earliest", + "latest", + "max", + "median", + "min", + "most_frequent", + "sum", + } + AVG: ClassVar["EventsAggregationValue"] + CARDINALITY: ClassVar["EventsAggregationValue"] + COUNT: ClassVar["EventsAggregationValue"] + DELTA: ClassVar["EventsAggregationValue"] + EARLIEST: ClassVar["EventsAggregationValue"] + LATEST: ClassVar["EventsAggregationValue"] + MAX: ClassVar["EventsAggregationValue"] + MEDIAN: ClassVar["EventsAggregationValue"] + MIN: ClassVar["EventsAggregationValue"] + MOST_FREQUENT: ClassVar["EventsAggregationValue"] + SUM: ClassVar["EventsAggregationValue"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +EventsAggregationValue.AVG = EventsAggregationValue("avg") +EventsAggregationValue.CARDINALITY = EventsAggregationValue("cardinality") +EventsAggregationValue.COUNT = EventsAggregationValue("count") +EventsAggregationValue.DELTA = EventsAggregationValue("delta") +EventsAggregationValue.EARLIEST = EventsAggregationValue("earliest") +EventsAggregationValue.LATEST = EventsAggregationValue("latest") +EventsAggregationValue.MAX = EventsAggregationValue("max") +EventsAggregationValue.MEDIAN = EventsAggregationValue("median") +EventsAggregationValue.MIN = EventsAggregationValue("min") +EventsAggregationValue.MOST_FREQUENT = EventsAggregationValue("most_frequent") +EventsAggregationValue.SUM = EventsAggregationValue("sum") diff --git a/src/datadog_api_client/v1/model/product_analytics_audience_account_subquery.py b/src/datadog_api_client/v1/model/product_analytics_audience_account_subquery.py new file mode 100644 index 0000000000..85759a2ebe --- /dev/null +++ b/src/datadog_api_client/v1/model/product_analytics_audience_account_subquery.py @@ -0,0 +1,43 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +class ProductAnalyticsAudienceAccountSubquery(ModelNormal): + @cached_property + def openapi_types(_): + return { + "name": (str,), + "query": (str,), + } + + attribute_map = { + "name": "name", + "query": "query", + } + + def __init__(self_, name: Union[str, UnsetType] = unset, query: Union[str, UnsetType] = unset, **kwargs): + """ + Product Analytics audience account subquery. + + :param name: + :type name: str, optional + + :param query: + :type query: str, optional + """ + if name is not unset: + kwargs["name"] = name + if query is not unset: + kwargs["query"] = query + super().__init__(kwargs) diff --git a/src/datadog_api_client/v1/model/product_analytics_audience_filters.py b/src/datadog_api_client/v1/model/product_analytics_audience_filters.py new file mode 100644 index 0000000000..65b722e9cf --- /dev/null +++ b/src/datadog_api_client/v1/model/product_analytics_audience_filters.py @@ -0,0 +1,86 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v1.model.product_analytics_audience_account_subquery import ( + ProductAnalyticsAudienceAccountSubquery, + ) + from datadog_api_client.v1.model.product_analytics_audience_segment_subquery import ( + ProductAnalyticsAudienceSegmentSubquery, + ) + from datadog_api_client.v1.model.product_analytics_audience_user_subquery import ( + ProductAnalyticsAudienceUserSubquery, + ) + + +class ProductAnalyticsAudienceFilters(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v1.model.product_analytics_audience_account_subquery import ( + ProductAnalyticsAudienceAccountSubquery, + ) + from datadog_api_client.v1.model.product_analytics_audience_segment_subquery import ( + ProductAnalyticsAudienceSegmentSubquery, + ) + from datadog_api_client.v1.model.product_analytics_audience_user_subquery import ( + ProductAnalyticsAudienceUserSubquery, + ) + + return { + "accounts": ([ProductAnalyticsAudienceAccountSubquery],), + "filter_condition": (str,), + "segments": ([ProductAnalyticsAudienceSegmentSubquery],), + "users": ([ProductAnalyticsAudienceUserSubquery],), + } + + attribute_map = { + "accounts": "accounts", + "filter_condition": "filter_condition", + "segments": "segments", + "users": "users", + } + + def __init__( + self_, + accounts: Union[List[ProductAnalyticsAudienceAccountSubquery], UnsetType] = unset, + filter_condition: Union[str, UnsetType] = unset, + segments: Union[List[ProductAnalyticsAudienceSegmentSubquery], UnsetType] = unset, + users: Union[List[ProductAnalyticsAudienceUserSubquery], UnsetType] = unset, + **kwargs, + ): + """ + Product Analytics/RUM audience filters. + + :param accounts: + :type accounts: [ProductAnalyticsAudienceAccountSubquery], optional + + :param filter_condition: + :type filter_condition: str, optional + + :param segments: + :type segments: [ProductAnalyticsAudienceSegmentSubquery], optional + + :param users: + :type users: [ProductAnalyticsAudienceUserSubquery], optional + """ + if accounts is not unset: + kwargs["accounts"] = accounts + if filter_condition is not unset: + kwargs["filter_condition"] = filter_condition + if segments is not unset: + kwargs["segments"] = segments + if users is not unset: + kwargs["users"] = users + super().__init__(kwargs) diff --git a/src/datadog_api_client/v1/model/product_analytics_audience_occurrence_filter.py b/src/datadog_api_client/v1/model/product_analytics_audience_occurrence_filter.py new file mode 100644 index 0000000000..a69ee3edbd --- /dev/null +++ b/src/datadog_api_client/v1/model/product_analytics_audience_occurrence_filter.py @@ -0,0 +1,43 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +class ProductAnalyticsAudienceOccurrenceFilter(ModelNormal): + @cached_property + def openapi_types(_): + return { + "operator": (str,), + "value": (str,), + } + + attribute_map = { + "operator": "operator", + "value": "value", + } + + def __init__(self_, operator: Union[str, UnsetType] = unset, value: Union[str, UnsetType] = unset, **kwargs): + """ + + + :param operator: + :type operator: str, optional + + :param value: + :type value: str, optional + """ + if operator is not unset: + kwargs["operator"] = operator + if value is not unset: + kwargs["value"] = value + super().__init__(kwargs) diff --git a/src/datadog_api_client/v1/model/product_analytics_audience_segment_subquery.py b/src/datadog_api_client/v1/model/product_analytics_audience_segment_subquery.py new file mode 100644 index 0000000000..11133f6eed --- /dev/null +++ b/src/datadog_api_client/v1/model/product_analytics_audience_segment_subquery.py @@ -0,0 +1,43 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +class ProductAnalyticsAudienceSegmentSubquery(ModelNormal): + @cached_property + def openapi_types(_): + return { + "name": (str,), + "segment_id": (str,), + } + + attribute_map = { + "name": "name", + "segment_id": "segment_id", + } + + def __init__(self_, name: Union[str, UnsetType] = unset, segment_id: Union[str, UnsetType] = unset, **kwargs): + """ + Product Analytics audience segment subquery. + + :param name: + :type name: str, optional + + :param segment_id: + :type segment_id: str, optional + """ + if name is not unset: + kwargs["name"] = name + if segment_id is not unset: + kwargs["segment_id"] = segment_id + super().__init__(kwargs) diff --git a/src/datadog_api_client/v1/model/product_analytics_audience_user_subquery.py b/src/datadog_api_client/v1/model/product_analytics_audience_user_subquery.py new file mode 100644 index 0000000000..710604044c --- /dev/null +++ b/src/datadog_api_client/v1/model/product_analytics_audience_user_subquery.py @@ -0,0 +1,43 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +class ProductAnalyticsAudienceUserSubquery(ModelNormal): + @cached_property + def openapi_types(_): + return { + "name": (str,), + "query": (str,), + } + + attribute_map = { + "name": "name", + "query": "query", + } + + def __init__(self_, name: Union[str, UnsetType] = unset, query: Union[str, UnsetType] = unset, **kwargs): + """ + Product Analytics audience user subquery. + + :param name: + :type name: str, optional + + :param query: + :type query: str, optional + """ + if name is not unset: + kwargs["name"] = name + if query is not unset: + kwargs["query"] = query + super().__init__(kwargs) diff --git a/src/datadog_api_client/v1/model/sankey_join_keys.py b/src/datadog_api_client/v1/model/sankey_join_keys.py new file mode 100644 index 0000000000..fd2bfcfd64 --- /dev/null +++ b/src/datadog_api_client/v1/model/sankey_join_keys.py @@ -0,0 +1,47 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +class SankeyJoinKeys(ModelNormal): + @cached_property + def additional_properties_type(_): + return None + + @cached_property + def openapi_types(_): + return { + "primary": (str,), + "secondary": ([str],), + } + + attribute_map = { + "primary": "primary", + "secondary": "secondary", + } + + def __init__(self_, primary: str, secondary: Union[List[str], UnsetType] = unset, **kwargs): + """ + Join keys. + + :param primary: Primary join key. + :type primary: str + + :param secondary: Secondary join keys. + :type secondary: [str], optional + """ + if secondary is not unset: + kwargs["secondary"] = secondary + super().__init__(kwargs) + + self_.primary = primary diff --git a/src/datadog_api_client/v1/model/sankey_network_data_source.py b/src/datadog_api_client/v1/model/sankey_network_data_source.py new file mode 100644 index 0000000000..0415d5894a --- /dev/null +++ b/src/datadog_api_client/v1/model/sankey_network_data_source.py @@ -0,0 +1,38 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class SankeyNetworkDataSource(ModelSimple): + """ + Network data source type. + + :param value: If omitted defaults to "network". Must be one of ["network_device_flows", "network"]. + :type value: str + """ + + allowed_values = { + "network_device_flows", + "network", + } + NETWORK_DEVICE_FLOWS: ClassVar["SankeyNetworkDataSource"] + NETWORK: ClassVar["SankeyNetworkDataSource"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +SankeyNetworkDataSource.NETWORK_DEVICE_FLOWS = SankeyNetworkDataSource("network_device_flows") +SankeyNetworkDataSource.NETWORK = SankeyNetworkDataSource("network") diff --git a/src/datadog_api_client/v1/model/sankey_network_query.py b/src/datadog_api_client/v1/model/sankey_network_query.py new file mode 100644 index 0000000000..2c261cf584 --- /dev/null +++ b/src/datadog_api_client/v1/model/sankey_network_query.py @@ -0,0 +1,109 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v1.model.sankey_network_query_compute import SankeyNetworkQueryCompute + from datadog_api_client.v1.model.sankey_network_data_source import SankeyNetworkDataSource + from datadog_api_client.v1.model.sankey_network_query_mode import SankeyNetworkQueryMode + from datadog_api_client.v1.model.sankey_network_query_sort import SankeyNetworkQuerySort + + +class SankeyNetworkQuery(ModelNormal): + @cached_property + def additional_properties_type(_): + return None + + @cached_property + def openapi_types(_): + from datadog_api_client.v1.model.sankey_network_query_compute import SankeyNetworkQueryCompute + from datadog_api_client.v1.model.sankey_network_data_source import SankeyNetworkDataSource + from datadog_api_client.v1.model.sankey_network_query_mode import SankeyNetworkQueryMode + from datadog_api_client.v1.model.sankey_network_query_sort import SankeyNetworkQuerySort + + return { + "compute": (SankeyNetworkQueryCompute,), + "data_source": (SankeyNetworkDataSource,), + "group_by": ([str],), + "limit": (int,), + "mode": (SankeyNetworkQueryMode,), + "query_string": (str,), + "should_exclude_missing": (bool,), + "sort": (SankeyNetworkQuerySort,), + } + + attribute_map = { + "compute": "compute", + "data_source": "data_source", + "group_by": "group_by", + "limit": "limit", + "mode": "mode", + "query_string": "query_string", + "should_exclude_missing": "should_exclude_missing", + "sort": "sort", + } + + def __init__( + self_, + data_source: SankeyNetworkDataSource, + group_by: List[str], + limit: int, + query_string: str, + compute: Union[SankeyNetworkQueryCompute, UnsetType] = unset, + mode: Union[SankeyNetworkQueryMode, UnsetType] = unset, + should_exclude_missing: Union[bool, UnsetType] = unset, + sort: Union[SankeyNetworkQuerySort, UnsetType] = unset, + **kwargs, + ): + """ + Query configuration for Sankey network widget. + + :param compute: Compute aggregation for network queries. + :type compute: SankeyNetworkQueryCompute, optional + + :param data_source: Network data source type. + :type data_source: SankeyNetworkDataSource + + :param group_by: Fields to group by. + :type group_by: [str] + + :param limit: Maximum number of results. + :type limit: int + + :param mode: Sankey mode for network queries. + :type mode: SankeyNetworkQueryMode, optional + + :param query_string: Query string for filtering network data. + :type query_string: str + + :param should_exclude_missing: Whether to exclude missing values. + :type should_exclude_missing: bool, optional + + :param sort: Sort configuration for network queries. + :type sort: SankeyNetworkQuerySort, optional + """ + if compute is not unset: + kwargs["compute"] = compute + if mode is not unset: + kwargs["mode"] = mode + if should_exclude_missing is not unset: + kwargs["should_exclude_missing"] = should_exclude_missing + if sort is not unset: + kwargs["sort"] = sort + super().__init__(kwargs) + + self_.data_source = data_source + self_.group_by = group_by + self_.limit = limit + self_.query_string = query_string diff --git a/src/datadog_api_client/v1/model/sankey_network_query_compute.py b/src/datadog_api_client/v1/model/sankey_network_query_compute.py new file mode 100644 index 0000000000..be40eceb0c --- /dev/null +++ b/src/datadog_api_client/v1/model/sankey_network_query_compute.py @@ -0,0 +1,50 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v1.model.events_aggregation import EventsAggregation + + +class SankeyNetworkQueryCompute(ModelNormal): + @cached_property + def additional_properties_type(_): + return None + + @cached_property + def openapi_types(_): + from datadog_api_client.v1.model.events_aggregation import EventsAggregation + + return { + "aggregation": (EventsAggregation,), + "metric": (str,), + } + + attribute_map = { + "aggregation": "aggregation", + "metric": "metric", + } + + def __init__(self_, aggregation: Union[EventsAggregation, str, str], metric: str, **kwargs): + """ + Compute aggregation for network queries. + + :param aggregation: The type of aggregation that can be performed on events-based queries. + :type aggregation: EventsAggregation + + :param metric: Metric to aggregate. + :type metric: str + """ + super().__init__(kwargs) + + self_.aggregation = aggregation + self_.metric = metric diff --git a/src/datadog_api_client/v1/model/sankey_network_query_mode.py b/src/datadog_api_client/v1/model/sankey_network_query_mode.py new file mode 100644 index 0000000000..5d32f8168f --- /dev/null +++ b/src/datadog_api_client/v1/model/sankey_network_query_mode.py @@ -0,0 +1,35 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class SankeyNetworkQueryMode(ModelSimple): + """ + Sankey mode for network queries. + + :param value: If omitted defaults to "target". Must be one of ["target"]. + :type value: str + """ + + allowed_values = { + "target", + } + TARGET: ClassVar["SankeyNetworkQueryMode"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +SankeyNetworkQueryMode.TARGET = SankeyNetworkQueryMode("target") diff --git a/src/datadog_api_client/v1/model/sankey_network_query_sort.py b/src/datadog_api_client/v1/model/sankey_network_query_sort.py new file mode 100644 index 0000000000..c51d3a5a20 --- /dev/null +++ b/src/datadog_api_client/v1/model/sankey_network_query_sort.py @@ -0,0 +1,49 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v1.model.widget_sort import WidgetSort + + +class SankeyNetworkQuerySort(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v1.model.widget_sort import WidgetSort + + return { + "field": (str,), + "order": (WidgetSort,), + } + + attribute_map = { + "field": "field", + "order": "order", + } + + def __init__(self_, field: Union[str, UnsetType] = unset, order: Union[WidgetSort, UnsetType] = unset, **kwargs): + """ + Sort configuration for network queries. + + :param field: Field to sort by. + :type field: str, optional + + :param order: Widget sorting methods. + :type order: WidgetSort, optional + """ + if field is not unset: + kwargs["field"] = field + if order is not unset: + kwargs["order"] = order + super().__init__(kwargs) diff --git a/src/datadog_api_client/v1/model/sankey_network_request.py b/src/datadog_api_client/v1/model/sankey_network_request.py new file mode 100644 index 0000000000..bb3745221c --- /dev/null +++ b/src/datadog_api_client/v1/model/sankey_network_request.py @@ -0,0 +1,52 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v1.model.sankey_network_query import SankeyNetworkQuery + from datadog_api_client.v1.model.sankey_network_request_type import SankeyNetworkRequestType + + +class SankeyNetworkRequest(ModelNormal): + @cached_property + def additional_properties_type(_): + return None + + @cached_property + def openapi_types(_): + from datadog_api_client.v1.model.sankey_network_query import SankeyNetworkQuery + from datadog_api_client.v1.model.sankey_network_request_type import SankeyNetworkRequestType + + return { + "query": (SankeyNetworkQuery,), + "request_type": (SankeyNetworkRequestType,), + } + + attribute_map = { + "query": "query", + "request_type": "request_type", + } + + def __init__(self_, query: SankeyNetworkQuery, request_type: SankeyNetworkRequestType, **kwargs): + """ + Sankey widget request for network data source. + + :param query: Query configuration for Sankey network widget. + :type query: SankeyNetworkQuery + + :param request_type: Type of request for network Sankey widget. + :type request_type: SankeyNetworkRequestType + """ + super().__init__(kwargs) + + self_.query = query + self_.request_type = request_type diff --git a/src/datadog_api_client/v1/model/sankey_network_request_type.py b/src/datadog_api_client/v1/model/sankey_network_request_type.py new file mode 100644 index 0000000000..33a55166db --- /dev/null +++ b/src/datadog_api_client/v1/model/sankey_network_request_type.py @@ -0,0 +1,35 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class SankeyNetworkRequestType(ModelSimple): + """ + Type of request for network Sankey widget. + + :param value: If omitted defaults to "netflow_sankey". Must be one of ["netflow_sankey"]. + :type value: str + """ + + allowed_values = { + "netflow_sankey", + } + NETFLOW_SANKEY: ClassVar["SankeyNetworkRequestType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +SankeyNetworkRequestType.NETFLOW_SANKEY = SankeyNetworkRequestType("netflow_sankey") diff --git a/src/datadog_api_client/v1/model/sankey_rum_data_source.py b/src/datadog_api_client/v1/model/sankey_rum_data_source.py new file mode 100644 index 0000000000..7945d0fbaf --- /dev/null +++ b/src/datadog_api_client/v1/model/sankey_rum_data_source.py @@ -0,0 +1,38 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class SankeyRumDataSource(ModelSimple): + """ + Sankey widget with RUM data source. + + :param value: If omitted defaults to "rum". Must be one of ["rum", "product_analytics"]. + :type value: str + """ + + allowed_values = { + "rum", + "product_analytics", + } + RUM: ClassVar["SankeyRumDataSource"] + PRODUCT_ANALYTICS: ClassVar["SankeyRumDataSource"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +SankeyRumDataSource.RUM = SankeyRumDataSource("rum") +SankeyRumDataSource.PRODUCT_ANALYTICS = SankeyRumDataSource("product_analytics") diff --git a/src/datadog_api_client/v1/model/sankey_rum_query.py b/src/datadog_api_client/v1/model/sankey_rum_query.py new file mode 100644 index 0000000000..8a22933b12 --- /dev/null +++ b/src/datadog_api_client/v1/model/sankey_rum_query.py @@ -0,0 +1,140 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v1.model.product_analytics_audience_filters import ProductAnalyticsAudienceFilters + from datadog_api_client.v1.model.sankey_rum_data_source import SankeyRumDataSource + from datadog_api_client.v1.model.sankey_join_keys import SankeyJoinKeys + from datadog_api_client.v1.model.sankey_rum_query_mode import SankeyRumQueryMode + from datadog_api_client.v1.model.product_analytics_audience_occurrence_filter import ( + ProductAnalyticsAudienceOccurrenceFilter, + ) + + +class SankeyRumQuery(ModelNormal): + @cached_property + def additional_properties_type(_): + return None + + @cached_property + def openapi_types(_): + from datadog_api_client.v1.model.product_analytics_audience_filters import ProductAnalyticsAudienceFilters + from datadog_api_client.v1.model.sankey_rum_data_source import SankeyRumDataSource + from datadog_api_client.v1.model.sankey_join_keys import SankeyJoinKeys + from datadog_api_client.v1.model.sankey_rum_query_mode import SankeyRumQueryMode + from datadog_api_client.v1.model.product_analytics_audience_occurrence_filter import ( + ProductAnalyticsAudienceOccurrenceFilter, + ) + + return { + "audience_filters": (ProductAnalyticsAudienceFilters,), + "data_source": (SankeyRumDataSource,), + "entries_per_step": (int,), + "join_keys": (SankeyJoinKeys,), + "mode": (SankeyRumQueryMode,), + "number_of_steps": (int,), + "occurrences": (ProductAnalyticsAudienceOccurrenceFilter,), + "query_string": (str,), + "source": (str,), + "subquery_id": (str,), + "target": (str,), + } + + attribute_map = { + "audience_filters": "audience_filters", + "data_source": "data_source", + "entries_per_step": "entries_per_step", + "join_keys": "join_keys", + "mode": "mode", + "number_of_steps": "number_of_steps", + "occurrences": "occurrences", + "query_string": "query_string", + "source": "source", + "subquery_id": "subquery_id", + "target": "target", + } + + def __init__( + self_, + data_source: SankeyRumDataSource, + mode: SankeyRumQueryMode, + query_string: str, + audience_filters: Union[ProductAnalyticsAudienceFilters, UnsetType] = unset, + entries_per_step: Union[int, UnsetType] = unset, + join_keys: Union[SankeyJoinKeys, UnsetType] = unset, + number_of_steps: Union[int, UnsetType] = unset, + occurrences: Union[ProductAnalyticsAudienceOccurrenceFilter, UnsetType] = unset, + source: Union[str, UnsetType] = unset, + subquery_id: Union[str, UnsetType] = unset, + target: Union[str, UnsetType] = unset, + **kwargs, + ): + """ + Sankey widget with RUM data source query. + + :param audience_filters: Product Analytics/RUM audience filters. + :type audience_filters: ProductAnalyticsAudienceFilters, optional + + :param data_source: Sankey widget with RUM data source. + :type data_source: SankeyRumDataSource + + :param entries_per_step: Entries per step. + :type entries_per_step: int, optional + + :param join_keys: Join keys. + :type join_keys: SankeyJoinKeys, optional + + :param mode: Sankey mode for RUM queries. + :type mode: SankeyRumQueryMode + + :param number_of_steps: Number of steps. + :type number_of_steps: int, optional + + :param occurrences: + :type occurrences: ProductAnalyticsAudienceOccurrenceFilter, optional + + :param query_string: Query string. + :type query_string: str + + :param source: Source. + :type source: str, optional + + :param subquery_id: Subquery ID. + :type subquery_id: str, optional + + :param target: Target. + :type target: str, optional + """ + if audience_filters is not unset: + kwargs["audience_filters"] = audience_filters + if entries_per_step is not unset: + kwargs["entries_per_step"] = entries_per_step + if join_keys is not unset: + kwargs["join_keys"] = join_keys + if number_of_steps is not unset: + kwargs["number_of_steps"] = number_of_steps + if occurrences is not unset: + kwargs["occurrences"] = occurrences + if source is not unset: + kwargs["source"] = source + if subquery_id is not unset: + kwargs["subquery_id"] = subquery_id + if target is not unset: + kwargs["target"] = target + super().__init__(kwargs) + + self_.data_source = data_source + self_.mode = mode + self_.query_string = query_string diff --git a/src/datadog_api_client/v1/model/sankey_rum_query_mode.py b/src/datadog_api_client/v1/model/sankey_rum_query_mode.py new file mode 100644 index 0000000000..186e27d5cd --- /dev/null +++ b/src/datadog_api_client/v1/model/sankey_rum_query_mode.py @@ -0,0 +1,38 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class SankeyRumQueryMode(ModelSimple): + """ + Sankey mode for RUM queries. + + :param value: If omitted defaults to "source". Must be one of ["source", "target"]. + :type value: str + """ + + allowed_values = { + "source", + "target", + } + SOURCE: ClassVar["SankeyRumQueryMode"] + TARGET: ClassVar["SankeyRumQueryMode"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +SankeyRumQueryMode.SOURCE = SankeyRumQueryMode("source") +SankeyRumQueryMode.TARGET = SankeyRumQueryMode("target") diff --git a/src/datadog_api_client/v1/model/sankey_rum_request.py b/src/datadog_api_client/v1/model/sankey_rum_request.py new file mode 100644 index 0000000000..928efc550a --- /dev/null +++ b/src/datadog_api_client/v1/model/sankey_rum_request.py @@ -0,0 +1,52 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v1.model.sankey_rum_query import SankeyRumQuery + from datadog_api_client.v1.model.sankey_widget_definition_type import SankeyWidgetDefinitionType + + +class SankeyRumRequest(ModelNormal): + @cached_property + def additional_properties_type(_): + return None + + @cached_property + def openapi_types(_): + from datadog_api_client.v1.model.sankey_rum_query import SankeyRumQuery + from datadog_api_client.v1.model.sankey_widget_definition_type import SankeyWidgetDefinitionType + + return { + "query": (SankeyRumQuery,), + "request_type": (SankeyWidgetDefinitionType,), + } + + attribute_map = { + "query": "query", + "request_type": "request_type", + } + + def __init__(self_, query: SankeyRumQuery, request_type: SankeyWidgetDefinitionType, **kwargs): + """ + Sankey widget with RUM data source. + + :param query: Sankey widget with RUM data source query. + :type query: SankeyRumQuery + + :param request_type: Type of the Sankey widget. + :type request_type: SankeyWidgetDefinitionType + """ + super().__init__(kwargs) + + self_.query = query + self_.request_type = request_type diff --git a/src/datadog_api_client/v1/model/sankey_widget_definition.py b/src/datadog_api_client/v1/model/sankey_widget_definition.py new file mode 100644 index 0000000000..5d1c9c70f9 --- /dev/null +++ b/src/datadog_api_client/v1/model/sankey_widget_definition.py @@ -0,0 +1,122 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v1.model.sankey_widget_request import SankeyWidgetRequest + from datadog_api_client.v1.model.widget_time import WidgetTime + from datadog_api_client.v1.model.widget_text_align import WidgetTextAlign + from datadog_api_client.v1.model.sankey_widget_definition_type import SankeyWidgetDefinitionType + from datadog_api_client.v1.model.sankey_rum_request import SankeyRumRequest + from datadog_api_client.v1.model.sankey_network_request import SankeyNetworkRequest + from datadog_api_client.v1.model.widget_legacy_live_span import WidgetLegacyLiveSpan + from datadog_api_client.v1.model.widget_new_live_span import WidgetNewLiveSpan + from datadog_api_client.v1.model.widget_new_fixed_span import WidgetNewFixedSpan + + +class SankeyWidgetDefinition(ModelNormal): + validations = { + "requests": { + "min_items": 1, + }, + } + + @cached_property + def additional_properties_type(_): + return None + + @cached_property + def openapi_types(_): + from datadog_api_client.v1.model.sankey_widget_request import SankeyWidgetRequest + from datadog_api_client.v1.model.widget_time import WidgetTime + from datadog_api_client.v1.model.widget_text_align import WidgetTextAlign + from datadog_api_client.v1.model.sankey_widget_definition_type import SankeyWidgetDefinitionType + + return { + "requests": ([SankeyWidgetRequest],), + "show_other_links": (bool,), + "sort_nodes": (bool,), + "time": (WidgetTime,), + "title": (str,), + "title_align": (WidgetTextAlign,), + "title_size": (str,), + "type": (SankeyWidgetDefinitionType,), + } + + attribute_map = { + "requests": "requests", + "show_other_links": "show_other_links", + "sort_nodes": "sort_nodes", + "time": "time", + "title": "title", + "title_align": "title_align", + "title_size": "title_size", + "type": "type", + } + + def __init__( + self_, + requests: List[Union[SankeyWidgetRequest, SankeyRumRequest, SankeyNetworkRequest]], + type: SankeyWidgetDefinitionType, + show_other_links: Union[bool, UnsetType] = unset, + sort_nodes: Union[bool, UnsetType] = unset, + time: Union[WidgetTime, WidgetLegacyLiveSpan, WidgetNewLiveSpan, WidgetNewFixedSpan, UnsetType] = unset, + title: Union[str, UnsetType] = unset, + title_align: Union[WidgetTextAlign, UnsetType] = unset, + title_size: Union[str, UnsetType] = unset, + **kwargs, + ): + """ + The Sankey diagram visualizes the flow of data between categories, stages or sets of values. + + :param requests: List of Sankey widget requests. + :type requests: [SankeyWidgetRequest] + + :param show_other_links: Whether to show links for "other" category. + :type show_other_links: bool, optional + + :param sort_nodes: Whether to sort nodes in the Sankey diagram. + :type sort_nodes: bool, optional + + :param time: Time setting for the widget. + :type time: WidgetTime, optional + + :param title: Title of your widget. + :type title: str, optional + + :param title_align: How to align the text on the widget. + :type title_align: WidgetTextAlign, optional + + :param title_size: Size of the title. + :type title_size: str, optional + + :param type: Type of the Sankey widget. + :type type: SankeyWidgetDefinitionType + """ + if show_other_links is not unset: + kwargs["show_other_links"] = show_other_links + if sort_nodes is not unset: + kwargs["sort_nodes"] = sort_nodes + if time is not unset: + kwargs["time"] = time + if title is not unset: + kwargs["title"] = title + if title_align is not unset: + kwargs["title_align"] = title_align + if title_size is not unset: + kwargs["title_size"] = title_size + super().__init__(kwargs) + + self_.requests = requests + self_.type = type diff --git a/src/datadog_api_client/v1/model/sankey_widget_definition_type.py b/src/datadog_api_client/v1/model/sankey_widget_definition_type.py new file mode 100644 index 0000000000..e45f3a2445 --- /dev/null +++ b/src/datadog_api_client/v1/model/sankey_widget_definition_type.py @@ -0,0 +1,35 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class SankeyWidgetDefinitionType(ModelSimple): + """ + Type of the Sankey widget. + + :param value: If omitted defaults to "sankey". Must be one of ["sankey"]. + :type value: str + """ + + allowed_values = { + "sankey", + } + SANKEY: ClassVar["SankeyWidgetDefinitionType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +SankeyWidgetDefinitionType.SANKEY = SankeyWidgetDefinitionType("sankey") diff --git a/src/datadog_api_client/v1/model/sankey_widget_request.py b/src/datadog_api_client/v1/model/sankey_widget_request.py new file mode 100644 index 0000000000..3d66b98aaa --- /dev/null +++ b/src/datadog_api_client/v1/model/sankey_widget_request.py @@ -0,0 +1,43 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelComposed, + cached_property, +) + + +class SankeyWidgetRequest(ModelComposed): + def __init__(self, **kwargs): + """ + Request definition for Sankey widget. + + :param query: Sankey widget with RUM data source query. + :type query: SankeyRumQuery + + :param request_type: Type of the Sankey widget. + :type request_type: SankeyWidgetDefinitionType + """ + super().__init__(kwargs) + + @cached_property + def _composed_schemas(_): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + from datadog_api_client.v1.model.sankey_rum_request import SankeyRumRequest + from datadog_api_client.v1.model.sankey_network_request import SankeyNetworkRequest + + return { + "oneOf": [ + SankeyRumRequest, + SankeyNetworkRequest, + ], + } diff --git a/src/datadog_api_client/v1/model/widget.py b/src/datadog_api_client/v1/model/widget.py index b12ad3913c..41662865df 100644 --- a/src/datadog_api_client/v1/model/widget.py +++ b/src/datadog_api_client/v1/model/widget.py @@ -41,6 +41,7 @@ from datadog_api_client.v1.model.slo_list_widget_definition import SLOListWidgetDefinition from datadog_api_client.v1.model.slo_widget_definition import SLOWidgetDefinition from datadog_api_client.v1.model.scatter_plot_widget_definition import ScatterPlotWidgetDefinition + from datadog_api_client.v1.model.sankey_widget_definition import SankeyWidgetDefinition from datadog_api_client.v1.model.service_map_widget_definition import ServiceMapWidgetDefinition from datadog_api_client.v1.model.service_summary_widget_definition import ServiceSummaryWidgetDefinition from datadog_api_client.v1.model.split_graph_widget_definition import SplitGraphWidgetDefinition @@ -99,6 +100,7 @@ def __init__( SLOListWidgetDefinition, SLOWidgetDefinition, ScatterPlotWidgetDefinition, + SankeyWidgetDefinition, ServiceMapWidgetDefinition, ServiceSummaryWidgetDefinition, SplitGraphWidgetDefinition, diff --git a/src/datadog_api_client/v1/model/widget_definition.py b/src/datadog_api_client/v1/model/widget_definition.py index b0115fdb7e..4d8881b16c 100644 --- a/src/datadog_api_client/v1/model/widget_definition.py +++ b/src/datadog_api_client/v1/model/widget_definition.py @@ -272,6 +272,12 @@ def __init__(self, **kwargs): :param color_by_groups: List of groups used for colors. :type color_by_groups: [str], optional + :param show_other_links: Whether to show links for "other" category. + :type show_other_links: bool, optional + + :param sort_nodes: Whether to sort nodes in the Sankey diagram. + :type sort_nodes: bool, optional + :param filters: Your environment and primary tag (or * if enabled for your account). :type filters: [str] @@ -377,6 +383,7 @@ def _composed_schemas(_): from datadog_api_client.v1.model.slo_list_widget_definition import SLOListWidgetDefinition from datadog_api_client.v1.model.slo_widget_definition import SLOWidgetDefinition from datadog_api_client.v1.model.scatter_plot_widget_definition import ScatterPlotWidgetDefinition + from datadog_api_client.v1.model.sankey_widget_definition import SankeyWidgetDefinition from datadog_api_client.v1.model.service_map_widget_definition import ServiceMapWidgetDefinition from datadog_api_client.v1.model.service_summary_widget_definition import ServiceSummaryWidgetDefinition from datadog_api_client.v1.model.split_graph_widget_definition import SplitGraphWidgetDefinition @@ -414,6 +421,7 @@ def _composed_schemas(_): SLOListWidgetDefinition, SLOWidgetDefinition, ScatterPlotWidgetDefinition, + SankeyWidgetDefinition, ServiceMapWidgetDefinition, ServiceSummaryWidgetDefinition, SplitGraphWidgetDefinition, diff --git a/src/datadog_api_client/v1/models/__init__.py b/src/datadog_api_client/v1/models/__init__.py index 062b19bebe..0db2ba673e 100644 --- a/src/datadog_api_client/v1/models/__init__.py +++ b/src/datadog_api_client/v1/models/__init__.py @@ -111,6 +111,8 @@ from datadog_api_client.v1.model.event_stream_widget_definition_type import EventStreamWidgetDefinitionType from datadog_api_client.v1.model.event_timeline_widget_definition import EventTimelineWidgetDefinition from datadog_api_client.v1.model.event_timeline_widget_definition_type import EventTimelineWidgetDefinitionType +from datadog_api_client.v1.model.events_aggregation import EventsAggregation +from datadog_api_client.v1.model.events_aggregation_value import EventsAggregationValue from datadog_api_client.v1.model.formula_and_function_apm_dependency_stat_name import ( FormulaAndFunctionApmDependencyStatName, ) @@ -511,6 +513,17 @@ from datadog_api_client.v1.model.powerpack_widget_definition import PowerpackWidgetDefinition from datadog_api_client.v1.model.powerpack_widget_definition_type import PowerpackWidgetDefinitionType from datadog_api_client.v1.model.process_query_definition import ProcessQueryDefinition +from datadog_api_client.v1.model.product_analytics_audience_account_subquery import ( + ProductAnalyticsAudienceAccountSubquery, +) +from datadog_api_client.v1.model.product_analytics_audience_filters import ProductAnalyticsAudienceFilters +from datadog_api_client.v1.model.product_analytics_audience_occurrence_filter import ( + ProductAnalyticsAudienceOccurrenceFilter, +) +from datadog_api_client.v1.model.product_analytics_audience_segment_subquery import ( + ProductAnalyticsAudienceSegmentSubquery, +) +from datadog_api_client.v1.model.product_analytics_audience_user_subquery import ProductAnalyticsAudienceUserSubquery from datadog_api_client.v1.model.query_sort_order import QuerySortOrder from datadog_api_client.v1.model.query_value_widget_definition import QueryValueWidgetDefinition from datadog_api_client.v1.model.query_value_widget_definition_type import QueryValueWidgetDefinitionType @@ -582,6 +595,21 @@ from datadog_api_client.v1.model.slo_type_numeric import SLOTypeNumeric from datadog_api_client.v1.model.slo_widget_definition import SLOWidgetDefinition from datadog_api_client.v1.model.slo_widget_definition_type import SLOWidgetDefinitionType +from datadog_api_client.v1.model.sankey_join_keys import SankeyJoinKeys +from datadog_api_client.v1.model.sankey_network_data_source import SankeyNetworkDataSource +from datadog_api_client.v1.model.sankey_network_query import SankeyNetworkQuery +from datadog_api_client.v1.model.sankey_network_query_compute import SankeyNetworkQueryCompute +from datadog_api_client.v1.model.sankey_network_query_mode import SankeyNetworkQueryMode +from datadog_api_client.v1.model.sankey_network_query_sort import SankeyNetworkQuerySort +from datadog_api_client.v1.model.sankey_network_request import SankeyNetworkRequest +from datadog_api_client.v1.model.sankey_network_request_type import SankeyNetworkRequestType +from datadog_api_client.v1.model.sankey_rum_data_source import SankeyRumDataSource +from datadog_api_client.v1.model.sankey_rum_query import SankeyRumQuery +from datadog_api_client.v1.model.sankey_rum_query_mode import SankeyRumQueryMode +from datadog_api_client.v1.model.sankey_rum_request import SankeyRumRequest +from datadog_api_client.v1.model.sankey_widget_definition import SankeyWidgetDefinition +from datadog_api_client.v1.model.sankey_widget_definition_type import SankeyWidgetDefinitionType +from datadog_api_client.v1.model.sankey_widget_request import SankeyWidgetRequest from datadog_api_client.v1.model.scatter_plot_request import ScatterPlotRequest from datadog_api_client.v1.model.scatter_plot_widget_definition import ScatterPlotWidgetDefinition from datadog_api_client.v1.model.scatter_plot_widget_definition_requests import ScatterPlotWidgetDefinitionRequests @@ -1232,6 +1260,8 @@ "EventStreamWidgetDefinitionType", "EventTimelineWidgetDefinition", "EventTimelineWidgetDefinitionType", + "EventsAggregation", + "EventsAggregationValue", "FormulaAndFunctionApmDependencyStatName", "FormulaAndFunctionApmDependencyStatsDataSource", "FormulaAndFunctionApmDependencyStatsQueryDefinition", @@ -1566,6 +1596,11 @@ "PowerpackWidgetDefinition", "PowerpackWidgetDefinitionType", "ProcessQueryDefinition", + "ProductAnalyticsAudienceAccountSubquery", + "ProductAnalyticsAudienceFilters", + "ProductAnalyticsAudienceOccurrenceFilter", + "ProductAnalyticsAudienceSegmentSubquery", + "ProductAnalyticsAudienceUserSubquery", "QuerySortOrder", "QueryValueWidgetDefinition", "QueryValueWidgetDefinitionType", @@ -1635,6 +1670,21 @@ "SLOTypeNumeric", "SLOWidgetDefinition", "SLOWidgetDefinitionType", + "SankeyJoinKeys", + "SankeyNetworkDataSource", + "SankeyNetworkQuery", + "SankeyNetworkQueryCompute", + "SankeyNetworkQueryMode", + "SankeyNetworkQuerySort", + "SankeyNetworkRequest", + "SankeyNetworkRequestType", + "SankeyRumDataSource", + "SankeyRumQuery", + "SankeyRumQueryMode", + "SankeyRumRequest", + "SankeyWidgetDefinition", + "SankeyWidgetDefinitionType", + "SankeyWidgetRequest", "ScatterPlotRequest", "ScatterPlotWidgetDefinition", "ScatterPlotWidgetDefinitionRequests", diff --git a/src/datadog_api_client/v2/api/dora_metrics_api.py b/src/datadog_api_client/v2/api/dora_metrics_api.py index 6a9b219cc8..31f81aa5b4 100644 --- a/src/datadog_api_client/v2/api/dora_metrics_api.py +++ b/src/datadog_api_client/v2/api/dora_metrics_api.py @@ -10,12 +10,14 @@ from datadog_api_client.configuration import Configuration from datadog_api_client.v2.model.dora_deployment_response import DORADeploymentResponse from datadog_api_client.v2.model.dora_deployment_request import DORADeploymentRequest -from datadog_api_client.v2.model.dora_list_response import DORAListResponse +from datadog_api_client.v2.model.dora_deployments_list_response import DORADeploymentsListResponse from datadog_api_client.v2.model.dora_list_deployments_request import DORAListDeploymentsRequest -from datadog_api_client.v2.model.dora_fetch_response import DORAFetchResponse +from datadog_api_client.v2.model.dora_deployment_fetch_response import DORADeploymentFetchResponse from datadog_api_client.v2.model.dora_failure_response import DORAFailureResponse from datadog_api_client.v2.model.dora_failure_request import DORAFailureRequest +from datadog_api_client.v2.model.dora_failures_list_response import DORAFailuresListResponse from datadog_api_client.v2.model.dora_list_failures_request import DORAListFailuresRequest +from datadog_api_client.v2.model.dora_failure_fetch_response import DORAFailureFetchResponse class DORAMetricsApi: @@ -138,7 +140,7 @@ def __init__(self, api_client=None): self._get_dora_deployment_endpoint = _Endpoint( settings={ - "response_type": (DORAFetchResponse,), + "response_type": (DORADeploymentFetchResponse,), "auth": ["apiKeyAuth", "appKeyAuth"], "endpoint_path": "/api/v2/dora/deployments/{deployment_id}", "operation_id": "get_dora_deployment", @@ -161,7 +163,7 @@ def __init__(self, api_client=None): self._get_dora_failure_endpoint = _Endpoint( settings={ - "response_type": (DORAFetchResponse,), + "response_type": (DORAFailureFetchResponse,), "auth": ["apiKeyAuth", "appKeyAuth"], "endpoint_path": "/api/v2/dora/failures/{failure_id}", "operation_id": "get_dora_failure", @@ -184,7 +186,7 @@ def __init__(self, api_client=None): self._list_dora_deployments_endpoint = _Endpoint( settings={ - "response_type": (DORAListResponse,), + "response_type": (DORADeploymentsListResponse,), "auth": ["apiKeyAuth", "appKeyAuth"], "endpoint_path": "/api/v2/dora/deployments", "operation_id": "list_dora_deployments", @@ -204,7 +206,7 @@ def __init__(self, api_client=None): self._list_dora_failures_endpoint = _Endpoint( settings={ - "response_type": (DORAListResponse,), + "response_type": (DORAFailuresListResponse,), "auth": ["apiKeyAuth", "appKeyAuth"], "endpoint_path": "/api/v2/dora/failures", "operation_id": "list_dora_failures", @@ -326,14 +328,14 @@ def delete_dora_failure( def get_dora_deployment( self, deployment_id: str, - ) -> DORAFetchResponse: + ) -> DORADeploymentFetchResponse: """Get a deployment event. Use this API endpoint to get a deployment event. :param deployment_id: The ID of the deployment event. :type deployment_id: str - :rtype: DORAFetchResponse + :rtype: DORADeploymentFetchResponse """ kwargs: Dict[str, Any] = {} kwargs["deployment_id"] = deployment_id @@ -343,14 +345,14 @@ def get_dora_deployment( def get_dora_failure( self, failure_id: str, - ) -> DORAFetchResponse: + ) -> DORAFailureFetchResponse: """Get a failure event. Use this API endpoint to get a failure event. :param failure_id: The ID of the failure event. :type failure_id: str - :rtype: DORAFetchResponse + :rtype: DORAFailureFetchResponse """ kwargs: Dict[str, Any] = {} kwargs["failure_id"] = failure_id @@ -360,13 +362,13 @@ def get_dora_failure( def list_dora_deployments( self, body: DORAListDeploymentsRequest, - ) -> DORAListResponse: + ) -> DORADeploymentsListResponse: """Get a list of deployment events. Use this API endpoint to get a list of deployment events. :type body: DORAListDeploymentsRequest - :rtype: DORAListResponse + :rtype: DORADeploymentsListResponse """ kwargs: Dict[str, Any] = {} kwargs["body"] = body @@ -376,13 +378,13 @@ def list_dora_deployments( def list_dora_failures( self, body: DORAListFailuresRequest, - ) -> DORAListResponse: + ) -> DORAFailuresListResponse: """Get a list of failure events. Use this API endpoint to get a list of failure events. :type body: DORAListFailuresRequest - :rtype: DORAListResponse + :rtype: DORAFailuresListResponse """ kwargs: Dict[str, Any] = {} kwargs["body"] = body diff --git a/src/datadog_api_client/v2/model/case_create_attributes.py b/src/datadog_api_client/v2/model/case_create_attributes.py index bd6185bb93..63997d4187 100644 --- a/src/datadog_api_client/v2/model/case_create_attributes.py +++ b/src/datadog_api_client/v2/model/case_create_attributes.py @@ -3,7 +3,7 @@ # Copyright 2019-Present Datadog, Inc. from __future__ import annotations -from typing import Dict, Union, TYPE_CHECKING +from typing import Union, TYPE_CHECKING from datadog_api_client.model_utils import ( ModelNormal, @@ -14,18 +14,15 @@ if TYPE_CHECKING: - from datadog_api_client.v2.model.custom_attribute_value import CustomAttributeValue from datadog_api_client.v2.model.case_priority import CasePriority class CaseCreateAttributes(ModelNormal): @cached_property def openapi_types(_): - from datadog_api_client.v2.model.custom_attribute_value import CustomAttributeValue from datadog_api_client.v2.model.case_priority import CasePriority return { - "custom_attributes": ({str: (CustomAttributeValue,)},), "description": (str,), "priority": (CasePriority,), "title": (str,), @@ -33,7 +30,6 @@ def openapi_types(_): } attribute_map = { - "custom_attributes": "custom_attributes", "description": "description", "priority": "priority", "title": "title", @@ -44,7 +40,6 @@ def __init__( self_, title: str, type_id: str, - custom_attributes: Union[Dict[str, CustomAttributeValue], UnsetType] = unset, description: Union[str, UnsetType] = unset, priority: Union[CasePriority, UnsetType] = unset, **kwargs, @@ -52,9 +47,6 @@ def __init__( """ Case creation attributes - :param custom_attributes: Case custom attributes - :type custom_attributes: {str: (CustomAttributeValue,)}, optional - :param description: Description :type description: str, optional @@ -67,8 +59,6 @@ def __init__( :param type_id: Case type UUID :type type_id: str """ - if custom_attributes is not unset: - kwargs["custom_attributes"] = custom_attributes if description is not unset: kwargs["description"] = description if priority is not unset: diff --git a/src/datadog_api_client/v2/model/custom_attribute_type.py b/src/datadog_api_client/v2/model/custom_attribute_type.py index 066981191f..1e91eafa96 100644 --- a/src/datadog_api_client/v2/model/custom_attribute_type.py +++ b/src/datadog_api_client/v2/model/custom_attribute_type.py @@ -16,7 +16,7 @@ class CustomAttributeType(ModelSimple): """ Custom attributes type - :param value: Must be one of ["URL", "TEXT", "NUMBER", "SELECT"]. + :param value: Must be one of ["URL", "TEXT", "NUMBER"]. :type value: str """ @@ -24,12 +24,10 @@ class CustomAttributeType(ModelSimple): "URL", "TEXT", "NUMBER", - "SELECT", } URL: ClassVar["CustomAttributeType"] TEXT: ClassVar["CustomAttributeType"] NUMBER: ClassVar["CustomAttributeType"] - SELECT: ClassVar["CustomAttributeType"] @cached_property def openapi_types(_): @@ -41,4 +39,3 @@ def openapi_types(_): CustomAttributeType.URL = CustomAttributeType("URL") CustomAttributeType.TEXT = CustomAttributeType("TEXT") CustomAttributeType.NUMBER = CustomAttributeType("NUMBER") -CustomAttributeType.SELECT = CustomAttributeType("SELECT") diff --git a/src/datadog_api_client/v2/model/dora_deployment_fetch_response.py b/src/datadog_api_client/v2/model/dora_deployment_fetch_response.py new file mode 100644 index 0000000000..4ebb411025 --- /dev/null +++ b/src/datadog_api_client/v2/model/dora_deployment_fetch_response.py @@ -0,0 +1,42 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.dora_deployment_object import DORADeploymentObject + + +class DORADeploymentFetchResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.dora_deployment_object import DORADeploymentObject + + return { + "data": (DORADeploymentObject,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: Union[DORADeploymentObject, UnsetType] = unset, **kwargs): + """ + Response for fetching a single deployment event. + + :param data: A DORA deployment event. + :type data: DORADeploymentObject, optional + """ + if data is not unset: + kwargs["data"] = data + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/dora_deployment_object.py b/src/datadog_api_client/v2/model/dora_deployment_object.py new file mode 100644 index 0000000000..ba8734cf96 --- /dev/null +++ b/src/datadog_api_client/v2/model/dora_deployment_object.py @@ -0,0 +1,64 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.dora_deployment_object_attributes import DORADeploymentObjectAttributes + from datadog_api_client.v2.model.dora_deployment_type import DORADeploymentType + + +class DORADeploymentObject(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.dora_deployment_object_attributes import DORADeploymentObjectAttributes + from datadog_api_client.v2.model.dora_deployment_type import DORADeploymentType + + return { + "attributes": (DORADeploymentObjectAttributes,), + "id": (str,), + "type": (DORADeploymentType,), + } + + attribute_map = { + "attributes": "attributes", + "id": "id", + "type": "type", + } + + def __init__( + self_, + attributes: Union[DORADeploymentObjectAttributes, UnsetType] = unset, + id: Union[str, UnsetType] = unset, + type: Union[DORADeploymentType, UnsetType] = unset, + **kwargs, + ): + """ + A DORA deployment event. + + :param attributes: The attributes of the deployment event. + :type attributes: DORADeploymentObjectAttributes, optional + + :param id: The ID of the deployment event. + :type id: str, optional + + :param type: JSON:API type for DORA deployment events. + :type type: DORADeploymentType, optional + """ + if attributes is not unset: + kwargs["attributes"] = attributes + if id is not unset: + kwargs["id"] = id + if type is not unset: + kwargs["type"] = type + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/dora_deployment_object_attributes.py b/src/datadog_api_client/v2/model/dora_deployment_object_attributes.py new file mode 100644 index 0000000000..3fa4b7eb07 --- /dev/null +++ b/src/datadog_api_client/v2/model/dora_deployment_object_attributes.py @@ -0,0 +1,101 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + none_type, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.dora_git_info import DORAGitInfo + + +class DORADeploymentObjectAttributes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.dora_git_info import DORAGitInfo + + return { + "custom_tags": ([str],), + "env": (str,), + "finished_at": (int,), + "git": (DORAGitInfo,), + "service": (str,), + "started_at": (int,), + "team": (str,), + "version": (str,), + } + + attribute_map = { + "custom_tags": "custom_tags", + "env": "env", + "finished_at": "finished_at", + "git": "git", + "service": "service", + "started_at": "started_at", + "team": "team", + "version": "version", + } + + def __init__( + self_, + finished_at: int, + service: str, + started_at: int, + custom_tags: Union[List[str], none_type, UnsetType] = unset, + env: Union[str, UnsetType] = unset, + git: Union[DORAGitInfo, UnsetType] = unset, + team: Union[str, UnsetType] = unset, + version: Union[str, UnsetType] = unset, + **kwargs, + ): + """ + The attributes of the deployment event. + + :param custom_tags: A list of user-defined tags. The tags must follow the ``key:value`` pattern. Up to 100 may be added per event. + :type custom_tags: [str], none_type, optional + + :param env: Environment name to where the service was deployed. + :type env: str, optional + + :param finished_at: Unix timestamp when the deployment finished. + :type finished_at: int + + :param git: Git info for DORA Metrics events. + :type git: DORAGitInfo, optional + + :param service: Service name. + :type service: str + + :param started_at: Unix timestamp when the deployment started. + :type started_at: int + + :param team: Name of the team owning the deployed service. + :type team: str, optional + + :param version: Version to correlate with APM Deployment Tracking. + :type version: str, optional + """ + if custom_tags is not unset: + kwargs["custom_tags"] = custom_tags + if env is not unset: + kwargs["env"] = env + if git is not unset: + kwargs["git"] = git + if team is not unset: + kwargs["team"] = team + if version is not unset: + kwargs["version"] = version + super().__init__(kwargs) + + self_.finished_at = finished_at + self_.service = service + self_.started_at = started_at diff --git a/src/datadog_api_client/v2/model/dora_deployments_list_response.py b/src/datadog_api_client/v2/model/dora_deployments_list_response.py new file mode 100644 index 0000000000..d454fdecd0 --- /dev/null +++ b/src/datadog_api_client/v2/model/dora_deployments_list_response.py @@ -0,0 +1,42 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.dora_deployment_object import DORADeploymentObject + + +class DORADeploymentsListResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.dora_deployment_object import DORADeploymentObject + + return { + "data": ([DORADeploymentObject],), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: Union[List[DORADeploymentObject], UnsetType] = unset, **kwargs): + """ + Response for the list deployments endpoint. + + :param data: The list of DORA deployment events. + :type data: [DORADeploymentObject], optional + """ + if data is not unset: + kwargs["data"] = data + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/dora_event.py b/src/datadog_api_client/v2/model/dora_event.py deleted file mode 100644 index 9f00b76800..0000000000 --- a/src/datadog_api_client/v2/model/dora_event.py +++ /dev/null @@ -1,56 +0,0 @@ -# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. -# This product includes software developed at Datadog (https://www.datadoghq.com/). -# Copyright 2019-Present Datadog, Inc. -from __future__ import annotations - -from typing import Union - -from datadog_api_client.model_utils import ( - ModelNormal, - cached_property, - unset, - UnsetType, -) - - -class DORAEvent(ModelNormal): - @cached_property - def openapi_types(_): - return { - "attributes": (dict,), - "id": (str,), - "type": (str,), - } - - attribute_map = { - "attributes": "attributes", - "id": "id", - "type": "type", - } - - def __init__( - self_, - attributes: Union[dict, UnsetType] = unset, - id: Union[str, UnsetType] = unset, - type: Union[str, UnsetType] = unset, - **kwargs, - ): - """ - A DORA event. - - :param attributes: The attributes of the event. - :type attributes: dict, optional - - :param id: The ID of the event. - :type id: str, optional - - :param type: The type of the event. - :type type: str, optional - """ - if attributes is not unset: - kwargs["attributes"] = attributes - if id is not unset: - kwargs["id"] = id - if type is not unset: - kwargs["type"] = type - super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/dora_fetch_response.py b/src/datadog_api_client/v2/model/dora_failure_fetch_response.py similarity index 58% rename from src/datadog_api_client/v2/model/dora_fetch_response.py rename to src/datadog_api_client/v2/model/dora_failure_fetch_response.py index a0f42842d7..3d1e5369cd 100644 --- a/src/datadog_api_client/v2/model/dora_fetch_response.py +++ b/src/datadog_api_client/v2/model/dora_failure_fetch_response.py @@ -14,28 +14,28 @@ if TYPE_CHECKING: - from datadog_api_client.v2.model.dora_event import DORAEvent + from datadog_api_client.v2.model.dora_incident_object import DORAIncidentObject -class DORAFetchResponse(ModelNormal): +class DORAFailureFetchResponse(ModelNormal): @cached_property def openapi_types(_): - from datadog_api_client.v2.model.dora_event import DORAEvent + from datadog_api_client.v2.model.dora_incident_object import DORAIncidentObject return { - "data": (DORAEvent,), + "data": (DORAIncidentObject,), } attribute_map = { "data": "data", } - def __init__(self_, data: Union[DORAEvent, UnsetType] = unset, **kwargs): + def __init__(self_, data: Union[DORAIncidentObject, UnsetType] = unset, **kwargs): """ - Response for the DORA fetch endpoints. + Response for fetching a single failure event. - :param data: A DORA event. - :type data: DORAEvent, optional + :param data: A DORA incident event. + :type data: DORAIncidentObject, optional """ if data is not unset: kwargs["data"] = data diff --git a/src/datadog_api_client/v2/model/dora_list_response.py b/src/datadog_api_client/v2/model/dora_failures_list_response.py similarity index 57% rename from src/datadog_api_client/v2/model/dora_list_response.py rename to src/datadog_api_client/v2/model/dora_failures_list_response.py index d98199af21..2290435b71 100644 --- a/src/datadog_api_client/v2/model/dora_list_response.py +++ b/src/datadog_api_client/v2/model/dora_failures_list_response.py @@ -14,28 +14,28 @@ if TYPE_CHECKING: - from datadog_api_client.v2.model.dora_event import DORAEvent + from datadog_api_client.v2.model.dora_incident_object import DORAIncidentObject -class DORAListResponse(ModelNormal): +class DORAFailuresListResponse(ModelNormal): @cached_property def openapi_types(_): - from datadog_api_client.v2.model.dora_event import DORAEvent + from datadog_api_client.v2.model.dora_incident_object import DORAIncidentObject return { - "data": ([DORAEvent],), + "data": ([DORAIncidentObject],), } attribute_map = { "data": "data", } - def __init__(self_, data: Union[List[DORAEvent], UnsetType] = unset, **kwargs): + def __init__(self_, data: Union[List[DORAIncidentObject], UnsetType] = unset, **kwargs): """ - Response for the DORA list endpoints. + Response for the list failures endpoint. - :param data: The list of DORA events. - :type data: [DORAEvent], optional + :param data: The list of DORA incident events. + :type data: [DORAIncidentObject], optional """ if data is not unset: kwargs["data"] = data diff --git a/src/datadog_api_client/v2/model/dora_incident_object.py b/src/datadog_api_client/v2/model/dora_incident_object.py new file mode 100644 index 0000000000..db99b44d0e --- /dev/null +++ b/src/datadog_api_client/v2/model/dora_incident_object.py @@ -0,0 +1,64 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.dora_incident_object_attributes import DORAIncidentObjectAttributes + from datadog_api_client.v2.model.dora_failure_type import DORAFailureType + + +class DORAIncidentObject(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.dora_incident_object_attributes import DORAIncidentObjectAttributes + from datadog_api_client.v2.model.dora_failure_type import DORAFailureType + + return { + "attributes": (DORAIncidentObjectAttributes,), + "id": (str,), + "type": (DORAFailureType,), + } + + attribute_map = { + "attributes": "attributes", + "id": "id", + "type": "type", + } + + def __init__( + self_, + attributes: Union[DORAIncidentObjectAttributes, UnsetType] = unset, + id: Union[str, UnsetType] = unset, + type: Union[DORAFailureType, UnsetType] = unset, + **kwargs, + ): + """ + A DORA incident event. + + :param attributes: The attributes of the incident event. + :type attributes: DORAIncidentObjectAttributes, optional + + :param id: The ID of the incident event. + :type id: str, optional + + :param type: JSON:API type for DORA failure events. + :type type: DORAFailureType, optional + """ + if attributes is not unset: + kwargs["attributes"] = attributes + if id is not unset: + kwargs["id"] = id + if type is not unset: + kwargs["type"] = type + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/dora_incident_object_attributes.py b/src/datadog_api_client/v2/model/dora_incident_object_attributes.py new file mode 100644 index 0000000000..1e302f6f5e --- /dev/null +++ b/src/datadog_api_client/v2/model/dora_incident_object_attributes.py @@ -0,0 +1,119 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + none_type, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.dora_git_info import DORAGitInfo + + +class DORAIncidentObjectAttributes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.dora_git_info import DORAGitInfo + + return { + "custom_tags": ([str],), + "env": (str,), + "finished_at": (int,), + "git": (DORAGitInfo,), + "name": (str,), + "services": ([str],), + "severity": (str,), + "started_at": (int,), + "team": (str,), + "version": (str,), + } + + attribute_map = { + "custom_tags": "custom_tags", + "env": "env", + "finished_at": "finished_at", + "git": "git", + "name": "name", + "services": "services", + "severity": "severity", + "started_at": "started_at", + "team": "team", + "version": "version", + } + + def __init__( + self_, + started_at: int, + custom_tags: Union[List[str], none_type, UnsetType] = unset, + env: Union[str, UnsetType] = unset, + finished_at: Union[int, UnsetType] = unset, + git: Union[DORAGitInfo, UnsetType] = unset, + name: Union[str, UnsetType] = unset, + services: Union[List[str], UnsetType] = unset, + severity: Union[str, UnsetType] = unset, + team: Union[str, UnsetType] = unset, + version: Union[str, UnsetType] = unset, + **kwargs, + ): + """ + The attributes of the incident event. + + :param custom_tags: A list of user-defined tags. The tags must follow the ``key:value`` pattern. Up to 100 may be added per event. + :type custom_tags: [str], none_type, optional + + :param env: Environment name that was impacted by the incident. + :type env: str, optional + + :param finished_at: Unix timestamp when the incident finished. + :type finished_at: int, optional + + :param git: Git info for DORA Metrics events. + :type git: DORAGitInfo, optional + + :param name: Incident name. + :type name: str, optional + + :param services: Service names impacted by the incident. + :type services: [str], optional + + :param severity: Incident severity. + :type severity: str, optional + + :param started_at: Unix timestamp when the incident started. + :type started_at: int + + :param team: Name of the team owning the services impacted. + :type team: str, optional + + :param version: Version to correlate with APM Deployment Tracking. + :type version: str, optional + """ + if custom_tags is not unset: + kwargs["custom_tags"] = custom_tags + if env is not unset: + kwargs["env"] = env + if finished_at is not unset: + kwargs["finished_at"] = finished_at + if git is not unset: + kwargs["git"] = git + if name is not unset: + kwargs["name"] = name + if services is not unset: + kwargs["services"] = services + if severity is not unset: + kwargs["severity"] = severity + if team is not unset: + kwargs["team"] = team + if version is not unset: + kwargs["version"] = version + super().__init__(kwargs) + + self_.started_at = started_at diff --git a/src/datadog_api_client/v2/models/__init__.py b/src/datadog_api_client/v2/models/__init__.py index 39ee6ab446..56c30e6ed7 100644 --- a/src/datadog_api_client/v2/models/__init__.py +++ b/src/datadog_api_client/v2/models/__init__.py @@ -1305,21 +1305,27 @@ from datadog_api_client.v2.model.custom_framework_requirement import CustomFrameworkRequirement from datadog_api_client.v2.model.custom_framework_type import CustomFrameworkType from datadog_api_client.v2.model.custom_framework_without_requirements import CustomFrameworkWithoutRequirements +from datadog_api_client.v2.model.dora_deployment_fetch_response import DORADeploymentFetchResponse +from datadog_api_client.v2.model.dora_deployment_object import DORADeploymentObject +from datadog_api_client.v2.model.dora_deployment_object_attributes import DORADeploymentObjectAttributes from datadog_api_client.v2.model.dora_deployment_request import DORADeploymentRequest from datadog_api_client.v2.model.dora_deployment_request_attributes import DORADeploymentRequestAttributes from datadog_api_client.v2.model.dora_deployment_request_data import DORADeploymentRequestData from datadog_api_client.v2.model.dora_deployment_response import DORADeploymentResponse from datadog_api_client.v2.model.dora_deployment_response_data import DORADeploymentResponseData from datadog_api_client.v2.model.dora_deployment_type import DORADeploymentType -from datadog_api_client.v2.model.dora_event import DORAEvent +from datadog_api_client.v2.model.dora_deployments_list_response import DORADeploymentsListResponse +from datadog_api_client.v2.model.dora_failure_fetch_response import DORAFailureFetchResponse from datadog_api_client.v2.model.dora_failure_request import DORAFailureRequest from datadog_api_client.v2.model.dora_failure_request_attributes import DORAFailureRequestAttributes from datadog_api_client.v2.model.dora_failure_request_data import DORAFailureRequestData from datadog_api_client.v2.model.dora_failure_response import DORAFailureResponse from datadog_api_client.v2.model.dora_failure_response_data import DORAFailureResponseData from datadog_api_client.v2.model.dora_failure_type import DORAFailureType -from datadog_api_client.v2.model.dora_fetch_response import DORAFetchResponse +from datadog_api_client.v2.model.dora_failures_list_response import DORAFailuresListResponse from datadog_api_client.v2.model.dora_git_info import DORAGitInfo +from datadog_api_client.v2.model.dora_incident_object import DORAIncidentObject +from datadog_api_client.v2.model.dora_incident_object_attributes import DORAIncidentObjectAttributes from datadog_api_client.v2.model.dora_list_deployments_request import DORAListDeploymentsRequest from datadog_api_client.v2.model.dora_list_deployments_request_attributes import DORAListDeploymentsRequestAttributes from datadog_api_client.v2.model.dora_list_deployments_request_data import DORAListDeploymentsRequestData @@ -1328,7 +1334,6 @@ from datadog_api_client.v2.model.dora_list_failures_request_attributes import DORAListFailuresRequestAttributes from datadog_api_client.v2.model.dora_list_failures_request_data import DORAListFailuresRequestData from datadog_api_client.v2.model.dora_list_failures_request_data_type import DORAListFailuresRequestDataType -from datadog_api_client.v2.model.dora_list_response import DORAListResponse from datadog_api_client.v2.model.dashboard_list_add_items_request import DashboardListAddItemsRequest from datadog_api_client.v2.model.dashboard_list_add_items_response import DashboardListAddItemsResponse from datadog_api_client.v2.model.dashboard_list_delete_items_request import DashboardListDeleteItemsRequest @@ -6095,21 +6100,27 @@ "CustomFrameworkRequirement", "CustomFrameworkType", "CustomFrameworkWithoutRequirements", + "DORADeploymentFetchResponse", + "DORADeploymentObject", + "DORADeploymentObjectAttributes", "DORADeploymentRequest", "DORADeploymentRequestAttributes", "DORADeploymentRequestData", "DORADeploymentResponse", "DORADeploymentResponseData", "DORADeploymentType", - "DORAEvent", + "DORADeploymentsListResponse", + "DORAFailureFetchResponse", "DORAFailureRequest", "DORAFailureRequestAttributes", "DORAFailureRequestData", "DORAFailureResponse", "DORAFailureResponseData", "DORAFailureType", - "DORAFetchResponse", + "DORAFailuresListResponse", "DORAGitInfo", + "DORAIncidentObject", + "DORAIncidentObjectAttributes", "DORAListDeploymentsRequest", "DORAListDeploymentsRequestAttributes", "DORAListDeploymentsRequestData", @@ -6118,7 +6129,6 @@ "DORAListFailuresRequestAttributes", "DORAListFailuresRequestData", "DORAListFailuresRequestDataType", - "DORAListResponse", "DashboardListAddItemsRequest", "DashboardListAddItemsResponse", "DashboardListDeleteItemsRequest", diff --git a/tests/v1/cassettes/test_scenarios/test_create_a_new_dashboard_with_sankey_widget_and_network_data_source.frozen b/tests/v1/cassettes/test_scenarios/test_create_a_new_dashboard_with_sankey_widget_and_network_data_source.frozen new file mode 100644 index 0000000000..819ff42024 --- /dev/null +++ b/tests/v1/cassettes/test_scenarios/test_create_a_new_dashboard_with_sankey_widget_and_network_data_source.frozen @@ -0,0 +1 @@ +2026-01-02T15:26:45.908Z \ No newline at end of file diff --git a/tests/v1/cassettes/test_scenarios/test_create_a_new_dashboard_with_sankey_widget_and_network_data_source.yaml b/tests/v1/cassettes/test_scenarios/test_create_a_new_dashboard_with_sankey_widget_and_network_data_source.yaml new file mode 100644 index 0000000000..387a4291a6 --- /dev/null +++ b/tests/v1/cassettes/test_scenarios/test_create_a_new_dashboard_with_sankey_widget_and_network_data_source.yaml @@ -0,0 +1,37 @@ +interactions: +- request: + body: '{"description":"","layout_type":"free","notify_list":[],"template_variables":[],"title":"Test-Create_a_new_dashboard_with_sankey_widget_and_network_data_source-1767367605","widgets":[{"definition":{"requests":[{"query":{"data_source":"network","group_by":["source","destination"],"limit":100,"query_string":"*"},"request_type":"netflow_sankey"}],"title":"","title_align":"left","title_size":"16","type":"sankey"},"layout":{"height":15,"width":47,"x":0,"y":0}}]}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v1/dashboard + response: + body: + string: '{"id":"ngh-vn6-nqq","title":"Test-Create_a_new_dashboard_with_sankey_widget_and_network_data_source-1767367605","description":"","author_handle":"sophie.cao@datadoghq.com","author_name":"Sophie + Cao","layout_type":"free","url":"/dashboard/ngh-vn6-nqq/test-createanewdashboardwithsankeywidgetandnetworkdatasource-1767367605","template_variables":[],"widgets":[{"definition":{"requests":[{"query":{"data_source":"network","group_by":["source","destination"],"limit":100,"query_string":"*"},"request_type":"netflow_sankey"}],"title":"","title_align":"left","title_size":"16","type":"sankey"},"layout":{"height":15,"width":47,"x":0,"y":0},"id":4009219214466684}],"notify_list":[],"created_at":"2026-01-02T15:26:46.118136+00:00","modified_at":"2026-01-02T15:26:46.118136+00:00","restricted_roles":[]}' + headers: + content-type: + - application/json + status: + code: 200 + message: OK +- request: + body: null + headers: + accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v1/dashboard/ngh-vn6-nqq + response: + body: + string: '{"deleted_dashboard_id":"ngh-vn6-nqq"}' + headers: + content-type: + - application/json + status: + code: 200 + message: OK +version: 1 diff --git a/tests/v1/cassettes/test_scenarios/test_create_a_new_dashboard_with_sankey_widget_and_product_analytics_data_source.frozen b/tests/v1/cassettes/test_scenarios/test_create_a_new_dashboard_with_sankey_widget_and_product_analytics_data_source.frozen new file mode 100644 index 0000000000..d7f3401337 --- /dev/null +++ b/tests/v1/cassettes/test_scenarios/test_create_a_new_dashboard_with_sankey_widget_and_product_analytics_data_source.frozen @@ -0,0 +1 @@ +2026-01-02T15:27:06.013Z \ No newline at end of file diff --git a/tests/v1/cassettes/test_scenarios/test_create_a_new_dashboard_with_sankey_widget_and_product_analytics_data_source.yaml b/tests/v1/cassettes/test_scenarios/test_create_a_new_dashboard_with_sankey_widget_and_product_analytics_data_source.yaml new file mode 100644 index 0000000000..b68eec3375 --- /dev/null +++ b/tests/v1/cassettes/test_scenarios/test_create_a_new_dashboard_with_sankey_widget_and_product_analytics_data_source.yaml @@ -0,0 +1,37 @@ +interactions: +- request: + body: '{"description":"","layout_type":"free","notify_list":[],"template_variables":[],"title":"Test-Create_a_new_dashboard_with_sankey_widget_and_product_analytics_data_source-1767367626","widgets":[{"definition":{"requests":[{"query":{"data_source":"product_analytics","mode":"source","query_string":"@type:session"},"request_type":"sankey"}],"title":"","title_align":"left","title_size":"16","type":"sankey"},"layout":{"height":15,"width":47,"x":0,"y":0}}]}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v1/dashboard + response: + body: + string: '{"id":"y6u-yab-bdi","title":"Test-Create_a_new_dashboard_with_sankey_widget_and_product_analytics_data_source-1767367626","description":"","author_handle":"sophie.cao@datadoghq.com","author_name":"Sophie + Cao","layout_type":"free","url":"/dashboard/y6u-yab-bdi/test-createanewdashboardwithsankeywidgetandproductanalyticsdatasource-1767367626","template_variables":[],"widgets":[{"definition":{"requests":[{"query":{"data_source":"product_analytics","mode":"source","query_string":"@type:session"},"request_type":"sankey"}],"title":"","title_align":"left","title_size":"16","type":"sankey"},"layout":{"height":15,"width":47,"x":0,"y":0},"id":7919851856522238}],"notify_list":[],"created_at":"2026-01-02T15:27:06.177915+00:00","modified_at":"2026-01-02T15:27:06.177915+00:00","restricted_roles":[]}' + headers: + content-type: + - application/json + status: + code: 200 + message: OK +- request: + body: null + headers: + accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v1/dashboard/y6u-yab-bdi + response: + body: + string: '{"deleted_dashboard_id":"y6u-yab-bdi"}' + headers: + content-type: + - application/json + status: + code: 200 + message: OK +version: 1 diff --git a/tests/v1/cassettes/test_scenarios/test_create_a_new_dashboard_with_sankey_widget_and_rum_data_source.frozen b/tests/v1/cassettes/test_scenarios/test_create_a_new_dashboard_with_sankey_widget_and_rum_data_source.frozen new file mode 100644 index 0000000000..6f1ee04a8f --- /dev/null +++ b/tests/v1/cassettes/test_scenarios/test_create_a_new_dashboard_with_sankey_widget_and_rum_data_source.frozen @@ -0,0 +1 @@ +2026-01-02T15:26:19.626Z \ No newline at end of file diff --git a/tests/v1/cassettes/test_scenarios/test_create_a_new_dashboard_with_sankey_widget_and_rum_data_source.yaml b/tests/v1/cassettes/test_scenarios/test_create_a_new_dashboard_with_sankey_widget_and_rum_data_source.yaml new file mode 100644 index 0000000000..59b47d5f55 --- /dev/null +++ b/tests/v1/cassettes/test_scenarios/test_create_a_new_dashboard_with_sankey_widget_and_rum_data_source.yaml @@ -0,0 +1,37 @@ +interactions: +- request: + body: '{"description":"","layout_type":"free","notify_list":[],"template_variables":[],"title":"Test-Create_a_new_dashboard_with_sankey_widget_and_rum_data_source-1767367579","widgets":[{"definition":{"requests":[{"query":{"data_source":"rum","mode":"source","query_string":"@type:view"},"request_type":"sankey"}],"title":"","title_align":"left","title_size":"16","type":"sankey"},"layout":{"height":15,"width":47,"x":0,"y":0}}]}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v1/dashboard + response: + body: + string: '{"id":"pgj-vt6-zeg","title":"Test-Create_a_new_dashboard_with_sankey_widget_and_rum_data_source-1767367579","description":"","author_handle":"sophie.cao@datadoghq.com","author_name":"Sophie + Cao","layout_type":"free","url":"/dashboard/pgj-vt6-zeg/test-createanewdashboardwithsankeywidgetandrumdatasource-1767367579","template_variables":[],"widgets":[{"definition":{"requests":[{"query":{"data_source":"rum","mode":"source","query_string":"@type:view"},"request_type":"sankey"}],"title":"","title_align":"left","title_size":"16","type":"sankey"},"layout":{"height":15,"width":47,"x":0,"y":0},"id":1607494419972582}],"notify_list":[],"created_at":"2026-01-02T15:26:19.817734+00:00","modified_at":"2026-01-02T15:26:19.817734+00:00","restricted_roles":[]}' + headers: + content-type: + - application/json + status: + code: 200 + message: OK +- request: + body: null + headers: + accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v1/dashboard/pgj-vt6-zeg + response: + body: + string: '{"deleted_dashboard_id":"pgj-vt6-zeg"}' + headers: + content-type: + - application/json + status: + code: 200 + message: OK +version: 1 diff --git a/tests/v1/features/dashboards.feature b/tests/v1/features/dashboards.feature index 588c609ced..9e1c347209 100644 --- a/tests/v1/features/dashboards.feature +++ b/tests/v1/features/dashboards.feature @@ -705,6 +705,43 @@ Feature: Dashboards And the response "widgets[0].definition.workflow_id" is equal to "2e055f16-8b6a-4cdd-b452-17a34c44b160" And the response "widgets[0].definition.inputs[0]" is equal to {"name": "environment", "value": "$env.value"} + @team:DataDog/dashboards-backend + Scenario: Create a new dashboard with sankey widget and network data source + Given new "CreateDashboard" request + And body from file "dashboards_json_payload/sankey_network_widget.json" + When the request is sent + Then the response status is 200 OK + And the response "widgets[0].definition.type" is equal to "sankey" + And the response "widgets[0].definition.requests[0].query.data_source" is equal to "network" + And the response "widgets[0].definition.requests[0].query.query_string" is equal to "*" + And the response "widgets[0].definition.requests[0].query.group_by" is equal to ["source", "destination"] + And the response "widgets[0].definition.requests[0].query.limit" is equal to 100 + And the response "widgets[0].definition.requests[0].request_type" is equal to "netflow_sankey" + + @team:DataDog/dashboards-backend + Scenario: Create a new dashboard with sankey widget and product analytics data source + Given new "CreateDashboard" request + And body from file "dashboards_json_payload/sankey_product_analytics_widget.json" + When the request is sent + Then the response status is 200 OK + And the response "widgets[0].definition.type" is equal to "sankey" + And the response "widgets[0].definition.requests[0].query.data_source" is equal to "product_analytics" + And the response "widgets[0].definition.requests[0].query.query_string" is equal to "@type:session" + And the response "widgets[0].definition.requests[0].query.mode" is equal to "source" + And the response "widgets[0].definition.requests[0].request_type" is equal to "sankey" + + @team:DataDog/dashboards-backend + Scenario: Create a new dashboard with sankey widget and rum data source + Given new "CreateDashboard" request + And body from file "dashboards_json_payload/sankey_rum_widget.json" + When the request is sent + Then the response status is 200 OK + And the response "widgets[0].definition.type" is equal to "sankey" + And the response "widgets[0].definition.requests[0].query.data_source" is equal to "rum" + And the response "widgets[0].definition.requests[0].query.query_string" is equal to "@type:view" + And the response "widgets[0].definition.requests[0].query.mode" is equal to "source" + And the response "widgets[0].definition.requests[0].request_type" is equal to "sankey" + @team:DataDog/dashboards-backend Scenario: Create a new dashboard with scatterplot widget Given new "CreateDashboard" request diff --git a/tests/v1/features/dashboards_json_payload/sankey_network_widget.json b/tests/v1/features/dashboards_json_payload/sankey_network_widget.json new file mode 100644 index 0000000000..1f237af8f2 --- /dev/null +++ b/tests/v1/features/dashboards_json_payload/sankey_network_widget.json @@ -0,0 +1,41 @@ +{ + "title":"{{ unique }}", + "description":"", + "widgets":[ + { + "layout":{ + "x":0, + "y":0, + "width":47, + "height":15 + }, + "definition":{ + "title":"", + "title_size":"16", + "title_align":"left", + "type":"sankey", + "requests":[ + { + "query":{ + "data_source":"network", + "query_string":"*", + "group_by":[ + "source", + "destination" + ], + "limit":100 + }, + "request_type":"netflow_sankey" + } + ] + } + } + ], + "template_variables":[ + + ], + "layout_type":"free", + "notify_list":[ + + ] +} diff --git a/tests/v1/features/dashboards_json_payload/sankey_product_analytics_widget.json b/tests/v1/features/dashboards_json_payload/sankey_product_analytics_widget.json new file mode 100644 index 0000000000..c81edb69c6 --- /dev/null +++ b/tests/v1/features/dashboards_json_payload/sankey_product_analytics_widget.json @@ -0,0 +1,37 @@ +{ + "title":"{{ unique }}", + "description":"", + "widgets":[ + { + "layout":{ + "x":0, + "y":0, + "width":47, + "height":15 + }, + "definition":{ + "title":"", + "title_size":"16", + "title_align":"left", + "type":"sankey", + "requests":[ + { + "query":{ + "data_source":"product_analytics", + "query_string":"@type:session", + "mode":"source" + }, + "request_type":"sankey" + } + ] + } + } + ], + "template_variables":[ + + ], + "layout_type":"free", + "notify_list":[ + + ] +} diff --git a/tests/v1/features/dashboards_json_payload/sankey_rum_widget.json b/tests/v1/features/dashboards_json_payload/sankey_rum_widget.json new file mode 100644 index 0000000000..b8a833ee37 --- /dev/null +++ b/tests/v1/features/dashboards_json_payload/sankey_rum_widget.json @@ -0,0 +1,37 @@ +{ + "title":"{{ unique }}", + "description":"", + "widgets":[ + { + "layout":{ + "x":0, + "y":0, + "width":47, + "height":15 + }, + "definition":{ + "title":"", + "title_size":"16", + "title_align":"left", + "type":"sankey", + "requests":[ + { + "query":{ + "data_source":"rum", + "query_string":"@type:view", + "mode":"source" + }, + "request_type":"sankey" + } + ] + } + } + ], + "template_variables":[ + + ], + "layout_type":"free", + "notify_list":[ + + ] +} diff --git a/tests/v2/cassettes/test_scenarios/test_archive_case_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_archive_case_returns_bad_request_response.frozen index 73056732d9..586a14bae6 100644 --- a/tests/v2/cassettes/test_scenarios/test_archive_case_returns_bad_request_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_archive_case_returns_bad_request_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:44.747Z \ No newline at end of file +2025-10-01T12:46:29.817Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_archive_case_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_archive_case_returns_bad_request_response.yaml index f85ee7bd02..061cadb51d 100644 --- a/tests/v2/cassettes/test_scenarios/test_archive_case_returns_bad_request_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_archive_case_returns_bad_request_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"e3f011bc-8ae6-4ec2-b80d-3069e73bc6a1","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:45.033566Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"e3f011bc-8ae6-4ec2-b80d-3069e73bc6a1","key":"DDFC-98805","merge_status":"NOT_MERGED","priority":"P4","public_id":"99261","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 +26,7 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/e3f011bc-8ae6-4ec2-b80d-3069e73bc6a1/archive + uri: https://api.datadoghq.com/api/v2/cases/3601878d-b851-43b6-900f-0deb35e536d7/archive response: body: string: '{"errors":[{"status":"400","title":"Bad Request","detail":"got type diff --git a/tests/v2/cassettes/test_scenarios/test_archive_case_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_archive_case_returns_ok_response.frozen index 49fdfee8b6..1227062611 100644 --- a/tests/v2/cassettes/test_scenarios/test_archive_case_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_archive_case_returns_ok_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:45.212Z \ No newline at end of file +2025-10-01T12:46:31.029Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_archive_case_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_archive_case_returns_ok_response.yaml index e146c3a089..65856c2e99 100644 --- a/tests/v2/cassettes/test_scenarios/test_archive_case_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_archive_case_returns_ok_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"926e6b8a-4af6-43b2-8a29-33813af68594","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:45.269528Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"926e6b8a-4af6-43b2-8a29-33813af68594","key":"DDFC-98806","merge_status":"NOT_MERGED","priority":"P4","public_id":"99262","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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,12 +26,11 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/926e6b8a-4af6-43b2-8a29-33813af68594/archive + uri: https://api.datadoghq.com/api/v2/cases/b5cf9b44-cb77-4487-a436-0e3ef4e88d49/archive response: body: - string: '{"data":{"id":"926e6b8a-4af6-43b2-8a29-33813af68594","type":"case","attributes":{"archived_at":"2025-12-30T13:49:45.40368576Z","attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:45.269528Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"926e6b8a-4af6-43b2-8a29-33813af68594","key":"DDFC-98806","merge_status":"NOT_MERGED","modified_at":"2025-12-30T13:49:45.403686Z","priority":"P4","public_id":"99262","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"modified_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 diff --git a/tests/v2/cassettes/test_scenarios/test_assign_case_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_assign_case_returns_bad_request_response.frozen index 2fd4c4e8f0..ea5b97b0a6 100644 --- a/tests/v2/cassettes/test_scenarios/test_assign_case_returns_bad_request_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_assign_case_returns_bad_request_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:45.450Z \ No newline at end of file +2025-10-01T12:46:31.968Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_assign_case_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_assign_case_returns_bad_request_response.yaml index 8f390aac48..e2a5392146 100644 --- a/tests/v2/cassettes/test_scenarios/test_assign_case_returns_bad_request_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_assign_case_returns_bad_request_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"b3cef7a0-9637-43fb-88cf-d9ac56310a7b","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:45.508531Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"b3cef7a0-9637-43fb-88cf-d9ac56310a7b","key":"DDFC-98807","merge_status":"NOT_MERGED","priority":"P4","public_id":"99263","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 +26,7 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/b3cef7a0-9637-43fb-88cf-d9ac56310a7b/assign + uri: https://api.datadoghq.com/api/v2/cases/1beeecc8-5c4f-4194-a785-e5c60234e263/assign response: body: string: '{"errors":[{"status":"400","title":"Bad Request"}]}' diff --git a/tests/v2/cassettes/test_scenarios/test_assign_case_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_assign_case_returns_ok_response.frozen index ff2fee4b64..791da7476a 100644 --- a/tests/v2/cassettes/test_scenarios/test_assign_case_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_assign_case_returns_ok_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:45.709Z \ No newline at end of file +2025-10-01T12:46:34.590Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_assign_case_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_assign_case_returns_ok_response.yaml index dd2f82e1fa..8e989310ac 100644 --- a/tests/v2/cassettes/test_scenarios/test_assign_case_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_assign_case_returns_ok_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"0bb969fd-0864-46a1-8e6d-35434e677004","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:45.922467Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"0bb969fd-0864-46a1-8e6d-35434e677004","key":"DDFC-98808","merge_status":"NOT_MERGED","priority":"P4","public_id":"99264","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 @@ -20,7 +19,7 @@ interactions: code: 201 message: Created - request: - body: '{"data":{"attributes":{"email":"Test-Assign_case_returns_OK_response-1767102585@datadoghq.com","title":"user + body: '{"data":{"attributes":{"email":"Test-Assign_case_returns_OK_response-1759322794@datadoghq.com","title":"user title"},"type":"users"}}' headers: accept: @@ -31,8 +30,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/users response: body: - string: '{"data":{"type":"users","id":"06fe1d45-8040-47eb-b161-837f416635e7","attributes":{"name":null,"handle":"test-assign_case_returns_ok_response-1767102585@datadoghq.com","created_at":"2025-12-30T13:49:46.123532+00:00","modified_at":"2025-12-30T13:49:46.123532+00:00","email":"test-assign_case_returns_ok_response-1767102585@datadoghq.com","icon":"https://secure.gravatar.com/avatar/7ef6584479871df45cdfa7868fcc1849?s=48&d=retro","title":"user - title","verified":false,"service_account":false,"disabled":false,"allowed_login_methods":[],"status":"Pending","last_login_time":null},"relationships":{"roles":{"data":[]},"org":{"data":{"type":"orgs","id":"4dee724d-00cc-11ea-a77b-570c9d03c6c5"}}}}} + string: '{"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"}}}}} ' headers: @@ -42,19 +41,18 @@ interactions: code: 201 message: Created - request: - body: '{"data":{"attributes":{"assignee_id":"06fe1d45-8040-47eb-b161-837f416635e7"},"type":"case"}}' + body: '{"data":{"attributes":{"assignee_id":"aa4556b9-9ec4-11f0-8e55-4666095c4509"},"type":"case"}}' headers: accept: - application/json content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/0bb969fd-0864-46a1-8e6d-35434e677004/assign + uri: https://api.datadoghq.com/api/v2/cases/3266bb95-e129-4377-a6a1-16cbd3e07395/assign response: body: - string: '{"data":{"id":"0bb969fd-0864-46a1-8e6d-35434e677004","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:45.922467Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"0bb969fd-0864-46a1-8e6d-35434e677004","key":"DDFC-98808","merge_status":"NOT_MERGED","modified_at":"2025-12-30T13:49:46.211933Z","priority":"P4","public_id":"99264","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"assignee":{"data":{"id":"06fe1d45-8040-47eb-b161-837f416635e7","type":"user"}},"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"modified_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}},{"id":"06fe1d45-8040-47eb-b161-837f416635e7","type":"user","attributes":{"active":false,"email":"test-assign_case_returns_ok_response-1767102585@datadoghq.com","handle":"test-assign_case_returns_ok_response-1767102585@datadoghq.com","name":""}}]}' + string: '{"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 @@ -67,7 +65,7 @@ interactions: accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/users/06fe1d45-8040-47eb-b161-837f416635e7 + uri: https://api.datadoghq.com/api/v2/users/aa4556b9-9ec4-11f0-8e55-4666095c4509 response: body: string: '' diff --git a/tests/v2/cassettes/test_scenarios/test_comment_case_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_comment_case_returns_bad_request_response.frozen index 7a164c32e7..bea3893eb2 100644 --- a/tests/v2/cassettes/test_scenarios/test_comment_case_returns_bad_request_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_comment_case_returns_bad_request_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:46.568Z \ No newline at end of file +2025-10-01T12:46:36.797Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_comment_case_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_comment_case_returns_bad_request_response.yaml index 1c4c1f58a6..fc022b2623 100644 --- a/tests/v2/cassettes/test_scenarios/test_comment_case_returns_bad_request_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_comment_case_returns_bad_request_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"dabff9f7-18d4-40ac-acd5-50b2d311ff53","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:46.622659Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"dabff9f7-18d4-40ac-acd5-50b2d311ff53","key":"DDFC-98809","merge_status":"NOT_MERGED","priority":"P4","public_id":"99265","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 @@ -27,7 +26,7 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/dabff9f7-18d4-40ac-acd5-50b2d311ff53/comment + uri: https://api.datadoghq.com/api/v2/cases/5ce18aba-c435-4b23-9818-bf79e97dcc66/comment response: body: string: '{"errors":[{"status":"400","title":"Bad Request"}]}' diff --git a/tests/v2/cassettes/test_scenarios/test_comment_case_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_comment_case_returns_ok_response.frozen index 98b9d1fc74..654ac6feec 100644 --- a/tests/v2/cassettes/test_scenarios/test_comment_case_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_comment_case_returns_ok_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:46.777Z \ No newline at end of file +2025-10-01T12:46:38.181Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_comment_case_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_comment_case_returns_ok_response.yaml index 06cce9921b..a68516ecc2 100644 --- a/tests/v2/cassettes/test_scenarios/test_comment_case_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_comment_case_returns_ok_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"84a0af3b-6609-442a-b4de-b082652354cf","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:46.840801Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"84a0af3b-6609-442a-b4de-b082652354cf","key":"DDFC-98810","merge_status":"NOT_MERGED","priority":"P4","public_id":"99266","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 @@ -27,12 +26,11 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/84a0af3b-6609-442a-b4de-b082652354cf/comment + uri: https://api.datadoghq.com/api/v2/cases/1e943f20-0e96-4833-bc3f-728b8991d32e/comment response: body: - string: '{"data":[{"id":"2df6429f-8148-440c-a959-e6503f42709b","type":"timeline_cell","attributes":{"author":{"type":"USER","content":{"ID":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account","email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","active":true}},"cell_content":{"message":"Hello - World !"},"content":"{\"message\":\"Hello World !\"}","created_at":"2025-12-30T13:49:46.968106806Z","type":"COMMENT"}}]}' + string: '{"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 diff --git a/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_not_found_response.frozen index 86ab74d050..e7e401d337 100644 --- a/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_not_found_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_not_found_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:47.018Z \ No newline at end of file +2025-10-01T12:46:41.670Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_not_found_response.yaml b/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_not_found_response.yaml index 1a0781cde5..5cb563dd01 100644 --- a/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_not_found_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_delete_case_comment_returns_not_found_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"e48aba34-ea79-45c7-a425-56d5b09c9fc4","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:47.073795Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"e48aba34-ea79-45c7-a425-56d5b09c9fc4","key":"DDFC-98811","merge_status":"NOT_MERGED","priority":"P4","public_id":"99267","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 @@ -25,11 +24,11 @@ interactions: accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/cases/e48aba34-ea79-45c7-a425-56d5b09c9fc4/comment/23fca2aa-4967-4936-bdd7-9157d9e456d7 + uri: https://api.datadoghq.com/api/v2/cases/41de4d6f-9ed2-478f-b180-3a383c14dc64/comment/23fca2aa-4967-4936-bdd7-9157d9e456d7 response: body: - string: '{"errors":[{"code":"resource_not_found","title":"failed to get timeline - cell: timeline cell not found"}]}' + string: '{"errors":[{"code":"resource_not_found","title":"timeline cell not + found"}]}' headers: content-type: - application/vnd.api+json diff --git a/tests/v2/cassettes/test_scenarios/test_delete_custom_attribute_from_case_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_delete_custom_attribute_from_case_returns_not_found_response.frozen index fe06c3881a..437e011d44 100644 --- a/tests/v2/cassettes/test_scenarios/test_delete_custom_attribute_from_case_returns_not_found_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_delete_custom_attribute_from_case_returns_not_found_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:47.272Z \ No newline at end of file +2025-10-01T12:46:42.614Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_delete_custom_attribute_from_case_returns_not_found_response.yaml b/tests/v2/cassettes/test_scenarios/test_delete_custom_attribute_from_case_returns_not_found_response.yaml index b95ea14860..c090dc3d9b 100644 --- a/tests/v2/cassettes/test_scenarios/test_delete_custom_attribute_from_case_returns_not_found_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_delete_custom_attribute_from_case_returns_not_found_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"83a5e059-3fde-48b5-b4d4-8bcc5227db32","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:47.318549Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"83a5e059-3fde-48b5-b4d4-8bcc5227db32","key":"DDFC-98812","merge_status":"NOT_MERGED","priority":"P4","public_id":"99268","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 @@ -25,12 +24,11 @@ interactions: accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/cases/83a5e059-3fde-48b5-b4d4-8bcc5227db32/custom_attributes/invalid_key + uri: https://api.datadoghq.com/api/v2/cases/16b310dd-5329-48c5-82fe-ccd2b39cb0e5/custom_attributes/invalid_key response: body: - string: '{"errors":[{"code":"resource_not_found","title":"failed to update batch: - failed to apply command: failed to apply domain.RemoveCustomAttribute command: - custom attribute configuration not found","meta":{"key":"invalid_key"}}]}' + string: '{"errors":[{"code":"resource_not_found","title":"failed to update case + (command func error): custom attribute configuration not found","meta":{"key":"invalid_key"}}]}' headers: content-type: - application/vnd.api+json diff --git a/tests/v2/cassettes/test_scenarios/test_get_the_details_of_a_case_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_get_the_details_of_a_case_returns_ok_response.frozen index 64799d6580..10a2481a02 100644 --- a/tests/v2/cassettes/test_scenarios/test_get_the_details_of_a_case_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_get_the_details_of_a_case_returns_ok_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:47.488Z \ No newline at end of file +2025-10-01T12:46:44.009Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_get_the_details_of_a_case_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_get_the_details_of_a_case_returns_ok_response.yaml index 468302e63e..2a9cd2260d 100644 --- a/tests/v2/cassettes/test_scenarios/test_get_the_details_of_a_case_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_get_the_details_of_a_case_returns_ok_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"9daaa414-8843-46e2-8360-c36d3713285f","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:47.542749Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"9daaa414-8843-46e2-8360-c36d3713285f","key":"DDFC-98813","merge_status":"NOT_MERGED","priority":"P4","public_id":"99269","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 @@ -25,12 +24,11 @@ interactions: accept: - application/json method: GET - uri: https://api.datadoghq.com/api/v2/cases/9daaa414-8843-46e2-8360-c36d3713285f + uri: https://api.datadoghq.com/api/v2/cases/da266ceb-843c-4af1-9190-9f1ab13fd4f4 response: body: - string: '{"data":{"id":"9daaa414-8843-46e2-8360-c36d3713285f","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:47.542749Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"9daaa414-8843-46e2-8360-c36d3713285f","key":"DDFC-98813","merge_status":"NOT_MERGED","priority":"P4","public_id":"99269","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 diff --git a/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_bad_request_response.frozen index b5329637a4..7fe2db8b1d 100644 --- a/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_bad_request_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_bad_request_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:47.735Z \ No newline at end of file +2025-10-01T12:46:44.940Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_bad_request_response.yaml index e57e1ba71a..7b8c9cea41 100644 --- a/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_bad_request_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_bad_request_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"21c1b181-cee4-4b72-bf96-38859d367da4","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:47.783537Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"21c1b181-cee4-4b72-bf96-38859d367da4","key":"DDFC-98814","merge_status":"NOT_MERGED","priority":"P4","public_id":"99270","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 +26,7 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/21c1b181-cee4-4b72-bf96-38859d367da4/unarchive + uri: https://api.datadoghq.com/api/v2/cases/add421a8-61e3-416e-85ec-9db7440bc951/unarchive response: body: string: '{"errors":[{"status":"400","title":"Bad Request","detail":"got type diff --git a/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_ok_response.frozen index eee04a8be3..5a7cef238b 100644 --- a/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_ok_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:47.992Z \ No newline at end of file +2025-10-01T12:46:46.650Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_ok_response.yaml index 8169ec0182..996c765943 100644 --- a/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_unarchive_case_returns_ok_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"a02bcfe0-5678-49bb-a696-86544bde2bee","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:48.042966Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"a02bcfe0-5678-49bb-a696-86544bde2bee","key":"DDFC-98815","merge_status":"NOT_MERGED","priority":"P4","public_id":"99271","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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,12 +26,11 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/a02bcfe0-5678-49bb-a696-86544bde2bee/unarchive + uri: https://api.datadoghq.com/api/v2/cases/6f53ae15-54ca-418d-b3bc-ae2b039dbb5c/unarchive response: body: - string: '{"data":{"id":"a02bcfe0-5678-49bb-a696-86544bde2bee","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:48.042966Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"a02bcfe0-5678-49bb-a696-86544bde2bee","key":"DDFC-98815","merge_status":"NOT_MERGED","priority":"P4","public_id":"99271","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 diff --git a/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_bad_request_response.frozen index c94e0251e1..0400accbe4 100644 --- a/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_bad_request_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_bad_request_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:48.267Z \ No newline at end of file +2025-10-01T12:46:48.330Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_bad_request_response.yaml index 2b85ca53f3..d0a650be51 100644 --- a/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_bad_request_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_bad_request_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"5fa6cf48-aa31-40bc-9d17-f8f78eea95be","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:48.323172Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"5fa6cf48-aa31-40bc-9d17-f8f78eea95be","key":"DDFC-98816","merge_status":"NOT_MERGED","priority":"P4","public_id":"99272","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 +26,7 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/5fa6cf48-aa31-40bc-9d17-f8f78eea95be/unassign + uri: https://api.datadoghq.com/api/v2/cases/976a6c59-d5b2-477a-95e4-00d154bcf447/unassign response: body: string: '{"errors":[{"status":"400","title":"Bad Request","detail":"got type diff --git a/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_ok_response.frozen index ec79ed792b..9fe15caf99 100644 --- a/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_ok_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:48.487Z \ No newline at end of file +2025-10-01T12:46:50.389Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_ok_response.yaml index 33aaba0a79..9fbabebe34 100644 --- a/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_unassign_case_returns_ok_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"6491a991-9117-46dc-9762-ea2cc244e5b3","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:48.538223Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"6491a991-9117-46dc-9762-ea2cc244e5b3","key":"DDFC-98817","merge_status":"NOT_MERGED","priority":"P4","public_id":"99273","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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,12 +26,11 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/6491a991-9117-46dc-9762-ea2cc244e5b3/unassign + uri: https://api.datadoghq.com/api/v2/cases/83f41574-2062-47de-be0e-b3c2ae43ef5c/unassign response: body: - string: '{"data":{"id":"6491a991-9117-46dc-9762-ea2cc244e5b3","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:48.538223Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"6491a991-9117-46dc-9762-ea2cc244e5b3","key":"DDFC-98817","merge_status":"NOT_MERGED","priority":"P4","public_id":"99273","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_attributes_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_attributes_returns_ok_response.frozen index 279957c450..9619ed45f8 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_attributes_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_case_attributes_returns_ok_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:48.699Z \ No newline at end of file +2025-10-01T12:46:52.908Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_attributes_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_attributes_returns_ok_response.yaml index 13ded32fb6..ef0492da24 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_attributes_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_update_case_attributes_returns_ok_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"8c6346d6-448d-43a0-b957-b38773438c4f","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:48.757052Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"8c6346d6-448d-43a0-b957-b38773438c4f","key":"DDFC-98818","merge_status":"NOT_MERGED","priority":"P4","public_id":"99274","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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,12 +26,11 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/8c6346d6-448d-43a0-b957-b38773438c4f/attributes + uri: https://api.datadoghq.com/api/v2/cases/916e1b61-25b1-4da9-b3a3-000150b675f6/attributes response: body: - string: '{"data":{"id":"8c6346d6-448d-43a0-b957-b38773438c4f","type":"case","attributes":{"attributes":{"env":["test"],"service":["web-store","web-api"],"team":["engineer"]},"comment_count":0,"created_at":"2025-12-30T13:49:48.757052Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"8c6346d6-448d-43a0-b957-b38773438c4f","key":"DDFC-98818","merge_status":"NOT_MERGED","modified_at":"2025-12-30T13:49:48.927381Z","priority":"P4","public_id":"99274","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"modified_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_not_found_response.frozen index ffe59d3bc4..3f6e4336b9 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_not_found_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_not_found_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:48.998Z \ No newline at end of file +2025-10-01T12:46:54.092Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_not_found_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_not_found_response.yaml index ea78318ef4..46894eb18c 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_not_found_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_update_case_custom_attribute_returns_not_found_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"6ace1538-7ef1-4a00-a0bd-67c8ed9a3cd3","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:49.048411Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"6ace1538-7ef1-4a00-a0bd-67c8ed9a3cd3","key":"DDFC-98819","merge_status":"NOT_MERGED","priority":"P4","public_id":"99275","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 @@ -28,12 +27,11 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/6ace1538-7ef1-4a00-a0bd-67c8ed9a3cd3/custom_attributes/invalid_key + uri: https://api.datadoghq.com/api/v2/cases/8e87c755-54a9-470a-9118-62a0942ec870/custom_attributes/invalid_key response: body: - string: '{"errors":[{"code":"resource_not_found","title":"failed to update batch: - failed to apply command: failed to apply domain.UpdateCustomAttribute command: - custom attribute configuration not found","meta":{"key":"invalid_key"}}]}' + string: '{"errors":[{"code":"resource_not_found","title":"failed to update case + (command func error): custom attribute configuration not found","meta":{"key":"invalid_key"}}]}' headers: content-type: - application/vnd.api+json diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_ok_response.frozen index 338af624d5..f5684a8e2a 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_ok_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:49.217Z \ No newline at end of file +2025-10-01T12:46:56.936Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_ok_response.yaml index a9950b1a17..36da8a0d68 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_update_case_description_returns_ok_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"a4887f3f-c7a8-47d7-ae65-a1f7ce9687c5","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:49.259766Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"a4887f3f-c7a8-47d7-ae65-a1f7ce9687c5","key":"DDFC-98820","merge_status":"NOT_MERGED","priority":"P4","public_id":"99276","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 @@ -28,13 +27,12 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/a4887f3f-c7a8-47d7-ae65-a1f7ce9687c5/description + uri: https://api.datadoghq.com/api/v2/cases/bb8284e0-959e-43db-9920-adf55f37ed7d/description response: body: - string: '{"data":{"id":"a4887f3f-c7a8-47d7-ae65-a1f7ce9687c5","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:49.259766Z","creation_source":"MANUAL","custom_attributes":{},"description":"Seeing - some weird memory increase... Updating the description","insights":[],"internal_id":"a4887f3f-c7a8-47d7-ae65-a1f7ce9687c5","key":"DDFC-98820","merge_status":"NOT_MERGED","modified_at":"2025-12-30T13:49:49.395812Z","priority":"P4","public_id":"99276","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"modified_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_bad_request_response.frozen index 40e66d12a7..a4821efc16 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_bad_request_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_bad_request_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:49.426Z \ No newline at end of file +2025-10-01T12:46:59.356Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_bad_request_response.yaml index 670f45b149..d4b0bf869e 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_bad_request_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_bad_request_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"4ef03b27-6d40-455b-8dd8-3f3224a34a7a","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:49.483012Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"4ef03b27-6d40-455b-8dd8-3f3224a34a7a","key":"DDFC-98821","merge_status":"NOT_MERGED","priority":"P4","public_id":"99277","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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,11 +26,11 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/4ef03b27-6d40-455b-8dd8-3f3224a34a7a/priority + uri: https://api.datadoghq.com/api/v2/cases/66eb3131-0b3b-489b-b672-2781600cc1e6/priority response: body: string: '{"errors":[{"title":"Generic Error","detail":"invalid priority P1234. - Must be one of P1, P2, P3, P4, P5, NOT_DEFINED"}]}' + Must be one of NOT_DEFINED, P1, P2, P3, P4, P5"}]}' headers: content-type: - application/vnd.api+json diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_ok_response.frozen index 08ad752937..da62d2e6f6 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_ok_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:49.632Z \ No newline at end of file +2025-10-01T12:47:01.924Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_ok_response.yaml index 1ca246a2ca..c168a94771 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_update_case_priority_returns_ok_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"511f7667-3d80-4498-8118-416211a1a131","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:49.67893Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"511f7667-3d80-4498-8118-416211a1a131","key":"DDFC-98822","merge_status":"NOT_MERGED","priority":"P4","public_id":"99278","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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,12 +26,11 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/511f7667-3d80-4498-8118-416211a1a131/priority + uri: https://api.datadoghq.com/api/v2/cases/d42afb74-0480-4535-bf4d-af0353d32c1c/priority response: body: - string: '{"data":{"id":"511f7667-3d80-4498-8118-416211a1a131","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:49.67893Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"511f7667-3d80-4498-8118-416211a1a131","key":"DDFC-98822","merge_status":"NOT_MERGED","modified_at":"2025-12-30T13:49:49.835308Z","priority":"P3","public_id":"99278","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"modified_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_bad_request_response.frozen index b4042237f5..fa70f7c325 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_bad_request_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_bad_request_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:49.865Z \ No newline at end of file +2025-10-01T12:47:03.345Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_bad_request_response.yaml index 1be5ba5466..1bee73a0d0 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_bad_request_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_bad_request_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"ae30545d-e705-493d-a672-7210315ccec2","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:49.916511Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"ae30545d-e705-493d-a672-7210315ccec2","key":"DDFC-98823","merge_status":"NOT_MERGED","priority":"P4","public_id":"99279","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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,13 +26,13 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/ae30545d-e705-493d-a672-7210315ccec2/status + uri: https://api.datadoghq.com/api/v2/cases/53897bb0-8e8b-4652-985b-0b9e2e8c3a30/status response: body: string: '{"errors":[{"title":"Generic Error","detail":"invalid status OPENED. - Must be one of NOT_STARTED, IN_PROGRESS, CLOSED, ACKNOWLEDGED, TRIGGERED, - PENDING_APPROVAL, COMPLETED, CANCELLED, DECLINED, SUNKNOWN, OPEN, RESOLVED, - APPROVED, IMPLEMENTING"}]}' + 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 diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_ok_response.frozen index 79276a9d78..447e0043d2 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_ok_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:50.079Z \ No newline at end of file +2025-10-01T12:47:05.138Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_ok_response.yaml index 2dbcb4113d..e5cc126687 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_update_case_status_returns_ok_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"d417f9be-d247-4ce8-b3e4-ae7a9283f3d6","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:50.123131Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"d417f9be-d247-4ce8-b3e4-ae7a9283f3d6","key":"DDFC-98824","merge_status":"NOT_MERGED","priority":"P4","public_id":"99280","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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,12 +26,11 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/d417f9be-d247-4ce8-b3e4-ae7a9283f3d6/status + uri: https://api.datadoghq.com/api/v2/cases/e030702b-1f81-4ff0-94ba-ff9650823cf3/status response: body: - string: '{"data":{"id":"d417f9be-d247-4ce8-b3e4-ae7a9283f3d6","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:50.123131Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"d417f9be-d247-4ce8-b3e4-ae7a9283f3d6","key":"DDFC-98824","merge_status":"NOT_MERGED","modified_at":"2025-12-30T13:49:50.289934Z","priority":"P4","public_id":"99280","status":"IN_PROGRESS","status_group":"SG_IN_PROGRESS","status_name":"In - Progress","title":"My new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"modified_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_bad_request_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_bad_request_response.frozen index 3cfdb82bc0..ca09c6cf32 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_bad_request_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_bad_request_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:50.328Z \ No newline at end of file +2025-10-01T12:47:06.013Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_bad_request_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_bad_request_response.yaml index bb14114eb6..d75ab4eacf 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_bad_request_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_bad_request_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"00a64fed-4338-458b-9af5-77ba6e6c9d7b","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:50.377668Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"00a64fed-4338-458b-9af5-77ba6e6c9d7b","key":"DDFC-98825","merge_status":"NOT_MERGED","priority":"P4","public_id":"99281","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 @@ -27,7 +26,7 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/00a64fed-4338-458b-9af5-77ba6e6c9d7b/title + uri: https://api.datadoghq.com/api/v2/cases/de7cd20f-3755-44aa-9f89-846b6ae37124/title response: body: string: '{"errors":[{"status":"400","title":"Bad Request"}]}' diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_ok_response.frozen index 7cd7790590..898a971bbd 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_ok_response.frozen @@ -1 +1 @@ -2025-12-30T13:49:50.596Z \ No newline at end of file +2025-10-01T12:47:07.351Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_ok_response.yaml index 5fe2a9ddac..a5fe12fcd7 100644 --- a/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_update_case_title_returns_ok_response.yaml @@ -10,9 +10,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/cases response: body: - string: '{"data":{"id":"03ec656b-5d21-41c4-a655-ccb18b0aa990","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:50.642707Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"03ec656b-5d21-41c4-a655-ccb18b0aa990","key":"DDFC-98826","merge_status":"NOT_MERGED","priority":"P4","public_id":"99282","status":"OPEN","status_group":"SG_OPEN","status_name":"Open","title":"My - new case","type":"STANDARD","type_id":"00000000-0000-0000-0000-000000000001"},"relationships":{"created_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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 @@ -28,12 +27,11 @@ interactions: content-type: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/cases/03ec656b-5d21-41c4-a655-ccb18b0aa990/title + uri: https://api.datadoghq.com/api/v2/cases/4c4bfc12-4f7c-4891-a8d0-70a15a0f29c2/title response: body: - string: '{"data":{"id":"03ec656b-5d21-41c4-a655-ccb18b0aa990","type":"case","attributes":{"attributes":{},"comment_count":0,"created_at":"2025-12-30T13:49:50.642707Z","creation_source":"MANUAL","custom_attributes":{},"description":"","insights":[],"internal_id":"03ec656b-5d21-41c4-a655-ccb18b0aa990","key":"DDFC-98826","merge_status":"NOT_MERGED","modified_at":"2025-12-30T13:49:50.769335Z","priority":"P4","public_id":"99282","status":"OPEN","status_group":"SG_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":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"modified_by":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user"}},"project":{"data":{"id":"d4bbe1af-f36e-42f1-87c1-493ca35c320e","type":"project"}}}},"included":[{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"user","attributes":{"active":true,"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI - Account"}}]}' + string: '{"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