From 8000c13a4839106079e7010bb0fa62e244b73ecb Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Fri, 24 Feb 2023 19:29:12 +0000 Subject: [PATCH] Regenerate client from commit 1e36720c of spec repo --- .apigentools-info | 8 +- .generator/schemas/v1/openapi.yaml | 14 - .generator/schemas/v2/openapi.yaml | 433 +++++++++++++++++- ...dashboard-lists-returns-OK-response.frozen | 2 +- ...ll-dashboard-lists-returns-OK-response.yml | 66 +-- ...riable-defaults-returns-OK-response.frozen | 2 +- ...-variable-defaults-returns-OK-response.yml | 10 +- ...ts-using-values-returns-OK-response.frozen | 2 +- ...esets-using-values-returns-OK-response.yml | 12 +- ...-all-dashboards-returns-OK-response.frozen | 2 +- ...Get-all-dashboards-returns-OK-response.yml | 111 ++++- .../v2/incidents/CreateIncidentIntegration.rb | 24 + .../v2/incidents/DeleteIncidentIntegration.rb | 14 + .../v2/incidents/GetIncidentIntegration.rb | 14 + .../v2/incidents/ListIncidentIntegrations.rb | 8 + .../v2/incidents/UpdateIncidentIntegration.rb | 21 + features/scenarios_model_mapping.rb | 20 + features/v1/authentication.feature | 1 - features/v1/dashboard_lists.feature | 6 +- features/v1/dashboards.feature | 43 +- features/v1/downtimes.feature | 10 - features/v1/ip_ranges.feature | 2 - features/v1/metrics.feature | 2 - features/v1/monitors.feature | 26 -- features/v1/notebooks.feature | 7 - features/v1/security_monitoring.feature | 3 - ...ervice_level_objective_corrections.feature | 7 - features/v1/service_level_objectives.feature | 1 - features/v1/snapshots.feature | 1 - features/v1/synthetics.feature | 2 - features/v2/given.json | 16 + features/v2/incidents.feature | 140 ++++++ features/v2/undo.json | 41 ++ lib/datadog_api_client/configuration.rb | 5 + lib/datadog_api_client/inflector.rb | 16 + .../v1/api/usage_metering_api.rb | 6 +- .../hourly_usage_attribution_usage_type.rb | 1 - ...hly_usage_attribution_supported_metrics.rb | 2 - .../monthly_usage_attribution_values.rb | 22 +- .../v2/api/incidents_api.rb | 384 ++++++++++++++++ lib/datadog_api_client/v2/api/logs_api.rb | 1 - ...ncident_integration_metadata_attributes.rb | 161 +++++++ ...cident_integration_metadata_create_data.rb | 123 +++++ ...ent_integration_metadata_create_request.rb | 102 +++++ ...dent_integration_metadata_list_response.rb | 126 +++++ .../incident_integration_metadata_metadata.rb | 63 +++ ...ncident_integration_metadata_patch_data.rb | 123 +++++ ...dent_integration_metadata_patch_request.rb | 102 +++++ .../incident_integration_metadata_response.rb | 124 +++++ ...dent_integration_metadata_response_data.rb | 133 ++++++ ...gration_metadata_response_included_item.rb | 62 +++ ...dent_integration_metadata_response_meta.rb | 91 ++++ ...ation_metadata_response_meta_pagination.rb | 112 +++++ .../v2/models/incident_update_data.rb | 2 +- .../v2/models/jira_integration_metadata.rb | 104 +++++ .../jira_integration_metadata_issues_item.rb | 153 +++++++ ...nship_to_incident_integration_metadatas.rb | 2 +- .../v2/models/slack_integration_metadata.rb | 104 +++++ ...slack_integration_metadata_channel_item.rb | 154 +++++++ 59 files changed, 3109 insertions(+), 240 deletions(-) create mode 100644 examples/v2/incidents/CreateIncidentIntegration.rb create mode 100644 examples/v2/incidents/DeleteIncidentIntegration.rb create mode 100644 examples/v2/incidents/GetIncidentIntegration.rb create mode 100644 examples/v2/incidents/ListIncidentIntegrations.rb create mode 100644 examples/v2/incidents/UpdateIncidentIntegration.rb create mode 100644 lib/datadog_api_client/v2/models/incident_integration_metadata_attributes.rb create mode 100644 lib/datadog_api_client/v2/models/incident_integration_metadata_create_data.rb create mode 100644 lib/datadog_api_client/v2/models/incident_integration_metadata_create_request.rb create mode 100644 lib/datadog_api_client/v2/models/incident_integration_metadata_list_response.rb create mode 100644 lib/datadog_api_client/v2/models/incident_integration_metadata_metadata.rb create mode 100644 lib/datadog_api_client/v2/models/incident_integration_metadata_patch_data.rb create mode 100644 lib/datadog_api_client/v2/models/incident_integration_metadata_patch_request.rb create mode 100644 lib/datadog_api_client/v2/models/incident_integration_metadata_response.rb create mode 100644 lib/datadog_api_client/v2/models/incident_integration_metadata_response_data.rb create mode 100644 lib/datadog_api_client/v2/models/incident_integration_metadata_response_included_item.rb create mode 100644 lib/datadog_api_client/v2/models/incident_integration_metadata_response_meta.rb create mode 100644 lib/datadog_api_client/v2/models/incident_integration_metadata_response_meta_pagination.rb create mode 100644 lib/datadog_api_client/v2/models/jira_integration_metadata.rb create mode 100644 lib/datadog_api_client/v2/models/jira_integration_metadata_issues_item.rb create mode 100644 lib/datadog_api_client/v2/models/slack_integration_metadata.rb create mode 100644 lib/datadog_api_client/v2/models/slack_integration_metadata_channel_item.rb diff --git a/.apigentools-info b/.apigentools-info index d9bf488541da..47128f708410 100644 --- a/.apigentools-info +++ b/.apigentools-info @@ -4,13 +4,13 @@ "spec_versions": { "v1": { "apigentools_version": "1.6.4", - "regenerated": "2023-02-23 20:26:33.044700", - "spec_repo_commit": "437dad25" + "regenerated": "2023-02-24 19:28:45.470448", + "spec_repo_commit": "1e36720c" }, "v2": { "apigentools_version": "1.6.4", - "regenerated": "2023-02-23 20:26:33.056596", - "spec_repo_commit": "437dad25" + "regenerated": "2023-02-24 19:28:45.482986", + "spec_repo_commit": "1e36720c" } } } \ No newline at end of file diff --git a/.generator/schemas/v1/openapi.yaml b/.generator/schemas/v1/openapi.yaml index 8f2916aae6b8..d88875538f30 100644 --- a/.generator/schemas/v1/openapi.yaml +++ b/.generator/schemas/v1/openapi.yaml @@ -3665,7 +3665,6 @@ components: - invocations_usage - npm_host_usage - profiled_container_usage - - profiled_fargate_usage - profiled_host_usage - snmp_usage - estimated_rum_sessions_usage @@ -3696,7 +3695,6 @@ components: - INVOCATIONS_USAGE - NPM_HOST_USAGE - PROFILED_CONTAINER_USAGE - - PROFILED_FARGATE_USAGE - PROFILED_HOST_USAGE - SNMP_USAGE - ESTIMATED_RUM_SESSIONS_USAGE @@ -7140,8 +7138,6 @@ components: - npm_host_percentage - profiled_container_usage - profiled_container_percentage - - profiled_fargate_usage - - profiled_fargate_percentage - profiled_host_usage - profiled_host_percentage - snmp_usage @@ -7201,8 +7197,6 @@ components: - NPM_HOST_PERCENTAGE - PROFILED_CONTAINER_USAGE - PROFILED_CONTAINER_PERCENTAGE - - PROFILED_FARGATE_USAGE - - PROFILED_FARGATE_PERCENTAGE - PROFILED_HOST_USAGE - PROFILED_HOST_PERCENTAGE - SNMP_USAGE @@ -7426,14 +7420,6 @@ components: description: The profiled container usage by tag(s). format: double type: number - profiled_fargate_percentage: - description: The percentage of profiled Fargate task usage by tag(s). - format: double - type: number - profiled_fargate_usage: - description: The profiled Fargate task usage by tag(s). - format: double - type: number profiled_host_percentage: description: The percentage of profiled hosts usage by tag(s). format: double diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index e349e1bc7ef7..012c7b222d00 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -211,6 +211,13 @@ components: items: $ref: '#/components/schemas/IncidentRelatedObject' type: array + IncidentIntegrationMetadataIDPathParameter: + description: The UUID of the incident integration metadata. + in: path + name: integration_metadata_id + required: true + schema: + type: string IncidentSearchIncludeQueryParameter: description: Specifies which types of related objects should be included in the response. @@ -4347,6 +4354,167 @@ components: - TEXTARRAY - METRICTAG - AUTOCOMPLETE + IncidentIntegrationMetadataAttributes: + description: Incident integration metadata's attributes for a create request. + properties: + incident_id: + description: UUID of the incident this integration metadata is connected + to. + example: 00000000-aaaa-0000-0000-000000000000 + type: string + integration_type: + description: 'A number indicating the type of integration this metadata + is for. 1 indicates Slack; + + 8 indicates Jira.' + example: 1 + format: int32 + maximum: 9 + type: integer + metadata: + $ref: '#/components/schemas/IncidentIntegrationMetadataMetadata' + status: + description: 'A number indicating the status of this integration metadata. + 0 indicates unknown; + + 1 indicates pending; 2 indicates complete; 3 indicates manually created; + + 4 indicates manually updated; 5 indicates failed.' + format: int32 + maximum: 5 + type: integer + required: + - integration_type + - metadata + type: object + IncidentIntegrationMetadataCreateData: + description: Incident integration metadata data for a create request. + properties: + attributes: + $ref: '#/components/schemas/IncidentIntegrationMetadataAttributes' + type: + $ref: '#/components/schemas/IncidentIntegrationMetadataType' + required: + - type + - attributes + type: object + IncidentIntegrationMetadataCreateRequest: + description: Create request for an incident integration metadata. + properties: + data: + $ref: '#/components/schemas/IncidentIntegrationMetadataCreateData' + required: + - data + type: object + IncidentIntegrationMetadataListResponse: + description: Response with a list of incident integration metadata. + properties: + data: + description: An array of incident integration metadata. + items: + $ref: '#/components/schemas/IncidentIntegrationMetadataResponseData' + type: array + included: + description: Included related resources that the user requested. + items: + $ref: '#/components/schemas/IncidentIntegrationMetadataResponseIncludedItem' + readOnly: true + type: array + meta: + $ref: '#/components/schemas/IncidentIntegrationMetadataResponseMeta' + required: + - data + type: object + IncidentIntegrationMetadataMetadata: + description: Incident integration metadata's metadata attribute. + oneOf: + - $ref: '#/components/schemas/SlackIntegrationMetadata' + - $ref: '#/components/schemas/JiraIntegrationMetadata' + type: object + IncidentIntegrationMetadataPatchData: + description: Incident integration metadata data for a patch request. + properties: + attributes: + $ref: '#/components/schemas/IncidentIntegrationMetadataAttributes' + type: + $ref: '#/components/schemas/IncidentIntegrationMetadataType' + required: + - type + - attributes + type: object + IncidentIntegrationMetadataPatchRequest: + description: Patch request for an incident integration metadata. + properties: + data: + $ref: '#/components/schemas/IncidentIntegrationMetadataPatchData' + required: + - data + type: object + IncidentIntegrationMetadataResponse: + description: Response with an incident integration metadata. + properties: + data: + $ref: '#/components/schemas/IncidentIntegrationMetadataResponseData' + included: + description: Included related resources that the user requested. + items: + $ref: '#/components/schemas/IncidentIntegrationMetadataResponseIncludedItem' + readOnly: true + type: array + meta: + $ref: '#/components/schemas/IncidentIntegrationMetadataResponseMeta' + required: + - data + type: object + IncidentIntegrationMetadataResponseData: + description: Incident integration metadata from a response. + properties: + attributes: + $ref: '#/components/schemas/IncidentIntegrationMetadataAttributes' + id: + description: The incident integration metadata's ID. + example: 00000000-0000-0000-1234-000000000000 + type: string + type: + $ref: '#/components/schemas/IncidentIntegrationMetadataType' + required: + - id + - type + type: object + IncidentIntegrationMetadataResponseIncludedItem: + description: An object related to an incident integration metadata that is included + in the response. + oneOf: + - $ref: '#/components/schemas/User' + type: object + IncidentIntegrationMetadataResponseMeta: + description: The metadata object containing pagination metadata. + properties: + pagination: + $ref: '#/components/schemas/IncidentIntegrationMetadataResponseMetaPagination' + readOnly: true + type: object + IncidentIntegrationMetadataResponseMetaPagination: + description: Pagination properties. + properties: + next_offset: + description: 'The index of the first element in the next page of results. + + Equal to page size added to the current offset.' + example: 1000 + format: int64 + type: integer + offset: + description: The index of the first element in the results. + example: 10 + format: int64 + type: integer + size: + description: Maximum size of pages to return. + example: 1000 + format: int64 + type: integer + type: object IncidentIntegrationMetadataType: default: incident_integrations description: Integration metadata resource type. @@ -5201,7 +5369,7 @@ components: attributes: $ref: '#/components/schemas/IncidentUpdateAttributes' id: - description: The team's ID. + description: The incident's ID. example: 00000000-0000-0000-4567-000000000000 type: string relationships: @@ -5348,6 +5516,45 @@ components: type: string type: array type: object + JiraIntegrationMetadata: + description: Incident integration metadata for the Slack integration. + properties: + issues: + description: Array of Jira issues in this integration metadata. + example: [] + items: + $ref: '#/components/schemas/JiraIntegrationMetadataIssuesItem' + type: array + required: + - issues + type: object + JiraIntegrationMetadataIssuesItem: + description: Item in the Jira integration metadata issue array. + properties: + account: + description: URL of issue's Jira account. + example: https://example.atlassian.net + type: string + issue_key: + description: Jira issue's issue key. + example: PROJ-123 + type: string + issuetype_id: + description: Jira issue's issue type. + example: '1000' + type: string + project_key: + description: Jira issue's project keys. + example: PROJ + type: string + redirect_url: + description: URL redirecting to the Jira issue. + example: https://example.atlassian.net/browse/PROJ-123 + type: string + required: + - project_key + - account + type: object ListApplicationKeysResponse: description: Response for a list of application keys. properties: @@ -8965,7 +9172,7 @@ components: type: incident_integrations properties: data: - description: The integration metadata relationship array + description: Integration metadata relationship array example: - id: 00000000-abcd-0003-0000-000000000000 type: incident_integrations @@ -12129,6 +12336,42 @@ components: $ref: '#/components/schemas/ServiceDefinitionData' type: array type: object + SlackIntegrationMetadata: + description: Incident integration metadata for the Slack integration. + properties: + channels: + description: Array of Slack channels in this integration metadata. + example: [] + items: + $ref: '#/components/schemas/SlackIntegrationMetadataChannelItem' + type: array + required: + - channels + type: object + SlackIntegrationMetadataChannelItem: + description: Item in the Slack integration metadata channel array. + properties: + channel_id: + description: Slack channel ID. + example: C0123456789 + type: string + channel_name: + description: Name of the Slack channel. + example: '#example-channel-name' + type: string + redirect_url: + description: URL redirecting to the Slack channel. + example: https://slack.com/app_redirect?channel=C0123456789&team=T01234567 + type: string + team_id: + description: Slack team ID. + example: T01234567 + type: string + required: + - channel_id + - channel_name + - redirect_url + type: object TagsEventAttribute: description: Array of tags associated with your event. example: @@ -14475,6 +14718,189 @@ paths: x-unstable: '**Note**: This endpoint is in public beta. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + /api/v2/incidents/{incident_id}/relationships/integrations: + get: + description: Get all integration metadata for an incident. + operationId: ListIncidentIntegrations + parameters: + - $ref: '#/components/parameters/IncidentIDPathParameter' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/IncidentIntegrationMetadataListResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - incident_read + summary: Get a list of an incident's integration metadata + tags: + - Incidents + x-unstable: '**Note**: This endpoint is in public beta. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + post: + description: Create an incident integration metadata. + operationId: CreateIncidentIntegration + parameters: + - $ref: '#/components/parameters/IncidentIDPathParameter' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/IncidentIntegrationMetadataCreateRequest' + description: Incident integration metadata payload. + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/IncidentIntegrationMetadataResponse' + description: CREATED + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - incident_write + summary: Create an incident integration metadata + tags: + - Incidents + x-codegen-request-body-name: body + x-unstable: '**Note**: This endpoint is in public beta. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + /api/v2/incidents/{incident_id}/relationships/integrations/{integration_metadata_id}: + delete: + description: Delete an incident integration metadata. + operationId: DeleteIncidentIntegration + parameters: + - $ref: '#/components/parameters/IncidentIDPathParameter' + - $ref: '#/components/parameters/IncidentIntegrationMetadataIDPathParameter' + responses: + '204': + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - incident_write + summary: Delete an incident integration metadata + tags: + - Incidents + x-codegen-request-body-name: body + x-unstable: '**Note**: This endpoint is in public beta. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + get: + description: Get incident integration metadata details. + operationId: GetIncidentIntegration + parameters: + - $ref: '#/components/parameters/IncidentIDPathParameter' + - $ref: '#/components/parameters/IncidentIntegrationMetadataIDPathParameter' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/IncidentIntegrationMetadataResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - incident_read + summary: Get incident integration metadata details + tags: + - Incidents + x-unstable: '**Note**: This endpoint is in public beta. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + patch: + description: Update an existing incident integration metadata. + operationId: UpdateIncidentIntegration + parameters: + - $ref: '#/components/parameters/IncidentIDPathParameter' + - $ref: '#/components/parameters/IncidentIntegrationMetadataIDPathParameter' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/IncidentIntegrationMetadataPatchRequest' + description: Incident integration metadata payload. + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/IncidentIntegrationMetadataResponse' + description: CREATED + '400': + $ref: '#/components/responses/BadRequestResponse' + '401': + $ref: '#/components/responses/UnauthorizedResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - incident_write + summary: Update an existing incident integration metadata + tags: + - Incidents + x-codegen-request-body-name: body + x-unstable: '**Note**: This endpoint is in public beta. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' /api/v2/integration/opsgenie/services: get: description: Get a list of all services from the Datadog Opsgenie integration. @@ -15342,9 +15768,6 @@ paths: Add the `Content-Encoding: gzip` header to the request when sending compressed logs. - Log events can be submitted up to 18 hours in the past and 2 hours in the - future. - The status codes answered by the HTTP API are: diff --git a/cassettes/features/v1/dashboard_lists/Get-all-dashboard-lists-returns-OK-response.frozen b/cassettes/features/v1/dashboard_lists/Get-all-dashboard-lists-returns-OK-response.frozen index ed2e4d655dda..7f789ed82d99 100644 --- a/cassettes/features/v1/dashboard_lists/Get-all-dashboard-lists-returns-OK-response.frozen +++ b/cassettes/features/v1/dashboard_lists/Get-all-dashboard-lists-returns-OK-response.frozen @@ -1 +1 @@ -2023-02-16T21:10:17.049Z \ No newline at end of file +2022-01-06T00:50:23.256Z \ No newline at end of file diff --git a/cassettes/features/v1/dashboard_lists/Get-all-dashboard-lists-returns-OK-response.yml b/cassettes/features/v1/dashboard_lists/Get-all-dashboard-lists-returns-OK-response.yml index 971c09fe09d9..aaafbcfc833c 100644 --- a/cassettes/features/v1/dashboard_lists/Get-all-dashboard-lists-returns-OK-response.yml +++ b/cassettes/features/v1/dashboard_lists/Get-all-dashboard-lists-returns-OK-response.yml @@ -1,29 +1,5 @@ http_interactions: -- recorded_at: Thu, 16 Feb 2023 21:10:17 GMT - request: - body: - encoding: UTF-8 - string: '{"name":"Test-Get_all_dashboard_lists_returns_OK_response-1676581817"}' - headers: - Accept: - - application/json - Content-Type: - - application/json - method: POST - uri: https://api.datadoghq.com/api/v1/dashboard/lists/manual - response: - body: - encoding: UTF-8 - string: '{"author":{"name":null,"handle":"frog@datadoghq.com"},"created":"2023-02-16T21:10:17.185865+00:00","dashboards":null,"dashboard_count":0,"id":364491,"is_favorite":false,"modified":"2023-02-16T21:10:17.185872+00:00","name":"Test-Get_all_dashboard_lists_returns_OK_response-1676581817","type":"manual_dashboard_list"} - - ' - headers: - Content-Type: - - application/json - status: - code: 200 - message: OK -- recorded_at: Thu, 16 Feb 2023 21:10:17 GMT +- recorded_at: Thu, 06 Jan 2022 00:50:23 GMT request: body: null headers: @@ -34,29 +10,23 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"dashboard_lists":[{"author":{"name":null,"handle":"frog@datadoghq.com"},"created":"2023-02-16T21:10:17.185865+00:00","dashboards":null,"dashboard_count":0,"id":364491,"is_favorite":false,"modified":"2023-02-16T21:10:17.185872+00:00","name":"Test-Get_all_dashboard_lists_returns_OK_response-1676581817","type":"manual_dashboard_list"},{"author":{"name":null,"handle":"frog@datadoghq.com"},"created":"2022-12-09T15:04:28.806069+00:00","dashboards":null,"dashboard_count":1,"id":348463,"is_favorite":false,"modified":"2022-12-09T15:04:29.985883+00:00","name":"Test-Go-TestDashboardListItemCRUD-1670598268","type":"manual_dashboard_list"}]} - - ' - headers: - Content-Type: - - application/json - status: - code: 200 - message: OK -- recorded_at: Thu, 16 Feb 2023 21:10:17 GMT - request: - body: null - headers: - Accept: - - application/json - method: DELETE - uri: https://api.datadoghq.com/api/v1/dashboard/lists/manual/364491 - response: - body: - encoding: UTF-8 - string: '{"deleted_dashboard_list_id":364491} - - ' + string: '{"dashboard_lists":[{"is_favorite":true,"name":"frog''s List","dashboard_count":0,"author":{"handle":"frog@datadoghq.com","name":null},"created":"2020-09-08T07:12:57.679027+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2020-09-09T08:48:11.523877+00:00","id":126798},{"is_favorite":false,"name":"Test-Create_a_dashboard_list_returns_OK_response-1640112901","dashboard_count":0,"author":{"handle":"frog@datadoghq.com","name":null},"created":"2021-12-21T18:55:02.067838+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2021-12-21T18:55:02.067874+00:00","id":266996},{"is_favorite":false,"name":"Test-Python-Create_a_dashboard_list_returns_OK_response-1638987026","dashboard_count":0,"author":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI + Account"},"created":"2021-12-08T18:10:26.626691+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2021-12-08T18:10:26.626722+00:00","id":262166},{"is_favorite":false,"name":"Test-Python-Delete_a_dashboard_list_returns_OK_response-1638987033","dashboard_count":0,"author":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI + Account"},"created":"2021-12-08T18:10:33.174397+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2021-12-08T18:10:33.174422+00:00","id":262168},{"is_favorite":false,"name":"Test-Python-Get_a_dashboard_list_returns_OK_response-1638987029","dashboard_count":0,"author":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI + Account"},"created":"2021-12-08T18:10:29.487202+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2021-12-08T18:10:29.487230+00:00","id":262167},{"is_favorite":false,"name":"Test-Python-Update_a_dashboard_list_returns_OK_response-1638987040","dashboard_count":0,"author":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI + Account"},"created":"2021-12-08T18:10:40.138195+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2021-12-08T18:10:40.138221+00:00","id":262169},{"is_favorite":false,"name":"Test-Typescript-Create_a_dashboard_list_returns_OK_response-1640111482","dashboard_count":0,"author":{"handle":"frog@datadoghq.com","name":null},"created":"2021-12-21T18:31:22.557855+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2021-12-21T18:31:22.557886+00:00","id":266953},{"is_favorite":false,"name":"Test-Typescript-Create_a_dashboard_list_returns_OK_response-1640112717","dashboard_count":0,"author":{"handle":"frog@datadoghq.com","name":null},"created":"2021-12-21T18:51:57.727820+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2021-12-21T18:51:57.727845+00:00","id":266992},{"is_favorite":false,"name":"Test-Typescript-Create_a_dashboard_list_returns_OK_response-1640117958","dashboard_count":0,"author":{"handle":"frog@datadoghq.com","name":null},"created":"2021-12-21T20:19:18.398658+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2021-12-21T20:19:18.398694+00:00","id":267026},{"is_favorite":false,"name":"tf-TestDatadogDashListInDashboardJSON-82057-1637759559","dashboard_count":0,"author":{"handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI + Account"},"created":"2021-11-24T13:12:42.098978+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2021-11-24T13:12:42.099008+00:00","id":257787},{"is_favorite":false,"name":"updated + Test-Typescript-Update_a_dashboard_list_returns_OK_response-1637674353","dashboard_count":0,"author":{"handle":"frog@datadoghq.com","name":null},"created":"2021-11-23T13:32:34.191937+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2021-11-23T13:32:34.723130+00:00","id":257383},{"is_favorite":false,"name":"updated + Test-Update_a_dashboard_list_returns_OK_response-1633007463","dashboard_count":0,"author":{"handle":"frog@datadoghq.com","name":null},"created":"2021-09-30T13:11:04.010648+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2021-09-30T13:11:04.132209+00:00","id":240358},{"is_favorite":false,"name":"updated + Test-Update_a_dashboard_list_returns_OK_response-1633075858","dashboard_count":0,"author":{"handle":"frog@datadoghq.com","name":null},"created":"2021-10-01T08:10:58.489385+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2021-10-01T08:10:58.877699+00:00","id":240504},{"is_favorite":false,"name":"updated + Test-Update_a_dashboard_list_returns_OK_response-1633075932","dashboard_count":0,"author":{"handle":"frog@datadoghq.com","name":null},"created":"2021-10-01T08:12:12.424522+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2021-10-01T08:12:12.666891+00:00","id":240508},{"is_favorite":false,"name":"updated + Test-Update_a_dashboard_list_returns_OK_response-1637061196","dashboard_count":0,"author":{"handle":"frog@datadoghq.com","name":null},"created":"2021-11-16T11:13:21.037425+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2021-11-16T11:13:21.427449+00:00","id":255183},{"is_favorite":false,"name":"updated + Test-Update_a_dashboard_list_returns_OK_response-1637062271","dashboard_count":0,"author":{"handle":"frog@datadoghq.com","name":null},"created":"2021-11-16T11:31:14.325320+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2021-11-16T11:31:14.670076+00:00","id":255191},{"is_favorite":false,"name":"updated + Test-Update_a_dashboard_list_returns_OK_response-1637063263","dashboard_count":0,"author":{"handle":"frog@datadoghq.com","name":null},"created":"2021-11-16T11:47:45.464601+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2021-11-16T11:47:45.942232+00:00","id":255196},{"is_favorite":false,"name":"updated + Test-Update_a_dashboard_list_returns_OK_response-1637070426","dashboard_count":0,"author":{"handle":"frog@datadoghq.com","name":null},"created":"2021-11-16T13:47:09.107719+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2021-11-16T13:47:09.532441+00:00","id":255273},{"is_favorite":false,"name":"updated + Test-Update_a_dashboard_list_returns_OK_response-1637077860","dashboard_count":0,"author":{"handle":"frog@datadoghq.com","name":null},"created":"2021-11-16T15:51:01.035434+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2021-11-16T15:51:01.480129+00:00","id":255388},{"is_favorite":false,"name":"updated + Test-Update_a_dashboard_list_returns_OK_response-1637078373","dashboard_count":0,"author":{"handle":"frog@datadoghq.com","name":null},"created":"2021-11-16T15:59:34.292076+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2021-11-16T15:59:34.662062+00:00","id":255393},{"is_favorite":false,"name":"updated + Test-Update_a_dashboard_list_returns_OK_response-1637141108","dashboard_count":0,"author":{"handle":"frog@datadoghq.com","name":null},"created":"2021-11-17T09:25:11.229062+00:00","type":"manual_dashboard_list","dashboards":null,"modified":"2021-11-17T09:25:11.690913+00:00","id":255558}]}' headers: Content-Type: - application/json diff --git a/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-template-variable-defaults-returns-OK-response.frozen b/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-template-variable-defaults-returns-OK-response.frozen index 3c1ae32d5f69..3e445cbb73ba 100644 --- a/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-template-variable-defaults-returns-OK-response.frozen +++ b/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-template-variable-defaults-returns-OK-response.frozen @@ -1 +1 @@ -2023-02-16T21:39:58.391Z \ No newline at end of file +2022-09-12T20:05:48.730Z \ No newline at end of file diff --git a/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-template-variable-defaults-returns-OK-response.yml b/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-template-variable-defaults-returns-OK-response.yml index bb8257075b8a..e7a22c6cbdc3 100644 --- a/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-template-variable-defaults-returns-OK-response.yml +++ b/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-template-variable-defaults-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Thu, 16 Feb 2023 21:39:58 GMT +- recorded_at: Mon, 12 Sep 2022 20:05:48 GMT request: body: encoding: UTF-8 @@ -14,7 +14,7 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"id":"h5n-j24-t82","title":"","description":null,"author_handle":"frog@datadoghq.com","author_name":null,"layout_type":"ordered","url":"/dashboard/h5n-j24-t82/","is_read_only":false,"template_variables":[{"available_values":["my-host","host1","host2"],"defaults":["my-host"],"name":"host1","prefix":"host"}],"widgets":[{"definition":{"requests":{"fill":{"q":"avg:system.cpu.user{*}"}},"type":"hostmap"},"id":355816329429238}],"notify_list":[],"created_at":"2023-02-16T21:39:58.588908+00:00","modified_at":"2023-02-16T21:39:58.588908+00:00","reflow_type":"auto","restricted_roles":[]} + string: '{"notify_list":[],"description":null,"restricted_roles":[],"author_name":null,"template_variables":[{"prefix":"host","defaults":["my-host"],"available_values":["my-host","host1","host2"],"name":"host1"}],"is_read_only":false,"id":"39h-cn5-kyd","title":"","url":"/dashboard/39h-cn5-kyd/","created_at":"2022-09-12T20:05:49.753763+00:00","modified_at":"2022-09-12T20:05:49.753763+00:00","reflow_type":"auto","author_handle":"frog@datadoghq.com","widgets":[{"definition":{"requests":{"fill":{"q":"avg:system.cpu.user{*}"}},"type":"hostmap"},"id":4911408545233424}],"layout_type":"ordered"} ' headers: @@ -23,18 +23,18 @@ http_interactions: status: code: 200 message: OK -- recorded_at: Thu, 16 Feb 2023 21:39:58 GMT +- recorded_at: Mon, 12 Sep 2022 20:05:48 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v1/dashboard/h5n-j24-t82 + uri: https://api.datadoghq.com/api/v1/dashboard/39h-cn5-kyd response: body: encoding: UTF-8 - string: '{"deleted_dashboard_id":"h5n-j24-t82"} + string: '{"deleted_dashboard_id":"39h-cn5-kyd"} ' headers: diff --git a/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-template-variable-presets-using-values-returns-OK-response.frozen b/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-template-variable-presets-using-values-returns-OK-response.frozen index 25618da8e03c..f502316d52cc 100644 --- a/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-template-variable-presets-using-values-returns-OK-response.frozen +++ b/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-template-variable-presets-using-values-returns-OK-response.frozen @@ -1 +1 @@ -2023-02-16T21:40:06.384Z \ No newline at end of file +2022-09-12T20:05:50.228Z \ No newline at end of file diff --git a/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-template-variable-presets-using-values-returns-OK-response.yml b/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-template-variable-presets-using-values-returns-OK-response.yml index 7ae93d06e8f4..52ee0da77eb4 100644 --- a/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-template-variable-presets-using-values-returns-OK-response.yml +++ b/cassettes/features/v1/dashboards/Create-a-new-dashboard-with-template-variable-presets-using-values-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Thu, 16 Feb 2023 21:40:06 GMT +- recorded_at: Mon, 12 Sep 2022 20:05:50 GMT request: body: encoding: UTF-8 @@ -15,8 +15,8 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"id":"y9d-w7h-s59","title":"","description":null,"author_handle":"frog@datadoghq.com","author_name":null,"layout_type":"ordered","url":"/dashboard/y9d-w7h-s59/","is_read_only":false,"template_variables":[{"available_values":["my-host","host1","host2"],"defaults":["my-host"],"name":"host1","prefix":"host"}],"widgets":[{"definition":{"requests":{"fill":{"q":"avg:system.cpu.user{*}"}},"type":"hostmap"},"id":3953978643250660}],"notify_list":[],"created_at":"2023-02-16T21:40:06.587858+00:00","modified_at":"2023-02-16T21:40:06.587858+00:00","template_variable_presets":[{"name":"my - saved view","template_variables":[{"name":"datacenter","values":["*","my-host"]}]}],"reflow_type":"auto","restricted_roles":[]} + string: '{"notify_list":[],"description":null,"restricted_roles":[],"author_name":null,"template_variable_presets":[{"template_variables":[{"values":["*","my-host"],"name":"datacenter"}],"name":"my + saved view"}],"template_variables":[{"prefix":"host","defaults":["my-host"],"available_values":["my-host","host1","host2"],"name":"host1"}],"is_read_only":false,"id":"6j2-ja3-r9z","title":"","url":"/dashboard/6j2-ja3-r9z/","created_at":"2022-09-12T20:05:50.380181+00:00","modified_at":"2022-09-12T20:05:50.380181+00:00","reflow_type":"auto","author_handle":"frog@datadoghq.com","widgets":[{"definition":{"requests":{"fill":{"q":"avg:system.cpu.user{*}"}},"type":"hostmap"},"id":8337056750682432}],"layout_type":"ordered"} ' headers: @@ -25,18 +25,18 @@ http_interactions: status: code: 200 message: OK -- recorded_at: Thu, 16 Feb 2023 21:40:06 GMT +- recorded_at: Mon, 12 Sep 2022 20:05:50 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v1/dashboard/y9d-w7h-s59 + uri: https://api.datadoghq.com/api/v1/dashboard/6j2-ja3-r9z response: body: encoding: UTF-8 - string: '{"deleted_dashboard_id":"y9d-w7h-s59"} + string: '{"deleted_dashboard_id":"6j2-ja3-r9z"} ' headers: diff --git a/cassettes/features/v1/dashboards/Get-all-dashboards-returns-OK-response.frozen b/cassettes/features/v1/dashboards/Get-all-dashboards-returns-OK-response.frozen index f09a44decb0b..0428a0f09f00 100644 --- a/cassettes/features/v1/dashboards/Get-all-dashboards-returns-OK-response.frozen +++ b/cassettes/features/v1/dashboards/Get-all-dashboards-returns-OK-response.frozen @@ -1 +1 @@ -2023-02-16T21:47:50.042Z \ No newline at end of file +2022-01-06T00:50:43.652Z \ No newline at end of file diff --git a/cassettes/features/v1/dashboards/Get-all-dashboards-returns-OK-response.yml b/cassettes/features/v1/dashboards/Get-all-dashboards-returns-OK-response.yml index 32f0989939c9..c19b4f6562e3 100644 --- a/cassettes/features/v1/dashboards/Get-all-dashboards-returns-OK-response.yml +++ b/cassettes/features/v1/dashboards/Get-all-dashboards-returns-OK-response.yml @@ -1,9 +1,9 @@ http_interactions: -- recorded_at: Thu, 16 Feb 2023 21:47:50 GMT +- recorded_at: Thu, 06 Jan 2022 00:50:43 GMT request: body: encoding: UTF-8 - string: '{"layout_type":"ordered","title":"Test-Get_all_dashboards_returns_OK_response-1676584070 + string: '{"layout_type":"ordered","title":"Test-Get_all_dashboards_returns_OK_response-1641430243 with Profile Metrics Query","widgets":[{"definition":{"requests":[{"profile_metrics_query":{"compute":{"aggregation":"sum","facet":"@prof_core_cpu_cores"},"group_by":[{"facet":"service","limit":10,"sort":{"aggregation":"sum","facet":"@prof_core_cpu_cores","order":"desc"}}],"search":{"query":"runtime:jvm"}}}],"type":"timeseries"}}]}' headers: Accept: @@ -15,17 +15,15 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"id":"npw-6di-usv","title":"Test-Get_all_dashboards_returns_OK_response-1676584070 - with Profile Metrics Query","description":null,"author_handle":"frog@datadoghq.com","author_name":null,"layout_type":"ordered","url":"/dashboard/npw-6di-usv/test-getalldashboardsreturnsokresponse-1676584070-with-profile-metrics-query","is_read_only":false,"template_variables":null,"widgets":[{"definition":{"requests":[{"profile_metrics_query":{"compute":{"aggregation":"sum","facet":"@prof_core_cpu_cores"},"group_by":[{"facet":"service","limit":10,"sort":{"aggregation":"sum","facet":"@prof_core_cpu_cores","order":"desc"}}],"search":{"query":"runtime:jvm"}}}],"type":"timeseries"},"id":687274237501398}],"notify_list":null,"created_at":"2023-02-16T21:47:50.216943+00:00","modified_at":"2023-02-16T21:47:50.216943+00:00","restricted_roles":[]} - - ' + string: '{"notify_list":null,"description":null,"restricted_roles":[],"author_name":null,"template_variables":null,"is_read_only":false,"id":"h7i-mjy-78u","title":"Test-Get_all_dashboards_returns_OK_response-1641430243 + with Profile Metrics Query","url":"/dashboard/h7i-mjy-78u/test-getalldashboardsreturnsokresponse-1641430243-with-profile-metrics-query","created_at":"2022-01-06T00:50:43.864194+00:00","modified_at":"2022-01-06T00:50:43.864194+00:00","author_handle":"frog@datadoghq.com","widgets":[{"definition":{"requests":[{"profile_metrics_query":{"search":{"query":"runtime:jvm"},"group_by":[{"facet":"service","sort":{"facet":"@prof_core_cpu_cores","aggregation":"sum","order":"desc"},"limit":10}],"compute":{"facet":"@prof_core_cpu_cores","aggregation":"sum"}}}],"type":"timeseries"},"id":2449099635020633}],"layout_type":"ordered"}' headers: Content-Type: - application/json status: code: 200 message: OK -- recorded_at: Thu, 16 Feb 2023 21:47:50 GMT +- recorded_at: Thu, 06 Jan 2022 00:50:43 GMT request: body: null headers: @@ -36,30 +34,111 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"dashboards":[{"id":"npw-6di-usv","title":"Test-Get_all_dashboards_returns_OK_response-1676584070 - with Profile Metrics Query","description":null,"layout_type":"ordered","url":"/dashboard/npw-6di-usv/test-getalldashboardsreturnsokresponse-1676584070-with-profile-metrics-query","is_read_only":false,"created_at":"2023-02-16T21:47:50.216943+00:00","modified_at":"2023-02-16T21:47:50.216943+00:00","author_handle":"frog@datadoghq.com","deleted_at":null}]} - - ' + string: '{"dashboards":[{"created_at":"2021-12-15T14:39:24.510324+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":"This + dashboard provides deep visibility into your AWS RDS PostgreSQL database by + visualizing metrics from the PostgreSQL database engine alongside resource + metrics from your AWS infrastructure. Further reading on AWS RDS PostgreSQL + monitoring:\n\n- [Datadog''s guide to key AWS RDS PostgreSQL metrics](https://www.datadoghq.com/blog/aws-rds-postgresql-monitoring/)\n\n- + [How to collect AWS RDS metrics from CloudWatch and the PostgreSQL database + engine](https://www.datadoghq.com/blog/collect-rds-metrics-for-postgresql/)\n\n- + [How to monitor AWS RDS PostgreSQL with Datadog](https://www.datadoghq.com/blog/postgresql-rds-monitoring-datadog/)\n\n- + [Datadog''s AWS RDS integration docs](https://docs.datadoghq.com/integrations/amazon_rds/)\n\nClone + this template dashboard to make changes and add your own graph widgets. (cloned)","title":"Wisdom","url":"/dashboard/bru-u6k-rjq/wisdom","layout_type":"free","modified_at":"2021-12-15T16:54:32.046189+00:00","id":"bru-u6k-rjq"},{"created_at":"2022-01-06T00:50:43.864194+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Get_all_dashboards_returns_OK_response-1641430243 + with Profile Metrics Query","url":"/dashboard/h7i-mjy-78u/test-getalldashboardsreturnsokresponse-1641430243-with-profile-metrics-query","layout_type":"ordered","modified_at":"2022-01-06T00:50:43.864194+00:00","id":"h7i-mjy-78u"},{"created_at":"2022-01-05T23:40:51.316245+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":"","title":"Test-Create_a_new_dashboard_with_slo_widget-1641426050","url":"/dashboard/847-vzh-4xh/test-createanewdashboardwithslowidget-1641426050","layout_type":"free","modified_at":"2022-01-05T23:40:51.316245+00:00","id":"847-vzh-4xh"},{"created_at":"2022-01-05T12:11:53.130247+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":"","title":"Test-Create_a_new_dashboard_with_slo_widget-1641384712","url":"/dashboard/au3-3ei-vs9/test-createanewdashboardwithslowidget-1641384712","layout_type":"free","modified_at":"2022-01-05T12:11:53.130247+00:00","id":"au3-3ei-vs9"},{"created_at":"2021-12-25T14:11:38.785869+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Example-Create_a_new_dashboard_with_sunburst_widget_and_metrics_data_1640441498","url":"/dashboard/bqy-2qp-fnm/example-createanewdashboardwithsunburstwidgetandmetricsdata1640441498","layout_type":"ordered","modified_at":"2021-12-25T14:11:38.785869+00:00","id":"bqy-2qp-fnm"},{"created_at":"2021-12-25T14:11:37.041044+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Example-Create_a_new_dashboard_with_a_formulas_and_functions_change_widget_1640441496","url":"/dashboard/xbd-h6a-2eh/example-createanewdashboardwithaformulasandfunctionschangewidget1640441496","layout_type":"ordered","modified_at":"2021-12-25T14:11:37.041044+00:00","id":"xbd-h6a-2eh"},{"created_at":"2021-12-25T14:11:36.558454+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Example-Create_a_new_dashboard_with_timeseries_widget_containing_style_attributes_1640441496 + with timeseries widget","url":"/dashboard/3se-ifm-j39/example-createanewdashboardwithtimeserieswidgetcontainingstyleattributes16404414","layout_type":"ordered","modified_at":"2021-12-25T14:11:36.558454+00:00","id":"3se-ifm-j39"},{"created_at":"2021-12-21T20:19:21.682075+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_timeseries_widget_containing_style_attributes-1640117961 + with timeseries widget","url":"/dashboard/ttc-3xd-hkf/test-typescript-createanewdashboardwithtimeserieswidgetcontainingstyleattributes","layout_type":"ordered","modified_at":"2021-12-21T20:19:21.682075+00:00","id":"ttc-3xd-hkf"},{"created_at":"2021-12-21T20:19:21.537181+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_list_stream_widget-1640117961 + with list_stream widget","url":"/dashboard/2ce-kwn-jni/test-typescript-createanewdashboardwithliststreamwidget-1640117961-with-liststre","layout_type":"ordered","modified_at":"2021-12-21T20:19:21.537181+00:00","id":"2ce-kwn-jni"},{"created_at":"2021-12-21T20:19:21.408390+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_funnel_widget-1640117961 + with funnel widget","url":"/dashboard/5g3-4vg-kc4/test-typescript-createanewdashboardwithfunnelwidget-1640117961-with-funnel-widge","layout_type":"ordered","modified_at":"2021-12-21T20:19:21.408390+00:00","id":"5g3-4vg-kc4"},{"created_at":"2021-12-21T20:19:21.273514+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_formulas_and_functions_scatterplot_widget-1640117961","url":"/dashboard/c72-63m-4mb/test-typescript-createanewdashboardwithformulasandfunctionsscatterplotwidget-164","layout_type":"ordered","modified_at":"2021-12-21T20:19:21.273514+00:00","id":"c72-63m-4mb"},{"created_at":"2021-12-21T20:19:21.037327+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_distribution_widget_and_apm_stats_data-1640117960","url":"/dashboard/i35-x3g-97i/test-typescript-createanewdashboardwithdistributionwidgetandapmstatsdata-1640117","layout_type":"ordered","modified_at":"2021-12-21T20:19:21.037327+00:00","id":"i35-x3g-97i"},{"created_at":"2021-12-21T20:19:20.870360+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_apm_resource_stats_widget-1640117960","url":"/dashboard/jfm-ipt-zd2/test-typescript-createanewdashboardwithapmresourcestatswidget-1640117960","layout_type":"ordered","modified_at":"2021-12-21T20:19:20.870360+00:00","id":"jfm-ipt-zd2"},{"created_at":"2021-12-21T20:19:20.716685+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_apm_dependency_stats_widget-1640117960","url":"/dashboard/btb-c95-q4d/test-typescript-createanewdashboardwithapmdependencystatswidget-1640117960","layout_type":"ordered","modified_at":"2021-12-21T20:19:20.716685+00:00","id":"btb-c95-q4d"},{"created_at":"2021-12-21T20:19:20.542915+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_an_audit_logs_query-1640117960 + with Audit Logs Query","url":"/dashboard/j66-p8a-6xr/test-typescript-createanewdashboardwithanauditlogsquery-1640117960-with-audit-lo","layout_type":"ordered","modified_at":"2021-12-21T20:19:20.542915+00:00","id":"j66-p8a-6xr"},{"created_at":"2021-12-21T20:19:20.388207+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_a_query_value_widget_using_the_percentile_aggregator-1640117960 + with QVW Percentile Aggregator","url":"/dashboard/az2-zmu-8z7/test-typescript-createanewdashboardwithaqueryvaluewidgetusingthepercentileaggreg","layout_type":"ordered","modified_at":"2021-12-21T20:19:20.388207+00:00","id":"az2-zmu-8z7"},{"created_at":"2021-12-21T20:19:20.193255+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_a_formulas_and_functions_change_widget-1640117960","url":"/dashboard/97h-5gr-cng/test-typescript-createanewdashboardwithaformulasandfunctionschangewidget-1640117","layout_type":"ordered","modified_at":"2021-12-21T20:19:20.193255+00:00","id":"97h-5gr-cng"},{"created_at":"2021-12-21T20:19:20.035319+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_returns_OK_response-1640117959 + with Profile Metrics Query","url":"/dashboard/x9t-4gy-zbd/test-typescript-createanewdashboardreturnsokresponse-1640117959-with-profile-met","layout_type":"ordered","modified_at":"2021-12-21T20:19:20.035319+00:00","id":"x9t-4gy-zbd"},{"created_at":"2021-12-21T18:55:05.778217+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Create_a_new_dashboard_with_timeseries_widget_containing_style_attributes-1640112905 + with timeseries widget","url":"/dashboard/xg6-rmu-dvb/test-createanewdashboardwithtimeserieswidgetcontainingstyleattributes-1640112905","layout_type":"ordered","modified_at":"2021-12-21T18:55:05.778217+00:00","id":"xg6-rmu-dvb"},{"created_at":"2021-12-21T18:55:05.555810+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Create_a_new_dashboard_with_list_stream_widget-1640112905 + with list_stream widget","url":"/dashboard/sah-fjc-psm/test-createanewdashboardwithliststreamwidget-1640112905-with-liststream-widget","layout_type":"ordered","modified_at":"2021-12-21T18:55:05.555810+00:00","id":"sah-fjc-psm"},{"created_at":"2021-12-21T18:55:05.189413+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Create_a_new_dashboard_with_funnel_widget-1640112904 + with funnel widget","url":"/dashboard/wyg-ifc-wgp/test-createanewdashboardwithfunnelwidget-1640112904-with-funnel-widget","layout_type":"ordered","modified_at":"2021-12-21T18:55:05.189413+00:00","id":"wyg-ifc-wgp"},{"created_at":"2021-12-21T18:55:04.941784+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Create_a_new_dashboard_with_formulas_and_functions_scatterplot_widget-1640112904","url":"/dashboard/5ku-gm5-fxz/test-createanewdashboardwithformulasandfunctionsscatterplotwidget-1640112904","layout_type":"ordered","modified_at":"2021-12-21T18:55:04.941784+00:00","id":"5ku-gm5-fxz"},{"created_at":"2021-12-21T18:55:04.725409+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Create_a_new_dashboard_with_distribution_widget_and_apm_stats_data-1640112904","url":"/dashboard/2ky-dan-fer/test-createanewdashboardwithdistributionwidgetandapmstatsdata-1640112904","layout_type":"ordered","modified_at":"2021-12-21T18:55:04.725409+00:00","id":"2ky-dan-fer"},{"created_at":"2021-12-21T18:55:04.503249+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Create_a_new_dashboard_with_apm_resource_stats_widget-1640112904","url":"/dashboard/bgg-xpj-93y/test-createanewdashboardwithapmresourcestatswidget-1640112904","layout_type":"ordered","modified_at":"2021-12-21T18:55:04.503249+00:00","id":"bgg-xpj-93y"},{"created_at":"2021-12-21T18:55:04.214906+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Create_a_new_dashboard_with_apm_dependency_stats_widget-1640112904","url":"/dashboard/axt-ihw-ke6/test-createanewdashboardwithapmdependencystatswidget-1640112904","layout_type":"ordered","modified_at":"2021-12-21T18:55:04.214906+00:00","id":"axt-ihw-ke6"},{"created_at":"2021-12-21T18:55:03.912308+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Create_a_new_dashboard_with_an_audit_logs_query-1640112903 + with Audit Logs Query","url":"/dashboard/h5w-gm3-zp7/test-createanewdashboardwithanauditlogsquery-1640112903-with-audit-logs-query","layout_type":"ordered","modified_at":"2021-12-21T18:55:03.912308+00:00","id":"h5w-gm3-zp7"},{"created_at":"2021-12-21T18:55:03.620964+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Create_a_new_dashboard_with_a_query_value_widget_using_the_percentile_aggregator-1640112903 + with QVW Percentile Aggregator","url":"/dashboard/jay-m78-977/test-createanewdashboardwithaqueryvaluewidgetusingthepercentileaggregator-164011","layout_type":"ordered","modified_at":"2021-12-21T18:55:03.620964+00:00","id":"jay-m78-977"},{"created_at":"2021-12-21T18:55:03.462929+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Create_a_new_dashboard_with_a_formulas_and_functions_change_widget-1640112903","url":"/dashboard/x52-ua2-tr5/test-createanewdashboardwithaformulasandfunctionschangewidget-1640112903","layout_type":"ordered","modified_at":"2021-12-21T18:55:03.462929+00:00","id":"x52-ua2-tr5"},{"created_at":"2021-12-21T18:55:03.310016+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Create_a_new_dashboard_returns_OK_response-1640112903 + with Profile Metrics Query","url":"/dashboard/nhn-qsh-7wi/test-createanewdashboardreturnsokresponse-1640112903-with-profile-metrics-query","layout_type":"ordered","modified_at":"2021-12-21T18:55:03.310016+00:00","id":"nhn-qsh-7wi"},{"created_at":"2021-12-21T18:52:01.694087+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_timeseries_widget_containing_style_attributes-1640112721 + with timeseries widget","url":"/dashboard/irb-de9-fj3/test-typescript-createanewdashboardwithtimeserieswidgetcontainingstyleattributes","layout_type":"ordered","modified_at":"2021-12-21T18:52:01.694087+00:00","id":"irb-de9-fj3"},{"created_at":"2021-12-21T18:52:01.525703+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_list_stream_widget-1640112721 + with list_stream widget","url":"/dashboard/aur-nch-6z2/test-typescript-createanewdashboardwithliststreamwidget-1640112721-with-liststre","layout_type":"ordered","modified_at":"2021-12-21T18:52:01.525703+00:00","id":"aur-nch-6z2"},{"created_at":"2021-12-21T18:52:01.399887+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_funnel_widget-1640112721 + with funnel widget","url":"/dashboard/y9r-rzx-p7z/test-typescript-createanewdashboardwithfunnelwidget-1640112721-with-funnel-widge","layout_type":"ordered","modified_at":"2021-12-21T18:52:01.399887+00:00","id":"y9r-rzx-p7z"},{"created_at":"2021-12-21T18:52:01.174857+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_formulas_and_functions_scatterplot_widget-1640112720","url":"/dashboard/hqv-bmm-6wh/test-typescript-createanewdashboardwithformulasandfunctionsscatterplotwidget-164","layout_type":"ordered","modified_at":"2021-12-21T18:52:01.174857+00:00","id":"hqv-bmm-6wh"},{"created_at":"2021-12-21T18:52:00.739554+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_distribution_widget_and_apm_stats_data-1640112720","url":"/dashboard/a7m-4yb-6et/test-typescript-createanewdashboardwithdistributionwidgetandapmstatsdata-1640112","layout_type":"ordered","modified_at":"2021-12-21T18:52:00.739554+00:00","id":"a7m-4yb-6et"},{"created_at":"2021-12-21T18:52:00.582486+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_apm_resource_stats_widget-1640112720","url":"/dashboard/ygt-ufy-574/test-typescript-createanewdashboardwithapmresourcestatswidget-1640112720","layout_type":"ordered","modified_at":"2021-12-21T18:52:00.582486+00:00","id":"ygt-ufy-574"},{"created_at":"2021-12-21T18:52:00.371066+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_apm_dependency_stats_widget-1640112720","url":"/dashboard/ahy-xgy-xqx/test-typescript-createanewdashboardwithapmdependencystatswidget-1640112720","layout_type":"ordered","modified_at":"2021-12-21T18:52:00.371066+00:00","id":"ahy-xgy-xqx"},{"created_at":"2021-12-21T18:52:00.196349+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_an_audit_logs_query-1640112720 + with Audit Logs Query","url":"/dashboard/8ya-34b-dwg/test-typescript-createanewdashboardwithanauditlogsquery-1640112720-with-audit-lo","layout_type":"ordered","modified_at":"2021-12-21T18:52:00.196349+00:00","id":"8ya-34b-dwg"},{"created_at":"2021-12-21T18:52:00.011841+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_a_query_value_widget_using_the_percentile_aggregator-1640112719 + with QVW Percentile Aggregator","url":"/dashboard/xyj-tns-3g3/test-typescript-createanewdashboardwithaqueryvaluewidgetusingthepercentileaggreg","layout_type":"ordered","modified_at":"2021-12-21T18:52:00.011841+00:00","id":"xyj-tns-3g3"},{"created_at":"2021-12-21T18:51:59.850232+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_a_formulas_and_functions_change_widget-1640112719","url":"/dashboard/cy4-m7f-sp4/test-typescript-createanewdashboardwithaformulasandfunctionschangewidget-1640112","layout_type":"ordered","modified_at":"2021-12-21T18:51:59.850232+00:00","id":"cy4-m7f-sp4"},{"created_at":"2021-12-21T18:51:59.646612+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_returns_OK_response-1640112719 + with Profile Metrics Query","url":"/dashboard/tb4-b9u-2e4/test-typescript-createanewdashboardreturnsokresponse-1640112719-with-profile-met","layout_type":"ordered","modified_at":"2021-12-21T18:51:59.646612+00:00","id":"tb4-b9u-2e4"},{"created_at":"2021-12-21T18:31:27.217470+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_timeseries_widget_containing_style_attributes-1640111487 + with timeseries widget","url":"/dashboard/3yy-pcm-g2v/test-typescript-createanewdashboardwithtimeserieswidgetcontainingstyleattributes","layout_type":"ordered","modified_at":"2021-12-21T18:31:27.217470+00:00","id":"3yy-pcm-g2v"},{"created_at":"2021-12-21T18:31:27.031403+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_list_stream_widget-1640111486 + with list_stream widget","url":"/dashboard/8g5-czb-yvh/test-typescript-createanewdashboardwithliststreamwidget-1640111486-with-liststre","layout_type":"ordered","modified_at":"2021-12-21T18:31:27.031403+00:00","id":"8g5-czb-yvh"},{"created_at":"2021-12-21T18:31:26.887015+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_funnel_widget-1640111486 + with funnel widget","url":"/dashboard/nyb-9fe-jzd/test-typescript-createanewdashboardwithfunnelwidget-1640111486-with-funnel-widge","layout_type":"ordered","modified_at":"2021-12-21T18:31:26.887015+00:00","id":"nyb-9fe-jzd"},{"created_at":"2021-12-21T18:31:26.723244+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_formulas_and_functions_scatterplot_widget-1640111486","url":"/dashboard/qyi-yf6-wyc/test-typescript-createanewdashboardwithformulasandfunctionsscatterplotwidget-164","layout_type":"ordered","modified_at":"2021-12-21T18:31:26.723244+00:00","id":"qyi-yf6-wyc"},{"created_at":"2021-12-21T18:31:26.542894+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_distribution_widget_and_apm_stats_data-1640111486","url":"/dashboard/4yr-zbc-ggx/test-typescript-createanewdashboardwithdistributionwidgetandapmstatsdata-1640111","layout_type":"ordered","modified_at":"2021-12-21T18:31:26.542894+00:00","id":"4yr-zbc-ggx"},{"created_at":"2021-12-21T18:31:26.375949+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_apm_resource_stats_widget-1640111486","url":"/dashboard/qhc-jmw-ekg/test-typescript-createanewdashboardwithapmresourcestatswidget-1640111486","layout_type":"ordered","modified_at":"2021-12-21T18:31:26.375949+00:00","id":"qhc-jmw-ekg"},{"created_at":"2021-12-21T18:31:26.091520+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_apm_dependency_stats_widget-1640111485","url":"/dashboard/u8s-2fq-kx2/test-typescript-createanewdashboardwithapmdependencystatswidget-1640111485","layout_type":"ordered","modified_at":"2021-12-21T18:31:26.091520+00:00","id":"u8s-2fq-kx2"},{"created_at":"2021-12-21T18:31:25.770371+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_an_audit_logs_query-1640111485 + with Audit Logs Query","url":"/dashboard/zk2-u47-33e/test-typescript-createanewdashboardwithanauditlogsquery-1640111485-with-audit-lo","layout_type":"ordered","modified_at":"2021-12-21T18:31:25.770371+00:00","id":"zk2-u47-33e"},{"created_at":"2021-12-21T18:31:25.583793+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_a_query_value_widget_using_the_percentile_aggregator-1640111485 + with QVW Percentile Aggregator","url":"/dashboard/uke-7e2-i7w/test-typescript-createanewdashboardwithaqueryvaluewidgetusingthepercentileaggreg","layout_type":"ordered","modified_at":"2021-12-21T18:31:25.583793+00:00","id":"uke-7e2-i7w"},{"created_at":"2021-12-21T18:31:25.393310+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_a_formulas_and_functions_change_widget-1640111485","url":"/dashboard/kr9-tsg-vsq/test-typescript-createanewdashboardwithaformulasandfunctionschangewidget-1640111","layout_type":"ordered","modified_at":"2021-12-21T18:31:25.393310+00:00","id":"kr9-tsg-vsq"},{"created_at":"2021-12-21T18:31:25.206542+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_returns_OK_response-1640111485 + with Profile Metrics Query","url":"/dashboard/msy-u3b-7b7/test-typescript-createanewdashboardreturnsokresponse-1640111485-with-profile-met","layout_type":"ordered","modified_at":"2021-12-21T18:31:25.206542+00:00","id":"msy-u3b-7b7"},{"created_at":"2021-12-17T22:36:55.747962+00:00","author_handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_distribution_widget_and_apm_stats_data-1639780615","url":"/dashboard/x3q-yvt-sfq/test-typescript-createanewdashboardwithdistributionwidgetandapmstatsdata-1639780","layout_type":"ordered","modified_at":"2021-12-17T22:36:55.747962+00:00","id":"x3q-yvt-sfq"},{"created_at":"2021-12-17T22:36:55.315881+00:00","author_handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_read_only":false,"description":null,"title":"Test-Typescript-Create_a_new_dashboard_with_apm_resource_stats_widget-1639780615","url":"/dashboard/7uf-hx8-txk/test-typescript-createanewdashboardwithapmresourcestatswidget-1639780615","layout_type":"ordered","modified_at":"2021-12-17T22:36:55.315881+00:00","id":"7uf-hx8-txk"},{"created_at":"2021-12-17T13:40:10.615801+00:00","author_handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_read_only":false,"description":null,"title":"Test-Ruby-Create_a_new_dashboard_with_apm_resource_stats_widget-1639748410","url":"/dashboard/dei-tt4-qx6/test-ruby-createanewdashboardwithapmresourcestatswidget-1639748410","layout_type":"ordered","modified_at":"2021-12-17T13:40:10.615801+00:00","id":"dei-tt4-qx6"},{"created_at":"2021-12-16T15:22:08.848996+00:00","author_handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_read_only":false,"description":null,"title":"Test-Java-Create_a_new_dashboard_with_list_stream_widget-1639668128 + with list_stream widget","url":"/dashboard/6ph-m2r-tc8/test-java-createanewdashboardwithliststreamwidget-1639668128-with-liststream-wid","layout_type":"ordered","modified_at":"2021-12-16T15:22:08.848996+00:00","id":"6ph-m2r-tc8"},{"created_at":"2021-12-14T17:04:04.280887+00:00","author_handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_read_only":false,"description":null,"title":"Test-Ruby-Create_a_new_dashboard_with_a_query_value_widget_using_the_percentile_aggregator-1639501444 + with QVW Percentile Aggregator","url":"/dashboard/48j-s6v-mzr/test-ruby-createanewdashboardwithaqueryvaluewidgetusingthepercentileaggregator-1","layout_type":"ordered","modified_at":"2021-12-14T17:04:04.280887+00:00","id":"48j-s6v-mzr"},{"created_at":"2021-05-17T08:32:02.449350+00:00","author_handle":"hippolyte.henry@datadoghq.com","is_read_only":false,"description":"Various + stats from CI runs of generated API clients","title":"Datadog API Clients + CI","url":"/dashboard/4ud-du4-pi3/datadog-api-clients-ci","layout_type":"free","modified_at":"2021-05-17T08:32:02.449350+00:00","id":"4ud-du4-pi3"},{"created_at":"2021-05-14T14:17:22.284588+00:00","author_handle":"hippolyte.henry@datadoghq.com","is_read_only":false,"description":"Various + stats from CI runs of generated API clients","title":"Datadog API Clients + CI","url":"/dashboard/8mr-z8r-xaq/datadog-api-clients-ci","layout_type":"free","modified_at":"2021-05-14T14:17:22.284588+00:00","id":"8mr-z8r-xaq"},{"created_at":"2021-05-14T14:17:13.784143+00:00","author_handle":"hippolyte.henry@datadoghq.com","is_read_only":false,"description":"Various + stats from CI runs of generated API clients","title":"Datadog API Clients + CI","url":"/dashboard/795-wur-2am/datadog-api-clients-ci","layout_type":"free","modified_at":"2021-05-14T14:17:13.784143+00:00","id":"795-wur-2am"},{"created_at":"2021-05-12T09:05:51.875354+00:00","author_handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_read_only":false,"description":"Test + Free layout dashboard for Java client","title":"java-dashboardLifecycleTest-63315-1620810350-free","url":"/dashboard/c6b-m9f-qra/java-dashboardlifecycletest-63315-1620810350-free","layout_type":"free","modified_at":"2021-05-12T09:05:51.875354+00:00","id":"c6b-m9f-qra"},{"created_at":"2021-05-11T14:44:24.984417+00:00","author_handle":"hippolyte.henry@datadoghq.com","is_read_only":false,"description":"Various + stats from CI runs of generated API clients","title":"Datadog API Clients + CI","url":"/dashboard/f4q-d9c-2nj/datadog-api-clients-ci","layout_type":"free","modified_at":"2021-05-11T14:44:24.984417+00:00","id":"f4q-d9c-2nj"},{"created_at":"2021-05-03T13:03:46.217614+00:00","author_handle":"frog@datadoghq.com","is_read_only":true,"description":null,"title":"OSLO: + splunk LB ","url":"/dashboard/b6n-d8r-7em/oslo-splunk-lb","layout_type":"free","modified_at":"2021-05-03T13:03:46.217614+00:00","id":"b6n-d8r-7em"},{"created_at":"2021-04-26T09:59:02.371956+00:00","author_handle":"hippolyte.henry@datadoghq.com","is_read_only":true,"description":null,"title":"OSLO: + systemid LB on starbug","url":"/dashboard/ntb-zhs-zc6/oslo-systemid-lb-on-starbug","layout_type":"free","modified_at":"2021-04-26T09:59:02.371956+00:00","id":"ntb-zhs-zc6"},{"created_at":"2021-04-26T09:58:20.982778+00:00","author_handle":"hippolyte.henry@datadoghq.com","is_read_only":true,"description":null,"title":"OSLO: + systemid LB on c2c","url":"/dashboard/je2-bwi-ces/oslo-systemid-lb-on-c2c","layout_type":"free","modified_at":"2021-04-26T09:58:20.982778+00:00","id":"je2-bwi-ces"},{"created_at":"2021-04-23T16:14:13.820995+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":"Created + using the Datadog provider in Terraform","title":"MM RBAC Dashboard","url":"/dashboard/6by-h9d-gui/mm-rbac-dashboard","layout_type":"ordered","modified_at":"2021-04-23T16:14:13.820995+00:00","id":"6by-h9d-gui"},{"created_at":"2021-04-23T16:04:56.337388+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":"Created + using the Datadog provider in Terraform","title":"MM RBAC Dashboard [0.11]","url":"/dashboard/kuj-pxv-rqh/mm-rbac-dashboard-011","layout_type":"ordered","modified_at":"2021-04-23T16:04:56.337388+00:00","id":"kuj-pxv-rqh"},{"created_at":"2021-04-16T08:27:11.505665+00:00","author_handle":"hippolyte.henry@datadoghq.com","is_read_only":false,"description":"","title":"Hippolyte''s + Screenboard Fri, Apr 16, 10:20:54 am","url":"/dashboard/f4a-76m-nbn/hippolytes-screenboard-fri-apr-16-102054-am","layout_type":"free","modified_at":"2021-04-16T08:49:08.310691+00:00","id":"f4a-76m-nbn"},{"created_at":"2021-04-16T08:20:54.758861+00:00","author_handle":"hippolyte.henry@datadoghq.com","is_read_only":false,"description":"","title":"Hippolyte''s + Screenboard Fri, Apr 16, 10:20:54 am","url":"/dashboard/9km-gj8-2rj/hippolytes-screenboard-fri-apr-16-102054-am","layout_type":"free","modified_at":"2021-04-16T08:21:08.649752+00:00","id":"9km-gj8-2rj"},{"created_at":"2021-04-15T16:42:07.677880+00:00","author_handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_read_only":false,"description":"new_desc","title":"new_title","url":"/dashboard/j6w-fex-8fn/newtitle","layout_type":"free","modified_at":"2021-04-15T16:42:08.423227+00:00","id":"j6w-fex-8fn"},{"created_at":"2021-04-13T11:50:10.192480+00:00","author_handle":"frog@datadoghq.com","is_read_only":true,"description":"Created + using the Datadog provider in Terraform","title":"Ordered Layout Dashboard","url":"/dashboard/xc8-h6m-gyt/ordered-layout-dashboard","layout_type":"ordered","modified_at":"2021-04-13T11:50:38.881933+00:00","id":"xc8-h6m-gyt"},{"created_at":"2021-04-09T16:26:13.743066+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":"new_desc","title":"new_title","url":"/dashboard/7q8-wed-xaa/newtitle","layout_type":"free","modified_at":"2021-04-09T16:26:14.453324+00:00","id":"7q8-wed-xaa"},{"created_at":"2021-03-03T09:57:28.304302+00:00","author_handle":"hippolyte.henry@datadoghq.com","is_read_only":false,"description":"","title":"Hippolyte''s + Timeboard Wed, Mar 3, 10:57:28 am","url":"/dashboard/deh-2pa-jv8/hippolytes-timeboard-wed-mar-3-105728-am","layout_type":"ordered","modified_at":"2021-03-03T09:59:37.861240+00:00","id":"deh-2pa-jv8"},{"created_at":"2021-03-01T08:29:54.466356+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":null,"title":"datadog + test","url":"/dashboard/qn2-but-2r8/datadog-test","layout_type":"free","modified_at":"2021-03-01T08:29:54.466356+00:00","id":"qn2-but-2r8"},{"created_at":"2021-02-02T13:54:05.514952+00:00","author_handle":"frog@datadoghq.com","is_read_only":true,"description":"Created + using the Datadog provider in Terraform","title":"DL FF TF","url":"/dashboard/76m-n9x-wd4/dl-ff-tf","layout_type":"ordered","modified_at":"2021-02-02T13:54:05.514952+00:00","id":"76m-n9x-wd4"},{"created_at":"2021-01-21T14:01:08.820798+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":"new_desc","title":"new_title","url":"/dashboard/pu8-4pr-9v2/newtitle","layout_type":"ordered","modified_at":"2021-01-21T14:01:09.882536+00:00","id":"pu8-4pr-9v2"},{"created_at":"2021-01-21T11:01:38.594211+00:00","author_handle":"frog@datadoghq.com","is_read_only":false,"description":"new_desc","title":"new_title","url":"/dashboard/hsz-pvn-gie/newtitle","layout_type":"free","modified_at":"2021-01-21T11:01:39.149109+00:00","id":"hsz-pvn-gie"},{"created_at":"2021-01-06T16:34:52.946050+00:00","author_handle":"frog@datadoghq.com","is_read_only":true,"description":"Created + using the Datadog provider in Terraform","title":"Ordered Layout Dashboard","url":"/dashboard/4wp-g9w-rqp/ordered-layout-dashboard","layout_type":"ordered","modified_at":"2021-01-06T16:34:52.946050+00:00","id":"4wp-g9w-rqp"},{"created_at":"2021-01-06T10:48:02.242118+00:00","author_handle":"frog@datadoghq.com","is_read_only":true,"description":"Created + using the Datadog provider in Terraform","title":"Ordered Layout Dashboard","url":"/dashboard/qpy-d9b-2bv/ordered-layout-dashboard","layout_type":"ordered","modified_at":"2021-01-06T10:48:02.242118+00:00","id":"qpy-d9b-2bv"},{"created_at":"2021-01-06T10:40:07.910997+00:00","author_handle":"frog@datadoghq.com","is_read_only":true,"description":"Created + using the Datadog provider in Terraform","title":"Acceptance Test Log Stream + Widget Dashboard","url":"/dashboard/xue-5t2-hzf/acceptance-test-log-stream-widget-dashboard","layout_type":"free","modified_at":"2021-01-06T10:40:07.910997+00:00","id":"xue-5t2-hzf"},{"created_at":"2020-12-10T04:21:12.270024+00:00","author_handle":"gregory.zussa@datadoghq.com","is_read_only":true,"description":"Created + using the Datadog provider in Terraform","title":"Acceptance Test Event Timeline + Widget Dashboard","url":"/dashboard/74v-m9u-yzs/acceptance-test-event-timeline-widget-dashboard","layout_type":"free","modified_at":"2020-12-10T04:21:12.270024+00:00","id":"74v-m9u-yzs"},{"created_at":"2020-12-09T04:18:00.388550+00:00","author_handle":"gregory.zussa@datadoghq.com","is_read_only":false,"description":"Created + using the Datadog provider in Terraform","title":"Acceptance Test Timeboard","url":"/dashboard/ia3-mtz-d4e/acceptance-test-timeboard","layout_type":"ordered","modified_at":"2020-12-09T04:18:00.388550+00:00","id":"ia3-mtz-d4e"},{"created_at":"2020-02-11T13:49:29.555334+00:00","author_handle":"hippolyte.henry@datadoghq.com","is_read_only":true,"description":"","title":"For + dashboard list tests - DO NOT DELETE","url":"/dashboard/4n7-s4g-dqv/for-dashboard-list-tests---do-not-delete","layout_type":"free","modified_at":"2020-04-08T17:54:25.574039+00:00","id":"4n7-s4g-dqv"},{"created_at":"2020-04-06T04:04:04.865855+00:00","author_handle":"gregory.zussa@datadoghq.com","is_read_only":true,"description":"Created + using the Datadog provider in Terraform","title":"Acceptance Test Ordered + Dashboard","url":"/dashboard/54k-cum-8qb/acceptance-test-ordered-dashboard","layout_type":"ordered","modified_at":"2020-04-06T04:04:04.865855+00:00","id":"54k-cum-8qb"},{"created_at":"2020-04-06T04:03:50.744728+00:00","author_handle":"gregory.zussa@datadoghq.com","is_read_only":true,"description":"Created + using the Datadog provider in Terraform","title":"Acceptance Test Ordered + Dashboard","url":"/dashboard/wk2-g3v-33r/acceptance-test-ordered-dashboard","layout_type":"ordered","modified_at":"2020-04-06T04:03:50.744728+00:00","id":"wk2-g3v-33r"},{"created_at":"2020-04-05T04:13:50.808643+00:00","author_handle":"gregory.zussa@datadoghq.com","is_read_only":true,"description":"Created + using the Datadog provider in Terraform","title":"Acceptance Test Ordered + Dashboard","url":"/dashboard/9r7-fdh-xwu/acceptance-test-ordered-dashboard","layout_type":"ordered","modified_at":"2020-04-05T04:13:50.808643+00:00","id":"9r7-fdh-xwu"},{"created_at":"2020-04-05T04:13:36.735119+00:00","author_handle":"gregory.zussa@datadoghq.com","is_read_only":true,"description":"Created + using the Datadog provider in Terraform","title":"Acceptance Test Ordered + Dashboard","url":"/dashboard/k9n-fgv-7hc/acceptance-test-ordered-dashboard","layout_type":"ordered","modified_at":"2020-04-05T04:13:36.735119+00:00","id":"k9n-fgv-7hc"},{"created_at":"2020-04-04T04:04:08.417629+00:00","author_handle":"gregory.zussa@datadoghq.com","is_read_only":true,"description":"Created + using the Datadog provider in Terraform","title":"Acceptance Test Ordered + Dashboard","url":"/dashboard/czj-47q-s3c/acceptance-test-ordered-dashboard","layout_type":"ordered","modified_at":"2020-04-04T04:04:08.417629+00:00","id":"czj-47q-s3c"},{"created_at":"2020-04-04T04:03:53.914921+00:00","author_handle":"gregory.zussa@datadoghq.com","is_read_only":true,"description":"Created + using the Datadog provider in Terraform","title":"Acceptance Test Ordered + Dashboard","url":"/dashboard/dvc-5rc-k6a/acceptance-test-ordered-dashboard","layout_type":"ordered","modified_at":"2020-04-04T04:03:53.914921+00:00","id":"dvc-5rc-k6a"},{"created_at":"2020-04-03T04:04:29.189905+00:00","author_handle":"gregory.zussa@datadoghq.com","is_read_only":true,"description":"Created + using the Datadog provider in Terraform","title":"Acceptance Test Ordered + Dashboard","url":"/dashboard/5t8-ttx-r56/acceptance-test-ordered-dashboard","layout_type":"ordered","modified_at":"2020-04-03T04:04:29.189905+00:00","id":"5t8-ttx-r56"},{"created_at":"2020-04-03T04:04:14.636126+00:00","author_handle":"gregory.zussa@datadoghq.com","is_read_only":true,"description":"Created + using the Datadog provider in Terraform","title":"Acceptance Test Ordered + Dashboard","url":"/dashboard/gmt-szb-2re/acceptance-test-ordered-dashboard","layout_type":"ordered","modified_at":"2020-04-03T04:04:14.636126+00:00","id":"gmt-szb-2re"},{"created_at":"2020-04-02T04:04:03.269864+00:00","author_handle":"gregory.zussa@datadoghq.com","is_read_only":true,"description":"Created + using the Datadog provider in Terraform","title":"Acceptance Test Ordered + Dashboard","url":"/dashboard/kct-4x4-w64/acceptance-test-ordered-dashboard","layout_type":"ordered","modified_at":"2020-04-02T04:04:03.269864+00:00","id":"kct-4x4-w64"},{"created_at":"2020-04-02T04:03:48.438649+00:00","author_handle":"gregory.zussa@datadoghq.com","is_read_only":true,"description":"Created + using the Datadog provider in Terraform","title":"Acceptance Test Ordered + Dashboard","url":"/dashboard/t8y-uw4-uhs/acceptance-test-ordered-dashboard","layout_type":"ordered","modified_at":"2020-04-02T04:03:48.438649+00:00","id":"t8y-uw4-uhs"},{"created_at":"2020-02-11T13:48:52.362473+00:00","author_handle":"hippolyte.henry@datadoghq.com","is_read_only":false,"description":null,"title":"For + dashboard list tests - DO NOT DELETE","url":"/dashboard/q5j-nti-fv6/for-dashboard-list-tests---do-not-delete","layout_type":"ordered","modified_at":"2020-02-11T13:49:16.919666+00:00","id":"q5j-nti-fv6"}]}' headers: Content-Type: - application/json status: code: 200 message: OK -- recorded_at: Thu, 16 Feb 2023 21:47:50 GMT +- recorded_at: Thu, 06 Jan 2022 00:50:43 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v1/dashboard/npw-6di-usv + uri: https://api.datadoghq.com/api/v1/dashboard/h7i-mjy-78u response: body: encoding: UTF-8 - string: '{"deleted_dashboard_id":"npw-6di-usv"} - - ' + string: '{"deleted_dashboard_id":"h7i-mjy-78u"}' headers: Content-Type: - application/json diff --git a/examples/v2/incidents/CreateIncidentIntegration.rb b/examples/v2/incidents/CreateIncidentIntegration.rb new file mode 100644 index 000000000000..ec26430cb8f4 --- /dev/null +++ b/examples/v2/incidents/CreateIncidentIntegration.rb @@ -0,0 +1,24 @@ +# Create an incident integration metadata returns "CREATED" response + +require "datadog_api_client" +DatadogAPIClient::V2.configure do |config| + config.unstable_operations["v2.create_incident_integration".to_sym] = true +end +api_instance = DatadogAPIClient::V2::IncidentsAPI.new + +# there is a valid "incident" in the system +INCIDENT_DATA_ID = ENV["INCIDENT_DATA_ID"] + +body = DatadogAPIClient::V2::IncidentIntegrationMetadataCreateRequest.new({ + data: DatadogAPIClient::V2::IncidentIntegrationMetadataCreateData.new({ + attributes: DatadogAPIClient::V2::IncidentIntegrationMetadataAttributes.new({ + incident_id: "00000000-aaaa-0000-0000-000000000000", + integration_type: 1, + metadata: DatadogAPIClient::V2::SlackIntegrationMetadata.new({ + channels: [], + }), + }), + type: DatadogAPIClient::V2::IncidentIntegrationMetadataType::INCIDENT_INTEGRATIONS, + }), +}) +p api_instance.create_incident_integration(INCIDENT_DATA_ID, body) diff --git a/examples/v2/incidents/DeleteIncidentIntegration.rb b/examples/v2/incidents/DeleteIncidentIntegration.rb new file mode 100644 index 000000000000..a0e9492dd43b --- /dev/null +++ b/examples/v2/incidents/DeleteIncidentIntegration.rb @@ -0,0 +1,14 @@ +# Delete an incident integration metadata returns "OK" response + +require "datadog_api_client" +DatadogAPIClient::V2.configure do |config| + config.unstable_operations["v2.delete_incident_integration".to_sym] = true +end +api_instance = DatadogAPIClient::V2::IncidentsAPI.new + +# there is a valid "incident" in the system +INCIDENT_DATA_ID = ENV["INCIDENT_DATA_ID"] + +# the "incident" has an "incident_integration_metadata" +INCIDENT_INTEGRATION_METADATA_DATA_ID = ENV["INCIDENT_INTEGRATION_METADATA_DATA_ID"] +api_instance.delete_incident_integration(INCIDENT_DATA_ID, INCIDENT_INTEGRATION_METADATA_DATA_ID) diff --git a/examples/v2/incidents/GetIncidentIntegration.rb b/examples/v2/incidents/GetIncidentIntegration.rb new file mode 100644 index 000000000000..b744a1c1d08b --- /dev/null +++ b/examples/v2/incidents/GetIncidentIntegration.rb @@ -0,0 +1,14 @@ +# Get incident integration metadata details returns "OK" response + +require "datadog_api_client" +DatadogAPIClient::V2.configure do |config| + config.unstable_operations["v2.get_incident_integration".to_sym] = true +end +api_instance = DatadogAPIClient::V2::IncidentsAPI.new + +# there is a valid "incident" in the system +INCIDENT_DATA_ID = ENV["INCIDENT_DATA_ID"] + +# the "incident" has an "incident_integration_metadata" +INCIDENT_INTEGRATION_METADATA_DATA_ID = ENV["INCIDENT_INTEGRATION_METADATA_DATA_ID"] +p api_instance.get_incident_integration(INCIDENT_DATA_ID, INCIDENT_INTEGRATION_METADATA_DATA_ID) diff --git a/examples/v2/incidents/ListIncidentIntegrations.rb b/examples/v2/incidents/ListIncidentIntegrations.rb new file mode 100644 index 000000000000..09acb907ff53 --- /dev/null +++ b/examples/v2/incidents/ListIncidentIntegrations.rb @@ -0,0 +1,8 @@ +# Get a list of an incident's integration metadata returns "OK" response + +require "datadog_api_client" +DatadogAPIClient::V2.configure do |config| + config.unstable_operations["v2.list_incident_integrations".to_sym] = true +end +api_instance = DatadogAPIClient::V2::IncidentsAPI.new +p api_instance.list_incident_integrations("incident_id") diff --git a/examples/v2/incidents/UpdateIncidentIntegration.rb b/examples/v2/incidents/UpdateIncidentIntegration.rb new file mode 100644 index 000000000000..08a8e3d02cd4 --- /dev/null +++ b/examples/v2/incidents/UpdateIncidentIntegration.rb @@ -0,0 +1,21 @@ +# Update an existing incident integration metadata returns "CREATED" response + +require "datadog_api_client" +DatadogAPIClient::V2.configure do |config| + config.unstable_operations["v2.update_incident_integration".to_sym] = true +end +api_instance = DatadogAPIClient::V2::IncidentsAPI.new + +body = DatadogAPIClient::V2::IncidentIntegrationMetadataPatchRequest.new({ + data: DatadogAPIClient::V2::IncidentIntegrationMetadataPatchData.new({ + attributes: DatadogAPIClient::V2::IncidentIntegrationMetadataAttributes.new({ + incident_id: "00000000-aaaa-0000-0000-000000000000", + integration_type: 1, + metadata: DatadogAPIClient::V2::SlackIntegrationMetadata.new({ + channels: [], + }), + }), + type: DatadogAPIClient::V2::IncidentIntegrationMetadataType::INCIDENT_INTEGRATIONS, + }), +}) +p api_instance.update_incident_integration("incident_id", "integration_metadata_id", body) diff --git a/features/scenarios_model_mapping.rb b/features/scenarios_model_mapping.rb index 7874f7c8dd8f..45da2c326d59 100644 --- a/features/scenarios_model_mapping.rb +++ b/features/scenarios_model_mapping.rb @@ -966,6 +966,26 @@ "include" => "Array", "body" => "IncidentAttachmentUpdateRequest", }, + "v2.ListIncidentIntegrations" => { + "incident_id" => "String", + }, + "v2.CreateIncidentIntegration" => { + "incident_id" => "String", + "body" => "IncidentIntegrationMetadataCreateRequest", + }, + "v2.DeleteIncidentIntegration" => { + "incident_id" => "String", + "integration_metadata_id" => "String", + }, + "v2.GetIncidentIntegration" => { + "incident_id" => "String", + "integration_metadata_id" => "String", + }, + "v2.UpdateIncidentIntegration" => { + "incident_id" => "String", + "integration_metadata_id" => "String", + "body" => "IncidentIntegrationMetadataPatchRequest", + }, "v2.CreateOpsgenieService" => { "body" => "OpsgenieServiceCreateRequest", }, diff --git a/features/v1/authentication.feature b/features/v1/authentication.feature index 34e1715d60a5..4a0d618d2484 100644 --- a/features/v1/authentication.feature +++ b/features/v1/authentication.feature @@ -23,4 +23,3 @@ Feature: Authentication Given a valid "apiKeyAuth" key in the system When the request is sent Then the response status is 200 OK - And the response "valid" is equal to true diff --git a/features/v1/dashboard_lists.feature b/features/v1/dashboard_lists.feature index 18cc15682597..a96b3f3e7f61 100644 --- a/features/v1/dashboard_lists.feature +++ b/features/v1/dashboard_lists.feature @@ -56,13 +56,11 @@ Feature: Dashboard Lists And the response "id" has the same value as "dashboard_list.id" And the response "name" has the same value as "dashboard_list.name" - @replay-only @team:DataDog/dashboards + @team:DataDog/dashboards Scenario: Get all dashboard lists returns "OK" response - Given there is a valid "dashboard_list" in the system - And new "ListDashboardLists" request + Given new "ListDashboardLists" request When the request is sent Then the response status is 200 OK - And the response "dashboard_lists[0].name" has the same value as "dashboard_list.name" @generated @skip @team:DataDog/dashboards Scenario: Update a dashboard list returns "Bad Request" response diff --git a/features/v1/dashboards.feature b/features/v1/dashboards.feature index cccd3f73b1c1..ad8859acd6c2 100644 --- a/features/v1/dashboards.feature +++ b/features/v1/dashboards.feature @@ -67,10 +67,6 @@ Feature: Dashboards And body from file "dashboard_payload.json" When the request is sent Then the response status is 200 OK - And the response "title" is equal to "{{ unique }} with Profile Metrics Query" - And the response "widgets[0].definition.requests[0].profile_metrics_query.search.query" is equal to "runtime:jvm" - And the response "widgets[0].definition.requests[0].profile_metrics_query.compute.facet" is equal to "@prof_core_cpu_cores" - And the response "widgets[0].definition.requests[0].profile_metrics_query.compute.aggregation" is equal to "sum" @team:DataDog/dashboards Scenario: Create a new dashboard with a formulas and functions change widget @@ -109,11 +105,6 @@ Feature: Dashboards And body with value {"layout_type": "ordered", "title": "{{ unique }} with QVW Percentile Aggregator", "widgets": [{"definition":{"title_size":"16","title":"","title_align":"left","precision":2,"time":{},"autoscale":true,"requests":[{"formulas":[{"formula":"query1"}],"response_format":"scalar","queries":[{"query":"p90:dist.dd.dogweb.latency{*}","data_source":"metrics","name":"query1","aggregator":"percentile"}]}],"type":"query_value"},"layout":{"y":0,"x":0,"height":2,"width":2}}]} When the request is sent Then the response status is 200 OK - And the response "title" is equal to "{{ unique }} with QVW Percentile Aggregator" - And the response "widgets[0].definition.title_size" is equal to "16" - And the response "widgets[0].definition.title_align" is equal to "left" - And the response "widgets[0].definition.requests[0].formulas[0].formula" is equal to "query1" - And the response "widgets[0].definition.requests[0].response_format" is equal to "scalar" @team:DataDog/dashboards Scenario: Create a new dashboard with a query value widget using timeseries background @@ -121,12 +112,6 @@ Feature: Dashboards And body with value {"layout_type": "ordered", "title": "{{ unique }} with QVW Timeseries Background", "widgets": [{"definition":{"title_size":"16","title":"","title_align":"left","precision":2,"time":{},"autoscale":true,"requests":[{"formulas":[{"formula":"query1"}],"response_format":"scalar","queries":[{"query":"sum:my.cool.count.metric{*}","data_source":"metrics","name":"query1","aggregator":"percentile"}]}],"type":"query_value","timeseries_background":{"type":"area","yaxis":{"include_zero":true}}},"layout":{"y":0,"x":0,"height":2,"width":2}}]} When the request is sent Then the response status is 200 OK - And the response "title" is equal to "{{ unique }} with QVW Timeseries Background" - And the response "widgets[0].definition.title_size" is equal to "16" - And the response "widgets[0].definition.title_align" is equal to "left" - And the response "widgets[0].definition.requests[0].formulas[0].formula" is equal to "query1" - And the response "widgets[0].definition.requests[0].response_format" is equal to "scalar" - And the response "widgets[0].definition.requests[0].queries[0].query" is equal to "sum:my.cool.count.metric{*}" @team:DataDog/dashboards Scenario: Create a new dashboard with alert_graph widget @@ -155,10 +140,6 @@ Feature: Dashboards And body with value {"layout_type": "ordered", "title": "{{ unique }} with Audit Logs Query", "widgets": [{"definition": {"type": "timeseries","requests": [{"response_format": "timeseries","queries": [{"search": {"query": ""},"data_source": "audit","compute": {"aggregation": "count"},"name": "query1","indexes": ["*"],"group_by": []}]}]},"layout": {"x": 2,"y": 0,"width": 4,"height": 2}}]} When the request is sent Then the response status is 200 OK - And the response "title" is equal to "{{ unique }} with Audit Logs Query" - And the response "widgets[0].definition.type" is equal to "timeseries" - And the response "widgets[0].definition.requests[0].response_format" is equal to "timeseries" - And the response "widgets[0].definition.requests[0].queries[0].data_source" is equal to "audit" @team:DataDog/dashboards Scenario: Create a new dashboard with apm dependency stats widget @@ -200,10 +181,6 @@ Feature: Dashboards And body with value {"layout_type": "ordered", "title": "{{ unique }} with list_stream widget","widgets": [{"definition": {"type": "list_stream","requests": [{"columns":[{"width":"auto","field":"timestamp"}],"query":{"data_source":"apm_issue_stream","query_string":""},"response_format":"event_list"}]}}]} When the request is sent Then the response status is 200 OK - And the response "title" is equal to "{{ unique }} with list_stream widget" - And the response "widgets[0].definition.type" is equal to "list_stream" - And the response "widgets[0].definition.requests[0].columns[0].width" is equal to "auto" - And the response "widgets[0].definition.requests[0].query.data_source" is equal to "apm_issue_stream" @team:DataDog/dashboards Scenario: Create a new dashboard with check_status widget @@ -294,10 +271,6 @@ Feature: Dashboards And body with value {"layout_type": "ordered", "title": "{{ unique }} with funnel widget","widgets": [{"definition": {"type": "funnel","requests": [{"query":{"data_source":"rum","query_string":"","steps":[]},"request_type":"funnel"}]}}]} When the request is sent Then the response status is 200 OK - And the response "title" is equal to "{{ unique }} with funnel widget" - And the response "widgets[0].definition.type" is equal to "funnel" - And the response "widgets[0].definition.requests[0].query.data_source" is equal to "rum" - And the response "widgets[0].definition.requests[0].request_type" is equal to "funnel" @team:DataDog/dashboards Scenario: Create a new dashboard with geomap widget @@ -349,8 +322,6 @@ Feature: Dashboards And body with value {"layout_type": "ordered", "title": "{{ unique }} with list_stream widget","widgets": [{"definition": {"type": "list_stream","requests": [{"columns":[{"width":"auto","field":"timestamp"}],"query":{"data_source":"apm_issue_stream","query_string":""},"response_format":"event_list"}]}}]} When the request is sent Then the response status is 200 OK - And the response "widgets[0].definition.type" is equal to "list_stream" - And the response "widgets[0].definition.requests[0].query.data_source" is equal to "apm_issue_stream" @team:DataDog/dashboards Scenario: Create a new dashboard with log_stream widget @@ -452,8 +423,6 @@ Feature: Dashboards And body with value {"layout_type": "ordered", "title": "{{ unique }} with list_stream widget","widgets": [{"definition": {"type": "list_stream","requests": [{"columns":[{"width":"auto","field":"timestamp"}],"query":{"data_source":"rum_issue_stream","query_string":""},"response_format":"event_list"}]}}]} When the request is sent Then the response status is 200 OK - And the response "widgets[0].definition.type" is equal to "list_stream" - And the response "widgets[0].definition.requests[0].response_format" is equal to "event_list" @team:DataDog/dashboards Scenario: Create a new dashboard with run-workflow widget @@ -542,9 +511,6 @@ Feature: Dashboards And body with value {"description": null, "is_read_only": false, "layout_type": "ordered", "notify_list": [], "reflow_type": "auto", "restricted_roles": [], "template_variables": [{"available_values": ["my-host", "host1", "host2"], "defaults": ["my-host"], "name": "host1", "prefix": "host"}], "title": "", "widgets": [{"definition": {"requests": {"fill": {"q": "avg:system.cpu.user{*}"}}, "type": "hostmap"}}]} When the request is sent Then the response status is 200 OK - And the response "template_variables[0].name" is equal to "host1" - And the response "template_variables[0].available_values[0]" is equal to "my-host" - And the response "template_variables[0].defaults[0]" is equal to "my-host" @team:DataDog/dashboards Scenario: Create a new dashboard with template variable defaults whose value has no length returns "Bad Request" response @@ -566,9 +532,6 @@ Feature: Dashboards And body with value {"description": null, "is_read_only": false, "layout_type": "ordered", "notify_list": [], "reflow_type": "auto", "restricted_roles": [], "template_variable_presets": [{"name": "my saved view", "template_variables": [{"name": "datacenter", "values": ["*", "my-host"]}]}], "template_variables": [{"available_values": ["my-host", "host1", "host2"], "defaults": ["my-host"], "name": "host1", "prefix": "host"}], "title": "", "widgets": [{"definition": {"requests": {"fill": {"q": "avg:system.cpu.user{*}"}}, "type": "hostmap"}}]} When the request is sent Then the response status is 200 OK - And the response "template_variable_presets[0].name" is equal to "my saved view" - And the response "template_variable_presets[0].template_variables[0].name" is equal to "datacenter" - And the response "template_variable_presets[0].template_variables[0].values[0]" is equal to "*" @team:DataDog/dashboards Scenario: Create a new dashboard with timeseries widget and formula style attributes @@ -692,15 +655,13 @@ Feature: Dashboards Then the response status is 200 OK And the response "author_name" is equal to "Frog Account" - @replay-only @team:DataDog/dashboards + @team:DataDog/dashboards Scenario: Get all dashboards returns "OK" response Given new "ListDashboards" request And there is a valid "dashboard" in the system And request contains "filter[shared]" parameter with value false When the request is sent Then the response status is 200 OK - And the response "dashboards[0].title" has the same value as "dashboard.title" - And the response "dashboards[0].id" has the same value as "dashboard.id" @replay-only @team:DataDog/dashboards Scenario: Get deleted dashboards returns "OK" response @@ -710,8 +671,6 @@ Feature: Dashboards And request contains "filter[deleted]" parameter with value true When the request is sent Then the response status is 200 OK - And the response "dashboards[0].title" has the same value as "dashboard.title" - And the response "dashboards[0].id" has the same value as "dashboard.id" @generated @skip @team:DataDog/dashboards Scenario: Restore deleted dashboards returns "Bad Request" response diff --git a/features/v1/downtimes.feature b/features/v1/downtimes.feature index a6037b29279b..4676422f5388 100644 --- a/features/v1/downtimes.feature +++ b/features/v1/downtimes.feature @@ -99,10 +99,6 @@ Feature: Downtimes And body from file "downtime_recurrence_payload_once_a_year.json" When the request is sent Then the response status is 200 OK - And the response "message" is equal to "{{ unique }}" - And the response "monitor_tags[0]" is equal to "tag0" - And the response "recurrence.period" is equal to 1 - And the response "recurrence.type" is equal to "years" @team:DataDog/monitor-app Scenario: Schedule a downtime returns "Bad Request" response @@ -126,9 +122,6 @@ Feature: Downtimes And body from file "downtime_recurrence_payload_until_date.json" When the request is sent Then the response status is 200 OK - And the response "message" is equal to "{{ unique }}" - And the response "recurrence.period" is equal to 1 - And the response "recurrence.until_date" is equal to {{ timestamp("now + 21d") }} @team:DataDog/monitor-app Scenario: Schedule a downtime with invalid type hours @@ -157,9 +150,6 @@ Feature: Downtimes And body from file "downtime_recurrence_payload_until_occurrences.json" When the request is sent Then the response status is 200 OK - And the response "message" is equal to "{{ unique }}" - And the response "recurrence.period" is equal to 1 - And the response "recurrence.until_occurrences" is equal to 3 @team:DataDog/monitor-app Scenario: Schedule a monitor downtime returns "OK" response diff --git a/features/v1/ip_ranges.feature b/features/v1/ip_ranges.feature index 067c9b6215eb..c483812c317e 100644 --- a/features/v1/ip_ranges.feature +++ b/features/v1/ip_ranges.feature @@ -8,5 +8,3 @@ Feature: IP Ranges And new "GetIPRanges" request When the request is sent Then the response status is 200 OK - And the response "agents.prefixes_ipv4" has length 1 - And the response "agents.prefixes_ipv6" has length 1 diff --git a/features/v1/metrics.feature b/features/v1/metrics.feature index 578f073ad101..c4ba8c3c4581 100644 --- a/features/v1/metrics.feature +++ b/features/v1/metrics.feature @@ -91,8 +91,6 @@ Feature: Metrics And request contains "query" parameter with value "system.cpu.idle{*}" When the request is sent Then the response status is 200 OK - And the response "status" is equal to "ok" - And the response "query" is equal to "system.cpu.idle{*}" @generated @skip @team:DataDog/metrics-intake @team:DataDog/metrics-query Scenario: Search metrics returns "Bad Request" response diff --git a/features/v1/monitors.feature b/features/v1/monitors.feature index 129aae472e0d..bb1e5e7a84db 100644 --- a/features/v1/monitors.feature +++ b/features/v1/monitors.feature @@ -31,7 +31,6 @@ Feature: Monitors And request contains "monitor_ids" parameter with value [{{monitor.id}}] When the request is sent Then the response status is 200 OK - And the response "data.ok[0]" has the same value as "monitor.id" @team:DataDog/monitor-app Scenario: Create a RUM formula and functions monitor returns "OK" response @@ -39,8 +38,6 @@ Feature: Monitors And body with value {"name": "{{ unique }}","type": "rum alert","query": "formula(\"query2 / query1 * 100\").last(\"15m\") >= 0.8","message": "some message Notify: @hipchat-channel", "tags": ["test:{{ unique_lower_alnum }}", "env:ci"],"priority": 3,"options":{"thresholds":{"critical":0.8},"variables":[{"data_source": "rum","name": "query2","search": {"query": ""},"indexes": ["*"],"compute": {"aggregation": "count"},"group_by": []}, {"data_source": "rum","name": "query1","search": {"query": "status:error"},"indexes": ["*"],"compute": {"aggregation": "count"},"group_by": []}]}} When the request is sent Then the response status is 200 OK - And the response "name" is equal to "{{ unique }}" - And the response "type" is equal to "rum alert" @team:DataDog/monitor-app Scenario: Create a ci-pipelines formula and functions monitor returns "OK" response @@ -48,9 +45,6 @@ Feature: Monitors And body with value {"name": "{{ unique }}","type": "ci-pipelines alert","query": "formula(\"query1 / query2 * 100\").last(\"15m\") >= 0.8","message": "some message Notify: @hipchat-channel","tags": ["test:{{ unique_lower_alnum }}", "env:ci"],"priority": 3,"options": {"thresholds": {"critical": 0.8},"variables": [{"data_source": "ci_pipelines","name": "query1","search": {"query": "@ci.status:error"},"indexes": ["*"],"compute": {"aggregation": "count"},"group_by": []},{"data_source": "ci_pipelines","name": "query2","search": {"query": ""},"indexes": ["*"],"compute": {"aggregation": "count"},"group_by": []}]}} When the request is sent Then the response status is 200 OK - And the response "name" is equal to "{{ unique }}" - And the response "type" is equal to "ci-pipelines alert" - And the response "query" is equal to "formula(\"query1 / query2 * 100\").last(\"15m\") >= 0.8" @team:DataDog/monitor-app Scenario: Create a ci-pipelines monitor returns "OK" response @@ -58,9 +52,6 @@ Feature: Monitors And body with value {"name": "{{ unique }}","type": "ci-pipelines alert","query": "ci-pipelines(\"ci_level:pipeline @git.branch:staging* @ci.status:error\").rollup(\"count\").by(\"@git.branch,@ci.pipeline.name\").last(\"5m\") >= 1","message": "some message Notify: @hipchat-channel", "tags": ["test:{{ unique_lower_alnum }}", "env:ci"],"priority": 3,"options":{"thresholds":{"critical":1}}} When the request is sent Then the response status is 200 OK - And the response "name" is equal to "{{ unique }}" - And the response "type" is equal to "ci-pipelines alert" - And the response "query" is equal to "ci-pipelines(\"ci_level:pipeline @git.branch:staging* @ci.status:error\").rollup(\"count\").by(\"@git.branch,@ci.pipeline.name\").last(\"5m\") >= 1" @team:DataDog/monitor-app Scenario: Create a ci-tests formula and functions monitor returns "OK" response @@ -68,9 +59,6 @@ Feature: Monitors And body with value {"name": "{{ unique }}","type": "ci-tests alert","query": "formula(\"query1 / query2 * 100\").last(\"15m\") >= 0.8","message": "some message Notify: @hipchat-channel","tags": ["test:{{ unique_lower_alnum }}", "env:ci"],"priority": 3,"options": {"thresholds": {"critical": 0.8},"variables": [{"data_source": "ci_tests","name": "query1","search": {"query": "@test.status:fail"},"indexes": ["*"],"compute": {"aggregation": "count"},"group_by": []},{"data_source": "ci_tests","name": "query2","search": {"query": ""},"indexes": ["*"],"compute": {"aggregation": "count"},"group_by": []}]}} When the request is sent Then the response status is 200 OK - And the response "name" is equal to "{{ unique }}" - And the response "type" is equal to "ci-tests alert" - And the response "query" is equal to "formula(\"query1 / query2 * 100\").last(\"15m\") >= 0.8" @team:DataDog/monitor-app Scenario: Create a ci-tests monitor returns "OK" response @@ -78,9 +66,6 @@ Feature: Monitors And body with value {"name": "{{ unique }}","type": "ci-tests alert","query": "ci-tests(\"type:test @git.branch:staging* @test.status:fail\").rollup(\"count\").by(\"@test.name\").last(\"5m\") >= 1","message": "some message Notify: @hipchat-channel", "tags": ["test:{{ unique_lower_alnum }}", "env:ci"],"priority": 3,"options":{"thresholds":{"critical":1}}} When the request is sent Then the response status is 200 OK - And the response "name" is equal to "{{ unique }}" - And the response "type" is equal to "ci-tests alert" - And the response "query" is equal to "ci-tests(\"type:test @git.branch:staging* @test.status:fail\").rollup(\"count\").by(\"@test.name\").last(\"5m\") >= 1" @team:DataDog/monitor-app Scenario: Create a metric monitor returns "OK" response @@ -88,8 +73,6 @@ Feature: Monitors And body with value {"name": "{{ unique }}", "type": "metric alert", "query": "avg(current_1mo):avg:system.load.5{*} > 0.5", "message": "some message Notify: @hipchat-channel", "options":{"thresholds":{"critical":0.5}, "scheduling_options":{"evaluation_window":{"day_starts":"04:00", "month_starts":1}}}} When the request is sent Then the response status is 200 OK - And the response "name" is equal to "{{ unique }}" - And the response "query" is equal to "avg(current_1mo):avg:system.load.5{*} > 0.5" @team:DataDog/monitor-app Scenario: Create a monitor returns "Bad Request" response @@ -105,9 +88,6 @@ Feature: Monitors And body with value {"name": "{{ unique }}", "type": "log alert", "query": "logs(\"service:foo AND type:error\").index(\"main\").rollup(\"count\").by(\"source\").last(\"5m\") > 2", "message": "some message Notify: @hipchat-channel", "tags": ["test:{{ unique_lower_alnum }}", "env:ci"], "priority": 3, "restricted_roles": ["{{ role.data.id }}"]} When the request is sent Then the response status is 200 OK - And the response "name" is equal to "{{ unique }}" - And the response "type" is equal to "log alert" - And the response "query" is equal to "logs(\"service:foo AND type:error\").index(\"main\").rollup(\"count\").by(\"source\").last(\"5m\") > 2" @team:DataDog/monitor-app Scenario: Create an Error Tracking monitor returns "OK" response @@ -115,9 +95,6 @@ Feature: Monitors And body from file "monitor_error_tracking_alert_payload.json" When the request is sent Then the response status is 200 OK - And the response "name" is equal to "{{ unique }}" - And the response "type" is equal to "error-tracking alert" - And the response "query" is equal to "error-tracking-rum(\"service:foo AND @error.source:source\").rollup(\"count\").by(\"@issue.id\").last(\"1h\") >= 1" @generated @skip @team:DataDog/monitor-app Scenario: Delete a monitor returns "Bad Request" response @@ -140,7 +117,6 @@ Feature: Monitors And request contains "monitor_id" parameter from "monitor.id" When the request is sent Then the response status is 200 OK - And the response "deleted_monitor_id" has the same value as "monitor.id" @generated @skip @team:DataDog/monitor-app Scenario: Edit a monitor returns "Bad Request" response @@ -235,7 +211,6 @@ Feature: Monitors Given new "SearchMonitorGroups" request When the request is sent Then the response status is 200 OK - And the response "metadata.page" is equal to 0 @team:DataDog/monitor-app Scenario: Monitors search returns "Bad Request" response @@ -249,7 +224,6 @@ Feature: Monitors Given new "SearchMonitors" request When the request is sent Then the response status is 200 OK - And the response "metadata.page" is equal to 0 @team:DataDog/monitor-app Scenario: Validate a monitor returns "Invalid JSON" response diff --git a/features/v1/notebooks.feature b/features/v1/notebooks.feature index aa45080db6bf..bc6401be55d4 100644 --- a/features/v1/notebooks.feature +++ b/features/v1/notebooks.feature @@ -23,9 +23,6 @@ Feature: Notebooks And body with value {"data": {"attributes": {"cells": [{"attributes": {"definition": {"text": "## Some test markdown\n\n```js\nvar x, y;\nx = 5;\ny = 6;\n```", "type": "markdown"}}, "type": "notebook_cells"}, {"attributes": {"definition": {"requests": [{"display_type": "line", "q": "avg:system.load.1{*}", "style": {"line_type": "solid", "line_width": "normal", "palette": "dog_classic"}}], "show_legend": true, "type": "timeseries", "yaxis": {"scale": "linear"}}, "graph_size": "m", "split_by": {"keys": [], "tags": []}, "time": null}, "type": "notebook_cells"}], "name": "{{ unique }}", "status": "published", "time": {"live_span": "1h"}}, "type": "notebooks"}} When the request is sent Then the response status is 200 OK - And the response "data.type" is equal to "notebooks" - And the response "data.attributes.name" is equal to "{{ unique }}" - And the response "data.attributes.cells[0].attributes.definition.text" is equal to "## Some test markdown\n\n```js\nvar x, y;\nx = 5;\ny = 6;\n```" @skip @team:DataDog/notebooks Scenario: Delete a notebook returns "Bad Request" response @@ -70,8 +67,6 @@ Feature: Notebooks And request contains "notebook_id" parameter from "notebook.data.id" When the request is sent Then the response status is 200 OK - And the response "data.attributes.name" has the same value as "notebook.data.attributes.name" - And the response "data.attributes.cells[0].attributes.definition.type" has the same value as "notebook.data.attributes.cells[0].attributes.definition.type" @generated @skip @team:DataDog/notebooks Scenario: Get all notebooks returns "Bad Request" response @@ -117,5 +112,3 @@ Feature: Notebooks And body with value {"data": {"attributes": {"cells": [{"attributes": {"definition": {"text": "## Some test markdown\n\n```js\nvar x, y;\nx = 5;\ny = 6;\n```", "type": "markdown"}}, "type": "notebook_cells"}, {"attributes": {"definition": {"requests": [{"display_type": "line", "q": "avg:system.load.1{*}", "style": {"line_type": "solid", "line_width": "normal", "palette": "dog_classic"}}], "show_legend": true, "type": "timeseries", "yaxis": {"scale": "linear"}}, "graph_size": "m", "split_by": {"keys": [], "tags": []}, "time": null}, "type": "notebook_cells"}], "name": "{{ unique }}-updated", "status": "published", "time": {"live_span": "1h"}}, "type": "notebooks"}} When the request is sent Then the response status is 200 OK - And the response "data.attributes.name" is equal to "{{ unique }}-updated" - And the response "data.attributes.status" is equal to "published" diff --git a/features/v1/security_monitoring.feature b/features/v1/security_monitoring.feature index d77c67f9b8f3..4dbba8179a69 100644 --- a/features/v1/security_monitoring.feature +++ b/features/v1/security_monitoring.feature @@ -30,7 +30,6 @@ Feature: Security Monitoring And body with value {"incident_id": 2609} When the request is sent Then the response status is 200 OK - And the response "status" is equal to "done" @generated @skip @team:DataDog/k9-cloud-security-platform Scenario: Change the triage state of a security signal returns "Bad Request" response @@ -55,7 +54,6 @@ Feature: Security Monitoring And body with value {"archiveReason": "none", "state": "open"} When the request is sent Then the response status is 200 OK - And the response "status" is equal to "done" @generated @skip @team:DataDog/k9-cloud-security-platform Scenario: Modify the triage assignee of a security signal returns "Bad Request" response @@ -80,4 +78,3 @@ Feature: Security Monitoring And body with value {"assignee": "773b045d-ccf8-4808-bd3b-955ef6a8c940"} When the request is sent Then the response status is 200 OK - And the response "status" is equal to "done" diff --git a/features/v1/service_level_objective_corrections.feature b/features/v1/service_level_objective_corrections.feature index 8d7974996f69..02f38e54b679 100644 --- a/features/v1/service_level_objective_corrections.feature +++ b/features/v1/service_level_objective_corrections.feature @@ -26,9 +26,6 @@ Feature: Service Level Objective Corrections And body with value {"data": {"attributes": {"category": "Scheduled Maintenance", "description": "{{ unique }}", "end": {{ timestamp("now + 1h") }}, "slo_id": "{{ slo.data[0].id }}", "start": {{ timestamp("now") }}, "timezone": "UTC"}, "type": "correction"}} When the request is sent Then the response status is 200 OK - And the response "data.type" is equal to "correction" - And the response "data.attributes.category" is equal to "Scheduled Maintenance" - And the response "data.attributes.slo_id" has the same value as "slo.data[0].id" @skip @team:DataDog/slo-app Scenario: Create an SLO correction returns "SLO Not Found" response @@ -44,8 +41,6 @@ Feature: Service Level Objective Corrections And body with value {"data": {"attributes": {"category": "Scheduled Maintenance", "description": "{{ unique }}", "slo_id": "{{ slo.data[0].id }}", "start": {{ timestamp("now") }}, "duration": 3600, "rrule": "FREQ=DAILY;INTERVAL=10;COUNT=5", "timezone": "UTC"}, "type": "correction"}} When the request is sent Then the response status is 200 OK - And the response "data.type" is equal to "correction" - And the response "data.attributes.rrule" is equal to "FREQ=DAILY;INTERVAL=10;COUNT=5" @generated @skip @team:DataDog/slo-app Scenario: Delete an SLO correction returns "Not found" response @@ -87,8 +82,6 @@ Feature: Service Level Objective Corrections And request contains "slo_correction_id" parameter from "correction.data.id" When the request is sent Then the response status is 200 OK - And the response "data.type" has the same value as "correction.data.type" - And the response "data.attributes.category" has the same value as "correction.data.attributes.category" @skip @team:DataDog/slo-app Scenario: Update an SLO correction returns "Bad Request" response diff --git a/features/v1/service_level_objectives.feature b/features/v1/service_level_objectives.feature index 7bb41e4825a9..74bb481ab4db 100644 --- a/features/v1/service_level_objectives.feature +++ b/features/v1/service_level_objectives.feature @@ -86,7 +86,6 @@ Feature: Service Level Objectives And request contains "slo_id" parameter from "slo.data[0].id" When the request is sent Then the response status is 200 OK - And the response "data[0]" has the same value as "slo.data[0].id" @generated @skip @team:DataDog/slo-app Scenario: Get Corrections For an SLO returns "Bad Request" response diff --git a/features/v1/snapshots.feature b/features/v1/snapshots.feature index 9e86ed6bb075..6407715c07bc 100644 --- a/features/v1/snapshots.feature +++ b/features/v1/snapshots.feature @@ -25,4 +25,3 @@ Feature: Snapshots And request contains "width" parameter with value 600 When the request is sent Then the response status is 200 OK - And the response "metric_query" is equal to "avg:system.load.1{*}" diff --git a/features/v1/synthetics.feature b/features/v1/synthetics.feature index 1430b8edde8c..237b41626f71 100644 --- a/features/v1/synthetics.feature +++ b/features/v1/synthetics.feature @@ -105,8 +105,6 @@ Feature: Synthetics And body with value {"description": "Test {{ unique }} description", "metadata": {"restricted_roles": ["{{ role.data.id }}"]}, "name": "{{ unique }}", "tags": ["test:{{ unique_lower_alnum }}"]} When the request is sent Then the response status is 200 OK - And the response "private_location.name" is equal to "{{ unique }}" - And the response "private_location.metadata.restricted_roles[0]" has the same value as "role.data.id" @generated @skip @team:DataDog/synthetics-app Scenario: Create a private location returns "Private locations are not activated for the user" response diff --git a/features/v2/given.json b/features/v2/given.json index a15071102821..17620e9575e8 100644 --- a/features/v2/given.json +++ b/features/v2/given.json @@ -95,6 +95,22 @@ "tag": "Incidents", "operationId": "UpdateIncidentAttachments" }, + { + "parameters": [ + { + "name": "incident_id", + "source": "incident.data.id" + }, + { + "name": "body", + "value": "{\n \"data\": {\n \"attributes\": {\n \"integration_type\": 1,\n \"incident_id\": \"{{ incident.data.id }}\",\n \"status\": 2,\n \"metadata\": {\n \"channels\": [\n {\n \"channel_id\": \"C0123456789\",\n \"team_id\": \"T01234567\",\n \"channel_name\": \"#example-channel-name\",\n \"redirect_url\": \"https://slack.com/app_redirect?channel=C0123456789&team=T01234567\"\n }\n ]\n }\n },\n \"type\": \"incident_integrations\"\n }\n}" + } + ], + "step": "the \"incident\" has an \"incident_integration_metadata\"", + "key": "incident_integration_metadata", + "tag": "Incidents", + "operationId": "CreateIncidentIntegration" + }, { "parameters": [ { diff --git a/features/v2/incidents.feature b/features/v2/incidents.feature index f2026fd4ca5d..5cc9ac24f2e3 100644 --- a/features/v2/incidents.feature +++ b/features/v2/incidents.feature @@ -29,6 +29,34 @@ Feature: Incidents Then the response status is 200 OK And the response "data" has length 1 + @generated @skip @team:DataDog/incident-app + Scenario: Create an incident integration metadata returns "Bad Request" response + Given operation "CreateIncidentIntegration" enabled + And new "CreateIncidentIntegration" request + And request contains "incident_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"incident_id": "00000000-aaaa-0000-0000-000000000000", "integration_type": 1, "metadata": {"channels": []}}, "type": "incident_integrations"}} + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/incident-app + Scenario: Create an incident integration metadata returns "CREATED" response + Given operation "CreateIncidentIntegration" enabled + And new "CreateIncidentIntegration" request + And there is a valid "incident" in the system + And request contains "incident_id" parameter from "incident.data.id" + And body with value {"data": {"attributes": {"incident_id": "00000000-aaaa-0000-0000-000000000000", "integration_type": 1, "metadata": {"channels": []}}, "type": "incident_integrations"}} + When the request is sent + Then the response status is 201 CREATED + + @generated @skip @team:DataDog/incident-app + Scenario: Create an incident integration metadata returns "Not Found" response + Given operation "CreateIncidentIntegration" enabled + And new "CreateIncidentIntegration" request + And request contains "incident_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"incident_id": "00000000-aaaa-0000-0000-000000000000", "integration_type": 1, "metadata": {"channels": []}}, "type": "incident_integrations"}} + When the request is sent + Then the response status is 404 Not Found + @generated @skip @team:DataDog/incident-app Scenario: Create an incident returns "Bad Request" response Given operation "CreateIncident" enabled @@ -107,6 +135,59 @@ Feature: Incidents When the request is sent Then the response status is 204 OK + @generated @skip @team:DataDog/incident-app + Scenario: Delete an incident integration metadata returns "Bad Request" response + Given operation "DeleteIncidentIntegration" enabled + And new "DeleteIncidentIntegration" request + And request contains "incident_id" parameter from "REPLACE.ME" + And request contains "integration_metadata_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/incident-app + Scenario: Delete an incident integration metadata returns "Not Found" response + Given operation "DeleteIncidentIntegration" enabled + And new "DeleteIncidentIntegration" request + And request contains "incident_id" parameter from "REPLACE.ME" + And request contains "integration_metadata_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/incident-app + Scenario: Delete an incident integration metadata returns "OK" response + Given operation "DeleteIncidentIntegration" enabled + And new "DeleteIncidentIntegration" request + And there is a valid "incident" in the system + And request contains "incident_id" parameter from "incident.data.id" + And the "incident" has an "incident_integration_metadata" + And request contains "integration_metadata_id" parameter from "incident_integration_metadata.data.id" + When the request is sent + Then the response status is 204 OK + + @generated @skip @team:DataDog/incident-app + Scenario: Get a list of an incident's integration metadata returns "Bad Request" response + Given operation "ListIncidentIntegrations" enabled + And new "ListIncidentIntegrations" request + And request contains "incident_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/incident-app + Scenario: Get a list of an incident's integration metadata returns "Not Found" response + Given operation "ListIncidentIntegrations" enabled + And new "ListIncidentIntegrations" request + And request contains "incident_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/incident-app + Scenario: Get a list of an incident's integration metadata returns "OK" response + Given operation "ListIncidentIntegrations" enabled + And new "ListIncidentIntegrations" request + And request contains "incident_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/incident-app Scenario: Get a list of attachments returns "Bad Request" response Given operation "ListIncidentAttachments" enabled @@ -173,6 +254,35 @@ Feature: Incidents Then the response status is 200 OK And the response "data" has length 1 + @generated @skip @team:DataDog/incident-app + Scenario: Get incident integration metadata details returns "Bad Request" response + Given operation "GetIncidentIntegration" enabled + And new "GetIncidentIntegration" request + And request contains "incident_id" parameter from "REPLACE.ME" + And request contains "integration_metadata_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/incident-app + Scenario: Get incident integration metadata details returns "Not Found" response + Given operation "GetIncidentIntegration" enabled + And new "GetIncidentIntegration" request + And request contains "incident_id" parameter from "REPLACE.ME" + And request contains "integration_metadata_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/incident-app + Scenario: Get incident integration metadata details returns "OK" response + Given operation "GetIncidentIntegration" enabled + And new "GetIncidentIntegration" request + And there is a valid "incident" in the system + And request contains "incident_id" parameter from "incident.data.id" + And the "incident" has an "incident_integration_metadata" + And request contains "integration_metadata_id" parameter from "incident_integration_metadata.data.id" + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/incident-app Scenario: Get the details of an incident returns "Bad Request" response Given operation "GetIncident" enabled @@ -235,6 +345,36 @@ Feature: Incidents When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/incident-app + Scenario: Update an existing incident integration metadata returns "Bad Request" response + Given operation "UpdateIncidentIntegration" enabled + And new "UpdateIncidentIntegration" request + And request contains "incident_id" parameter from "REPLACE.ME" + And request contains "integration_metadata_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"incident_id": "00000000-aaaa-0000-0000-000000000000", "integration_type": 1, "metadata": {"channels": []}}, "type": "incident_integrations"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/incident-app + Scenario: Update an existing incident integration metadata returns "CREATED" response + Given operation "UpdateIncidentIntegration" enabled + And new "UpdateIncidentIntegration" request + And request contains "incident_id" parameter from "REPLACE.ME" + And request contains "integration_metadata_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"incident_id": "00000000-aaaa-0000-0000-000000000000", "integration_type": 1, "metadata": {"channels": []}}, "type": "incident_integrations"}} + When the request is sent + Then the response status is 200 CREATED + + @generated @skip @team:DataDog/incident-app + Scenario: Update an existing incident integration metadata returns "Not Found" response + Given operation "UpdateIncidentIntegration" enabled + And new "UpdateIncidentIntegration" request + And request contains "incident_id" parameter from "REPLACE.ME" + And request contains "integration_metadata_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"incident_id": "00000000-aaaa-0000-0000-000000000000", "integration_type": 1, "metadata": {"channels": []}}, "type": "incident_integrations"}} + When the request is sent + Then the response status is 404 Not Found + @generated @skip @team:DataDog/incident-app Scenario: Update an existing incident returns "Bad Request" response Given operation "UpdateIncident" enabled diff --git a/features/v2/undo.json b/features/v2/undo.json index e4a5021518d4..2ae185f7f21b 100644 --- a/features/v2/undo.json +++ b/features/v2/undo.json @@ -273,6 +273,47 @@ "type": "idempotent" } }, + "ListIncidentIntegrations": { + "tag": "Incidents", + "undo": { + "type": "safe" + } + }, + "CreateIncidentIntegration": { + "tag": "Incidents", + "undo": { + "operationId": "DeleteIncidentIntegration", + "parameters": [ + { + "name": "incident_id", + "source": "data.attributes.incident_id" + }, + { + "name": "integration_metadata_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "DeleteIncidentIntegration": { + "tag": "Incidents", + "undo": { + "type": "idempotent" + } + }, + "GetIncidentIntegration": { + "tag": "Incidents", + "undo": { + "type": "safe" + } + }, + "UpdateIncidentIntegration": { + "tag": "Incidents", + "undo": { + "type": "idempotent" + } + }, "ListOpsgenieServices": { "tag": "Opsgenie Integration", "undo": { diff --git a/lib/datadog_api_client/configuration.rb b/lib/datadog_api_client/configuration.rb index 079a30b24c18..a344beec6aa9 100644 --- a/lib/datadog_api_client/configuration.rb +++ b/lib/datadog_api_client/configuration.rb @@ -178,13 +178,18 @@ def initialize "v2.list_events": false, "v2.search_events": false, "v2.create_incident": false, + "v2.create_incident_integration": false, "v2.delete_incident": false, + "v2.delete_incident_integration": false, "v2.get_incident": false, + "v2.get_incident_integration": false, "v2.list_incident_attachments": false, + "v2.list_incident_integrations": false, "v2.list_incidents": false, "v2.search_incidents": false, "v2.update_incident": false, "v2.update_incident_attachments": false, + "v2.update_incident_integration": false, "v2.query_scalar_data": false, "v2.query_timeseries_data": false, "v2.create_incident_service": false, diff --git a/lib/datadog_api_client/inflector.rb b/lib/datadog_api_client/inflector.rb index 2814758400d9..2076612f207b 100644 --- a/lib/datadog_api_client/inflector.rb +++ b/lib/datadog_api_client/inflector.rb @@ -1030,6 +1030,18 @@ def overrides "v2.incident_field_attributes_single_value" => "IncidentFieldAttributesSingleValue", "v2.incident_field_attributes_single_value_type" => "IncidentFieldAttributesSingleValueType", "v2.incident_field_attributes_value_type" => "IncidentFieldAttributesValueType", + "v2.incident_integration_metadata_attributes" => "IncidentIntegrationMetadataAttributes", + "v2.incident_integration_metadata_create_data" => "IncidentIntegrationMetadataCreateData", + "v2.incident_integration_metadata_create_request" => "IncidentIntegrationMetadataCreateRequest", + "v2.incident_integration_metadata_list_response" => "IncidentIntegrationMetadataListResponse", + "v2.incident_integration_metadata_metadata" => "IncidentIntegrationMetadataMetadata", + "v2.incident_integration_metadata_patch_data" => "IncidentIntegrationMetadataPatchData", + "v2.incident_integration_metadata_patch_request" => "IncidentIntegrationMetadataPatchRequest", + "v2.incident_integration_metadata_response" => "IncidentIntegrationMetadataResponse", + "v2.incident_integration_metadata_response_data" => "IncidentIntegrationMetadataResponseData", + "v2.incident_integration_metadata_response_included_item" => "IncidentIntegrationMetadataResponseIncludedItem", + "v2.incident_integration_metadata_response_meta" => "IncidentIntegrationMetadataResponseMeta", + "v2.incident_integration_metadata_response_meta_pagination" => "IncidentIntegrationMetadataResponseMetaPagination", "v2.incident_integration_metadata_type" => "IncidentIntegrationMetadataType", "v2.incident_notification_handle" => "IncidentNotificationHandle", "v2.incident_postmortem_type" => "IncidentPostmortemType", @@ -1099,6 +1111,8 @@ def overrides "v2.ip_allowlist_response" => "IPAllowlistResponse", "v2.ip_allowlist_type" => "IPAllowlistType", "v2.ip_allowlist_update_request" => "IPAllowlistUpdateRequest", + "v2.jira_integration_metadata" => "JiraIntegrationMetadata", + "v2.jira_integration_metadata_issues_item" => "JiraIntegrationMetadataIssuesItem", "v2.list_application_keys_response" => "ListApplicationKeysResponse", "v2.log" => "Log", "v2.log_attributes" => "LogAttributes", @@ -1559,6 +1573,8 @@ def overrides "v2.service_definition_v2_slack" => "ServiceDefinitionV2Slack", "v2.service_definition_v2_slack_type" => "ServiceDefinitionV2SlackType", "v2.service_definition_v2_version" => "ServiceDefinitionV2Version", + "v2.slack_integration_metadata" => "SlackIntegrationMetadata", + "v2.slack_integration_metadata_channel_item" => "SlackIntegrationMetadataChannelItem", "v2.timeseries_formula_query_request" => "TimeseriesFormulaQueryRequest", "v2.timeseries_formula_query_response" => "TimeseriesFormulaQueryResponse", "v2.timeseries_formula_request" => "TimeseriesFormulaRequest", diff --git a/lib/datadog_api_client/v1/api/usage_metering_api.rb b/lib/datadog_api_client/v1/api/usage_metering_api.rb index 2ddcf6a36cca..5715fe4f1b5c 100644 --- a/lib/datadog_api_client/v1/api/usage_metering_api.rb +++ b/lib/datadog_api_client/v1/api/usage_metering_api.rb @@ -152,7 +152,7 @@ def get_hourly_usage_attribution_with_http_info(start_hr, usage_type, opts = {}) fail ArgumentError, "Missing the required parameter 'usage_type' when calling UsageMeteringAPI.get_hourly_usage_attribution" end # verify enum value - allowable_values = ['api_usage', 'apm_fargate_usage', 'apm_host_usage', 'appsec_fargate_usage', 'appsec_usage', 'browser_usage', 'container_excl_agent_usage', 'container_usage', 'cspm_containers_usage', 'cspm_hosts_usage', 'custom_timeseries_usage', 'cws_containers_usage', 'cws_hosts_usage', 'dbm_hosts_usage', 'dbm_queries_usage', 'estimated_indexed_logs_usage', 'estimated_ingested_logs_usage', 'estimated_indexed_spans_usage', 'estimated_ingested_spans_usage', 'fargate_usage', 'functions_usage', 'infra_host_usage', 'invocations_usage', 'npm_host_usage', 'profiled_container_usage', 'profiled_fargate_usage', 'profiled_host_usage', 'snmp_usage', 'estimated_rum_sessions_usage'] + allowable_values = ['api_usage', 'apm_fargate_usage', 'apm_host_usage', 'appsec_fargate_usage', 'appsec_usage', 'browser_usage', 'container_excl_agent_usage', 'container_usage', 'cspm_containers_usage', 'cspm_hosts_usage', 'custom_timeseries_usage', 'cws_containers_usage', 'cws_hosts_usage', 'dbm_hosts_usage', 'dbm_queries_usage', 'estimated_indexed_logs_usage', 'estimated_ingested_logs_usage', 'estimated_indexed_spans_usage', 'estimated_ingested_spans_usage', 'fargate_usage', 'functions_usage', 'infra_host_usage', 'invocations_usage', 'npm_host_usage', 'profiled_container_usage', 'profiled_host_usage', 'snmp_usage', 'estimated_rum_sessions_usage'] if @api_client.config.client_side_validation && !allowable_values.include?(usage_type) fail ArgumentError, "invalid value for \"usage_type\", must be one of #{allowable_values}" end @@ -472,7 +472,7 @@ def get_monthly_usage_attribution_with_http_info(start_month, fields, opts = {}) fail ArgumentError, "Missing the required parameter 'fields' when calling UsageMeteringAPI.get_monthly_usage_attribution" end # verify enum value - allowable_values = ['api_usage', 'api_percentage', 'apm_fargate_usage', 'apm_fargate_percentage', 'appsec_fargate_usage', 'appsec_fargate_percentage', 'apm_host_usage', 'apm_host_percentage', 'appsec_usage', 'appsec_percentage', 'browser_usage', 'browser_percentage', 'container_excl_agent_usage', 'container_excl_agent_percentage', 'container_usage', 'container_percentage', 'cspm_containers_percentage', 'cspm_containers_usage', 'cspm_hosts_percentage', 'cspm_hosts_usage', 'custom_timeseries_usage', 'custom_timeseries_percentage', 'cws_containers_percentage', 'cws_containers_usage', 'cws_hosts_percentage', 'cws_hosts_usage', 'dbm_hosts_percentage', 'dbm_hosts_usage', 'dbm_queries_percentage', 'dbm_queries_usage', 'estimated_indexed_logs_usage', 'estimated_indexed_logs_percentage', 'estimated_ingested_logs_usage', 'estimated_ingested_logs_percentage', 'estimated_indexed_spans_usage', 'estimated_indexed_spans_percentage', 'estimated_ingested_spans_usage', 'estimated_ingested_spans_percentage', 'fargate_usage', 'fargate_percentage', 'functions_usage', 'functions_percentage', 'infra_host_usage', 'infra_host_percentage', 'invocations_usage', 'invocations_percentage', 'npm_host_usage', 'npm_host_percentage', 'profiled_container_usage', 'profiled_container_percentage', 'profiled_fargate_usage', 'profiled_fargate_percentage', 'profiled_host_usage', 'profiled_host_percentage', 'snmp_usage', 'snmp_percentage', 'estimated_rum_sessions_usage', 'estimated_rum_sessions_percentage', '*'] + allowable_values = ['api_usage', 'api_percentage', 'apm_fargate_usage', 'apm_fargate_percentage', 'appsec_fargate_usage', 'appsec_fargate_percentage', 'apm_host_usage', 'apm_host_percentage', 'appsec_usage', 'appsec_percentage', 'browser_usage', 'browser_percentage', 'container_excl_agent_usage', 'container_excl_agent_percentage', 'container_usage', 'container_percentage', 'cspm_containers_percentage', 'cspm_containers_usage', 'cspm_hosts_percentage', 'cspm_hosts_usage', 'custom_timeseries_usage', 'custom_timeseries_percentage', 'cws_containers_percentage', 'cws_containers_usage', 'cws_hosts_percentage', 'cws_hosts_usage', 'dbm_hosts_percentage', 'dbm_hosts_usage', 'dbm_queries_percentage', 'dbm_queries_usage', 'estimated_indexed_logs_usage', 'estimated_indexed_logs_percentage', 'estimated_ingested_logs_usage', 'estimated_ingested_logs_percentage', 'estimated_indexed_spans_usage', 'estimated_indexed_spans_percentage', 'estimated_ingested_spans_usage', 'estimated_ingested_spans_percentage', 'fargate_usage', 'fargate_percentage', 'functions_usage', 'functions_percentage', 'infra_host_usage', 'infra_host_percentage', 'invocations_usage', 'invocations_percentage', 'npm_host_usage', 'npm_host_percentage', 'profiled_container_usage', 'profiled_container_percentage', 'profiled_host_usage', 'profiled_host_percentage', 'snmp_usage', 'snmp_percentage', 'estimated_rum_sessions_usage', 'estimated_rum_sessions_percentage', '*'] if @api_client.config.client_side_validation && !allowable_values.include?(fields) fail ArgumentError, "invalid value for \"fields\", must be one of #{allowable_values}" end @@ -480,7 +480,7 @@ def get_monthly_usage_attribution_with_http_info(start_month, fields, opts = {}) if @api_client.config.client_side_validation && opts[:'sort_direction'] && !allowable_values.include?(opts[:'sort_direction']) fail ArgumentError, "invalid value for \"sort_direction\", must be one of #{allowable_values}" end - allowable_values = ['api_usage', 'api_percentage', 'apm_fargate_usage', 'apm_fargate_percentage', 'appsec_fargate_usage', 'appsec_fargate_percentage', 'apm_host_usage', 'apm_host_percentage', 'appsec_usage', 'appsec_percentage', 'browser_usage', 'browser_percentage', 'container_excl_agent_usage', 'container_excl_agent_percentage', 'container_usage', 'container_percentage', 'cspm_containers_percentage', 'cspm_containers_usage', 'cspm_hosts_percentage', 'cspm_hosts_usage', 'custom_timeseries_usage', 'custom_timeseries_percentage', 'cws_containers_percentage', 'cws_containers_usage', 'cws_hosts_percentage', 'cws_hosts_usage', 'dbm_hosts_percentage', 'dbm_hosts_usage', 'dbm_queries_percentage', 'dbm_queries_usage', 'estimated_indexed_logs_usage', 'estimated_indexed_logs_percentage', 'estimated_ingested_logs_usage', 'estimated_ingested_logs_percentage', 'estimated_indexed_spans_usage', 'estimated_indexed_spans_percentage', 'estimated_ingested_spans_usage', 'estimated_ingested_spans_percentage', 'fargate_usage', 'fargate_percentage', 'functions_usage', 'functions_percentage', 'infra_host_usage', 'infra_host_percentage', 'invocations_usage', 'invocations_percentage', 'npm_host_usage', 'npm_host_percentage', 'profiled_container_usage', 'profiled_container_percentage', 'profiled_fargate_usage', 'profiled_fargate_percentage', 'profiled_host_usage', 'profiled_host_percentage', 'snmp_usage', 'snmp_percentage', 'estimated_rum_sessions_usage', 'estimated_rum_sessions_percentage', '*'] + allowable_values = ['api_usage', 'api_percentage', 'apm_fargate_usage', 'apm_fargate_percentage', 'appsec_fargate_usage', 'appsec_fargate_percentage', 'apm_host_usage', 'apm_host_percentage', 'appsec_usage', 'appsec_percentage', 'browser_usage', 'browser_percentage', 'container_excl_agent_usage', 'container_excl_agent_percentage', 'container_usage', 'container_percentage', 'cspm_containers_percentage', 'cspm_containers_usage', 'cspm_hosts_percentage', 'cspm_hosts_usage', 'custom_timeseries_usage', 'custom_timeseries_percentage', 'cws_containers_percentage', 'cws_containers_usage', 'cws_hosts_percentage', 'cws_hosts_usage', 'dbm_hosts_percentage', 'dbm_hosts_usage', 'dbm_queries_percentage', 'dbm_queries_usage', 'estimated_indexed_logs_usage', 'estimated_indexed_logs_percentage', 'estimated_ingested_logs_usage', 'estimated_ingested_logs_percentage', 'estimated_indexed_spans_usage', 'estimated_indexed_spans_percentage', 'estimated_ingested_spans_usage', 'estimated_ingested_spans_percentage', 'fargate_usage', 'fargate_percentage', 'functions_usage', 'functions_percentage', 'infra_host_usage', 'infra_host_percentage', 'invocations_usage', 'invocations_percentage', 'npm_host_usage', 'npm_host_percentage', 'profiled_container_usage', 'profiled_container_percentage', 'profiled_host_usage', 'profiled_host_percentage', 'snmp_usage', 'snmp_percentage', 'estimated_rum_sessions_usage', 'estimated_rum_sessions_percentage', '*'] if @api_client.config.client_side_validation && opts[:'sort_name'] && !allowable_values.include?(opts[:'sort_name']) fail ArgumentError, "invalid value for \"sort_name\", must be one of #{allowable_values}" end diff --git a/lib/datadog_api_client/v1/models/hourly_usage_attribution_usage_type.rb b/lib/datadog_api_client/v1/models/hourly_usage_attribution_usage_type.rb index f79d29b00c2d..7a303468c5b3 100644 --- a/lib/datadog_api_client/v1/models/hourly_usage_attribution_usage_type.rb +++ b/lib/datadog_api_client/v1/models/hourly_usage_attribution_usage_type.rb @@ -46,7 +46,6 @@ class HourlyUsageAttributionUsageType INVOCATIONS_USAGE = "invocations_usage".freeze NPM_HOST_USAGE = "npm_host_usage".freeze PROFILED_CONTAINER_USAGE = "profiled_container_usage".freeze - PROFILED_FARGATE_USAGE = "profiled_fargate_usage".freeze PROFILED_HOST_USAGE = "profiled_host_usage".freeze SNMP_USAGE = "snmp_usage".freeze ESTIMATED_RUM_SESSIONS_USAGE = "estimated_rum_sessions_usage".freeze diff --git a/lib/datadog_api_client/v1/models/monthly_usage_attribution_supported_metrics.rb b/lib/datadog_api_client/v1/models/monthly_usage_attribution_supported_metrics.rb index 2519e0a5ec6a..36e58cea7e5a 100644 --- a/lib/datadog_api_client/v1/models/monthly_usage_attribution_supported_metrics.rb +++ b/lib/datadog_api_client/v1/models/monthly_usage_attribution_supported_metrics.rb @@ -71,8 +71,6 @@ class MonthlyUsageAttributionSupportedMetrics NPM_HOST_PERCENTAGE = "npm_host_percentage".freeze PROFILED_CONTAINER_USAGE = "profiled_container_usage".freeze PROFILED_CONTAINER_PERCENTAGE = "profiled_container_percentage".freeze - PROFILED_FARGATE_USAGE = "profiled_fargate_usage".freeze - PROFILED_FARGATE_PERCENTAGE = "profiled_fargate_percentage".freeze PROFILED_HOST_USAGE = "profiled_host_usage".freeze PROFILED_HOST_PERCENTAGE = "profiled_host_percentage".freeze SNMP_USAGE = "snmp_usage".freeze diff --git a/lib/datadog_api_client/v1/models/monthly_usage_attribution_values.rb b/lib/datadog_api_client/v1/models/monthly_usage_attribution_values.rb index c1f3f3bba1ee..92a8c5f5ec1d 100644 --- a/lib/datadog_api_client/v1/models/monthly_usage_attribution_values.rb +++ b/lib/datadog_api_client/v1/models/monthly_usage_attribution_values.rb @@ -181,12 +181,6 @@ class MonthlyUsageAttributionValues # The profiled container usage by tag(s). attr_accessor :profiled_container_usage - # The percentage of profiled Fargate task usage by tag(s). - attr_accessor :profiled_fargate_percentage - - # The profiled Fargate task usage by tag(s). - attr_accessor :profiled_fargate_usage - # The percentage of profiled hosts usage by tag(s). attr_accessor :profiled_host_percentage @@ -255,8 +249,6 @@ def self.attribute_map :'npm_host_usage' => :'npm_host_usage', :'profiled_container_percentage' => :'profiled_container_percentage', :'profiled_container_usage' => :'profiled_container_usage', - :'profiled_fargate_percentage' => :'profiled_fargate_percentage', - :'profiled_fargate_usage' => :'profiled_fargate_usage', :'profiled_host_percentage' => :'profiled_host_percentage', :'profiled_host_usage' => :'profiled_host_usage', :'snmp_percentage' => :'snmp_percentage', @@ -320,8 +312,6 @@ def self.openapi_types :'npm_host_usage' => :'Float', :'profiled_container_percentage' => :'Float', :'profiled_container_usage' => :'Float', - :'profiled_fargate_percentage' => :'Float', - :'profiled_fargate_usage' => :'Float', :'profiled_host_percentage' => :'Float', :'profiled_host_usage' => :'Float', :'snmp_percentage' => :'Float', @@ -553,14 +543,6 @@ def initialize(attributes = {}) self.profiled_container_usage = attributes[:'profiled_container_usage'] end - if attributes.key?(:'profiled_fargate_percentage') - self.profiled_fargate_percentage = attributes[:'profiled_fargate_percentage'] - end - - if attributes.key?(:'profiled_fargate_usage') - self.profiled_fargate_usage = attributes[:'profiled_fargate_usage'] - end - if attributes.key?(:'profiled_host_percentage') self.profiled_host_percentage = attributes[:'profiled_host_percentage'] end @@ -643,8 +625,6 @@ def ==(o) npm_host_usage == o.npm_host_usage && profiled_container_percentage == o.profiled_container_percentage && profiled_container_usage == o.profiled_container_usage && - profiled_fargate_percentage == o.profiled_fargate_percentage && - profiled_fargate_usage == o.profiled_fargate_usage && profiled_host_percentage == o.profiled_host_percentage && profiled_host_usage == o.profiled_host_usage && snmp_percentage == o.snmp_percentage && @@ -655,7 +635,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [api_percentage, api_usage, apm_fargate_percentage, apm_fargate_usage, apm_host_percentage, apm_host_usage, appsec_fargate_percentage, appsec_fargate_usage, appsec_percentage, appsec_usage, browser_percentage, browser_usage, container_excl_agent_percentage, container_excl_agent_usage, container_percentage, container_usage, cspm_containers_percentage, cspm_containers_usage, cspm_hosts_percentage, cspm_hosts_usage, custom_timeseries_percentage, custom_timeseries_usage, cws_containers_percentage, cws_containers_usage, cws_hosts_percentage, cws_hosts_usage, dbm_hosts_percentage, dbm_hosts_usage, dbm_queries_percentage, dbm_queries_usage, estimated_indexed_logs_percentage, estimated_indexed_logs_usage, estimated_indexed_spans_percentage, estimated_indexed_spans_usage, estimated_ingested_logs_percentage, estimated_ingested_logs_usage, estimated_ingested_spans_percentage, estimated_ingested_spans_usage, estimated_rum_sessions_percentage, estimated_rum_sessions_usage, fargate_percentage, fargate_usage, functions_percentage, functions_usage, infra_host_percentage, infra_host_usage, invocations_percentage, invocations_usage, npm_host_percentage, npm_host_usage, profiled_container_percentage, profiled_container_usage, profiled_fargate_percentage, profiled_fargate_usage, profiled_host_percentage, profiled_host_usage, snmp_percentage, snmp_usage].hash + [api_percentage, api_usage, apm_fargate_percentage, apm_fargate_usage, apm_host_percentage, apm_host_usage, appsec_fargate_percentage, appsec_fargate_usage, appsec_percentage, appsec_usage, browser_percentage, browser_usage, container_excl_agent_percentage, container_excl_agent_usage, container_percentage, container_usage, cspm_containers_percentage, cspm_containers_usage, cspm_hosts_percentage, cspm_hosts_usage, custom_timeseries_percentage, custom_timeseries_usage, cws_containers_percentage, cws_containers_usage, cws_hosts_percentage, cws_hosts_usage, dbm_hosts_percentage, dbm_hosts_usage, dbm_queries_percentage, dbm_queries_usage, estimated_indexed_logs_percentage, estimated_indexed_logs_usage, estimated_indexed_spans_percentage, estimated_indexed_spans_usage, estimated_ingested_logs_percentage, estimated_ingested_logs_usage, estimated_ingested_spans_percentage, estimated_ingested_spans_usage, estimated_rum_sessions_percentage, estimated_rum_sessions_usage, fargate_percentage, fargate_usage, functions_percentage, functions_usage, infra_host_percentage, infra_host_usage, invocations_percentage, invocations_usage, npm_host_percentage, npm_host_usage, profiled_container_percentage, profiled_container_usage, profiled_host_percentage, profiled_host_usage, snmp_percentage, snmp_usage].hash end end end diff --git a/lib/datadog_api_client/v2/api/incidents_api.rb b/lib/datadog_api_client/v2/api/incidents_api.rb index e37364ce38e8..a15afabdb872 100644 --- a/lib/datadog_api_client/v2/api/incidents_api.rb +++ b/lib/datadog_api_client/v2/api/incidents_api.rb @@ -96,6 +96,84 @@ def create_incident_with_http_info(body, opts = {}) return data, status_code, headers end + # Create an incident integration metadata. + # + # @see #create_incident_integration_with_http_info + def create_incident_integration(incident_id, body, opts = {}) + data, _status_code, _headers = create_incident_integration_with_http_info(incident_id, body, opts) + data + end + + # Create an incident integration metadata. + # + # Create an incident integration metadata. + # + # @param incident_id [String] The UUID of the incident. + # @param body [IncidentIntegrationMetadataCreateRequest] Incident integration metadata payload. + # @param opts [Hash] the optional parameters + # @return [Array<(IncidentIntegrationMetadataResponse, Integer, Hash)>] IncidentIntegrationMetadataResponse data, response status code and response headers + def create_incident_integration_with_http_info(incident_id, body, opts = {}) + unstable_enabled = @api_client.config.unstable_operations["v2.create_incident_integration".to_sym] + if unstable_enabled + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.create_incident_integration") + else + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.create_incident_integration")) + end + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: IncidentsAPI.create_incident_integration ...' + end + # verify the required parameter 'incident_id' is set + if @api_client.config.client_side_validation && incident_id.nil? + fail ArgumentError, "Missing the required parameter 'incident_id' when calling IncidentsAPI.create_incident_integration" + end + # verify the required parameter 'body' is set + if @api_client.config.client_side_validation && body.nil? + fail ArgumentError, "Missing the required parameter 'body' when calling IncidentsAPI.create_incident_integration" + end + # resource path + local_var_path = '/api/v2/incidents/{incident_id}/relationships/integrations'.sub('{incident_id}', CGI.escape(incident_id.to_s).gsub('%2F', '/')) + + # query parameters + query_params = opts[:query_params] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + # HTTP header 'Content-Type' + header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] || @api_client.object_to_http_body(body) + + # return_type + return_type = opts[:debug_return_type] || 'IncidentIntegrationMetadataResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ] + + new_options = opts.merge( + :operation => :create_incident_integration, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V2" + ) + + data, status_code, headers = @api_client.call_api(Net::HTTP::Post, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: IncidentsAPI#create_incident_integration\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + # Delete an existing incident. # # @see #delete_incident_with_http_info @@ -167,6 +245,82 @@ def delete_incident_with_http_info(incident_id, opts = {}) return data, status_code, headers end + # Delete an incident integration metadata. + # + # @see #delete_incident_integration_with_http_info + def delete_incident_integration(incident_id, integration_metadata_id, opts = {}) + delete_incident_integration_with_http_info(incident_id, integration_metadata_id, opts) + nil + end + + # Delete an incident integration metadata. + # + # Delete an incident integration metadata. + # + # @param incident_id [String] The UUID of the incident. + # @param integration_metadata_id [String] The UUID of the incident integration metadata. + # @param opts [Hash] the optional parameters + # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers + def delete_incident_integration_with_http_info(incident_id, integration_metadata_id, opts = {}) + unstable_enabled = @api_client.config.unstable_operations["v2.delete_incident_integration".to_sym] + if unstable_enabled + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.delete_incident_integration") + else + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.delete_incident_integration")) + end + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: IncidentsAPI.delete_incident_integration ...' + end + # verify the required parameter 'incident_id' is set + if @api_client.config.client_side_validation && incident_id.nil? + fail ArgumentError, "Missing the required parameter 'incident_id' when calling IncidentsAPI.delete_incident_integration" + end + # verify the required parameter 'integration_metadata_id' is set + if @api_client.config.client_side_validation && integration_metadata_id.nil? + fail ArgumentError, "Missing the required parameter 'integration_metadata_id' when calling IncidentsAPI.delete_incident_integration" + end + # resource path + local_var_path = '/api/v2/incidents/{incident_id}/relationships/integrations/{integration_metadata_id}'.sub('{incident_id}', CGI.escape(incident_id.to_s).gsub('%2F', '/')).sub('{integration_metadata_id}', CGI.escape(integration_metadata_id.to_s).gsub('%2F', '/')) + + # query parameters + query_params = opts[:query_params] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['*/*']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ] + + new_options = opts.merge( + :operation => :delete_incident_integration, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V2" + ) + + data, status_code, headers = @api_client.call_api(Net::HTTP::Delete, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: IncidentsAPI#delete_incident_integration\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + # Get the details of an incident. # # @see #get_incident_with_http_info @@ -240,6 +394,82 @@ def get_incident_with_http_info(incident_id, opts = {}) return data, status_code, headers end + # Get incident integration metadata details. + # + # @see #get_incident_integration_with_http_info + def get_incident_integration(incident_id, integration_metadata_id, opts = {}) + data, _status_code, _headers = get_incident_integration_with_http_info(incident_id, integration_metadata_id, opts) + data + end + + # Get incident integration metadata details. + # + # Get incident integration metadata details. + # + # @param incident_id [String] The UUID of the incident. + # @param integration_metadata_id [String] The UUID of the incident integration metadata. + # @param opts [Hash] the optional parameters + # @return [Array<(IncidentIntegrationMetadataResponse, Integer, Hash)>] IncidentIntegrationMetadataResponse data, response status code and response headers + def get_incident_integration_with_http_info(incident_id, integration_metadata_id, opts = {}) + unstable_enabled = @api_client.config.unstable_operations["v2.get_incident_integration".to_sym] + if unstable_enabled + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.get_incident_integration") + else + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.get_incident_integration")) + end + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: IncidentsAPI.get_incident_integration ...' + end + # verify the required parameter 'incident_id' is set + if @api_client.config.client_side_validation && incident_id.nil? + fail ArgumentError, "Missing the required parameter 'incident_id' when calling IncidentsAPI.get_incident_integration" + end + # verify the required parameter 'integration_metadata_id' is set + if @api_client.config.client_side_validation && integration_metadata_id.nil? + fail ArgumentError, "Missing the required parameter 'integration_metadata_id' when calling IncidentsAPI.get_incident_integration" + end + # resource path + local_var_path = '/api/v2/incidents/{incident_id}/relationships/integrations/{integration_metadata_id}'.sub('{incident_id}', CGI.escape(incident_id.to_s).gsub('%2F', '/')).sub('{integration_metadata_id}', CGI.escape(integration_metadata_id.to_s).gsub('%2F', '/')) + + # query parameters + query_params = opts[:query_params] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'IncidentIntegrationMetadataResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ] + + new_options = opts.merge( + :operation => :get_incident_integration, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V2" + ) + + data, status_code, headers = @api_client.call_api(Net::HTTP::Get, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: IncidentsAPI#get_incident_integration\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + # Get a list of attachments. # # @see #list_incident_attachments_with_http_info @@ -315,6 +545,77 @@ def list_incident_attachments_with_http_info(incident_id, opts = {}) return data, status_code, headers end + # Get a list of an incident's integration metadata. + # + # @see #list_incident_integrations_with_http_info + def list_incident_integrations(incident_id, opts = {}) + data, _status_code, _headers = list_incident_integrations_with_http_info(incident_id, opts) + data + end + + # Get a list of an incident's integration metadata. + # + # Get all integration metadata for an incident. + # + # @param incident_id [String] The UUID of the incident. + # @param opts [Hash] the optional parameters + # @return [Array<(IncidentIntegrationMetadataListResponse, Integer, Hash)>] IncidentIntegrationMetadataListResponse data, response status code and response headers + def list_incident_integrations_with_http_info(incident_id, opts = {}) + unstable_enabled = @api_client.config.unstable_operations["v2.list_incident_integrations".to_sym] + if unstable_enabled + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.list_incident_integrations") + else + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.list_incident_integrations")) + end + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: IncidentsAPI.list_incident_integrations ...' + end + # verify the required parameter 'incident_id' is set + if @api_client.config.client_side_validation && incident_id.nil? + fail ArgumentError, "Missing the required parameter 'incident_id' when calling IncidentsAPI.list_incident_integrations" + end + # resource path + local_var_path = '/api/v2/incidents/{incident_id}/relationships/integrations'.sub('{incident_id}', CGI.escape(incident_id.to_s).gsub('%2F', '/')) + + # query parameters + query_params = opts[:query_params] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'IncidentIntegrationMetadataListResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ] + + new_options = opts.merge( + :operation => :list_incident_integrations, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V2" + ) + + data, status_code, headers = @api_client.call_api(Net::HTTP::Get, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: IncidentsAPI#list_incident_integrations\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + # Get a list of incidents. # # @see #list_incidents_with_http_info @@ -651,5 +952,88 @@ def update_incident_attachments_with_http_info(incident_id, body, opts = {}) end return data, status_code, headers end + + # Update an existing incident integration metadata. + # + # @see #update_incident_integration_with_http_info + def update_incident_integration(incident_id, integration_metadata_id, body, opts = {}) + data, _status_code, _headers = update_incident_integration_with_http_info(incident_id, integration_metadata_id, body, opts) + data + end + + # Update an existing incident integration metadata. + # + # Update an existing incident integration metadata. + # + # @param incident_id [String] The UUID of the incident. + # @param integration_metadata_id [String] The UUID of the incident integration metadata. + # @param body [IncidentIntegrationMetadataPatchRequest] Incident integration metadata payload. + # @param opts [Hash] the optional parameters + # @return [Array<(IncidentIntegrationMetadataResponse, Integer, Hash)>] IncidentIntegrationMetadataResponse data, response status code and response headers + def update_incident_integration_with_http_info(incident_id, integration_metadata_id, body, opts = {}) + unstable_enabled = @api_client.config.unstable_operations["v2.update_incident_integration".to_sym] + if unstable_enabled + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.update_incident_integration") + else + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.update_incident_integration")) + end + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: IncidentsAPI.update_incident_integration ...' + end + # verify the required parameter 'incident_id' is set + if @api_client.config.client_side_validation && incident_id.nil? + fail ArgumentError, "Missing the required parameter 'incident_id' when calling IncidentsAPI.update_incident_integration" + end + # verify the required parameter 'integration_metadata_id' is set + if @api_client.config.client_side_validation && integration_metadata_id.nil? + fail ArgumentError, "Missing the required parameter 'integration_metadata_id' when calling IncidentsAPI.update_incident_integration" + end + # verify the required parameter 'body' is set + if @api_client.config.client_side_validation && body.nil? + fail ArgumentError, "Missing the required parameter 'body' when calling IncidentsAPI.update_incident_integration" + end + # resource path + local_var_path = '/api/v2/incidents/{incident_id}/relationships/integrations/{integration_metadata_id}'.sub('{incident_id}', CGI.escape(incident_id.to_s).gsub('%2F', '/')).sub('{integration_metadata_id}', CGI.escape(integration_metadata_id.to_s).gsub('%2F', '/')) + + # query parameters + query_params = opts[:query_params] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + # HTTP header 'Content-Type' + header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] || @api_client.object_to_http_body(body) + + # return_type + return_type = opts[:debug_return_type] || 'IncidentIntegrationMetadataResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ] + + new_options = opts.merge( + :operation => :update_incident_integration, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V2" + ) + + data, status_code, headers = @api_client.call_api(Net::HTTP::Patch, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: IncidentsAPI#update_incident_integration\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end end end diff --git a/lib/datadog_api_client/v2/api/logs_api.rb b/lib/datadog_api_client/v2/api/logs_api.rb index 37badbc75b80..9f66bf0b9246 100644 --- a/lib/datadog_api_client/v2/api/logs_api.rb +++ b/lib/datadog_api_client/v2/api/logs_api.rb @@ -324,7 +324,6 @@ def submit_log(body, opts = {}) # # Datadog recommends sending your logs compressed. # Add the `Content-Encoding: gzip` header to the request when sending compressed logs. - # Log events can be submitted up to 18 hours in the past and 2 hours in the future. # # The status codes answered by the HTTP API are: # - 202: Accepted: the request has been accepted for processing diff --git a/lib/datadog_api_client/v2/models/incident_integration_metadata_attributes.rb b/lib/datadog_api_client/v2/models/incident_integration_metadata_attributes.rb new file mode 100644 index 000000000000..253bf8eedac2 --- /dev/null +++ b/lib/datadog_api_client/v2/models/incident_integration_metadata_attributes.rb @@ -0,0 +1,161 @@ +=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 + # Incident integration metadata's attributes for a create request. + class IncidentIntegrationMetadataAttributes + include BaseGenericModel + + # Whether the object has unparsed attributes + # @!visibility private + attr_accessor :_unparsed + + # UUID of the incident this integration metadata is connected to. + attr_accessor :incident_id + + # A number indicating the type of integration this metadata is for. 1 indicates Slack; + # 8 indicates Jira. + attr_reader :integration_type + + # Incident integration metadata's metadata attribute. + attr_reader :metadata + + # A number indicating the status of this integration metadata. 0 indicates unknown; + # 1 indicates pending; 2 indicates complete; 3 indicates manually created; + # 4 indicates manually updated; 5 indicates failed. + attr_reader :status + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'incident_id' => :'incident_id', + :'integration_type' => :'integration_type', + :'metadata' => :'metadata', + :'status' => :'status' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'incident_id' => :'String', + :'integration_type' => :'Integer', + :'metadata' => :'IncidentIntegrationMetadataMetadata', + :'status' => :'Integer' + } + 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::IncidentIntegrationMetadataAttributes` 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::V2::IncidentIntegrationMetadataAttributes`. 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?(:'incident_id') + self.incident_id = attributes[:'incident_id'] + end + + if attributes.key?(:'integration_type') + self.integration_type = attributes[:'integration_type'] + end + + if attributes.key?(:'metadata') + self.metadata = attributes[:'metadata'] + end + + if attributes.key?(:'status') + self.status = attributes[:'status'] + 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 @integration_type.nil? + return false if @integration_type > 9 + return false if @metadata.nil? + return false if !@status.nil? && @status > 5 + true + end + + # Custom attribute writer method with validation + # @param integration_type [Object] Object to be assigned + # @!visibility private + def integration_type=(integration_type) + if integration_type.nil? + fail ArgumentError, 'invalid value for "integration_type", integration_type cannot be nil.' + end + if integration_type > 9 + fail ArgumentError, 'invalid value for "integration_type", must be smaller than or equal to 9.' + end + @integration_type = integration_type + end + + # Custom attribute writer method with validation + # @param metadata [Object] Object to be assigned + # @!visibility private + def metadata=(metadata) + if metadata.nil? + fail ArgumentError, 'invalid value for "metadata", metadata cannot be nil.' + end + @metadata = metadata + end + + # Custom attribute writer method with validation + # @param status [Object] Object to be assigned + # @!visibility private + def status=(status) + if !status.nil? && status > 5 + fail ArgumentError, 'invalid value for "status", must be smaller than or equal to 5.' + end + @status = status + 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 && + incident_id == o.incident_id && + integration_type == o.integration_type && + metadata == o.metadata && + status == o.status + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [incident_id, integration_type, metadata, status].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/incident_integration_metadata_create_data.rb b/lib/datadog_api_client/v2/models/incident_integration_metadata_create_data.rb new file mode 100644 index 000000000000..7ea05adcddfb --- /dev/null +++ b/lib/datadog_api_client/v2/models/incident_integration_metadata_create_data.rb @@ -0,0 +1,123 @@ +=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 + # Incident integration metadata data for a create request. + class IncidentIntegrationMetadataCreateData + include BaseGenericModel + + # Whether the object has unparsed attributes + # @!visibility private + attr_accessor :_unparsed + + # Incident integration metadata's attributes for a create request. + attr_reader :attributes + + # Integration metadata resource type. + attr_reader :type + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'attributes' => :'attributes', + :'type' => :'type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'attributes' => :'IncidentIntegrationMetadataAttributes', + :'type' => :'IncidentIntegrationMetadataType' + } + 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::IncidentIntegrationMetadataCreateData` 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::V2::IncidentIntegrationMetadataCreateData`. 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?(:'attributes') + self.attributes = attributes[:'attributes'] + 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 @attributes.nil? + return false if @type.nil? + true + end + + # Custom attribute writer method with validation + # @param attributes [Object] Object to be assigned + # @!visibility private + def attributes=(attributes) + if attributes.nil? + fail ArgumentError, 'invalid value for "attributes", attributes cannot be nil.' + end + @attributes = attributes + 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 && + attributes == o.attributes && + type == o.type + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [attributes, type].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/incident_integration_metadata_create_request.rb b/lib/datadog_api_client/v2/models/incident_integration_metadata_create_request.rb new file mode 100644 index 000000000000..c06c872702d9 --- /dev/null +++ b/lib/datadog_api_client/v2/models/incident_integration_metadata_create_request.rb @@ -0,0 +1,102 @@ +=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 + # Create request for an incident integration metadata. + class IncidentIntegrationMetadataCreateRequest + include BaseGenericModel + + # Whether the object has unparsed attributes + # @!visibility private + attr_accessor :_unparsed + + # Incident integration metadata data for a create request. + attr_reader :data + + # 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' => :'IncidentIntegrationMetadataCreateData' + } + 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::IncidentIntegrationMetadataCreateRequest` 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::V2::IncidentIntegrationMetadataCreateRequest`. 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?(:'data') + self.data = attributes[:'data'] + 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.nil? + true + end + + # Custom attribute writer method with validation + # @param data [Object] Object to be assigned + # @!visibility private + def data=(data) + if data.nil? + fail ArgumentError, 'invalid value for "data", data cannot be nil.' + end + @data = data + 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 + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/incident_integration_metadata_list_response.rb b/lib/datadog_api_client/v2/models/incident_integration_metadata_list_response.rb new file mode 100644 index 000000000000..6770ba380905 --- /dev/null +++ b/lib/datadog_api_client/v2/models/incident_integration_metadata_list_response.rb @@ -0,0 +1,126 @@ +=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 with a list of incident integration metadata. + class IncidentIntegrationMetadataListResponse + include BaseGenericModel + + # Whether the object has unparsed attributes + # @!visibility private + attr_accessor :_unparsed + + # An array of incident integration metadata. + attr_reader :data + + # Included related resources that the user requested. + attr_accessor :included + + # The metadata object containing pagination metadata. + attr_accessor :meta + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data', + :'included' => :'included', + :'meta' => :'meta' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'Array', + :'included' => :'Array', + :'meta' => :'IncidentIntegrationMetadataResponseMeta' + } + 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::IncidentIntegrationMetadataListResponse` 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::V2::IncidentIntegrationMetadataListResponse`. 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?(:'data') + if (value = attributes[:'data']).is_a?(Array) + self.data = value + end + end + + if attributes.key?(:'included') + if (value = attributes[:'included']).is_a?(Array) + self.included = value + end + end + + if attributes.key?(:'meta') + self.meta = attributes[:'meta'] + 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.nil? + true + end + + # Custom attribute writer method with validation + # @param data [Object] Object to be assigned + # @!visibility private + def data=(data) + if data.nil? + fail ArgumentError, 'invalid value for "data", data cannot be nil.' + end + @data = data + 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 && + included == o.included && + meta == o.meta + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, included, meta].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/incident_integration_metadata_metadata.rb b/lib/datadog_api_client/v2/models/incident_integration_metadata_metadata.rb new file mode 100644 index 000000000000..e9361b57db8b --- /dev/null +++ b/lib/datadog_api_client/v2/models/incident_integration_metadata_metadata.rb @@ -0,0 +1,63 @@ +=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 + # Incident integration metadata's metadata attribute. + module IncidentIntegrationMetadataMetadata + class << self + include BaseOneOfModel + include BaseOneOfModelNoDiscriminator + + # List of class defined in oneOf (OpenAPI v3) + def openapi_one_of + [ + :'SlackIntegrationMetadata', + :'JiraIntegrationMetadata' + ] + 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._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/v2/models/incident_integration_metadata_patch_data.rb b/lib/datadog_api_client/v2/models/incident_integration_metadata_patch_data.rb new file mode 100644 index 000000000000..4cecaeb74be8 --- /dev/null +++ b/lib/datadog_api_client/v2/models/incident_integration_metadata_patch_data.rb @@ -0,0 +1,123 @@ +=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 + # Incident integration metadata data for a patch request. + class IncidentIntegrationMetadataPatchData + include BaseGenericModel + + # Whether the object has unparsed attributes + # @!visibility private + attr_accessor :_unparsed + + # Incident integration metadata's attributes for a create request. + attr_reader :attributes + + # Integration metadata resource type. + attr_reader :type + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'attributes' => :'attributes', + :'type' => :'type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'attributes' => :'IncidentIntegrationMetadataAttributes', + :'type' => :'IncidentIntegrationMetadataType' + } + 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::IncidentIntegrationMetadataPatchData` 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::V2::IncidentIntegrationMetadataPatchData`. 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?(:'attributes') + self.attributes = attributes[:'attributes'] + 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 @attributes.nil? + return false if @type.nil? + true + end + + # Custom attribute writer method with validation + # @param attributes [Object] Object to be assigned + # @!visibility private + def attributes=(attributes) + if attributes.nil? + fail ArgumentError, 'invalid value for "attributes", attributes cannot be nil.' + end + @attributes = attributes + 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 && + attributes == o.attributes && + type == o.type + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [attributes, type].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/incident_integration_metadata_patch_request.rb b/lib/datadog_api_client/v2/models/incident_integration_metadata_patch_request.rb new file mode 100644 index 000000000000..c9f34cb5edc0 --- /dev/null +++ b/lib/datadog_api_client/v2/models/incident_integration_metadata_patch_request.rb @@ -0,0 +1,102 @@ +=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 + # Patch request for an incident integration metadata. + class IncidentIntegrationMetadataPatchRequest + include BaseGenericModel + + # Whether the object has unparsed attributes + # @!visibility private + attr_accessor :_unparsed + + # Incident integration metadata data for a patch request. + attr_reader :data + + # 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' => :'IncidentIntegrationMetadataPatchData' + } + 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::IncidentIntegrationMetadataPatchRequest` 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::V2::IncidentIntegrationMetadataPatchRequest`. 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?(:'data') + self.data = attributes[:'data'] + 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.nil? + true + end + + # Custom attribute writer method with validation + # @param data [Object] Object to be assigned + # @!visibility private + def data=(data) + if data.nil? + fail ArgumentError, 'invalid value for "data", data cannot be nil.' + end + @data = data + 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 + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/incident_integration_metadata_response.rb b/lib/datadog_api_client/v2/models/incident_integration_metadata_response.rb new file mode 100644 index 000000000000..1a2e78fb87fd --- /dev/null +++ b/lib/datadog_api_client/v2/models/incident_integration_metadata_response.rb @@ -0,0 +1,124 @@ +=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 with an incident integration metadata. + class IncidentIntegrationMetadataResponse + include BaseGenericModel + + # Whether the object has unparsed attributes + # @!visibility private + attr_accessor :_unparsed + + # Incident integration metadata from a response. + attr_reader :data + + # Included related resources that the user requested. + attr_accessor :included + + # The metadata object containing pagination metadata. + attr_accessor :meta + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data', + :'included' => :'included', + :'meta' => :'meta' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'IncidentIntegrationMetadataResponseData', + :'included' => :'Array', + :'meta' => :'IncidentIntegrationMetadataResponseMeta' + } + 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::IncidentIntegrationMetadataResponse` 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::V2::IncidentIntegrationMetadataResponse`. 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?(:'data') + self.data = attributes[:'data'] + end + + if attributes.key?(:'included') + if (value = attributes[:'included']).is_a?(Array) + self.included = value + end + end + + if attributes.key?(:'meta') + self.meta = attributes[:'meta'] + 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.nil? + true + end + + # Custom attribute writer method with validation + # @param data [Object] Object to be assigned + # @!visibility private + def data=(data) + if data.nil? + fail ArgumentError, 'invalid value for "data", data cannot be nil.' + end + @data = data + 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 && + included == o.included && + meta == o.meta + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, included, meta].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/incident_integration_metadata_response_data.rb b/lib/datadog_api_client/v2/models/incident_integration_metadata_response_data.rb new file mode 100644 index 000000000000..65d4f353afb3 --- /dev/null +++ b/lib/datadog_api_client/v2/models/incident_integration_metadata_response_data.rb @@ -0,0 +1,133 @@ +=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 + # Incident integration metadata from a response. + class IncidentIntegrationMetadataResponseData + include BaseGenericModel + + # Whether the object has unparsed attributes + # @!visibility private + attr_accessor :_unparsed + + # Incident integration metadata's attributes for a create request. + attr_accessor :attributes + + # The incident integration metadata's ID. + attr_reader :id + + # Integration metadata resource type. + attr_reader :type + + # 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' => :'IncidentIntegrationMetadataAttributes', + :'id' => :'String', + :'type' => :'IncidentIntegrationMetadataType' + } + 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::IncidentIntegrationMetadataResponseData` 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::V2::IncidentIntegrationMetadataResponseData`. 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?(:'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 + + # 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 @id.nil? + return false if @type.nil? + true + end + + # Custom attribute writer method with validation + # @param id [Object] Object to be assigned + # @!visibility private + def id=(id) + if id.nil? + fail ArgumentError, 'invalid value for "id", id cannot be nil.' + end + @id = id + 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 && + attributes == o.attributes && + id == o.id && + type == o.type + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [attributes, id, type].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/incident_integration_metadata_response_included_item.rb b/lib/datadog_api_client/v2/models/incident_integration_metadata_response_included_item.rb new file mode 100644 index 000000000000..3a246de3e32d --- /dev/null +++ b/lib/datadog_api_client/v2/models/incident_integration_metadata_response_included_item.rb @@ -0,0 +1,62 @@ +=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 + # An object related to an incident integration metadata that is included in the response. + module IncidentIntegrationMetadataResponseIncludedItem + class << self + include BaseOneOfModel + include BaseOneOfModelNoDiscriminator + + # List of class defined in oneOf (OpenAPI v3) + def openapi_one_of + [ + :'User' + ] + 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._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/v2/models/incident_integration_metadata_response_meta.rb b/lib/datadog_api_client/v2/models/incident_integration_metadata_response_meta.rb new file mode 100644 index 000000000000..3748380b6c7a --- /dev/null +++ b/lib/datadog_api_client/v2/models/incident_integration_metadata_response_meta.rb @@ -0,0 +1,91 @@ +=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 metadata object containing pagination metadata. + class IncidentIntegrationMetadataResponseMeta + include BaseGenericModel + + # Whether the object has unparsed attributes + # @!visibility private + attr_accessor :_unparsed + + # Pagination properties. + attr_accessor :pagination + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'pagination' => :'pagination' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'pagination' => :'IncidentIntegrationMetadataResponseMetaPagination' + } + 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::IncidentIntegrationMetadataResponseMeta` 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::V2::IncidentIntegrationMetadataResponseMeta`. 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?(:'pagination') + self.pagination = attributes[:'pagination'] + 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? + true + 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 && + pagination == o.pagination + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [pagination].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/incident_integration_metadata_response_meta_pagination.rb b/lib/datadog_api_client/v2/models/incident_integration_metadata_response_meta_pagination.rb new file mode 100644 index 000000000000..075745b52b24 --- /dev/null +++ b/lib/datadog_api_client/v2/models/incident_integration_metadata_response_meta_pagination.rb @@ -0,0 +1,112 @@ +=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 + # Pagination properties. + class IncidentIntegrationMetadataResponseMetaPagination + include BaseGenericModel + + # Whether the object has unparsed attributes + # @!visibility private + attr_accessor :_unparsed + + # The index of the first element in the next page of results. + # Equal to page size added to the current offset. + attr_accessor :next_offset + + # The index of the first element in the results. + attr_accessor :offset + + # Maximum size of pages to return. + attr_accessor :size + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'next_offset' => :'next_offset', + :'offset' => :'offset', + :'size' => :'size' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'next_offset' => :'Integer', + :'offset' => :'Integer', + :'size' => :'Integer' + } + 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::IncidentIntegrationMetadataResponseMetaPagination` 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::V2::IncidentIntegrationMetadataResponseMetaPagination`. 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?(:'next_offset') + self.next_offset = attributes[:'next_offset'] + end + + if attributes.key?(:'offset') + self.offset = attributes[:'offset'] + end + + if attributes.key?(:'size') + self.size = attributes[:'size'] + 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? + true + 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 && + next_offset == o.next_offset && + offset == o.offset && + size == o.size + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [next_offset, offset, size].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/incident_update_data.rb b/lib/datadog_api_client/v2/models/incident_update_data.rb index 38130a5e87aa..41a9e43efdca 100644 --- a/lib/datadog_api_client/v2/models/incident_update_data.rb +++ b/lib/datadog_api_client/v2/models/incident_update_data.rb @@ -28,7 +28,7 @@ class IncidentUpdateData # The incident's attributes for an update request. attr_accessor :attributes - # The team's ID. + # The incident's ID. attr_reader :id # The incident's relationships for an update request. diff --git a/lib/datadog_api_client/v2/models/jira_integration_metadata.rb b/lib/datadog_api_client/v2/models/jira_integration_metadata.rb new file mode 100644 index 000000000000..369dddd3f271 --- /dev/null +++ b/lib/datadog_api_client/v2/models/jira_integration_metadata.rb @@ -0,0 +1,104 @@ +=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 + # Incident integration metadata for the Slack integration. + class JiraIntegrationMetadata + include BaseGenericModel + + # Whether the object has unparsed attributes + # @!visibility private + attr_accessor :_unparsed + + # Array of Jira issues in this integration metadata. + attr_reader :issues + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'issues' => :'issues' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'issues' => :'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::JiraIntegrationMetadata` 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::V2::JiraIntegrationMetadata`. 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?(:'issues') + if (value = attributes[:'issues']).is_a?(Array) + self.issues = 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 @issues.nil? + true + end + + # Custom attribute writer method with validation + # @param issues [Object] Object to be assigned + # @!visibility private + def issues=(issues) + if issues.nil? + fail ArgumentError, 'invalid value for "issues", issues cannot be nil.' + end + @issues = issues + 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 && + issues == o.issues + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [issues].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/jira_integration_metadata_issues_item.rb b/lib/datadog_api_client/v2/models/jira_integration_metadata_issues_item.rb new file mode 100644 index 000000000000..d5a43d1108f0 --- /dev/null +++ b/lib/datadog_api_client/v2/models/jira_integration_metadata_issues_item.rb @@ -0,0 +1,153 @@ +=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 + # Item in the Jira integration metadata issue array. + class JiraIntegrationMetadataIssuesItem + include BaseGenericModel + + # Whether the object has unparsed attributes + # @!visibility private + attr_accessor :_unparsed + + # URL of issue's Jira account. + attr_reader :account + + # Jira issue's issue key. + attr_accessor :issue_key + + # Jira issue's issue type. + attr_accessor :issuetype_id + + # Jira issue's project keys. + attr_reader :project_key + + # URL redirecting to the Jira issue. + attr_accessor :redirect_url + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'account' => :'account', + :'issue_key' => :'issue_key', + :'issuetype_id' => :'issuetype_id', + :'project_key' => :'project_key', + :'redirect_url' => :'redirect_url' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'account' => :'String', + :'issue_key' => :'String', + :'issuetype_id' => :'String', + :'project_key' => :'String', + :'redirect_url' => :'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::V2::JiraIntegrationMetadataIssuesItem` 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::V2::JiraIntegrationMetadataIssuesItem`. 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?(:'account') + self.account = attributes[:'account'] + end + + if attributes.key?(:'issue_key') + self.issue_key = attributes[:'issue_key'] + end + + if attributes.key?(:'issuetype_id') + self.issuetype_id = attributes[:'issuetype_id'] + end + + if attributes.key?(:'project_key') + self.project_key = attributes[:'project_key'] + end + + if attributes.key?(:'redirect_url') + self.redirect_url = attributes[:'redirect_url'] + 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 @account.nil? + return false if @project_key.nil? + true + end + + # Custom attribute writer method with validation + # @param account [Object] Object to be assigned + # @!visibility private + def account=(account) + if account.nil? + fail ArgumentError, 'invalid value for "account", account cannot be nil.' + end + @account = account + end + + # Custom attribute writer method with validation + # @param project_key [Object] Object to be assigned + # @!visibility private + def project_key=(project_key) + if project_key.nil? + fail ArgumentError, 'invalid value for "project_key", project_key cannot be nil.' + end + @project_key = project_key + 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 && + account == o.account && + issue_key == o.issue_key && + issuetype_id == o.issuetype_id && + project_key == o.project_key && + redirect_url == o.redirect_url + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [account, issue_key, issuetype_id, project_key, redirect_url].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/relationship_to_incident_integration_metadatas.rb b/lib/datadog_api_client/v2/models/relationship_to_incident_integration_metadatas.rb index 0e46e6060bf6..7cbc88424cf6 100644 --- a/lib/datadog_api_client/v2/models/relationship_to_incident_integration_metadatas.rb +++ b/lib/datadog_api_client/v2/models/relationship_to_incident_integration_metadatas.rb @@ -25,7 +25,7 @@ class RelationshipToIncidentIntegrationMetadatas # @!visibility private attr_accessor :_unparsed - # The integration metadata relationship array + # Integration metadata relationship array attr_reader :data # Attribute mapping from ruby-style variable name to JSON key. diff --git a/lib/datadog_api_client/v2/models/slack_integration_metadata.rb b/lib/datadog_api_client/v2/models/slack_integration_metadata.rb new file mode 100644 index 000000000000..3dc1aa4d7a20 --- /dev/null +++ b/lib/datadog_api_client/v2/models/slack_integration_metadata.rb @@ -0,0 +1,104 @@ +=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 + # Incident integration metadata for the Slack integration. + class SlackIntegrationMetadata + include BaseGenericModel + + # Whether the object has unparsed attributes + # @!visibility private + attr_accessor :_unparsed + + # Array of Slack channels in this integration metadata. + attr_reader :channels + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'channels' => :'channels' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'channels' => :'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::SlackIntegrationMetadata` 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::V2::SlackIntegrationMetadata`. 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?(:'channels') + if (value = attributes[:'channels']).is_a?(Array) + self.channels = 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 @channels.nil? + true + end + + # Custom attribute writer method with validation + # @param channels [Object] Object to be assigned + # @!visibility private + def channels=(channels) + if channels.nil? + fail ArgumentError, 'invalid value for "channels", channels cannot be nil.' + end + @channels = channels + 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 && + channels == o.channels + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [channels].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/slack_integration_metadata_channel_item.rb b/lib/datadog_api_client/v2/models/slack_integration_metadata_channel_item.rb new file mode 100644 index 000000000000..967d5556c4e4 --- /dev/null +++ b/lib/datadog_api_client/v2/models/slack_integration_metadata_channel_item.rb @@ -0,0 +1,154 @@ +=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 + # Item in the Slack integration metadata channel array. + class SlackIntegrationMetadataChannelItem + include BaseGenericModel + + # Whether the object has unparsed attributes + # @!visibility private + attr_accessor :_unparsed + + # Slack channel ID. + attr_reader :channel_id + + # Name of the Slack channel. + attr_reader :channel_name + + # URL redirecting to the Slack channel. + attr_reader :redirect_url + + # Slack team ID. + attr_accessor :team_id + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'channel_id' => :'channel_id', + :'channel_name' => :'channel_name', + :'redirect_url' => :'redirect_url', + :'team_id' => :'team_id' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'channel_id' => :'String', + :'channel_name' => :'String', + :'redirect_url' => :'String', + :'team_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::V2::SlackIntegrationMetadataChannelItem` 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::V2::SlackIntegrationMetadataChannelItem`. 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?(:'channel_id') + self.channel_id = attributes[:'channel_id'] + end + + if attributes.key?(:'channel_name') + self.channel_name = attributes[:'channel_name'] + end + + if attributes.key?(:'redirect_url') + self.redirect_url = attributes[:'redirect_url'] + end + + if attributes.key?(:'team_id') + self.team_id = attributes[:'team_id'] + 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 @channel_id.nil? + return false if @channel_name.nil? + return false if @redirect_url.nil? + true + end + + # Custom attribute writer method with validation + # @param channel_id [Object] Object to be assigned + # @!visibility private + def channel_id=(channel_id) + if channel_id.nil? + fail ArgumentError, 'invalid value for "channel_id", channel_id cannot be nil.' + end + @channel_id = channel_id + end + + # Custom attribute writer method with validation + # @param channel_name [Object] Object to be assigned + # @!visibility private + def channel_name=(channel_name) + if channel_name.nil? + fail ArgumentError, 'invalid value for "channel_name", channel_name cannot be nil.' + end + @channel_name = channel_name + end + + # Custom attribute writer method with validation + # @param redirect_url [Object] Object to be assigned + # @!visibility private + def redirect_url=(redirect_url) + if redirect_url.nil? + fail ArgumentError, 'invalid value for "redirect_url", redirect_url cannot be nil.' + end + @redirect_url = redirect_url + 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 && + channel_id == o.channel_id && + channel_name == o.channel_name && + redirect_url == o.redirect_url && + team_id == o.team_id + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [channel_id, channel_name, redirect_url, team_id].hash + end + end +end