From e8e4d2ec81b2762408723c416e0031355de01d54 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Mon, 23 Feb 2026 15:01:08 +0000 Subject: [PATCH] Regenerate client from commit b38a54e of spec repo --- .generator/schemas/v2/openapi.yaml | 693 +++++++++- .../v2/status-pages/CreateMaintenance.java | 75 + examples/v2/status-pages/GetMaintenance.java | 41 + .../v2/status-pages/ListMaintenances.java | 24 + .../v2/status-pages/UpdateMaintenance.java | 61 + .../api/client/v2/api/StatusPagesApi.java | 1212 +++++++++++++++-- .../v2/model/CreateMaintenanceRequest.java | 136 ++ .../model/CreateMaintenanceRequestData.java | 184 +++ ...reateMaintenanceRequestDataAttributes.java | 348 +++++ ...DataAttributesComponentsAffectedItems.java | 209 +++ .../api/client/v2/model/Degradation.java | 12 +- .../api/client/v2/model/DegradationArray.java | 12 +- .../v2/model/DegradationDataAttributes.java | 30 + ...Included.java => DegradationIncluded.java} | 44 +- .../api/client/v2/model/Maintenance.java | 177 +++ .../api/client/v2/model/MaintenanceArray.java | 224 +++ .../api/client/v2/model/MaintenanceData.java | 235 ++++ .../v2/model/MaintenanceDataAttributes.java | 462 +++++++ ...DataAttributesComponentsAffectedItems.java | 204 +++ .../MaintenanceDataAttributesStatus.java | 64 + ...MaintenanceDataAttributesUpdatesItems.java | 325 +++++ ...esUpdatesItemsComponentsAffectedItems.java | 209 +++ .../model/MaintenanceDataRelationships.java | 199 +++ ...tenanceDataRelationshipsCreatedByUser.java | 150 ++ ...nceDataRelationshipsCreatedByUserData.java | 183 +++ ...ceDataRelationshipsLastModifiedByUser.java | 151 ++ ...taRelationshipsLastModifiedByUserData.java | 186 +++ ...aintenanceDataRelationshipsStatusPage.java | 149 ++ ...enanceDataRelationshipsStatusPageData.java | 183 +++ .../api/client/v2/model/PaginationMeta.java | 136 ++ .../client/v2/model/PaginationMetaPage.java | 376 +++++ .../v2/model/PatchMaintenanceRequest.java | 136 ++ .../v2/model/PatchMaintenanceRequestData.java | 212 +++ ...PatchMaintenanceRequestDataAttributes.java | 371 +++++ ...DataAttributesComponentsAffectedItems.java | 209 +++ ...tributesComponentsAffectedItemsStatus.java | 69 + .../PatchMaintenanceRequestDataType.java | 58 + ..._component_returns_Created_response.freeze | 2 +- ...te_component_returns_Created_response.json | 20 +- ...egradation_returns_Created_response.freeze | 2 +- ..._degradation_returns_Created_response.json | 22 +- ...aintenance_returns_Created_response.freeze | 1 + ..._maintenance_returns_Created_response.json | 83 ++ ...tatus_page_returns_Created_response.freeze | 2 +- ..._status_page_returns_Created_response.json | 10 +- ...mponent_returns_No_Content_response.freeze | 2 +- ...component_returns_No_Content_response.json | 14 +- ...adation_returns_No_Content_response.freeze | 2 +- ...gradation_returns_No_Content_response.json | 26 +- ...us_page_returns_No_Content_response.freeze | 2 +- ...atus_page_returns_No_Content_response.json | 14 +- .../Get_component_returns_OK_response.freeze | 2 +- .../v2/Get_component_returns_OK_response.json | 16 +- ...Get_degradation_returns_OK_response.freeze | 2 +- .../Get_degradation_returns_OK_response.json | 28 +- ...Get_maintenance_returns_OK_response.freeze | 1 + .../Get_maintenance_returns_OK_response.json | 109 ++ ...Get_status_page_returns_OK_response.freeze | 2 +- .../Get_status_page_returns_OK_response.json | 16 +- ...List_components_returns_OK_response.freeze | 2 +- .../List_components_returns_OK_response.json | 16 +- ...st_degradations_returns_OK_response.freeze | 2 +- ...List_degradations_returns_OK_response.json | 24 +- ...st_maintenances_returns_OK_response.freeze | 1 + ...List_maintenances_returns_OK_response.json | 109 ++ ...st_status_pages_returns_OK_response.freeze | 2 +- ...List_status_pages_returns_OK_response.json | 12 +- ...pdate_component_returns_OK_response.freeze | 2 +- .../Update_component_returns_OK_response.json | 18 +- ...ate_degradation_returns_OK_response.freeze | 2 +- ...pdate_degradation_returns_OK_response.json | 30 +- ...ate_maintenance_returns_OK_response.freeze | 1 + ...pdate_maintenance_returns_OK_response.json | 113 ++ ...ate_status_page_returns_OK_response.freeze | 2 +- ...pdate_status_page_returns_OK_response.json | 18 +- .../com/datadog/api/client/v2/api/given.json | 16 + .../api/client/v2/api/status_pages.feature | 39 + .../com/datadog/api/client/v2/api/undo.json | 24 + 78 files changed, 8261 insertions(+), 299 deletions(-) create mode 100644 examples/v2/status-pages/CreateMaintenance.java create mode 100644 examples/v2/status-pages/GetMaintenance.java create mode 100644 examples/v2/status-pages/ListMaintenances.java create mode 100644 examples/v2/status-pages/UpdateMaintenance.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CreateMaintenanceRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CreateMaintenanceRequestData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CreateMaintenanceRequestDataAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/CreateMaintenanceRequestDataAttributesComponentsAffectedItems.java rename src/main/java/com/datadog/api/client/v2/model/{DegradationArrayIncluded.java => DegradationIncluded.java} (87%) create mode 100644 src/main/java/com/datadog/api/client/v2/model/Maintenance.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/MaintenanceArray.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/MaintenanceData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/MaintenanceDataAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/MaintenanceDataAttributesComponentsAffectedItems.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/MaintenanceDataAttributesStatus.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/MaintenanceDataAttributesUpdatesItems.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationships.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsCreatedByUser.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsCreatedByUserData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsLastModifiedByUser.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsLastModifiedByUserData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsStatusPage.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsStatusPageData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/PaginationMeta.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/PaginationMetaPage.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequestData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequestDataAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequestDataAttributesComponentsAffectedItems.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequestDataType.java create mode 100644 src/test/resources/cassettes/features/v2/Create_maintenance_returns_Created_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Create_maintenance_returns_Created_response.json create mode 100644 src/test/resources/cassettes/features/v2/Get_maintenance_returns_OK_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Get_maintenance_returns_OK_response.json create mode 100644 src/test/resources/cassettes/features/v2/List_maintenances_returns_OK_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/List_maintenances_returns_OK_response.json create mode 100644 src/test/resources/cassettes/features/v2/Update_maintenance_returns_OK_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Update_maintenance_returns_OK_response.json diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 5da2e75e805..93e5042288c 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -15122,6 +15122,87 @@ components: - findings - project type: object + CreateMaintenanceRequest: + example: + data: + attributes: + completed_date: '2026-02-18T19:51:13.332360075Z' + completed_description: We have completed maintenance on the API to improve + performance. + components_affected: + - id: 1234abcd-12ab-34cd-56ef-123456abcdef + status: operational + in_progress_description: We are currently performing maintenance on the + API to improve performance. + scheduled_description: We will be performing maintenance on the API to + improve performance. + start_date: '2026-02-18T19:21:13.332360075Z' + title: API Maintenance + type: maintenances + properties: + data: + $ref: '#/components/schemas/CreateMaintenanceRequestData' + type: object + CreateMaintenanceRequestData: + properties: + attributes: + $ref: '#/components/schemas/CreateMaintenanceRequestDataAttributes' + type: + $ref: '#/components/schemas/PatchMaintenanceRequestDataType' + required: + - attributes + - type + type: object + CreateMaintenanceRequestDataAttributes: + description: The supported attributes for creating a maintenance. + properties: + completed_date: + description: Timestamp of when the maintenance was completed. + format: date-time + type: string + completed_description: + description: The description shown when the maintenance is completed. + type: string + components_affected: + description: The components affected by the maintenance. + items: + $ref: '#/components/schemas/CreateMaintenanceRequestDataAttributesComponentsAffectedItems' + type: array + in_progress_description: + description: The description shown while the maintenance is in progress. + type: string + scheduled_description: + description: The description shown when the maintenance is scheduled. + type: string + start_date: + description: Timestamp of when the maintenance is scheduled to start. + format: date-time + type: string + title: + description: The title of the maintenance. + example: API Maintenance + type: string + required: + - components_affected + - title + type: object + CreateMaintenanceRequestDataAttributesComponentsAffectedItems: + properties: + id: + description: The ID of the component. Must be a component of type `component`. + example: 1234abcd-12ab-34cd-56ef-123456abcdef + format: uuid + type: string + name: + description: The name of the component. + readOnly: true + type: string + status: + $ref: '#/components/schemas/PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus' + required: + - id + - status + type: object CreateNotificationChannelAttributes: description: Attributes for creating an on-call notification channel. properties: @@ -19894,7 +19975,7 @@ components: description: The included related resources of a degradation. Client must explicitly request these resources by name in the `include` query parameter. items: - $ref: '#/components/schemas/DegradationArrayIncluded' + $ref: '#/components/schemas/DegradationIncluded' type: array type: object DegradationArray: @@ -19907,17 +19988,13 @@ components: description: The included related resources of a degradation. Client must explicitly request these resources by name in the `include` query parameter. items: - $ref: '#/components/schemas/DegradationArrayIncluded' + $ref: '#/components/schemas/DegradationIncluded' type: array meta: $ref: '#/components/schemas/StatusPagesResponseMeta' required: - data type: object - DegradationArrayIncluded: - oneOf: - - $ref: '#/components/schemas/StatusPagesUser' - - $ref: '#/components/schemas/StatusPageAsIncluded' DegradationData: properties: attributes: @@ -19952,6 +20029,8 @@ components: description: Timestamp of when the degradation was last modified. format: date-time type: string + promised_next_update_at: + type: string status: $ref: '#/components/schemas/CreateDegradationRequestDataAttributesStatus' title: @@ -20097,6 +20176,10 @@ components: - type - id type: object + DegradationIncluded: + oneOf: + - $ref: '#/components/schemas/StatusPagesUser' + - $ref: '#/components/schemas/StatusPageAsIncluded' DeleteAppResponse: description: The response object after an app is successfully deleted. properties: @@ -36327,6 +36410,250 @@ components: - ms_channel_name - redirect_url type: object + Maintenance: + properties: + data: + $ref: '#/components/schemas/MaintenanceData' + included: + description: The included related resources of a maintenance. Client must + explicitly request these resources by name in the `include` query parameter. + items: + $ref: '#/components/schemas/DegradationIncluded' + type: array + type: object + MaintenanceArray: + properties: + data: + items: + $ref: '#/components/schemas/MaintenanceData' + type: array + included: + description: The included related resources of a maintenance. Client must + explicitly request these resources by name in the `include` query parameter. + items: + $ref: '#/components/schemas/DegradationIncluded' + type: array + meta: + $ref: '#/components/schemas/PaginationMeta' + required: + - data + type: object + MaintenanceData: + properties: + attributes: + $ref: '#/components/schemas/MaintenanceDataAttributes' + id: + description: The ID of the maintenance. + format: uuid + type: string + relationships: + $ref: '#/components/schemas/MaintenanceDataRelationships' + type: + $ref: '#/components/schemas/PatchMaintenanceRequestDataType' + required: + - type + type: object + MaintenanceDataAttributes: + description: The attributes of a maintenance. + properties: + completed_date: + description: Timestamp of when the maintenance was completed. + format: date-time + type: string + completed_description: + description: The description shown when the maintenance is completed. + type: string + components_affected: + description: Components affected by the maintenance. + items: + $ref: '#/components/schemas/MaintenanceDataAttributesComponentsAffectedItems' + type: array + in_progress_description: + description: The description shown while the maintenance is in progress. + type: string + modified_at: + description: Timestamp of when the maintenance was last modified. + format: date-time + type: string + published_date: + description: Timestamp of when the maintenance was published. + format: date-time + type: string + scheduled_description: + description: The description shown when the maintenance is scheduled. + type: string + start_date: + description: Timestamp of when the maintenance is scheduled to start. + format: date-time + type: string + status: + $ref: '#/components/schemas/MaintenanceDataAttributesStatus' + description: The status of the maintenance. + title: + description: Title of the maintenance. + type: string + updates: + description: Past updates made to the maintenance. + items: + $ref: '#/components/schemas/MaintenanceDataAttributesUpdatesItems' + type: array + type: object + MaintenanceDataAttributesComponentsAffectedItems: + properties: + id: + description: The ID of the component. Must be a component of type `component`. + example: 1234abcd-12ab-34cd-56ef-123456abcdef + format: uuid + type: string + name: + description: The name of the component. + readOnly: true + type: string + status: + $ref: '#/components/schemas/PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus' + required: + - id + - status + type: object + MaintenanceDataAttributesStatus: + description: The status of the maintenance. + enum: + - scheduled + - in_progress + - completed + - canceled + type: string + x-enum-varnames: + - SCHEDULED + - IN_PROGRESS + - COMPLETED + - CANCELED + MaintenanceDataAttributesUpdatesItems: + properties: + components_affected: + description: The components affected at the time of the update. + items: + $ref: '#/components/schemas/MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems' + type: array + created_at: + description: Timestamp of when the update was created. + format: date-time + readOnly: true + type: string + description: + description: Description of the update. + type: string + id: + description: Identifier of the update. + format: uuid + readOnly: true + type: string + manual_transition: + description: Whether the update was applied manually by a user (true) or + automatically by the system (false). + readOnly: true + type: boolean + modified_at: + description: Timestamp of when the update was last modified. + format: date-time + readOnly: true + type: string + started_at: + description: Timestamp of when the update started. + format: date-time + type: string + status: + description: The status of the update. + type: string + type: object + MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems: + properties: + id: + description: Identifier of the component affected at the time of the update. + example: 1234abcd-12ab-34cd-56ef-123456abcdef + format: uuid + type: string + name: + description: The name of the component affected at the time of the update. + readOnly: true + type: string + status: + $ref: '#/components/schemas/PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus' + description: The status of the component affected at the time of the update. + required: + - id + - status + type: object + MaintenanceDataRelationships: + description: The relationships of a maintenance. + properties: + created_by_user: + $ref: '#/components/schemas/MaintenanceDataRelationshipsCreatedByUser' + description: The Datadog user who created the maintenance. + last_modified_by_user: + $ref: '#/components/schemas/MaintenanceDataRelationshipsLastModifiedByUser' + description: The Datadog user who last modified the maintenance. + status_page: + $ref: '#/components/schemas/MaintenanceDataRelationshipsStatusPage' + description: The status page the maintenance belongs to. + type: object + MaintenanceDataRelationshipsCreatedByUser: + properties: + data: + $ref: '#/components/schemas/MaintenanceDataRelationshipsCreatedByUserData' + required: + - data + type: object + MaintenanceDataRelationshipsCreatedByUserData: + properties: + id: + example: '' + format: uuid + type: string + type: + $ref: '#/components/schemas/StatusPagesUserType' + required: + - type + - id + type: object + MaintenanceDataRelationshipsLastModifiedByUser: + properties: + data: + $ref: '#/components/schemas/MaintenanceDataRelationshipsLastModifiedByUserData' + required: + - data + type: object + MaintenanceDataRelationshipsLastModifiedByUserData: + properties: + id: + example: '' + format: uuid + type: string + type: + $ref: '#/components/schemas/StatusPagesUserType' + required: + - type + - id + type: object + MaintenanceDataRelationshipsStatusPage: + properties: + data: + $ref: '#/components/schemas/MaintenanceDataRelationshipsStatusPageData' + required: + - data + type: object + MaintenanceDataRelationshipsStatusPageData: + properties: + id: + example: '' + format: uuid + type: string + type: + $ref: '#/components/schemas/StatusPageDataType' + required: + - type + - id + type: object MemberTeam: description: A member team properties: @@ -45856,6 +46183,41 @@ components: format: int64 type: integer type: object + PaginationMeta: + properties: + page: + $ref: '#/components/schemas/PaginationMetaPage' + type: object + PaginationMetaPage: + properties: + first_offset: + format: int64 + type: integer + last_offset: + format: int64 + nullable: true + type: integer + limit: + format: int64 + type: integer + next_offset: + format: int64 + nullable: true + type: integer + offset: + format: int64 + type: integer + prev_offset: + format: int64 + nullable: true + type: integer + total: + format: int64 + nullable: true + type: integer + type: + type: string + type: object Parameter: description: The definition of `Parameter` object. properties: @@ -46163,6 +46525,107 @@ components: required: - data type: object + PatchMaintenanceRequest: + example: + data: + attributes: + completed_date: '2026-02-18T20:01:13.332360075Z' + in_progress_description: We are currently performing maintenance on the + API to improve performance for 40 minutes. + scheduled_description: We will be performing maintenance on the API to + improve performance for 40 minutes. + start_date: '2026-02-18T19:21:13.332360075Z' + title: API Maintenance + id: 1234abcd-12ab-34cd-56ef-123456abcdef + type: maintenances + properties: + data: + $ref: '#/components/schemas/PatchMaintenanceRequestData' + type: object + PatchMaintenanceRequestData: + properties: + attributes: + $ref: '#/components/schemas/PatchMaintenanceRequestDataAttributes' + id: + description: The ID of the maintenance. + example: 1234abcd-12ab-34cd-56ef-123456abcdef + format: uuid + type: string + type: + $ref: '#/components/schemas/PatchMaintenanceRequestDataType' + required: + - attributes + - type + - id + type: object + PatchMaintenanceRequestDataAttributes: + description: The supported attributes for updating a maintenance. + properties: + completed_date: + description: Timestamp of when the maintenance was completed. + format: date-time + type: string + completed_description: + description: The description shown when the maintenance is completed. + type: string + components_affected: + description: The components affected by the maintenance. + items: + $ref: '#/components/schemas/PatchMaintenanceRequestDataAttributesComponentsAffectedItems' + type: array + in_progress_description: + description: The description shown while the maintenance is in progress. + type: string + scheduled_description: + description: The description shown when the maintenance is scheduled. + type: string + start_date: + description: Timestamp of when the maintenance is scheduled to start. + format: date-time + type: string + status: + $ref: '#/components/schemas/MaintenanceDataAttributesStatus' + description: The status of the maintenance. + title: + description: The title of the maintenance. + type: string + type: object + PatchMaintenanceRequestDataAttributesComponentsAffectedItems: + properties: + id: + description: The ID of the component. Must be a component of type `component`. + example: 1234abcd-12ab-34cd-56ef-123456abcdef + format: uuid + type: string + name: + description: The name of the component. + readOnly: true + type: string + status: + $ref: '#/components/schemas/PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus' + required: + - id + - status + type: object + PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus: + description: The status of the component. + enum: + - operational + - maintenance + example: operational + type: string + x-enum-varnames: + - OPERATIONAL + - MAINTENANCE + PatchMaintenanceRequestDataType: + default: maintenances + description: Maintenances resource type. + enum: + - maintenances + example: maintenances + type: string + x-enum-varnames: + - MAINTENANCES PatchNotificationRuleParameters: description: Body of the notification rule patch request. properties: @@ -101379,6 +101842,12 @@ paths: name: filter[status] schema: type: string + - description: 'Sort order. Prefix with ''-'' for descending. Supported values: + created_at, -created_at, modified_at, -modified_at.' + in: query + name: sort + schema: + type: string responses: '200': content: @@ -101399,6 +101868,67 @@ paths: operator: AND permissions: - status_pages_settings_read + /api/v2/statuspages/maintenances: + get: + description: Lists all maintenances for the organization. Optionally filter + by status and page. + operationId: ListMaintenances + parameters: + - description: Optional page id filter. + in: query + name: filter[page_id] + schema: + type: string + - description: Offset to use as the start of the page. + in: query + name: page[offset] + schema: + default: 0 + type: integer + - description: The number of maintenances to return per page. + in: query + name: page[limit] + schema: + default: 50 + type: integer + - description: 'Comma-separated list of resources to include. Supported values: + created_by_user, last_modified_by_user, status_page.' + in: query + name: include + schema: + type: string + - description: 'Optional maintenance status filter. Supported values: scheduled, + in_progress, completed, canceled.' + in: query + name: filter[status] + schema: + type: string + - description: 'Sort order. Prefix with ''-'' for descending. Supported values: + created_at, -created_at, start_date, -start_date.' + in: query + name: sort + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/MaintenanceArray' + description: OK + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: List maintenances + tags: + - Status Pages + x-permission: + operator: AND + permissions: + - status_pages_settings_read /api/v2/statuspages/{page_id}: delete: description: Deletes a status page by its ID. @@ -101927,6 +102457,157 @@ paths: operator: AND permissions: - status_pages_incident_write + /api/v2/statuspages/{page_id}/maintenances: + post: + description: Creates a new maintenance. + operationId: CreateMaintenance + parameters: + - description: The ID of the status page. + in: path + name: page_id + required: true + schema: + format: uuid + type: string + - description: Whether to notify page subscribers of the maintenance. + in: query + name: notify_subscribers + schema: + default: true + type: boolean + - description: 'Comma-separated list of resources to include. Supported values: + created_by_user, last_modified_by_user, status_page.' + in: query + name: include + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateMaintenanceRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Maintenance' + description: Created + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Create maintenance + tags: + - Status Pages + x-permission: + operator: AND + permissions: + - status_pages_incident_write + /api/v2/statuspages/{page_id}/maintenances/{maintenance_id}: + get: + description: Retrieves a specific maintenance by its ID. + operationId: GetMaintenance + parameters: + - description: The ID of the status page. + in: path + name: page_id + required: true + schema: + format: uuid + type: string + - description: The ID of the maintenance. + in: path + name: maintenance_id + required: true + schema: + format: uuid + type: string + - description: 'Comma-separated list of resources to include. Supported values: + created_by_user, last_modified_by_user, status_page.' + in: query + name: include + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Maintenance' + description: OK + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Get maintenance + tags: + - Status Pages + x-permission: + operator: AND + permissions: + - status_pages_settings_read + patch: + description: Updates an existing maintenance's attributes. + operationId: UpdateMaintenance + parameters: + - description: The ID of the status page. + in: path + name: page_id + required: true + schema: + format: uuid + type: string + - description: Whether to notify page subscribers of the maintenance. + in: query + name: notify_subscribers + schema: + default: true + type: boolean + - description: The ID of the maintenance. + in: path + name: maintenance_id + required: true + schema: + format: uuid + type: string + - description: 'Comma-separated list of resources to include. Supported values: + created_by_user, last_modified_by_user, status_page.' + in: query + name: include + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchMaintenanceRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Maintenance' + description: OK + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Update maintenance + tags: + - Status Pages + x-permission: + operator: AND + permissions: + - status_pages_incident_write /api/v2/synthetics/settings/on_demand_concurrency_cap: get: description: Get the on-demand concurrency cap. diff --git a/examples/v2/status-pages/CreateMaintenance.java b/examples/v2/status-pages/CreateMaintenance.java new file mode 100644 index 00000000000..99a7a868fbd --- /dev/null +++ b/examples/v2/status-pages/CreateMaintenance.java @@ -0,0 +1,75 @@ +// Create maintenance returns "Created" response +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.StatusPagesApi; +import com.datadog.api.client.v2.model.CreateMaintenanceRequest; +import com.datadog.api.client.v2.model.CreateMaintenanceRequestData; +import com.datadog.api.client.v2.model.CreateMaintenanceRequestDataAttributes; +import com.datadog.api.client.v2.model.CreateMaintenanceRequestDataAttributesComponentsAffectedItems; +import com.datadog.api.client.v2.model.Maintenance; +import com.datadog.api.client.v2.model.PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus; +import com.datadog.api.client.v2.model.PatchMaintenanceRequestDataType; +import java.time.OffsetDateTime; +import java.util.Collections; +import java.util.UUID; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + StatusPagesApi apiInstance = new StatusPagesApi(defaultClient); + + // there is a valid "status_page" in the system + UUID STATUS_PAGE_DATA_ATTRIBUTES_COMPONENTS_0_COMPONENTS_0_ID = null; + try { + STATUS_PAGE_DATA_ATTRIBUTES_COMPONENTS_0_COMPONENTS_0_ID = + UUID.fromString( + System.getenv("STATUS_PAGE_DATA_ATTRIBUTES_COMPONENTS_0_COMPONENTS_0_ID")); + } catch (IllegalArgumentException e) { + System.err.println("Error parsing UUID: " + e.getMessage()); + } + UUID STATUS_PAGE_DATA_ID = null; + try { + STATUS_PAGE_DATA_ID = UUID.fromString(System.getenv("STATUS_PAGE_DATA_ID")); + } catch (IllegalArgumentException e) { + System.err.println("Error parsing UUID: " + e.getMessage()); + } + + CreateMaintenanceRequest body = + new CreateMaintenanceRequest() + .data( + new CreateMaintenanceRequestData() + .attributes( + new CreateMaintenanceRequestDataAttributes() + .title("API Maintenance") + .scheduledDescription( + "We will be performing maintenance on the API to improve" + + " performance.") + .inProgressDescription( + "We are currently performing maintenance on the API to improve" + + " performance.") + .completedDescription( + "We have completed maintenance on the API to improve performance.") + .startDate(OffsetDateTime.now().plusHours(1)) + .completedDate(OffsetDateTime.now().plusHours(2)) + .componentsAffected( + Collections.singletonList( + new CreateMaintenanceRequestDataAttributesComponentsAffectedItems() + .id( + STATUS_PAGE_DATA_ATTRIBUTES_COMPONENTS_0_COMPONENTS_0_ID) + .status( + PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus + .OPERATIONAL)))) + .type(PatchMaintenanceRequestDataType.MAINTENANCES)); + + try { + Maintenance result = apiInstance.createMaintenance(STATUS_PAGE_DATA_ID, body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StatusPagesApi#createMaintenance"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/status-pages/GetMaintenance.java b/examples/v2/status-pages/GetMaintenance.java new file mode 100644 index 00000000000..de9ba809ee0 --- /dev/null +++ b/examples/v2/status-pages/GetMaintenance.java @@ -0,0 +1,41 @@ +// Get maintenance returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.StatusPagesApi; +import com.datadog.api.client.v2.model.Maintenance; +import java.util.UUID; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + StatusPagesApi apiInstance = new StatusPagesApi(defaultClient); + + // there is a valid "status_page" in the system + UUID STATUS_PAGE_DATA_ID = null; + try { + STATUS_PAGE_DATA_ID = UUID.fromString(System.getenv("STATUS_PAGE_DATA_ID")); + } catch (IllegalArgumentException e) { + System.err.println("Error parsing UUID: " + e.getMessage()); + } + + // there is a valid "maintenance" in the system + UUID MAINTENANCE_DATA_ID = null; + try { + MAINTENANCE_DATA_ID = UUID.fromString(System.getenv("MAINTENANCE_DATA_ID")); + } catch (IllegalArgumentException e) { + System.err.println("Error parsing UUID: " + e.getMessage()); + } + + try { + Maintenance result = apiInstance.getMaintenance(STATUS_PAGE_DATA_ID, MAINTENANCE_DATA_ID); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StatusPagesApi#getMaintenance"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/status-pages/ListMaintenances.java b/examples/v2/status-pages/ListMaintenances.java new file mode 100644 index 00000000000..1cdadfa2e53 --- /dev/null +++ b/examples/v2/status-pages/ListMaintenances.java @@ -0,0 +1,24 @@ +// List maintenances returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.StatusPagesApi; +import com.datadog.api.client.v2.model.MaintenanceArray; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + StatusPagesApi apiInstance = new StatusPagesApi(defaultClient); + + try { + MaintenanceArray result = apiInstance.listMaintenances(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StatusPagesApi#listMaintenances"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/status-pages/UpdateMaintenance.java b/examples/v2/status-pages/UpdateMaintenance.java new file mode 100644 index 00000000000..2f01752cf05 --- /dev/null +++ b/examples/v2/status-pages/UpdateMaintenance.java @@ -0,0 +1,61 @@ +// Update maintenance returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.StatusPagesApi; +import com.datadog.api.client.v2.model.Maintenance; +import com.datadog.api.client.v2.model.PatchMaintenanceRequest; +import com.datadog.api.client.v2.model.PatchMaintenanceRequestData; +import com.datadog.api.client.v2.model.PatchMaintenanceRequestDataAttributes; +import com.datadog.api.client.v2.model.PatchMaintenanceRequestDataType; +import java.util.UUID; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + StatusPagesApi apiInstance = new StatusPagesApi(defaultClient); + + // there is a valid "status_page" in the system + UUID STATUS_PAGE_DATA_ID = null; + try { + STATUS_PAGE_DATA_ID = UUID.fromString(System.getenv("STATUS_PAGE_DATA_ID")); + } catch (IllegalArgumentException e) { + System.err.println("Error parsing UUID: " + e.getMessage()); + } + + // there is a valid "maintenance" in the system + UUID MAINTENANCE_DATA_ID = null; + try { + MAINTENANCE_DATA_ID = UUID.fromString(System.getenv("MAINTENANCE_DATA_ID")); + } catch (IllegalArgumentException e) { + System.err.println("Error parsing UUID: " + e.getMessage()); + } + + PatchMaintenanceRequest body = + new PatchMaintenanceRequest() + .data( + new PatchMaintenanceRequestData() + .attributes( + new PatchMaintenanceRequestDataAttributes() + .scheduledDescription( + "We will be performing maintenance on the API to improve" + + " performance for 40 minutes.") + .inProgressDescription( + "We are currently performing maintenance on the API to improve" + + " performance for 40 minutes.")) + .id(MAINTENANCE_DATA_ID) + .type(PatchMaintenanceRequestDataType.MAINTENANCES)); + + try { + Maintenance result = + apiInstance.updateMaintenance(STATUS_PAGE_DATA_ID, MAINTENANCE_DATA_ID, body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StatusPagesApi#updateMaintenance"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/datadog/api/client/v2/api/StatusPagesApi.java b/src/main/java/com/datadog/api/client/v2/api/StatusPagesApi.java index 11e3520d1b1..9de474a5581 100644 --- a/src/main/java/com/datadog/api/client/v2/api/StatusPagesApi.java +++ b/src/main/java/com/datadog/api/client/v2/api/StatusPagesApi.java @@ -6,11 +6,15 @@ import com.datadog.api.client.Pair; import com.datadog.api.client.v2.model.CreateComponentRequest; import com.datadog.api.client.v2.model.CreateDegradationRequest; +import com.datadog.api.client.v2.model.CreateMaintenanceRequest; import com.datadog.api.client.v2.model.CreateStatusPageRequest; import com.datadog.api.client.v2.model.Degradation; import com.datadog.api.client.v2.model.DegradationArray; +import com.datadog.api.client.v2.model.Maintenance; +import com.datadog.api.client.v2.model.MaintenanceArray; import com.datadog.api.client.v2.model.PatchComponentRequest; import com.datadog.api.client.v2.model.PatchDegradationRequest; +import com.datadog.api.client.v2.model.PatchMaintenanceRequest; import com.datadog.api.client.v2.model.PatchStatusPageRequest; import com.datadog.api.client.v2.model.StatusPage; import com.datadog.api.client.v2.model.StatusPageArray; @@ -514,6 +518,245 @@ public CompletableFuture> createDegradationWithHttpInfo new GenericType() {}); } + /** Manage optional parameters to createMaintenance. */ + public static class CreateMaintenanceOptionalParameters { + private Boolean notifySubscribers; + private String include; + + /** + * Set notifySubscribers. + * + * @param notifySubscribers Whether to notify page subscribers of the maintenance. (optional, + * default to true) + * @return CreateMaintenanceOptionalParameters + */ + public CreateMaintenanceOptionalParameters notifySubscribers(Boolean notifySubscribers) { + this.notifySubscribers = notifySubscribers; + return this; + } + + /** + * Set include. + * + * @param include Comma-separated list of resources to include. Supported values: + * created_by_user, last_modified_by_user, status_page. (optional) + * @return CreateMaintenanceOptionalParameters + */ + public CreateMaintenanceOptionalParameters include(String include) { + this.include = include; + return this; + } + } + + /** + * Create maintenance. + * + *

See {@link #createMaintenanceWithHttpInfo}. + * + * @param pageId The ID of the status page. (required) + * @param body (required) + * @return Maintenance + * @throws ApiException if fails to make API call + */ + public Maintenance createMaintenance(UUID pageId, CreateMaintenanceRequest body) + throws ApiException { + return createMaintenanceWithHttpInfo(pageId, body, new CreateMaintenanceOptionalParameters()) + .getData(); + } + + /** + * Create maintenance. + * + *

See {@link #createMaintenanceWithHttpInfoAsync}. + * + * @param pageId The ID of the status page. (required) + * @param body (required) + * @return CompletableFuture<Maintenance> + */ + public CompletableFuture createMaintenanceAsync( + UUID pageId, CreateMaintenanceRequest body) { + return createMaintenanceWithHttpInfoAsync( + pageId, body, new CreateMaintenanceOptionalParameters()) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Create maintenance. + * + *

See {@link #createMaintenanceWithHttpInfo}. + * + * @param pageId The ID of the status page. (required) + * @param body (required) + * @param parameters Optional parameters for the request. + * @return Maintenance + * @throws ApiException if fails to make API call + */ + public Maintenance createMaintenance( + UUID pageId, CreateMaintenanceRequest body, CreateMaintenanceOptionalParameters parameters) + throws ApiException { + return createMaintenanceWithHttpInfo(pageId, body, parameters).getData(); + } + + /** + * Create maintenance. + * + *

See {@link #createMaintenanceWithHttpInfoAsync}. + * + * @param pageId The ID of the status page. (required) + * @param body (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<Maintenance> + */ + public CompletableFuture createMaintenanceAsync( + UUID pageId, CreateMaintenanceRequest body, CreateMaintenanceOptionalParameters parameters) { + return createMaintenanceWithHttpInfoAsync(pageId, body, parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Creates a new maintenance. + * + * @param pageId The ID of the status page. (required) + * @param body (required) + * @param parameters Optional parameters for the request. + * @return ApiResponse<Maintenance> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + *
Response details
Status Code Description Response Headers
201 Created -
429 Too many requests -
+ */ + public ApiResponse createMaintenanceWithHttpInfo( + UUID pageId, CreateMaintenanceRequest body, CreateMaintenanceOptionalParameters parameters) + throws ApiException { + Object localVarPostBody = body; + + // verify the required parameter 'pageId' is set + if (pageId == null) { + throw new ApiException( + 400, "Missing the required parameter 'pageId' when calling createMaintenance"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling createMaintenance"); + } + Boolean notifySubscribers = parameters.notifySubscribers; + String include = parameters.include; + // create path and map variables + String localVarPath = + "/api/v2/statuspages/{page_id}/maintenances" + .replaceAll("\\{" + "page_id" + "\\}", apiClient.escapeString(pageId.toString())); + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll( + apiClient.parameterToPairs("", "notify_subscribers", notifySubscribers)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "include", include)); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.StatusPagesApi.createMaintenance", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Create maintenance. + * + *

See {@link #createMaintenanceWithHttpInfo}. + * + * @param pageId The ID of the status page. (required) + * @param body (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<Maintenance>> + */ + public CompletableFuture> createMaintenanceWithHttpInfoAsync( + UUID pageId, CreateMaintenanceRequest body, CreateMaintenanceOptionalParameters parameters) { + Object localVarPostBody = body; + + // verify the required parameter 'pageId' is set + if (pageId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'pageId' when calling createMaintenance")); + return result; + } + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'body' when calling createMaintenance")); + return result; + } + Boolean notifySubscribers = parameters.notifySubscribers; + String include = parameters.include; + // create path and map variables + String localVarPath = + "/api/v2/statuspages/{page_id}/maintenances" + .replaceAll("\\{" + "page_id" + "\\}", apiClient.escapeString(pageId.toString())); + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll( + apiClient.parameterToPairs("", "notify_subscribers", notifySubscribers)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "include", include)); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.StatusPagesApi.createMaintenance", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + /** Manage optional parameters to createStatusPage. */ public static class CreateStatusPageOptionalParameters { private String include; @@ -1589,46 +1832,50 @@ public CompletableFuture> getDegradationWithHttpInfoAsy new GenericType() {}); } - /** Manage optional parameters to getStatusPage. */ - public static class GetStatusPageOptionalParameters { + /** Manage optional parameters to getMaintenance. */ + public static class GetMaintenanceOptionalParameters { private String include; /** * Set include. * * @param include Comma-separated list of resources to include. Supported values: - * created_by_user, last_modified_by_user. (optional) - * @return GetStatusPageOptionalParameters + * created_by_user, last_modified_by_user, status_page. (optional) + * @return GetMaintenanceOptionalParameters */ - public GetStatusPageOptionalParameters include(String include) { + public GetMaintenanceOptionalParameters include(String include) { this.include = include; return this; } } /** - * Get status page. + * Get maintenance. * - *

See {@link #getStatusPageWithHttpInfo}. + *

See {@link #getMaintenanceWithHttpInfo}. * * @param pageId The ID of the status page. (required) - * @return StatusPage + * @param maintenanceId The ID of the maintenance. (required) + * @return Maintenance * @throws ApiException if fails to make API call */ - public StatusPage getStatusPage(UUID pageId) throws ApiException { - return getStatusPageWithHttpInfo(pageId, new GetStatusPageOptionalParameters()).getData(); + public Maintenance getMaintenance(UUID pageId, UUID maintenanceId) throws ApiException { + return getMaintenanceWithHttpInfo(pageId, maintenanceId, new GetMaintenanceOptionalParameters()) + .getData(); } /** - * Get status page. + * Get maintenance. * - *

See {@link #getStatusPageWithHttpInfoAsync}. + *

See {@link #getMaintenanceWithHttpInfoAsync}. * * @param pageId The ID of the status page. (required) - * @return CompletableFuture<StatusPage> + * @param maintenanceId The ID of the maintenance. (required) + * @return CompletableFuture<Maintenance> */ - public CompletableFuture getStatusPageAsync(UUID pageId) { - return getStatusPageWithHttpInfoAsync(pageId, new GetStatusPageOptionalParameters()) + public CompletableFuture getMaintenanceAsync(UUID pageId, UUID maintenanceId) { + return getMaintenanceWithHttpInfoAsync( + pageId, maintenanceId, new GetMaintenanceOptionalParameters()) .thenApply( response -> { return response.getData(); @@ -1636,32 +1883,35 @@ public CompletableFuture getStatusPageAsync(UUID pageId) { } /** - * Get status page. + * Get maintenance. * - *

See {@link #getStatusPageWithHttpInfo}. + *

See {@link #getMaintenanceWithHttpInfo}. * * @param pageId The ID of the status page. (required) + * @param maintenanceId The ID of the maintenance. (required) * @param parameters Optional parameters for the request. - * @return StatusPage + * @return Maintenance * @throws ApiException if fails to make API call */ - public StatusPage getStatusPage(UUID pageId, GetStatusPageOptionalParameters parameters) + public Maintenance getMaintenance( + UUID pageId, UUID maintenanceId, GetMaintenanceOptionalParameters parameters) throws ApiException { - return getStatusPageWithHttpInfo(pageId, parameters).getData(); + return getMaintenanceWithHttpInfo(pageId, maintenanceId, parameters).getData(); } /** - * Get status page. + * Get maintenance. * - *

See {@link #getStatusPageWithHttpInfoAsync}. + *

See {@link #getMaintenanceWithHttpInfoAsync}. * * @param pageId The ID of the status page. (required) + * @param maintenanceId The ID of the maintenance. (required) * @param parameters Optional parameters for the request. - * @return CompletableFuture<StatusPage> + * @return CompletableFuture<Maintenance> */ - public CompletableFuture getStatusPageAsync( - UUID pageId, GetStatusPageOptionalParameters parameters) { - return getStatusPageWithHttpInfoAsync(pageId, parameters) + public CompletableFuture getMaintenanceAsync( + UUID pageId, UUID maintenanceId, GetMaintenanceOptionalParameters parameters) { + return getMaintenanceWithHttpInfoAsync(pageId, maintenanceId, parameters) .thenApply( response -> { return response.getData(); @@ -1669,11 +1919,12 @@ public CompletableFuture getStatusPageAsync( } /** - * Retrieves a specific status page by its ID. + * Retrieves a specific maintenance by its ID. * * @param pageId The ID of the status page. (required) + * @param maintenanceId The ID of the maintenance. (required) * @param parameters Optional parameters for the request. - * @return ApiResponse<StatusPage> + * @return ApiResponse<Maintenance> * @throws ApiException if fails to make API call * @http.response.details * @@ -1683,20 +1934,29 @@ public CompletableFuture getStatusPageAsync( * *
429 Too many requests -
*/ - public ApiResponse getStatusPageWithHttpInfo( - UUID pageId, GetStatusPageOptionalParameters parameters) throws ApiException { + public ApiResponse getMaintenanceWithHttpInfo( + UUID pageId, UUID maintenanceId, GetMaintenanceOptionalParameters parameters) + throws ApiException { Object localVarPostBody = null; // verify the required parameter 'pageId' is set if (pageId == null) { throw new ApiException( - 400, "Missing the required parameter 'pageId' when calling getStatusPage"); + 400, "Missing the required parameter 'pageId' when calling getMaintenance"); + } + + // verify the required parameter 'maintenanceId' is set + if (maintenanceId == null) { + throw new ApiException( + 400, "Missing the required parameter 'maintenanceId' when calling getMaintenance"); } String include = parameters.include; // create path and map variables String localVarPath = - "/api/v2/statuspages/{page_id}" - .replaceAll("\\{" + "page_id" + "\\}", apiClient.escapeString(pageId.toString())); + "/api/v2/statuspages/{page_id}/maintenances/{maintenance_id}" + .replaceAll("\\{" + "page_id" + "\\}", apiClient.escapeString(pageId.toString())) + .replaceAll( + "\\{" + "maintenance_id" + "\\}", apiClient.escapeString(maintenanceId.toString())); List localVarQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); @@ -1705,7 +1965,7 @@ public ApiResponse getStatusPageWithHttpInfo( Invocation.Builder builder = apiClient.createBuilder( - "v2.StatusPagesApi.getStatusPage", + "v2.StatusPagesApi.getMaintenance", localVarPath, localVarQueryParams, localVarHeaderParams, @@ -1720,35 +1980,47 @@ public ApiResponse getStatusPageWithHttpInfo( localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } /** - * Get status page. + * Get maintenance. * - *

See {@link #getStatusPageWithHttpInfo}. + *

See {@link #getMaintenanceWithHttpInfo}. * * @param pageId The ID of the status page. (required) + * @param maintenanceId The ID of the maintenance. (required) * @param parameters Optional parameters for the request. - * @return CompletableFuture<ApiResponse<StatusPage>> + * @return CompletableFuture<ApiResponse<Maintenance>> */ - public CompletableFuture> getStatusPageWithHttpInfoAsync( - UUID pageId, GetStatusPageOptionalParameters parameters) { + public CompletableFuture> getMaintenanceWithHttpInfoAsync( + UUID pageId, UUID maintenanceId, GetMaintenanceOptionalParameters parameters) { Object localVarPostBody = null; // verify the required parameter 'pageId' is set if (pageId == null) { - CompletableFuture> result = new CompletableFuture<>(); + CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally( new ApiException( - 400, "Missing the required parameter 'pageId' when calling getStatusPage")); + 400, "Missing the required parameter 'pageId' when calling getMaintenance")); + return result; + } + + // verify the required parameter 'maintenanceId' is set + if (maintenanceId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'maintenanceId' when calling getMaintenance")); return result; } String include = parameters.include; // create path and map variables String localVarPath = - "/api/v2/statuspages/{page_id}" - .replaceAll("\\{" + "page_id" + "\\}", apiClient.escapeString(pageId.toString())); + "/api/v2/statuspages/{page_id}/maintenances/{maintenance_id}" + .replaceAll("\\{" + "page_id" + "\\}", apiClient.escapeString(pageId.toString())) + .replaceAll( + "\\{" + "maintenance_id" + "\\}", apiClient.escapeString(maintenanceId.toString())); List localVarQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); @@ -1759,7 +2031,7 @@ public CompletableFuture> getStatusPageWithHttpInfoAsync try { builder = apiClient.createBuilder( - "v2.StatusPagesApi.getStatusPage", + "v2.StatusPagesApi.getMaintenance", localVarPath, localVarQueryParams, localVarHeaderParams, @@ -1767,7 +2039,7 @@ public CompletableFuture> getStatusPageWithHttpInfoAsync new String[] {"application/json"}, new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); } catch (ApiException ex) { - CompletableFuture> result = new CompletableFuture<>(); + CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally(ex); return result; } @@ -1779,19 +2051,212 @@ public CompletableFuture> getStatusPageWithHttpInfoAsync localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } - /** Manage optional parameters to listComponents. */ - public static class ListComponentsOptionalParameters { + /** Manage optional parameters to getStatusPage. */ + public static class GetStatusPageOptionalParameters { private String include; /** * Set include. * * @param include Comma-separated list of resources to include. Supported values: - * created_by_user, last_modified_by_user, status_page, group. (optional) - * @return ListComponentsOptionalParameters + * created_by_user, last_modified_by_user. (optional) + * @return GetStatusPageOptionalParameters + */ + public GetStatusPageOptionalParameters include(String include) { + this.include = include; + return this; + } + } + + /** + * Get status page. + * + *

See {@link #getStatusPageWithHttpInfo}. + * + * @param pageId The ID of the status page. (required) + * @return StatusPage + * @throws ApiException if fails to make API call + */ + public StatusPage getStatusPage(UUID pageId) throws ApiException { + return getStatusPageWithHttpInfo(pageId, new GetStatusPageOptionalParameters()).getData(); + } + + /** + * Get status page. + * + *

See {@link #getStatusPageWithHttpInfoAsync}. + * + * @param pageId The ID of the status page. (required) + * @return CompletableFuture<StatusPage> + */ + public CompletableFuture getStatusPageAsync(UUID pageId) { + return getStatusPageWithHttpInfoAsync(pageId, new GetStatusPageOptionalParameters()) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get status page. + * + *

See {@link #getStatusPageWithHttpInfo}. + * + * @param pageId The ID of the status page. (required) + * @param parameters Optional parameters for the request. + * @return StatusPage + * @throws ApiException if fails to make API call + */ + public StatusPage getStatusPage(UUID pageId, GetStatusPageOptionalParameters parameters) + throws ApiException { + return getStatusPageWithHttpInfo(pageId, parameters).getData(); + } + + /** + * Get status page. + * + *

See {@link #getStatusPageWithHttpInfoAsync}. + * + * @param pageId The ID of the status page. (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<StatusPage> + */ + public CompletableFuture getStatusPageAsync( + UUID pageId, GetStatusPageOptionalParameters parameters) { + return getStatusPageWithHttpInfoAsync(pageId, parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Retrieves a specific status page by its ID. + * + * @param pageId The ID of the status page. (required) + * @param parameters Optional parameters for the request. + * @return ApiResponse<StatusPage> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
429 Too many requests -
+ */ + public ApiResponse getStatusPageWithHttpInfo( + UUID pageId, GetStatusPageOptionalParameters parameters) throws ApiException { + Object localVarPostBody = null; + + // verify the required parameter 'pageId' is set + if (pageId == null) { + throw new ApiException( + 400, "Missing the required parameter 'pageId' when calling getStatusPage"); + } + String include = parameters.include; + // create path and map variables + String localVarPath = + "/api/v2/statuspages/{page_id}" + .replaceAll("\\{" + "page_id" + "\\}", apiClient.escapeString(pageId.toString())); + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "include", include)); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.StatusPagesApi.getStatusPage", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get status page. + * + *

See {@link #getStatusPageWithHttpInfo}. + * + * @param pageId The ID of the status page. (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<StatusPage>> + */ + public CompletableFuture> getStatusPageWithHttpInfoAsync( + UUID pageId, GetStatusPageOptionalParameters parameters) { + Object localVarPostBody = null; + + // verify the required parameter 'pageId' is set + if (pageId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'pageId' when calling getStatusPage")); + return result; + } + String include = parameters.include; + // create path and map variables + String localVarPath = + "/api/v2/statuspages/{page_id}" + .replaceAll("\\{" + "page_id" + "\\}", apiClient.escapeString(pageId.toString())); + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "include", include)); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.StatusPagesApi.getStatusPage", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** Manage optional parameters to listComponents. */ + public static class ListComponentsOptionalParameters { + private String include; + + /** + * Set include. + * + * @param include Comma-separated list of resources to include. Supported values: + * created_by_user, last_modified_by_user, status_page, group. (optional) + * @return ListComponentsOptionalParameters */ public ListComponentsOptionalParameters include(String include) { this.include = include; @@ -1982,14 +2447,265 @@ public static class ListDegradationsOptionalParameters { private Integer pageLimit; private String include; private String filterStatus; + private String sort; + + /** + * Set filterPageId. + * + * @param filterPageId Optional page id filter. (optional) + * @return ListDegradationsOptionalParameters + */ + public ListDegradationsOptionalParameters filterPageId(String filterPageId) { + this.filterPageId = filterPageId; + return this; + } + + /** + * Set pageOffset. + * + * @param pageOffset Offset to use as the start of the page. (optional, default to 0) + * @return ListDegradationsOptionalParameters + */ + public ListDegradationsOptionalParameters pageOffset(Integer pageOffset) { + this.pageOffset = pageOffset; + return this; + } + + /** + * Set pageLimit. + * + * @param pageLimit The number of degradations to return per page. (optional, default to 50) + * @return ListDegradationsOptionalParameters + */ + public ListDegradationsOptionalParameters pageLimit(Integer pageLimit) { + this.pageLimit = pageLimit; + return this; + } + + /** + * Set include. + * + * @param include Comma-separated list of resources to include. Supported values: + * created_by_user, last_modified_by_user, status_page. (optional) + * @return ListDegradationsOptionalParameters + */ + public ListDegradationsOptionalParameters include(String include) { + this.include = include; + return this; + } + + /** + * Set filterStatus. + * + * @param filterStatus Optional degradation status filter. Supported values: investigating, + * identified, monitoring, resolved. (optional) + * @return ListDegradationsOptionalParameters + */ + public ListDegradationsOptionalParameters filterStatus(String filterStatus) { + this.filterStatus = filterStatus; + return this; + } + + /** + * Set sort. + * + * @param sort Sort order. Prefix with '-' for descending. Supported values: created_at, + * -created_at, modified_at, -modified_at. (optional) + * @return ListDegradationsOptionalParameters + */ + public ListDegradationsOptionalParameters sort(String sort) { + this.sort = sort; + return this; + } + } + + /** + * List degradations. + * + *

See {@link #listDegradationsWithHttpInfo}. + * + * @return DegradationArray + * @throws ApiException if fails to make API call + */ + public DegradationArray listDegradations() throws ApiException { + return listDegradationsWithHttpInfo(new ListDegradationsOptionalParameters()).getData(); + } + + /** + * List degradations. + * + *

See {@link #listDegradationsWithHttpInfoAsync}. + * + * @return CompletableFuture<DegradationArray> + */ + public CompletableFuture listDegradationsAsync() { + return listDegradationsWithHttpInfoAsync(new ListDegradationsOptionalParameters()) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * List degradations. + * + *

See {@link #listDegradationsWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return DegradationArray + * @throws ApiException if fails to make API call + */ + public DegradationArray listDegradations(ListDegradationsOptionalParameters parameters) + throws ApiException { + return listDegradationsWithHttpInfo(parameters).getData(); + } + + /** + * List degradations. + * + *

See {@link #listDegradationsWithHttpInfoAsync}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<DegradationArray> + */ + public CompletableFuture listDegradationsAsync( + ListDegradationsOptionalParameters parameters) { + return listDegradationsWithHttpInfoAsync(parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Lists all degradations for the organization. Optionally filter by status and page. + * + * @param parameters Optional parameters for the request. + * @return ApiResponse<DegradationArray> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
429 Too many requests -
+ */ + public ApiResponse listDegradationsWithHttpInfo( + ListDegradationsOptionalParameters parameters) throws ApiException { + Object localVarPostBody = null; + String filterPageId = parameters.filterPageId; + Integer pageOffset = parameters.pageOffset; + Integer pageLimit = parameters.pageLimit; + String include = parameters.include; + String filterStatus = parameters.filterStatus; + String sort = parameters.sort; + // create path and map variables + String localVarPath = "/api/v2/statuspages/degradations"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[page_id]", filterPageId)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[offset]", pageOffset)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "include", include)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[status]", filterStatus)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "sort", sort)); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.StatusPagesApi.listDegradations", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * List degradations. + * + *

See {@link #listDegradationsWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<DegradationArray>> + */ + public CompletableFuture> listDegradationsWithHttpInfoAsync( + ListDegradationsOptionalParameters parameters) { + Object localVarPostBody = null; + String filterPageId = parameters.filterPageId; + Integer pageOffset = parameters.pageOffset; + Integer pageLimit = parameters.pageLimit; + String include = parameters.include; + String filterStatus = parameters.filterStatus; + String sort = parameters.sort; + // create path and map variables + String localVarPath = "/api/v2/statuspages/degradations"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[page_id]", filterPageId)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[offset]", pageOffset)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "include", include)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[status]", filterStatus)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "sort", sort)); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.StatusPagesApi.listDegradations", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** Manage optional parameters to listMaintenances. */ + public static class ListMaintenancesOptionalParameters { + private String filterPageId; + private Integer pageOffset; + private Integer pageLimit; + private String include; + private String filterStatus; + private String sort; /** * Set filterPageId. * * @param filterPageId Optional page id filter. (optional) - * @return ListDegradationsOptionalParameters + * @return ListMaintenancesOptionalParameters */ - public ListDegradationsOptionalParameters filterPageId(String filterPageId) { + public ListMaintenancesOptionalParameters filterPageId(String filterPageId) { this.filterPageId = filterPageId; return this; } @@ -1998,9 +2714,9 @@ public ListDegradationsOptionalParameters filterPageId(String filterPageId) { * Set pageOffset. * * @param pageOffset Offset to use as the start of the page. (optional, default to 0) - * @return ListDegradationsOptionalParameters + * @return ListMaintenancesOptionalParameters */ - public ListDegradationsOptionalParameters pageOffset(Integer pageOffset) { + public ListMaintenancesOptionalParameters pageOffset(Integer pageOffset) { this.pageOffset = pageOffset; return this; } @@ -2008,10 +2724,10 @@ public ListDegradationsOptionalParameters pageOffset(Integer pageOffset) { /** * Set pageLimit. * - * @param pageLimit The number of degradations to return per page. (optional, default to 50) - * @return ListDegradationsOptionalParameters + * @param pageLimit The number of maintenances to return per page. (optional, default to 50) + * @return ListMaintenancesOptionalParameters */ - public ListDegradationsOptionalParameters pageLimit(Integer pageLimit) { + public ListMaintenancesOptionalParameters pageLimit(Integer pageLimit) { this.pageLimit = pageLimit; return this; } @@ -2021,9 +2737,9 @@ public ListDegradationsOptionalParameters pageLimit(Integer pageLimit) { * * @param include Comma-separated list of resources to include. Supported values: * created_by_user, last_modified_by_user, status_page. (optional) - * @return ListDegradationsOptionalParameters + * @return ListMaintenancesOptionalParameters */ - public ListDegradationsOptionalParameters include(String include) { + public ListMaintenancesOptionalParameters include(String include) { this.include = include; return this; } @@ -2031,37 +2747,49 @@ public ListDegradationsOptionalParameters include(String include) { /** * Set filterStatus. * - * @param filterStatus Optional degradation status filter. Supported values: investigating, - * identified, monitoring, resolved. (optional) - * @return ListDegradationsOptionalParameters + * @param filterStatus Optional maintenance status filter. Supported values: scheduled, + * in_progress, completed, canceled. (optional) + * @return ListMaintenancesOptionalParameters */ - public ListDegradationsOptionalParameters filterStatus(String filterStatus) { + public ListMaintenancesOptionalParameters filterStatus(String filterStatus) { this.filterStatus = filterStatus; return this; } + + /** + * Set sort. + * + * @param sort Sort order. Prefix with '-' for descending. Supported values: created_at, + * -created_at, start_date, -start_date. (optional) + * @return ListMaintenancesOptionalParameters + */ + public ListMaintenancesOptionalParameters sort(String sort) { + this.sort = sort; + return this; + } } /** - * List degradations. + * List maintenances. * - *

See {@link #listDegradationsWithHttpInfo}. + *

See {@link #listMaintenancesWithHttpInfo}. * - * @return DegradationArray + * @return MaintenanceArray * @throws ApiException if fails to make API call */ - public DegradationArray listDegradations() throws ApiException { - return listDegradationsWithHttpInfo(new ListDegradationsOptionalParameters()).getData(); + public MaintenanceArray listMaintenances() throws ApiException { + return listMaintenancesWithHttpInfo(new ListMaintenancesOptionalParameters()).getData(); } /** - * List degradations. + * List maintenances. * - *

See {@link #listDegradationsWithHttpInfoAsync}. + *

See {@link #listMaintenancesWithHttpInfoAsync}. * - * @return CompletableFuture<DegradationArray> + * @return CompletableFuture<MaintenanceArray> */ - public CompletableFuture listDegradationsAsync() { - return listDegradationsWithHttpInfoAsync(new ListDegradationsOptionalParameters()) + public CompletableFuture listMaintenancesAsync() { + return listMaintenancesWithHttpInfoAsync(new ListMaintenancesOptionalParameters()) .thenApply( response -> { return response.getData(); @@ -2069,30 +2797,30 @@ public CompletableFuture listDegradationsAsync() { } /** - * List degradations. + * List maintenances. * - *

See {@link #listDegradationsWithHttpInfo}. + *

See {@link #listMaintenancesWithHttpInfo}. * * @param parameters Optional parameters for the request. - * @return DegradationArray + * @return MaintenanceArray * @throws ApiException if fails to make API call */ - public DegradationArray listDegradations(ListDegradationsOptionalParameters parameters) + public MaintenanceArray listMaintenances(ListMaintenancesOptionalParameters parameters) throws ApiException { - return listDegradationsWithHttpInfo(parameters).getData(); + return listMaintenancesWithHttpInfo(parameters).getData(); } /** - * List degradations. + * List maintenances. * - *

See {@link #listDegradationsWithHttpInfoAsync}. + *

See {@link #listMaintenancesWithHttpInfoAsync}. * * @param parameters Optional parameters for the request. - * @return CompletableFuture<DegradationArray> + * @return CompletableFuture<MaintenanceArray> */ - public CompletableFuture listDegradationsAsync( - ListDegradationsOptionalParameters parameters) { - return listDegradationsWithHttpInfoAsync(parameters) + public CompletableFuture listMaintenancesAsync( + ListMaintenancesOptionalParameters parameters) { + return listMaintenancesWithHttpInfoAsync(parameters) .thenApply( response -> { return response.getData(); @@ -2100,10 +2828,10 @@ public CompletableFuture listDegradationsAsync( } /** - * Lists all degradations for the organization. Optionally filter by status and page. + * Lists all maintenances for the organization. Optionally filter by status and page. * * @param parameters Optional parameters for the request. - * @return ApiResponse<DegradationArray> + * @return ApiResponse<MaintenanceArray> * @throws ApiException if fails to make API call * @http.response.details * @@ -2113,16 +2841,17 @@ public CompletableFuture listDegradationsAsync( * *
429 Too many requests -
*/ - public ApiResponse listDegradationsWithHttpInfo( - ListDegradationsOptionalParameters parameters) throws ApiException { + public ApiResponse listMaintenancesWithHttpInfo( + ListMaintenancesOptionalParameters parameters) throws ApiException { Object localVarPostBody = null; String filterPageId = parameters.filterPageId; Integer pageOffset = parameters.pageOffset; Integer pageLimit = parameters.pageLimit; String include = parameters.include; String filterStatus = parameters.filterStatus; + String sort = parameters.sort; // create path and map variables - String localVarPath = "/api/v2/statuspages/degradations"; + String localVarPath = "/api/v2/statuspages/maintenances"; List localVarQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); @@ -2132,10 +2861,11 @@ public ApiResponse listDegradationsWithHttpInfo( localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit)); localVarQueryParams.addAll(apiClient.parameterToPairs("", "include", include)); localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[status]", filterStatus)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "sort", sort)); Invocation.Builder builder = apiClient.createBuilder( - "v2.StatusPagesApi.listDegradations", + "v2.StatusPagesApi.listMaintenances", localVarPath, localVarQueryParams, localVarHeaderParams, @@ -2150,27 +2880,28 @@ public ApiResponse listDegradationsWithHttpInfo( localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } /** - * List degradations. + * List maintenances. * - *

See {@link #listDegradationsWithHttpInfo}. + *

See {@link #listMaintenancesWithHttpInfo}. * * @param parameters Optional parameters for the request. - * @return CompletableFuture<ApiResponse<DegradationArray>> + * @return CompletableFuture<ApiResponse<MaintenanceArray>> */ - public CompletableFuture> listDegradationsWithHttpInfoAsync( - ListDegradationsOptionalParameters parameters) { + public CompletableFuture> listMaintenancesWithHttpInfoAsync( + ListMaintenancesOptionalParameters parameters) { Object localVarPostBody = null; String filterPageId = parameters.filterPageId; Integer pageOffset = parameters.pageOffset; Integer pageLimit = parameters.pageLimit; String include = parameters.include; String filterStatus = parameters.filterStatus; + String sort = parameters.sort; // create path and map variables - String localVarPath = "/api/v2/statuspages/degradations"; + String localVarPath = "/api/v2/statuspages/maintenances"; List localVarQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); @@ -2180,12 +2911,13 @@ public CompletableFuture> listDegradationsWithHttp localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit)); localVarQueryParams.addAll(apiClient.parameterToPairs("", "include", include)); localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[status]", filterStatus)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "sort", sort)); Invocation.Builder builder; try { builder = apiClient.createBuilder( - "v2.StatusPagesApi.listDegradations", + "v2.StatusPagesApi.listMaintenances", localVarPath, localVarQueryParams, localVarHeaderParams, @@ -2193,7 +2925,7 @@ public CompletableFuture> listDegradationsWithHttp new String[] {"application/json"}, new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); } catch (ApiException ex) { - CompletableFuture> result = new CompletableFuture<>(); + CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally(ex); return result; } @@ -2205,7 +2937,7 @@ public CompletableFuture> listDegradationsWithHttp localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } /** Manage optional parameters to listStatusPages. */ @@ -2944,6 +3676,284 @@ public CompletableFuture> updateDegradationWithHttpInfo new GenericType() {}); } + /** Manage optional parameters to updateMaintenance. */ + public static class UpdateMaintenanceOptionalParameters { + private Boolean notifySubscribers; + private String include; + + /** + * Set notifySubscribers. + * + * @param notifySubscribers Whether to notify page subscribers of the maintenance. (optional, + * default to true) + * @return UpdateMaintenanceOptionalParameters + */ + public UpdateMaintenanceOptionalParameters notifySubscribers(Boolean notifySubscribers) { + this.notifySubscribers = notifySubscribers; + return this; + } + + /** + * Set include. + * + * @param include Comma-separated list of resources to include. Supported values: + * created_by_user, last_modified_by_user, status_page. (optional) + * @return UpdateMaintenanceOptionalParameters + */ + public UpdateMaintenanceOptionalParameters include(String include) { + this.include = include; + return this; + } + } + + /** + * Update maintenance. + * + *

See {@link #updateMaintenanceWithHttpInfo}. + * + * @param pageId The ID of the status page. (required) + * @param maintenanceId The ID of the maintenance. (required) + * @param body (required) + * @return Maintenance + * @throws ApiException if fails to make API call + */ + public Maintenance updateMaintenance( + UUID pageId, UUID maintenanceId, PatchMaintenanceRequest body) throws ApiException { + return updateMaintenanceWithHttpInfo( + pageId, maintenanceId, body, new UpdateMaintenanceOptionalParameters()) + .getData(); + } + + /** + * Update maintenance. + * + *

See {@link #updateMaintenanceWithHttpInfoAsync}. + * + * @param pageId The ID of the status page. (required) + * @param maintenanceId The ID of the maintenance. (required) + * @param body (required) + * @return CompletableFuture<Maintenance> + */ + public CompletableFuture updateMaintenanceAsync( + UUID pageId, UUID maintenanceId, PatchMaintenanceRequest body) { + return updateMaintenanceWithHttpInfoAsync( + pageId, maintenanceId, body, new UpdateMaintenanceOptionalParameters()) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Update maintenance. + * + *

See {@link #updateMaintenanceWithHttpInfo}. + * + * @param pageId The ID of the status page. (required) + * @param maintenanceId The ID of the maintenance. (required) + * @param body (required) + * @param parameters Optional parameters for the request. + * @return Maintenance + * @throws ApiException if fails to make API call + */ + public Maintenance updateMaintenance( + UUID pageId, + UUID maintenanceId, + PatchMaintenanceRequest body, + UpdateMaintenanceOptionalParameters parameters) + throws ApiException { + return updateMaintenanceWithHttpInfo(pageId, maintenanceId, body, parameters).getData(); + } + + /** + * Update maintenance. + * + *

See {@link #updateMaintenanceWithHttpInfoAsync}. + * + * @param pageId The ID of the status page. (required) + * @param maintenanceId The ID of the maintenance. (required) + * @param body (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<Maintenance> + */ + public CompletableFuture updateMaintenanceAsync( + UUID pageId, + UUID maintenanceId, + PatchMaintenanceRequest body, + UpdateMaintenanceOptionalParameters parameters) { + return updateMaintenanceWithHttpInfoAsync(pageId, maintenanceId, body, parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Updates an existing maintenance's attributes. + * + * @param pageId The ID of the status page. (required) + * @param maintenanceId The ID of the maintenance. (required) + * @param body (required) + * @param parameters Optional parameters for the request. + * @return ApiResponse<Maintenance> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
429 Too many requests -
+ */ + public ApiResponse updateMaintenanceWithHttpInfo( + UUID pageId, + UUID maintenanceId, + PatchMaintenanceRequest body, + UpdateMaintenanceOptionalParameters parameters) + throws ApiException { + Object localVarPostBody = body; + + // verify the required parameter 'pageId' is set + if (pageId == null) { + throw new ApiException( + 400, "Missing the required parameter 'pageId' when calling updateMaintenance"); + } + + // verify the required parameter 'maintenanceId' is set + if (maintenanceId == null) { + throw new ApiException( + 400, "Missing the required parameter 'maintenanceId' when calling updateMaintenance"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling updateMaintenance"); + } + Boolean notifySubscribers = parameters.notifySubscribers; + String include = parameters.include; + // create path and map variables + String localVarPath = + "/api/v2/statuspages/{page_id}/maintenances/{maintenance_id}" + .replaceAll("\\{" + "page_id" + "\\}", apiClient.escapeString(pageId.toString())) + .replaceAll( + "\\{" + "maintenance_id" + "\\}", apiClient.escapeString(maintenanceId.toString())); + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll( + apiClient.parameterToPairs("", "notify_subscribers", notifySubscribers)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "include", include)); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.StatusPagesApi.updateMaintenance", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "PATCH", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Update maintenance. + * + *

See {@link #updateMaintenanceWithHttpInfo}. + * + * @param pageId The ID of the status page. (required) + * @param maintenanceId The ID of the maintenance. (required) + * @param body (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<Maintenance>> + */ + public CompletableFuture> updateMaintenanceWithHttpInfoAsync( + UUID pageId, + UUID maintenanceId, + PatchMaintenanceRequest body, + UpdateMaintenanceOptionalParameters parameters) { + Object localVarPostBody = body; + + // verify the required parameter 'pageId' is set + if (pageId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'pageId' when calling updateMaintenance")); + return result; + } + + // verify the required parameter 'maintenanceId' is set + if (maintenanceId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'maintenanceId' when calling updateMaintenance")); + return result; + } + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'body' when calling updateMaintenance")); + return result; + } + Boolean notifySubscribers = parameters.notifySubscribers; + String include = parameters.include; + // create path and map variables + String localVarPath = + "/api/v2/statuspages/{page_id}/maintenances/{maintenance_id}" + .replaceAll("\\{" + "page_id" + "\\}", apiClient.escapeString(pageId.toString())) + .replaceAll( + "\\{" + "maintenance_id" + "\\}", apiClient.escapeString(maintenanceId.toString())); + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll( + apiClient.parameterToPairs("", "notify_subscribers", notifySubscribers)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "include", include)); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.StatusPagesApi.updateMaintenance", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "PATCH", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + /** Manage optional parameters to updateStatusPage. */ public static class UpdateStatusPageOptionalParameters { private Boolean deleteSubscribers; diff --git a/src/main/java/com/datadog/api/client/v2/model/CreateMaintenanceRequest.java b/src/main/java/com/datadog/api/client/v2/model/CreateMaintenanceRequest.java new file mode 100644 index 00000000000..39c181db2d7 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CreateMaintenanceRequest.java @@ -0,0 +1,136 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** */ +@JsonPropertyOrder({CreateMaintenanceRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CreateMaintenanceRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private CreateMaintenanceRequestData data; + + public CreateMaintenanceRequest data(CreateMaintenanceRequestData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Getdata + * + * @return data + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public CreateMaintenanceRequestData getData() { + return data; + } + + public void setData(CreateMaintenanceRequestData data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CreateMaintenanceRequest + */ + @JsonAnySetter + public CreateMaintenanceRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CreateMaintenanceRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateMaintenanceRequest createMaintenanceRequest = (CreateMaintenanceRequest) o; + return Objects.equals(this.data, createMaintenanceRequest.data) + && Objects.equals(this.additionalProperties, createMaintenanceRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreateMaintenanceRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CreateMaintenanceRequestData.java b/src/main/java/com/datadog/api/client/v2/model/CreateMaintenanceRequestData.java new file mode 100644 index 00000000000..b7af09a99d2 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CreateMaintenanceRequestData.java @@ -0,0 +1,184 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** */ +@JsonPropertyOrder({ + CreateMaintenanceRequestData.JSON_PROPERTY_ATTRIBUTES, + CreateMaintenanceRequestData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CreateMaintenanceRequestData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private CreateMaintenanceRequestDataAttributes attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private PatchMaintenanceRequestDataType type = PatchMaintenanceRequestDataType.MAINTENANCES; + + public CreateMaintenanceRequestData() {} + + @JsonCreator + public CreateMaintenanceRequestData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + CreateMaintenanceRequestDataAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + PatchMaintenanceRequestDataType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public CreateMaintenanceRequestData attributes( + CreateMaintenanceRequestDataAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * The supported attributes for creating a maintenance. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CreateMaintenanceRequestDataAttributes getAttributes() { + return attributes; + } + + public void setAttributes(CreateMaintenanceRequestDataAttributes attributes) { + this.attributes = attributes; + } + + public CreateMaintenanceRequestData type(PatchMaintenanceRequestDataType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Maintenances resource type. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public PatchMaintenanceRequestDataType getType() { + return type; + } + + public void setType(PatchMaintenanceRequestDataType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CreateMaintenanceRequestData + */ + @JsonAnySetter + public CreateMaintenanceRequestData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CreateMaintenanceRequestData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateMaintenanceRequestData createMaintenanceRequestData = (CreateMaintenanceRequestData) o; + return Objects.equals(this.attributes, createMaintenanceRequestData.attributes) + && Objects.equals(this.type, createMaintenanceRequestData.type) + && Objects.equals( + this.additionalProperties, createMaintenanceRequestData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreateMaintenanceRequestData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CreateMaintenanceRequestDataAttributes.java b/src/main/java/com/datadog/api/client/v2/model/CreateMaintenanceRequestDataAttributes.java new file mode 100644 index 00000000000..ac6c9612d2c --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CreateMaintenanceRequestDataAttributes.java @@ -0,0 +1,348 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** The supported attributes for creating a maintenance. */ +@JsonPropertyOrder({ + CreateMaintenanceRequestDataAttributes.JSON_PROPERTY_COMPLETED_DATE, + CreateMaintenanceRequestDataAttributes.JSON_PROPERTY_COMPLETED_DESCRIPTION, + CreateMaintenanceRequestDataAttributes.JSON_PROPERTY_COMPONENTS_AFFECTED, + CreateMaintenanceRequestDataAttributes.JSON_PROPERTY_IN_PROGRESS_DESCRIPTION, + CreateMaintenanceRequestDataAttributes.JSON_PROPERTY_SCHEDULED_DESCRIPTION, + CreateMaintenanceRequestDataAttributes.JSON_PROPERTY_START_DATE, + CreateMaintenanceRequestDataAttributes.JSON_PROPERTY_TITLE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CreateMaintenanceRequestDataAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_COMPLETED_DATE = "completed_date"; + private OffsetDateTime completedDate; + + public static final String JSON_PROPERTY_COMPLETED_DESCRIPTION = "completed_description"; + private String completedDescription; + + public static final String JSON_PROPERTY_COMPONENTS_AFFECTED = "components_affected"; + private List componentsAffected = + new ArrayList<>(); + + public static final String JSON_PROPERTY_IN_PROGRESS_DESCRIPTION = "in_progress_description"; + private String inProgressDescription; + + public static final String JSON_PROPERTY_SCHEDULED_DESCRIPTION = "scheduled_description"; + private String scheduledDescription; + + public static final String JSON_PROPERTY_START_DATE = "start_date"; + private OffsetDateTime startDate; + + public static final String JSON_PROPERTY_TITLE = "title"; + private String title; + + public CreateMaintenanceRequestDataAttributes() {} + + @JsonCreator + public CreateMaintenanceRequestDataAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_COMPONENTS_AFFECTED) + List componentsAffected, + @JsonProperty(required = true, value = JSON_PROPERTY_TITLE) String title) { + this.componentsAffected = componentsAffected; + this.title = title; + } + + public CreateMaintenanceRequestDataAttributes completedDate(OffsetDateTime completedDate) { + this.completedDate = completedDate; + return this; + } + + /** + * Timestamp of when the maintenance was completed. + * + * @return completedDate + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_COMPLETED_DATE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getCompletedDate() { + return completedDate; + } + + public void setCompletedDate(OffsetDateTime completedDate) { + this.completedDate = completedDate; + } + + public CreateMaintenanceRequestDataAttributes completedDescription(String completedDescription) { + this.completedDescription = completedDescription; + return this; + } + + /** + * The description shown when the maintenance is completed. + * + * @return completedDescription + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_COMPLETED_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getCompletedDescription() { + return completedDescription; + } + + public void setCompletedDescription(String completedDescription) { + this.completedDescription = completedDescription; + } + + public CreateMaintenanceRequestDataAttributes componentsAffected( + List componentsAffected) { + this.componentsAffected = componentsAffected; + for (CreateMaintenanceRequestDataAttributesComponentsAffectedItems item : componentsAffected) { + this.unparsed |= item.unparsed; + } + return this; + } + + public CreateMaintenanceRequestDataAttributes addComponentsAffectedItem( + CreateMaintenanceRequestDataAttributesComponentsAffectedItems componentsAffectedItem) { + this.componentsAffected.add(componentsAffectedItem); + this.unparsed |= componentsAffectedItem.unparsed; + return this; + } + + /** + * The components affected by the maintenance. + * + * @return componentsAffected + */ + @JsonProperty(JSON_PROPERTY_COMPONENTS_AFFECTED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List + getComponentsAffected() { + return componentsAffected; + } + + public void setComponentsAffected( + List componentsAffected) { + this.componentsAffected = componentsAffected; + } + + public CreateMaintenanceRequestDataAttributes inProgressDescription( + String inProgressDescription) { + this.inProgressDescription = inProgressDescription; + return this; + } + + /** + * The description shown while the maintenance is in progress. + * + * @return inProgressDescription + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_IN_PROGRESS_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getInProgressDescription() { + return inProgressDescription; + } + + public void setInProgressDescription(String inProgressDescription) { + this.inProgressDescription = inProgressDescription; + } + + public CreateMaintenanceRequestDataAttributes scheduledDescription(String scheduledDescription) { + this.scheduledDescription = scheduledDescription; + return this; + } + + /** + * The description shown when the maintenance is scheduled. + * + * @return scheduledDescription + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SCHEDULED_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getScheduledDescription() { + return scheduledDescription; + } + + public void setScheduledDescription(String scheduledDescription) { + this.scheduledDescription = scheduledDescription; + } + + public CreateMaintenanceRequestDataAttributes startDate(OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + + /** + * Timestamp of when the maintenance is scheduled to start. + * + * @return startDate + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_START_DATE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getStartDate() { + return startDate; + } + + public void setStartDate(OffsetDateTime startDate) { + this.startDate = startDate; + } + + public CreateMaintenanceRequestDataAttributes title(String title) { + this.title = title; + return this; + } + + /** + * The title of the maintenance. + * + * @return title + */ + @JsonProperty(JSON_PROPERTY_TITLE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CreateMaintenanceRequestDataAttributes + */ + @JsonAnySetter + public CreateMaintenanceRequestDataAttributes putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CreateMaintenanceRequestDataAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateMaintenanceRequestDataAttributes createMaintenanceRequestDataAttributes = + (CreateMaintenanceRequestDataAttributes) o; + return Objects.equals(this.completedDate, createMaintenanceRequestDataAttributes.completedDate) + && Objects.equals( + this.completedDescription, createMaintenanceRequestDataAttributes.completedDescription) + && Objects.equals( + this.componentsAffected, createMaintenanceRequestDataAttributes.componentsAffected) + && Objects.equals( + this.inProgressDescription, + createMaintenanceRequestDataAttributes.inProgressDescription) + && Objects.equals( + this.scheduledDescription, createMaintenanceRequestDataAttributes.scheduledDescription) + && Objects.equals(this.startDate, createMaintenanceRequestDataAttributes.startDate) + && Objects.equals(this.title, createMaintenanceRequestDataAttributes.title) + && Objects.equals( + this.additionalProperties, createMaintenanceRequestDataAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + completedDate, + completedDescription, + componentsAffected, + inProgressDescription, + scheduledDescription, + startDate, + title, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreateMaintenanceRequestDataAttributes {\n"); + sb.append(" completedDate: ").append(toIndentedString(completedDate)).append("\n"); + sb.append(" completedDescription: ") + .append(toIndentedString(completedDescription)) + .append("\n"); + sb.append(" componentsAffected: ").append(toIndentedString(componentsAffected)).append("\n"); + sb.append(" inProgressDescription: ") + .append(toIndentedString(inProgressDescription)) + .append("\n"); + sb.append(" scheduledDescription: ") + .append(toIndentedString(scheduledDescription)) + .append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CreateMaintenanceRequestDataAttributesComponentsAffectedItems.java b/src/main/java/com/datadog/api/client/v2/model/CreateMaintenanceRequestDataAttributesComponentsAffectedItems.java new file mode 100644 index 00000000000..46eef88218a --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CreateMaintenanceRequestDataAttributesComponentsAffectedItems.java @@ -0,0 +1,209 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.UUID; + +/** */ +@JsonPropertyOrder({ + CreateMaintenanceRequestDataAttributesComponentsAffectedItems.JSON_PROPERTY_ID, + CreateMaintenanceRequestDataAttributesComponentsAffectedItems.JSON_PROPERTY_NAME, + CreateMaintenanceRequestDataAttributesComponentsAffectedItems.JSON_PROPERTY_STATUS +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CreateMaintenanceRequestDataAttributesComponentsAffectedItems { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ID = "id"; + private UUID id; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_STATUS = "status"; + private PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus status; + + public CreateMaintenanceRequestDataAttributesComponentsAffectedItems() {} + + @JsonCreator + public CreateMaintenanceRequestDataAttributesComponentsAffectedItems( + @JsonProperty(required = true, value = JSON_PROPERTY_ID) UUID id, + @JsonProperty(required = true, value = JSON_PROPERTY_STATUS) + PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus status) { + this.id = id; + this.status = status; + this.unparsed |= !status.isValid(); + } + + public CreateMaintenanceRequestDataAttributesComponentsAffectedItems id(UUID id) { + this.id = id; + return this; + } + + /** + * The ID of the component. Must be a component of type component. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public UUID getId() { + return id; + } + + public void setId(UUID id) { + this.id = id; + } + + /** + * The name of the component. + * + * @return name + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getName() { + return name; + } + + public CreateMaintenanceRequestDataAttributesComponentsAffectedItems status( + PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus status) { + this.status = status; + this.unparsed |= !status.isValid(); + return this; + } + + /** + * The status of the component. + * + * @return status + */ + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus getStatus() { + return status; + } + + public void setStatus(PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus status) { + if (!status.isValid()) { + this.unparsed = true; + } + this.status = status; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CreateMaintenanceRequestDataAttributesComponentsAffectedItems + */ + @JsonAnySetter + public CreateMaintenanceRequestDataAttributesComponentsAffectedItems putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** + * Return true if this CreateMaintenanceRequestDataAttributesComponentsAffectedItems object is + * equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateMaintenanceRequestDataAttributesComponentsAffectedItems + createMaintenanceRequestDataAttributesComponentsAffectedItems = + (CreateMaintenanceRequestDataAttributesComponentsAffectedItems) o; + return Objects.equals(this.id, createMaintenanceRequestDataAttributesComponentsAffectedItems.id) + && Objects.equals( + this.name, createMaintenanceRequestDataAttributesComponentsAffectedItems.name) + && Objects.equals( + this.status, createMaintenanceRequestDataAttributesComponentsAffectedItems.status) + && Objects.equals( + this.additionalProperties, + createMaintenanceRequestDataAttributesComponentsAffectedItems.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(id, name, status, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreateMaintenanceRequestDataAttributesComponentsAffectedItems {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/Degradation.java b/src/main/java/com/datadog/api/client/v2/model/Degradation.java index c3ce3e7fd8a..903c53052a4 100644 --- a/src/main/java/com/datadog/api/client/v2/model/Degradation.java +++ b/src/main/java/com/datadog/api/client/v2/model/Degradation.java @@ -28,7 +28,7 @@ public class Degradation { private DegradationData data; public static final String JSON_PROPERTY_INCLUDED = "included"; - private List included = null; + private List included = null; public Degradation data(DegradationData data) { this.data = data; @@ -52,15 +52,15 @@ public void setData(DegradationData data) { this.data = data; } - public Degradation included(List included) { + public Degradation included(List included) { this.included = included; - for (DegradationArrayIncluded item : included) { + for (DegradationIncluded item : included) { this.unparsed |= item.unparsed; } return this; } - public Degradation addIncludedItem(DegradationArrayIncluded includedItem) { + public Degradation addIncludedItem(DegradationIncluded includedItem) { if (this.included == null) { this.included = new ArrayList<>(); } @@ -78,11 +78,11 @@ public Degradation addIncludedItem(DegradationArrayIncluded includedItem) { @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_INCLUDED) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public List getIncluded() { + public List getIncluded() { return included; } - public void setIncluded(List included) { + public void setIncluded(List included) { this.included = included; } diff --git a/src/main/java/com/datadog/api/client/v2/model/DegradationArray.java b/src/main/java/com/datadog/api/client/v2/model/DegradationArray.java index 7927cc7917f..a5e06eaba21 100644 --- a/src/main/java/com/datadog/api/client/v2/model/DegradationArray.java +++ b/src/main/java/com/datadog/api/client/v2/model/DegradationArray.java @@ -33,7 +33,7 @@ public class DegradationArray { private List data = new ArrayList<>(); public static final String JSON_PROPERTY_INCLUDED = "included"; - private List included = null; + private List included = null; public static final String JSON_PROPERTY_META = "meta"; private StatusPagesResponseMeta meta; @@ -75,15 +75,15 @@ public void setData(List data) { this.data = data; } - public DegradationArray included(List included) { + public DegradationArray included(List included) { this.included = included; - for (DegradationArrayIncluded item : included) { + for (DegradationIncluded item : included) { this.unparsed |= item.unparsed; } return this; } - public DegradationArray addIncludedItem(DegradationArrayIncluded includedItem) { + public DegradationArray addIncludedItem(DegradationIncluded includedItem) { if (this.included == null) { this.included = new ArrayList<>(); } @@ -101,11 +101,11 @@ public DegradationArray addIncludedItem(DegradationArrayIncluded includedItem) { @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_INCLUDED) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public List getIncluded() { + public List getIncluded() { return included; } - public void setIncluded(List included) { + public void setIncluded(List included) { this.included = included; } diff --git a/src/main/java/com/datadog/api/client/v2/model/DegradationDataAttributes.java b/src/main/java/com/datadog/api/client/v2/model/DegradationDataAttributes.java index b46f82bee07..9c03c1b040d 100644 --- a/src/main/java/com/datadog/api/client/v2/model/DegradationDataAttributes.java +++ b/src/main/java/com/datadog/api/client/v2/model/DegradationDataAttributes.java @@ -25,6 +25,7 @@ DegradationDataAttributes.JSON_PROPERTY_CREATED_AT, DegradationDataAttributes.JSON_PROPERTY_DESCRIPTION, DegradationDataAttributes.JSON_PROPERTY_MODIFIED_AT, + DegradationDataAttributes.JSON_PROPERTY_PROMISED_NEXT_UPDATE_AT, DegradationDataAttributes.JSON_PROPERTY_STATUS, DegradationDataAttributes.JSON_PROPERTY_TITLE, DegradationDataAttributes.JSON_PROPERTY_UPDATES @@ -45,6 +46,9 @@ public class DegradationDataAttributes { public static final String JSON_PROPERTY_MODIFIED_AT = "modified_at"; private OffsetDateTime modifiedAt; + public static final String JSON_PROPERTY_PROMISED_NEXT_UPDATE_AT = "promised_next_update_at"; + private String promisedNextUpdateAt; + public static final String JSON_PROPERTY_STATUS = "status"; private CreateDegradationRequestDataAttributesStatus status; @@ -153,6 +157,27 @@ public void setModifiedAt(OffsetDateTime modifiedAt) { this.modifiedAt = modifiedAt; } + public DegradationDataAttributes promisedNextUpdateAt(String promisedNextUpdateAt) { + this.promisedNextUpdateAt = promisedNextUpdateAt; + return this; + } + + /** + * GetpromisedNextUpdateAt + * + * @return promisedNextUpdateAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PROMISED_NEXT_UPDATE_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getPromisedNextUpdateAt() { + return promisedNextUpdateAt; + } + + public void setPromisedNextUpdateAt(String promisedNextUpdateAt) { + this.promisedNextUpdateAt = promisedNextUpdateAt; + } + public DegradationDataAttributes status(CreateDegradationRequestDataAttributesStatus status) { this.status = status; this.unparsed |= !status.isValid(); @@ -293,6 +318,7 @@ public boolean equals(Object o) { && Objects.equals(this.createdAt, degradationDataAttributes.createdAt) && Objects.equals(this.description, degradationDataAttributes.description) && Objects.equals(this.modifiedAt, degradationDataAttributes.modifiedAt) + && Objects.equals(this.promisedNextUpdateAt, degradationDataAttributes.promisedNextUpdateAt) && Objects.equals(this.status, degradationDataAttributes.status) && Objects.equals(this.title, degradationDataAttributes.title) && Objects.equals(this.updates, degradationDataAttributes.updates) @@ -307,6 +333,7 @@ public int hashCode() { createdAt, description, modifiedAt, + promisedNextUpdateAt, status, title, updates, @@ -321,6 +348,9 @@ public String toString() { sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" modifiedAt: ").append(toIndentedString(modifiedAt)).append("\n"); + sb.append(" promisedNextUpdateAt: ") + .append(toIndentedString(promisedNextUpdateAt)) + .append("\n"); sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" title: ").append(toIndentedString(title)).append("\n"); sb.append(" updates: ").append(toIndentedString(updates)).append("\n"); diff --git a/src/main/java/com/datadog/api/client/v2/model/DegradationArrayIncluded.java b/src/main/java/com/datadog/api/client/v2/model/DegradationIncluded.java similarity index 87% rename from src/main/java/com/datadog/api/client/v2/model/DegradationArrayIncluded.java rename to src/main/java/com/datadog/api/client/v2/model/DegradationIncluded.java index ba9d26e414c..594f9dcd9ad 100644 --- a/src/main/java/com/datadog/api/client/v2/model/DegradationArrayIncluded.java +++ b/src/main/java/com/datadog/api/client/v2/model/DegradationIncluded.java @@ -36,43 +36,41 @@ @jakarta.annotation.Generated( value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") -@JsonDeserialize(using = DegradationArrayIncluded.DegradationArrayIncludedDeserializer.class) -@JsonSerialize(using = DegradationArrayIncluded.DegradationArrayIncludedSerializer.class) -public class DegradationArrayIncluded extends AbstractOpenApiSchema { - private static final Logger log = Logger.getLogger(DegradationArrayIncluded.class.getName()); +@JsonDeserialize(using = DegradationIncluded.DegradationIncludedDeserializer.class) +@JsonSerialize(using = DegradationIncluded.DegradationIncludedSerializer.class) +public class DegradationIncluded extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(DegradationIncluded.class.getName()); @JsonIgnore public boolean unparsed = false; - public static class DegradationArrayIncludedSerializer - extends StdSerializer { - public DegradationArrayIncludedSerializer(Class t) { + public static class DegradationIncludedSerializer extends StdSerializer { + public DegradationIncludedSerializer(Class t) { super(t); } - public DegradationArrayIncludedSerializer() { + public DegradationIncludedSerializer() { this(null); } @Override public void serialize( - DegradationArrayIncluded value, JsonGenerator jgen, SerializerProvider provider) + DegradationIncluded value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeObject(value.getActualInstance()); } } - public static class DegradationArrayIncludedDeserializer - extends StdDeserializer { - public DegradationArrayIncludedDeserializer() { - this(DegradationArrayIncluded.class); + public static class DegradationIncludedDeserializer extends StdDeserializer { + public DegradationIncludedDeserializer() { + this(DegradationIncluded.class); } - public DegradationArrayIncludedDeserializer(Class vc) { + public DegradationIncludedDeserializer(Class vc) { super(vc); } @Override - public DegradationArrayIncluded deserialize(JsonParser jp, DeserializationContext ctxt) + public DegradationIncluded deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { JsonNode tree = jp.readValueAsTree(); Object deserialized = null; @@ -169,7 +167,7 @@ public DegradationArrayIncluded deserialize(JsonParser jp, DeserializationContex log.log(Level.FINER, "Input data does not match schema 'StatusPageAsIncluded'", e); } - DegradationArrayIncluded ret = new DegradationArrayIncluded(); + DegradationIncluded ret = new DegradationIncluded(); if (match == 1) { ret.setActualInstance(deserialized); } else { @@ -185,25 +183,25 @@ public DegradationArrayIncluded deserialize(JsonParser jp, DeserializationContex /** Handle deserialization of the 'null' value. */ @Override - public DegradationArrayIncluded getNullValue(DeserializationContext ctxt) + public DegradationIncluded getNullValue(DeserializationContext ctxt) throws JsonMappingException { - throw new JsonMappingException(ctxt.getParser(), "DegradationArrayIncluded cannot be null"); + throw new JsonMappingException(ctxt.getParser(), "DegradationIncluded cannot be null"); } } // store a list of schema names defined in oneOf public static final Map schemas = new HashMap(); - public DegradationArrayIncluded() { + public DegradationIncluded() { super("oneOf", Boolean.FALSE); } - public DegradationArrayIncluded(StatusPagesUser o) { + public DegradationIncluded(StatusPagesUser o) { super("oneOf", Boolean.FALSE); setActualInstance(o); } - public DegradationArrayIncluded(StatusPageAsIncluded o) { + public DegradationIncluded(StatusPageAsIncluded o) { super("oneOf", Boolean.FALSE); setActualInstance(o); } @@ -211,12 +209,12 @@ public DegradationArrayIncluded(StatusPageAsIncluded o) { static { schemas.put("StatusPagesUser", new GenericType() {}); schemas.put("StatusPageAsIncluded", new GenericType() {}); - JSON.registerDescendants(DegradationArrayIncluded.class, Collections.unmodifiableMap(schemas)); + JSON.registerDescendants(DegradationIncluded.class, Collections.unmodifiableMap(schemas)); } @Override public Map getSchemas() { - return DegradationArrayIncluded.schemas; + return DegradationIncluded.schemas; } /** diff --git a/src/main/java/com/datadog/api/client/v2/model/Maintenance.java b/src/main/java/com/datadog/api/client/v2/model/Maintenance.java new file mode 100644 index 00000000000..e6609ea80f1 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/Maintenance.java @@ -0,0 +1,177 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** */ +@JsonPropertyOrder({Maintenance.JSON_PROPERTY_DATA, Maintenance.JSON_PROPERTY_INCLUDED}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class Maintenance { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private MaintenanceData data; + + public static final String JSON_PROPERTY_INCLUDED = "included"; + private List included = null; + + public Maintenance data(MaintenanceData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Getdata + * + * @return data + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public MaintenanceData getData() { + return data; + } + + public void setData(MaintenanceData data) { + this.data = data; + } + + public Maintenance included(List included) { + this.included = included; + for (DegradationIncluded item : included) { + this.unparsed |= item.unparsed; + } + return this; + } + + public Maintenance addIncludedItem(DegradationIncluded includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + this.unparsed |= includedItem.unparsed; + return this; + } + + /** + * The included related resources of a maintenance. Client must explicitly request these resources + * by name in the include query parameter. + * + * @return included + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_INCLUDED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getIncluded() { + return included; + } + + public void setIncluded(List included) { + this.included = included; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return Maintenance + */ + @JsonAnySetter + public Maintenance putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this Maintenance object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Maintenance maintenance = (Maintenance) o; + return Objects.equals(this.data, maintenance.data) + && Objects.equals(this.included, maintenance.included) + && Objects.equals(this.additionalProperties, maintenance.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, included, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Maintenance {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/MaintenanceArray.java b/src/main/java/com/datadog/api/client/v2/model/MaintenanceArray.java new file mode 100644 index 00000000000..848857b392e --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/MaintenanceArray.java @@ -0,0 +1,224 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** */ +@JsonPropertyOrder({ + MaintenanceArray.JSON_PROPERTY_DATA, + MaintenanceArray.JSON_PROPERTY_INCLUDED, + MaintenanceArray.JSON_PROPERTY_META +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class MaintenanceArray { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = new ArrayList<>(); + + public static final String JSON_PROPERTY_INCLUDED = "included"; + private List included = null; + + public static final String JSON_PROPERTY_META = "meta"; + private PaginationMeta meta; + + public MaintenanceArray() {} + + @JsonCreator + public MaintenanceArray( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) List data) { + this.data = data; + } + + public MaintenanceArray data(List data) { + this.data = data; + for (MaintenanceData item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public MaintenanceArray addDataItem(MaintenanceData dataItem) { + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * Getdata + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public MaintenanceArray included(List included) { + this.included = included; + for (DegradationIncluded item : included) { + this.unparsed |= item.unparsed; + } + return this; + } + + public MaintenanceArray addIncludedItem(DegradationIncluded includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + this.unparsed |= includedItem.unparsed; + return this; + } + + /** + * The included related resources of a maintenance. Client must explicitly request these resources + * by name in the include query parameter. + * + * @return included + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_INCLUDED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getIncluded() { + return included; + } + + public void setIncluded(List included) { + this.included = included; + } + + public MaintenanceArray meta(PaginationMeta meta) { + this.meta = meta; + this.unparsed |= meta.unparsed; + return this; + } + + /** + * Getmeta + * + * @return meta + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_META) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public PaginationMeta getMeta() { + return meta; + } + + public void setMeta(PaginationMeta meta) { + this.meta = meta; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return MaintenanceArray + */ + @JsonAnySetter + public MaintenanceArray putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this MaintenanceArray object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MaintenanceArray maintenanceArray = (MaintenanceArray) o; + return Objects.equals(this.data, maintenanceArray.data) + && Objects.equals(this.included, maintenanceArray.included) + && Objects.equals(this.meta, maintenanceArray.meta) + && Objects.equals(this.additionalProperties, maintenanceArray.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, included, meta, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MaintenanceArray {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/MaintenanceData.java b/src/main/java/com/datadog/api/client/v2/model/MaintenanceData.java new file mode 100644 index 00000000000..4ec3d39e77f --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/MaintenanceData.java @@ -0,0 +1,235 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.UUID; + +/** */ +@JsonPropertyOrder({ + MaintenanceData.JSON_PROPERTY_ATTRIBUTES, + MaintenanceData.JSON_PROPERTY_ID, + MaintenanceData.JSON_PROPERTY_RELATIONSHIPS, + MaintenanceData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class MaintenanceData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private MaintenanceDataAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private UUID id; + + public static final String JSON_PROPERTY_RELATIONSHIPS = "relationships"; + private MaintenanceDataRelationships relationships; + + public static final String JSON_PROPERTY_TYPE = "type"; + private PatchMaintenanceRequestDataType type = PatchMaintenanceRequestDataType.MAINTENANCES; + + public MaintenanceData() {} + + @JsonCreator + public MaintenanceData( + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + PatchMaintenanceRequestDataType type) { + this.type = type; + this.unparsed |= !type.isValid(); + } + + public MaintenanceData attributes(MaintenanceDataAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * The attributes of a maintenance. + * + * @return attributes + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public MaintenanceDataAttributes getAttributes() { + return attributes; + } + + public void setAttributes(MaintenanceDataAttributes attributes) { + this.attributes = attributes; + } + + public MaintenanceData id(UUID id) { + this.id = id; + return this; + } + + /** + * The ID of the maintenance. + * + * @return id + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public UUID getId() { + return id; + } + + public void setId(UUID id) { + this.id = id; + } + + public MaintenanceData relationships(MaintenanceDataRelationships relationships) { + this.relationships = relationships; + this.unparsed |= relationships.unparsed; + return this; + } + + /** + * The relationships of a maintenance. + * + * @return relationships + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_RELATIONSHIPS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public MaintenanceDataRelationships getRelationships() { + return relationships; + } + + public void setRelationships(MaintenanceDataRelationships relationships) { + this.relationships = relationships; + } + + public MaintenanceData type(PatchMaintenanceRequestDataType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Maintenances resource type. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public PatchMaintenanceRequestDataType getType() { + return type; + } + + public void setType(PatchMaintenanceRequestDataType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return MaintenanceData + */ + @JsonAnySetter + public MaintenanceData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this MaintenanceData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MaintenanceData maintenanceData = (MaintenanceData) o; + return Objects.equals(this.attributes, maintenanceData.attributes) + && Objects.equals(this.id, maintenanceData.id) + && Objects.equals(this.relationships, maintenanceData.relationships) + && Objects.equals(this.type, maintenanceData.type) + && Objects.equals(this.additionalProperties, maintenanceData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, relationships, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MaintenanceData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" relationships: ").append(toIndentedString(relationships)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataAttributes.java b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataAttributes.java new file mode 100644 index 00000000000..5292aacf18f --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataAttributes.java @@ -0,0 +1,462 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** The attributes of a maintenance. */ +@JsonPropertyOrder({ + MaintenanceDataAttributes.JSON_PROPERTY_COMPLETED_DATE, + MaintenanceDataAttributes.JSON_PROPERTY_COMPLETED_DESCRIPTION, + MaintenanceDataAttributes.JSON_PROPERTY_COMPONENTS_AFFECTED, + MaintenanceDataAttributes.JSON_PROPERTY_IN_PROGRESS_DESCRIPTION, + MaintenanceDataAttributes.JSON_PROPERTY_MODIFIED_AT, + MaintenanceDataAttributes.JSON_PROPERTY_PUBLISHED_DATE, + MaintenanceDataAttributes.JSON_PROPERTY_SCHEDULED_DESCRIPTION, + MaintenanceDataAttributes.JSON_PROPERTY_START_DATE, + MaintenanceDataAttributes.JSON_PROPERTY_STATUS, + MaintenanceDataAttributes.JSON_PROPERTY_TITLE, + MaintenanceDataAttributes.JSON_PROPERTY_UPDATES +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class MaintenanceDataAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_COMPLETED_DATE = "completed_date"; + private OffsetDateTime completedDate; + + public static final String JSON_PROPERTY_COMPLETED_DESCRIPTION = "completed_description"; + private String completedDescription; + + public static final String JSON_PROPERTY_COMPONENTS_AFFECTED = "components_affected"; + private List componentsAffected = null; + + public static final String JSON_PROPERTY_IN_PROGRESS_DESCRIPTION = "in_progress_description"; + private String inProgressDescription; + + public static final String JSON_PROPERTY_MODIFIED_AT = "modified_at"; + private OffsetDateTime modifiedAt; + + public static final String JSON_PROPERTY_PUBLISHED_DATE = "published_date"; + private OffsetDateTime publishedDate; + + public static final String JSON_PROPERTY_SCHEDULED_DESCRIPTION = "scheduled_description"; + private String scheduledDescription; + + public static final String JSON_PROPERTY_START_DATE = "start_date"; + private OffsetDateTime startDate; + + public static final String JSON_PROPERTY_STATUS = "status"; + private MaintenanceDataAttributesStatus status; + + public static final String JSON_PROPERTY_TITLE = "title"; + private String title; + + public static final String JSON_PROPERTY_UPDATES = "updates"; + private List updates = null; + + public MaintenanceDataAttributes completedDate(OffsetDateTime completedDate) { + this.completedDate = completedDate; + return this; + } + + /** + * Timestamp of when the maintenance was completed. + * + * @return completedDate + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_COMPLETED_DATE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getCompletedDate() { + return completedDate; + } + + public void setCompletedDate(OffsetDateTime completedDate) { + this.completedDate = completedDate; + } + + public MaintenanceDataAttributes completedDescription(String completedDescription) { + this.completedDescription = completedDescription; + return this; + } + + /** + * The description shown when the maintenance is completed. + * + * @return completedDescription + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_COMPLETED_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getCompletedDescription() { + return completedDescription; + } + + public void setCompletedDescription(String completedDescription) { + this.completedDescription = completedDescription; + } + + public MaintenanceDataAttributes componentsAffected( + List componentsAffected) { + this.componentsAffected = componentsAffected; + for (MaintenanceDataAttributesComponentsAffectedItems item : componentsAffected) { + this.unparsed |= item.unparsed; + } + return this; + } + + public MaintenanceDataAttributes addComponentsAffectedItem( + MaintenanceDataAttributesComponentsAffectedItems componentsAffectedItem) { + if (this.componentsAffected == null) { + this.componentsAffected = new ArrayList<>(); + } + this.componentsAffected.add(componentsAffectedItem); + this.unparsed |= componentsAffectedItem.unparsed; + return this; + } + + /** + * Components affected by the maintenance. + * + * @return componentsAffected + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_COMPONENTS_AFFECTED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getComponentsAffected() { + return componentsAffected; + } + + public void setComponentsAffected( + List componentsAffected) { + this.componentsAffected = componentsAffected; + } + + public MaintenanceDataAttributes inProgressDescription(String inProgressDescription) { + this.inProgressDescription = inProgressDescription; + return this; + } + + /** + * The description shown while the maintenance is in progress. + * + * @return inProgressDescription + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_IN_PROGRESS_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getInProgressDescription() { + return inProgressDescription; + } + + public void setInProgressDescription(String inProgressDescription) { + this.inProgressDescription = inProgressDescription; + } + + public MaintenanceDataAttributes modifiedAt(OffsetDateTime modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + /** + * Timestamp of when the maintenance was last modified. + * + * @return modifiedAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_MODIFIED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getModifiedAt() { + return modifiedAt; + } + + public void setModifiedAt(OffsetDateTime modifiedAt) { + this.modifiedAt = modifiedAt; + } + + public MaintenanceDataAttributes publishedDate(OffsetDateTime publishedDate) { + this.publishedDate = publishedDate; + return this; + } + + /** + * Timestamp of when the maintenance was published. + * + * @return publishedDate + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PUBLISHED_DATE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getPublishedDate() { + return publishedDate; + } + + public void setPublishedDate(OffsetDateTime publishedDate) { + this.publishedDate = publishedDate; + } + + public MaintenanceDataAttributes scheduledDescription(String scheduledDescription) { + this.scheduledDescription = scheduledDescription; + return this; + } + + /** + * The description shown when the maintenance is scheduled. + * + * @return scheduledDescription + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SCHEDULED_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getScheduledDescription() { + return scheduledDescription; + } + + public void setScheduledDescription(String scheduledDescription) { + this.scheduledDescription = scheduledDescription; + } + + public MaintenanceDataAttributes startDate(OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + + /** + * Timestamp of when the maintenance is scheduled to start. + * + * @return startDate + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_START_DATE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getStartDate() { + return startDate; + } + + public void setStartDate(OffsetDateTime startDate) { + this.startDate = startDate; + } + + public MaintenanceDataAttributes status(MaintenanceDataAttributesStatus status) { + this.status = status; + this.unparsed |= !status.isValid(); + return this; + } + + /** + * The status of the maintenance. + * + * @return status + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public MaintenanceDataAttributesStatus getStatus() { + return status; + } + + public void setStatus(MaintenanceDataAttributesStatus status) { + if (!status.isValid()) { + this.unparsed = true; + } + this.status = status; + } + + public MaintenanceDataAttributes title(String title) { + this.title = title; + return this; + } + + /** + * Title of the maintenance. + * + * @return title + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TITLE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public MaintenanceDataAttributes updates(List updates) { + this.updates = updates; + for (MaintenanceDataAttributesUpdatesItems item : updates) { + this.unparsed |= item.unparsed; + } + return this; + } + + public MaintenanceDataAttributes addUpdatesItem( + MaintenanceDataAttributesUpdatesItems updatesItem) { + if (this.updates == null) { + this.updates = new ArrayList<>(); + } + this.updates.add(updatesItem); + this.unparsed |= updatesItem.unparsed; + return this; + } + + /** + * Past updates made to the maintenance. + * + * @return updates + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_UPDATES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getUpdates() { + return updates; + } + + public void setUpdates(List updates) { + this.updates = updates; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return MaintenanceDataAttributes + */ + @JsonAnySetter + public MaintenanceDataAttributes putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this MaintenanceDataAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MaintenanceDataAttributes maintenanceDataAttributes = (MaintenanceDataAttributes) o; + return Objects.equals(this.completedDate, maintenanceDataAttributes.completedDate) + && Objects.equals(this.completedDescription, maintenanceDataAttributes.completedDescription) + && Objects.equals(this.componentsAffected, maintenanceDataAttributes.componentsAffected) + && Objects.equals( + this.inProgressDescription, maintenanceDataAttributes.inProgressDescription) + && Objects.equals(this.modifiedAt, maintenanceDataAttributes.modifiedAt) + && Objects.equals(this.publishedDate, maintenanceDataAttributes.publishedDate) + && Objects.equals(this.scheduledDescription, maintenanceDataAttributes.scheduledDescription) + && Objects.equals(this.startDate, maintenanceDataAttributes.startDate) + && Objects.equals(this.status, maintenanceDataAttributes.status) + && Objects.equals(this.title, maintenanceDataAttributes.title) + && Objects.equals(this.updates, maintenanceDataAttributes.updates) + && Objects.equals( + this.additionalProperties, maintenanceDataAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + completedDate, + completedDescription, + componentsAffected, + inProgressDescription, + modifiedAt, + publishedDate, + scheduledDescription, + startDate, + status, + title, + updates, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MaintenanceDataAttributes {\n"); + sb.append(" completedDate: ").append(toIndentedString(completedDate)).append("\n"); + sb.append(" completedDescription: ") + .append(toIndentedString(completedDescription)) + .append("\n"); + sb.append(" componentsAffected: ").append(toIndentedString(componentsAffected)).append("\n"); + sb.append(" inProgressDescription: ") + .append(toIndentedString(inProgressDescription)) + .append("\n"); + sb.append(" modifiedAt: ").append(toIndentedString(modifiedAt)).append("\n"); + sb.append(" publishedDate: ").append(toIndentedString(publishedDate)).append("\n"); + sb.append(" scheduledDescription: ") + .append(toIndentedString(scheduledDescription)) + .append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" updates: ").append(toIndentedString(updates)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataAttributesComponentsAffectedItems.java b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataAttributesComponentsAffectedItems.java new file mode 100644 index 00000000000..3c6a64c0168 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataAttributesComponentsAffectedItems.java @@ -0,0 +1,204 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.UUID; + +/** */ +@JsonPropertyOrder({ + MaintenanceDataAttributesComponentsAffectedItems.JSON_PROPERTY_ID, + MaintenanceDataAttributesComponentsAffectedItems.JSON_PROPERTY_NAME, + MaintenanceDataAttributesComponentsAffectedItems.JSON_PROPERTY_STATUS +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class MaintenanceDataAttributesComponentsAffectedItems { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ID = "id"; + private UUID id; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_STATUS = "status"; + private PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus status; + + public MaintenanceDataAttributesComponentsAffectedItems() {} + + @JsonCreator + public MaintenanceDataAttributesComponentsAffectedItems( + @JsonProperty(required = true, value = JSON_PROPERTY_ID) UUID id, + @JsonProperty(required = true, value = JSON_PROPERTY_STATUS) + PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus status) { + this.id = id; + this.status = status; + this.unparsed |= !status.isValid(); + } + + public MaintenanceDataAttributesComponentsAffectedItems id(UUID id) { + this.id = id; + return this; + } + + /** + * The ID of the component. Must be a component of type component. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public UUID getId() { + return id; + } + + public void setId(UUID id) { + this.id = id; + } + + /** + * The name of the component. + * + * @return name + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getName() { + return name; + } + + public MaintenanceDataAttributesComponentsAffectedItems status( + PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus status) { + this.status = status; + this.unparsed |= !status.isValid(); + return this; + } + + /** + * The status of the component. + * + * @return status + */ + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus getStatus() { + return status; + } + + public void setStatus(PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus status) { + if (!status.isValid()) { + this.unparsed = true; + } + this.status = status; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return MaintenanceDataAttributesComponentsAffectedItems + */ + @JsonAnySetter + public MaintenanceDataAttributesComponentsAffectedItems putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this MaintenanceDataAttributesComponentsAffectedItems object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MaintenanceDataAttributesComponentsAffectedItems + maintenanceDataAttributesComponentsAffectedItems = + (MaintenanceDataAttributesComponentsAffectedItems) o; + return Objects.equals(this.id, maintenanceDataAttributesComponentsAffectedItems.id) + && Objects.equals(this.name, maintenanceDataAttributesComponentsAffectedItems.name) + && Objects.equals(this.status, maintenanceDataAttributesComponentsAffectedItems.status) + && Objects.equals( + this.additionalProperties, + maintenanceDataAttributesComponentsAffectedItems.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(id, name, status, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MaintenanceDataAttributesComponentsAffectedItems {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataAttributesStatus.java b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataAttributesStatus.java new file mode 100644 index 00000000000..3c6b954e83a --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataAttributesStatus.java @@ -0,0 +1,64 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The status of the maintenance. */ +@JsonSerialize( + using = MaintenanceDataAttributesStatus.MaintenanceDataAttributesStatusSerializer.class) +public class MaintenanceDataAttributesStatus extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("scheduled", "in_progress", "completed", "canceled")); + + public static final MaintenanceDataAttributesStatus SCHEDULED = + new MaintenanceDataAttributesStatus("scheduled"); + public static final MaintenanceDataAttributesStatus IN_PROGRESS = + new MaintenanceDataAttributesStatus("in_progress"); + public static final MaintenanceDataAttributesStatus COMPLETED = + new MaintenanceDataAttributesStatus("completed"); + public static final MaintenanceDataAttributesStatus CANCELED = + new MaintenanceDataAttributesStatus("canceled"); + + MaintenanceDataAttributesStatus(String value) { + super(value, allowedValues); + } + + public static class MaintenanceDataAttributesStatusSerializer + extends StdSerializer { + public MaintenanceDataAttributesStatusSerializer(Class t) { + super(t); + } + + public MaintenanceDataAttributesStatusSerializer() { + this(null); + } + + @Override + public void serialize( + MaintenanceDataAttributesStatus value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static MaintenanceDataAttributesStatus fromValue(String value) { + return new MaintenanceDataAttributesStatus(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataAttributesUpdatesItems.java b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataAttributesUpdatesItems.java new file mode 100644 index 00000000000..5dd32d88da1 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataAttributesUpdatesItems.java @@ -0,0 +1,325 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.UUID; + +/** */ +@JsonPropertyOrder({ + MaintenanceDataAttributesUpdatesItems.JSON_PROPERTY_COMPONENTS_AFFECTED, + MaintenanceDataAttributesUpdatesItems.JSON_PROPERTY_CREATED_AT, + MaintenanceDataAttributesUpdatesItems.JSON_PROPERTY_DESCRIPTION, + MaintenanceDataAttributesUpdatesItems.JSON_PROPERTY_ID, + MaintenanceDataAttributesUpdatesItems.JSON_PROPERTY_MANUAL_TRANSITION, + MaintenanceDataAttributesUpdatesItems.JSON_PROPERTY_MODIFIED_AT, + MaintenanceDataAttributesUpdatesItems.JSON_PROPERTY_STARTED_AT, + MaintenanceDataAttributesUpdatesItems.JSON_PROPERTY_STATUS +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class MaintenanceDataAttributesUpdatesItems { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_COMPONENTS_AFFECTED = "components_affected"; + private List componentsAffected = + null; + + public static final String JSON_PROPERTY_CREATED_AT = "created_at"; + private OffsetDateTime createdAt; + + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_ID = "id"; + private UUID id; + + public static final String JSON_PROPERTY_MANUAL_TRANSITION = "manual_transition"; + private Boolean manualTransition; + + public static final String JSON_PROPERTY_MODIFIED_AT = "modified_at"; + private OffsetDateTime modifiedAt; + + public static final String JSON_PROPERTY_STARTED_AT = "started_at"; + private OffsetDateTime startedAt; + + public static final String JSON_PROPERTY_STATUS = "status"; + private String status; + + public MaintenanceDataAttributesUpdatesItems componentsAffected( + List componentsAffected) { + this.componentsAffected = componentsAffected; + for (MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems item : componentsAffected) { + this.unparsed |= item.unparsed; + } + return this; + } + + public MaintenanceDataAttributesUpdatesItems addComponentsAffectedItem( + MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems componentsAffectedItem) { + if (this.componentsAffected == null) { + this.componentsAffected = new ArrayList<>(); + } + this.componentsAffected.add(componentsAffectedItem); + this.unparsed |= componentsAffectedItem.unparsed; + return this; + } + + /** + * The components affected at the time of the update. + * + * @return componentsAffected + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_COMPONENTS_AFFECTED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List + getComponentsAffected() { + return componentsAffected; + } + + public void setComponentsAffected( + List componentsAffected) { + this.componentsAffected = componentsAffected; + } + + /** + * Timestamp of when the update was created. + * + * @return createdAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + public MaintenanceDataAttributesUpdatesItems description(String description) { + this.description = description; + return this; + } + + /** + * Description of the update. + * + * @return description + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + /** + * Identifier of the update. + * + * @return id + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public UUID getId() { + return id; + } + + /** + * Whether the update was applied manually by a user (true) or automatically by the system + * (false). + * + * @return manualTransition + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_MANUAL_TRANSITION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getManualTransition() { + return manualTransition; + } + + /** + * Timestamp of when the update was last modified. + * + * @return modifiedAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_MODIFIED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getModifiedAt() { + return modifiedAt; + } + + public MaintenanceDataAttributesUpdatesItems startedAt(OffsetDateTime startedAt) { + this.startedAt = startedAt; + return this; + } + + /** + * Timestamp of when the update started. + * + * @return startedAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_STARTED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getStartedAt() { + return startedAt; + } + + public void setStartedAt(OffsetDateTime startedAt) { + this.startedAt = startedAt; + } + + public MaintenanceDataAttributesUpdatesItems status(String status) { + this.status = status; + return this; + } + + /** + * The status of the update. + * + * @return status + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return MaintenanceDataAttributesUpdatesItems + */ + @JsonAnySetter + public MaintenanceDataAttributesUpdatesItems putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this MaintenanceDataAttributesUpdatesItems object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MaintenanceDataAttributesUpdatesItems maintenanceDataAttributesUpdatesItems = + (MaintenanceDataAttributesUpdatesItems) o; + return Objects.equals( + this.componentsAffected, maintenanceDataAttributesUpdatesItems.componentsAffected) + && Objects.equals(this.createdAt, maintenanceDataAttributesUpdatesItems.createdAt) + && Objects.equals(this.description, maintenanceDataAttributesUpdatesItems.description) + && Objects.equals(this.id, maintenanceDataAttributesUpdatesItems.id) + && Objects.equals( + this.manualTransition, maintenanceDataAttributesUpdatesItems.manualTransition) + && Objects.equals(this.modifiedAt, maintenanceDataAttributesUpdatesItems.modifiedAt) + && Objects.equals(this.startedAt, maintenanceDataAttributesUpdatesItems.startedAt) + && Objects.equals(this.status, maintenanceDataAttributesUpdatesItems.status) + && Objects.equals( + this.additionalProperties, maintenanceDataAttributesUpdatesItems.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + componentsAffected, + createdAt, + description, + id, + manualTransition, + modifiedAt, + startedAt, + status, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MaintenanceDataAttributesUpdatesItems {\n"); + sb.append(" componentsAffected: ").append(toIndentedString(componentsAffected)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" manualTransition: ").append(toIndentedString(manualTransition)).append("\n"); + sb.append(" modifiedAt: ").append(toIndentedString(modifiedAt)).append("\n"); + sb.append(" startedAt: ").append(toIndentedString(startedAt)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems.java b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems.java new file mode 100644 index 00000000000..1d31192a77a --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems.java @@ -0,0 +1,209 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.UUID; + +/** */ +@JsonPropertyOrder({ + MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems.JSON_PROPERTY_ID, + MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems.JSON_PROPERTY_NAME, + MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems.JSON_PROPERTY_STATUS +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ID = "id"; + private UUID id; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_STATUS = "status"; + private PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus status; + + public MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems() {} + + @JsonCreator + public MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems( + @JsonProperty(required = true, value = JSON_PROPERTY_ID) UUID id, + @JsonProperty(required = true, value = JSON_PROPERTY_STATUS) + PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus status) { + this.id = id; + this.status = status; + this.unparsed |= !status.isValid(); + } + + public MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems id(UUID id) { + this.id = id; + return this; + } + + /** + * Identifier of the component affected at the time of the update. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public UUID getId() { + return id; + } + + public void setId(UUID id) { + this.id = id; + } + + /** + * The name of the component affected at the time of the update. + * + * @return name + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getName() { + return name; + } + + public MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems status( + PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus status) { + this.status = status; + this.unparsed |= !status.isValid(); + return this; + } + + /** + * The status of the component. + * + * @return status + */ + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus getStatus() { + return status; + } + + public void setStatus(PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus status) { + if (!status.isValid()) { + this.unparsed = true; + } + this.status = status; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems + */ + @JsonAnySetter + public MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** + * Return true if this MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems object is + * equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems + maintenanceDataAttributesUpdatesItemsComponentsAffectedItems = + (MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems) o; + return Objects.equals(this.id, maintenanceDataAttributesUpdatesItemsComponentsAffectedItems.id) + && Objects.equals( + this.name, maintenanceDataAttributesUpdatesItemsComponentsAffectedItems.name) + && Objects.equals( + this.status, maintenanceDataAttributesUpdatesItemsComponentsAffectedItems.status) + && Objects.equals( + this.additionalProperties, + maintenanceDataAttributesUpdatesItemsComponentsAffectedItems.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(id, name, status, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MaintenanceDataAttributesUpdatesItemsComponentsAffectedItems {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationships.java b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationships.java new file mode 100644 index 00000000000..3b555672c04 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationships.java @@ -0,0 +1,199 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** The relationships of a maintenance. */ +@JsonPropertyOrder({ + MaintenanceDataRelationships.JSON_PROPERTY_CREATED_BY_USER, + MaintenanceDataRelationships.JSON_PROPERTY_LAST_MODIFIED_BY_USER, + MaintenanceDataRelationships.JSON_PROPERTY_STATUS_PAGE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class MaintenanceDataRelationships { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_CREATED_BY_USER = "created_by_user"; + private MaintenanceDataRelationshipsCreatedByUser createdByUser; + + public static final String JSON_PROPERTY_LAST_MODIFIED_BY_USER = "last_modified_by_user"; + private MaintenanceDataRelationshipsLastModifiedByUser lastModifiedByUser; + + public static final String JSON_PROPERTY_STATUS_PAGE = "status_page"; + private MaintenanceDataRelationshipsStatusPage statusPage; + + public MaintenanceDataRelationships createdByUser( + MaintenanceDataRelationshipsCreatedByUser createdByUser) { + this.createdByUser = createdByUser; + this.unparsed |= createdByUser.unparsed; + return this; + } + + /** + * GetcreatedByUser + * + * @return createdByUser + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CREATED_BY_USER) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public MaintenanceDataRelationshipsCreatedByUser getCreatedByUser() { + return createdByUser; + } + + public void setCreatedByUser(MaintenanceDataRelationshipsCreatedByUser createdByUser) { + this.createdByUser = createdByUser; + } + + public MaintenanceDataRelationships lastModifiedByUser( + MaintenanceDataRelationshipsLastModifiedByUser lastModifiedByUser) { + this.lastModifiedByUser = lastModifiedByUser; + this.unparsed |= lastModifiedByUser.unparsed; + return this; + } + + /** + * GetlastModifiedByUser + * + * @return lastModifiedByUser + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LAST_MODIFIED_BY_USER) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public MaintenanceDataRelationshipsLastModifiedByUser getLastModifiedByUser() { + return lastModifiedByUser; + } + + public void setLastModifiedByUser( + MaintenanceDataRelationshipsLastModifiedByUser lastModifiedByUser) { + this.lastModifiedByUser = lastModifiedByUser; + } + + public MaintenanceDataRelationships statusPage( + MaintenanceDataRelationshipsStatusPage statusPage) { + this.statusPage = statusPage; + this.unparsed |= statusPage.unparsed; + return this; + } + + /** + * GetstatusPage + * + * @return statusPage + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_STATUS_PAGE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public MaintenanceDataRelationshipsStatusPage getStatusPage() { + return statusPage; + } + + public void setStatusPage(MaintenanceDataRelationshipsStatusPage statusPage) { + this.statusPage = statusPage; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return MaintenanceDataRelationships + */ + @JsonAnySetter + public MaintenanceDataRelationships putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this MaintenanceDataRelationships object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MaintenanceDataRelationships maintenanceDataRelationships = (MaintenanceDataRelationships) o; + return Objects.equals(this.createdByUser, maintenanceDataRelationships.createdByUser) + && Objects.equals(this.lastModifiedByUser, maintenanceDataRelationships.lastModifiedByUser) + && Objects.equals(this.statusPage, maintenanceDataRelationships.statusPage) + && Objects.equals( + this.additionalProperties, maintenanceDataRelationships.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(createdByUser, lastModifiedByUser, statusPage, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MaintenanceDataRelationships {\n"); + sb.append(" createdByUser: ").append(toIndentedString(createdByUser)).append("\n"); + sb.append(" lastModifiedByUser: ").append(toIndentedString(lastModifiedByUser)).append("\n"); + sb.append(" statusPage: ").append(toIndentedString(statusPage)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsCreatedByUser.java b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsCreatedByUser.java new file mode 100644 index 00000000000..1f60ca465de --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsCreatedByUser.java @@ -0,0 +1,150 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** */ +@JsonPropertyOrder({MaintenanceDataRelationshipsCreatedByUser.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class MaintenanceDataRelationshipsCreatedByUser { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private MaintenanceDataRelationshipsCreatedByUserData data; + + public MaintenanceDataRelationshipsCreatedByUser() {} + + @JsonCreator + public MaintenanceDataRelationshipsCreatedByUser( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + MaintenanceDataRelationshipsCreatedByUserData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public MaintenanceDataRelationshipsCreatedByUser data( + MaintenanceDataRelationshipsCreatedByUserData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Getdata + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public MaintenanceDataRelationshipsCreatedByUserData getData() { + return data; + } + + public void setData(MaintenanceDataRelationshipsCreatedByUserData data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return MaintenanceDataRelationshipsCreatedByUser + */ + @JsonAnySetter + public MaintenanceDataRelationshipsCreatedByUser putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this MaintenanceDataRelationshipsCreatedByUser object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MaintenanceDataRelationshipsCreatedByUser maintenanceDataRelationshipsCreatedByUser = + (MaintenanceDataRelationshipsCreatedByUser) o; + return Objects.equals(this.data, maintenanceDataRelationshipsCreatedByUser.data) + && Objects.equals( + this.additionalProperties, + maintenanceDataRelationshipsCreatedByUser.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MaintenanceDataRelationshipsCreatedByUser {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsCreatedByUserData.java b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsCreatedByUserData.java new file mode 100644 index 00000000000..f324b882905 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsCreatedByUserData.java @@ -0,0 +1,183 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.UUID; + +/** */ +@JsonPropertyOrder({ + MaintenanceDataRelationshipsCreatedByUserData.JSON_PROPERTY_ID, + MaintenanceDataRelationshipsCreatedByUserData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class MaintenanceDataRelationshipsCreatedByUserData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ID = "id"; + private UUID id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private StatusPagesUserType type = StatusPagesUserType.USERS; + + public MaintenanceDataRelationshipsCreatedByUserData() {} + + @JsonCreator + public MaintenanceDataRelationshipsCreatedByUserData( + @JsonProperty(required = true, value = JSON_PROPERTY_ID) UUID id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) StatusPagesUserType type) { + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public MaintenanceDataRelationshipsCreatedByUserData id(UUID id) { + this.id = id; + return this; + } + + /** + * Getid + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public UUID getId() { + return id; + } + + public void setId(UUID id) { + this.id = id; + } + + public MaintenanceDataRelationshipsCreatedByUserData type(StatusPagesUserType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Users resource type. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public StatusPagesUserType getType() { + return type; + } + + public void setType(StatusPagesUserType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return MaintenanceDataRelationshipsCreatedByUserData + */ + @JsonAnySetter + public MaintenanceDataRelationshipsCreatedByUserData putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this MaintenanceDataRelationshipsCreatedByUserData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MaintenanceDataRelationshipsCreatedByUserData maintenanceDataRelationshipsCreatedByUserData = + (MaintenanceDataRelationshipsCreatedByUserData) o; + return Objects.equals(this.id, maintenanceDataRelationshipsCreatedByUserData.id) + && Objects.equals(this.type, maintenanceDataRelationshipsCreatedByUserData.type) + && Objects.equals( + this.additionalProperties, + maintenanceDataRelationshipsCreatedByUserData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MaintenanceDataRelationshipsCreatedByUserData {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsLastModifiedByUser.java b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsLastModifiedByUser.java new file mode 100644 index 00000000000..71546a72999 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsLastModifiedByUser.java @@ -0,0 +1,151 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** */ +@JsonPropertyOrder({MaintenanceDataRelationshipsLastModifiedByUser.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class MaintenanceDataRelationshipsLastModifiedByUser { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private MaintenanceDataRelationshipsLastModifiedByUserData data; + + public MaintenanceDataRelationshipsLastModifiedByUser() {} + + @JsonCreator + public MaintenanceDataRelationshipsLastModifiedByUser( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + MaintenanceDataRelationshipsLastModifiedByUserData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public MaintenanceDataRelationshipsLastModifiedByUser data( + MaintenanceDataRelationshipsLastModifiedByUserData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Getdata + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public MaintenanceDataRelationshipsLastModifiedByUserData getData() { + return data; + } + + public void setData(MaintenanceDataRelationshipsLastModifiedByUserData data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return MaintenanceDataRelationshipsLastModifiedByUser + */ + @JsonAnySetter + public MaintenanceDataRelationshipsLastModifiedByUser putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this MaintenanceDataRelationshipsLastModifiedByUser object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MaintenanceDataRelationshipsLastModifiedByUser maintenanceDataRelationshipsLastModifiedByUser = + (MaintenanceDataRelationshipsLastModifiedByUser) o; + return Objects.equals(this.data, maintenanceDataRelationshipsLastModifiedByUser.data) + && Objects.equals( + this.additionalProperties, + maintenanceDataRelationshipsLastModifiedByUser.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MaintenanceDataRelationshipsLastModifiedByUser {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsLastModifiedByUserData.java b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsLastModifiedByUserData.java new file mode 100644 index 00000000000..425a5e1b57f --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsLastModifiedByUserData.java @@ -0,0 +1,186 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.UUID; + +/** */ +@JsonPropertyOrder({ + MaintenanceDataRelationshipsLastModifiedByUserData.JSON_PROPERTY_ID, + MaintenanceDataRelationshipsLastModifiedByUserData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class MaintenanceDataRelationshipsLastModifiedByUserData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ID = "id"; + private UUID id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private StatusPagesUserType type = StatusPagesUserType.USERS; + + public MaintenanceDataRelationshipsLastModifiedByUserData() {} + + @JsonCreator + public MaintenanceDataRelationshipsLastModifiedByUserData( + @JsonProperty(required = true, value = JSON_PROPERTY_ID) UUID id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) StatusPagesUserType type) { + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public MaintenanceDataRelationshipsLastModifiedByUserData id(UUID id) { + this.id = id; + return this; + } + + /** + * Getid + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public UUID getId() { + return id; + } + + public void setId(UUID id) { + this.id = id; + } + + public MaintenanceDataRelationshipsLastModifiedByUserData type(StatusPagesUserType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Users resource type. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public StatusPagesUserType getType() { + return type; + } + + public void setType(StatusPagesUserType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return MaintenanceDataRelationshipsLastModifiedByUserData + */ + @JsonAnySetter + public MaintenanceDataRelationshipsLastModifiedByUserData putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** + * Return true if this MaintenanceDataRelationshipsLastModifiedByUserData object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MaintenanceDataRelationshipsLastModifiedByUserData + maintenanceDataRelationshipsLastModifiedByUserData = + (MaintenanceDataRelationshipsLastModifiedByUserData) o; + return Objects.equals(this.id, maintenanceDataRelationshipsLastModifiedByUserData.id) + && Objects.equals(this.type, maintenanceDataRelationshipsLastModifiedByUserData.type) + && Objects.equals( + this.additionalProperties, + maintenanceDataRelationshipsLastModifiedByUserData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MaintenanceDataRelationshipsLastModifiedByUserData {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsStatusPage.java b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsStatusPage.java new file mode 100644 index 00000000000..c03a1c53ded --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsStatusPage.java @@ -0,0 +1,149 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** */ +@JsonPropertyOrder({MaintenanceDataRelationshipsStatusPage.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class MaintenanceDataRelationshipsStatusPage { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private MaintenanceDataRelationshipsStatusPageData data; + + public MaintenanceDataRelationshipsStatusPage() {} + + @JsonCreator + public MaintenanceDataRelationshipsStatusPage( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + MaintenanceDataRelationshipsStatusPageData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public MaintenanceDataRelationshipsStatusPage data( + MaintenanceDataRelationshipsStatusPageData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Getdata + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public MaintenanceDataRelationshipsStatusPageData getData() { + return data; + } + + public void setData(MaintenanceDataRelationshipsStatusPageData data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return MaintenanceDataRelationshipsStatusPage + */ + @JsonAnySetter + public MaintenanceDataRelationshipsStatusPage putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this MaintenanceDataRelationshipsStatusPage object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MaintenanceDataRelationshipsStatusPage maintenanceDataRelationshipsStatusPage = + (MaintenanceDataRelationshipsStatusPage) o; + return Objects.equals(this.data, maintenanceDataRelationshipsStatusPage.data) + && Objects.equals( + this.additionalProperties, maintenanceDataRelationshipsStatusPage.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MaintenanceDataRelationshipsStatusPage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsStatusPageData.java b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsStatusPageData.java new file mode 100644 index 00000000000..b0dc9bb83fb --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/MaintenanceDataRelationshipsStatusPageData.java @@ -0,0 +1,183 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.UUID; + +/** */ +@JsonPropertyOrder({ + MaintenanceDataRelationshipsStatusPageData.JSON_PROPERTY_ID, + MaintenanceDataRelationshipsStatusPageData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class MaintenanceDataRelationshipsStatusPageData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ID = "id"; + private UUID id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private StatusPageDataType type = StatusPageDataType.STATUS_PAGES; + + public MaintenanceDataRelationshipsStatusPageData() {} + + @JsonCreator + public MaintenanceDataRelationshipsStatusPageData( + @JsonProperty(required = true, value = JSON_PROPERTY_ID) UUID id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) StatusPageDataType type) { + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public MaintenanceDataRelationshipsStatusPageData id(UUID id) { + this.id = id; + return this; + } + + /** + * Getid + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public UUID getId() { + return id; + } + + public void setId(UUID id) { + this.id = id; + } + + public MaintenanceDataRelationshipsStatusPageData type(StatusPageDataType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Status pages resource type. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public StatusPageDataType getType() { + return type; + } + + public void setType(StatusPageDataType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return MaintenanceDataRelationshipsStatusPageData + */ + @JsonAnySetter + public MaintenanceDataRelationshipsStatusPageData putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this MaintenanceDataRelationshipsStatusPageData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MaintenanceDataRelationshipsStatusPageData maintenanceDataRelationshipsStatusPageData = + (MaintenanceDataRelationshipsStatusPageData) o; + return Objects.equals(this.id, maintenanceDataRelationshipsStatusPageData.id) + && Objects.equals(this.type, maintenanceDataRelationshipsStatusPageData.type) + && Objects.equals( + this.additionalProperties, + maintenanceDataRelationshipsStatusPageData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MaintenanceDataRelationshipsStatusPageData {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/PaginationMeta.java b/src/main/java/com/datadog/api/client/v2/model/PaginationMeta.java new file mode 100644 index 00000000000..f02dd09f059 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/PaginationMeta.java @@ -0,0 +1,136 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** */ +@JsonPropertyOrder({PaginationMeta.JSON_PROPERTY_PAGE}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class PaginationMeta { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_PAGE = "page"; + private PaginationMetaPage page; + + public PaginationMeta page(PaginationMetaPage page) { + this.page = page; + this.unparsed |= page.unparsed; + return this; + } + + /** + * Getpage + * + * @return page + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_PAGE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public PaginationMetaPage getPage() { + return page; + } + + public void setPage(PaginationMetaPage page) { + this.page = page; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return PaginationMeta + */ + @JsonAnySetter + public PaginationMeta putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this PaginationMeta object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PaginationMeta paginationMeta = (PaginationMeta) o; + return Objects.equals(this.page, paginationMeta.page) + && Objects.equals(this.additionalProperties, paginationMeta.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(page, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PaginationMeta {\n"); + sb.append(" page: ").append(toIndentedString(page)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/PaginationMetaPage.java b/src/main/java/com/datadog/api/client/v2/model/PaginationMetaPage.java new file mode 100644 index 00000000000..0c67d1cbc74 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/PaginationMetaPage.java @@ -0,0 +1,376 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import org.openapitools.jackson.nullable.JsonNullable; + +/** */ +@JsonPropertyOrder({ + PaginationMetaPage.JSON_PROPERTY_FIRST_OFFSET, + PaginationMetaPage.JSON_PROPERTY_LAST_OFFSET, + PaginationMetaPage.JSON_PROPERTY_LIMIT, + PaginationMetaPage.JSON_PROPERTY_NEXT_OFFSET, + PaginationMetaPage.JSON_PROPERTY_OFFSET, + PaginationMetaPage.JSON_PROPERTY_PREV_OFFSET, + PaginationMetaPage.JSON_PROPERTY_TOTAL, + PaginationMetaPage.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class PaginationMetaPage { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_FIRST_OFFSET = "first_offset"; + private Long firstOffset; + + public static final String JSON_PROPERTY_LAST_OFFSET = "last_offset"; + private JsonNullable lastOffset = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_LIMIT = "limit"; + private Long limit; + + public static final String JSON_PROPERTY_NEXT_OFFSET = "next_offset"; + private JsonNullable nextOffset = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_OFFSET = "offset"; + private Long offset; + + public static final String JSON_PROPERTY_PREV_OFFSET = "prev_offset"; + private JsonNullable prevOffset = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_TOTAL = "total"; + private JsonNullable total = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_TYPE = "type"; + private String type; + + public PaginationMetaPage firstOffset(Long firstOffset) { + this.firstOffset = firstOffset; + return this; + } + + /** + * GetfirstOffset + * + * @return firstOffset + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_FIRST_OFFSET) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Long getFirstOffset() { + return firstOffset; + } + + public void setFirstOffset(Long firstOffset) { + this.firstOffset = firstOffset; + } + + public PaginationMetaPage lastOffset(Long lastOffset) { + this.lastOffset = JsonNullable.of(lastOffset); + return this; + } + + /** + * GetlastOffset + * + * @return lastOffset + */ + @jakarta.annotation.Nullable + @JsonIgnore + public Long getLastOffset() { + return lastOffset.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_LAST_OFFSET) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getLastOffset_JsonNullable() { + return lastOffset; + } + + @JsonProperty(JSON_PROPERTY_LAST_OFFSET) + public void setLastOffset_JsonNullable(JsonNullable lastOffset) { + this.lastOffset = lastOffset; + } + + public void setLastOffset(Long lastOffset) { + this.lastOffset = JsonNullable.of(lastOffset); + } + + public PaginationMetaPage limit(Long limit) { + this.limit = limit; + return this; + } + + /** + * Getlimit + * + * @return limit + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_LIMIT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Long getLimit() { + return limit; + } + + public void setLimit(Long limit) { + this.limit = limit; + } + + public PaginationMetaPage nextOffset(Long nextOffset) { + this.nextOffset = JsonNullable.of(nextOffset); + return this; + } + + /** + * GetnextOffset + * + * @return nextOffset + */ + @jakarta.annotation.Nullable + @JsonIgnore + public Long getNextOffset() { + return nextOffset.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_NEXT_OFFSET) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getNextOffset_JsonNullable() { + return nextOffset; + } + + @JsonProperty(JSON_PROPERTY_NEXT_OFFSET) + public void setNextOffset_JsonNullable(JsonNullable nextOffset) { + this.nextOffset = nextOffset; + } + + public void setNextOffset(Long nextOffset) { + this.nextOffset = JsonNullable.of(nextOffset); + } + + public PaginationMetaPage offset(Long offset) { + this.offset = offset; + return this; + } + + /** + * Getoffset + * + * @return offset + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_OFFSET) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Long getOffset() { + return offset; + } + + public void setOffset(Long offset) { + this.offset = offset; + } + + public PaginationMetaPage prevOffset(Long prevOffset) { + this.prevOffset = JsonNullable.of(prevOffset); + return this; + } + + /** + * GetprevOffset + * + * @return prevOffset + */ + @jakarta.annotation.Nullable + @JsonIgnore + public Long getPrevOffset() { + return prevOffset.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_PREV_OFFSET) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getPrevOffset_JsonNullable() { + return prevOffset; + } + + @JsonProperty(JSON_PROPERTY_PREV_OFFSET) + public void setPrevOffset_JsonNullable(JsonNullable prevOffset) { + this.prevOffset = prevOffset; + } + + public void setPrevOffset(Long prevOffset) { + this.prevOffset = JsonNullable.of(prevOffset); + } + + public PaginationMetaPage total(Long total) { + this.total = JsonNullable.of(total); + return this; + } + + /** + * Gettotal + * + * @return total + */ + @jakarta.annotation.Nullable + @JsonIgnore + public Long getTotal() { + return total.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_TOTAL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getTotal_JsonNullable() { + return total; + } + + @JsonProperty(JSON_PROPERTY_TOTAL) + public void setTotal_JsonNullable(JsonNullable total) { + this.total = total; + } + + public void setTotal(Long total) { + this.total = JsonNullable.of(total); + } + + public PaginationMetaPage type(String type) { + this.type = type; + return this; + } + + /** + * Gettype + * + * @return type + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return PaginationMetaPage + */ + @JsonAnySetter + public PaginationMetaPage putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this PaginationMetaPage object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PaginationMetaPage paginationMetaPage = (PaginationMetaPage) o; + return Objects.equals(this.firstOffset, paginationMetaPage.firstOffset) + && Objects.equals(this.lastOffset, paginationMetaPage.lastOffset) + && Objects.equals(this.limit, paginationMetaPage.limit) + && Objects.equals(this.nextOffset, paginationMetaPage.nextOffset) + && Objects.equals(this.offset, paginationMetaPage.offset) + && Objects.equals(this.prevOffset, paginationMetaPage.prevOffset) + && Objects.equals(this.total, paginationMetaPage.total) + && Objects.equals(this.type, paginationMetaPage.type) + && Objects.equals(this.additionalProperties, paginationMetaPage.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + firstOffset, + lastOffset, + limit, + nextOffset, + offset, + prevOffset, + total, + type, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PaginationMetaPage {\n"); + sb.append(" firstOffset: ").append(toIndentedString(firstOffset)).append("\n"); + sb.append(" lastOffset: ").append(toIndentedString(lastOffset)).append("\n"); + sb.append(" limit: ").append(toIndentedString(limit)).append("\n"); + sb.append(" nextOffset: ").append(toIndentedString(nextOffset)).append("\n"); + sb.append(" offset: ").append(toIndentedString(offset)).append("\n"); + sb.append(" prevOffset: ").append(toIndentedString(prevOffset)).append("\n"); + sb.append(" total: ").append(toIndentedString(total)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequest.java b/src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequest.java new file mode 100644 index 00000000000..29b9f0d1c26 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequest.java @@ -0,0 +1,136 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** */ +@JsonPropertyOrder({PatchMaintenanceRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class PatchMaintenanceRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private PatchMaintenanceRequestData data; + + public PatchMaintenanceRequest data(PatchMaintenanceRequestData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Getdata + * + * @return data + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public PatchMaintenanceRequestData getData() { + return data; + } + + public void setData(PatchMaintenanceRequestData data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return PatchMaintenanceRequest + */ + @JsonAnySetter + public PatchMaintenanceRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this PatchMaintenanceRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PatchMaintenanceRequest patchMaintenanceRequest = (PatchMaintenanceRequest) o; + return Objects.equals(this.data, patchMaintenanceRequest.data) + && Objects.equals(this.additionalProperties, patchMaintenanceRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PatchMaintenanceRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequestData.java b/src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequestData.java new file mode 100644 index 00000000000..caa6e94809f --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequestData.java @@ -0,0 +1,212 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.UUID; + +/** */ +@JsonPropertyOrder({ + PatchMaintenanceRequestData.JSON_PROPERTY_ATTRIBUTES, + PatchMaintenanceRequestData.JSON_PROPERTY_ID, + PatchMaintenanceRequestData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class PatchMaintenanceRequestData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private PatchMaintenanceRequestDataAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private UUID id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private PatchMaintenanceRequestDataType type = PatchMaintenanceRequestDataType.MAINTENANCES; + + public PatchMaintenanceRequestData() {} + + @JsonCreator + public PatchMaintenanceRequestData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + PatchMaintenanceRequestDataAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) UUID id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + PatchMaintenanceRequestDataType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public PatchMaintenanceRequestData attributes(PatchMaintenanceRequestDataAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * The supported attributes for updating a maintenance. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public PatchMaintenanceRequestDataAttributes getAttributes() { + return attributes; + } + + public void setAttributes(PatchMaintenanceRequestDataAttributes attributes) { + this.attributes = attributes; + } + + public PatchMaintenanceRequestData id(UUID id) { + this.id = id; + return this; + } + + /** + * The ID of the maintenance. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public UUID getId() { + return id; + } + + public void setId(UUID id) { + this.id = id; + } + + public PatchMaintenanceRequestData type(PatchMaintenanceRequestDataType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Maintenances resource type. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public PatchMaintenanceRequestDataType getType() { + return type; + } + + public void setType(PatchMaintenanceRequestDataType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return PatchMaintenanceRequestData + */ + @JsonAnySetter + public PatchMaintenanceRequestData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this PatchMaintenanceRequestData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PatchMaintenanceRequestData patchMaintenanceRequestData = (PatchMaintenanceRequestData) o; + return Objects.equals(this.attributes, patchMaintenanceRequestData.attributes) + && Objects.equals(this.id, patchMaintenanceRequestData.id) + && Objects.equals(this.type, patchMaintenanceRequestData.type) + && Objects.equals( + this.additionalProperties, patchMaintenanceRequestData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PatchMaintenanceRequestData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequestDataAttributes.java b/src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequestDataAttributes.java new file mode 100644 index 00000000000..8f054b80e18 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequestDataAttributes.java @@ -0,0 +1,371 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** The supported attributes for updating a maintenance. */ +@JsonPropertyOrder({ + PatchMaintenanceRequestDataAttributes.JSON_PROPERTY_COMPLETED_DATE, + PatchMaintenanceRequestDataAttributes.JSON_PROPERTY_COMPLETED_DESCRIPTION, + PatchMaintenanceRequestDataAttributes.JSON_PROPERTY_COMPONENTS_AFFECTED, + PatchMaintenanceRequestDataAttributes.JSON_PROPERTY_IN_PROGRESS_DESCRIPTION, + PatchMaintenanceRequestDataAttributes.JSON_PROPERTY_SCHEDULED_DESCRIPTION, + PatchMaintenanceRequestDataAttributes.JSON_PROPERTY_START_DATE, + PatchMaintenanceRequestDataAttributes.JSON_PROPERTY_STATUS, + PatchMaintenanceRequestDataAttributes.JSON_PROPERTY_TITLE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class PatchMaintenanceRequestDataAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_COMPLETED_DATE = "completed_date"; + private OffsetDateTime completedDate; + + public static final String JSON_PROPERTY_COMPLETED_DESCRIPTION = "completed_description"; + private String completedDescription; + + public static final String JSON_PROPERTY_COMPONENTS_AFFECTED = "components_affected"; + private List componentsAffected = + null; + + public static final String JSON_PROPERTY_IN_PROGRESS_DESCRIPTION = "in_progress_description"; + private String inProgressDescription; + + public static final String JSON_PROPERTY_SCHEDULED_DESCRIPTION = "scheduled_description"; + private String scheduledDescription; + + public static final String JSON_PROPERTY_START_DATE = "start_date"; + private OffsetDateTime startDate; + + public static final String JSON_PROPERTY_STATUS = "status"; + private MaintenanceDataAttributesStatus status; + + public static final String JSON_PROPERTY_TITLE = "title"; + private String title; + + public PatchMaintenanceRequestDataAttributes completedDate(OffsetDateTime completedDate) { + this.completedDate = completedDate; + return this; + } + + /** + * Timestamp of when the maintenance was completed. + * + * @return completedDate + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_COMPLETED_DATE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getCompletedDate() { + return completedDate; + } + + public void setCompletedDate(OffsetDateTime completedDate) { + this.completedDate = completedDate; + } + + public PatchMaintenanceRequestDataAttributes completedDescription(String completedDescription) { + this.completedDescription = completedDescription; + return this; + } + + /** + * The description shown when the maintenance is completed. + * + * @return completedDescription + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_COMPLETED_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getCompletedDescription() { + return completedDescription; + } + + public void setCompletedDescription(String completedDescription) { + this.completedDescription = completedDescription; + } + + public PatchMaintenanceRequestDataAttributes componentsAffected( + List componentsAffected) { + this.componentsAffected = componentsAffected; + for (PatchMaintenanceRequestDataAttributesComponentsAffectedItems item : componentsAffected) { + this.unparsed |= item.unparsed; + } + return this; + } + + public PatchMaintenanceRequestDataAttributes addComponentsAffectedItem( + PatchMaintenanceRequestDataAttributesComponentsAffectedItems componentsAffectedItem) { + if (this.componentsAffected == null) { + this.componentsAffected = new ArrayList<>(); + } + this.componentsAffected.add(componentsAffectedItem); + this.unparsed |= componentsAffectedItem.unparsed; + return this; + } + + /** + * The components affected by the maintenance. + * + * @return componentsAffected + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_COMPONENTS_AFFECTED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List + getComponentsAffected() { + return componentsAffected; + } + + public void setComponentsAffected( + List componentsAffected) { + this.componentsAffected = componentsAffected; + } + + public PatchMaintenanceRequestDataAttributes inProgressDescription(String inProgressDescription) { + this.inProgressDescription = inProgressDescription; + return this; + } + + /** + * The description shown while the maintenance is in progress. + * + * @return inProgressDescription + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_IN_PROGRESS_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getInProgressDescription() { + return inProgressDescription; + } + + public void setInProgressDescription(String inProgressDescription) { + this.inProgressDescription = inProgressDescription; + } + + public PatchMaintenanceRequestDataAttributes scheduledDescription(String scheduledDescription) { + this.scheduledDescription = scheduledDescription; + return this; + } + + /** + * The description shown when the maintenance is scheduled. + * + * @return scheduledDescription + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SCHEDULED_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getScheduledDescription() { + return scheduledDescription; + } + + public void setScheduledDescription(String scheduledDescription) { + this.scheduledDescription = scheduledDescription; + } + + public PatchMaintenanceRequestDataAttributes startDate(OffsetDateTime startDate) { + this.startDate = startDate; + return this; + } + + /** + * Timestamp of when the maintenance is scheduled to start. + * + * @return startDate + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_START_DATE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getStartDate() { + return startDate; + } + + public void setStartDate(OffsetDateTime startDate) { + this.startDate = startDate; + } + + public PatchMaintenanceRequestDataAttributes status(MaintenanceDataAttributesStatus status) { + this.status = status; + this.unparsed |= !status.isValid(); + return this; + } + + /** + * The status of the maintenance. + * + * @return status + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public MaintenanceDataAttributesStatus getStatus() { + return status; + } + + public void setStatus(MaintenanceDataAttributesStatus status) { + if (!status.isValid()) { + this.unparsed = true; + } + this.status = status; + } + + public PatchMaintenanceRequestDataAttributes title(String title) { + this.title = title; + return this; + } + + /** + * The title of the maintenance. + * + * @return title + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TITLE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return PatchMaintenanceRequestDataAttributes + */ + @JsonAnySetter + public PatchMaintenanceRequestDataAttributes putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this PatchMaintenanceRequestDataAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PatchMaintenanceRequestDataAttributes patchMaintenanceRequestDataAttributes = + (PatchMaintenanceRequestDataAttributes) o; + return Objects.equals(this.completedDate, patchMaintenanceRequestDataAttributes.completedDate) + && Objects.equals( + this.completedDescription, patchMaintenanceRequestDataAttributes.completedDescription) + && Objects.equals( + this.componentsAffected, patchMaintenanceRequestDataAttributes.componentsAffected) + && Objects.equals( + this.inProgressDescription, patchMaintenanceRequestDataAttributes.inProgressDescription) + && Objects.equals( + this.scheduledDescription, patchMaintenanceRequestDataAttributes.scheduledDescription) + && Objects.equals(this.startDate, patchMaintenanceRequestDataAttributes.startDate) + && Objects.equals(this.status, patchMaintenanceRequestDataAttributes.status) + && Objects.equals(this.title, patchMaintenanceRequestDataAttributes.title) + && Objects.equals( + this.additionalProperties, patchMaintenanceRequestDataAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + completedDate, + completedDescription, + componentsAffected, + inProgressDescription, + scheduledDescription, + startDate, + status, + title, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PatchMaintenanceRequestDataAttributes {\n"); + sb.append(" completedDate: ").append(toIndentedString(completedDate)).append("\n"); + sb.append(" completedDescription: ") + .append(toIndentedString(completedDescription)) + .append("\n"); + sb.append(" componentsAffected: ").append(toIndentedString(componentsAffected)).append("\n"); + sb.append(" inProgressDescription: ") + .append(toIndentedString(inProgressDescription)) + .append("\n"); + sb.append(" scheduledDescription: ") + .append(toIndentedString(scheduledDescription)) + .append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequestDataAttributesComponentsAffectedItems.java b/src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequestDataAttributesComponentsAffectedItems.java new file mode 100644 index 00000000000..66c550adcf8 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequestDataAttributesComponentsAffectedItems.java @@ -0,0 +1,209 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.UUID; + +/** */ +@JsonPropertyOrder({ + PatchMaintenanceRequestDataAttributesComponentsAffectedItems.JSON_PROPERTY_ID, + PatchMaintenanceRequestDataAttributesComponentsAffectedItems.JSON_PROPERTY_NAME, + PatchMaintenanceRequestDataAttributesComponentsAffectedItems.JSON_PROPERTY_STATUS +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class PatchMaintenanceRequestDataAttributesComponentsAffectedItems { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ID = "id"; + private UUID id; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_STATUS = "status"; + private PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus status; + + public PatchMaintenanceRequestDataAttributesComponentsAffectedItems() {} + + @JsonCreator + public PatchMaintenanceRequestDataAttributesComponentsAffectedItems( + @JsonProperty(required = true, value = JSON_PROPERTY_ID) UUID id, + @JsonProperty(required = true, value = JSON_PROPERTY_STATUS) + PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus status) { + this.id = id; + this.status = status; + this.unparsed |= !status.isValid(); + } + + public PatchMaintenanceRequestDataAttributesComponentsAffectedItems id(UUID id) { + this.id = id; + return this; + } + + /** + * The ID of the component. Must be a component of type component. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public UUID getId() { + return id; + } + + public void setId(UUID id) { + this.id = id; + } + + /** + * The name of the component. + * + * @return name + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getName() { + return name; + } + + public PatchMaintenanceRequestDataAttributesComponentsAffectedItems status( + PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus status) { + this.status = status; + this.unparsed |= !status.isValid(); + return this; + } + + /** + * The status of the component. + * + * @return status + */ + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus getStatus() { + return status; + } + + public void setStatus(PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus status) { + if (!status.isValid()) { + this.unparsed = true; + } + this.status = status; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return PatchMaintenanceRequestDataAttributesComponentsAffectedItems + */ + @JsonAnySetter + public PatchMaintenanceRequestDataAttributesComponentsAffectedItems putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** + * Return true if this PatchMaintenanceRequestDataAttributesComponentsAffectedItems object is + * equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PatchMaintenanceRequestDataAttributesComponentsAffectedItems + patchMaintenanceRequestDataAttributesComponentsAffectedItems = + (PatchMaintenanceRequestDataAttributesComponentsAffectedItems) o; + return Objects.equals(this.id, patchMaintenanceRequestDataAttributesComponentsAffectedItems.id) + && Objects.equals( + this.name, patchMaintenanceRequestDataAttributesComponentsAffectedItems.name) + && Objects.equals( + this.status, patchMaintenanceRequestDataAttributesComponentsAffectedItems.status) + && Objects.equals( + this.additionalProperties, + patchMaintenanceRequestDataAttributesComponentsAffectedItems.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(id, name, status, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PatchMaintenanceRequestDataAttributesComponentsAffectedItems {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus.java b/src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus.java new file mode 100644 index 00000000000..fcd9a2fa455 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus.java @@ -0,0 +1,69 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The status of the component. */ +@JsonSerialize( + using = + PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus + .PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatusSerializer.class) +public class PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus + extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("operational", "maintenance")); + + public static final PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus + OPERATIONAL = + new PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus("operational"); + public static final PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus + MAINTENANCE = + new PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus("maintenance"); + + PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus(String value) { + super(value, allowedValues); + } + + public static class PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatusSerializer + extends StdSerializer { + public PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatusSerializer( + Class t) { + super(t); + } + + public PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatusSerializer() { + this(null); + } + + @Override + public void serialize( + PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus fromValue( + String value) { + return new PatchMaintenanceRequestDataAttributesComponentsAffectedItemsStatus(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequestDataType.java b/src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequestDataType.java new file mode 100644 index 00000000000..c8e58ce3df7 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/PatchMaintenanceRequestDataType.java @@ -0,0 +1,58 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Maintenances resource type. */ +@JsonSerialize( + using = PatchMaintenanceRequestDataType.PatchMaintenanceRequestDataTypeSerializer.class) +public class PatchMaintenanceRequestDataType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("maintenances")); + + public static final PatchMaintenanceRequestDataType MAINTENANCES = + new PatchMaintenanceRequestDataType("maintenances"); + + PatchMaintenanceRequestDataType(String value) { + super(value, allowedValues); + } + + public static class PatchMaintenanceRequestDataTypeSerializer + extends StdSerializer { + public PatchMaintenanceRequestDataTypeSerializer(Class t) { + super(t); + } + + public PatchMaintenanceRequestDataTypeSerializer() { + this(null); + } + + @Override + public void serialize( + PatchMaintenanceRequestDataType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static PatchMaintenanceRequestDataType fromValue(String value) { + return new PatchMaintenanceRequestDataType(value); + } +} diff --git a/src/test/resources/cassettes/features/v2/Create_component_returns_Created_response.freeze b/src/test/resources/cassettes/features/v2/Create_component_returns_Created_response.freeze index 7323200d4a6..12319307ca4 100644 --- a/src/test/resources/cassettes/features/v2/Create_component_returns_Created_response.freeze +++ b/src/test/resources/cassettes/features/v2/Create_component_returns_Created_response.freeze @@ -1 +1 @@ -2026-01-21T21:23:35.707Z \ No newline at end of file +2026-02-19T21:09:17.751Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_component_returns_Created_response.json b/src/test/resources/cassettes/features/v2/Create_component_returns_Created_response.json index 8fb7784ce18..591544f4417 100644 --- a/src/test/resources/cassettes/features/v2/Create_component_returns_Created_response.json +++ b/src/test/resources/cassettes/features/v2/Create_component_returns_Created_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"8b6cd6e80c23846d\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" + "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"f76567de039160c9\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"b53231b9-4737-47eb-8bb8-90d2b51e0803\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"1cdd6cef-6732-4202-934c-69eb21701b5a\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"85c38440-50b4-4db7-b9fc-4372c4b36555\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"bfd82882-3607-4d7d-8242-072ec5b94492\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-01-21T21:23:35.875217Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"8b6cd6e80c23846d\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-01-21T21:23:35.875217Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/b53231b9-4737-47eb-8bb8-90d2b51e0803/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "body": "{\"data\":{\"id\":\"47e17ba1-f5eb-46ff-b0be-6d715956bde1\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"142d8de6-6bb4-4b62-8211-baaf16e09b87\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"cd5fb685-7435-4fca-b94e-b581cb2a6ea7\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"822f70b7-aae3-4b1f-b906-b5a71021bdd7\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:18.085798Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"f76567de039160c9\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:18.085798Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/47e17ba1-f5eb-46ff-b0be-6d715956bde1/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "2ea553d7-9d8f-a7df-3a24-23485704284d" + "id": "a42831df-5c3b-fd69-2b40-86cb9779d5d8" }, { "httpRequest": { @@ -37,12 +37,12 @@ }, "headers": {}, "method": "POST", - "path": "/api/v2/statuspages/b53231b9-4737-47eb-8bb8-90d2b51e0803/components", + "path": "/api/v2/statuspages/47e17ba1-f5eb-46ff-b0be-6d715956bde1/components", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"42f96d69-9136-4888-b822-ca0dc2013978\",\"type\":\"components\",\"attributes\":{\"created_at\":\"2026-01-21T21:23:36.340483Z\",\"modified_at\":\"2026-01-21T21:23:36.340483Z\",\"name\":\"Logs\",\"position\":0,\"status\":\"operational\",\"type\":\"component\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"group\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"b53231b9-4737-47eb-8bb8-90d2b51e0803\",\"type\":\"status_pages\"}}}}}", + "body": "{\"data\":{\"id\":\"ef596910-80a3-4802-84dd-1ef84472450a\",\"type\":\"components\",\"attributes\":{\"created_at\":\"2026-02-19T21:09:18.543075Z\",\"modified_at\":\"2026-02-19T21:09:18.543075Z\",\"name\":\"Logs\",\"position\":0,\"status\":\"operational\",\"type\":\"component\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"group\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"47e17ba1-f5eb-46ff-b0be-6d715956bde1\",\"type\":\"status_pages\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -57,13 +57,13 @@ "timeToLive": { "unlimited": true }, - "id": "2a824714-fc6c-f258-352b-1b1dde563210" + "id": "a7154f4e-00fb-6d45-3fa4-2bf4deacc13f" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/b53231b9-4737-47eb-8bb8-90d2b51e0803/components/42f96d69-9136-4888-b822-ca0dc2013978", + "path": "/api/v2/statuspages/47e17ba1-f5eb-46ff-b0be-6d715956bde1/components/ef596910-80a3-4802-84dd-1ef84472450a", "keepAlive": false, "secure": true }, @@ -78,13 +78,13 @@ "timeToLive": { "unlimited": true }, - "id": "cc95292e-50c1-a055-64bb-3b3a7bf44c1f" + "id": "d66b037a-60e3-469d-8cda-db5439140471" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/b53231b9-4737-47eb-8bb8-90d2b51e0803", + "path": "/api/v2/statuspages/47e17ba1-f5eb-46ff-b0be-6d715956bde1", "keepAlive": false, "secure": true }, @@ -99,6 +99,6 @@ "timeToLive": { "unlimited": true }, - "id": "a4989956-eb66-237f-31ec-415b58473674" + "id": "0f6ebbc6-3e19-0a15-9bca-9fbb3b7bd187" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_degradation_returns_Created_response.freeze b/src/test/resources/cassettes/features/v2/Create_degradation_returns_Created_response.freeze index 2c73d078040..7ac5b5338e2 100644 --- a/src/test/resources/cassettes/features/v2/Create_degradation_returns_Created_response.freeze +++ b/src/test/resources/cassettes/features/v2/Create_degradation_returns_Created_response.freeze @@ -1 +1 @@ -2026-01-21T21:23:36.959Z \ No newline at end of file +2026-02-19T21:09:19.360Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_degradation_returns_Created_response.json b/src/test/resources/cassettes/features/v2/Create_degradation_returns_Created_response.json index 462195558d9..ee1ac5f2805 100644 --- a/src/test/resources/cassettes/features/v2/Create_degradation_returns_Created_response.json +++ b/src/test/resources/cassettes/features/v2/Create_degradation_returns_Created_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"f594e675bf08d5d7\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" + "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"891e5c9c73a3787d\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"bb4afad2-f893-464a-82a4-d2ab29d5105c\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"8b6c8c24-95a9-449b-b508-9d3320e5cba2\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"43c959d9-3dda-4dc9-ae42-74b71ea39f08\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"5dcfa87c-9147-4c77-9ef9-658ae70db253\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-01-21T21:23:37.073734Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"f594e675bf08d5d7\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-01-21T21:23:37.073734Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/bb4afad2-f893-464a-82a4-d2ab29d5105c/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "body": "{\"data\":{\"id\":\"0c6c59bf-b579-4d33-9470-8ad98d37d15d\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"2eda5bf2-de31-41b0-be23-3f2192283aa8\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"2640a34a-b6cd-44ab-8459-c9c1f0c28400\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"80b0238c-cf81-4f71-95e6-9d715911a685\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:19.703338Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"891e5c9c73a3787d\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:19.703338Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/0c6c59bf-b579-4d33-9470-8ad98d37d15d/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -27,22 +27,22 @@ "timeToLive": { "unlimited": true }, - "id": "cf4042f1-b28b-6c16-116b-a8526f18a74f" + "id": "9aeb8750-d289-bd5c-eec3-c5a643d2cf9e" }, { "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"components_affected\":[{\"id\":\"43c959d9-3dda-4dc9-ae42-74b71ea39f08\",\"status\":\"major_outage\"}],\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\"},\"type\":\"degradations\"}}" + "json": "{\"data\":{\"attributes\":{\"components_affected\":[{\"id\":\"2640a34a-b6cd-44ab-8459-c9c1f0c28400\",\"status\":\"major_outage\"}],\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\"},\"type\":\"degradations\"}}" }, "headers": {}, "method": "POST", - "path": "/api/v2/statuspages/bb4afad2-f893-464a-82a4-d2ab29d5105c/degradations", + "path": "/api/v2/statuspages/0c6c59bf-b579-4d33-9470-8ad98d37d15d/degradations", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"e4e76067-6b16-48d1-b943-734d0d81f715\",\"type\":\"degradations\",\"attributes\":{\"components_affected\":[{\"id\":\"43c959d9-3dda-4dc9-ae42-74b71ea39f08\",\"name\":\"Login\",\"status\":\"major_outage\"}],\"created_at\":\"2026-01-21T21:23:37.592566Z\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"modified_at\":\"2026-01-21T21:23:37.592566Z\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\",\"updates\":[{\"id\":\"af2de416-ec54-4e72-a973-7be879f26886\",\"created_at\":\"2026-01-21T21:23:37.592566Z\",\"modified_at\":\"2026-01-21T21:23:37.592566Z\",\"status\":\"investigating\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"components_affected\":[{\"id\":\"43c959d9-3dda-4dc9-ae42-74b71ea39f08\",\"name\":\"Login\",\"status\":\"major_outage\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"bb4afad2-f893-464a-82a4-d2ab29d5105c\",\"type\":\"status_pages\"}}}}}", + "body": "{\"data\":{\"id\":\"163da211-144f-4842-ba85-1248bbba7eb0\",\"type\":\"degradations\",\"attributes\":{\"components_affected\":[{\"id\":\"2640a34a-b6cd-44ab-8459-c9c1f0c28400\",\"name\":\"Login\",\"status\":\"major_outage\"}],\"created_at\":\"2026-02-19T21:09:20.491296Z\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"modified_at\":\"2026-02-19T21:09:20.491296Z\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\",\"updates\":[{\"id\":\"47063361-a699-46a7-b53e-7cd49110e242\",\"created_at\":\"2026-02-19T21:09:20.491296Z\",\"modified_at\":\"2026-02-19T21:09:20.491296Z\",\"status\":\"investigating\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"components_affected\":[{\"id\":\"2640a34a-b6cd-44ab-8459-c9c1f0c28400\",\"name\":\"Login\",\"status\":\"major_outage\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"0c6c59bf-b579-4d33-9470-8ad98d37d15d\",\"type\":\"status_pages\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -57,13 +57,13 @@ "timeToLive": { "unlimited": true }, - "id": "b569f35d-523e-1d26-95d2-1135a5b44cef" + "id": "f7eecdcc-e2a7-3ba4-1698-ff8727486a03" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/bb4afad2-f893-464a-82a4-d2ab29d5105c/degradations/e4e76067-6b16-48d1-b943-734d0d81f715", + "path": "/api/v2/statuspages/0c6c59bf-b579-4d33-9470-8ad98d37d15d/degradations/163da211-144f-4842-ba85-1248bbba7eb0", "keepAlive": false, "secure": true }, @@ -78,13 +78,13 @@ "timeToLive": { "unlimited": true }, - "id": "08af11c3-4bd2-5243-56f8-54691a1b5151" + "id": "1f2d0042-c608-8088-aba8-fda6a52cecce" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/bb4afad2-f893-464a-82a4-d2ab29d5105c", + "path": "/api/v2/statuspages/0c6c59bf-b579-4d33-9470-8ad98d37d15d", "keepAlive": false, "secure": true }, @@ -99,6 +99,6 @@ "timeToLive": { "unlimited": true }, - "id": "a40f5db2-4b58-abb5-db95-73c697534ce2" + "id": "b35c5edb-7180-1c2f-426f-ce086fe74b8a" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_maintenance_returns_Created_response.freeze b/src/test/resources/cassettes/features/v2/Create_maintenance_returns_Created_response.freeze new file mode 100644 index 00000000000..2576e0a0f1a --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Create_maintenance_returns_Created_response.freeze @@ -0,0 +1 @@ +2026-02-19T21:09:21.400Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_maintenance_returns_Created_response.json b/src/test/resources/cassettes/features/v2/Create_maintenance_returns_Created_response.json new file mode 100644 index 00000000000..e18b43048ca --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Create_maintenance_returns_Created_response.json @@ -0,0 +1,83 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"b6dd52ec533b50a4\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/statuspages", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"5f928e28-74e7-4f4d-8ca1-732742061a01\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"8f246542-87b5-4794-a8aa-15c112db4203\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"805b30a0-22bf-42e1-9232-a9a83d3c438c\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"740bb3f1-aea3-4a06-8b27-471e6cba3142\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:21.765345Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"b6dd52ec533b50a4\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:21.765345Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/5f928e28-74e7-4f4d-8ca1-732742061a01/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "9ef20400-e995-4a3d-ee28-181dde2c4d1c" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"completed_date\":\"2026-02-19T23:09:21.400Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"805b30a0-22bf-42e1-9232-a9a83d3c438c\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T22:09:21.400Z\",\"title\":\"API Maintenance\"},\"type\":\"maintenances\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/statuspages/5f928e28-74e7-4f4d-8ca1-732742061a01/maintenances", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"ad83d272-470e-45ec-a61f-3852b2cba3bc\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T23:09:21.4Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"805b30a0-22bf-42e1-9232-a9a83d3c438c\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T21:09:22.350609Z\",\"published_date\":\"2026-02-19T21:09:22.350609Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T22:09:21.4Z\",\"status\":\"scheduled\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"d87352a2-565b-4d6d-a90a-7310698d4562\",\"created_at\":\"2026-02-19T21:09:22.350609Z\",\"modified_at\":\"2026-02-19T21:09:22.350609Z\",\"started_at\":\"2026-02-19T21:09:22.350609Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"805b30a0-22bf-42e1-9232-a9a83d3c438c\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"5f928e28-74e7-4f4d-8ca1-732742061a01\",\"type\":\"status_pages\"}}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "d707bae4-2888-83fc-ce21-690092125c3e" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/statuspages/5f928e28-74e7-4f4d-8ca1-732742061a01", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "headers": {}, + "statusCode": 204, + "reasonPhrase": "No Content" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "a939e658-7342-a7da-8a17-58510e3c9a05" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_status_page_returns_Created_response.freeze b/src/test/resources/cassettes/features/v2/Create_status_page_returns_Created_response.freeze index f09a7049e48..b43a55e9ded 100644 --- a/src/test/resources/cassettes/features/v2/Create_status_page_returns_Created_response.freeze +++ b/src/test/resources/cassettes/features/v2/Create_status_page_returns_Created_response.freeze @@ -1 +1 @@ -2026-01-21T21:23:38.324Z \ No newline at end of file +2026-02-19T21:09:22.909Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_status_page_returns_Created_response.json b/src/test/resources/cassettes/features/v2/Create_status_page_returns_Created_response.json index d54dfd0076f..04c775ece41 100644 --- a/src/test/resources/cassettes/features/v2/Create_status_page_returns_Created_response.json +++ b/src/test/resources/cassettes/features/v2/Create_status_page_returns_Created_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"domain_prefix\":\"bd769f64d06a9cdb\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" + "json": "{\"data\":{\"attributes\":{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"domain_prefix\":\"48b4b1f5feb870a5\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"f59e184f-4019-40d6-be90-b59f2381976d\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"c66f749f-12f7-4813-92a3-0e70df06cbd8\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"2478dc16-435c-493d-93ad-dcea6421a281\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}],\"created_at\":\"2026-01-21T21:23:38.486999Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"bd769f64d06a9cdb\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-01-21T21:23:38.486999Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/f59e184f-4019-40d6-be90-b59f2381976d/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "body": "{\"data\":{\"id\":\"241bdfcf-4e32-4c33-9d82-ff079cc74040\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"803fdee3-c46a-40cf-8dce-6ae8db73a204\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"00955671-5931-47be-8212-c62d9ace91a4\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}],\"created_at\":\"2026-02-19T21:09:23.271414Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"48b4b1f5feb870a5\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:23.271414Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/241bdfcf-4e32-4c33-9d82-ff079cc74040/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -27,13 +27,13 @@ "timeToLive": { "unlimited": true }, - "id": "c322df76-ed65-e6eb-b799-529a381ed095" + "id": "6558f9f1-1e24-7374-139c-b1a0b43dee1b" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/f59e184f-4019-40d6-be90-b59f2381976d", + "path": "/api/v2/statuspages/241bdfcf-4e32-4c33-9d82-ff079cc74040", "keepAlive": false, "secure": true }, @@ -48,6 +48,6 @@ "timeToLive": { "unlimited": true }, - "id": "a0c4f81e-430d-f69f-2029-2689c082c5cc" + "id": "4ebf8d45-bdb9-2e0d-24bd-9b2a85d38b79" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_component_returns_No_Content_response.freeze b/src/test/resources/cassettes/features/v2/Delete_component_returns_No_Content_response.freeze index dccc0cd79e6..c1266252f67 100644 --- a/src/test/resources/cassettes/features/v2/Delete_component_returns_No_Content_response.freeze +++ b/src/test/resources/cassettes/features/v2/Delete_component_returns_No_Content_response.freeze @@ -1 +1 @@ -2026-01-21T21:23:39.373Z \ No newline at end of file +2026-02-19T21:09:24.403Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_component_returns_No_Content_response.json b/src/test/resources/cassettes/features/v2/Delete_component_returns_No_Content_response.json index 4392a9ceb77..1f5d6ffb2ce 100644 --- a/src/test/resources/cassettes/features/v2/Delete_component_returns_No_Content_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_component_returns_No_Content_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"52506f44627e27d9\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" + "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"163bff3a57492cc4\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"e4365564-6c49-4a14-b9c2-736c038a62a9\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"be6cbe05-c28b-4cd1-be92-0323c2399a6c\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"da518ded-9db2-4cba-919e-0ad04d208561\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"06e4ed67-1231-409e-a0b1-da84785d64a0\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-01-21T21:23:39.487738Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"52506f44627e27d9\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-01-21T21:23:39.487738Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/e4365564-6c49-4a14-b9c2-736c038a62a9/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "body": "{\"data\":{\"id\":\"d65c44fe-e2c4-4bf8-ae41-528a98bb69a9\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"830deeec-9de6-45af-86a9-42a2498b707b\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"2797a0b9-3e35-48d9-b4ec-9ad4955941d1\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"bff8f38d-1919-4154-9228-f43a1870bed3\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:24.757518Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"163bff3a57492cc4\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:24.757518Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/d65c44fe-e2c4-4bf8-ae41-528a98bb69a9/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -27,13 +27,13 @@ "timeToLive": { "unlimited": true }, - "id": "739b2fe3-8f0a-3eba-be58-e7140b1c4686" + "id": "05ac5648-1eec-a855-ba4c-4e213ba09238" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/e4365564-6c49-4a14-b9c2-736c038a62a9/components/be6cbe05-c28b-4cd1-be92-0323c2399a6c", + "path": "/api/v2/statuspages/d65c44fe-e2c4-4bf8-ae41-528a98bb69a9/components/830deeec-9de6-45af-86a9-42a2498b707b", "keepAlive": false, "secure": true }, @@ -48,13 +48,13 @@ "timeToLive": { "unlimited": true }, - "id": "d1e6249c-0bb4-848d-9e6e-f9c42cf5df8b" + "id": "297bb248-ea21-212a-9193-8dd46c67d0f1" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/e4365564-6c49-4a14-b9c2-736c038a62a9", + "path": "/api/v2/statuspages/d65c44fe-e2c4-4bf8-ae41-528a98bb69a9", "keepAlive": false, "secure": true }, @@ -69,6 +69,6 @@ "timeToLive": { "unlimited": true }, - "id": "79652247-fa32-7a3a-4a8b-6370da1bbe83" + "id": "a2ec05f2-8442-eba5-edc7-d68e43cb16d7" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_degradation_returns_No_Content_response.freeze b/src/test/resources/cassettes/features/v2/Delete_degradation_returns_No_Content_response.freeze index f9dac8fe0f8..a5db03ab459 100644 --- a/src/test/resources/cassettes/features/v2/Delete_degradation_returns_No_Content_response.freeze +++ b/src/test/resources/cassettes/features/v2/Delete_degradation_returns_No_Content_response.freeze @@ -1 +1 @@ -2026-01-21T21:23:40.553Z \ No newline at end of file +2026-02-19T21:09:25.961Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_degradation_returns_No_Content_response.json b/src/test/resources/cassettes/features/v2/Delete_degradation_returns_No_Content_response.json index 0a6724cca6a..92023028437 100644 --- a/src/test/resources/cassettes/features/v2/Delete_degradation_returns_No_Content_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_degradation_returns_No_Content_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"854d0635d9daaa12\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" + "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"0f841c59b5d015f6\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"6be99142-8929-473e-9799-041e6372f114\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"82cd6444-b15f-467d-bba2-b0c946de1965\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"45221c15-9e84-469a-bc08-be9e3988f3ea\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"694d84bb-afb7-4a0a-854f-d9eee42fff7f\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-01-21T21:23:40.659745Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"854d0635d9daaa12\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-01-21T21:23:40.659745Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/6be99142-8929-473e-9799-041e6372f114/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "body": "{\"data\":{\"id\":\"28f7f975-36e6-42d0-a03f-065e4a00372d\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"119292d5-0f21-4394-8271-4cabdaa6df70\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"b503614e-95e3-4334-b29b-c42366505dd3\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"af1433f0-d069-4c33-87f5-c8cf65542d9a\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:26.302536Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"0f841c59b5d015f6\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:26.302536Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/28f7f975-36e6-42d0-a03f-065e4a00372d/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -27,22 +27,22 @@ "timeToLive": { "unlimited": true }, - "id": "439415c0-8b0d-558a-cf87-8f59eef0fb40" + "id": "c2389677-0669-ed8e-9b60-5e44bdaef1fc" }, { "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"components_affected\":[{\"id\":\"45221c15-9e84-469a-bc08-be9e3988f3ea\",\"status\":\"major_outage\"}],\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\"},\"type\":\"degradations\"}}" + "json": "{\"data\":{\"attributes\":{\"components_affected\":[{\"id\":\"b503614e-95e3-4334-b29b-c42366505dd3\",\"status\":\"major_outage\"}],\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\"},\"type\":\"degradations\"}}" }, "headers": {}, "method": "POST", - "path": "/api/v2/statuspages/6be99142-8929-473e-9799-041e6372f114/degradations", + "path": "/api/v2/statuspages/28f7f975-36e6-42d0-a03f-065e4a00372d/degradations", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"bd0e77e0-83e5-4556-809b-f582969f1441\",\"type\":\"degradations\",\"attributes\":{\"components_affected\":[{\"id\":\"45221c15-9e84-469a-bc08-be9e3988f3ea\",\"name\":\"Login\",\"status\":\"major_outage\"}],\"created_at\":\"2026-01-21T21:23:41.199085Z\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"modified_at\":\"2026-01-21T21:23:41.199085Z\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\",\"updates\":[{\"id\":\"a899c951-a528-4edb-86e7-8eca80ff1a92\",\"created_at\":\"2026-01-21T21:23:41.199085Z\",\"modified_at\":\"2026-01-21T21:23:41.199085Z\",\"status\":\"investigating\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"components_affected\":[{\"id\":\"45221c15-9e84-469a-bc08-be9e3988f3ea\",\"name\":\"Login\",\"status\":\"major_outage\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"6be99142-8929-473e-9799-041e6372f114\",\"type\":\"status_pages\"}}}}}", + "body": "{\"data\":{\"id\":\"58b316c0-b55b-42c6-80ef-074b906284e3\",\"type\":\"degradations\",\"attributes\":{\"components_affected\":[{\"id\":\"b503614e-95e3-4334-b29b-c42366505dd3\",\"name\":\"Login\",\"status\":\"major_outage\"}],\"created_at\":\"2026-02-19T21:09:26.913653Z\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"modified_at\":\"2026-02-19T21:09:26.913653Z\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\",\"updates\":[{\"id\":\"91723c26-b5b6-4b6c-8966-5682fb00c5b9\",\"created_at\":\"2026-02-19T21:09:26.913653Z\",\"modified_at\":\"2026-02-19T21:09:26.913653Z\",\"status\":\"investigating\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"components_affected\":[{\"id\":\"b503614e-95e3-4334-b29b-c42366505dd3\",\"name\":\"Login\",\"status\":\"major_outage\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"28f7f975-36e6-42d0-a03f-065e4a00372d\",\"type\":\"status_pages\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -57,13 +57,13 @@ "timeToLive": { "unlimited": true }, - "id": "7298d37e-6259-e283-6b3c-510b0f0c9d1d" + "id": "ae203a3a-27d8-d25b-641d-9a9f6e0ef99c" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/6be99142-8929-473e-9799-041e6372f114/degradations/bd0e77e0-83e5-4556-809b-f582969f1441", + "path": "/api/v2/statuspages/28f7f975-36e6-42d0-a03f-065e4a00372d/degradations/58b316c0-b55b-42c6-80ef-074b906284e3", "keepAlive": false, "secure": true }, @@ -78,13 +78,13 @@ "timeToLive": { "unlimited": true }, - "id": "fcda4360-becd-d1ad-ca56-99c1e0df7636" + "id": "3b6da7b4-bd30-224a-25c8-896fc47c1d09" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/6be99142-8929-473e-9799-041e6372f114/degradations/bd0e77e0-83e5-4556-809b-f582969f1441", + "path": "/api/v2/statuspages/28f7f975-36e6-42d0-a03f-065e4a00372d/degradations/58b316c0-b55b-42c6-80ef-074b906284e3", "keepAlive": false, "secure": true }, @@ -104,13 +104,13 @@ "timeToLive": { "unlimited": true }, - "id": "fcda4360-becd-d1ad-ca56-99c1e0df7637" + "id": "3b6da7b4-bd30-224a-25c8-896fc47c1d0a" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/6be99142-8929-473e-9799-041e6372f114", + "path": "/api/v2/statuspages/28f7f975-36e6-42d0-a03f-065e4a00372d", "keepAlive": false, "secure": true }, @@ -125,6 +125,6 @@ "timeToLive": { "unlimited": true }, - "id": "28555656-8138-5b22-d4fe-fe1ddb98dc73" + "id": "f46ee674-2e5a-6860-ef94-1b0fc77c41cc" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_status_page_returns_No_Content_response.freeze b/src/test/resources/cassettes/features/v2/Delete_status_page_returns_No_Content_response.freeze index dbcea3ddf98..ab154238741 100644 --- a/src/test/resources/cassettes/features/v2/Delete_status_page_returns_No_Content_response.freeze +++ b/src/test/resources/cassettes/features/v2/Delete_status_page_returns_No_Content_response.freeze @@ -1 +1 @@ -2026-01-21T21:23:41.981Z \ No newline at end of file +2026-02-19T21:09:27.807Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_status_page_returns_No_Content_response.json b/src/test/resources/cassettes/features/v2/Delete_status_page_returns_No_Content_response.json index 13999db7415..43edf0e606a 100644 --- a/src/test/resources/cassettes/features/v2/Delete_status_page_returns_No_Content_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_status_page_returns_No_Content_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"cb21c38e7fab0cfc\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" + "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"66b6b291edf9027c\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"bc81fd89-62a4-4c28-b5e1-167c63ce3249\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"e6286170-1f58-4d8d-9432-7112ebc32be7\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"c7753c9e-7f28-4111-b7ab-f801c75b4945\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"a6e70d8d-7457-4d09-88a7-ef5cd4674698\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-01-21T21:23:42.084545Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"cb21c38e7fab0cfc\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-01-21T21:23:42.084545Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/bc81fd89-62a4-4c28-b5e1-167c63ce3249/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "body": "{\"data\":{\"id\":\"803668b9-3f95-40ed-9092-a96da0c098ee\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"069e49b9-8922-42df-a98c-7e64e631de68\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"2a890a79-ee45-4d88-8b77-fb615cac67e8\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"a4bcdcee-5aa9-4b3b-838c-4d49ab3a9a09\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:28.141704Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"66b6b291edf9027c\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:28.141704Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/803668b9-3f95-40ed-9092-a96da0c098ee/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -27,13 +27,13 @@ "timeToLive": { "unlimited": true }, - "id": "1ef5d0f3-cc2e-fc36-c6f6-02fb76a59981" + "id": "c85d6a46-e941-60cf-f35b-80ccb91cb3ed" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/bc81fd89-62a4-4c28-b5e1-167c63ce3249", + "path": "/api/v2/statuspages/803668b9-3f95-40ed-9092-a96da0c098ee", "keepAlive": false, "secure": true }, @@ -48,13 +48,13 @@ "timeToLive": { "unlimited": true }, - "id": "c3b70638-eb16-04d2-a6dd-76ed243a6210" + "id": "64936d95-d6ea-bf81-88ab-eb011fa160b2" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/bc81fd89-62a4-4c28-b5e1-167c63ce3249", + "path": "/api/v2/statuspages/803668b9-3f95-40ed-9092-a96da0c098ee", "keepAlive": false, "secure": true }, @@ -74,6 +74,6 @@ "timeToLive": { "unlimited": true }, - "id": "c3b70638-eb16-04d2-a6dd-76ed243a6211" + "id": "64936d95-d6ea-bf81-88ab-eb011fa160b3" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_component_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Get_component_returns_OK_response.freeze index 06ecf5ee7c9..dcdce40faf0 100644 --- a/src/test/resources/cassettes/features/v2/Get_component_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/Get_component_returns_OK_response.freeze @@ -1 +1 @@ -2026-01-21T21:23:43.141Z \ No newline at end of file +2026-02-19T21:09:29.140Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_component_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_component_returns_OK_response.json index 3f68bfbb806..6049936f4db 100644 --- a/src/test/resources/cassettes/features/v2/Get_component_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_component_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"06de602b320cfdb0\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" + "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"3b22f4c10f2df21a\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"70f5256d-c03f-45e1-8057-bc036d4793eb\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"7a270e4e-a064-44d0-bf07-326cf1f51cad\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"3a6c227c-52ea-4ed1-849c-4b4c1179881a\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"dff9c5c3-0b49-4f04-b801-83cdec88432a\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-01-21T21:23:43.257592Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"06de602b320cfdb0\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-01-21T21:23:43.257592Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/70f5256d-c03f-45e1-8057-bc036d4793eb/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "body": "{\"data\":{\"id\":\"73b33de0-a4a8-4f86-bca3-5910af211fce\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"88206000-8c65-4baa-93f9-0438b05d9985\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"d957cba2-61b8-4612-a494-cb3c8adf914e\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"34513918-9a87-4b51-b933-62ad9b986e94\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:29.495271Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"3b22f4c10f2df21a\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:29.495271Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/73b33de0-a4a8-4f86-bca3-5910af211fce/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -27,18 +27,18 @@ "timeToLive": { "unlimited": true }, - "id": "98646d4f-4c48-0543-7053-72a3834c0f38" + "id": "1157fc2e-2eaa-3c95-1c45-1dd761fa4a20" }, { "httpRequest": { "headers": {}, "method": "GET", - "path": "/api/v2/statuspages/70f5256d-c03f-45e1-8057-bc036d4793eb/components/7a270e4e-a064-44d0-bf07-326cf1f51cad", + "path": "/api/v2/statuspages/73b33de0-a4a8-4f86-bca3-5910af211fce/components/88206000-8c65-4baa-93f9-0438b05d9985", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"7a270e4e-a064-44d0-bf07-326cf1f51cad\",\"type\":\"components\",\"attributes\":{\"components\":[{\"id\":\"3a6c227c-52ea-4ed1-849c-4b4c1179881a\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"dff9c5c3-0b49-4f04-b801-83cdec88432a\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}],\"created_at\":\"2026-01-21T21:23:43.257592Z\",\"modified_at\":\"2026-01-21T21:23:43.257592Z\",\"name\":\"Application\",\"position\":0,\"type\":\"group\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"group\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"70f5256d-c03f-45e1-8057-bc036d4793eb\",\"type\":\"status_pages\"}}}}}", + "body": "{\"data\":{\"id\":\"88206000-8c65-4baa-93f9-0438b05d9985\",\"type\":\"components\",\"attributes\":{\"components\":[{\"id\":\"d957cba2-61b8-4612-a494-cb3c8adf914e\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"34513918-9a87-4b51-b933-62ad9b986e94\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}],\"created_at\":\"2026-02-19T21:09:29.495271Z\",\"modified_at\":\"2026-02-19T21:09:29.495271Z\",\"name\":\"Application\",\"position\":0,\"type\":\"group\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"group\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"73b33de0-a4a8-4f86-bca3-5910af211fce\",\"type\":\"status_pages\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -53,13 +53,13 @@ "timeToLive": { "unlimited": true }, - "id": "8b65bb20-5a2b-8508-33c4-f3528253c0ad" + "id": "6be10305-7ae2-fbfb-2878-c61efe5bcb5c" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/70f5256d-c03f-45e1-8057-bc036d4793eb", + "path": "/api/v2/statuspages/73b33de0-a4a8-4f86-bca3-5910af211fce", "keepAlive": false, "secure": true }, @@ -74,6 +74,6 @@ "timeToLive": { "unlimited": true }, - "id": "a7595656-1349-f10f-8256-dfa948dd5a7e" + "id": "8b569fe4-78c3-198c-6eb2-59e26349a9a6" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_degradation_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Get_degradation_returns_OK_response.freeze index 5bf876ce9e7..5ae3370308e 100644 --- a/src/test/resources/cassettes/features/v2/Get_degradation_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/Get_degradation_returns_OK_response.freeze @@ -1 +1 @@ -2026-01-21T21:23:44.279Z \ No newline at end of file +2026-02-19T21:09:30.579Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_degradation_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_degradation_returns_OK_response.json index a93cb832263..3bca0a5fc14 100644 --- a/src/test/resources/cassettes/features/v2/Get_degradation_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_degradation_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"5eb6437773268884\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" + "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"2f9b2becfee9c7e6\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"a0e1ebd1-38d3-4b7b-bb90-9a7427ce7c45\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"3397266a-8b0e-49c9-bc1c-0866a14eca08\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"bd226a05-e4f4-41bd-bb65-6c575acb55df\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"5db10808-905b-43a6-9226-97057e049486\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-01-21T21:23:44.415385Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"5eb6437773268884\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-01-21T21:23:44.415385Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/a0e1ebd1-38d3-4b7b-bb90-9a7427ce7c45/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "body": "{\"data\":{\"id\":\"31d2b0c8-d4c4-4336-9286-f656f17db3e6\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"1cf3ef81-f392-4ca0-934f-5255ef3a0747\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"4bb4cfaf-c2b8-4dec-bba3-689caecb1f39\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"6ddadacd-6897-4851-a41c-bfe2f9f10919\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:30.917541Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"2f9b2becfee9c7e6\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:30.917541Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/31d2b0c8-d4c4-4336-9286-f656f17db3e6/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -27,22 +27,22 @@ "timeToLive": { "unlimited": true }, - "id": "899a7f71-23f5-af9e-81d7-dfa3f305476f" + "id": "daa7647c-0c5d-85b2-f76d-6debdd8594f5" }, { "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"components_affected\":[{\"id\":\"bd226a05-e4f4-41bd-bb65-6c575acb55df\",\"status\":\"major_outage\"}],\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\"},\"type\":\"degradations\"}}" + "json": "{\"data\":{\"attributes\":{\"components_affected\":[{\"id\":\"4bb4cfaf-c2b8-4dec-bba3-689caecb1f39\",\"status\":\"major_outage\"}],\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\"},\"type\":\"degradations\"}}" }, "headers": {}, "method": "POST", - "path": "/api/v2/statuspages/a0e1ebd1-38d3-4b7b-bb90-9a7427ce7c45/degradations", + "path": "/api/v2/statuspages/31d2b0c8-d4c4-4336-9286-f656f17db3e6/degradations", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"ce318082-f158-4f69-a325-dfcc3a4e0cd4\",\"type\":\"degradations\",\"attributes\":{\"components_affected\":[{\"id\":\"bd226a05-e4f4-41bd-bb65-6c575acb55df\",\"name\":\"Login\",\"status\":\"major_outage\"}],\"created_at\":\"2026-01-21T21:23:44.970381Z\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"modified_at\":\"2026-01-21T21:23:44.970381Z\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\",\"updates\":[{\"id\":\"07162b04-aa24-4bb9-8f4e-549ceda01252\",\"created_at\":\"2026-01-21T21:23:44.970381Z\",\"modified_at\":\"2026-01-21T21:23:44.970381Z\",\"status\":\"investigating\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"components_affected\":[{\"id\":\"bd226a05-e4f4-41bd-bb65-6c575acb55df\",\"name\":\"Login\",\"status\":\"major_outage\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"a0e1ebd1-38d3-4b7b-bb90-9a7427ce7c45\",\"type\":\"status_pages\"}}}}}", + "body": "{\"data\":{\"id\":\"1428e2ae-f8e1-42a5-a008-d0dce5470a75\",\"type\":\"degradations\",\"attributes\":{\"components_affected\":[{\"id\":\"4bb4cfaf-c2b8-4dec-bba3-689caecb1f39\",\"name\":\"Login\",\"status\":\"major_outage\"}],\"created_at\":\"2026-02-19T21:09:31.624248Z\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"modified_at\":\"2026-02-19T21:09:31.624248Z\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\",\"updates\":[{\"id\":\"6493b9ae-cbbf-48d8-8343-c903be2f5bc2\",\"created_at\":\"2026-02-19T21:09:31.624248Z\",\"modified_at\":\"2026-02-19T21:09:31.624248Z\",\"status\":\"investigating\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"components_affected\":[{\"id\":\"4bb4cfaf-c2b8-4dec-bba3-689caecb1f39\",\"name\":\"Login\",\"status\":\"major_outage\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"31d2b0c8-d4c4-4336-9286-f656f17db3e6\",\"type\":\"status_pages\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -57,18 +57,18 @@ "timeToLive": { "unlimited": true }, - "id": "35cd63ec-3378-0b01-2b46-98bcef44c3e4" + "id": "40555187-bd1c-feb2-c103-96fa714eb087" }, { "httpRequest": { "headers": {}, "method": "GET", - "path": "/api/v2/statuspages/a0e1ebd1-38d3-4b7b-bb90-9a7427ce7c45/degradations/ce318082-f158-4f69-a325-dfcc3a4e0cd4", + "path": "/api/v2/statuspages/31d2b0c8-d4c4-4336-9286-f656f17db3e6/degradations/1428e2ae-f8e1-42a5-a008-d0dce5470a75", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"ce318082-f158-4f69-a325-dfcc3a4e0cd4\",\"type\":\"degradations\",\"attributes\":{\"components_affected\":[{\"id\":\"bd226a05-e4f4-41bd-bb65-6c575acb55df\",\"name\":\"Login\",\"status\":\"major_outage\"}],\"created_at\":\"2026-01-21T21:23:44.970381Z\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"modified_at\":\"2026-01-21T21:23:44.970381Z\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\",\"updates\":[{\"id\":\"07162b04-aa24-4bb9-8f4e-549ceda01252\",\"created_at\":\"2026-01-21T21:23:44.970381Z\",\"modified_at\":\"2026-01-21T21:23:44.970381Z\",\"status\":\"investigating\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"components_affected\":[{\"id\":\"bd226a05-e4f4-41bd-bb65-6c575acb55df\",\"name\":\"Login\",\"status\":\"major_outage\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"a0e1ebd1-38d3-4b7b-bb90-9a7427ce7c45\",\"type\":\"status_pages\"}}}}}", + "body": "{\"data\":{\"id\":\"1428e2ae-f8e1-42a5-a008-d0dce5470a75\",\"type\":\"degradations\",\"attributes\":{\"components_affected\":[{\"id\":\"4bb4cfaf-c2b8-4dec-bba3-689caecb1f39\",\"name\":\"Login\",\"status\":\"major_outage\"}],\"created_at\":\"2026-02-19T21:09:31.624248Z\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"modified_at\":\"2026-02-19T21:09:31.624248Z\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\",\"updates\":[{\"id\":\"6493b9ae-cbbf-48d8-8343-c903be2f5bc2\",\"created_at\":\"2026-02-19T21:09:31.624248Z\",\"modified_at\":\"2026-02-19T21:09:31.624248Z\",\"status\":\"investigating\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"components_affected\":[{\"id\":\"4bb4cfaf-c2b8-4dec-bba3-689caecb1f39\",\"name\":\"Login\",\"status\":\"major_outage\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"31d2b0c8-d4c4-4336-9286-f656f17db3e6\",\"type\":\"status_pages\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -83,13 +83,13 @@ "timeToLive": { "unlimited": true }, - "id": "346fc540-96c6-3964-a47a-1cf57a08b479" + "id": "745e117f-fc40-83ac-162c-c3177ae7f9c8" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/a0e1ebd1-38d3-4b7b-bb90-9a7427ce7c45/degradations/ce318082-f158-4f69-a325-dfcc3a4e0cd4", + "path": "/api/v2/statuspages/31d2b0c8-d4c4-4336-9286-f656f17db3e6/degradations/1428e2ae-f8e1-42a5-a008-d0dce5470a75", "keepAlive": false, "secure": true }, @@ -104,13 +104,13 @@ "timeToLive": { "unlimited": true }, - "id": "0a6c4521-ea52-2d93-2230-870a0d6927a0" + "id": "e6f7a718-8541-4bf0-c07d-26ae1894a870" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/a0e1ebd1-38d3-4b7b-bb90-9a7427ce7c45", + "path": "/api/v2/statuspages/31d2b0c8-d4c4-4336-9286-f656f17db3e6", "keepAlive": false, "secure": true }, @@ -125,6 +125,6 @@ "timeToLive": { "unlimited": true }, - "id": "fa2e4dd8-45b8-4309-5db6-40d1c50aca5a" + "id": "10d46be0-090b-d722-1976-be2ec7edea3e" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_maintenance_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Get_maintenance_returns_OK_response.freeze new file mode 100644 index 00000000000..a654dc1b8e1 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Get_maintenance_returns_OK_response.freeze @@ -0,0 +1 @@ +2026-02-19T21:09:32.555Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_maintenance_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_maintenance_returns_OK_response.json new file mode 100644 index 00000000000..cbb16abda82 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Get_maintenance_returns_OK_response.json @@ -0,0 +1,109 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"8b002b194234f379\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/statuspages", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"11437d68-2f35-4d09-be7a-ee618a110ddb\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"04f3a7c8-7f9c-42bc-99f2-f1bcc4fc22f7\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"11c88ebd-d05a-41c2-9d77-cbeb32d74dce\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"544744c0-3700-470f-9cc5-1b64f5fa265e\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:32.891286Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"8b002b194234f379\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:32.891286Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/11437d68-2f35-4d09-be7a-ee618a110ddb/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "ecf2909a-0d56-d311-4578-a2c0acb57572" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"completed_date\":\"2026-02-19T23:09:32.555Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"11c88ebd-d05a-41c2-9d77-cbeb32d74dce\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T22:09:32.555Z\",\"title\":\"API Maintenance\"},\"type\":\"maintenances\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/statuspages/11437d68-2f35-4d09-be7a-ee618a110ddb/maintenances", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"59df7b47-92b4-4834-88cf-b3c564420753\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T23:09:32.555Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"11c88ebd-d05a-41c2-9d77-cbeb32d74dce\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T21:09:33.606484Z\",\"published_date\":\"2026-02-19T21:09:33.606484Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T22:09:32.555Z\",\"status\":\"scheduled\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"341fecc7-ff4a-4284-98a3-1891f82f49d3\",\"created_at\":\"2026-02-19T21:09:33.606484Z\",\"modified_at\":\"2026-02-19T21:09:33.606484Z\",\"started_at\":\"2026-02-19T21:09:33.606484Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"11c88ebd-d05a-41c2-9d77-cbeb32d74dce\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"11437d68-2f35-4d09-be7a-ee618a110ddb\",\"type\":\"status_pages\"}}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "33b74b38-951f-3521-9375-3ad4af7ccfb2" + }, + { + "httpRequest": { + "headers": {}, + "method": "GET", + "path": "/api/v2/statuspages/11437d68-2f35-4d09-be7a-ee618a110ddb/maintenances/59df7b47-92b4-4834-88cf-b3c564420753", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"59df7b47-92b4-4834-88cf-b3c564420753\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T23:09:32.555Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"11c88ebd-d05a-41c2-9d77-cbeb32d74dce\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T21:09:33.606484Z\",\"published_date\":\"2026-02-19T21:09:33.606484Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T22:09:32.555Z\",\"status\":\"scheduled\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"341fecc7-ff4a-4284-98a3-1891f82f49d3\",\"created_at\":\"2026-02-19T21:09:33.606484Z\",\"modified_at\":\"2026-02-19T21:09:33.606484Z\",\"started_at\":\"2026-02-19T21:09:33.606484Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"11c88ebd-d05a-41c2-9d77-cbeb32d74dce\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"11437d68-2f35-4d09-be7a-ee618a110ddb\",\"type\":\"status_pages\"}}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "e501e855-f6eb-f488-b3ce-9941e3034ac1" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/statuspages/11437d68-2f35-4d09-be7a-ee618a110ddb", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "headers": {}, + "statusCode": 204, + "reasonPhrase": "No Content" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "3e462e5d-539a-d7a3-9aec-71a8b7f9e68a" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_status_page_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Get_status_page_returns_OK_response.freeze index 712b01c4720..070935fa57b 100644 --- a/src/test/resources/cassettes/features/v2/Get_status_page_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/Get_status_page_returns_OK_response.freeze @@ -1 +1 @@ -2026-01-21T21:23:45.761Z \ No newline at end of file +2026-02-19T21:09:34.270Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_status_page_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_status_page_returns_OK_response.json index fd8a323efb9..a66eb855a8a 100644 --- a/src/test/resources/cassettes/features/v2/Get_status_page_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_status_page_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"385491266043d794\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" + "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"49a23d4af2a80106\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"24205612-f1dc-444f-aec6-7010c3097cb5\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"70916c47-93e6-4e73-b97c-0e13b5450faf\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"dcb07405-f8ea-4518-9c37-9ccb6c3c247b\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"2287c0bf-d342-4a65-998d-22bb80c63c27\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-01-21T21:23:45.863862Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"385491266043d794\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-01-21T21:23:45.863862Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/24205612-f1dc-444f-aec6-7010c3097cb5/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "body": "{\"data\":{\"id\":\"51dd94af-6ed5-4c50-aa43-1e120bd06e09\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"0f4d2310-ba73-4a02-8c00-b1f1383961bb\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"156bb32c-3472-4c72-8778-cf0409ff41a4\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"f1e71af8-5eaa-4424-b0de-49a4db2e48c5\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:34.619287Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"49a23d4af2a80106\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:34.619287Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/51dd94af-6ed5-4c50-aa43-1e120bd06e09/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -27,18 +27,18 @@ "timeToLive": { "unlimited": true }, - "id": "fd16f007-b83f-6cbb-985a-f3fcfd540eb6" + "id": "c4545cb2-95e7-dfc5-3b34-75ae765ebfbb" }, { "httpRequest": { "headers": {}, "method": "GET", - "path": "/api/v2/statuspages/24205612-f1dc-444f-aec6-7010c3097cb5", + "path": "/api/v2/statuspages/51dd94af-6ed5-4c50-aa43-1e120bd06e09", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"24205612-f1dc-444f-aec6-7010c3097cb5\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"70916c47-93e6-4e73-b97c-0e13b5450faf\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"dcb07405-f8ea-4518-9c37-9ccb6c3c247b\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"2287c0bf-d342-4a65-998d-22bb80c63c27\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-01-21T21:23:45.863862Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"385491266043d794\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-01-21T21:23:45.863862Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/24205612-f1dc-444f-aec6-7010c3097cb5/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "body": "{\"data\":{\"id\":\"51dd94af-6ed5-4c50-aa43-1e120bd06e09\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"0f4d2310-ba73-4a02-8c00-b1f1383961bb\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"156bb32c-3472-4c72-8778-cf0409ff41a4\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"f1e71af8-5eaa-4424-b0de-49a4db2e48c5\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:34.619287Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"49a23d4af2a80106\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:34.619287Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/51dd94af-6ed5-4c50-aa43-1e120bd06e09/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -53,13 +53,13 @@ "timeToLive": { "unlimited": true }, - "id": "47b7d219-3208-3f43-4762-8a7be4a6da01" + "id": "13701e1b-05f4-0e21-ae6a-8fa6985915f0" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/24205612-f1dc-444f-aec6-7010c3097cb5", + "path": "/api/v2/statuspages/51dd94af-6ed5-4c50-aa43-1e120bd06e09", "keepAlive": false, "secure": true }, @@ -74,6 +74,6 @@ "timeToLive": { "unlimited": true }, - "id": "797c4807-8658-7852-ff5c-86d115b6c149" + "id": "a9d9fb71-3e9d-3a7b-26cb-ffbac63d780d" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/List_components_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/List_components_returns_OK_response.freeze index d9b768691c7..d836dc57116 100644 --- a/src/test/resources/cassettes/features/v2/List_components_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/List_components_returns_OK_response.freeze @@ -1 +1 @@ -2026-01-21T21:23:46.975Z \ No newline at end of file +2026-02-19T21:09:35.646Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/List_components_returns_OK_response.json b/src/test/resources/cassettes/features/v2/List_components_returns_OK_response.json index 151e7240600..83e67b8be49 100644 --- a/src/test/resources/cassettes/features/v2/List_components_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/List_components_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"f577abf9d8b6cac4\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" + "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"12cc1e5eee0a6b84\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"02b22755-8a22-449f-817b-c4f649f37ebd\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"bac73feb-3b3a-4f9b-81ad-b5532acfc96b\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"d993969d-ca6c-4b74-aed6-7a0f93016e7f\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"457c3e35-56a5-472f-a284-4e2222c77631\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-01-21T21:23:47.079687Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"f577abf9d8b6cac4\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-01-21T21:23:47.079687Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/02b22755-8a22-449f-817b-c4f649f37ebd/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "body": "{\"data\":{\"id\":\"3b9255b3-79fe-44fb-b103-0300e1bcf3fc\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"1a88b96c-e2cf-4f64-8b2b-a8f183d1f96f\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"e4e7716e-b2e1-4d7c-af73-814a05548c67\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"954513aa-9365-4c93-8d43-c5dd372ea228\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:35.994517Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"12cc1e5eee0a6b84\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:35.994517Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/3b9255b3-79fe-44fb-b103-0300e1bcf3fc/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -27,18 +27,18 @@ "timeToLive": { "unlimited": true }, - "id": "bbb8f085-02a3-c04e-2916-0d7ca0a5e9e1" + "id": "821c9044-0a07-8fa1-baa4-cf0076702389" }, { "httpRequest": { "headers": {}, "method": "GET", - "path": "/api/v2/statuspages/02b22755-8a22-449f-817b-c4f649f37ebd/components", + "path": "/api/v2/statuspages/3b9255b3-79fe-44fb-b103-0300e1bcf3fc/components", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":[{\"id\":\"bac73feb-3b3a-4f9b-81ad-b5532acfc96b\",\"type\":\"components\",\"attributes\":{\"components\":[{\"id\":\"d993969d-ca6c-4b74-aed6-7a0f93016e7f\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"457c3e35-56a5-472f-a284-4e2222c77631\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}],\"created_at\":\"2026-01-21T21:23:47.079687Z\",\"modified_at\":\"2026-01-21T21:23:47.079687Z\",\"name\":\"Application\",\"position\":0,\"type\":\"group\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"group\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"02b22755-8a22-449f-817b-c4f649f37ebd\",\"type\":\"status_pages\"}}}}]}", + "body": "{\"data\":[{\"id\":\"1a88b96c-e2cf-4f64-8b2b-a8f183d1f96f\",\"type\":\"components\",\"attributes\":{\"components\":[{\"id\":\"e4e7716e-b2e1-4d7c-af73-814a05548c67\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"954513aa-9365-4c93-8d43-c5dd372ea228\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}],\"created_at\":\"2026-02-19T21:09:35.994517Z\",\"modified_at\":\"2026-02-19T21:09:35.994517Z\",\"name\":\"Application\",\"position\":0,\"type\":\"group\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"group\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"3b9255b3-79fe-44fb-b103-0300e1bcf3fc\",\"type\":\"status_pages\"}}}}]}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -53,13 +53,13 @@ "timeToLive": { "unlimited": true }, - "id": "934801c4-3520-5366-511b-fa086b1e8e1f" + "id": "1a4d5b1f-592b-089b-d2ee-1e41bc00a8bd" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/02b22755-8a22-449f-817b-c4f649f37ebd", + "path": "/api/v2/statuspages/3b9255b3-79fe-44fb-b103-0300e1bcf3fc", "keepAlive": false, "secure": true }, @@ -74,6 +74,6 @@ "timeToLive": { "unlimited": true }, - "id": "3c587298-d5b7-6f34-a8f4-7d4bf6299415" + "id": "40de0f0f-6054-3194-62a4-635b412cf464" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/List_degradations_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/List_degradations_returns_OK_response.freeze index 5ef43ee5a2e..5d716f85dde 100644 --- a/src/test/resources/cassettes/features/v2/List_degradations_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/List_degradations_returns_OK_response.freeze @@ -1 +1 @@ -2026-01-21T21:23:48.128Z \ No newline at end of file +2026-02-19T21:09:37.072Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/List_degradations_returns_OK_response.json b/src/test/resources/cassettes/features/v2/List_degradations_returns_OK_response.json index 24f0dba40f3..d9d2980b12d 100644 --- a/src/test/resources/cassettes/features/v2/List_degradations_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/List_degradations_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"9e7f8b0822635170\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" + "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"9df661c90212c9a4\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"fcf5cb92-aa21-43c1-b2c3-54ff692fef7b\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"0b52346d-8cd1-407b-a085-44f7f3c47ba4\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"b257b99d-355b-4b2c-82c0-335694c1e940\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"27415b2b-1759-49a9-a298-34fec18177c1\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-01-21T21:23:48.239521Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"9e7f8b0822635170\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-01-21T21:23:48.239521Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/fcf5cb92-aa21-43c1-b2c3-54ff692fef7b/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "body": "{\"data\":{\"id\":\"f9c156a1-d377-48bd-a8dd-dad962473707\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"c3eac08c-9ff3-4392-9bd3-0cc9d1515be3\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"b9d994fb-bc32-456d-a260-f69c840f88cb\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"e3dfb3ae-4272-41e3-ba7a-6c268197ff1c\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:37.422871Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"9df661c90212c9a4\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:37.422871Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/f9c156a1-d377-48bd-a8dd-dad962473707/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -27,22 +27,22 @@ "timeToLive": { "unlimited": true }, - "id": "42cc66e2-266f-5442-4236-087d1cc72b17" + "id": "92d29de2-c63c-00a5-616e-1181a975e855" }, { "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"components_affected\":[{\"id\":\"b257b99d-355b-4b2c-82c0-335694c1e940\",\"status\":\"major_outage\"}],\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\"},\"type\":\"degradations\"}}" + "json": "{\"data\":{\"attributes\":{\"components_affected\":[{\"id\":\"b9d994fb-bc32-456d-a260-f69c840f88cb\",\"status\":\"major_outage\"}],\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\"},\"type\":\"degradations\"}}" }, "headers": {}, "method": "POST", - "path": "/api/v2/statuspages/fcf5cb92-aa21-43c1-b2c3-54ff692fef7b/degradations", + "path": "/api/v2/statuspages/f9c156a1-d377-48bd-a8dd-dad962473707/degradations", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"2339dce7-c32c-42f4-88c6-ce3ff16f0cbd\",\"type\":\"degradations\",\"attributes\":{\"components_affected\":[{\"id\":\"b257b99d-355b-4b2c-82c0-335694c1e940\",\"name\":\"Login\",\"status\":\"major_outage\"}],\"created_at\":\"2026-01-21T21:23:48.836304Z\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"modified_at\":\"2026-01-21T21:23:48.836304Z\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\",\"updates\":[{\"id\":\"7959ea84-30c5-4c55-a12a-8272fab2b1cd\",\"created_at\":\"2026-01-21T21:23:48.836304Z\",\"modified_at\":\"2026-01-21T21:23:48.836304Z\",\"status\":\"investigating\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"components_affected\":[{\"id\":\"b257b99d-355b-4b2c-82c0-335694c1e940\",\"name\":\"Login\",\"status\":\"major_outage\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"fcf5cb92-aa21-43c1-b2c3-54ff692fef7b\",\"type\":\"status_pages\"}}}}}", + "body": "{\"data\":{\"id\":\"1513792c-27da-420c-b1c7-1d5e45955b1a\",\"type\":\"degradations\",\"attributes\":{\"components_affected\":[{\"id\":\"b9d994fb-bc32-456d-a260-f69c840f88cb\",\"name\":\"Login\",\"status\":\"major_outage\"}],\"created_at\":\"2026-02-19T21:09:38.061564Z\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"modified_at\":\"2026-02-19T21:09:38.061564Z\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\",\"updates\":[{\"id\":\"c3e63293-e48c-423e-884b-dc25ade70938\",\"created_at\":\"2026-02-19T21:09:38.061564Z\",\"modified_at\":\"2026-02-19T21:09:38.061564Z\",\"status\":\"investigating\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"components_affected\":[{\"id\":\"b9d994fb-bc32-456d-a260-f69c840f88cb\",\"name\":\"Login\",\"status\":\"major_outage\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"f9c156a1-d377-48bd-a8dd-dad962473707\",\"type\":\"status_pages\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -57,7 +57,7 @@ "timeToLive": { "unlimited": true }, - "id": "275ed5df-3696-ac17-a845-8f6c119ec055" + "id": "d370ae68-23fd-4820-9058-210d3cdbd092" }, { "httpRequest": { @@ -68,7 +68,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":[{\"id\":\"2339dce7-c32c-42f4-88c6-ce3ff16f0cbd\",\"type\":\"degradations\",\"attributes\":{\"components_affected\":[{\"id\":\"b257b99d-355b-4b2c-82c0-335694c1e940\",\"name\":\"Login\",\"status\":\"major_outage\"}],\"created_at\":\"2026-01-21T21:23:48.836304Z\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"modified_at\":\"2026-01-21T21:23:48.836304Z\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\",\"updates\":[{\"id\":\"7959ea84-30c5-4c55-a12a-8272fab2b1cd\",\"created_at\":\"2026-01-21T21:23:48.836304Z\",\"modified_at\":\"2026-01-21T21:23:48.836304Z\",\"status\":\"investigating\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"components_affected\":[{\"id\":\"b257b99d-355b-4b2c-82c0-335694c1e940\",\"name\":\"Login\",\"status\":\"major_outage\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"fcf5cb92-aa21-43c1-b2c3-54ff692fef7b\",\"type\":\"status_pages\"}}}}],\"meta\":{\"page\":{\"type\":\"offset_limit\",\"offset\":0,\"limit\":50,\"total\":1,\"first_offset\":0,\"prev_offset\":null,\"next_offset\":null,\"last_offset\":0}}}", + "body": "{\"data\":[{\"id\":\"1513792c-27da-420c-b1c7-1d5e45955b1a\",\"type\":\"degradations\",\"attributes\":{\"components_affected\":[{\"id\":\"b9d994fb-bc32-456d-a260-f69c840f88cb\",\"name\":\"Login\",\"status\":\"major_outage\"}],\"created_at\":\"2026-02-19T21:09:38.061564Z\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"modified_at\":\"2026-02-19T21:09:38.061564Z\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\",\"updates\":[{\"id\":\"c3e63293-e48c-423e-884b-dc25ade70938\",\"created_at\":\"2026-02-19T21:09:38.061564Z\",\"modified_at\":\"2026-02-19T21:09:38.061564Z\",\"status\":\"investigating\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"components_affected\":[{\"id\":\"b9d994fb-bc32-456d-a260-f69c840f88cb\",\"name\":\"Login\",\"status\":\"major_outage\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"f9c156a1-d377-48bd-a8dd-dad962473707\",\"type\":\"status_pages\"}}}}],\"meta\":{\"page\":{\"type\":\"offset_limit\",\"offset\":0,\"limit\":50,\"total\":1,\"first_offset\":0,\"prev_offset\":null,\"next_offset\":null,\"last_offset\":0}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -89,7 +89,7 @@ "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/fcf5cb92-aa21-43c1-b2c3-54ff692fef7b/degradations/2339dce7-c32c-42f4-88c6-ce3ff16f0cbd", + "path": "/api/v2/statuspages/f9c156a1-d377-48bd-a8dd-dad962473707/degradations/1513792c-27da-420c-b1c7-1d5e45955b1a", "keepAlive": false, "secure": true }, @@ -104,13 +104,13 @@ "timeToLive": { "unlimited": true }, - "id": "ac7c257f-e1aa-f62a-53af-97033b4a1f42" + "id": "9a5a6da1-dd98-0023-5ff2-edb96fbec80a" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/fcf5cb92-aa21-43c1-b2c3-54ff692fef7b", + "path": "/api/v2/statuspages/f9c156a1-d377-48bd-a8dd-dad962473707", "keepAlive": false, "secure": true }, @@ -125,6 +125,6 @@ "timeToLive": { "unlimited": true }, - "id": "c6ffb4df-deae-c180-8a5e-5070af52cf35" + "id": "96ea01de-3d9e-7fbf-d3ed-3557b216fd3a" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/List_maintenances_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/List_maintenances_returns_OK_response.freeze new file mode 100644 index 00000000000..c5070218395 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/List_maintenances_returns_OK_response.freeze @@ -0,0 +1 @@ +2026-02-19T21:09:38.938Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/List_maintenances_returns_OK_response.json b/src/test/resources/cassettes/features/v2/List_maintenances_returns_OK_response.json new file mode 100644 index 00000000000..7564c22c41a --- /dev/null +++ b/src/test/resources/cassettes/features/v2/List_maintenances_returns_OK_response.json @@ -0,0 +1,109 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"1516d45af06cc9ed\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/statuspages", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"bd404bad-494f-4409-94b3-92f1f788d2e4\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"26345afc-b408-4d08-9fa5-f3bfeae57c30\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"47bbcea0-722d-44e1-87b7-fa2fd40103a7\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"86f06ef0-c7fa-4563-98b0-581732723a3f\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:39.270745Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"1516d45af06cc9ed\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:39.270745Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/bd404bad-494f-4409-94b3-92f1f788d2e4/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "623ae479-e660-c471-4f7b-be268d2395ed" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"completed_date\":\"2026-02-19T23:09:38.938Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"47bbcea0-722d-44e1-87b7-fa2fd40103a7\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T22:09:38.938Z\",\"title\":\"API Maintenance\"},\"type\":\"maintenances\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/statuspages/bd404bad-494f-4409-94b3-92f1f788d2e4/maintenances", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"e5351abf-7257-4549-8cad-796d3f440325\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T23:09:38.938Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"47bbcea0-722d-44e1-87b7-fa2fd40103a7\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T21:09:39.909684Z\",\"published_date\":\"2026-02-19T21:09:39.909684Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T22:09:38.938Z\",\"status\":\"scheduled\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"ccded96a-4604-4431-bdd4-392929ee5d02\",\"created_at\":\"2026-02-19T21:09:39.909684Z\",\"modified_at\":\"2026-02-19T21:09:39.909684Z\",\"started_at\":\"2026-02-19T21:09:39.909684Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"47bbcea0-722d-44e1-87b7-fa2fd40103a7\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"bd404bad-494f-4409-94b3-92f1f788d2e4\",\"type\":\"status_pages\"}}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "a2ec6712-3009-25d2-47a0-a99462b12d8b" + }, + { + "httpRequest": { + "headers": {}, + "method": "GET", + "path": "/api/v2/statuspages/maintenances", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":[{\"id\":\"f286de7d-136f-4fdc-8e86-4d0777e3e21f\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T17:13:22.043Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"77170b9e-5e63-4ddb-9a0b-93e271e530ba\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T17:13:41.502717Z\",\"published_date\":\"2026-02-19T15:13:22.885588Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T16:13:22.043Z\",\"status\":\"completed\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"e53d8a4a-264d-4f85-a2f2-79db7de6a846\",\"created_at\":\"2026-02-19T17:13:41.502717Z\",\"modified_at\":\"2026-02-19T17:13:41.502717Z\",\"started_at\":\"2026-02-19T17:13:41.502717Z\",\"manual_transition\":false,\"status\":\"completed\",\"description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"77170b9e-5e63-4ddb-9a0b-93e271e530ba\",\"name\":\"Login\",\"status\":\"operational\"}]},{\"id\":\"1ae93adf-0bc9-48fb-8530-66ed6233f0e7\",\"created_at\":\"2026-02-19T16:13:29.432699Z\",\"modified_at\":\"2026-02-19T16:13:29.432699Z\",\"started_at\":\"2026-02-19T16:13:29.432699Z\",\"manual_transition\":false,\"status\":\"in_progress\",\"description\":\"We are currently performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"77170b9e-5e63-4ddb-9a0b-93e271e530ba\",\"name\":\"Login\",\"status\":\"maintenance\"}]},{\"id\":\"7f1460f1-38cf-47a5-ab00-d3bf7492cfb4\",\"created_at\":\"2026-02-19T15:13:22.885588Z\",\"modified_at\":\"2026-02-19T15:13:22.885588Z\",\"started_at\":\"2026-02-19T15:13:22.885588Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"77170b9e-5e63-4ddb-9a0b-93e271e530ba\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"b03f7910-c533-4093-b978-e0f6db6a9af4\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"6054e25a-60fa-4c88-a02a-760bae1a7917\",\"type\":\"status_pages\"}}}},{\"id\":\"17874db7-0144-476b-8313-1a126fe7640b\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T17:13:23.668Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"8e3cd5cc-1ce3-435c-863d-2f139a10fd18\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T17:13:40.505678Z\",\"published_date\":\"2026-02-19T15:13:24.508112Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T16:13:23.668Z\",\"status\":\"completed\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"b6e8df0c-5cc3-4b55-b0f9-fa000ce0ed59\",\"created_at\":\"2026-02-19T17:13:40.505678Z\",\"modified_at\":\"2026-02-19T17:13:40.505678Z\",\"started_at\":\"2026-02-19T17:13:40.505678Z\",\"manual_transition\":false,\"status\":\"completed\",\"description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"8e3cd5cc-1ce3-435c-863d-2f139a10fd18\",\"name\":\"Login\",\"status\":\"operational\"}]},{\"id\":\"4cd584cf-4c51-4f0d-9c0c-3b99e089e5ca\",\"created_at\":\"2026-02-19T16:13:31.834568Z\",\"modified_at\":\"2026-02-19T16:13:31.834568Z\",\"started_at\":\"2026-02-19T16:13:31.834568Z\",\"manual_transition\":false,\"status\":\"in_progress\",\"description\":\"We are currently performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"8e3cd5cc-1ce3-435c-863d-2f139a10fd18\",\"name\":\"Login\",\"status\":\"maintenance\"}]},{\"id\":\"2f6081e9-61fd-4320-8bc7-c183f480abd0\",\"created_at\":\"2026-02-19T15:13:24.508112Z\",\"modified_at\":\"2026-02-19T15:13:24.508112Z\",\"started_at\":\"2026-02-19T15:13:24.508112Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"8e3cd5cc-1ce3-435c-863d-2f139a10fd18\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"b03f7910-c533-4093-b978-e0f6db6a9af4\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"6f3e2bef-846a-4c05-9d6d-35d9d136c31a\",\"type\":\"status_pages\"}}}},{\"id\":\"8e70e109-ca9d-4d82-b2e5-4ca9c363daa5\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T17:13:24.776Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"7d4bd295-b987-49b0-8086-9dddbcfade33\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance for 40 minutes.\",\"modified_at\":\"2026-02-19T17:13:41.406073Z\",\"published_date\":\"2026-02-19T15:13:25.641763Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance for 40 minutes.\",\"start_date\":\"2026-02-19T16:13:24.776Z\",\"status\":\"completed\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"78579cc3-4935-43d7-9d4f-7889655bb414\",\"created_at\":\"2026-02-19T17:13:41.406073Z\",\"modified_at\":\"2026-02-19T17:13:41.406073Z\",\"started_at\":\"2026-02-19T17:13:41.406073Z\",\"manual_transition\":false,\"status\":\"completed\",\"description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"7d4bd295-b987-49b0-8086-9dddbcfade33\",\"name\":\"Login\",\"status\":\"operational\"}]},{\"id\":\"04f5122c-2c8e-4605-878c-bdd401d1a6a4\",\"created_at\":\"2026-02-19T16:13:29.281104Z\",\"modified_at\":\"2026-02-19T16:13:29.281104Z\",\"started_at\":\"2026-02-19T16:13:29.281104Z\",\"manual_transition\":false,\"status\":\"in_progress\",\"description\":\"We are currently performing maintenance on the API to improve performance for 40 minutes.\",\"components_affected\":[{\"id\":\"7d4bd295-b987-49b0-8086-9dddbcfade33\",\"name\":\"Login\",\"status\":\"maintenance\"}]},{\"id\":\"5943a568-c880-4b32-ab7b-1701adf218cf\",\"created_at\":\"2026-02-19T15:13:25.641763Z\",\"modified_at\":\"2026-02-19T15:13:25.641763Z\",\"started_at\":\"2026-02-19T15:13:25.641763Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"7d4bd295-b987-49b0-8086-9dddbcfade33\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"b03f7910-c533-4093-b978-e0f6db6a9af4\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"fbcbdef4-4e3a-436a-bb0a-be8205a98b36\",\"type\":\"status_pages\"}}}},{\"id\":\"6f08d7a7-d37d-4c75-807b-234e71d6d40b\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T17:48:44.696Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"2bf35e8e-28c9-49c3-948a-854097030f2c\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T17:48:51.504226Z\",\"published_date\":\"2026-02-19T15:48:45.758873Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T16:48:44.696Z\",\"status\":\"completed\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"13300fac-e192-4604-b987-2759f980238a\",\"created_at\":\"2026-02-19T17:48:51.504226Z\",\"modified_at\":\"2026-02-19T17:48:51.504226Z\",\"started_at\":\"2026-02-19T17:48:51.504226Z\",\"manual_transition\":false,\"status\":\"completed\",\"description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"2bf35e8e-28c9-49c3-948a-854097030f2c\",\"name\":\"Login\",\"status\":\"operational\"}]},{\"id\":\"82980649-7416-405a-a882-bafd1fdd5d4c\",\"created_at\":\"2026-02-19T16:48:52.562843Z\",\"modified_at\":\"2026-02-19T16:48:52.562843Z\",\"started_at\":\"2026-02-19T16:48:52.562843Z\",\"manual_transition\":false,\"status\":\"in_progress\",\"description\":\"We are currently performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"2bf35e8e-28c9-49c3-948a-854097030f2c\",\"name\":\"Login\",\"status\":\"maintenance\"}]},{\"id\":\"a9fca162-a79b-4a3e-b67a-571fdca4b0d6\",\"created_at\":\"2026-02-19T15:48:45.758873Z\",\"modified_at\":\"2026-02-19T15:48:45.758873Z\",\"started_at\":\"2026-02-19T15:48:45.758873Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"2bf35e8e-28c9-49c3-948a-854097030f2c\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"b03f7910-c533-4093-b978-e0f6db6a9af4\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"b57576ee-457d-43da-9b17-f7e9087ab4a4\",\"type\":\"status_pages\"}}}},{\"id\":\"c6150974-eab5-4ca9-93a5-78b615b22801\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T17:48:46.187Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"6407bf01-0c11-4509-8ae6-24c77cf205da\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T17:48:50.958358Z\",\"published_date\":\"2026-02-19T15:48:47.266145Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T16:48:46.187Z\",\"status\":\"completed\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"fd8aaab4-2f77-4e5d-9f0f-5255e40b33a0\",\"created_at\":\"2026-02-19T17:48:50.958358Z\",\"modified_at\":\"2026-02-19T17:48:50.958358Z\",\"started_at\":\"2026-02-19T17:48:50.958358Z\",\"manual_transition\":false,\"status\":\"completed\",\"description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"6407bf01-0c11-4509-8ae6-24c77cf205da\",\"name\":\"Login\",\"status\":\"operational\"}]},{\"id\":\"66ea1633-4c51-4e7a-9eb2-d85d810e4ae9\",\"created_at\":\"2026-02-19T16:48:52.244498Z\",\"modified_at\":\"2026-02-19T16:48:52.244498Z\",\"started_at\":\"2026-02-19T16:48:52.244498Z\",\"manual_transition\":false,\"status\":\"in_progress\",\"description\":\"We are currently performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"6407bf01-0c11-4509-8ae6-24c77cf205da\",\"name\":\"Login\",\"status\":\"maintenance\"}]},{\"id\":\"19f9e7b6-ba0f-4567-8984-ac145414f81d\",\"created_at\":\"2026-02-19T15:48:47.266145Z\",\"modified_at\":\"2026-02-19T15:48:47.266145Z\",\"started_at\":\"2026-02-19T15:48:47.266145Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"6407bf01-0c11-4509-8ae6-24c77cf205da\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"b03f7910-c533-4093-b978-e0f6db6a9af4\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"a8e6fdb1-05c8-416c-a150-9af49c513206\",\"type\":\"status_pages\"}}}},{\"id\":\"a0ba86bb-b5da-4fb7-9f14-d69d0dcba6d6\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T17:48:47.701Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"5cc44628-14ac-4563-a052-5b1f9a3fa3e4\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance for 40 minutes.\",\"modified_at\":\"2026-02-19T17:48:52.64131Z\",\"published_date\":\"2026-02-19T15:48:48.889128Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance for 40 minutes.\",\"start_date\":\"2026-02-19T16:48:47.701Z\",\"status\":\"completed\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"aa6a3313-db4e-4236-8d20-621907bd69fd\",\"created_at\":\"2026-02-19T17:48:52.64131Z\",\"modified_at\":\"2026-02-19T17:48:52.64131Z\",\"started_at\":\"2026-02-19T17:48:52.64131Z\",\"manual_transition\":false,\"status\":\"completed\",\"description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"5cc44628-14ac-4563-a052-5b1f9a3fa3e4\",\"name\":\"Login\",\"status\":\"operational\"}]},{\"id\":\"c4e8af34-28d8-4471-a7af-93f625314e61\",\"created_at\":\"2026-02-19T16:48:52.612772Z\",\"modified_at\":\"2026-02-19T16:48:52.612772Z\",\"started_at\":\"2026-02-19T16:48:52.612772Z\",\"manual_transition\":false,\"status\":\"in_progress\",\"description\":\"We are currently performing maintenance on the API to improve performance for 40 minutes.\",\"components_affected\":[{\"id\":\"5cc44628-14ac-4563-a052-5b1f9a3fa3e4\",\"name\":\"Login\",\"status\":\"maintenance\"}]},{\"id\":\"77718021-f74f-4170-b26b-22e2e54f37c5\",\"created_at\":\"2026-02-19T15:48:48.889128Z\",\"modified_at\":\"2026-02-19T15:48:48.889128Z\",\"started_at\":\"2026-02-19T15:48:48.889128Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"5cc44628-14ac-4563-a052-5b1f9a3fa3e4\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"b03f7910-c533-4093-b978-e0f6db6a9af4\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"cfbf3ff5-f7e6-4d6c-8175-cbff110ebfc9\",\"type\":\"status_pages\"}}}},{\"id\":\"9b6a31cf-ef44-4185-8cd4-9355ba5a44c9\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T18:05:01.67Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"0da9e91e-519e-4d1b-a530-95dbf9b1d6a3\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T18:05:06.005306Z\",\"published_date\":\"2026-02-19T16:05:02.831343Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T17:05:01.67Z\",\"status\":\"completed\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"afad908a-1dac-409c-a8fd-ffa57399361a\",\"created_at\":\"2026-02-19T18:05:06.005306Z\",\"modified_at\":\"2026-02-19T18:05:06.005306Z\",\"started_at\":\"2026-02-19T18:05:06.005306Z\",\"manual_transition\":false,\"status\":\"completed\",\"description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"0da9e91e-519e-4d1b-a530-95dbf9b1d6a3\",\"name\":\"Login\",\"status\":\"operational\"}]},{\"id\":\"31265ba4-b0b7-4e34-8364-068ad60af91d\",\"created_at\":\"2026-02-19T17:05:11.035132Z\",\"modified_at\":\"2026-02-19T17:05:11.035132Z\",\"started_at\":\"2026-02-19T17:05:11.035132Z\",\"manual_transition\":false,\"status\":\"in_progress\",\"description\":\"We are currently performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"0da9e91e-519e-4d1b-a530-95dbf9b1d6a3\",\"name\":\"Login\",\"status\":\"maintenance\"}]},{\"id\":\"9a5a0962-7ca7-4d2c-9717-8c7df395d512\",\"created_at\":\"2026-02-19T16:05:02.831343Z\",\"modified_at\":\"2026-02-19T16:05:02.831343Z\",\"started_at\":\"2026-02-19T16:05:02.831343Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"0da9e91e-519e-4d1b-a530-95dbf9b1d6a3\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"b03f7910-c533-4093-b978-e0f6db6a9af4\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"c3af2a4f-dd6e-4777-8899-7be70c0e629c\",\"type\":\"status_pages\"}}}},{\"id\":\"d94642f5-fe45-46b8-a61d-f48dee50fc8b\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T18:05:03.183Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"2ec5ce94-7c6b-4883-b963-774cde63af0e\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T18:05:09.356968Z\",\"published_date\":\"2026-02-19T16:05:04.238719Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T17:05:03.183Z\",\"status\":\"completed\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"52b79331-678b-47e7-ba86-26d0c3b22b70\",\"created_at\":\"2026-02-19T18:05:09.356968Z\",\"modified_at\":\"2026-02-19T18:05:09.356968Z\",\"started_at\":\"2026-02-19T18:05:09.356968Z\",\"manual_transition\":false,\"status\":\"completed\",\"description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"2ec5ce94-7c6b-4883-b963-774cde63af0e\",\"name\":\"Login\",\"status\":\"operational\"}]},{\"id\":\"2a7e245f-1f32-4708-8f36-ccfd5c545719\",\"created_at\":\"2026-02-19T17:05:11.018617Z\",\"modified_at\":\"2026-02-19T17:05:11.018617Z\",\"started_at\":\"2026-02-19T17:05:11.018617Z\",\"manual_transition\":false,\"status\":\"in_progress\",\"description\":\"We are currently performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"2ec5ce94-7c6b-4883-b963-774cde63af0e\",\"name\":\"Login\",\"status\":\"maintenance\"}]},{\"id\":\"d55f8f1d-09d8-4f08-9d04-24f7d719841e\",\"created_at\":\"2026-02-19T16:05:04.238719Z\",\"modified_at\":\"2026-02-19T16:05:04.238719Z\",\"started_at\":\"2026-02-19T16:05:04.238719Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"2ec5ce94-7c6b-4883-b963-774cde63af0e\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"b03f7910-c533-4093-b978-e0f6db6a9af4\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"e4a07280-5e60-41e8-8868-d6b391ac9ba4\",\"type\":\"status_pages\"}}}},{\"id\":\"e47a4a10-abac-4196-a38f-95a05e4d3a73\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T18:05:04.644Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"c354419b-c97e-49c6-b556-a2bd73c2945b\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance for 40 minutes.\",\"modified_at\":\"2026-02-19T18:05:16.800514Z\",\"published_date\":\"2026-02-19T16:05:05.525216Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance for 40 minutes.\",\"start_date\":\"2026-02-19T17:05:04.644Z\",\"status\":\"completed\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"31f2ab95-151a-45ca-833c-82d9a9b1335b\",\"created_at\":\"2026-02-19T18:05:16.800514Z\",\"modified_at\":\"2026-02-19T18:05:16.800514Z\",\"started_at\":\"2026-02-19T18:05:16.800514Z\",\"manual_transition\":false,\"status\":\"completed\",\"description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"c354419b-c97e-49c6-b556-a2bd73c2945b\",\"name\":\"Login\",\"status\":\"operational\"}]},{\"id\":\"2b337ccf-3b7d-4360-9d64-a96471191650\",\"created_at\":\"2026-02-19T17:05:11.670406Z\",\"modified_at\":\"2026-02-19T17:05:11.670406Z\",\"started_at\":\"2026-02-19T17:05:11.670406Z\",\"manual_transition\":false,\"status\":\"in_progress\",\"description\":\"We are currently performing maintenance on the API to improve performance for 40 minutes.\",\"components_affected\":[{\"id\":\"c354419b-c97e-49c6-b556-a2bd73c2945b\",\"name\":\"Login\",\"status\":\"maintenance\"}]},{\"id\":\"7c4544d5-5c50-4833-89cf-8dda15768115\",\"created_at\":\"2026-02-19T16:05:05.525216Z\",\"modified_at\":\"2026-02-19T16:05:05.525216Z\",\"started_at\":\"2026-02-19T16:05:05.525216Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"c354419b-c97e-49c6-b556-a2bd73c2945b\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"b03f7910-c533-4093-b978-e0f6db6a9af4\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"9554c1f6-837d-4ce9-8682-90cc44689d6e\",\"type\":\"status_pages\"}}}},{\"id\":\"798fb3e3-453e-44e2-bc6f-fd29f5d4b5da\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T18:26:36.738Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"2a064c38-b34c-4afd-8958-567b4fb94891\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T18:26:39.660886Z\",\"published_date\":\"2026-02-19T16:26:37.551277Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T17:26:36.738Z\",\"status\":\"completed\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"a7a4a4e7-3a7a-4324-8d8d-869bc9c87085\",\"created_at\":\"2026-02-19T18:26:39.660886Z\",\"modified_at\":\"2026-02-19T18:26:39.660886Z\",\"started_at\":\"2026-02-19T18:26:39.660886Z\",\"manual_transition\":false,\"status\":\"completed\",\"description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"2a064c38-b34c-4afd-8958-567b4fb94891\",\"name\":\"Login\",\"status\":\"operational\"}]},{\"id\":\"fc42e821-999c-4bcd-a7fe-c41a8f53a4f3\",\"created_at\":\"2026-02-19T17:26:41.211615Z\",\"modified_at\":\"2026-02-19T17:26:41.211615Z\",\"started_at\":\"2026-02-19T17:26:41.211615Z\",\"manual_transition\":false,\"status\":\"in_progress\",\"description\":\"We are currently performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"2a064c38-b34c-4afd-8958-567b4fb94891\",\"name\":\"Login\",\"status\":\"maintenance\"}]},{\"id\":\"5c982a14-c686-4abf-9cd0-1560f489efe4\",\"created_at\":\"2026-02-19T16:26:37.551277Z\",\"modified_at\":\"2026-02-19T16:26:37.551277Z\",\"started_at\":\"2026-02-19T16:26:37.551277Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"2a064c38-b34c-4afd-8958-567b4fb94891\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"b03f7910-c533-4093-b978-e0f6db6a9af4\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"ef7f6596-79dd-4f10-9e02-96047289e678\",\"type\":\"status_pages\"}}}},{\"id\":\"b0bc5c8b-4b21-49d6-8a63-fc58846cd85f\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T18:26:41.901Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"eb5ff7d4-3faa-4216-9141-b616ecfa29a7\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T18:26:50.363316Z\",\"published_date\":\"2026-02-19T16:26:42.616591Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T17:26:41.901Z\",\"status\":\"completed\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"d0a52474-99f4-45f4-ac23-fd97755e1825\",\"created_at\":\"2026-02-19T18:26:50.363316Z\",\"modified_at\":\"2026-02-19T18:26:50.363316Z\",\"started_at\":\"2026-02-19T18:26:50.363316Z\",\"manual_transition\":false,\"status\":\"completed\",\"description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"eb5ff7d4-3faa-4216-9141-b616ecfa29a7\",\"name\":\"Login\",\"status\":\"operational\"}]},{\"id\":\"a722ee55-83b1-4366-bbe7-d6228c67d6db\",\"created_at\":\"2026-02-19T17:26:50.619047Z\",\"modified_at\":\"2026-02-19T17:26:50.619047Z\",\"started_at\":\"2026-02-19T17:26:50.619047Z\",\"manual_transition\":false,\"status\":\"in_progress\",\"description\":\"We are currently performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"eb5ff7d4-3faa-4216-9141-b616ecfa29a7\",\"name\":\"Login\",\"status\":\"maintenance\"}]},{\"id\":\"b2a2964f-28ec-40db-9cdc-507c4343232d\",\"created_at\":\"2026-02-19T16:26:42.616591Z\",\"modified_at\":\"2026-02-19T16:26:42.616591Z\",\"started_at\":\"2026-02-19T16:26:42.616591Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"eb5ff7d4-3faa-4216-9141-b616ecfa29a7\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"b03f7910-c533-4093-b978-e0f6db6a9af4\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"d3167fc5-957d-4ec6-a55d-d75a5eb1926a\",\"type\":\"status_pages\"}}}},{\"id\":\"080453e2-155d-4807-aec4-b50cb4edccc7\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T18:26:47.556Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"222ce53c-1646-45bc-a5d4-27e0a4eb0313\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance for 40 minutes.\",\"modified_at\":\"2026-02-19T18:26:50.306926Z\",\"published_date\":\"2026-02-19T16:26:48.303105Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance for 40 minutes.\",\"start_date\":\"2026-02-19T17:26:47.556Z\",\"status\":\"completed\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"e1f2c1a8-2797-4eb8-9e90-ad0aae8315f7\",\"created_at\":\"2026-02-19T18:26:50.306926Z\",\"modified_at\":\"2026-02-19T18:26:50.306926Z\",\"started_at\":\"2026-02-19T18:26:50.306926Z\",\"manual_transition\":false,\"status\":\"completed\",\"description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"222ce53c-1646-45bc-a5d4-27e0a4eb0313\",\"name\":\"Login\",\"status\":\"operational\"}]},{\"id\":\"3a591848-156c-4043-9c23-7c23d7882b20\",\"created_at\":\"2026-02-19T17:26:54.951261Z\",\"modified_at\":\"2026-02-19T17:26:54.951261Z\",\"started_at\":\"2026-02-19T17:26:54.951261Z\",\"manual_transition\":false,\"status\":\"in_progress\",\"description\":\"We are currently performing maintenance on the API to improve performance for 40 minutes.\",\"components_affected\":[{\"id\":\"222ce53c-1646-45bc-a5d4-27e0a4eb0313\",\"name\":\"Login\",\"status\":\"maintenance\"}]},{\"id\":\"39aec418-b668-489d-92ab-519149092c7d\",\"created_at\":\"2026-02-19T16:26:48.303105Z\",\"modified_at\":\"2026-02-19T16:26:48.303105Z\",\"started_at\":\"2026-02-19T16:26:48.303105Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"222ce53c-1646-45bc-a5d4-27e0a4eb0313\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"b03f7910-c533-4093-b978-e0f6db6a9af4\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"7e1c914a-7b5d-4928-9603-2c231f4e27b5\",\"type\":\"status_pages\"}}}},{\"id\":\"6c7a18e8-ec4a-44a0-b769-a300bfd4647f\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T18:41:05.953Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"e19596ba-245c-49dc-9274-5aa1b7e865f5\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T18:41:10.642682Z\",\"published_date\":\"2026-02-19T16:41:06.978106Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T17:41:05.953Z\",\"status\":\"completed\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"9dea7ab6-3b6d-40f5-bf02-b2509e5d7ef6\",\"created_at\":\"2026-02-19T18:41:10.642682Z\",\"modified_at\":\"2026-02-19T18:41:10.642682Z\",\"started_at\":\"2026-02-19T18:41:10.642682Z\",\"manual_transition\":false,\"status\":\"completed\",\"description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"e19596ba-245c-49dc-9274-5aa1b7e865f5\",\"name\":\"Login\",\"status\":\"operational\"}]},{\"id\":\"3cedcd9f-f4d2-41f3-acaf-74eaedb0c840\",\"created_at\":\"2026-02-19T17:41:18.858442Z\",\"modified_at\":\"2026-02-19T17:41:18.858442Z\",\"started_at\":\"2026-02-19T17:41:18.858442Z\",\"manual_transition\":false,\"status\":\"in_progress\",\"description\":\"We are currently performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"e19596ba-245c-49dc-9274-5aa1b7e865f5\",\"name\":\"Login\",\"status\":\"maintenance\"}]},{\"id\":\"5bcb7196-17d4-440d-92cb-b6fc3e89ca92\",\"created_at\":\"2026-02-19T16:41:06.978106Z\",\"modified_at\":\"2026-02-19T16:41:06.978106Z\",\"started_at\":\"2026-02-19T16:41:06.978106Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"e19596ba-245c-49dc-9274-5aa1b7e865f5\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"b03f7910-c533-4093-b978-e0f6db6a9af4\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"a8e3fb88-56ee-4f01-8909-734f9a066177\",\"type\":\"status_pages\"}}}},{\"id\":\"563de34b-6e0e-4304-a00a-d080c7a3add6\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T18:41:11.445Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"862e2d94-1286-423c-86ec-541f5f5aa5e6\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T18:41:21.384964Z\",\"published_date\":\"2026-02-19T16:41:12.248062Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T17:41:11.445Z\",\"status\":\"completed\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"49b97e00-3bb0-4796-a6a9-15838fe59797\",\"created_at\":\"2026-02-19T18:41:21.384964Z\",\"modified_at\":\"2026-02-19T18:41:21.384964Z\",\"started_at\":\"2026-02-19T18:41:21.384964Z\",\"manual_transition\":false,\"status\":\"completed\",\"description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"862e2d94-1286-423c-86ec-541f5f5aa5e6\",\"name\":\"Login\",\"status\":\"operational\"}]},{\"id\":\"336fe68b-506d-41b9-8a6e-ce0c5e9c50f6\",\"created_at\":\"2026-02-19T17:41:20.982233Z\",\"modified_at\":\"2026-02-19T17:41:20.982233Z\",\"started_at\":\"2026-02-19T17:41:20.982233Z\",\"manual_transition\":false,\"status\":\"in_progress\",\"description\":\"We are currently performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"862e2d94-1286-423c-86ec-541f5f5aa5e6\",\"name\":\"Login\",\"status\":\"maintenance\"}]},{\"id\":\"f1eae39b-e846-45c9-a9cd-b0ee05b7abe1\",\"created_at\":\"2026-02-19T16:41:12.248062Z\",\"modified_at\":\"2026-02-19T16:41:12.248062Z\",\"started_at\":\"2026-02-19T16:41:12.248062Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"862e2d94-1286-423c-86ec-541f5f5aa5e6\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"b03f7910-c533-4093-b978-e0f6db6a9af4\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"7c3eff68-42fb-4ddb-8761-3e7695d79570\",\"type\":\"status_pages\"}}}},{\"id\":\"3f7e4061-f99e-48e1-ac4d-02f175e556a5\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T18:41:17.115Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"03b85dec-3f1c-4bc1-b6a6-c3070e94aaa7\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance for 40 minutes.\",\"modified_at\":\"2026-02-19T18:41:21.354571Z\",\"published_date\":\"2026-02-19T16:41:17.821981Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance for 40 minutes.\",\"start_date\":\"2026-02-19T17:41:17.115Z\",\"status\":\"completed\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"e887c9c6-9d32-41ad-915b-f59457d46200\",\"created_at\":\"2026-02-19T18:41:21.354571Z\",\"modified_at\":\"2026-02-19T18:41:21.354571Z\",\"started_at\":\"2026-02-19T18:41:21.354571Z\",\"manual_transition\":false,\"status\":\"completed\",\"description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"03b85dec-3f1c-4bc1-b6a6-c3070e94aaa7\",\"name\":\"Login\",\"status\":\"operational\"}]},{\"id\":\"b7b92c17-d92a-4d1f-8c80-33808033ac42\",\"created_at\":\"2026-02-19T17:41:23.212672Z\",\"modified_at\":\"2026-02-19T17:41:23.212672Z\",\"started_at\":\"2026-02-19T17:41:23.212672Z\",\"manual_transition\":false,\"status\":\"in_progress\",\"description\":\"We are currently performing maintenance on the API to improve performance for 40 minutes.\",\"components_affected\":[{\"id\":\"03b85dec-3f1c-4bc1-b6a6-c3070e94aaa7\",\"name\":\"Login\",\"status\":\"maintenance\"}]},{\"id\":\"ad754c3b-05d8-4618-9d56-c03ec63c3c16\",\"created_at\":\"2026-02-19T16:41:17.821981Z\",\"modified_at\":\"2026-02-19T16:41:17.821981Z\",\"started_at\":\"2026-02-19T16:41:17.821981Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"03b85dec-3f1c-4bc1-b6a6-c3070e94aaa7\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"b03f7910-c533-4093-b978-e0f6db6a9af4\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"4561e0f5-5a64-4bc9-b16c-654d3d81325a\",\"type\":\"status_pages\"}}}},{\"id\":\"7b2e52dd-cbca-4ba4-a73b-30b8e5df6094\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2027-02-19T17:13:22.043Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"c4d3a1be-8d3d-4b09-9521-b03d5c1e6fdd\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T16:43:58.312902Z\",\"published_date\":\"2026-02-19T16:43:58.312902Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2027-02-19T16:13:22.043Z\",\"status\":\"scheduled\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"d727f2e1-86de-4780-9a83-32e9615f24ab\",\"created_at\":\"2026-02-19T16:43:58.312902Z\",\"modified_at\":\"2026-02-19T16:43:58.312902Z\",\"started_at\":\"2026-02-19T16:43:58.312902Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"c4d3a1be-8d3d-4b09-9521-b03d5c1e6fdd\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"0e37a7c0-9b0c-4c4e-b315-6b5e145390af\",\"type\":\"status_pages\"}}}},{\"id\":\"0cc3280d-2127-4429-9777-18ff1d0025f7\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T18:44:06.253Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"579f0d5c-cce7-4666-98f3-40a696be8cc7\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T18:44:14.043097Z\",\"published_date\":\"2026-02-19T16:44:06.928335Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T17:44:06.253Z\",\"status\":\"completed\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"f8fd0b5a-851d-4909-9f0a-552687659550\",\"created_at\":\"2026-02-19T18:44:14.043097Z\",\"modified_at\":\"2026-02-19T18:44:14.043097Z\",\"started_at\":\"2026-02-19T18:44:14.043097Z\",\"manual_transition\":false,\"status\":\"completed\",\"description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"579f0d5c-cce7-4666-98f3-40a696be8cc7\",\"name\":\"Login\",\"status\":\"operational\"}]},{\"id\":\"05abf843-058a-44b2-8c4a-178893cfb59c\",\"created_at\":\"2026-02-19T17:44:16.964205Z\",\"modified_at\":\"2026-02-19T17:44:16.964205Z\",\"started_at\":\"2026-02-19T17:44:16.964205Z\",\"manual_transition\":false,\"status\":\"in_progress\",\"description\":\"We are currently performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"579f0d5c-cce7-4666-98f3-40a696be8cc7\",\"name\":\"Login\",\"status\":\"maintenance\"}]},{\"id\":\"558325df-2d6d-4343-9a97-f6c9e165b4f1\",\"created_at\":\"2026-02-19T16:44:06.928335Z\",\"modified_at\":\"2026-02-19T16:44:06.928335Z\",\"started_at\":\"2026-02-19T16:44:06.928335Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"579f0d5c-cce7-4666-98f3-40a696be8cc7\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"b03f7910-c533-4093-b978-e0f6db6a9af4\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"016f2768-6987-4a8f-898b-ab94e17b3dd3\",\"type\":\"status_pages\"}}}},{\"id\":\"ab486ec9-5e60-4d2b-88f3-86cce89baeb9\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T18:44:11.197Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"d1d9b93d-301d-4dad-8f3b-4475a3fad1b1\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T18:44:24.658174Z\",\"published_date\":\"2026-02-19T16:44:11.945804Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T17:44:11.197Z\",\"status\":\"completed\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"b50bbda8-d21b-4653-8602-b9be48316cf5\",\"created_at\":\"2026-02-19T18:44:24.658174Z\",\"modified_at\":\"2026-02-19T18:44:24.658174Z\",\"started_at\":\"2026-02-19T18:44:24.658174Z\",\"manual_transition\":false,\"status\":\"completed\",\"description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"d1d9b93d-301d-4dad-8f3b-4475a3fad1b1\",\"name\":\"Login\",\"status\":\"operational\"}]},{\"id\":\"49c62cd2-f176-4829-8dd5-138778c2902c\",\"created_at\":\"2026-02-19T17:44:15.757371Z\",\"modified_at\":\"2026-02-19T17:44:15.757371Z\",\"started_at\":\"2026-02-19T17:44:15.757371Z\",\"manual_transition\":false,\"status\":\"in_progress\",\"description\":\"We are currently performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"d1d9b93d-301d-4dad-8f3b-4475a3fad1b1\",\"name\":\"Login\",\"status\":\"maintenance\"}]},{\"id\":\"9e272ba1-8d7e-41c5-8454-5d7f15864b90\",\"created_at\":\"2026-02-19T16:44:11.945804Z\",\"modified_at\":\"2026-02-19T16:44:11.945804Z\",\"started_at\":\"2026-02-19T16:44:11.945804Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"d1d9b93d-301d-4dad-8f3b-4475a3fad1b1\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"b03f7910-c533-4093-b978-e0f6db6a9af4\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"bd3f1d69-4ee1-428d-8ac8-f03f387a7677\",\"type\":\"status_pages\"}}}},{\"id\":\"dd68d4f9-5eff-4ab9-bbb4-bd80ef184b07\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T18:44:16.748Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"44da03e1-1b23-4100-b26f-68ab4f8ca457\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance for 40 minutes.\",\"modified_at\":\"2026-02-19T18:44:24.483553Z\",\"published_date\":\"2026-02-19T16:44:17.427344Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance for 40 minutes.\",\"start_date\":\"2026-02-19T17:44:16.748Z\",\"status\":\"completed\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"19b8a7d2-7164-4383-bdf2-463de3d1242c\",\"created_at\":\"2026-02-19T18:44:24.483553Z\",\"modified_at\":\"2026-02-19T18:44:24.483553Z\",\"started_at\":\"2026-02-19T18:44:24.483553Z\",\"manual_transition\":false,\"status\":\"completed\",\"description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"44da03e1-1b23-4100-b26f-68ab4f8ca457\",\"name\":\"Login\",\"status\":\"operational\"}]},{\"id\":\"bc432e95-9e82-4b4c-a152-11a10acc0217\",\"created_at\":\"2026-02-19T17:44:26.587427Z\",\"modified_at\":\"2026-02-19T17:44:26.587427Z\",\"started_at\":\"2026-02-19T17:44:26.587427Z\",\"manual_transition\":false,\"status\":\"in_progress\",\"description\":\"We are currently performing maintenance on the API to improve performance for 40 minutes.\",\"components_affected\":[{\"id\":\"44da03e1-1b23-4100-b26f-68ab4f8ca457\",\"name\":\"Login\",\"status\":\"maintenance\"}]},{\"id\":\"9cf9afba-2352-4e3c-9bca-a52a60ce2950\",\"created_at\":\"2026-02-19T16:44:17.427344Z\",\"modified_at\":\"2026-02-19T16:44:17.427344Z\",\"started_at\":\"2026-02-19T16:44:17.427344Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"44da03e1-1b23-4100-b26f-68ab4f8ca457\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"b03f7910-c533-4093-b978-e0f6db6a9af4\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"33c6f810-15d8-4ce2-835b-1ac3a6ca1dbc\",\"type\":\"status_pages\"}}}},{\"id\":\"42680154-cc22-432b-8132-dff3184823fa\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T23:06:20.302Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"63331812-b5a5-422a-889a-f7ca633b2d80\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T21:06:21.347203Z\",\"published_date\":\"2026-02-19T21:06:21.347203Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T22:06:20.302Z\",\"status\":\"scheduled\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"6e23db69-3e05-49d2-890c-c5c619e95bd6\",\"created_at\":\"2026-02-19T21:06:21.347203Z\",\"modified_at\":\"2026-02-19T21:06:21.347203Z\",\"started_at\":\"2026-02-19T21:06:21.347203Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"63331812-b5a5-422a-889a-f7ca633b2d80\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"0751ca80-99db-4247-ae44-655162fa07a9\",\"type\":\"status_pages\"}}}},{\"id\":\"7c30b38a-5670-4187-8ee3-dbf13cfc969f\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T23:06:26.166Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"9fabc1b3-bfc4-45f5-8fe7-6b284be04d28\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T21:06:27.326948Z\",\"published_date\":\"2026-02-19T21:06:27.326948Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T22:06:26.166Z\",\"status\":\"scheduled\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"2ce54aea-a951-4f0f-899e-5b177b28343c\",\"created_at\":\"2026-02-19T21:06:27.326948Z\",\"modified_at\":\"2026-02-19T21:06:27.326948Z\",\"started_at\":\"2026-02-19T21:06:27.326948Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"9fabc1b3-bfc4-45f5-8fe7-6b284be04d28\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"6cb07301-fa51-4113-babd-229a0e86942e\",\"type\":\"status_pages\"}}}},{\"id\":\"3f112086-958b-472f-84b0-04513a6ac860\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T23:06:32.872Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"de9b6f98-2556-44c9-bb88-9d839e1fda62\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance for 40 minutes.\",\"modified_at\":\"2026-02-19T21:06:34.18225Z\",\"published_date\":\"2026-02-19T21:06:33.926332Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance for 40 minutes.\",\"start_date\":\"2026-02-19T22:06:32.872Z\",\"status\":\"scheduled\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"ed7b7ce3-9911-4da3-8b45-0fba052f3139\",\"created_at\":\"2026-02-19T21:06:33.926332Z\",\"modified_at\":\"2026-02-19T21:06:33.926332Z\",\"started_at\":\"2026-02-19T21:06:33.926332Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"de9b6f98-2556-44c9-bb88-9d839e1fda62\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"4d753d2f-1348-486d-afc7-22f3e1759af3\",\"type\":\"status_pages\"}}}},{\"id\":\"e5351abf-7257-4549-8cad-796d3f440325\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T23:09:38.938Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"47bbcea0-722d-44e1-87b7-fa2fd40103a7\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T21:09:39.909684Z\",\"published_date\":\"2026-02-19T21:09:39.909684Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T22:09:38.938Z\",\"status\":\"scheduled\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"ccded96a-4604-4431-bdd4-392929ee5d02\",\"created_at\":\"2026-02-19T21:09:39.909684Z\",\"modified_at\":\"2026-02-19T21:09:39.909684Z\",\"started_at\":\"2026-02-19T21:09:39.909684Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"47bbcea0-722d-44e1-87b7-fa2fd40103a7\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"bd404bad-494f-4409-94b3-92f1f788d2e4\",\"type\":\"status_pages\"}}}}],\"meta\":{\"page\":{\"type\":\"offset_limit\",\"offset\":0,\"limit\":50,\"total\":23,\"first_offset\":0,\"prev_offset\":null,\"next_offset\":null,\"last_offset\":0}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "3b80f059-341a-1ed3-5001-787afda11e1f" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/statuspages/bd404bad-494f-4409-94b3-92f1f788d2e4", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "headers": {}, + "statusCode": 204, + "reasonPhrase": "No Content" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "15733494-2d2f-a71e-7ab9-157cfd2021cb" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/List_status_pages_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/List_status_pages_returns_OK_response.freeze index 95c95875d8d..84c59bd0380 100644 --- a/src/test/resources/cassettes/features/v2/List_status_pages_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/List_status_pages_returns_OK_response.freeze @@ -1 +1 @@ -2026-01-21T21:23:49.653Z \ No newline at end of file +2026-02-19T21:09:40.739Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/List_status_pages_returns_OK_response.json b/src/test/resources/cassettes/features/v2/List_status_pages_returns_OK_response.json index d9b8f7537d4..1601b50657a 100644 --- a/src/test/resources/cassettes/features/v2/List_status_pages_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/List_status_pages_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"a292a726f79d8dd3\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" + "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"afa3045896f83bda\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"2fb5cefa-a43b-4974-b439-96cef54df054\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"82aa9ec5-5394-4138-8d6c-475ed209b03d\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"5e7fc960-39ed-4522-aa38-187f41ace1fd\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"eda28835-e8a6-44a1-87f7-8da14819152b\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-01-21T21:23:49.763982Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"a292a726f79d8dd3\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-01-21T21:23:49.763982Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/2fb5cefa-a43b-4974-b439-96cef54df054/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "body": "{\"data\":{\"id\":\"af65e4fe-8698-4267-89a9-f8f0158ce62f\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"ae113f16-56fd-49dd-ab9b-912819187873\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"2727c1b7-e0ef-4cd1-9cf4-e169d10d9488\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"b765850f-2490-408e-86b6-b6fbbab02e89\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:41.083993Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"afa3045896f83bda\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:41.083993Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/af65e4fe-8698-4267-89a9-f8f0158ce62f/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "63d67ac0-a4fe-0d95-36a3-73008bd74bc0" + "id": "8ed7a9f0-cd9f-0e37-7bdb-5864d125c92c" }, { "httpRequest": { @@ -38,7 +38,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":[{\"id\":\"2fb5cefa-a43b-4974-b439-96cef54df054\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"82aa9ec5-5394-4138-8d6c-475ed209b03d\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"5e7fc960-39ed-4522-aa38-187f41ace1fd\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"eda28835-e8a6-44a1-87f7-8da14819152b\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-01-21T21:23:49.763982Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"a292a726f79d8dd3\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-01-21T21:23:49.763982Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/2fb5cefa-a43b-4974-b439-96cef54df054/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}],\"meta\":{\"page\":{\"type\":\"offset_limit\",\"offset\":0,\"limit\":50,\"total\":null,\"first_offset\":0,\"prev_offset\":null,\"next_offset\":50,\"last_offset\":null}}}", + "body": "{\"data\":[{\"id\":\"af65e4fe-8698-4267-89a9-f8f0158ce62f\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"ae113f16-56fd-49dd-ab9b-912819187873\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"2727c1b7-e0ef-4cd1-9cf4-e169d10d9488\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"b765850f-2490-408e-86b6-b6fbbab02e89\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:41.083993Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"afa3045896f83bda\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:41.083993Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/af65e4fe-8698-4267-89a9-f8f0158ce62f/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}},{\"id\":\"4d753d2f-1348-486d-afc7-22f3e1759af3\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"67998dd2-0edc-4146-855a-a147f4af1a4d\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"de9b6f98-2556-44c9-bb88-9d839e1fda62\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"11d95bc8-59eb-451c-ac3c-6b2458c0493a\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:06:33.207555Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"cc4b27d85d273270\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:06:33.207555Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/4d753d2f-1348-486d-afc7-22f3e1759af3/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}},{\"id\":\"6cb07301-fa51-4113-babd-229a0e86942e\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"4e2b2bbc-cc10-46b7-b323-51d5f1f923d3\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"9fabc1b3-bfc4-45f5-8fe7-6b284be04d28\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"3a30321a-9a60-4400-82a0-916dba33ba4d\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:06:26.507436Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"cd113ddaafbe79f2\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:06:26.507436Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/6cb07301-fa51-4113-babd-229a0e86942e/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}},{\"id\":\"0751ca80-99db-4247-ae44-655162fa07a9\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"9d366ce5-00ed-4fc6-8348-44b125a6a65f\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"63331812-b5a5-422a-889a-f7ca633b2d80\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"8782c501-1741-4bb1-b633-fa09283c5728\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:06:20.663002Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"bf3be33fe8d7b262\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:06:20.663002Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/0751ca80-99db-4247-ae44-655162fa07a9/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}},{\"id\":\"33c6f810-15d8-4ce2-835b-1ac3a6ca1dbc\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"aef28e84-a82c-4c93-b436-4ba42dbdd4b6\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"44da03e1-1b23-4100-b26f-68ab4f8ca457\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"e5753320-4de3-44d1-85b6-4775ce235f17\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T16:44:16.851238Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"af56efb2f5bba226\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T16:44:16.851238Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/33c6f810-15d8-4ce2-835b-1ac3a6ca1dbc/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}},{\"id\":\"bd3f1d69-4ee1-428d-8ac8-f03f387a7677\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"090535e1-afea-43de-9762-816f7a965a16\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"d1d9b93d-301d-4dad-8f3b-4475a3fad1b1\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"30dc5823-df1a-43d6-b575-d4a8804ad745\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T16:44:11.295897Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"1be8518d13b9dd02\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T16:44:11.295897Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/bd3f1d69-4ee1-428d-8ac8-f03f387a7677/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}},{\"id\":\"016f2768-6987-4a8f-898b-ab94e17b3dd3\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"427a7b30-e308-44a7-9871-a030396ac962\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"579f0d5c-cce7-4666-98f3-40a696be8cc7\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"77dd3fb9-529a-4900-a5eb-6e0a748cf468\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T16:44:06.349736Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"a058117186c84e4f\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T16:44:06.349736Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/016f2768-6987-4a8f-898b-ab94e17b3dd3/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}},{\"id\":\"0e37a7c0-9b0c-4c4e-b315-6b5e145390af\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"73147bd8-26f7-4c57-8557-7fba52d561a4\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"c4d3a1be-8d3d-4b09-9521-b03d5c1e6fdd\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"15802004-c6e9-4186-ba5c-eb01169569de\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T16:43:57.756135Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"7e7c00468d1b799b\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T16:43:57.756135Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/0e37a7c0-9b0c-4c4e-b315-6b5e145390af/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}},{\"id\":\"3c7ddb58-a07b-4db7-ade0-31ac925b6597\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"23ec6518-ab99-4382-8d4b-94eef8c84845\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"cfae542d-147e-4a5f-bd85-b7ad75b9eb88\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"d6d65fe1-f349-43a2-ad39-da38097a1311\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T16:43:13.751657Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"ec88a3070e186fd2\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T16:43:13.751657Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/3c7ddb58-a07b-4db7-ade0-31ac925b6597/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}},{\"id\":\"4561e0f5-5a64-4bc9-b16c-654d3d81325a\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"4903f8ce-5d7c-44fe-a9cf-936699d9c67e\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"03b85dec-3f1c-4bc1-b6a6-c3070e94aaa7\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"e64fdd83-8dc5-4f6e-b527-4c623e6998a6\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T16:41:17.209814Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"c9a065bd3dc330d7\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T16:41:17.209814Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/4561e0f5-5a64-4bc9-b16c-654d3d81325a/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}},{\"id\":\"7c3eff68-42fb-4ddb-8761-3e7695d79570\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"603670a3-1893-49a3-93e1-e655c79509d6\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"862e2d94-1286-423c-86ec-541f5f5aa5e6\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"5fb0fa8a-a9fd-41bd-901c-2577bf1799f4\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T16:41:11.55184Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"139604cb3deb8bfa\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T16:41:11.55184Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/7c3eff68-42fb-4ddb-8761-3e7695d79570/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}},{\"id\":\"a8e3fb88-56ee-4f01-8909-734f9a066177\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"ed519647-6f30-42fa-8342-032faa934a68\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"e19596ba-245c-49dc-9274-5aa1b7e865f5\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"bed4d438-d938-44b4-b3f7-e42f94560d9c\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T16:41:06.354933Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"c9da05969f090bf2\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T16:41:06.354933Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/a8e3fb88-56ee-4f01-8909-734f9a066177/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}},{\"id\":\"93fc2aa2-cb3e-4ef9-bc09-4ac0dfba45c4\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"34b8d16f-f477-499d-b099-79b45a32b4f1\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"e5c3b642-9d15-44ac-9766-a108cf3908d9\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"490c2714-a0ce-4962-b169-c327b1160a10\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T16:40:54.111832Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"a1c16169acd25c7f\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T16:40:54.111832Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/93fc2aa2-cb3e-4ef9-bc09-4ac0dfba45c4/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}},{\"id\":\"7e1c914a-7b5d-4928-9603-2c231f4e27b5\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"7a833ed9-561d-472b-a821-c1272f1ace34\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"222ce53c-1646-45bc-a5d4-27e0a4eb0313\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"44672e6c-dd99-4ed1-8ecc-7715e0625a01\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T16:26:47.706539Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"ccf251964a09e006\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T16:26:47.706539Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/7e1c914a-7b5d-4928-9603-2c231f4e27b5/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}},{\"id\":\"d3167fc5-957d-4ec6-a55d-d75a5eb1926a\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"a0e49fa5-3555-4202-8cee-e6c3be83a6f0\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"eb5ff7d4-3faa-4216-9141-b616ecfa29a7\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"a7b1111a-43d9-4d27-827a-d5f9ec23e1d3\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T16:26:42.040089Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"48333a37cbd28f23\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T16:26:42.040089Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/d3167fc5-957d-4ec6-a55d-d75a5eb1926a/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}},{\"id\":\"ef7f6596-79dd-4f10-9e02-96047289e678\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"70276684-f206-4d50-b890-1c20a5303ee4\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"2a064c38-b34c-4afd-8958-567b4fb94891\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"30f6916a-e722-4b19-b1b8-0485e0afd9c6\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T16:26:36.880519Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"df7a8d1c89704ae5\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T16:26:36.880519Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/ef7f6596-79dd-4f10-9e02-96047289e678/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}},{\"id\":\"9554c1f6-837d-4ce9-8682-90cc44689d6e\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"c0bb1772-afd4-4eed-bab5-c33a5451b899\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"c354419b-c97e-49c6-b556-a2bd73c2945b\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"f14a431d-6a9a-4395-bb71-6b1d5af83fbb\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T16:05:04.858919Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"059503e3ac91b0da\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T16:05:04.858919Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/9554c1f6-837d-4ce9-8682-90cc44689d6e/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"e4a07280-5e60-41e8-8868-d6b391ac9ba4\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"83b8a78b-684b-402b-a8a6-f0df36c4eb09\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"2ec5ce94-7c6b-4883-b963-774cde63af0e\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"9b1911f3-49ba-4d06-971d-b0600d51820f\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T16:05:03.384639Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"196a899e9a39079a\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T16:05:03.384639Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/e4a07280-5e60-41e8-8868-d6b391ac9ba4/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"c3af2a4f-dd6e-4777-8899-7be70c0e629c\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"48138666-3c22-45b7-8ed3-bc27533e4d40\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"0da9e91e-519e-4d1b-a530-95dbf9b1d6a3\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"cd8829c5-75ca-40a1-9204-24cc97525713\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T16:05:02.028841Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"75fd3e1165e41d93\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T16:05:02.028841Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/c3af2a4f-dd6e-4777-8899-7be70c0e629c/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"cfbf3ff5-f7e6-4d6c-8175-cbff110ebfc9\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"09a8484c-be64-4295-a6b8-acf87f9245ab\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"5cc44628-14ac-4563-a052-5b1f9a3fa3e4\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"c2f9b131-672d-4ee8-a50c-5c3874f302e8\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T15:48:47.984615Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"f574ab46462ee007\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T15:48:47.984615Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/cfbf3ff5-f7e6-4d6c-8175-cbff110ebfc9/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"a8e6fdb1-05c8-416c-a150-9af49c513206\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"22432bc8-d59a-4d2a-b4c5-459199b433be\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"6407bf01-0c11-4509-8ae6-24c77cf205da\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"424ec72d-f12c-4718-8c5b-52a2a1c25cd5\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T15:48:46.468711Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"fd37efd95db6e0b5\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T15:48:46.468711Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/a8e6fdb1-05c8-416c-a150-9af49c513206/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"b57576ee-457d-43da-9b17-f7e9087ab4a4\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"27a0738a-f38d-404d-999a-370cff2c4f10\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"2bf35e8e-28c9-49c3-948a-854097030f2c\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"d8522dbf-1638-47fb-ba5a-95af1fcd700d\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T15:48:44.989419Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"2e43867bfa448a5d\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T15:48:44.989419Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/b57576ee-457d-43da-9b17-f7e9087ab4a4/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"e2a7988d-e454-480d-9bff-dcfc5058ffd6\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"700c4456-e8c7-4890-b2c5-30c3fe0ed823\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"13a1264c-4541-4bb6-9c92-e626930ece49\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"8de3f71a-efdd-4524-94a6-eb088abcbfbc\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T15:46:01.826656Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"0b5855db08df37da\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T15:46:01.826656Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/e2a7988d-e454-480d-9bff-dcfc5058ffd6/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"18505e11-3832-4194-ac65-b47359669e61\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"289b7ce0-840b-4cea-af5d-b6aaaa4cbc5e\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"c6b42e04-bd00-4ee5-b946-a773a7df9334\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"020a490f-d227-430c-83c8-5ad7b5231ba8\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T15:46:00.299228Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"be2cd8834307e7f7\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T15:46:00.299228Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/18505e11-3832-4194-ac65-b47359669e61/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"58b6cfe4-d036-408e-a2c8-39c2aa18b5a5\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"83e2336e-8008-4e27-80d0-5a132221ac43\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"b372da78-86e5-4d41-bedd-43f7134c6acc\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"aced314d-a1ba-402f-8721-50b7dd45f59a\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T15:45:58.944334Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"d7e60b47af4c64a3\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T15:45:58.944334Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/58b6cfe4-d036-408e-a2c8-39c2aa18b5a5/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"bbe07a71-94b7-4012-9f69-032ff09e567e\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"727a527d-16ab-4744-9cbd-6955bf21e647\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"e33fa227-f111-40ea-8350-70e54e03af66\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"efce96c6-1bd4-466f-938f-5458ea6b390b\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T15:16:02.886765Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"3f122df453622870\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T15:16:02.886765Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/bbe07a71-94b7-4012-9f69-032ff09e567e/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"233d02e7-9989-454d-be5d-295f3f04ff5f\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"59cbcb7d-7d1a-4ee3-8a22-5ef655f5445a\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"db2157c8-f88c-4076-8cdc-6c9ee7e883c8\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"30dc0ca4-b005-4745-9edf-196e87969a34\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T15:16:01.952726Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"a321ba5a9d4e1bc2\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T15:16:01.952726Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/233d02e7-9989-454d-be5d-295f3f04ff5f/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"141fb4dd-5560-42a7-9145-78da6d717d9b\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"4434910b-ff89-40d5-b665-0ce24275363f\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"0612918d-6554-415c-9988-73464da30450\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"cfeb9664-4276-4995-ad8e-367cb896234b\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T15:16:01.193556Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"dc887211d7151600\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T15:16:01.193556Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/141fb4dd-5560-42a7-9145-78da6d717d9b/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"fbcbdef4-4e3a-436a-bb0a-be8205a98b36\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"69631aec-9684-4341-8567-15fc5023011d\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"7d4bd295-b987-49b0-8086-9dddbcfade33\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"f5f7553c-c304-4946-bd58-2a58a83ab7cb\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T15:13:24.950199Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"d2cc282985fb6853\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T15:13:24.950199Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/fbcbdef4-4e3a-436a-bb0a-be8205a98b36/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"6f3e2bef-846a-4c05-9d6d-35d9d136c31a\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"06c940fa-78c0-434b-8c65-4edc35fb3bf8\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"8e3cd5cc-1ce3-435c-863d-2f139a10fd18\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"4a56abde-dc39-4dd6-b1f4-7c5d2fde704b\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T15:13:23.837825Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"f3aeb4c1b8c5449d\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T15:13:23.837825Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/6f3e2bef-846a-4c05-9d6d-35d9d136c31a/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"6054e25a-60fa-4c88-a02a-760bae1a7917\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"0609ab97-970b-4312-8209-2fedf5ca4bab\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"77170b9e-5e63-4ddb-9a0b-93e271e530ba\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"f720e3c0-12cf-409a-97a3-3269b2f0e8f3\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T15:13:22.190248Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"367d9e866a66ad8c\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T15:13:22.190248Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/6054e25a-60fa-4c88-a02a-760bae1a7917/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"a7f27d28-ea42-4c5a-acfe-800e036b4d83\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"381eaab2-004f-4716-a76f-d264ab591163\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"9a0e536b-d716-49db-88b4-639f6de9ea23\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"955cc731-9ae5-4271-8351-b2ed3268f174\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T14:28:40.849754Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"1504c4154f91a37d\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T14:28:40.849754Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/a7f27d28-ea42-4c5a-acfe-800e036b4d83/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"e9e86584-1f9a-45b8-ace4-cb9ac49c8c35\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"6f670044-3c47-480d-8f1b-15226dc96500\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"8ae3244d-3172-4414-b826-4f3b74923b01\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"ce4b8354-a34c-481d-84d8-150b177a2989\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T14:28:40.03449Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"170bc85c2835a80b\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T14:28:40.03449Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/e9e86584-1f9a-45b8-ace4-cb9ac49c8c35/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"14cc6952-f835-419b-9c36-b73c6c1f5d3f\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"3cc01b47-837e-4d4f-bf94-bec3d1c3b576\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"6be3f4e9-2523-4e1f-9a34-23c0cf593f96\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"b09b3432-c866-4572-b1c8-dcefd6f4538d\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T14:28:39.323329Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"3509967b198e91ed\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T14:28:39.323329Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/14cc6952-f835-419b-9c36-b73c6c1f5d3f/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"b33cb3e9-d065-4ff3-960c-d8e0afb99f37\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"077bb7e5-9846-4dd9-a737-af0139dee854\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"1abb15cc-21e4-4119-926d-ceea2965ef52\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"400f843b-a5b6-4520-be39-f85c1ccb253b\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-18T22:43:50.391028Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"57998a2699532e89\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-18T22:43:50.391028Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/b33cb3e9-d065-4ff3-960c-d8e0afb99f37/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"8c769ee5-a018-4f94-bee4-3e0330e38b95\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"fed9318c-8fe4-4fd7-9e96-a3fca3e4dd38\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"a5d068d8-9903-468e-8947-e5b177f11877\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"56dafdff-3539-40ab-862a-e06d86ad95e4\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-18T22:43:49.009383Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"8ee03b33252cf8e7\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-18T22:43:49.009383Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/8c769ee5-a018-4f94-bee4-3e0330e38b95/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"49ee3d48-7e5c-4a7a-b268-97fb6d0ea3d2\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"94d13995-c630-4e33-bfed-a0cb020fc3b6\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"96f86213-fd43-41b2-98b9-a47413dc5376\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"80e83792-71df-4d95-8a33-74a68cd594d2\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-18T22:43:47.881786Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"f89ce4f178b4d51e\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-18T22:43:47.881786Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/49ee3d48-7e5c-4a7a-b268-97fb6d0ea3d2/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"3dd25c2b-a623-4e90-8e8a-ca1474d25623\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"2152d80d-2844-440f-a6bd-d337daf0e517\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"545a3c7e-befe-4ce4-8822-450ef2739026\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"eaca5ee7-e3cf-473c-a952-911d7392c94c\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-18T22:11:43.515284Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"f2dfecd8453872bb\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-18T22:11:43.515284Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/3dd25c2b-a623-4e90-8e8a-ca1474d25623/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"5bdbe523-c175-4eaf-a093-6ee0fb5b5a10\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"3ef2a099-e89f-43e0-942d-2402fd190987\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"66fe5ac6-1f11-43ab-8727-6ef1b96ddc7d\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"16ea75b5-79b6-4bc0-81e3-e93c7faddf72\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-18T22:11:42.828961Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"1d6844e41643f4b1\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-18T22:11:42.828961Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/5bdbe523-c175-4eaf-a093-6ee0fb5b5a10/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"7658f2c2-01d8-4fb8-af5f-354a49aa4057\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"2e179c9e-4f24-4e95-b7ee-e84a2168c71e\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"2ff41cbd-f935-4efa-9145-d8ca2e55fde1\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"cc3fedf9-5331-49d7-894a-83501f9bcfbd\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-18T22:11:42.271637Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"6f9e2fa0ce5ee595\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-18T22:11:42.271637Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/7658f2c2-01d8-4fb8-af5f-354a49aa4057/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"ac1070ea-9621-4aa7-8c2a-98bee38b8824\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"8888c402-f4c8-42c5-bc9a-322a303a17f3\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"0e18a41f-a089-4c9e-a2fe-9823e92d8892\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"6b53237e-ac44-45e1-bfee-f7cc6359ce36\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-18T21:56:10.131645Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"6a88252acb78d212\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-18T21:56:10.131645Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/ac1070ea-9621-4aa7-8c2a-98bee38b8824/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"a4f18543-216c-4e21-a240-ca27ab18cc84\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"9377b190-3e89-410d-83c4-d3b27abf6a31\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"c306924a-f5ab-453b-a15c-105bba86725e\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"a204b169-44b7-4bf1-a663-790b15d6b1b1\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-18T21:56:08.646778Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"f173fe90313f9cc2\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-18T21:56:08.646778Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/a4f18543-216c-4e21-a240-ca27ab18cc84/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"d6b83c67-57f2-4e94-809e-5c4b0a15c032\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"2f27081b-9c66-415e-9ba4-5f711b6b0528\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"4a7f187f-d936-43ae-8336-39002ea00798\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"bd342609-6e5f-480d-a605-cfe8e8f08475\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-18T21:56:07.536884Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"87a71aaf88cf0b8d\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-18T21:56:07.536884Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/d6b83c67-57f2-4e94-809e-5c4b0a15c032/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"0df014ad-1526-423d-b500-eba8f6be51a1\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"e24aacb9-6fb5-4938-b8c7-00c881e054f9\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"0c924029-6822-48cb-bf6f-28dcc78c0018\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"26cbeb3f-f809-4ba5-b2bb-2d5928f89119\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-18T21:48:07.578969Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"504f1cc749888b8f\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-18T21:48:07.578969Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/0df014ad-1526-423d-b500-eba8f6be51a1/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"7c4211e0-74f0-46ac-b105-8cfdae5d4fd4\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"10bace98-3cac-490c-be59-301d975984bf\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"0513e83a-625b-4d01-9ae7-0cf16f363fcf\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"f4dfbbd9-0533-4ee2-afa6-cce962b89a4d\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-18T21:48:06.797982Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"53b93e3b72c2f766\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-18T21:48:06.797982Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/7c4211e0-74f0-46ac-b105-8cfdae5d4fd4/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"b79fcab7-b6fd-48e9-b908-2ff83a2cec5b\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"290380fd-bb4c-4143-aef6-90553c1abf54\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"2442f639-380e-4b9b-b43d-0dfa81b1d59e\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"f6ddaeea-e376-4b90-8ba3-78ff0eb32a53\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-18T21:48:06.024757Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"469a7758a2cf4207\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-18T21:48:06.024757Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/b79fcab7-b6fd-48e9-b908-2ff83a2cec5b/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"a9e35142-ab99-4643-b745-44f3e7f514ea\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"63cfb812-1bec-48bc-aafd-845a3ba022ee\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"33eaa678-129a-435f-8616-a25b6a5e9b21\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"a219762f-fe4a-4aec-ae6f-a9f967d9ce89\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-18T21:45:50.753828Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"c03e20cf949208cc\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-18T21:45:50.753828Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/a9e35142-ab99-4643-b745-44f3e7f514ea/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"4af003c0-be73-449a-b867-3a7942cb0c69\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"78a588ac-1ec4-4e81-aeb9-75057d379630\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"48f603b0-be40-49d0-a4c6-f6c42f07635c\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"913779f3-3b58-41c6-af7d-c24c1d27eb7d\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-18T21:45:49.858971Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"f966f7fcf045bf42\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-18T21:45:49.858971Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/4af003c0-be73-449a-b867-3a7942cb0c69/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"e302ac75-9b2b-4e1d-9204-5a9bc1aa605f\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"8281ca06-8b43-4c21-9f8a-71310fa3aeac\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"2479b0a4-6088-443c-b062-3bc81d98c3fa\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"f59b2e51-4ee8-41ec-b805-6f0d9e3d1909\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-18T21:45:49.146673Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"2c3ea402fd390ff9\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-18T21:45:49.146673Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/e302ac75-9b2b-4e1d-9204-5a9bc1aa605f/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}},{\"id\":\"3d9b2a9b-af8f-4529-80e6-88b855d4e4df\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"4a1795c2-6d14-4ef0-9c4a-814ddb684769\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"e67549e5-4dee-472d-9251-cffb9e559005\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"e482245d-1f96-4dfa-a6d0-93bdc85dabfa\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-18T14:34:15.546762Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"dbbdcdcc0ae521ff\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-18T14:34:15.546762Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/3d9b2a9b-af8f-4529-80e6-88b855d4e4df/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"type\":\"users\"}}}}],\"meta\":{\"page\":{\"type\":\"offset_limit\",\"offset\":0,\"limit\":50,\"total\":null,\"first_offset\":0,\"prev_offset\":null,\"next_offset\":50,\"last_offset\":null}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -59,7 +59,7 @@ "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/2fb5cefa-a43b-4974-b439-96cef54df054", + "path": "/api/v2/statuspages/af65e4fe-8698-4267-89a9-f8f0158ce62f", "keepAlive": false, "secure": true }, @@ -74,6 +74,6 @@ "timeToLive": { "unlimited": true }, - "id": "aad41943-f0e1-02da-84fd-a23ddb689ad2" + "id": "09edfe0b-4a6a-9a25-6b5a-a55d221b8e71" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_component_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Update_component_returns_OK_response.freeze index 7b2cd91b767..d2302647f72 100644 --- a/src/test/resources/cassettes/features/v2/Update_component_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/Update_component_returns_OK_response.freeze @@ -1 +1 @@ -2026-01-21T21:23:50.959Z \ No newline at end of file +2026-02-19T21:09:42.564Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_component_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_component_returns_OK_response.json index f7b96c09716..65ceef0bd6a 100644 --- a/src/test/resources/cassettes/features/v2/Update_component_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_component_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"18ce7dca5f31f286\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" + "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"f67c55f5b2532df6\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"2f95d75e-d08f-4c37-8808-2b0246f86e16\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"7a828867-d56d-41a9-bc35-9eec112fd334\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"424cedb4-c0c1-4726-871a-5927588ca835\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"1cdf79d4-4c20-4388-ab76-c24f6c140bcb\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-01-21T21:23:51.072685Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"18ce7dca5f31f286\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-01-21T21:23:51.072685Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/2f95d75e-d08f-4c37-8808-2b0246f86e16/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "body": "{\"data\":{\"id\":\"9e2f9e22-7d9c-45fd-9457-ba3516d51998\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"ace1e050-b41f-40ca-9ea6-8d57a244d6c4\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"4226d439-92f1-488c-8441-4c5bb19a9364\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"e56d90c5-7196-472b-8281-0dcc0bf27f26\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:42.920779Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"f67c55f5b2532df6\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:42.920779Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/9e2f9e22-7d9c-45fd-9457-ba3516d51998/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -27,22 +27,22 @@ "timeToLive": { "unlimited": true }, - "id": "1077f135-5bba-c22c-8d79-df2f9aba7f47" + "id": "ef88e721-8a8b-a32b-91a5-eb7b94fff3dd" }, { "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"name\":\"Logs Indexing\"},\"id\":\"7a828867-d56d-41a9-bc35-9eec112fd334\",\"type\":\"components\"}}" + "json": "{\"data\":{\"attributes\":{\"name\":\"Logs Indexing\"},\"id\":\"ace1e050-b41f-40ca-9ea6-8d57a244d6c4\",\"type\":\"components\"}}" }, "headers": {}, "method": "PATCH", - "path": "/api/v2/statuspages/2f95d75e-d08f-4c37-8808-2b0246f86e16/components/7a828867-d56d-41a9-bc35-9eec112fd334", + "path": "/api/v2/statuspages/9e2f9e22-7d9c-45fd-9457-ba3516d51998/components/ace1e050-b41f-40ca-9ea6-8d57a244d6c4", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"7a828867-d56d-41a9-bc35-9eec112fd334\",\"type\":\"components\",\"attributes\":{\"components\":[{\"id\":\"424cedb4-c0c1-4726-871a-5927588ca835\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"1cdf79d4-4c20-4388-ab76-c24f6c140bcb\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}],\"created_at\":\"2026-01-21T21:23:51.072685Z\",\"modified_at\":\"2026-01-21T21:23:51.606861Z\",\"name\":\"Logs Indexing\",\"position\":0,\"type\":\"group\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"group\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"2f95d75e-d08f-4c37-8808-2b0246f86e16\",\"type\":\"status_pages\"}}}}}", + "body": "{\"data\":{\"id\":\"ace1e050-b41f-40ca-9ea6-8d57a244d6c4\",\"type\":\"components\",\"attributes\":{\"components\":[{\"id\":\"4226d439-92f1-488c-8441-4c5bb19a9364\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"e56d90c5-7196-472b-8281-0dcc0bf27f26\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}],\"created_at\":\"2026-02-19T21:09:42.920779Z\",\"modified_at\":\"2026-02-19T21:09:43.521422Z\",\"name\":\"Logs Indexing\",\"position\":0,\"type\":\"group\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"group\":{\"data\":null},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"9e2f9e22-7d9c-45fd-9457-ba3516d51998\",\"type\":\"status_pages\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -57,13 +57,13 @@ "timeToLive": { "unlimited": true }, - "id": "b53230d2-7ea4-e81c-4b40-63e00841e459" + "id": "db437f9b-45f4-ec3a-b0c7-1e8c5600978b" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/2f95d75e-d08f-4c37-8808-2b0246f86e16", + "path": "/api/v2/statuspages/9e2f9e22-7d9c-45fd-9457-ba3516d51998", "keepAlive": false, "secure": true }, @@ -78,6 +78,6 @@ "timeToLive": { "unlimited": true }, - "id": "1b78beba-3d57-8104-54e2-e8f304655697" + "id": "af834ecf-ba6f-fdc1-9d2c-f10f860c1af7" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_degradation_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Update_degradation_returns_OK_response.freeze index 7ba365b7947..e3e3d0e2be1 100644 --- a/src/test/resources/cassettes/features/v2/Update_degradation_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/Update_degradation_returns_OK_response.freeze @@ -1 +1 @@ -2026-01-21T21:23:52.130Z \ No newline at end of file +2026-02-19T21:09:43.949Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_degradation_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_degradation_returns_OK_response.json index 89a0f4c017b..ec6b69c8ba4 100644 --- a/src/test/resources/cassettes/features/v2/Update_degradation_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_degradation_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"63b50a302c459f7c\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" + "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"423ed66623e5d9e2\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"5df6e8f7-b903-4ba9-b0c5-d603536e23fa\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"545201a0-a23f-4cbd-ae78-9e392a686b0d\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"681d4866-a4ff-4e4e-b295-6b9586892675\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"e0c7b0ec-2517-43bd-a489-2f2f23eb0bc4\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-01-21T21:23:52.260223Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"63b50a302c459f7c\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-01-21T21:23:52.260223Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/5df6e8f7-b903-4ba9-b0c5-d603536e23fa/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "body": "{\"data\":{\"id\":\"0ea78329-1935-47e6-98e8-3178e6e849a2\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"8a559237-d655-4ca4-ac9c-d5b22387d23c\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"9b3dc9e8-a282-4d7a-a15a-b4d9e941a086\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"fffdd9b9-a2eb-41d4-ac85-7c91c0a4df68\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:44.286172Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"423ed66623e5d9e2\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:44.286172Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/0ea78329-1935-47e6-98e8-3178e6e849a2/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -27,22 +27,22 @@ "timeToLive": { "unlimited": true }, - "id": "d7cec229-f3e7-058a-121d-0fc62db29580" + "id": "0495ab06-ef89-9216-b729-1be537d7ebb7" }, { "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"components_affected\":[{\"id\":\"681d4866-a4ff-4e4e-b295-6b9586892675\",\"status\":\"major_outage\"}],\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\"},\"type\":\"degradations\"}}" + "json": "{\"data\":{\"attributes\":{\"components_affected\":[{\"id\":\"9b3dc9e8-a282-4d7a-a15a-b4d9e941a086\",\"status\":\"major_outage\"}],\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\"},\"type\":\"degradations\"}}" }, "headers": {}, "method": "POST", - "path": "/api/v2/statuspages/5df6e8f7-b903-4ba9-b0c5-d603536e23fa/degradations", + "path": "/api/v2/statuspages/0ea78329-1935-47e6-98e8-3178e6e849a2/degradations", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"3e8741c2-3c93-4346-9ddc-67d381baee05\",\"type\":\"degradations\",\"attributes\":{\"components_affected\":[{\"id\":\"681d4866-a4ff-4e4e-b295-6b9586892675\",\"name\":\"Login\",\"status\":\"major_outage\"}],\"created_at\":\"2026-01-21T21:23:52.827013Z\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"modified_at\":\"2026-01-21T21:23:52.827013Z\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\",\"updates\":[{\"id\":\"e97d38d6-936d-4a4c-b07e-fad1379f414f\",\"created_at\":\"2026-01-21T21:23:52.827013Z\",\"modified_at\":\"2026-01-21T21:23:52.827013Z\",\"status\":\"investigating\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"components_affected\":[{\"id\":\"681d4866-a4ff-4e4e-b295-6b9586892675\",\"name\":\"Login\",\"status\":\"major_outage\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"5df6e8f7-b903-4ba9-b0c5-d603536e23fa\",\"type\":\"status_pages\"}}}}}", + "body": "{\"data\":{\"id\":\"affd3fe5-a59c-4928-9b5b-72f2b22cde19\",\"type\":\"degradations\",\"attributes\":{\"components_affected\":[{\"id\":\"9b3dc9e8-a282-4d7a-a15a-b4d9e941a086\",\"name\":\"Login\",\"status\":\"major_outage\"}],\"created_at\":\"2026-02-19T21:09:44.935459Z\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"modified_at\":\"2026-02-19T21:09:44.935459Z\",\"status\":\"investigating\",\"title\":\"Elevated API Latency\",\"updates\":[{\"id\":\"a852c60f-4e5e-433d-8b7d-e318ba3b1b97\",\"created_at\":\"2026-02-19T21:09:44.935459Z\",\"modified_at\":\"2026-02-19T21:09:44.935459Z\",\"status\":\"investigating\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"components_affected\":[{\"id\":\"9b3dc9e8-a282-4d7a-a15a-b4d9e941a086\",\"name\":\"Login\",\"status\":\"major_outage\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"0ea78329-1935-47e6-98e8-3178e6e849a2\",\"type\":\"status_pages\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -57,22 +57,22 @@ "timeToLive": { "unlimited": true }, - "id": "0b5398d0-e5f5-8db9-27b9-106107734db1" + "id": "f5aae76e-450d-dd68-96e9-f26009c99bd2" }, { "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"title\":\"Elevated API Latency in US1\"},\"id\":\"3e8741c2-3c93-4346-9ddc-67d381baee05\",\"type\":\"degradations\"}}" + "json": "{\"data\":{\"attributes\":{\"title\":\"Elevated API Latency in US1\"},\"id\":\"affd3fe5-a59c-4928-9b5b-72f2b22cde19\",\"type\":\"degradations\"}}" }, "headers": {}, "method": "PATCH", - "path": "/api/v2/statuspages/5df6e8f7-b903-4ba9-b0c5-d603536e23fa/degradations/3e8741c2-3c93-4346-9ddc-67d381baee05", + "path": "/api/v2/statuspages/0ea78329-1935-47e6-98e8-3178e6e849a2/degradations/affd3fe5-a59c-4928-9b5b-72f2b22cde19", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"3e8741c2-3c93-4346-9ddc-67d381baee05\",\"type\":\"degradations\",\"attributes\":{\"components_affected\":[{\"id\":\"681d4866-a4ff-4e4e-b295-6b9586892675\",\"name\":\"Login\",\"status\":\"major_outage\"}],\"created_at\":\"2026-01-21T21:23:52.827013Z\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"modified_at\":\"2026-01-21T21:23:52.984252Z\",\"status\":\"investigating\",\"title\":\"Elevated API Latency in US1\",\"updates\":[{\"id\":\"e97d38d6-936d-4a4c-b07e-fad1379f414f\",\"created_at\":\"2026-01-21T21:23:52.827013Z\",\"modified_at\":\"2026-01-21T21:23:52.827013Z\",\"status\":\"investigating\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"components_affected\":[{\"id\":\"681d4866-a4ff-4e4e-b295-6b9586892675\",\"name\":\"Login\",\"status\":\"major_outage\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"5df6e8f7-b903-4ba9-b0c5-d603536e23fa\",\"type\":\"status_pages\"}}}}}", + "body": "{\"data\":{\"id\":\"affd3fe5-a59c-4928-9b5b-72f2b22cde19\",\"type\":\"degradations\",\"attributes\":{\"components_affected\":[{\"id\":\"9b3dc9e8-a282-4d7a-a15a-b4d9e941a086\",\"name\":\"Login\",\"status\":\"major_outage\"}],\"created_at\":\"2026-02-19T21:09:44.935459Z\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"modified_at\":\"2026-02-19T21:09:45.177799Z\",\"status\":\"investigating\",\"title\":\"Elevated API Latency in US1\",\"updates\":[{\"id\":\"a852c60f-4e5e-433d-8b7d-e318ba3b1b97\",\"created_at\":\"2026-02-19T21:09:44.935459Z\",\"modified_at\":\"2026-02-19T21:09:44.935459Z\",\"status\":\"investigating\",\"description\":\"Our API is experiencing elevated latency. We are investigating the issue.\",\"components_affected\":[{\"id\":\"9b3dc9e8-a282-4d7a-a15a-b4d9e941a086\",\"name\":\"Login\",\"status\":\"major_outage\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"0ea78329-1935-47e6-98e8-3178e6e849a2\",\"type\":\"status_pages\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -87,13 +87,13 @@ "timeToLive": { "unlimited": true }, - "id": "95f228ec-c75a-6794-15d5-75ac9afd5a87" + "id": "44c78561-710a-c655-1842-84f96966ccc6" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/5df6e8f7-b903-4ba9-b0c5-d603536e23fa/degradations/3e8741c2-3c93-4346-9ddc-67d381baee05", + "path": "/api/v2/statuspages/0ea78329-1935-47e6-98e8-3178e6e849a2/degradations/affd3fe5-a59c-4928-9b5b-72f2b22cde19", "keepAlive": false, "secure": true }, @@ -108,13 +108,13 @@ "timeToLive": { "unlimited": true }, - "id": "213a6659-4a83-7894-4698-cb80efe31889" + "id": "2f52dc1a-abde-62b9-db10-55c7e7ea5e7a" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/5df6e8f7-b903-4ba9-b0c5-d603536e23fa", + "path": "/api/v2/statuspages/0ea78329-1935-47e6-98e8-3178e6e849a2", "keepAlive": false, "secure": true }, @@ -129,6 +129,6 @@ "timeToLive": { "unlimited": true }, - "id": "97632e19-c46e-fe70-30ee-906a26c051ea" + "id": "d9874c40-cced-2bb6-a411-41294166a118" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_maintenance_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Update_maintenance_returns_OK_response.freeze new file mode 100644 index 00000000000..9d17ae7ae27 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Update_maintenance_returns_OK_response.freeze @@ -0,0 +1 @@ +2026-02-19T21:09:45.868Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_maintenance_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_maintenance_returns_OK_response.json new file mode 100644 index 00000000000..29a834ce732 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Update_maintenance_returns_OK_response.json @@ -0,0 +1,113 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"7bfb8103645e46b6\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/statuspages", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"17057554-f3a7-4418-8921-2cd6ee66cedf\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"78e7abeb-54f9-41f3-9148-186c62a552d7\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"9fbdc5b5-234e-4766-b2c3-a9fafe11b40d\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"43d19213-72b6-4011-86c9-3803465d3349\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:46.209326Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"7bfb8103645e46b6\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:46.209326Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/17057554-f3a7-4418-8921-2cd6ee66cedf/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "d9146778-cd7c-e5fe-8895-418d1b83a556" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"completed_date\":\"2026-02-19T23:09:45.868Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"9fbdc5b5-234e-4766-b2c3-a9fafe11b40d\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T22:09:45.868Z\",\"title\":\"API Maintenance\"},\"type\":\"maintenances\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/statuspages/17057554-f3a7-4418-8921-2cd6ee66cedf/maintenances", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"76383ad5-a9b2-4462-8e0a-15d6a1400339\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T23:09:45.868Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"9fbdc5b5-234e-4766-b2c3-a9fafe11b40d\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance.\",\"modified_at\":\"2026-02-19T21:09:46.802447Z\",\"published_date\":\"2026-02-19T21:09:46.802447Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance.\",\"start_date\":\"2026-02-19T22:09:45.868Z\",\"status\":\"scheduled\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"57ae2066-09cf-4db6-8652-bd1e02e13508\",\"created_at\":\"2026-02-19T21:09:46.802447Z\",\"modified_at\":\"2026-02-19T21:09:46.802447Z\",\"started_at\":\"2026-02-19T21:09:46.802447Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"9fbdc5b5-234e-4766-b2c3-a9fafe11b40d\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"17057554-f3a7-4418-8921-2cd6ee66cedf\",\"type\":\"status_pages\"}}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "1bb9c227-3e29-c969-3489-9eb9c1fb378d" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance for 40 minutes.\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance for 40 minutes.\"},\"id\":\"76383ad5-a9b2-4462-8e0a-15d6a1400339\",\"type\":\"maintenances\"}}" + }, + "headers": {}, + "method": "PATCH", + "path": "/api/v2/statuspages/17057554-f3a7-4418-8921-2cd6ee66cedf/maintenances/76383ad5-a9b2-4462-8e0a-15d6a1400339", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"76383ad5-a9b2-4462-8e0a-15d6a1400339\",\"type\":\"maintenances\",\"attributes\":{\"completed_date\":\"2026-02-19T23:09:45.868Z\",\"completed_description\":\"We have completed maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"9fbdc5b5-234e-4766-b2c3-a9fafe11b40d\",\"name\":\"Login\",\"status\":\"operational\"}],\"in_progress_description\":\"We are currently performing maintenance on the API to improve performance for 40 minutes.\",\"modified_at\":\"2026-02-19T21:09:47.026679Z\",\"published_date\":\"2026-02-19T21:09:46.802447Z\",\"scheduled_description\":\"We will be performing maintenance on the API to improve performance for 40 minutes.\",\"start_date\":\"2026-02-19T22:09:45.868Z\",\"status\":\"scheduled\",\"title\":\"API Maintenance\",\"updates\":[{\"id\":\"57ae2066-09cf-4db6-8652-bd1e02e13508\",\"created_at\":\"2026-02-19T21:09:46.802447Z\",\"modified_at\":\"2026-02-19T21:09:46.802447Z\",\"started_at\":\"2026-02-19T21:09:46.802447Z\",\"manual_transition\":false,\"status\":\"scheduled\",\"description\":\"We will be performing maintenance on the API to improve performance.\",\"components_affected\":[{\"id\":\"9fbdc5b5-234e-4766-b2c3-a9fafe11b40d\",\"name\":\"Login\",\"status\":\"operational\"}]}]},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"status_page\":{\"data\":{\"id\":\"17057554-f3a7-4418-8921-2cd6ee66cedf\",\"type\":\"status_pages\"}}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "864803b3-9c57-2a04-82f4-9f01c8d78942" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/statuspages/17057554-f3a7-4418-8921-2cd6ee66cedf", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "headers": {}, + "statusCode": 204, + "reasonPhrase": "No Content" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "8cc8b3dd-1692-eb65-fe19-7083736704c9" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_status_page_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Update_status_page_returns_OK_response.freeze index bbf12a2e765..539909b9e5a 100644 --- a/src/test/resources/cassettes/features/v2/Update_status_page_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/Update_status_page_returns_OK_response.freeze @@ -1 +1 @@ -2026-01-21T21:23:53.747Z \ No newline at end of file +2026-02-19T21:09:47.533Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_status_page_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_status_page_returns_OK_response.json index 162a4670fed..e2017300627 100644 --- a/src/test/resources/cassettes/features/v2/Update_status_page_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_status_page_returns_OK_response.json @@ -3,7 +3,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"f7d669fd50a8ce89\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" + "json": "{\"data\":{\"attributes\":{\"components\":[{\"components\":[{\"name\":\"Login\",\"position\":0,\"type\":\"component\"},{\"name\":\"Settings\",\"position\":1,\"type\":\"component\"}],\"name\":\"Application\",\"type\":\"group\"}],\"domain_prefix\":\"ace1b83708e2910f\",\"enabled\":true,\"name\":\"A Status Page\",\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"type\":\"status_pages\"}}" }, "headers": {}, "method": "POST", @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"197028d4-9c5e-420f-acb1-963ae82ebf22\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"8f68e844-d983-473a-84c7-f5a4544ef430\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"a22c28e9-d717-45b7-bab8-d1cda9349dd4\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"310a77dd-1afd-426d-8e3e-3652da90db23\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-01-21T21:23:53.873851Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"f7d669fd50a8ce89\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-01-21T21:23:53.873851Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/197028d4-9c5e-420f-acb1-963ae82ebf22/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "body": "{\"data\":{\"id\":\"1abc85f9-6c22-4a51-b2b9-afec48f3108b\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"289a6704-9392-43ec-b17a-286772a40c5d\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"295811f5-87a1-41a5-bd77-05dafe25404a\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"e069c248-3994-4ca6-bcf3-176a45716ed5\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:47.885504Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"ace1b83708e2910f\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:47.885504Z\",\"name\":\"A Status Page\",\"page_url\":\"https://frog.datadoghq.com/status-pages/1abc85f9-6c22-4a51-b2b9-afec48f3108b/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -27,22 +27,22 @@ "timeToLive": { "unlimited": true }, - "id": "69094a38-d42f-3b4e-7e00-1fda567cbb07" + "id": "e26c9ccc-f6b6-c4ea-2994-8c1f313f12c3" }, { "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"name\":\"A Status Page in US1\"},\"id\":\"197028d4-9c5e-420f-acb1-963ae82ebf22\",\"type\":\"status_pages\"}}" + "json": "{\"data\":{\"attributes\":{\"name\":\"A Status Page in US1\"},\"id\":\"1abc85f9-6c22-4a51-b2b9-afec48f3108b\",\"type\":\"status_pages\"}}" }, "headers": {}, "method": "PATCH", - "path": "/api/v2/statuspages/197028d4-9c5e-420f-acb1-963ae82ebf22", + "path": "/api/v2/statuspages/1abc85f9-6c22-4a51-b2b9-afec48f3108b", "keepAlive": false, "secure": true }, "httpResponse": { - "body": "{\"data\":{\"id\":\"197028d4-9c5e-420f-acb1-963ae82ebf22\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"8f68e844-d983-473a-84c7-f5a4544ef430\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"a22c28e9-d717-45b7-bab8-d1cda9349dd4\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"310a77dd-1afd-426d-8e3e-3652da90db23\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-01-21T21:23:53.873851Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"f7d669fd50a8ce89\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-01-21T21:23:54.528957Z\",\"name\":\"A Status Page in US1\",\"page_url\":\"https://frog.datadoghq.com/status-pages/197028d4-9c5e-420f-acb1-963ae82ebf22/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", + "body": "{\"data\":{\"id\":\"1abc85f9-6c22-4a51-b2b9-afec48f3108b\",\"type\":\"status_pages\",\"attributes\":{\"company_logo\":null,\"components\":[{\"id\":\"289a6704-9392-43ec-b17a-286772a40c5d\",\"name\":\"Application\",\"type\":\"group\",\"position\":0,\"components\":[{\"id\":\"295811f5-87a1-41a5-bd77-05dafe25404a\",\"name\":\"Login\",\"type\":\"component\",\"status\":\"operational\",\"position\":0},{\"id\":\"e069c248-3994-4ca6-bcf3-176a45716ed5\",\"name\":\"Settings\",\"type\":\"component\",\"status\":\"operational\",\"position\":1}]}],\"created_at\":\"2026-02-19T21:09:47.885504Z\",\"custom_domain\":null,\"custom_domain_enabled\":false,\"domain_prefix\":\"ace1b83708e2910f\",\"email_header_image\":null,\"enabled\":true,\"favicon\":null,\"modified_at\":\"2026-02-19T21:09:48.515391Z\",\"name\":\"A Status Page in US1\",\"page_url\":\"https://frog.datadoghq.com/status-pages/1abc85f9-6c22-4a51-b2b9-afec48f3108b/view\",\"subscriptions_enabled\":false,\"type\":\"internal\",\"visualization_type\":\"bars_and_uptime_percentage\"},\"relationships\":{\"created_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}},\"last_modified_by_user\":{\"data\":{\"id\":\"3ad549bf-eba0-11e9-a77a-0705486660d0\",\"type\":\"users\"}}}}}", "headers": { "Content-Type": [ "application/vnd.api+json" @@ -57,13 +57,13 @@ "timeToLive": { "unlimited": true }, - "id": "8e23cdf0-a85d-61fe-95dc-005f2aee24c1" + "id": "1df26444-5f75-947d-9a43-3223d058d150" }, { "httpRequest": { "headers": {}, "method": "DELETE", - "path": "/api/v2/statuspages/197028d4-9c5e-420f-acb1-963ae82ebf22", + "path": "/api/v2/statuspages/1abc85f9-6c22-4a51-b2b9-afec48f3108b", "keepAlive": false, "secure": true }, @@ -78,6 +78,6 @@ "timeToLive": { "unlimited": true }, - "id": "f987fa96-9230-014a-4ce8-3a28b7202533" + "id": "53433dd6-79f7-9ec8-7548-c32fedeed3d6" } ] \ No newline at end of file diff --git a/src/test/resources/com/datadog/api/client/v2/api/given.json b/src/test/resources/com/datadog/api/client/v2/api/given.json index 0651545f281..672f982f6d0 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/given.json +++ b/src/test/resources/com/datadog/api/client/v2/api/given.json @@ -1283,6 +1283,22 @@ "tag": "Status Pages", "operationId": "CreateDegradation" }, + { + "parameters": [ + { + "name": "page_id", + "value": "\"{{ status_page.data.id }}\"" + }, + { + "name": "body", + "value": "{\n \"data\": {\n \"attributes\": {\n \"title\": \"API Maintenance\",\n \"scheduled_description\": \"We will be performing maintenance on the API to improve performance.\",\n \"in_progress_description\": \"We are currently performing maintenance on the API to improve performance.\",\n \"completed_description\": \"We have completed maintenance on the API to improve performance.\",\n \"start_date\": \"{{ timeISO('now + 1h') }}\",\n \"completed_date\": \"{{ timeISO('now + 2h') }}\",\n \"components_affected\": [\n {\n \"id\": \"{{ status_page.data.attributes.components[0].components[0].id }}\",\n \"status\": \"operational\"\n }\n ]\n },\n \"type\": \"maintenances\"\n }\n}" + } + ], + "step": "there is a valid \"maintenance\" in the system", + "key": "maintenance", + "tag": "Status Pages", + "operationId": "CreateMaintenance" + }, { "parameters": [ { diff --git a/src/test/resources/com/datadog/api/client/v2/api/status_pages.feature b/src/test/resources/com/datadog/api/client/v2/api/status_pages.feature index 35d80dd2fed..2c8dde2b51e 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/status_pages.feature +++ b/src/test/resources/com/datadog/api/client/v2/api/status_pages.feature @@ -30,6 +30,16 @@ Feature: Status Pages Then the response status is 201 Created And the response "data.attributes.updates" has length 1 + @team:DataDog/incident-app + Scenario: Create maintenance returns "Created" response + Given there is a valid "status_page" in the system + And new "CreateMaintenance" request + And request contains "page_id" parameter from "status_page.data.id" + And body with value {"data": {"attributes": {"title": "API Maintenance", "scheduled_description": "We will be performing maintenance on the API to improve performance.", "in_progress_description": "We are currently performing maintenance on the API to improve performance.", "completed_description": "We have completed maintenance on the API to improve performance.", "start_date": "{{ timeISO('now + 1h') }}", "completed_date": "{{ timeISO('now + 2h') }}", "components_affected": [{"id": "{{ status_page.data.attributes.components[0].components[0].id }}", "status": "operational"}]}, "type": "maintenances"}} + When the request is sent + Then the response status is 201 Created + And the response "data.attributes.updates" has length 1 + @team:DataDog/incident-app Scenario: Create status page returns "Created" response Given new "CreateStatusPage" request @@ -83,6 +93,16 @@ Feature: Status Pages When the request is sent Then the response status is 200 OK + @team:DataDog/incident-app + Scenario: Get maintenance returns "OK" response + Given there is a valid "status_page" in the system + And there is a valid "maintenance" in the system + And new "GetMaintenance" request + And request contains "page_id" parameter from "status_page.data.id" + And request contains "maintenance_id" parameter from "maintenance.data.id" + When the request is sent + Then the response status is 200 OK + @team:DataDog/incident-app Scenario: Get status page returns "OK" response Given new "GetStatusPage" request @@ -107,6 +127,14 @@ Feature: Status Pages When the request is sent Then the response status is 200 OK + @team:DataDog/incident-app + Scenario: List maintenances returns "OK" response + Given there is a valid "status_page" in the system + And there is a valid "maintenance" in the system + And new "ListMaintenances" request + When the request is sent + Then the response status is 200 OK + @team:DataDog/incident-app Scenario: List status pages returns "OK" response Given new "ListStatusPages" request @@ -137,6 +165,17 @@ Feature: Status Pages Then the response status is 200 OK And the response "data.attributes.title" is equal to "Elevated API Latency in US1" + @team:DataDog/incident-app + Scenario: Update maintenance returns "OK" response + Given there is a valid "status_page" in the system + And there is a valid "maintenance" in the system + And new "UpdateMaintenance" request + And request contains "page_id" parameter from "status_page.data.id" + And request contains "maintenance_id" parameter from "maintenance.data.id" + And body with value {"data": {"attributes": {"scheduled_description": "We will be performing maintenance on the API to improve performance for 40 minutes.", "in_progress_description": "We are currently performing maintenance on the API to improve performance for 40 minutes."}, "id": "{{ maintenance.data.id }}", "type": "maintenances"}} + When the request is sent + Then the response status is 200 OK + @team:DataDog/incident-app Scenario: Update status page returns "OK" response Given new "UpdateStatusPage" request diff --git a/src/test/resources/com/datadog/api/client/v2/api/undo.json b/src/test/resources/com/datadog/api/client/v2/api/undo.json index 4428105073e..03329c70128 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/undo.json +++ b/src/test/resources/com/datadog/api/client/v2/api/undo.json @@ -5290,6 +5290,12 @@ "type": "safe" } }, + "ListMaintenances": { + "tag": "Status Pages", + "undo": { + "type": "safe" + } + }, "DeleteStatusPage": { "tag": "Status Pages", "undo": { @@ -5384,6 +5390,24 @@ "type": "idempotent" } }, + "CreateMaintenance": { + "tag": "Status Pages", + "undo": { + "type": "safe" + } + }, + "GetMaintenance": { + "tag": "Status Pages", + "undo": { + "type": "safe" + } + }, + "UpdateMaintenance": { + "tag": "Status Pages", + "undo": { + "type": "idempotent" + } + }, "GetOnDemandConcurrencyCap": { "tag": "Synthetics", "undo": {