diff --git a/.generator/schemas/v1/openapi.yaml b/.generator/schemas/v1/openapi.yaml index dba7bb99f9a5..244b12fa0763 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 fb8574b175ea..abac03b8a879 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/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-sankey-widget-and-network-data-source.frozen b/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-sankey-widget-and-network-data-source.frozen new file mode 100644 index 000000000000..819ff4202413 --- /dev/null +++ b/cassettes/features/v1/dashboards/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/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-sankey-widget-and-network-data-source.yml b/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-sankey-widget-and-network-data-source.yml new file mode 100644 index 000000000000..21c30202e799 --- /dev/null +++ b/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-sankey-widget-and-network-data-source.yml @@ -0,0 +1,43 @@ +http_interactions: +- recorded_at: Fri, 02 Jan 2026 15:26:45 GMT + request: + body: + encoding: UTF-8 + string: '{"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: + encoding: UTF-8 + 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 +- recorded_at: Fri, 02 Jan 2026 15:26:45 GMT + request: + body: null + headers: + Accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v1/dashboard/ngh-vn6-nqq + response: + body: + encoding: UTF-8 + string: '{"deleted_dashboard_id":"ngh-vn6-nqq"}' + headers: + Content-Type: + - application/json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-sankey-widget-and-product-analytics-data-source.frozen b/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-sankey-widget-and-product-analytics-data-source.frozen new file mode 100644 index 000000000000..d7f340133751 --- /dev/null +++ b/cassettes/features/v1/dashboards/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/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-sankey-widget-and-product-analytics-data-source.yml b/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-sankey-widget-and-product-analytics-data-source.yml new file mode 100644 index 000000000000..7edc3f0c17db --- /dev/null +++ b/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-sankey-widget-and-product-analytics-data-source.yml @@ -0,0 +1,43 @@ +http_interactions: +- recorded_at: Fri, 02 Jan 2026 15:27:06 GMT + request: + body: + encoding: UTF-8 + string: '{"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: + encoding: UTF-8 + 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 +- recorded_at: Fri, 02 Jan 2026 15:27:06 GMT + request: + body: null + headers: + Accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v1/dashboard/y6u-yab-bdi + response: + body: + encoding: UTF-8 + string: '{"deleted_dashboard_id":"y6u-yab-bdi"}' + headers: + Content-Type: + - application/json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-sankey-widget-and-rum-data-source.frozen b/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-sankey-widget-and-rum-data-source.frozen new file mode 100644 index 000000000000..6f1ee04a8ff4 --- /dev/null +++ b/cassettes/features/v1/dashboards/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/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-sankey-widget-and-rum-data-source.yml b/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-sankey-widget-and-rum-data-source.yml new file mode 100644 index 000000000000..e4a24d1c69f6 --- /dev/null +++ b/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-sankey-widget-and-rum-data-source.yml @@ -0,0 +1,43 @@ +http_interactions: +- recorded_at: Fri, 02 Jan 2026 15:26:19 GMT + request: + body: + encoding: UTF-8 + string: '{"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: + encoding: UTF-8 + 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 +- recorded_at: Fri, 02 Jan 2026 15:26:19 GMT + request: + body: null + headers: + Accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v1/dashboard/pgj-vt6-zeg + response: + body: + encoding: UTF-8 + string: '{"deleted_dashboard_id":"pgj-vt6-zeg"}' + headers: + Content-Type: + - application/json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/case_management/Archive-case-returns-Bad-Request-response.frozen b/cassettes/features/v2/case_management/Archive-case-returns-Bad-Request-response.frozen index 73056732d9d6..586a14bae6e5 100644 --- a/cassettes/features/v2/case_management/Archive-case-returns-Bad-Request-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Archive-case-returns-Bad-Request-response.yml b/cassettes/features/v2/case_management/Archive-case-returns-Bad-Request-response.yml index 936a306f6688..042cf9c40cad 100644 --- a/cassettes/features/v2/case_management/Archive-case-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/case_management/Archive-case-returns-Bad-Request-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:44 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:29 GMT request: body: encoding: UTF-8 @@ -14,16 +14,15 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:44 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:29 GMT request: body: encoding: UTF-8 @@ -34,7 +33,7 @@ http_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: encoding: UTF-8 diff --git a/cassettes/features/v2/case_management/Archive-case-returns-OK-response.frozen b/cassettes/features/v2/case_management/Archive-case-returns-OK-response.frozen index 49fdfee8b6de..122706261155 100644 --- a/cassettes/features/v2/case_management/Archive-case-returns-OK-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Archive-case-returns-OK-response.yml b/cassettes/features/v2/case_management/Archive-case-returns-OK-response.yml index 47f486dc8be9..4abeccd46537 100644 --- a/cassettes/features/v2/case_management/Archive-case-returns-OK-response.yml +++ b/cassettes/features/v2/case_management/Archive-case-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:45 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:31 GMT request: body: encoding: UTF-8 @@ -14,16 +14,15 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:45 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:31 GMT request: body: encoding: UTF-8 @@ -34,13 +33,12 @@ http_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: encoding: UTF-8 - 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/cassettes/features/v2/case_management/Assign-case-returns-Bad-Request-response.frozen b/cassettes/features/v2/case_management/Assign-case-returns-Bad-Request-response.frozen index 2fd4c4e8f030..ea5b97b0a6d3 100644 --- a/cassettes/features/v2/case_management/Assign-case-returns-Bad-Request-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Assign-case-returns-Bad-Request-response.yml b/cassettes/features/v2/case_management/Assign-case-returns-Bad-Request-response.yml index 4a64a44451a0..e83b27bf2d0b 100644 --- a/cassettes/features/v2/case_management/Assign-case-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/case_management/Assign-case-returns-Bad-Request-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:45 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:31 GMT request: body: encoding: UTF-8 @@ -14,16 +14,15 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:45 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:31 GMT request: body: encoding: UTF-8 @@ -34,7 +33,7 @@ http_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: encoding: UTF-8 diff --git a/cassettes/features/v2/case_management/Assign-case-returns-OK-response.frozen b/cassettes/features/v2/case_management/Assign-case-returns-OK-response.frozen index ff2fee4b6442..791da7476a09 100644 --- a/cassettes/features/v2/case_management/Assign-case-returns-OK-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Assign-case-returns-OK-response.yml b/cassettes/features/v2/case_management/Assign-case-returns-OK-response.yml index 113e059388f9..dc5666bfdf74 100644 --- a/cassettes/features/v2/case_management/Assign-case-returns-OK-response.yml +++ b/cassettes/features/v2/case_management/Assign-case-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:45 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:34 GMT request: body: encoding: UTF-8 @@ -14,20 +14,19 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:45 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:34 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"email":"Test-Assign_case_returns_OK_response-1767102585@datadoghq.com","title":"user + string: '{"data":{"attributes":{"email":"Test-Assign_case_returns_OK_response-1759322794@datadoghq.com","title":"user title"},"type":"users"}}' headers: Accept: @@ -39,8 +38,8 @@ http_interactions: response: body: encoding: UTF-8 - 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: @@ -49,38 +48,37 @@ http_interactions: status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:45 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:34 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"assignee_id":"06fe1d45-8040-47eb-b161-837f416635e7"},"type":"case"}}' + string: '{"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: encoding: UTF-8 - 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 status: code: 200 message: OK -- recorded_at: Tue, 30 Dec 2025 13:49:45 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:34 GMT request: body: null headers: 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: encoding: UTF-8 diff --git a/cassettes/features/v2/case_management/Comment-case-returns-Bad-Request-response.frozen b/cassettes/features/v2/case_management/Comment-case-returns-Bad-Request-response.frozen index 7a164c32e7a6..bea3893eb21f 100644 --- a/cassettes/features/v2/case_management/Comment-case-returns-Bad-Request-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Comment-case-returns-Bad-Request-response.yml b/cassettes/features/v2/case_management/Comment-case-returns-Bad-Request-response.yml index 80f669588273..fd073e3ac6c6 100644 --- a/cassettes/features/v2/case_management/Comment-case-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/case_management/Comment-case-returns-Bad-Request-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:46 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:36 GMT request: body: encoding: UTF-8 @@ -14,16 +14,15 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:46 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:36 GMT request: body: encoding: UTF-8 @@ -34,7 +33,7 @@ http_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: encoding: UTF-8 diff --git a/cassettes/features/v2/case_management/Comment-case-returns-OK-response.frozen b/cassettes/features/v2/case_management/Comment-case-returns-OK-response.frozen index 98b9d1fc74b9..654ac6feecc0 100644 --- a/cassettes/features/v2/case_management/Comment-case-returns-OK-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Comment-case-returns-OK-response.yml b/cassettes/features/v2/case_management/Comment-case-returns-OK-response.yml index b818ef917c08..1fb4341890ea 100644 --- a/cassettes/features/v2/case_management/Comment-case-returns-OK-response.yml +++ b/cassettes/features/v2/case_management/Comment-case-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:46 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:38 GMT request: body: encoding: UTF-8 @@ -14,16 +14,15 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:46 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:38 GMT request: body: encoding: UTF-8 @@ -34,13 +33,12 @@ http_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: encoding: UTF-8 - 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/cassettes/features/v2/case_management/Delete-case-comment-returns-Not-Found-response.frozen b/cassettes/features/v2/case_management/Delete-case-comment-returns-Not-Found-response.frozen index 86ab74d050ca..e7e401d337b3 100644 --- a/cassettes/features/v2/case_management/Delete-case-comment-returns-Not-Found-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Delete-case-comment-returns-Not-Found-response.yml b/cassettes/features/v2/case_management/Delete-case-comment-returns-Not-Found-response.yml index 334cad3472ba..f4c7608cfd86 100644 --- a/cassettes/features/v2/case_management/Delete-case-comment-returns-Not-Found-response.yml +++ b/cassettes/features/v2/case_management/Delete-case-comment-returns-Not-Found-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:47 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:41 GMT request: body: encoding: UTF-8 @@ -14,28 +14,27 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:47 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:41 GMT request: body: null headers: 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: encoding: UTF-8 - 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/cassettes/features/v2/case_management/Delete-custom-attribute-from-case-returns-Not-Found-response.frozen b/cassettes/features/v2/case_management/Delete-custom-attribute-from-case-returns-Not-Found-response.frozen index fe06c3881a9f..437e011d4468 100644 --- a/cassettes/features/v2/case_management/Delete-custom-attribute-from-case-returns-Not-Found-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Delete-custom-attribute-from-case-returns-Not-Found-response.yml b/cassettes/features/v2/case_management/Delete-custom-attribute-from-case-returns-Not-Found-response.yml index 5cca1a9c8101..d67d9e5c8c98 100644 --- a/cassettes/features/v2/case_management/Delete-custom-attribute-from-case-returns-Not-Found-response.yml +++ b/cassettes/features/v2/case_management/Delete-custom-attribute-from-case-returns-Not-Found-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:47 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:42 GMT request: body: encoding: UTF-8 @@ -14,29 +14,27 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:47 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:42 GMT request: body: null headers: 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: encoding: UTF-8 - 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/cassettes/features/v2/case_management/Get-the-details-of-a-case-returns-OK-response.frozen b/cassettes/features/v2/case_management/Get-the-details-of-a-case-returns-OK-response.frozen index 64799d65807f..10a2481a0209 100644 --- a/cassettes/features/v2/case_management/Get-the-details-of-a-case-returns-OK-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Get-the-details-of-a-case-returns-OK-response.yml b/cassettes/features/v2/case_management/Get-the-details-of-a-case-returns-OK-response.yml index 4a0390e983f1..21b9c3342d02 100644 --- a/cassettes/features/v2/case_management/Get-the-details-of-a-case-returns-OK-response.yml +++ b/cassettes/features/v2/case_management/Get-the-details-of-a-case-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:47 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:44 GMT request: body: encoding: UTF-8 @@ -14,29 +14,27 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:47 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:44 GMT request: body: null headers: 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: encoding: UTF-8 - 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/cassettes/features/v2/case_management/Unarchive-case-returns-Bad-Request-response.frozen b/cassettes/features/v2/case_management/Unarchive-case-returns-Bad-Request-response.frozen index b5329637a40b..7fe2db8b1d45 100644 --- a/cassettes/features/v2/case_management/Unarchive-case-returns-Bad-Request-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Unarchive-case-returns-Bad-Request-response.yml b/cassettes/features/v2/case_management/Unarchive-case-returns-Bad-Request-response.yml index 261ca3595788..1d704c8dffb0 100644 --- a/cassettes/features/v2/case_management/Unarchive-case-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/case_management/Unarchive-case-returns-Bad-Request-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:47 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:44 GMT request: body: encoding: UTF-8 @@ -14,16 +14,15 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:47 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:44 GMT request: body: encoding: UTF-8 @@ -34,7 +33,7 @@ http_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: encoding: UTF-8 diff --git a/cassettes/features/v2/case_management/Unarchive-case-returns-OK-response.frozen b/cassettes/features/v2/case_management/Unarchive-case-returns-OK-response.frozen index eee04a8be38b..5a7cef238be2 100644 --- a/cassettes/features/v2/case_management/Unarchive-case-returns-OK-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Unarchive-case-returns-OK-response.yml b/cassettes/features/v2/case_management/Unarchive-case-returns-OK-response.yml index 17c84623a590..2dfd729de07e 100644 --- a/cassettes/features/v2/case_management/Unarchive-case-returns-OK-response.yml +++ b/cassettes/features/v2/case_management/Unarchive-case-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:47 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:46 GMT request: body: encoding: UTF-8 @@ -14,16 +14,15 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:47 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:46 GMT request: body: encoding: UTF-8 @@ -34,13 +33,12 @@ http_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: encoding: UTF-8 - 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/cassettes/features/v2/case_management/Unassign-case-returns-Bad-Request-response.frozen b/cassettes/features/v2/case_management/Unassign-case-returns-Bad-Request-response.frozen index c94e0251e1c4..0400accbe4b5 100644 --- a/cassettes/features/v2/case_management/Unassign-case-returns-Bad-Request-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Unassign-case-returns-Bad-Request-response.yml b/cassettes/features/v2/case_management/Unassign-case-returns-Bad-Request-response.yml index ca5bdce0d606..fbfb552b4f1d 100644 --- a/cassettes/features/v2/case_management/Unassign-case-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/case_management/Unassign-case-returns-Bad-Request-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:48 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:48 GMT request: body: encoding: UTF-8 @@ -14,16 +14,15 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:48 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:48 GMT request: body: encoding: UTF-8 @@ -34,7 +33,7 @@ http_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: encoding: UTF-8 diff --git a/cassettes/features/v2/case_management/Unassign-case-returns-OK-response.frozen b/cassettes/features/v2/case_management/Unassign-case-returns-OK-response.frozen index ec79ed792bcc..9fe15caf9984 100644 --- a/cassettes/features/v2/case_management/Unassign-case-returns-OK-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Unassign-case-returns-OK-response.yml b/cassettes/features/v2/case_management/Unassign-case-returns-OK-response.yml index 0bf874fba72e..0bb8eb9750ce 100644 --- a/cassettes/features/v2/case_management/Unassign-case-returns-OK-response.yml +++ b/cassettes/features/v2/case_management/Unassign-case-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:48 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:50 GMT request: body: encoding: UTF-8 @@ -14,16 +14,15 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:48 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:50 GMT request: body: encoding: UTF-8 @@ -34,13 +33,12 @@ http_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: encoding: UTF-8 - 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/cassettes/features/v2/case_management/Update-case-attributes-returns-OK-response.frozen b/cassettes/features/v2/case_management/Update-case-attributes-returns-OK-response.frozen index 279957c450f4..9619ed45f875 100644 --- a/cassettes/features/v2/case_management/Update-case-attributes-returns-OK-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Update-case-attributes-returns-OK-response.yml b/cassettes/features/v2/case_management/Update-case-attributes-returns-OK-response.yml index f4cd1756239d..75c659ab773a 100644 --- a/cassettes/features/v2/case_management/Update-case-attributes-returns-OK-response.yml +++ b/cassettes/features/v2/case_management/Update-case-attributes-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:48 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:52 GMT request: body: encoding: UTF-8 @@ -14,16 +14,15 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:48 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:52 GMT request: body: encoding: UTF-8 @@ -34,13 +33,12 @@ http_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: encoding: UTF-8 - 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/cassettes/features/v2/case_management/Update-case-custom-attribute-returns-Not-Found-response.frozen b/cassettes/features/v2/case_management/Update-case-custom-attribute-returns-Not-Found-response.frozen index ffe59d3bc447..3f6e4336b9cc 100644 --- a/cassettes/features/v2/case_management/Update-case-custom-attribute-returns-Not-Found-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Update-case-custom-attribute-returns-Not-Found-response.yml b/cassettes/features/v2/case_management/Update-case-custom-attribute-returns-Not-Found-response.yml index 23dc07f4512b..78c49dcd2be7 100644 --- a/cassettes/features/v2/case_management/Update-case-custom-attribute-returns-Not-Found-response.yml +++ b/cassettes/features/v2/case_management/Update-case-custom-attribute-returns-Not-Found-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:48 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:54 GMT request: body: encoding: UTF-8 @@ -14,16 +14,15 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:48 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:54 GMT request: body: encoding: UTF-8 @@ -35,13 +34,12 @@ http_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: encoding: UTF-8 - 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/cassettes/features/v2/case_management/Update-case-description-returns-OK-response.frozen b/cassettes/features/v2/case_management/Update-case-description-returns-OK-response.frozen index 338af624d51a..f5684a8e2aad 100644 --- a/cassettes/features/v2/case_management/Update-case-description-returns-OK-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Update-case-description-returns-OK-response.yml b/cassettes/features/v2/case_management/Update-case-description-returns-OK-response.yml index 25b98b392325..0f6b364fd2ec 100644 --- a/cassettes/features/v2/case_management/Update-case-description-returns-OK-response.yml +++ b/cassettes/features/v2/case_management/Update-case-description-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:49 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:56 GMT request: body: encoding: UTF-8 @@ -14,16 +14,15 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:49 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:56 GMT request: body: encoding: UTF-8 @@ -35,14 +34,13 @@ http_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: encoding: UTF-8 - 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/cassettes/features/v2/case_management/Update-case-priority-returns-Bad-Request-response.frozen b/cassettes/features/v2/case_management/Update-case-priority-returns-Bad-Request-response.frozen index 40e66d12a7b1..a4821efc16fc 100644 --- a/cassettes/features/v2/case_management/Update-case-priority-returns-Bad-Request-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Update-case-priority-returns-Bad-Request-response.yml b/cassettes/features/v2/case_management/Update-case-priority-returns-Bad-Request-response.yml index 27e40e856316..cdad2cafec42 100644 --- a/cassettes/features/v2/case_management/Update-case-priority-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/case_management/Update-case-priority-returns-Bad-Request-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:49 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:59 GMT request: body: encoding: UTF-8 @@ -14,16 +14,15 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:49 GMT +- recorded_at: Wed, 01 Oct 2025 12:46:59 GMT request: body: encoding: UTF-8 @@ -34,12 +33,12 @@ http_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: encoding: UTF-8 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/cassettes/features/v2/case_management/Update-case-priority-returns-OK-response.frozen b/cassettes/features/v2/case_management/Update-case-priority-returns-OK-response.frozen index 08ad7529379c..da62d2e6f684 100644 --- a/cassettes/features/v2/case_management/Update-case-priority-returns-OK-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Update-case-priority-returns-OK-response.yml b/cassettes/features/v2/case_management/Update-case-priority-returns-OK-response.yml index 87ec9af18c7e..00aac783c7b9 100644 --- a/cassettes/features/v2/case_management/Update-case-priority-returns-OK-response.yml +++ b/cassettes/features/v2/case_management/Update-case-priority-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:49 GMT +- recorded_at: Wed, 01 Oct 2025 12:47:01 GMT request: body: encoding: UTF-8 @@ -14,16 +14,15 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:49 GMT +- recorded_at: Wed, 01 Oct 2025 12:47:01 GMT request: body: encoding: UTF-8 @@ -34,13 +33,12 @@ http_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: encoding: UTF-8 - 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/cassettes/features/v2/case_management/Update-case-status-returns-Bad-Request-response.frozen b/cassettes/features/v2/case_management/Update-case-status-returns-Bad-Request-response.frozen index b4042237f55e..fa70f7c3252a 100644 --- a/cassettes/features/v2/case_management/Update-case-status-returns-Bad-Request-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Update-case-status-returns-Bad-Request-response.yml b/cassettes/features/v2/case_management/Update-case-status-returns-Bad-Request-response.yml index a915d1b74210..a924a83bf2d7 100644 --- a/cassettes/features/v2/case_management/Update-case-status-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/case_management/Update-case-status-returns-Bad-Request-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:49 GMT +- recorded_at: Wed, 01 Oct 2025 12:47:03 GMT request: body: encoding: UTF-8 @@ -14,16 +14,15 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:49 GMT +- recorded_at: Wed, 01 Oct 2025 12:47:03 GMT request: body: encoding: UTF-8 @@ -34,14 +33,14 @@ http_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: encoding: UTF-8 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/cassettes/features/v2/case_management/Update-case-status-returns-OK-response.frozen b/cassettes/features/v2/case_management/Update-case-status-returns-OK-response.frozen index 79276a9d782c..447e0043d27e 100644 --- a/cassettes/features/v2/case_management/Update-case-status-returns-OK-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Update-case-status-returns-OK-response.yml b/cassettes/features/v2/case_management/Update-case-status-returns-OK-response.yml index 0928d3d962ca..8ac794c6092f 100644 --- a/cassettes/features/v2/case_management/Update-case-status-returns-OK-response.yml +++ b/cassettes/features/v2/case_management/Update-case-status-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:50 GMT +- recorded_at: Wed, 01 Oct 2025 12:47:05 GMT request: body: encoding: UTF-8 @@ -14,16 +14,15 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:50 GMT +- recorded_at: Wed, 01 Oct 2025 12:47:05 GMT request: body: encoding: UTF-8 @@ -34,13 +33,12 @@ http_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: encoding: UTF-8 - 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/cassettes/features/v2/case_management/Update-case-title-returns-Bad-Request-response.frozen b/cassettes/features/v2/case_management/Update-case-title-returns-Bad-Request-response.frozen index 3cfdb82bc082..ca09c6cf32d7 100644 --- a/cassettes/features/v2/case_management/Update-case-title-returns-Bad-Request-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Update-case-title-returns-Bad-Request-response.yml b/cassettes/features/v2/case_management/Update-case-title-returns-Bad-Request-response.yml index 9313f974eea8..9a726630192f 100644 --- a/cassettes/features/v2/case_management/Update-case-title-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/case_management/Update-case-title-returns-Bad-Request-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:50 GMT +- recorded_at: Wed, 01 Oct 2025 12:47:06 GMT request: body: encoding: UTF-8 @@ -14,16 +14,15 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:50 GMT +- recorded_at: Wed, 01 Oct 2025 12:47:06 GMT request: body: encoding: UTF-8 @@ -34,7 +33,7 @@ http_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: encoding: UTF-8 diff --git a/cassettes/features/v2/case_management/Update-case-title-returns-OK-response.frozen b/cassettes/features/v2/case_management/Update-case-title-returns-OK-response.frozen index 7cd7790590b6..898a971bbd34 100644 --- a/cassettes/features/v2/case_management/Update-case-title-returns-OK-response.frozen +++ b/cassettes/features/v2/case_management/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/cassettes/features/v2/case_management/Update-case-title-returns-OK-response.yml b/cassettes/features/v2/case_management/Update-case-title-returns-OK-response.yml index 31c112572c00..bc3a64482f6b 100644 --- a/cassettes/features/v2/case_management/Update-case-title-returns-OK-response.yml +++ b/cassettes/features/v2/case_management/Update-case-title-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 30 Dec 2025 13:49:50 GMT +- recorded_at: Wed, 01 Oct 2025 12:47:07 GMT request: body: encoding: UTF-8 @@ -14,16 +14,15 @@ http_interactions: response: body: encoding: UTF-8 - 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 status: code: 201 message: Created -- recorded_at: Tue, 30 Dec 2025 13:49:50 GMT +- recorded_at: Wed, 01 Oct 2025 12:47:07 GMT request: body: encoding: UTF-8 @@ -35,13 +34,12 @@ http_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: encoding: UTF-8 - 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 diff --git a/examples/v1/dashboards/CreateDashboard_258152475.rb b/examples/v1/dashboards/CreateDashboard_258152475.rb new file mode 100644 index 000000000000..87c12fc7270e --- /dev/null +++ b/examples/v1/dashboards/CreateDashboard_258152475.rb @@ -0,0 +1,43 @@ +# Create a new dashboard with sankey widget and network data source + +require "datadog_api_client" +api_instance = DatadogAPIClient::V1::DashboardsAPI.new + +body = DatadogAPIClient::V1::Dashboard.new({ + title: "Example-Dashboard", + description: "", + widgets: [ + DatadogAPIClient::V1::Widget.new({ + layout: DatadogAPIClient::V1::WidgetLayout.new({ + x: 0, + y: 0, + width: 47, + height: 15, + }), + definition: DatadogAPIClient::V1::SankeyWidgetDefinition.new({ + title: "", + title_size: "16", + title_align: DatadogAPIClient::V1::WidgetTextAlign::LEFT, + type: DatadogAPIClient::V1::SankeyWidgetDefinitionType::SANKEY, + requests: [ + DatadogAPIClient::V1::SankeyNetworkRequest.new({ + query: DatadogAPIClient::V1::SankeyNetworkQuery.new({ + data_source: DatadogAPIClient::V1::SankeyNetworkDataSource::NETWORK, + query_string: "*", + group_by: [ + "source", + "destination", + ], + limit: 100, + }), + request_type: DatadogAPIClient::V1::SankeyNetworkRequestType::NETFLOW_SANKEY, + }), + ], + }), + }), + ], + template_variables: [], + layout_type: DatadogAPIClient::V1::DashboardLayoutType::FREE, + notify_list: [], +}) +p api_instance.create_dashboard(body) diff --git a/examples/v1/dashboards/CreateDashboard_2932151909.rb b/examples/v1/dashboards/CreateDashboard_2932151909.rb new file mode 100644 index 000000000000..66734e573da7 --- /dev/null +++ b/examples/v1/dashboards/CreateDashboard_2932151909.rb @@ -0,0 +1,39 @@ +# Create a new dashboard with sankey widget and rum data source + +require "datadog_api_client" +api_instance = DatadogAPIClient::V1::DashboardsAPI.new + +body = DatadogAPIClient::V1::Dashboard.new({ + title: "Example-Dashboard", + description: "", + widgets: [ + DatadogAPIClient::V1::Widget.new({ + layout: DatadogAPIClient::V1::WidgetLayout.new({ + x: 0, + y: 0, + width: 47, + height: 15, + }), + definition: DatadogAPIClient::V1::SankeyWidgetDefinition.new({ + title: "", + title_size: "16", + title_align: DatadogAPIClient::V1::WidgetTextAlign::LEFT, + type: DatadogAPIClient::V1::SankeyWidgetDefinitionType::SANKEY, + requests: [ + DatadogAPIClient::V1::SankeyRumRequest.new({ + query: DatadogAPIClient::V1::SankeyRumQuery.new({ + data_source: DatadogAPIClient::V1::SankeyRumDataSource::RUM, + query_string: "@type:view", + mode: DatadogAPIClient::V1::SankeyRumQueryMode::SOURCE, + }), + request_type: DatadogAPIClient::V1::SankeyWidgetDefinitionType::SANKEY, + }), + ], + }), + }), + ], + template_variables: [], + layout_type: DatadogAPIClient::V1::DashboardLayoutType::FREE, + notify_list: [], +}) +p api_instance.create_dashboard(body) diff --git a/examples/v1/dashboards/CreateDashboard_373890042.rb b/examples/v1/dashboards/CreateDashboard_373890042.rb new file mode 100644 index 000000000000..59e0103cf409 --- /dev/null +++ b/examples/v1/dashboards/CreateDashboard_373890042.rb @@ -0,0 +1,39 @@ +# Create a new dashboard with sankey widget and product analytics data source + +require "datadog_api_client" +api_instance = DatadogAPIClient::V1::DashboardsAPI.new + +body = DatadogAPIClient::V1::Dashboard.new({ + title: "Example-Dashboard", + description: "", + widgets: [ + DatadogAPIClient::V1::Widget.new({ + layout: DatadogAPIClient::V1::WidgetLayout.new({ + x: 0, + y: 0, + width: 47, + height: 15, + }), + definition: DatadogAPIClient::V1::SankeyWidgetDefinition.new({ + title: "", + title_size: "16", + title_align: DatadogAPIClient::V1::WidgetTextAlign::LEFT, + type: DatadogAPIClient::V1::SankeyWidgetDefinitionType::SANKEY, + requests: [ + DatadogAPIClient::V1::SankeyRumRequest.new({ + query: DatadogAPIClient::V1::SankeyRumQuery.new({ + data_source: DatadogAPIClient::V1::SankeyRumDataSource::PRODUCT_ANALYTICS, + query_string: "@type:session", + mode: DatadogAPIClient::V1::SankeyRumQueryMode::SOURCE, + }), + request_type: DatadogAPIClient::V1::SankeyWidgetDefinitionType::SANKEY, + }), + ], + }), + }), + ], + template_variables: [], + layout_type: DatadogAPIClient::V1::DashboardLayoutType::FREE, + notify_list: [], +}) +p api_instance.create_dashboard(body) diff --git a/features/v1/dashboards.feature b/features/v1/dashboards.feature index 588c609ceddb..9e1c3472092f 100644 --- a/features/v1/dashboards.feature +++ b/features/v1/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/features/v1/dashboards_json_payload/sankey_network_widget.json b/features/v1/dashboards_json_payload/sankey_network_widget.json new file mode 100644 index 000000000000..1f237af8f2f8 --- /dev/null +++ b/features/v1/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/features/v1/dashboards_json_payload/sankey_product_analytics_widget.json b/features/v1/dashboards_json_payload/sankey_product_analytics_widget.json new file mode 100644 index 000000000000..c81edb69c6dc --- /dev/null +++ b/features/v1/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/features/v1/dashboards_json_payload/sankey_rum_widget.json b/features/v1/dashboards_json_payload/sankey_rum_widget.json new file mode 100644 index 000000000000..b8a833ee3758 --- /dev/null +++ b/features/v1/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/lib/datadog_api_client/inflector.rb b/lib/datadog_api_client/inflector.rb index 022391df7878..f54ffe287293 100644 --- a/lib/datadog_api_client/inflector.rb +++ b/lib/datadog_api_client/inflector.rb @@ -112,6 +112,8 @@ def overrides "v1.event_priority" => "EventPriority", "v1.event_query_definition" => "EventQueryDefinition", "v1.event_response" => "EventResponse", + "v1.events_aggregation" => "EventsAggregation", + "v1.events_aggregation_value" => "EventsAggregationValue", "v1.event_stream_widget_definition" => "EventStreamWidgetDefinition", "v1.event_stream_widget_definition_type" => "EventStreamWidgetDefinitionType", "v1.event_timeline_widget_definition" => "EventTimelineWidgetDefinition", @@ -445,6 +447,11 @@ def overrides "v1.powerpack_widget_definition" => "PowerpackWidgetDefinition", "v1.powerpack_widget_definition_type" => "PowerpackWidgetDefinitionType", "v1.process_query_definition" => "ProcessQueryDefinition", + "v1.product_analytics_audience_account_subquery" => "ProductAnalyticsAudienceAccountSubquery", + "v1.product_analytics_audience_filters" => "ProductAnalyticsAudienceFilters", + "v1.product_analytics_audience_occurrence_filter" => "ProductAnalyticsAudienceOccurrenceFilter", + "v1.product_analytics_audience_segment_subquery" => "ProductAnalyticsAudienceSegmentSubquery", + "v1.product_analytics_audience_user_subquery" => "ProductAnalyticsAudienceUserSubquery", "v1.query_sort_order" => "QuerySortOrder", "v1.query_value_widget_definition" => "QueryValueWidgetDefinition", "v1.query_value_widget_definition_type" => "QueryValueWidgetDefinitionType", @@ -455,6 +462,21 @@ def overrides "v1.run_workflow_widget_definition" => "RunWorkflowWidgetDefinition", "v1.run_workflow_widget_definition_type" => "RunWorkflowWidgetDefinitionType", "v1.run_workflow_widget_input" => "RunWorkflowWidgetInput", + "v1.sankey_join_keys" => "SankeyJoinKeys", + "v1.sankey_network_data_source" => "SankeyNetworkDataSource", + "v1.sankey_network_query" => "SankeyNetworkQuery", + "v1.sankey_network_query_compute" => "SankeyNetworkQueryCompute", + "v1.sankey_network_query_mode" => "SankeyNetworkQueryMode", + "v1.sankey_network_query_sort" => "SankeyNetworkQuerySort", + "v1.sankey_network_request" => "SankeyNetworkRequest", + "v1.sankey_network_request_type" => "SankeyNetworkRequestType", + "v1.sankey_rum_data_source" => "SankeyRumDataSource", + "v1.sankey_rum_query" => "SankeyRumQuery", + "v1.sankey_rum_query_mode" => "SankeyRumQueryMode", + "v1.sankey_rum_request" => "SankeyRumRequest", + "v1.sankey_widget_definition" => "SankeyWidgetDefinition", + "v1.sankey_widget_definition_type" => "SankeyWidgetDefinitionType", + "v1.sankey_widget_request" => "SankeyWidgetRequest", "v1.scatterplot_dimension" => "ScatterplotDimension", "v1.scatter_plot_request" => "ScatterPlotRequest", "v1.scatterplot_table_request" => "ScatterplotTableRequest", @@ -1985,21 +2007,27 @@ def overrides "v2.domain_allowlist_response_data" => "DomainAllowlistResponseData", "v2.domain_allowlist_response_data_attributes" => "DomainAllowlistResponseDataAttributes", "v2.domain_allowlist_type" => "DomainAllowlistType", + "v2.dora_deployment_fetch_response" => "DORADeploymentFetchResponse", + "v2.dora_deployment_object" => "DORADeploymentObject", + "v2.dora_deployment_object_attributes" => "DORADeploymentObjectAttributes", "v2.dora_deployment_request" => "DORADeploymentRequest", "v2.dora_deployment_request_attributes" => "DORADeploymentRequestAttributes", "v2.dora_deployment_request_data" => "DORADeploymentRequestData", "v2.dora_deployment_response" => "DORADeploymentResponse", "v2.dora_deployment_response_data" => "DORADeploymentResponseData", + "v2.dora_deployments_list_response" => "DORADeploymentsListResponse", "v2.dora_deployment_type" => "DORADeploymentType", - "v2.dora_event" => "DORAEvent", + "v2.dora_failure_fetch_response" => "DORAFailureFetchResponse", "v2.dora_failure_request" => "DORAFailureRequest", "v2.dora_failure_request_attributes" => "DORAFailureRequestAttributes", "v2.dora_failure_request_data" => "DORAFailureRequestData", "v2.dora_failure_response" => "DORAFailureResponse", "v2.dora_failure_response_data" => "DORAFailureResponseData", + "v2.dora_failures_list_response" => "DORAFailuresListResponse", "v2.dora_failure_type" => "DORAFailureType", - "v2.dora_fetch_response" => "DORAFetchResponse", "v2.dora_git_info" => "DORAGitInfo", + "v2.dora_incident_object" => "DORAIncidentObject", + "v2.dora_incident_object_attributes" => "DORAIncidentObjectAttributes", "v2.dora_list_deployments_request" => "DORAListDeploymentsRequest", "v2.dora_list_deployments_request_attributes" => "DORAListDeploymentsRequestAttributes", "v2.dora_list_deployments_request_data" => "DORAListDeploymentsRequestData", @@ -2008,7 +2036,6 @@ def overrides "v2.dora_list_failures_request_attributes" => "DORAListFailuresRequestAttributes", "v2.dora_list_failures_request_data" => "DORAListFailuresRequestData", "v2.dora_list_failures_request_data_type" => "DORAListFailuresRequestDataType", - "v2.dora_list_response" => "DORAListResponse", "v2.downtime_create_request" => "DowntimeCreateRequest", "v2.downtime_create_request_attributes" => "DowntimeCreateRequestAttributes", "v2.downtime_create_request_data" => "DowntimeCreateRequestData", diff --git a/lib/datadog_api_client/v1/models/events_aggregation.rb b/lib/datadog_api_client/v1/models/events_aggregation.rb new file mode 100644 index 000000000000..976e2896a1ef --- /dev/null +++ b/lib/datadog_api_client/v1/models/events_aggregation.rb @@ -0,0 +1,63 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # The type of aggregation that can be performed on events-based queries. + module EventsAggregation + class << self + include BaseOneOfModel + include BaseOneOfModelNoDiscriminator + + # List of class defined in oneOf (OpenAPI v3) + def openapi_one_of + [ + :'EventsAggregationValue', + :'String' + ] + end + # Builds the object + # @param data [Mixed] Data to be matched against the list of oneOf items + # @return [Object] Returns the model or the data itself + def build(data) + # Go through the list of oneOf items and attempt to identify the appropriate one. + # Note: + # - We do not attempt to check whether exactly one item matches. + # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 }) + # due to the way the deserialization is made in the base_object template (it just casts without verifying). + # - TODO: scalar values are de facto behaving as if they were nullable. + # - TODO: logging when debugging is set. + openapi_one_of.each do |klass| + begin + next if klass == :AnyType # "nullable: true" + typed_data = find_and_cast_into_type(klass, data) + next if typed_data.respond_to?(:_unparsed) && typed_data._unparsed + return typed_data if typed_data + rescue # rescue all errors so we keep iterating even if the current item lookup raises + end + end + + if openapi_one_of.include?(:AnyType) + data + else + self._unparsed = true + DatadogAPIClient::UnparsedObject.new(data) + end + end + end + end +end diff --git a/lib/datadog_api_client/v1/models/events_aggregation_value.rb b/lib/datadog_api_client/v1/models/events_aggregation_value.rb new file mode 100644 index 000000000000..102277da157a --- /dev/null +++ b/lib/datadog_api_client/v1/models/events_aggregation_value.rb @@ -0,0 +1,36 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Standard aggregation types for events-based queries. + class EventsAggregationValue + include BaseEnumModel + + AVG = "avg".freeze + CARDINALITY = "cardinality".freeze + COUNT = "count".freeze + DELTA = "delta".freeze + EARLIEST = "earliest".freeze + LATEST = "latest".freeze + MAX = "max".freeze + MEDIAN = "median".freeze + MIN = "min".freeze + MOST_FREQUENT = "most_frequent".freeze + SUM = "sum".freeze + end +end diff --git a/lib/datadog_api_client/v1/models/product_analytics_audience_account_subquery.rb b/lib/datadog_api_client/v1/models/product_analytics_audience_account_subquery.rb new file mode 100644 index 000000000000..d112a42c07f9 --- /dev/null +++ b/lib/datadog_api_client/v1/models/product_analytics_audience_account_subquery.rb @@ -0,0 +1,115 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Product Analytics audience account subquery. + class ProductAnalyticsAudienceAccountSubquery + include BaseGenericModel + + # + attr_accessor :name + + # + attr_accessor :query + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'name' => :'name', + :'query' => :'query' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'name' => :'String', + :'query' => :'String' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::ProductAnalyticsAudienceAccountSubquery` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'query') + self.query = attributes[:'query'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + name == o.name && + query == o.query && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [name, query, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/product_analytics_audience_filters.rb b/lib/datadog_api_client/v1/models/product_analytics_audience_filters.rb new file mode 100644 index 000000000000..65132499059f --- /dev/null +++ b/lib/datadog_api_client/v1/models/product_analytics_audience_filters.rb @@ -0,0 +1,141 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Product Analytics/RUM audience filters. + class ProductAnalyticsAudienceFilters + include BaseGenericModel + + # + attr_accessor :accounts + + # + attr_accessor :filter_condition + + # + attr_accessor :segments + + # + attr_accessor :users + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'accounts' => :'accounts', + :'filter_condition' => :'filter_condition', + :'segments' => :'segments', + :'users' => :'users' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'accounts' => :'Array', + :'filter_condition' => :'String', + :'segments' => :'Array', + :'users' => :'Array' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::ProductAnalyticsAudienceFilters` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'accounts') + if (value = attributes[:'accounts']).is_a?(Array) + self.accounts = value + end + end + + if attributes.key?(:'filter_condition') + self.filter_condition = attributes[:'filter_condition'] + end + + if attributes.key?(:'segments') + if (value = attributes[:'segments']).is_a?(Array) + self.segments = value + end + end + + if attributes.key?(:'users') + if (value = attributes[:'users']).is_a?(Array) + self.users = value + end + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + accounts == o.accounts && + filter_condition == o.filter_condition && + segments == o.segments && + users == o.users && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [accounts, filter_condition, segments, users, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/product_analytics_audience_occurrence_filter.rb b/lib/datadog_api_client/v1/models/product_analytics_audience_occurrence_filter.rb new file mode 100644 index 000000000000..dd05a1aef74c --- /dev/null +++ b/lib/datadog_api_client/v1/models/product_analytics_audience_occurrence_filter.rb @@ -0,0 +1,115 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # + class ProductAnalyticsAudienceOccurrenceFilter + include BaseGenericModel + + # + attr_accessor :operator + + # + attr_accessor :value + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'operator' => :'operator', + :'value' => :'value' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'operator' => :'String', + :'value' => :'String' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::ProductAnalyticsAudienceOccurrenceFilter` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'operator') + self.operator = attributes[:'operator'] + end + + if attributes.key?(:'value') + self.value = attributes[:'value'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + operator == o.operator && + value == o.value && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [operator, value, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/product_analytics_audience_segment_subquery.rb b/lib/datadog_api_client/v1/models/product_analytics_audience_segment_subquery.rb new file mode 100644 index 000000000000..d1bed71c20d8 --- /dev/null +++ b/lib/datadog_api_client/v1/models/product_analytics_audience_segment_subquery.rb @@ -0,0 +1,115 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Product Analytics audience segment subquery. + class ProductAnalyticsAudienceSegmentSubquery + include BaseGenericModel + + # + attr_accessor :name + + # + attr_accessor :segment_id + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'name' => :'name', + :'segment_id' => :'segment_id' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'name' => :'String', + :'segment_id' => :'String' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::ProductAnalyticsAudienceSegmentSubquery` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'segment_id') + self.segment_id = attributes[:'segment_id'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + name == o.name && + segment_id == o.segment_id && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [name, segment_id, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/product_analytics_audience_user_subquery.rb b/lib/datadog_api_client/v1/models/product_analytics_audience_user_subquery.rb new file mode 100644 index 000000000000..e73df00e5c87 --- /dev/null +++ b/lib/datadog_api_client/v1/models/product_analytics_audience_user_subquery.rb @@ -0,0 +1,115 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Product Analytics audience user subquery. + class ProductAnalyticsAudienceUserSubquery + include BaseGenericModel + + # + attr_accessor :name + + # + attr_accessor :query + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'name' => :'name', + :'query' => :'query' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'name' => :'String', + :'query' => :'String' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::ProductAnalyticsAudienceUserSubquery` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'query') + self.query = attributes[:'query'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + name == o.name && + query == o.query && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [name, query, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/sankey_join_keys.rb b/lib/datadog_api_client/v1/models/sankey_join_keys.rb new file mode 100644 index 000000000000..ac3cb11c6d66 --- /dev/null +++ b/lib/datadog_api_client/v1/models/sankey_join_keys.rb @@ -0,0 +1,110 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Join keys. + class SankeyJoinKeys + include BaseGenericModel + + # Primary join key. + attr_reader :primary + + # Secondary join keys. + attr_accessor :secondary + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'primary' => :'primary', + :'secondary' => :'secondary' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'primary' => :'String', + :'secondary' => :'Array' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SankeyJoinKeys` initialize method" + end + + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V1::SankeyJoinKeys`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect + end + h[k.to_sym] = v + } + + if attributes.key?(:'primary') + self.primary = attributes[:'primary'] + end + + if attributes.key?(:'secondary') + if (value = attributes[:'secondary']).is_a?(Array) + self.secondary = value + end + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @primary.nil? + true + end + + # Custom attribute writer method with validation + # @param primary [Object] Object to be assigned + # @!visibility private + def primary=(primary) + if primary.nil? + fail ArgumentError, 'invalid value for "primary", primary cannot be nil.' + end + @primary = primary + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + primary == o.primary && + secondary == o.secondary + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [primary, secondary].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/sankey_network_data_source.rb b/lib/datadog_api_client/v1/models/sankey_network_data_source.rb new file mode 100644 index 000000000000..3159a976c0b3 --- /dev/null +++ b/lib/datadog_api_client/v1/models/sankey_network_data_source.rb @@ -0,0 +1,27 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Network data source type. + class SankeyNetworkDataSource + include BaseEnumModel + + NETWORK_DEVICE_FLOWS = "network_device_flows".freeze + NETWORK = "network".freeze + end +end diff --git a/lib/datadog_api_client/v1/models/sankey_network_query.rb b/lib/datadog_api_client/v1/models/sankey_network_query.rb new file mode 100644 index 000000000000..c6b247efdb4f --- /dev/null +++ b/lib/datadog_api_client/v1/models/sankey_network_query.rb @@ -0,0 +1,203 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Query configuration for Sankey network widget. + class SankeyNetworkQuery + include BaseGenericModel + + # Compute aggregation for network queries. + attr_accessor :compute + + # Network data source type. + attr_reader :data_source + + # Fields to group by. + attr_reader :group_by + + # Maximum number of results. + attr_reader :limit + + # Sankey mode for network queries. + attr_accessor :mode + + # Query string for filtering network data. + attr_reader :query_string + + # Whether to exclude missing values. + attr_accessor :should_exclude_missing + + # Sort configuration for network queries. + attr_accessor :sort + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.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' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'compute' => :'SankeyNetworkQueryCompute', + :'data_source' => :'SankeyNetworkDataSource', + :'group_by' => :'Array', + :'limit' => :'Integer', + :'mode' => :'SankeyNetworkQueryMode', + :'query_string' => :'String', + :'should_exclude_missing' => :'Boolean', + :'sort' => :'SankeyNetworkQuerySort' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SankeyNetworkQuery` initialize method" + end + + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V1::SankeyNetworkQuery`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect + end + h[k.to_sym] = v + } + + if attributes.key?(:'compute') + self.compute = attributes[:'compute'] + end + + if attributes.key?(:'data_source') + self.data_source = attributes[:'data_source'] + end + + if attributes.key?(:'group_by') + if (value = attributes[:'group_by']).is_a?(Array) + self.group_by = value + end + end + + if attributes.key?(:'limit') + self.limit = attributes[:'limit'] + end + + if attributes.key?(:'mode') + self.mode = attributes[:'mode'] + end + + if attributes.key?(:'query_string') + self.query_string = attributes[:'query_string'] + end + + if attributes.key?(:'should_exclude_missing') + self.should_exclude_missing = attributes[:'should_exclude_missing'] + end + + if attributes.key?(:'sort') + self.sort = attributes[:'sort'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @data_source.nil? + return false if @group_by.nil? + return false if @limit.nil? + return false if @query_string.nil? + true + end + + # Custom attribute writer method with validation + # @param data_source [Object] Object to be assigned + # @!visibility private + def data_source=(data_source) + if data_source.nil? + fail ArgumentError, 'invalid value for "data_source", data_source cannot be nil.' + end + @data_source = data_source + end + + # Custom attribute writer method with validation + # @param group_by [Object] Object to be assigned + # @!visibility private + def group_by=(group_by) + if group_by.nil? + fail ArgumentError, 'invalid value for "group_by", group_by cannot be nil.' + end + @group_by = group_by + end + + # Custom attribute writer method with validation + # @param limit [Object] Object to be assigned + # @!visibility private + def limit=(limit) + if limit.nil? + fail ArgumentError, 'invalid value for "limit", limit cannot be nil.' + end + @limit = limit + end + + # Custom attribute writer method with validation + # @param query_string [Object] Object to be assigned + # @!visibility private + def query_string=(query_string) + if query_string.nil? + fail ArgumentError, 'invalid value for "query_string", query_string cannot be nil.' + end + @query_string = query_string + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + compute == o.compute && + data_source == o.data_source && + group_by == o.group_by && + limit == o.limit && + mode == o.mode && + query_string == o.query_string && + should_exclude_missing == o.should_exclude_missing && + sort == o.sort + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [compute, data_source, group_by, limit, mode, query_string, should_exclude_missing, sort].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/sankey_network_query_compute.rb b/lib/datadog_api_client/v1/models/sankey_network_query_compute.rb new file mode 100644 index 000000000000..b0309dc60f07 --- /dev/null +++ b/lib/datadog_api_client/v1/models/sankey_network_query_compute.rb @@ -0,0 +1,119 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Compute aggregation for network queries. + class SankeyNetworkQueryCompute + include BaseGenericModel + + # The type of aggregation that can be performed on events-based queries. + attr_reader :aggregation + + # Metric to aggregate. + attr_reader :metric + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'aggregation' => :'aggregation', + :'metric' => :'metric' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'aggregation' => :'EventsAggregation', + :'metric' => :'String' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SankeyNetworkQueryCompute` initialize method" + end + + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V1::SankeyNetworkQueryCompute`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect + end + h[k.to_sym] = v + } + + if attributes.key?(:'aggregation') + self.aggregation = attributes[:'aggregation'] + end + + if attributes.key?(:'metric') + self.metric = attributes[:'metric'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @aggregation.nil? + return false if @metric.nil? + true + end + + # Custom attribute writer method with validation + # @param aggregation [Object] Object to be assigned + # @!visibility private + def aggregation=(aggregation) + if aggregation.nil? + fail ArgumentError, 'invalid value for "aggregation", aggregation cannot be nil.' + end + @aggregation = aggregation + end + + # Custom attribute writer method with validation + # @param metric [Object] Object to be assigned + # @!visibility private + def metric=(metric) + if metric.nil? + fail ArgumentError, 'invalid value for "metric", metric cannot be nil.' + end + @metric = metric + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + aggregation == o.aggregation && + metric == o.metric + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [aggregation, metric].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/sankey_network_query_mode.rb b/lib/datadog_api_client/v1/models/sankey_network_query_mode.rb new file mode 100644 index 000000000000..19377104be60 --- /dev/null +++ b/lib/datadog_api_client/v1/models/sankey_network_query_mode.rb @@ -0,0 +1,26 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Sankey mode for network queries. + class SankeyNetworkQueryMode + include BaseEnumModel + + TARGET = "target".freeze + end +end diff --git a/lib/datadog_api_client/v1/models/sankey_network_query_sort.rb b/lib/datadog_api_client/v1/models/sankey_network_query_sort.rb new file mode 100644 index 000000000000..47efafffc4fc --- /dev/null +++ b/lib/datadog_api_client/v1/models/sankey_network_query_sort.rb @@ -0,0 +1,115 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Sort configuration for network queries. + class SankeyNetworkQuerySort + include BaseGenericModel + + # Field to sort by. + attr_accessor :field + + # Widget sorting methods. + attr_accessor :order + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'field' => :'field', + :'order' => :'order' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'field' => :'String', + :'order' => :'WidgetSort' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SankeyNetworkQuerySort` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'field') + self.field = attributes[:'field'] + end + + if attributes.key?(:'order') + self.order = attributes[:'order'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + field == o.field && + order == o.order && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [field, order, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/sankey_network_request.rb b/lib/datadog_api_client/v1/models/sankey_network_request.rb new file mode 100644 index 000000000000..0c5ed4d59d23 --- /dev/null +++ b/lib/datadog_api_client/v1/models/sankey_network_request.rb @@ -0,0 +1,119 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Sankey widget request for network data source. + class SankeyNetworkRequest + include BaseGenericModel + + # Query configuration for Sankey network widget. + attr_reader :query + + # Type of request for network Sankey widget. + attr_reader :request_type + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'query' => :'query', + :'request_type' => :'request_type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'query' => :'SankeyNetworkQuery', + :'request_type' => :'SankeyNetworkRequestType' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SankeyNetworkRequest` initialize method" + end + + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V1::SankeyNetworkRequest`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect + end + h[k.to_sym] = v + } + + if attributes.key?(:'query') + self.query = attributes[:'query'] + end + + if attributes.key?(:'request_type') + self.request_type = attributes[:'request_type'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @query.nil? + return false if @request_type.nil? + true + end + + # Custom attribute writer method with validation + # @param query [Object] Object to be assigned + # @!visibility private + def query=(query) + if query.nil? + fail ArgumentError, 'invalid value for "query", query cannot be nil.' + end + @query = query + end + + # Custom attribute writer method with validation + # @param request_type [Object] Object to be assigned + # @!visibility private + def request_type=(request_type) + if request_type.nil? + fail ArgumentError, 'invalid value for "request_type", request_type cannot be nil.' + end + @request_type = request_type + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + query == o.query && + request_type == o.request_type + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [query, request_type].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/sankey_network_request_type.rb b/lib/datadog_api_client/v1/models/sankey_network_request_type.rb new file mode 100644 index 000000000000..7229ae6fdb15 --- /dev/null +++ b/lib/datadog_api_client/v1/models/sankey_network_request_type.rb @@ -0,0 +1,26 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Type of request for network Sankey widget. + class SankeyNetworkRequestType + include BaseEnumModel + + NETFLOW_SANKEY = "netflow_sankey".freeze + end +end diff --git a/lib/datadog_api_client/v1/models/sankey_rum_data_source.rb b/lib/datadog_api_client/v1/models/sankey_rum_data_source.rb new file mode 100644 index 000000000000..c40507426083 --- /dev/null +++ b/lib/datadog_api_client/v1/models/sankey_rum_data_source.rb @@ -0,0 +1,27 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Sankey widget with RUM data source. + class SankeyRumDataSource + include BaseEnumModel + + RUM = "rum".freeze + PRODUCT_ANALYTICS = "product_analytics".freeze + end +end diff --git a/lib/datadog_api_client/v1/models/sankey_rum_query.rb b/lib/datadog_api_client/v1/models/sankey_rum_query.rb new file mode 100644 index 000000000000..b0b96020dadf --- /dev/null +++ b/lib/datadog_api_client/v1/models/sankey_rum_query.rb @@ -0,0 +1,220 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Sankey widget with RUM data source query. + class SankeyRumQuery + include BaseGenericModel + + # Product Analytics/RUM audience filters. + attr_accessor :audience_filters + + # Sankey widget with RUM data source. + attr_reader :data_source + + # Entries per step. + attr_accessor :entries_per_step + + # Join keys. + attr_accessor :join_keys + + # Sankey mode for RUM queries. + attr_reader :mode + + # Number of steps. + attr_accessor :number_of_steps + + # + attr_accessor :occurrences + + # Query string. + attr_reader :query_string + + # Source. + attr_accessor :source + + # Subquery ID. + attr_accessor :subquery_id + + # Target. + attr_accessor :target + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.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' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'audience_filters' => :'ProductAnalyticsAudienceFilters', + :'data_source' => :'SankeyRumDataSource', + :'entries_per_step' => :'Integer', + :'join_keys' => :'SankeyJoinKeys', + :'mode' => :'SankeyRumQueryMode', + :'number_of_steps' => :'Integer', + :'occurrences' => :'ProductAnalyticsAudienceOccurrenceFilter', + :'query_string' => :'String', + :'source' => :'String', + :'subquery_id' => :'String', + :'target' => :'String' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SankeyRumQuery` initialize method" + end + + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V1::SankeyRumQuery`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect + end + h[k.to_sym] = v + } + + if attributes.key?(:'audience_filters') + self.audience_filters = attributes[:'audience_filters'] + end + + if attributes.key?(:'data_source') + self.data_source = attributes[:'data_source'] + end + + if attributes.key?(:'entries_per_step') + self.entries_per_step = attributes[:'entries_per_step'] + end + + if attributes.key?(:'join_keys') + self.join_keys = attributes[:'join_keys'] + end + + if attributes.key?(:'mode') + self.mode = attributes[:'mode'] + end + + if attributes.key?(:'number_of_steps') + self.number_of_steps = attributes[:'number_of_steps'] + end + + if attributes.key?(:'occurrences') + self.occurrences = attributes[:'occurrences'] + end + + if attributes.key?(:'query_string') + self.query_string = attributes[:'query_string'] + end + + if attributes.key?(:'source') + self.source = attributes[:'source'] + end + + if attributes.key?(:'subquery_id') + self.subquery_id = attributes[:'subquery_id'] + end + + if attributes.key?(:'target') + self.target = attributes[:'target'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @data_source.nil? + return false if @mode.nil? + return false if @query_string.nil? + true + end + + # Custom attribute writer method with validation + # @param data_source [Object] Object to be assigned + # @!visibility private + def data_source=(data_source) + if data_source.nil? + fail ArgumentError, 'invalid value for "data_source", data_source cannot be nil.' + end + @data_source = data_source + end + + # Custom attribute writer method with validation + # @param mode [Object] Object to be assigned + # @!visibility private + def mode=(mode) + if mode.nil? + fail ArgumentError, 'invalid value for "mode", mode cannot be nil.' + end + @mode = mode + end + + # Custom attribute writer method with validation + # @param query_string [Object] Object to be assigned + # @!visibility private + def query_string=(query_string) + if query_string.nil? + fail ArgumentError, 'invalid value for "query_string", query_string cannot be nil.' + end + @query_string = query_string + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + audience_filters == o.audience_filters && + data_source == o.data_source && + entries_per_step == o.entries_per_step && + join_keys == o.join_keys && + mode == o.mode && + number_of_steps == o.number_of_steps && + occurrences == o.occurrences && + query_string == o.query_string && + source == o.source && + subquery_id == o.subquery_id && + target == o.target + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [audience_filters, data_source, entries_per_step, join_keys, mode, number_of_steps, occurrences, query_string, source, subquery_id, target].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/sankey_rum_query_mode.rb b/lib/datadog_api_client/v1/models/sankey_rum_query_mode.rb new file mode 100644 index 000000000000..8939876b0cf1 --- /dev/null +++ b/lib/datadog_api_client/v1/models/sankey_rum_query_mode.rb @@ -0,0 +1,27 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Sankey mode for RUM queries. + class SankeyRumQueryMode + include BaseEnumModel + + SOURCE = "source".freeze + TARGET = "target".freeze + end +end diff --git a/lib/datadog_api_client/v1/models/sankey_rum_request.rb b/lib/datadog_api_client/v1/models/sankey_rum_request.rb new file mode 100644 index 000000000000..dac587556744 --- /dev/null +++ b/lib/datadog_api_client/v1/models/sankey_rum_request.rb @@ -0,0 +1,119 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Sankey widget with RUM data source. + class SankeyRumRequest + include BaseGenericModel + + # Sankey widget with RUM data source query. + attr_reader :query + + # Type of the Sankey widget. + attr_reader :request_type + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'query' => :'query', + :'request_type' => :'request_type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'query' => :'SankeyRumQuery', + :'request_type' => :'SankeyWidgetDefinitionType' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SankeyRumRequest` initialize method" + end + + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V1::SankeyRumRequest`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect + end + h[k.to_sym] = v + } + + if attributes.key?(:'query') + self.query = attributes[:'query'] + end + + if attributes.key?(:'request_type') + self.request_type = attributes[:'request_type'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @query.nil? + return false if @request_type.nil? + true + end + + # Custom attribute writer method with validation + # @param query [Object] Object to be assigned + # @!visibility private + def query=(query) + if query.nil? + fail ArgumentError, 'invalid value for "query", query cannot be nil.' + end + @query = query + end + + # Custom attribute writer method with validation + # @param request_type [Object] Object to be assigned + # @!visibility private + def request_type=(request_type) + if request_type.nil? + fail ArgumentError, 'invalid value for "request_type", request_type cannot be nil.' + end + @request_type = request_type + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + query == o.query && + request_type == o.request_type + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [query, request_type].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/sankey_widget_definition.rb b/lib/datadog_api_client/v1/models/sankey_widget_definition.rb new file mode 100644 index 000000000000..8bb9bd33c408 --- /dev/null +++ b/lib/datadog_api_client/v1/models/sankey_widget_definition.rb @@ -0,0 +1,185 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # The Sankey diagram visualizes the flow of data between categories, stages or sets of values. + class SankeyWidgetDefinition + include BaseGenericModel + + # List of Sankey widget requests. + attr_reader :requests + + # Whether to show links for "other" category. + attr_accessor :show_other_links + + # Whether to sort nodes in the Sankey diagram. + attr_accessor :sort_nodes + + # Time setting for the widget. + attr_accessor :time + + # Title of your widget. + attr_accessor :title + + # How to align the text on the widget. + attr_accessor :title_align + + # Size of the title. + attr_accessor :title_size + + # Type of the Sankey widget. + attr_reader :type + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.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' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'requests' => :'Array', + :'show_other_links' => :'Boolean', + :'sort_nodes' => :'Boolean', + :'time' => :'WidgetTime', + :'title' => :'String', + :'title_align' => :'WidgetTextAlign', + :'title_size' => :'String', + :'type' => :'SankeyWidgetDefinitionType' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V1::SankeyWidgetDefinition` initialize method" + end + + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V1::SankeyWidgetDefinition`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect + end + h[k.to_sym] = v + } + + if attributes.key?(:'requests') + if (value = attributes[:'requests']).is_a?(Array) + self.requests = value + end + end + + if attributes.key?(:'show_other_links') + self.show_other_links = attributes[:'show_other_links'] + end + + if attributes.key?(:'sort_nodes') + self.sort_nodes = attributes[:'sort_nodes'] + end + + if attributes.key?(:'time') + self.time = attributes[:'time'] + end + + if attributes.key?(:'title') + self.title = attributes[:'title'] + end + + if attributes.key?(:'title_align') + self.title_align = attributes[:'title_align'] + end + + if attributes.key?(:'title_size') + self.title_size = attributes[:'title_size'] + end + + if attributes.key?(:'type') + self.type = attributes[:'type'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @requests.nil? + return false if @requests.length < 1 + return false if @type.nil? + true + end + + # Custom attribute writer method with validation + # @param requests [Object] Object to be assigned + # @!visibility private + def requests=(requests) + if requests.nil? + fail ArgumentError, 'invalid value for "requests", requests cannot be nil.' + end + if requests.length < 1 + fail ArgumentError, 'invalid value for "requests", number of items must be greater than or equal to 1.' + end + @requests = requests + end + + # Custom attribute writer method with validation + # @param type [Object] Object to be assigned + # @!visibility private + def type=(type) + if type.nil? + fail ArgumentError, 'invalid value for "type", type cannot be nil.' + end + @type = type + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + requests == o.requests && + show_other_links == o.show_other_links && + sort_nodes == o.sort_nodes && + time == o.time && + title == o.title && + title_align == o.title_align && + title_size == o.title_size && + type == o.type + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [requests, show_other_links, sort_nodes, time, title, title_align, title_size, type].hash + end + end +end diff --git a/lib/datadog_api_client/v1/models/sankey_widget_definition_type.rb b/lib/datadog_api_client/v1/models/sankey_widget_definition_type.rb new file mode 100644 index 000000000000..6d3eec96b94d --- /dev/null +++ b/lib/datadog_api_client/v1/models/sankey_widget_definition_type.rb @@ -0,0 +1,26 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Type of the Sankey widget. + class SankeyWidgetDefinitionType + include BaseEnumModel + + SANKEY = "sankey".freeze + end +end diff --git a/lib/datadog_api_client/v1/models/sankey_widget_request.rb b/lib/datadog_api_client/v1/models/sankey_widget_request.rb new file mode 100644 index 000000000000..7eb3ef52f658 --- /dev/null +++ b/lib/datadog_api_client/v1/models/sankey_widget_request.rb @@ -0,0 +1,63 @@ +=begin +#Datadog API V1 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V1 + # Request definition for Sankey widget. + module SankeyWidgetRequest + class << self + include BaseOneOfModel + include BaseOneOfModelNoDiscriminator + + # List of class defined in oneOf (OpenAPI v3) + def openapi_one_of + [ + :'SankeyRumRequest', + :'SankeyNetworkRequest' + ] + end + # Builds the object + # @param data [Mixed] Data to be matched against the list of oneOf items + # @return [Object] Returns the model or the data itself + def build(data) + # Go through the list of oneOf items and attempt to identify the appropriate one. + # Note: + # - We do not attempt to check whether exactly one item matches. + # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 }) + # due to the way the deserialization is made in the base_object template (it just casts without verifying). + # - TODO: scalar values are de facto behaving as if they were nullable. + # - TODO: logging when debugging is set. + openapi_one_of.each do |klass| + begin + next if klass == :AnyType # "nullable: true" + typed_data = find_and_cast_into_type(klass, data) + next if typed_data.respond_to?(:_unparsed) && typed_data._unparsed + return typed_data if typed_data + rescue # rescue all errors so we keep iterating even if the current item lookup raises + end + end + + if openapi_one_of.include?(:AnyType) + data + else + self._unparsed = true + DatadogAPIClient::UnparsedObject.new(data) + end + end + end + end +end diff --git a/lib/datadog_api_client/v1/models/widget_definition.rb b/lib/datadog_api_client/v1/models/widget_definition.rb index 66732ddef5b1..f7d9aeb562b3 100644 --- a/lib/datadog_api_client/v1/models/widget_definition.rb +++ b/lib/datadog_api_client/v1/models/widget_definition.rb @@ -51,6 +51,7 @@ def openapi_one_of :'SLOListWidgetDefinition', :'SLOWidgetDefinition', :'ScatterPlotWidgetDefinition', + :'SankeyWidgetDefinition', :'ServiceMapWidgetDefinition', :'ServiceSummaryWidgetDefinition', :'SplitGraphWidgetDefinition', diff --git a/lib/datadog_api_client/v2/api/dora_metrics_api.rb b/lib/datadog_api_client/v2/api/dora_metrics_api.rb index 6f96bce600cb..7ca71f17eae0 100644 --- a/lib/datadog_api_client/v2/api/dora_metrics_api.rb +++ b/lib/datadog_api_client/v2/api/dora_metrics_api.rb @@ -386,7 +386,7 @@ def get_dora_deployment(deployment_id, opts = {}) # # @param deployment_id [String] The ID of the deployment event. # @param opts [Hash] the optional parameters - # @return [Array<(DORAFetchResponse, Integer, Hash)>] DORAFetchResponse data, response status code and response headers + # @return [Array<(DORADeploymentFetchResponse, Integer, Hash)>] DORADeploymentFetchResponse data, response status code and response headers def get_dora_deployment_with_http_info(deployment_id, opts = {}) if @api_client.config.debugging @@ -414,7 +414,7 @@ def get_dora_deployment_with_http_info(deployment_id, opts = {}) post_body = opts[:debug_body] # return_type - return_type = opts[:debug_return_type] || 'DORAFetchResponse' + return_type = opts[:debug_return_type] || 'DORADeploymentFetchResponse' # auth_names auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] @@ -451,7 +451,7 @@ def get_dora_failure(failure_id, opts = {}) # # @param failure_id [String] The ID of the failure event. # @param opts [Hash] the optional parameters - # @return [Array<(DORAFetchResponse, Integer, Hash)>] DORAFetchResponse data, response status code and response headers + # @return [Array<(DORAFailureFetchResponse, Integer, Hash)>] DORAFailureFetchResponse data, response status code and response headers def get_dora_failure_with_http_info(failure_id, opts = {}) if @api_client.config.debugging @@ -479,7 +479,7 @@ def get_dora_failure_with_http_info(failure_id, opts = {}) post_body = opts[:debug_body] # return_type - return_type = opts[:debug_return_type] || 'DORAFetchResponse' + return_type = opts[:debug_return_type] || 'DORAFailureFetchResponse' # auth_names auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] @@ -516,7 +516,7 @@ def list_dora_deployments(body, opts = {}) # # @param body [DORAListDeploymentsRequest] # @param opts [Hash] the optional parameters - # @return [Array<(DORAListResponse, Integer, Hash)>] DORAListResponse data, response status code and response headers + # @return [Array<(DORADeploymentsListResponse, Integer, Hash)>] DORADeploymentsListResponse data, response status code and response headers def list_dora_deployments_with_http_info(body, opts = {}) if @api_client.config.debugging @@ -546,7 +546,7 @@ def list_dora_deployments_with_http_info(body, opts = {}) post_body = opts[:debug_body] || @api_client.object_to_http_body(body) # return_type - return_type = opts[:debug_return_type] || 'DORAListResponse' + return_type = opts[:debug_return_type] || 'DORADeploymentsListResponse' # auth_names auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] @@ -583,7 +583,7 @@ def list_dora_failures(body, opts = {}) # # @param body [DORAListFailuresRequest] # @param opts [Hash] the optional parameters - # @return [Array<(DORAListResponse, Integer, Hash)>] DORAListResponse data, response status code and response headers + # @return [Array<(DORAFailuresListResponse, Integer, Hash)>] DORAFailuresListResponse data, response status code and response headers def list_dora_failures_with_http_info(body, opts = {}) if @api_client.config.debugging @@ -613,7 +613,7 @@ def list_dora_failures_with_http_info(body, opts = {}) post_body = opts[:debug_body] || @api_client.object_to_http_body(body) # return_type - return_type = opts[:debug_return_type] || 'DORAListResponse' + return_type = opts[:debug_return_type] || 'DORAFailuresListResponse' # auth_names auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] diff --git a/lib/datadog_api_client/v2/models/case_create_attributes.rb b/lib/datadog_api_client/v2/models/case_create_attributes.rb index f67e98b5e41b..12587a46cd43 100644 --- a/lib/datadog_api_client/v2/models/case_create_attributes.rb +++ b/lib/datadog_api_client/v2/models/case_create_attributes.rb @@ -21,9 +21,6 @@ module DatadogAPIClient::V2 class CaseCreateAttributes include BaseGenericModel - # Case custom attributes - attr_accessor :custom_attributes - # Description attr_accessor :description @@ -42,7 +39,6 @@ class CaseCreateAttributes # @!visibility private def self.attribute_map { - :'custom_attributes' => :'custom_attributes', :'description' => :'description', :'priority' => :'priority', :'title' => :'title', @@ -54,7 +50,6 @@ def self.attribute_map # @!visibility private def self.openapi_types { - :'custom_attributes' => :'Hash', :'description' => :'String', :'priority' => :'CasePriority', :'title' => :'String', @@ -80,10 +75,6 @@ def initialize(attributes = {}) end } - if attributes.key?(:'custom_attributes') - self.custom_attributes = attributes[:'custom_attributes'] - end - if attributes.key?(:'description') self.description = attributes[:'description'] end @@ -156,7 +147,6 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && - custom_attributes == o.custom_attributes && description == o.description && priority == o.priority && title == o.title && @@ -168,7 +158,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [custom_attributes, description, priority, title, type_id, additional_properties].hash + [description, priority, title, type_id, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/custom_attribute_type.rb b/lib/datadog_api_client/v2/models/custom_attribute_type.rb index 64ba08a58311..ed17f442c7ad 100644 --- a/lib/datadog_api_client/v2/models/custom_attribute_type.rb +++ b/lib/datadog_api_client/v2/models/custom_attribute_type.rb @@ -24,6 +24,5 @@ class CustomAttributeType URL = "URL".freeze TEXT = "TEXT".freeze NUMBER = "NUMBER".freeze - SELECT = "SELECT".freeze end end diff --git a/lib/datadog_api_client/v2/models/dora_deployment_fetch_response.rb b/lib/datadog_api_client/v2/models/dora_deployment_fetch_response.rb new file mode 100644 index 000000000000..ed9c4746fa13 --- /dev/null +++ b/lib/datadog_api_client/v2/models/dora_deployment_fetch_response.rb @@ -0,0 +1,105 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # Response for fetching a single deployment event. + class DORADeploymentFetchResponse + include BaseGenericModel + + # A DORA deployment event. + attr_accessor :data + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'DORADeploymentObject' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::DORADeploymentFetchResponse` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'data') + self.data = attributes[:'data'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + data == o.data && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/dora_deployment_object.rb b/lib/datadog_api_client/v2/models/dora_deployment_object.rb new file mode 100644 index 000000000000..1cd916ae4ec5 --- /dev/null +++ b/lib/datadog_api_client/v2/models/dora_deployment_object.rb @@ -0,0 +1,125 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # A DORA deployment event. + class DORADeploymentObject + include BaseGenericModel + + # The attributes of the deployment event. + attr_accessor :attributes + + # The ID of the deployment event. + attr_accessor :id + + # JSON:API type for DORA deployment events. + attr_accessor :type + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'attributes' => :'attributes', + :'id' => :'id', + :'type' => :'type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'attributes' => :'DORADeploymentObjectAttributes', + :'id' => :'String', + :'type' => :'DORADeploymentType' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::DORADeploymentObject` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'attributes') + self.attributes = attributes[:'attributes'] + end + + if attributes.key?(:'id') + self.id = attributes[:'id'] + end + + if attributes.key?(:'type') + self.type = attributes[:'type'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + attributes == o.attributes && + id == o.id && + type == o.type && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [attributes, id, type, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/dora_deployment_object_attributes.rb b/lib/datadog_api_client/v2/models/dora_deployment_object_attributes.rb new file mode 100644 index 000000000000..4f9e8f9d2e34 --- /dev/null +++ b/lib/datadog_api_client/v2/models/dora_deployment_object_attributes.rb @@ -0,0 +1,225 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The attributes of the deployment event. + class DORADeploymentObjectAttributes + include BaseGenericModel + + # A list of user-defined tags. The tags must follow the `key:value` pattern. Up to 100 may be added per event. + attr_accessor :custom_tags + + # Environment name to where the service was deployed. + attr_accessor :env + + # Unix timestamp when the deployment finished. + attr_reader :finished_at + + # Git info for DORA Metrics events. + attr_accessor :git + + # Service name. + attr_reader :service + + # Unix timestamp when the deployment started. + attr_reader :started_at + + # Name of the team owning the deployed service. + attr_accessor :team + + # Version to correlate with APM Deployment Tracking. + attr_accessor :version + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'custom_tags' => :'custom_tags', + :'env' => :'env', + :'finished_at' => :'finished_at', + :'git' => :'git', + :'service' => :'service', + :'started_at' => :'started_at', + :'team' => :'team', + :'version' => :'version' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'custom_tags' => :'Array', + :'env' => :'String', + :'finished_at' => :'Integer', + :'git' => :'DORAGitInfo', + :'service' => :'String', + :'started_at' => :'Integer', + :'team' => :'String', + :'version' => :'String' + } + end + + # List of attributes with nullable: true + # @!visibility private + def self.openapi_nullable + Set.new([ + :'custom_tags', + ]) + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::DORADeploymentObjectAttributes` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'custom_tags') + if (value = attributes[:'custom_tags']).is_a?(Array) + self.custom_tags = value + end + end + + if attributes.key?(:'env') + self.env = attributes[:'env'] + end + + if attributes.key?(:'finished_at') + self.finished_at = attributes[:'finished_at'] + end + + if attributes.key?(:'git') + self.git = attributes[:'git'] + end + + if attributes.key?(:'service') + self.service = attributes[:'service'] + end + + if attributes.key?(:'started_at') + self.started_at = attributes[:'started_at'] + end + + if attributes.key?(:'team') + self.team = attributes[:'team'] + end + + if attributes.key?(:'version') + self.version = attributes[:'version'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @finished_at.nil? + return false if @service.nil? + return false if @started_at.nil? + true + end + + # Custom attribute writer method with validation + # @param finished_at [Object] Object to be assigned + # @!visibility private + def finished_at=(finished_at) + if finished_at.nil? + fail ArgumentError, 'invalid value for "finished_at", finished_at cannot be nil.' + end + @finished_at = finished_at + end + + # Custom attribute writer method with validation + # @param service [Object] Object to be assigned + # @!visibility private + def service=(service) + if service.nil? + fail ArgumentError, 'invalid value for "service", service cannot be nil.' + end + @service = service + end + + # Custom attribute writer method with validation + # @param started_at [Object] Object to be assigned + # @!visibility private + def started_at=(started_at) + if started_at.nil? + fail ArgumentError, 'invalid value for "started_at", started_at cannot be nil.' + end + @started_at = started_at + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + custom_tags == o.custom_tags && + env == o.env && + finished_at == o.finished_at && + git == o.git && + service == o.service && + started_at == o.started_at && + team == o.team && + version == o.version && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [custom_tags, env, finished_at, git, service, started_at, team, version, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/dora_deployments_list_response.rb b/lib/datadog_api_client/v2/models/dora_deployments_list_response.rb new file mode 100644 index 000000000000..785902c3d546 --- /dev/null +++ b/lib/datadog_api_client/v2/models/dora_deployments_list_response.rb @@ -0,0 +1,107 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # Response for the list deployments endpoint. + class DORADeploymentsListResponse + include BaseGenericModel + + # The list of DORA deployment events. + attr_accessor :data + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'Array' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::DORADeploymentsListResponse` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'data') + if (value = attributes[:'data']).is_a?(Array) + self.data = value + end + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + data == o.data && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/dora_fetch_response.rb b/lib/datadog_api_client/v2/models/dora_failure_fetch_response.rb similarity index 92% rename from lib/datadog_api_client/v2/models/dora_fetch_response.rb rename to lib/datadog_api_client/v2/models/dora_failure_fetch_response.rb index 72f97bd00e9f..5fb7e9a1693c 100644 --- a/lib/datadog_api_client/v2/models/dora_fetch_response.rb +++ b/lib/datadog_api_client/v2/models/dora_failure_fetch_response.rb @@ -17,11 +17,11 @@ require 'time' module DatadogAPIClient::V2 - # Response for the DORA fetch endpoints. - class DORAFetchResponse + # Response for fetching a single failure event. + class DORAFailureFetchResponse include BaseGenericModel - # A DORA event. + # A DORA incident event. attr_accessor :data attr_accessor :additional_properties @@ -38,7 +38,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { - :'data' => :'DORAEvent' + :'data' => :'DORAIncidentObject' } end @@ -47,7 +47,7 @@ def self.openapi_types # @!visibility private def initialize(attributes = {}) if (!attributes.is_a?(Hash)) - fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::DORAFetchResponse` initialize method" + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::DORAFailureFetchResponse` initialize method" end self.additional_properties = {} diff --git a/lib/datadog_api_client/v2/models/dora_list_response.rb b/lib/datadog_api_client/v2/models/dora_failures_list_response.rb similarity index 91% rename from lib/datadog_api_client/v2/models/dora_list_response.rb rename to lib/datadog_api_client/v2/models/dora_failures_list_response.rb index e4ae63e25eda..dba0b4db3ca0 100644 --- a/lib/datadog_api_client/v2/models/dora_list_response.rb +++ b/lib/datadog_api_client/v2/models/dora_failures_list_response.rb @@ -17,11 +17,11 @@ require 'time' module DatadogAPIClient::V2 - # Response for the DORA list endpoints. - class DORAListResponse + # Response for the list failures endpoint. + class DORAFailuresListResponse include BaseGenericModel - # The list of DORA events. + # The list of DORA incident events. attr_accessor :data attr_accessor :additional_properties @@ -38,7 +38,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { - :'data' => :'Array' + :'data' => :'Array' } end @@ -47,7 +47,7 @@ def self.openapi_types # @!visibility private def initialize(attributes = {}) if (!attributes.is_a?(Hash)) - fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::DORAListResponse` initialize method" + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::DORAFailuresListResponse` initialize method" end self.additional_properties = {} diff --git a/lib/datadog_api_client/v2/models/dora_event.rb b/lib/datadog_api_client/v2/models/dora_incident_object.rb similarity index 90% rename from lib/datadog_api_client/v2/models/dora_event.rb rename to lib/datadog_api_client/v2/models/dora_incident_object.rb index aa3b5d53c047..a3ab762d30c2 100644 --- a/lib/datadog_api_client/v2/models/dora_event.rb +++ b/lib/datadog_api_client/v2/models/dora_incident_object.rb @@ -17,17 +17,17 @@ require 'time' module DatadogAPIClient::V2 - # A DORA event. - class DORAEvent + # A DORA incident event. + class DORAIncidentObject include BaseGenericModel - # The attributes of the event. + # The attributes of the incident event. attr_accessor :attributes - # The ID of the event. + # The ID of the incident event. attr_accessor :id - # The type of the event. + # JSON:API type for DORA failure events. attr_accessor :type attr_accessor :additional_properties @@ -46,9 +46,9 @@ def self.attribute_map # @!visibility private def self.openapi_types { - :'attributes' => :'Object', + :'attributes' => :'DORAIncidentObjectAttributes', :'id' => :'String', - :'type' => :'String' + :'type' => :'DORAFailureType' } end @@ -57,7 +57,7 @@ def self.openapi_types # @!visibility private def initialize(attributes = {}) if (!attributes.is_a?(Hash)) - fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::DORAEvent` initialize method" + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::DORAIncidentObject` initialize method" end self.additional_properties = {} diff --git a/lib/datadog_api_client/v2/models/dora_incident_object_attributes.rb b/lib/datadog_api_client/v2/models/dora_incident_object_attributes.rb new file mode 100644 index 000000000000..9a3294c34d22 --- /dev/null +++ b/lib/datadog_api_client/v2/models/dora_incident_object_attributes.rb @@ -0,0 +1,225 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The attributes of the incident event. + class DORAIncidentObjectAttributes + include BaseGenericModel + + # A list of user-defined tags. The tags must follow the `key:value` pattern. Up to 100 may be added per event. + attr_accessor :custom_tags + + # Environment name that was impacted by the incident. + attr_accessor :env + + # Unix timestamp when the incident finished. + attr_accessor :finished_at + + # Git info for DORA Metrics events. + attr_accessor :git + + # Incident name. + attr_accessor :name + + # Service names impacted by the incident. + attr_accessor :services + + # Incident severity. + attr_accessor :severity + + # Unix timestamp when the incident started. + attr_reader :started_at + + # Name of the team owning the services impacted. + attr_accessor :team + + # Version to correlate with APM Deployment Tracking. + attr_accessor :version + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.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' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'custom_tags' => :'Array', + :'env' => :'String', + :'finished_at' => :'Integer', + :'git' => :'DORAGitInfo', + :'name' => :'String', + :'services' => :'Array', + :'severity' => :'String', + :'started_at' => :'Integer', + :'team' => :'String', + :'version' => :'String' + } + end + + # List of attributes with nullable: true + # @!visibility private + def self.openapi_nullable + Set.new([ + :'custom_tags', + ]) + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::DORAIncidentObjectAttributes` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'custom_tags') + if (value = attributes[:'custom_tags']).is_a?(Array) + self.custom_tags = value + end + end + + if attributes.key?(:'env') + self.env = attributes[:'env'] + end + + if attributes.key?(:'finished_at') + self.finished_at = attributes[:'finished_at'] + end + + if attributes.key?(:'git') + self.git = attributes[:'git'] + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'services') + if (value = attributes[:'services']).is_a?(Array) + self.services = value + end + end + + if attributes.key?(:'severity') + self.severity = attributes[:'severity'] + end + + if attributes.key?(:'started_at') + self.started_at = attributes[:'started_at'] + end + + if attributes.key?(:'team') + self.team = attributes[:'team'] + end + + if attributes.key?(:'version') + self.version = attributes[:'version'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @started_at.nil? + true + end + + # Custom attribute writer method with validation + # @param started_at [Object] Object to be assigned + # @!visibility private + def started_at=(started_at) + if started_at.nil? + fail ArgumentError, 'invalid value for "started_at", started_at cannot be nil.' + end + @started_at = started_at + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + custom_tags == o.custom_tags && + env == o.env && + finished_at == o.finished_at && + git == o.git && + name == o.name && + services == o.services && + severity == o.severity && + started_at == o.started_at && + team == o.team && + version == o.version && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [custom_tags, env, finished_at, git, name, services, severity, started_at, team, version, additional_properties].hash + end + end +end