diff --git a/.apigentools-info b/.apigentools-info index 033d528ca250..dfb5751cbcb9 100644 --- a/.apigentools-info +++ b/.apigentools-info @@ -4,13 +4,13 @@ "spec_versions": { "v1": { "apigentools_version": "1.6.6", - "regenerated": "2025-01-08 14:02:31.156850", - "spec_repo_commit": "1920836f" + "regenerated": "2025-01-08 20:54:26.217860", + "spec_repo_commit": "0f2ca34c" }, "v2": { "apigentools_version": "1.6.6", - "regenerated": "2025-01-08 14:02:31.172021", - "spec_repo_commit": "1920836f" + "regenerated": "2025-01-08 20:54:26.235514", + "spec_repo_commit": "0f2ca34c" } } } \ No newline at end of file diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index fadab8d3ec6e..49fe7f2a994f 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -1634,6 +1634,34 @@ components: type: string x-enum-varnames: - apm_retention_filter + AppBuilderError: + description: The definition of `AppBuilderError` object. + properties: + errors: + description: The `AppBuilderError` `errors`. + items: + $ref: '#/components/schemas/AppBuilderErrorErrorsItems' + type: array + type: object + AppBuilderErrorErrorsItems: + description: The definition of `AppBuilderErrorErrorsItems` object. + properties: + detail: + description: The `items` `detail`. + type: string + source: + $ref: '#/components/schemas/AppBuilderErrorErrorsItemsSource' + type: object + AppBuilderErrorErrorsItemsSource: + description: The definition of `AppBuilderErrorErrorsItemsSource` object. + properties: + parameter: + description: The `source` `parameter`. + type: string + pointer: + description: The `source` `pointer`. + type: string + type: object AppBuilderEvent: additionalProperties: {} description: The definition of `AppBuilderEvent` object. @@ -1720,7 +1748,6 @@ components: type: string user_uuid: description: The `AppMeta` `user_uuid`. - format: uuid type: string version: description: The `AppMeta` `version`. @@ -9138,7 +9165,6 @@ components: type: string user_uuid: description: The `meta` `user_uuid`. - format: uuid type: string type: object DeploymentIncludedType: @@ -9164,7 +9190,6 @@ components: type: string user_uuid: description: The `DeploymentMeta` `user_uuid`. - format: uuid type: string type: object DeploymentRelationship: @@ -9207,7 +9232,6 @@ components: type: string user_uuid: description: The `meta` `user_uuid`. - format: uuid type: string type: object DeploymentType: @@ -31122,19 +31146,19 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' + $ref: '#/components/schemas/AppBuilderError' description: Bad Request '403': content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' - description: Forbidden + $ref: '#/components/schemas/AppBuilderError' + description: Forbidden, e.g. missing permissions to delete one or more apps '404': content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' + $ref: '#/components/schemas/AppBuilderError' description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' @@ -31151,71 +31175,63 @@ paths: description: List all apps, with optional filters and sorting operationId: ListApps parameters: - - description: The number of apps to return per page. + - description: The number of apps to return per page in: query name: limit required: false schema: format: int64 type: integer - - description: The page number to return. + - description: The page number to return in: query name: page required: false schema: format: int64 type: integer - - description: Filter apps by the app creator. Usually the user's email. + - description: The `AppsFilter` `user_name`. in: query name: filter[user_name] required: false schema: type: string - - description: Filter apps by the app creator's UUID. + - description: The `AppsFilter` `user_uuid`. in: query name: filter[user_uuid] required: false schema: - format: uuid type: string - - description: Filter by app name. + - description: The `AppsFilter` `name`. in: query name: filter[name] required: false schema: type: string - - description: Filter apps by the app name or the app creator. + - description: The `AppsFilter` `query`. in: query name: filter[query] required: false schema: type: string - - description: Filter apps by whether they are published. + - description: The `AppsFilter` `deployed`. in: query name: filter[deployed] required: false schema: type: boolean - - description: Filter apps by tags. + - description: The `AppsFilter` `tags`. in: query name: filter[tags] required: false schema: type: string - - description: Filter apps by whether you have added them to your favorites. + - description: The `AppsFilter` `favorite`. in: query name: filter[favorite] required: false schema: type: boolean - - description: Filter apps by whether they are enabled for self-service. - in: query - name: filter[self_service] - required: false - schema: - type: boolean - - description: The fields and direction to sort apps by. - explode: false + - explode: false in: query name: sort required: false @@ -31235,13 +31251,13 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' - description: Bad Request + $ref: '#/components/schemas/AppBuilderError' + description: Bad Request, e.g. invalid sort parameter '403': content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' + $ref: '#/components/schemas/AppBuilderError' description: Forbidden '429': $ref: '#/components/responses/TooManyRequestsResponse' @@ -31274,14 +31290,15 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' + $ref: '#/components/schemas/AppBuilderError' description: Bad Request '403': content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' - description: Forbidden + $ref: '#/components/schemas/AppBuilderError' + description: Forbidden, e.g. missing required permissions to a connection + or workflow used in the app '429': $ref: '#/components/responses/TooManyRequestsResponse' summary: Create App @@ -31316,25 +31333,25 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' + $ref: '#/components/schemas/AppBuilderError' description: Bad Request '403': content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' + $ref: '#/components/schemas/AppBuilderError' description: Forbidden '404': content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' + $ref: '#/components/schemas/AppBuilderError' description: Not Found '410': content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' + $ref: '#/components/schemas/AppBuilderError' description: Gone '429': $ref: '#/components/responses/TooManyRequestsResponse' @@ -31356,11 +31373,6 @@ paths: required: true schema: type: string - - in: query - name: version - required: false - schema: - type: string responses: '200': content: @@ -31372,19 +31384,19 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' + $ref: '#/components/schemas/AppBuilderError' description: Bad Request '403': content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' + $ref: '#/components/schemas/AppBuilderError' description: Forbidden '404': content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' + $ref: '#/components/schemas/AppBuilderError' description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' @@ -31424,14 +31436,15 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' + $ref: '#/components/schemas/AppBuilderError' description: Bad Request '403': content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' - description: Forbidden + $ref: '#/components/schemas/AppBuilderError' + description: Forbidden, e.g. missing required permissions to a connection + or workflow used in the app '429': $ref: '#/components/responses/TooManyRequestsResponse' summary: Update App @@ -31466,25 +31479,25 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' + $ref: '#/components/schemas/AppBuilderError' description: Bad Request '403': content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' + $ref: '#/components/schemas/AppBuilderError' description: Forbidden '404': content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' + $ref: '#/components/schemas/AppBuilderError' description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' summary: Disable App tags: - - Apps + - App Deployment x-permission: operator: OR permissions: @@ -31511,25 +31524,25 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' + $ref: '#/components/schemas/AppBuilderError' description: Bad Request '403': content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' + $ref: '#/components/schemas/AppBuilderError' description: Forbidden '404': content: application/json: schema: - $ref: '#/components/schemas/JSONAPIErrorResponse' + $ref: '#/components/schemas/AppBuilderError' description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' summary: Deploy App tags: - - Apps + - App Deployment x-permission: operator: OR permissions: @@ -48205,10 +48218,9 @@ tags: teams to install Agents on every host or where Agents cannot be installed.\nGo to https://www.datadoghq.com/blog/agentless-scanning/ to learn more" name: Agentless Scanning -- description: Datadog App Builder provides a low-code solution to rapidly develop - and integrate secure, customized applications into your monitoring stack that - are built to accelerate remediation at scale. These API endpoints allow you to - create, read, update, delete, and publish apps. +- description: Deploy and disable apps in App Builder. + name: App Deployment +- description: Create, read, update, and delete apps in App Builder. name: Apps - description: Search your Audit Logs events over HTTP. name: Audit diff --git a/cassettes/v2/App-Deployment_818229931/Deploy-App-returns-Bad-Request-response_3804679907/frozen.json b/cassettes/v2/App-Deployment_818229931/Deploy-App-returns-Bad-Request-response_3804679907/frozen.json new file mode 100644 index 000000000000..f65a7194e0b5 --- /dev/null +++ b/cassettes/v2/App-Deployment_818229931/Deploy-App-returns-Bad-Request-response_3804679907/frozen.json @@ -0,0 +1 @@ +"2024-12-10T19:57:35.320Z" diff --git a/cassettes/v2/Apps_1406737069/Deploy-App-returns-Bad-Request-response_3804679907/recording.har b/cassettes/v2/App-Deployment_818229931/Deploy-App-returns-Bad-Request-response_3804679907/recording.har similarity index 87% rename from cassettes/v2/Apps_1406737069/Deploy-App-returns-Bad-Request-response_3804679907/recording.har rename to cassettes/v2/App-Deployment_818229931/Deploy-App-returns-Bad-Request-response_3804679907/recording.har index 698b5dad9501..ba3c9060f189 100644 --- a/cassettes/v2/Apps_1406737069/Deploy-App-returns-Bad-Request-response_3804679907/recording.har +++ b/cassettes/v2/App-Deployment_818229931/Deploy-App-returns-Bad-Request-response_3804679907/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "Apps/Deploy App returns \"Bad Request\" response", + "_recordingName": "App Deployment/Deploy App returns \"Bad Request\" response", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -41,14 +41,14 @@ "value": "application/vnd.api+json" } ], - "headersSize": 656, + "headersSize": 655, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 400, "statusText": "Bad Request" }, - "startedDateTime": "2024-12-20T20:39:20.194Z", - "time": 90 + "startedDateTime": "2024-12-10T19:57:35.328Z", + "time": 124 } ], "pages": [], diff --git a/cassettes/v2/App-Deployment_818229931/Deploy-App-returns-Created-response_286585597/frozen.json b/cassettes/v2/App-Deployment_818229931/Deploy-App-returns-Created-response_286585597/frozen.json new file mode 100644 index 000000000000..564cd73eaba3 --- /dev/null +++ b/cassettes/v2/App-Deployment_818229931/Deploy-App-returns-Created-response_286585597/frozen.json @@ -0,0 +1 @@ +"2024-12-12T20:29:22.668Z" diff --git a/cassettes/v2/Apps_1406737069/Deploy-App-returns-Created-response_286585597/recording.har b/cassettes/v2/App-Deployment_818229931/Deploy-App-returns-Created-response_286585597/recording.har similarity index 77% rename from cassettes/v2/Apps_1406737069/Deploy-App-returns-Created-response_286585597/recording.har rename to cassettes/v2/App-Deployment_818229931/Deploy-App-returns-Created-response_286585597/recording.har index 3c50248441c5..4762d1d68ae3 100644 --- a/cassettes/v2/Apps_1406737069/Deploy-App-returns-Created-response_286585597/recording.har +++ b/cassettes/v2/App-Deployment_818229931/Deploy-App-returns-Created-response_286585597/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "Apps/Deploy App returns \"Created\" response", + "_recordingName": "App Deployment/Deploy App returns \"Created\" response", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -42,7 +42,7 @@ "content": { "mimeType": "application/vnd.api+json", "size": 78, - "text": "{\"data\":{\"id\":\"290ad26d-6f5c-43b6-aef6-57b403d755e8\",\"type\":\"appDefinitions\"}}" + "text": "{\"data\":{\"id\":\"d9f547cd-bc8d-46be-b321-336856723728\",\"type\":\"appDefinitions\"}}" }, "cookies": [], "headers": [ @@ -51,17 +51,17 @@ "value": "application/vnd.api+json" } ], - "headersSize": 656, + "headersSize": 655, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 201, "statusText": "Created" }, - "startedDateTime": "2024-12-20T20:39:20.297Z", - "time": 184 + "startedDateTime": "2024-12-12T20:29:22.868Z", + "time": 270 }, { - "_id": "f8adee5fa20eb00ebef15668e2745566", + "_id": "47b8c8ead8b3c4d665ee3698d0fc6c64", "_order": 0, "cache": {}, "request": { @@ -78,14 +78,14 @@ "httpVersion": "HTTP/1.1", "method": "POST", "queryString": [], - "url": "https://api.datadoghq.com/api/v2/app-builder/apps/290ad26d-6f5c-43b6-aef6-57b403d755e8/deployment" + "url": "https://api.datadoghq.com/api/v2/app-builder/apps/d9f547cd-bc8d-46be-b321-336856723728/deployment" }, "response": { - "bodySize": 305, + "bodySize": 317, "content": { "mimeType": "application/vnd.api+json", - "size": 305, - "text": "{\"data\":{\"id\":\"74a4bbff-b587-4272-a207-b61678cc0bf1\",\"type\":\"deployment\",\"attributes\":{\"app_version_id\":\"ab334928-2df5-4e6e-8e40-9eeee2b2cd44\"},\"meta\":{\"created_at\":\"2024-12-20T20:39:20.594723Z\",\"user_id\":15479137,\"user_uuid\":\"b3f98453-b289-11ef-a4e9-d6d283f92d91\",\"user_name\":\"oliver.li@datadoghq.com\"}}}" + "size": 317, + "text": "{\"data\":{\"id\":\"7e1d147c-815e-46fa-8be0-278783311881\",\"type\":\"deployment\",\"attributes\":{\"app_version_id\":\"f8567809-049e-49c2-b5c0-e5cb0e8e0f5e\"},\"meta\":{\"created_at\":\"2024-12-12T20:29:23.253704Z\",\"user_id\":2320499,\"user_uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"user_name\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}" }, "cookies": [], "headers": [ @@ -94,17 +94,17 @@ "value": "application/vnd.api+json" } ], - "headersSize": 657, + "headersSize": 656, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 201, "statusText": "Created" }, - "startedDateTime": "2024-12-20T20:39:20.487Z", - "time": 237 + "startedDateTime": "2024-12-12T20:29:23.145Z", + "time": 186 }, { - "_id": "2f533cca97b3a51368b7258f69476b93", + "_id": "61c62063a1b4708647713ca07f798d40", "_order": 0, "cache": {}, "request": { @@ -121,14 +121,14 @@ "httpVersion": "HTTP/1.1", "method": "DELETE", "queryString": [], - "url": "https://api.datadoghq.com/api/v2/app-builder/apps/290ad26d-6f5c-43b6-aef6-57b403d755e8" + "url": "https://api.datadoghq.com/api/v2/app-builder/apps/d9f547cd-bc8d-46be-b321-336856723728" }, "response": { "bodySize": 78, "content": { "mimeType": "application/vnd.api+json", "size": 78, - "text": "{\"data\":{\"id\":\"290ad26d-6f5c-43b6-aef6-57b403d755e8\",\"type\":\"appDefinitions\"}}" + "text": "{\"data\":{\"id\":\"d9f547cd-bc8d-46be-b321-336856723728\",\"type\":\"appDefinitions\"}}" }, "cookies": [], "headers": [ @@ -137,14 +137,14 @@ "value": "application/vnd.api+json" } ], - "headersSize": 656, + "headersSize": 655, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-12-20T20:39:20.729Z", - "time": 197 + "startedDateTime": "2024-12-12T20:29:23.337Z", + "time": 203 } ], "pages": [], diff --git a/cassettes/v2/App-Deployment_818229931/Deploy-App-returns-Not-Found-response_670810212/frozen.json b/cassettes/v2/App-Deployment_818229931/Deploy-App-returns-Not-Found-response_670810212/frozen.json new file mode 100644 index 000000000000..210258567a12 --- /dev/null +++ b/cassettes/v2/App-Deployment_818229931/Deploy-App-returns-Not-Found-response_670810212/frozen.json @@ -0,0 +1 @@ +"2024-12-10T19:57:35.984Z" diff --git a/cassettes/v2/Apps_1406737069/Deploy-App-returns-Not-Found-response_670810212/recording.har b/cassettes/v2/App-Deployment_818229931/Deploy-App-returns-Not-Found-response_670810212/recording.har similarity index 87% rename from cassettes/v2/Apps_1406737069/Deploy-App-returns-Not-Found-response_670810212/recording.har rename to cassettes/v2/App-Deployment_818229931/Deploy-App-returns-Not-Found-response_670810212/recording.har index 2de3d7e21c47..10dd29b10910 100644 --- a/cassettes/v2/Apps_1406737069/Deploy-App-returns-Not-Found-response_670810212/recording.har +++ b/cassettes/v2/App-Deployment_818229931/Deploy-App-returns-Not-Found-response_670810212/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "Apps/Deploy App returns \"Not Found\" response", + "_recordingName": "App Deployment/Deploy App returns \"Not Found\" response", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -41,14 +41,14 @@ "value": "application/vnd.api+json" } ], - "headersSize": 656, + "headersSize": 655, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 404, "statusText": "Not Found" }, - "startedDateTime": "2024-12-20T20:39:20.930Z", - "time": 99 + "startedDateTime": "2024-12-10T19:57:35.987Z", + "time": 96 } ], "pages": [], diff --git a/cassettes/v2/App-Deployment_818229931/Disable-App-returns-Bad-Request-response_1603315968/frozen.json b/cassettes/v2/App-Deployment_818229931/Disable-App-returns-Bad-Request-response_1603315968/frozen.json new file mode 100644 index 000000000000..389479fa8ca4 --- /dev/null +++ b/cassettes/v2/App-Deployment_818229931/Disable-App-returns-Bad-Request-response_1603315968/frozen.json @@ -0,0 +1 @@ +"2024-12-10T19:57:36.091Z" diff --git a/cassettes/v2/Apps_1406737069/Disable-App-returns-Bad-Request-response_1603315968/recording.har b/cassettes/v2/App-Deployment_818229931/Disable-App-returns-Bad-Request-response_1603315968/recording.har similarity index 89% rename from cassettes/v2/Apps_1406737069/Disable-App-returns-Bad-Request-response_1603315968/recording.har rename to cassettes/v2/App-Deployment_818229931/Disable-App-returns-Bad-Request-response_1603315968/recording.har index d2284c30f8ab..9cdf79313dfe 100644 --- a/cassettes/v2/Apps_1406737069/Disable-App-returns-Bad-Request-response_1603315968/recording.har +++ b/cassettes/v2/App-Deployment_818229931/Disable-App-returns-Bad-Request-response_1603315968/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "Apps/Disable App returns \"Bad Request\" response", + "_recordingName": "App Deployment/Disable App returns \"Bad Request\" response", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -47,8 +47,8 @@ "status": 400, "statusText": "Bad Request" }, - "startedDateTime": "2024-12-20T20:39:21.035Z", - "time": 90 + "startedDateTime": "2024-12-10T19:57:36.094Z", + "time": 78 } ], "pages": [], diff --git a/cassettes/v2/App-Deployment_818229931/Disable-App-returns-Not-Found-response_2767718519/frozen.json b/cassettes/v2/App-Deployment_818229931/Disable-App-returns-Not-Found-response_2767718519/frozen.json new file mode 100644 index 000000000000..6264d3965666 --- /dev/null +++ b/cassettes/v2/App-Deployment_818229931/Disable-App-returns-Not-Found-response_2767718519/frozen.json @@ -0,0 +1 @@ +"2024-12-10T19:57:36.179Z" diff --git a/cassettes/v2/Apps_1406737069/Disable-App-returns-Not-Found-response_2767718519/recording.har b/cassettes/v2/App-Deployment_818229931/Disable-App-returns-Not-Found-response_2767718519/recording.har similarity index 89% rename from cassettes/v2/Apps_1406737069/Disable-App-returns-Not-Found-response_2767718519/recording.har rename to cassettes/v2/App-Deployment_818229931/Disable-App-returns-Not-Found-response_2767718519/recording.har index 9c8d05d285a3..a52f217d8f7b 100644 --- a/cassettes/v2/Apps_1406737069/Disable-App-returns-Not-Found-response_2767718519/recording.har +++ b/cassettes/v2/App-Deployment_818229931/Disable-App-returns-Not-Found-response_2767718519/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "Apps/Disable App returns \"Not Found\" response", + "_recordingName": "App Deployment/Disable App returns \"Not Found\" response", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -47,8 +47,8 @@ "status": 404, "statusText": "Not Found" }, - "startedDateTime": "2024-12-20T20:39:21.133Z", - "time": 91 + "startedDateTime": "2024-12-10T19:57:36.181Z", + "time": 96 } ], "pages": [], diff --git a/cassettes/v2/App-Deployment_818229931/Disable-App-returns-OK-response_84091086/frozen.json b/cassettes/v2/App-Deployment_818229931/Disable-App-returns-OK-response_84091086/frozen.json new file mode 100644 index 000000000000..55e9607337af --- /dev/null +++ b/cassettes/v2/App-Deployment_818229931/Disable-App-returns-OK-response_84091086/frozen.json @@ -0,0 +1 @@ +"2024-12-12T20:29:23.546Z" diff --git a/cassettes/v2/Apps_1406737069/Disable-App-returns-OK-response_84091086/recording.har b/cassettes/v2/App-Deployment_818229931/Disable-App-returns-OK-response_84091086/recording.har similarity index 79% rename from cassettes/v2/Apps_1406737069/Disable-App-returns-OK-response_84091086/recording.har rename to cassettes/v2/App-Deployment_818229931/Disable-App-returns-OK-response_84091086/recording.har index 99bbe7319f7a..d118788acb2c 100644 --- a/cassettes/v2/Apps_1406737069/Disable-App-returns-OK-response_84091086/recording.har +++ b/cassettes/v2/App-Deployment_818229931/Disable-App-returns-OK-response_84091086/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "Apps/Disable App returns \"OK\" response", + "_recordingName": "App Deployment/Disable App returns \"OK\" response", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -42,7 +42,7 @@ "content": { "mimeType": "application/vnd.api+json", "size": 78, - "text": "{\"data\":{\"id\":\"cfe9f7bc-e6e6-44e2-9d30-19b03ab871b5\",\"type\":\"appDefinitions\"}}" + "text": "{\"data\":{\"id\":\"6fdd1eb3-bd2c-4fe3-a3cf-38d0af4913ad\",\"type\":\"appDefinitions\"}}" }, "cookies": [], "headers": [ @@ -57,11 +57,11 @@ "status": 201, "statusText": "Created" }, - "startedDateTime": "2024-12-20T20:39:21.233Z", - "time": 156 + "startedDateTime": "2024-12-12T20:29:23.548Z", + "time": 201 }, { - "_id": "e8c781fda291d66a41c85d33c268c3d9", + "_id": "19063af73ab138a68fd89757876febdd", "_order": 0, "cache": {}, "request": { @@ -78,14 +78,14 @@ "httpVersion": "HTTP/1.1", "method": "DELETE", "queryString": [], - "url": "https://api.datadoghq.com/api/v2/app-builder/apps/cfe9f7bc-e6e6-44e2-9d30-19b03ab871b5/deployment" + "url": "https://api.datadoghq.com/api/v2/app-builder/apps/6fdd1eb3-bd2c-4fe3-a3cf-38d0af4913ad/deployment" }, "response": { - "bodySize": 305, + "bodySize": 317, "content": { "mimeType": "application/vnd.api+json", - "size": 305, - "text": "{\"data\":{\"id\":\"1c14f2b9-0161-4dac-ad44-b8dd84abcbe6\",\"type\":\"deployment\",\"attributes\":{\"app_version_id\":\"00000000-0000-0000-0000-000000000000\"},\"meta\":{\"created_at\":\"2024-12-20T20:39:21.490485Z\",\"user_id\":15479137,\"user_uuid\":\"b3f98453-b289-11ef-a4e9-d6d283f92d91\",\"user_name\":\"oliver.li@datadoghq.com\"}}}" + "size": 317, + "text": "{\"data\":{\"id\":\"be510de8-34d8-45fc-830f-85c208a42920\",\"type\":\"deployment\",\"attributes\":{\"app_version_id\":\"00000000-0000-0000-0000-000000000000\"},\"meta\":{\"created_at\":\"2024-12-12T20:29:23.883145Z\",\"user_id\":2320499,\"user_uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"user_name\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"}}}" }, "cookies": [], "headers": [ @@ -100,11 +100,11 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-12-20T20:39:21.393Z", - "time": 151 + "startedDateTime": "2024-12-12T20:29:23.756Z", + "time": 190 }, { - "_id": "e9ff46011c40469284e3f020d37bd773", + "_id": "84d81555f8a2c8e520aa3b2a74bae9c0", "_order": 0, "cache": {}, "request": { @@ -121,14 +121,14 @@ "httpVersion": "HTTP/1.1", "method": "DELETE", "queryString": [], - "url": "https://api.datadoghq.com/api/v2/app-builder/apps/cfe9f7bc-e6e6-44e2-9d30-19b03ab871b5" + "url": "https://api.datadoghq.com/api/v2/app-builder/apps/6fdd1eb3-bd2c-4fe3-a3cf-38d0af4913ad" }, "response": { "bodySize": 78, "content": { "mimeType": "application/vnd.api+json", "size": 78, - "text": "{\"data\":{\"id\":\"cfe9f7bc-e6e6-44e2-9d30-19b03ab871b5\",\"type\":\"appDefinitions\"}}" + "text": "{\"data\":{\"id\":\"6fdd1eb3-bd2c-4fe3-a3cf-38d0af4913ad\",\"type\":\"appDefinitions\"}}" }, "cookies": [], "headers": [ @@ -143,8 +143,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-12-20T20:39:21.546Z", - "time": 132 + "startedDateTime": "2024-12-12T20:29:23.951Z", + "time": 227 } ], "pages": [], diff --git a/cassettes/v2/Apps_1406737069/Create-App-returns-App-Created-response_2429108219/frozen.json b/cassettes/v2/Apps_1406737069/Create-App-returns-App-Created-response_2429108219/frozen.json index 9c0566eaa6d4..9d9cd805204c 100644 --- a/cassettes/v2/Apps_1406737069/Create-App-returns-App-Created-response_2429108219/frozen.json +++ b/cassettes/v2/Apps_1406737069/Create-App-returns-App-Created-response_2429108219/frozen.json @@ -1 +1 @@ -"2024-12-20T20:39:18.375Z" +"2024-12-12T20:29:24.182Z" diff --git a/cassettes/v2/Apps_1406737069/Create-App-returns-App-Created-response_2429108219/recording.har b/cassettes/v2/Apps_1406737069/Create-App-returns-App-Created-response_2429108219/recording.har index 9a341da57280..eeb8c6a30ac5 100644 --- a/cassettes/v2/Apps_1406737069/Create-App-returns-App-Created-response_2429108219/recording.har +++ b/cassettes/v2/Apps_1406737069/Create-App-returns-App-Created-response_2429108219/recording.har @@ -42,7 +42,7 @@ "content": { "mimeType": "application/vnd.api+json", "size": 78, - "text": "{\"data\":{\"id\":\"02c52f8c-78d9-4c14-ac27-b0bcac36ce74\",\"type\":\"appDefinitions\"}}" + "text": "{\"data\":{\"id\":\"2d9dd18e-c574-454c-8d43-3045b731d6a2\",\"type\":\"appDefinitions\"}}" }, "cookies": [], "headers": [ @@ -57,11 +57,11 @@ "status": 201, "statusText": "Created" }, - "startedDateTime": "2024-12-20T20:39:18.383Z", - "time": 212 + "startedDateTime": "2024-12-12T20:29:24.185Z", + "time": 233 }, { - "_id": "faf53efb5573c7ab23e2f60966d9bbd3", + "_id": "1d96f31b62427d8711a6166228a63510", "_order": 0, "cache": {}, "request": { @@ -78,14 +78,14 @@ "httpVersion": "HTTP/1.1", "method": "DELETE", "queryString": [], - "url": "https://api.datadoghq.com/api/v2/app-builder/apps/02c52f8c-78d9-4c14-ac27-b0bcac36ce74" + "url": "https://api.datadoghq.com/api/v2/app-builder/apps/2d9dd18e-c574-454c-8d43-3045b731d6a2" }, "response": { "bodySize": 78, "content": { "mimeType": "application/vnd.api+json", "size": 78, - "text": "{\"data\":{\"id\":\"02c52f8c-78d9-4c14-ac27-b0bcac36ce74\",\"type\":\"appDefinitions\"}}" + "text": "{\"data\":{\"id\":\"2d9dd18e-c574-454c-8d43-3045b731d6a2\",\"type\":\"appDefinitions\"}}" }, "cookies": [], "headers": [ @@ -100,8 +100,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-12-20T20:39:18.605Z", - "time": 168 + "startedDateTime": "2024-12-12T20:29:24.424Z", + "time": 231 } ], "pages": [], diff --git a/cassettes/v2/Apps_1406737069/Create-App-returns-Bad-Request-response_2920792470/frozen.json b/cassettes/v2/Apps_1406737069/Create-App-returns-Bad-Request-response_2920792470/frozen.json index 8196ec87495e..73f145af21a0 100644 --- a/cassettes/v2/Apps_1406737069/Create-App-returns-Bad-Request-response_2920792470/frozen.json +++ b/cassettes/v2/Apps_1406737069/Create-App-returns-Bad-Request-response_2920792470/frozen.json @@ -1 +1 @@ -"2024-12-20T20:39:18.779Z" +"2024-12-10T19:57:10.031Z" diff --git a/cassettes/v2/Apps_1406737069/Create-App-returns-Bad-Request-response_2920792470/recording.har b/cassettes/v2/Apps_1406737069/Create-App-returns-Bad-Request-response_2920792470/recording.har index 15263595dd60..2318579ece5a 100644 --- a/cassettes/v2/Apps_1406737069/Create-App-returns-Bad-Request-response_2920792470/recording.har +++ b/cassettes/v2/Apps_1406737069/Create-App-returns-Bad-Request-response_2920792470/recording.har @@ -51,14 +51,14 @@ "value": "application/vnd.api+json" } ], - "headersSize": 655, + "headersSize": 656, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 400, "statusText": "Bad Request" }, - "startedDateTime": "2024-12-20T20:39:18.783Z", - "time": 91 + "startedDateTime": "2024-12-10T19:57:10.034Z", + "time": 85 } ], "pages": [], diff --git a/cassettes/v2/Apps_1406737069/Delete-App-returns-Bad-Request-response_2830425951/frozen.json b/cassettes/v2/Apps_1406737069/Delete-App-returns-Bad-Request-response_2830425951/frozen.json index 2ef4bcce3d45..2352e167765d 100644 --- a/cassettes/v2/Apps_1406737069/Delete-App-returns-Bad-Request-response_2830425951/frozen.json +++ b/cassettes/v2/Apps_1406737069/Delete-App-returns-Bad-Request-response_2830425951/frozen.json @@ -1 +1 @@ -"2024-12-20T20:39:18.880Z" +"2024-12-10T19:57:10.128Z" diff --git a/cassettes/v2/Apps_1406737069/Delete-App-returns-Bad-Request-response_2830425951/recording.har b/cassettes/v2/Apps_1406737069/Delete-App-returns-Bad-Request-response_2830425951/recording.har index 0b73a806e056..c9dee3e52b8d 100644 --- a/cassettes/v2/Apps_1406737069/Delete-App-returns-Bad-Request-response_2830425951/recording.har +++ b/cassettes/v2/Apps_1406737069/Delete-App-returns-Bad-Request-response_2830425951/recording.har @@ -41,14 +41,14 @@ "value": "application/vnd.api+json" } ], - "headersSize": 655, + "headersSize": 656, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 400, "statusText": "Bad Request" }, - "startedDateTime": "2024-12-20T20:39:18.881Z", - "time": 97 + "startedDateTime": "2024-12-10T19:57:10.133Z", + "time": 84 } ], "pages": [], diff --git a/cassettes/v2/Apps_1406737069/Delete-App-returns-Not-Found-response_2437545272/frozen.json b/cassettes/v2/Apps_1406737069/Delete-App-returns-Not-Found-response_2437545272/frozen.json index d14744885b6c..9b35f99b57f9 100644 --- a/cassettes/v2/Apps_1406737069/Delete-App-returns-Not-Found-response_2437545272/frozen.json +++ b/cassettes/v2/Apps_1406737069/Delete-App-returns-Not-Found-response_2437545272/frozen.json @@ -1 +1 @@ -"2024-12-20T20:39:18.985Z" +"2024-12-10T19:57:10.225Z" diff --git a/cassettes/v2/Apps_1406737069/Delete-App-returns-Not-Found-response_2437545272/recording.har b/cassettes/v2/Apps_1406737069/Delete-App-returns-Not-Found-response_2437545272/recording.har index 226b385790bc..06e72971a8a3 100644 --- a/cassettes/v2/Apps_1406737069/Delete-App-returns-Not-Found-response_2437545272/recording.har +++ b/cassettes/v2/Apps_1406737069/Delete-App-returns-Not-Found-response_2437545272/recording.har @@ -41,14 +41,14 @@ "value": "application/vnd.api+json" } ], - "headersSize": 655, + "headersSize": 656, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 404, "statusText": "Not Found" }, - "startedDateTime": "2024-12-20T20:39:18.987Z", - "time": 87 + "startedDateTime": "2024-12-10T19:57:10.230Z", + "time": 93 } ], "pages": [], diff --git a/cassettes/v2/Apps_1406737069/Delete-App-returns-OK-response_3750909387/frozen.json b/cassettes/v2/Apps_1406737069/Delete-App-returns-OK-response_3750909387/frozen.json index edb75baf29b4..c62090759b59 100644 --- a/cassettes/v2/Apps_1406737069/Delete-App-returns-OK-response_3750909387/frozen.json +++ b/cassettes/v2/Apps_1406737069/Delete-App-returns-OK-response_3750909387/frozen.json @@ -1 +1 @@ -"2024-12-20T20:39:19.083Z" +"2024-12-12T20:29:24.659Z" diff --git a/cassettes/v2/Apps_1406737069/Delete-App-returns-OK-response_3750909387/recording.har b/cassettes/v2/Apps_1406737069/Delete-App-returns-OK-response_3750909387/recording.har index 8bdf761e5847..49fa98c0f129 100644 --- a/cassettes/v2/Apps_1406737069/Delete-App-returns-OK-response_3750909387/recording.har +++ b/cassettes/v2/Apps_1406737069/Delete-App-returns-OK-response_3750909387/recording.har @@ -42,7 +42,7 @@ "content": { "mimeType": "application/vnd.api+json", "size": 78, - "text": "{\"data\":{\"id\":\"500bf715-77a5-4c1d-b4ef-0d181b071daf\",\"type\":\"appDefinitions\"}}" + "text": "{\"data\":{\"id\":\"5cb67134-d7bd-4320-9cda-d79ec98cff4c\",\"type\":\"appDefinitions\"}}" }, "cookies": [], "headers": [ @@ -57,11 +57,11 @@ "status": 201, "statusText": "Created" }, - "startedDateTime": "2024-12-20T20:39:19.087Z", - "time": 163 + "startedDateTime": "2024-12-12T20:29:24.661Z", + "time": 229 }, { - "_id": "cdb2b576145111825179176076a149fd", + "_id": "9c1dd179d692341628cdf128df58ebe7", "_order": 0, "cache": {}, "request": { @@ -74,18 +74,18 @@ "value": "application/json" } ], - "headersSize": 546, + "headersSize": 545, "httpVersion": "HTTP/1.1", "method": "DELETE", "queryString": [], - "url": "https://api.datadoghq.com/api/v2/app-builder/apps/500bf715-77a5-4c1d-b4ef-0d181b071daf" + "url": "https://api.datadoghq.com/api/v2/app-builder/apps/5cb67134-d7bd-4320-9cda-d79ec98cff4c" }, "response": { "bodySize": 78, "content": { "mimeType": "application/vnd.api+json", "size": 78, - "text": "{\"data\":{\"id\":\"500bf715-77a5-4c1d-b4ef-0d181b071daf\",\"type\":\"appDefinitions\"}}" + "text": "{\"data\":{\"id\":\"5cb67134-d7bd-4320-9cda-d79ec98cff4c\",\"type\":\"appDefinitions\"}}" }, "cookies": [], "headers": [ @@ -100,11 +100,11 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-12-20T20:39:19.259Z", - "time": 221 + "startedDateTime": "2024-12-12T20:29:24.895Z", + "time": 207 }, { - "_id": "cdb2b576145111825179176076a149fd", + "_id": "9c1dd179d692341628cdf128df58ebe7", "_order": 1, "cache": {}, "request": { @@ -121,7 +121,7 @@ "httpVersion": "HTTP/1.1", "method": "DELETE", "queryString": [], - "url": "https://api.datadoghq.com/api/v2/app-builder/apps/500bf715-77a5-4c1d-b4ef-0d181b071daf" + "url": "https://api.datadoghq.com/api/v2/app-builder/apps/5cb67134-d7bd-4320-9cda-d79ec98cff4c" }, "response": { "bodySize": 39, @@ -143,8 +143,8 @@ "status": 404, "statusText": "Not Found" }, - "startedDateTime": "2024-12-20T20:39:19.488Z", - "time": 98 + "startedDateTime": "2024-12-12T20:29:25.107Z", + "time": 126 } ], "pages": [], diff --git a/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-Bad-Request-response_199784758/frozen.json b/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-Bad-Request-response_199784758/frozen.json index 157769ad5b3b..8f2e44f4d15a 100644 --- a/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-Bad-Request-response_199784758/frozen.json +++ b/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-Bad-Request-response_199784758/frozen.json @@ -1 +1 @@ -"2024-12-20T20:39:19.594Z" +"2024-12-10T19:57:10.845Z" diff --git a/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-Bad-Request-response_199784758/recording.har b/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-Bad-Request-response_199784758/recording.har index 672653e2f5dd..6461edd014ab 100644 --- a/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-Bad-Request-response_199784758/recording.har +++ b/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-Bad-Request-response_199784758/recording.har @@ -57,8 +57,8 @@ "status": 400, "statusText": "Bad Request" }, - "startedDateTime": "2024-12-20T20:39:19.599Z", - "time": 85 + "startedDateTime": "2024-12-10T19:57:10.850Z", + "time": 86 } ], "pages": [], diff --git a/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-Not-Found-response_899304157/frozen.json b/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-Not-Found-response_899304157/frozen.json index c24f44673ea2..7bac8f549f9a 100644 --- a/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-Not-Found-response_899304157/frozen.json +++ b/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-Not-Found-response_899304157/frozen.json @@ -1 +1 @@ -"2024-12-20T20:39:19.688Z" +"2024-12-10T19:57:10.942Z" diff --git a/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-Not-Found-response_899304157/recording.har b/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-Not-Found-response_899304157/recording.har index 88688d7531db..110478ce6e1b 100644 --- a/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-Not-Found-response_899304157/recording.har +++ b/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-Not-Found-response_899304157/recording.har @@ -57,8 +57,8 @@ "status": 404, "statusText": "Not Found" }, - "startedDateTime": "2024-12-20T20:39:19.689Z", - "time": 91 + "startedDateTime": "2024-12-10T19:57:10.943Z", + "time": 92 } ], "pages": [], diff --git a/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-OK-response_1924539132/frozen.json b/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-OK-response_1924539132/frozen.json index 4b7675bf537e..39d0c4f7a91d 100644 --- a/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-OK-response_1924539132/frozen.json +++ b/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-OK-response_1924539132/frozen.json @@ -1 +1 @@ -"2024-12-20T20:39:19.785Z" +"2024-12-12T20:29:25.239Z" diff --git a/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-OK-response_1924539132/recording.har b/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-OK-response_1924539132/recording.har index d166c809d825..53d964f41ace 100644 --- a/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-OK-response_1924539132/recording.har +++ b/cassettes/v2/Apps_1406737069/Delete-Multiple-Apps-returns-OK-response_1924539132/recording.har @@ -42,7 +42,7 @@ "content": { "mimeType": "application/vnd.api+json", "size": 78, - "text": "{\"data\":{\"id\":\"884b37bc-71b8-40bc-8967-12684ec7f3c4\",\"type\":\"appDefinitions\"}}" + "text": "{\"data\":{\"id\":\"61d36766-5d27-47ea-a3e7-aa7bd77b1da3\",\"type\":\"appDefinitions\"}}" }, "cookies": [], "headers": [ @@ -57,11 +57,11 @@ "status": 201, "statusText": "Created" }, - "startedDateTime": "2024-12-20T20:39:19.786Z", - "time": 166 + "startedDateTime": "2024-12-12T20:29:25.241Z", + "time": 234 }, { - "_id": "a5d24919c4f7470dcb6619b89e020b7a", + "_id": "1e7c2f0860e2f0906bfec9a688879afa", "_order": 0, "cache": {}, "request": { @@ -85,7 +85,7 @@ "postData": { "mimeType": "application/json", "params": [], - "text": "{\"data\":[{\"id\":\"884b37bc-71b8-40bc-8967-12684ec7f3c4\",\"type\":\"appDefinitions\"}]}" + "text": "{\"data\":[{\"id\":\"61d36766-5d27-47ea-a3e7-aa7bd77b1da3\",\"type\":\"appDefinitions\"}]}" }, "queryString": [], "url": "https://api.datadoghq.com/api/v2/app-builder/apps" @@ -95,7 +95,7 @@ "content": { "mimeType": "application/vnd.api+json", "size": 80, - "text": "{\"data\":[{\"id\":\"884b37bc-71b8-40bc-8967-12684ec7f3c4\",\"type\":\"appDefinitions\"}]}" + "text": "{\"data\":[{\"id\":\"61d36766-5d27-47ea-a3e7-aa7bd77b1da3\",\"type\":\"appDefinitions\"}]}" }, "cookies": [], "headers": [ @@ -104,17 +104,17 @@ "value": "application/vnd.api+json" } ], - "headersSize": 656, + "headersSize": 655, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-12-20T20:39:19.959Z", - "time": 109 + "startedDateTime": "2024-12-12T20:29:25.478Z", + "time": 150 }, { - "_id": "11bf989667b9b708494f737f49e7dc3f", + "_id": "19052e38b509dddd738efa3cf9e0e527", "_order": 0, "cache": {}, "request": { @@ -131,7 +131,7 @@ "httpVersion": "HTTP/1.1", "method": "DELETE", "queryString": [], - "url": "https://api.datadoghq.com/api/v2/app-builder/apps/884b37bc-71b8-40bc-8967-12684ec7f3c4" + "url": "https://api.datadoghq.com/api/v2/app-builder/apps/61d36766-5d27-47ea-a3e7-aa7bd77b1da3" }, "response": { "bodySize": 39, @@ -147,14 +147,14 @@ "value": "application/vnd.api+json" } ], - "headersSize": 656, + "headersSize": 655, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 404, "statusText": "Not Found" }, - "startedDateTime": "2024-12-20T20:39:20.077Z", - "time": 103 + "startedDateTime": "2024-12-12T20:29:25.632Z", + "time": 132 } ], "pages": [], diff --git a/cassettes/v2/Apps_1406737069/Deploy-App-returns-Bad-Request-response_3804679907/frozen.json b/cassettes/v2/Apps_1406737069/Deploy-App-returns-Bad-Request-response_3804679907/frozen.json deleted file mode 100644 index 43b285e6072e..000000000000 --- a/cassettes/v2/Apps_1406737069/Deploy-App-returns-Bad-Request-response_3804679907/frozen.json +++ /dev/null @@ -1 +0,0 @@ -"2024-12-20T20:39:20.190Z" diff --git a/cassettes/v2/Apps_1406737069/Deploy-App-returns-Created-response_286585597/frozen.json b/cassettes/v2/Apps_1406737069/Deploy-App-returns-Created-response_286585597/frozen.json deleted file mode 100644 index f45873faf16a..000000000000 --- a/cassettes/v2/Apps_1406737069/Deploy-App-returns-Created-response_286585597/frozen.json +++ /dev/null @@ -1 +0,0 @@ -"2024-12-20T20:39:20.292Z" diff --git a/cassettes/v2/Apps_1406737069/Deploy-App-returns-Not-Found-response_670810212/frozen.json b/cassettes/v2/Apps_1406737069/Deploy-App-returns-Not-Found-response_670810212/frozen.json deleted file mode 100644 index 48b46bf917bd..000000000000 --- a/cassettes/v2/Apps_1406737069/Deploy-App-returns-Not-Found-response_670810212/frozen.json +++ /dev/null @@ -1 +0,0 @@ -"2024-12-20T20:39:20.929Z" diff --git a/cassettes/v2/Apps_1406737069/Disable-App-returns-Bad-Request-response_1603315968/frozen.json b/cassettes/v2/Apps_1406737069/Disable-App-returns-Bad-Request-response_1603315968/frozen.json deleted file mode 100644 index e43f334ce841..000000000000 --- a/cassettes/v2/Apps_1406737069/Disable-App-returns-Bad-Request-response_1603315968/frozen.json +++ /dev/null @@ -1 +0,0 @@ -"2024-12-20T20:39:21.034Z" diff --git a/cassettes/v2/Apps_1406737069/Disable-App-returns-Not-Found-response_2767718519/frozen.json b/cassettes/v2/Apps_1406737069/Disable-App-returns-Not-Found-response_2767718519/frozen.json deleted file mode 100644 index c90d6a683c1c..000000000000 --- a/cassettes/v2/Apps_1406737069/Disable-App-returns-Not-Found-response_2767718519/frozen.json +++ /dev/null @@ -1 +0,0 @@ -"2024-12-20T20:39:21.129Z" diff --git a/cassettes/v2/Apps_1406737069/Disable-App-returns-OK-response_84091086/frozen.json b/cassettes/v2/Apps_1406737069/Disable-App-returns-OK-response_84091086/frozen.json deleted file mode 100644 index 472d356053ba..000000000000 --- a/cassettes/v2/Apps_1406737069/Disable-App-returns-OK-response_84091086/frozen.json +++ /dev/null @@ -1 +0,0 @@ -"2024-12-20T20:39:21.230Z" diff --git a/cassettes/v2/Apps_1406737069/Get-App-returns-Bad-Request-response_214408132/frozen.json b/cassettes/v2/Apps_1406737069/Get-App-returns-Bad-Request-response_214408132/frozen.json index ffb80a771400..10c9ca40062c 100644 --- a/cassettes/v2/Apps_1406737069/Get-App-returns-Bad-Request-response_214408132/frozen.json +++ b/cassettes/v2/Apps_1406737069/Get-App-returns-Bad-Request-response_214408132/frozen.json @@ -1 +1 @@ -"2024-12-20T20:39:21.680Z" +"2024-12-10T19:57:11.519Z" diff --git a/cassettes/v2/Apps_1406737069/Get-App-returns-Bad-Request-response_214408132/recording.har b/cassettes/v2/Apps_1406737069/Get-App-returns-Bad-Request-response_214408132/recording.har index 45c173e0a636..1343e5ea4ba0 100644 --- a/cassettes/v2/Apps_1406737069/Get-App-returns-Bad-Request-response_214408132/recording.har +++ b/cassettes/v2/Apps_1406737069/Get-App-returns-Bad-Request-response_214408132/recording.har @@ -47,8 +47,8 @@ "status": 400, "statusText": "Bad Request" }, - "startedDateTime": "2024-12-20T20:39:21.682Z", - "time": 75 + "startedDateTime": "2024-12-10T19:57:11.521Z", + "time": 81 } ], "pages": [], diff --git a/cassettes/v2/Apps_1406737069/Get-App-returns-Not-Found-response_396337923/frozen.json b/cassettes/v2/Apps_1406737069/Get-App-returns-Not-Found-response_396337923/frozen.json index a65ae1434858..4b13b2d2c229 100644 --- a/cassettes/v2/Apps_1406737069/Get-App-returns-Not-Found-response_396337923/frozen.json +++ b/cassettes/v2/Apps_1406737069/Get-App-returns-Not-Found-response_396337923/frozen.json @@ -1 +1 @@ -"2024-12-20T20:39:21.762Z" +"2024-12-10T19:57:11.612Z" diff --git a/cassettes/v2/Apps_1406737069/Get-App-returns-Not-Found-response_396337923/recording.har b/cassettes/v2/Apps_1406737069/Get-App-returns-Not-Found-response_396337923/recording.har index 9945701f17e0..0d8819322686 100644 --- a/cassettes/v2/Apps_1406737069/Get-App-returns-Not-Found-response_396337923/recording.har +++ b/cassettes/v2/Apps_1406737069/Get-App-returns-Not-Found-response_396337923/recording.har @@ -47,8 +47,8 @@ "status": 404, "statusText": "Not Found" }, - "startedDateTime": "2024-12-20T20:39:21.764Z", - "time": 98 + "startedDateTime": "2024-12-10T19:57:11.615Z", + "time": 121 } ], "pages": [], diff --git a/cassettes/v2/Apps_1406737069/Get-App-returns-OK-response_2570582586/frozen.json b/cassettes/v2/Apps_1406737069/Get-App-returns-OK-response_2570582586/frozen.json index d4cb82346539..689792597277 100644 --- a/cassettes/v2/Apps_1406737069/Get-App-returns-OK-response_2570582586/frozen.json +++ b/cassettes/v2/Apps_1406737069/Get-App-returns-OK-response_2570582586/frozen.json @@ -1 +1 @@ -"2024-12-20T20:39:21.868Z" +"2024-12-12T20:29:25.770Z" diff --git a/cassettes/v2/Apps_1406737069/Get-App-returns-OK-response_2570582586/recording.har b/cassettes/v2/Apps_1406737069/Get-App-returns-OK-response_2570582586/recording.har index 606695a0a6d0..ec16ed176d94 100644 --- a/cassettes/v2/Apps_1406737069/Get-App-returns-OK-response_2570582586/recording.har +++ b/cassettes/v2/Apps_1406737069/Get-App-returns-OK-response_2570582586/recording.har @@ -26,7 +26,7 @@ "value": "application/json" } ], - "headersSize": 560, + "headersSize": 559, "httpVersion": "HTTP/1.1", "method": "POST", "postData": { @@ -42,7 +42,7 @@ "content": { "mimeType": "application/vnd.api+json", "size": 78, - "text": "{\"data\":{\"id\":\"e91c5ea9-5827-4008-b1e6-026d71f5c005\",\"type\":\"appDefinitions\"}}" + "text": "{\"data\":{\"id\":\"4937a273-31f5-4375-a9cf-b71eeb92f89c\",\"type\":\"appDefinitions\"}}" }, "cookies": [], "headers": [ @@ -57,11 +57,11 @@ "status": 201, "statusText": "Created" }, - "startedDateTime": "2024-12-20T20:39:21.869Z", - "time": 197 + "startedDateTime": "2024-12-12T20:29:25.772Z", + "time": 191 }, { - "_id": "6bad07d8cc1b219d8950c611208ea560", + "_id": "47b6aadd196951f27639c8987e412dfd", "_order": 0, "cache": {}, "request": { @@ -74,18 +74,18 @@ "value": "application/json" } ], - "headersSize": 540, + "headersSize": 539, "httpVersion": "HTTP/1.1", "method": "GET", "queryString": [], - "url": "https://api.datadoghq.com/api/v2/app-builder/apps/e91c5ea9-5827-4008-b1e6-026d71f5c005" + "url": "https://api.datadoghq.com/api/v2/app-builder/apps/4937a273-31f5-4375-a9cf-b71eeb92f89c" }, "response": { - "bodySize": 1003, + "bodySize": 1014, "content": { "mimeType": "application/vnd.api+json", - "size": 1003, - "text": "{\"data\":{\"id\":\"e91c5ea9-5827-4008-b1e6-026d71f5c005\",\"type\":\"appDefinitions\",\"attributes\":{\"components\":[{\"events\":[],\"name\":\"grid0\",\"properties\":{\"children\":[{\"events\":[],\"name\":\"gridCell0\",\"properties\":{\"children\":[{\"events\":[],\"name\":\"calloutValue0\",\"properties\":{\"isDisabled\":false,\"isLoading\":false,\"isVisible\":true,\"label\":\"CPU Usage\",\"size\":\"sm\",\"style\":\"vivid_yellow\",\"unit\":\"kB\",\"value\":\"42\"},\"type\":\"calloutValue\"}],\"isVisible\":\"true\",\"layout\":{\"default\":{\"height\":8,\"width\":2,\"x\":0,\"y\":0}}},\"type\":\"gridCell\"}]},\"type\":\"grid\"}],\"description\":\"This is a simple example app\",\"embeddedQueries\":[],\"favorite\":false,\"name\":\"Example App\",\"rootInstanceName\":\"grid0\",\"selfService\":false,\"tags\":[]},\"meta\":{\"org_id\":1107852,\"user_id\":15479137,\"user_uuid\":\"b3f98453-b289-11ef-a4e9-d6d283f92d91\",\"user_name\":\"oliver.li@datadoghq.com\",\"version\":1,\"updated_since_deployment\":false,\"created_at\":\"2024-12-20T20:39:21.945448Z\",\"updated_at\":\"2024-12-20T20:39:21.945448Z\",\"deleted_at\":\"0001-01-01T00:00:00Z\"}}}" + "size": 1014, + "text": "{\"data\":{\"id\":\"4937a273-31f5-4375-a9cf-b71eeb92f89c\",\"type\":\"appDefinitions\",\"attributes\":{\"components\":[{\"events\":[],\"name\":\"grid0\",\"properties\":{\"children\":[{\"events\":[],\"name\":\"gridCell0\",\"properties\":{\"children\":[{\"events\":[],\"name\":\"calloutValue0\",\"properties\":{\"isDisabled\":false,\"isLoading\":false,\"isVisible\":true,\"label\":\"CPU Usage\",\"size\":\"sm\",\"style\":\"vivid_yellow\",\"unit\":\"kB\",\"value\":\"42\"},\"type\":\"calloutValue\"}],\"isVisible\":\"true\",\"layout\":{\"default\":{\"height\":8,\"width\":2,\"x\":0,\"y\":0}}},\"type\":\"gridCell\"}]},\"type\":\"grid\"}],\"description\":\"This is a simple example app\",\"embeddedQueries\":[],\"favorite\":false,\"name\":\"Example App\",\"rootInstanceName\":\"grid0\",\"selfService\":false,\"tags\":[]},\"meta\":{\"org_id\":321813,\"user_id\":2320499,\"user_uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"user_name\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"version\":1,\"updated_since_deployment\":false,\"created_at\":\"2024-12-12T20:29:25.869968Z\",\"updated_at\":\"2024-12-12T20:29:25.869968Z\",\"deleted_at\":\"0001-01-01T00:00:00Z\"}}}" }, "cookies": [], "headers": [ @@ -100,11 +100,11 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-12-20T20:39:22.068Z", - "time": 155 + "startedDateTime": "2024-12-12T20:29:25.967Z", + "time": 150 }, { - "_id": "b4ff7a4862c40cc0c82805fcc36aeeff", + "_id": "128fd55e6a038c7e57aab18f757d86c7", "_order": 0, "cache": {}, "request": { @@ -117,18 +117,18 @@ "value": "application/json" } ], - "headersSize": 546, + "headersSize": 545, "httpVersion": "HTTP/1.1", "method": "DELETE", "queryString": [], - "url": "https://api.datadoghq.com/api/v2/app-builder/apps/e91c5ea9-5827-4008-b1e6-026d71f5c005" + "url": "https://api.datadoghq.com/api/v2/app-builder/apps/4937a273-31f5-4375-a9cf-b71eeb92f89c" }, "response": { "bodySize": 78, "content": { "mimeType": "application/vnd.api+json", "size": 78, - "text": "{\"data\":{\"id\":\"e91c5ea9-5827-4008-b1e6-026d71f5c005\",\"type\":\"appDefinitions\"}}" + "text": "{\"data\":{\"id\":\"4937a273-31f5-4375-a9cf-b71eeb92f89c\",\"type\":\"appDefinitions\"}}" }, "cookies": [], "headers": [ @@ -143,8 +143,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-12-20T20:39:22.228Z", - "time": 183 + "startedDateTime": "2024-12-12T20:29:26.122Z", + "time": 221 } ], "pages": [], diff --git a/cassettes/v2/Apps_1406737069/List-Apps-returns-OK-response_4277086665/frozen.json b/cassettes/v2/Apps_1406737069/List-Apps-returns-OK-response_4277086665/frozen.json index ff6c131f1061..fc671cf829c1 100644 --- a/cassettes/v2/Apps_1406737069/List-Apps-returns-OK-response_4277086665/frozen.json +++ b/cassettes/v2/Apps_1406737069/List-Apps-returns-OK-response_4277086665/frozen.json @@ -1 +1 @@ -"2024-12-20T20:39:22.419Z" +"2024-12-10T19:57:12.227Z" diff --git a/cassettes/v2/Apps_1406737069/List-Apps-returns-OK-response_4277086665/recording.har b/cassettes/v2/Apps_1406737069/List-Apps-returns-OK-response_4277086665/recording.har index 9b02a6c29489..2a4a2b4f4349 100644 --- a/cassettes/v2/Apps_1406737069/List-Apps-returns-OK-response_4277086665/recording.har +++ b/cassettes/v2/Apps_1406737069/List-Apps-returns-OK-response_4277086665/recording.har @@ -28,11 +28,11 @@ "url": "https://api.datadoghq.com/api/v2/app-builder/apps" }, "response": { - "bodySize": 1060, + "bodySize": 558, "content": { "mimeType": "application/vnd.api+json", - "size": 1060, - "text": "{\"data\":[{\"id\":\"0cc51f70-6f90-406e-880b-e2fac88e823a\",\"type\":\"appDefinitions\",\"attributes\":{\"description\":\"\",\"favorite\":false,\"name\":\"[synthetics] app name 0123456789\",\"selfService\":false,\"tags\":[]},\"meta\":{\"org_id\":1107852,\"user_id\":7571471,\"user_uuid\":\"01347f51-3fcd-11ef-95dd-a65df5ee2843\",\"user_name\":\"01347f51-3fcd-11ef-95dd-a65df5ee2843\",\"version\":0,\"updated_since_deployment\":false,\"created_at\":\"2024-12-18T11:48:55.89363Z\",\"updated_at\":\"2024-12-18T11:48:55.89363Z\",\"deleted_at\":\"0001-01-01T00:00:00Z\"}},{\"id\":\"d595693a-473d-4671-9da3-fce89e3a5c5d\",\"type\":\"appDefinitions\",\"attributes\":{\"description\":\"\",\"favorite\":false,\"name\":\"Max's App Fri, Jul 12, 11:10:35 am\",\"selfService\":false,\"tags\":[]},\"meta\":{\"org_id\":1107852,\"user_id\":7571362,\"user_uuid\":\"3114f3a0-3fc9-11ef-acbe-a6def6551924\",\"user_name\":\"max.gale@datadoghq.com\",\"version\":0,\"updated_since_deployment\":false,\"created_at\":\"2024-07-12T15:10:48.690305Z\",\"updated_at\":\"2024-07-12T15:10:48.690305Z\",\"deleted_at\":\"0001-01-01T00:00:00Z\"}}],\"meta\":{\"page\":{\"totalCount\":2,\"totalFilteredCount\":2}}}" + "size": 558, + "text": "{\"data\":[{\"id\":\"d595693a-473d-4671-9da3-fce89e3a5c5d\",\"type\":\"appDefinitions\",\"attributes\":{\"description\":\"\",\"favorite\":false,\"name\":\"Max's App Fri, Jul 12, 11:10:35 am\",\"selfService\":false,\"tags\":[]},\"meta\":{\"org_id\":1107852,\"user_id\":7571362,\"user_uuid\":\"3114f3a0-3fc9-11ef-acbe-a6def6551924\",\"user_name\":\"max.gale@datadoghq.com\",\"version\":0,\"updated_since_deployment\":false,\"created_at\":\"2024-07-12T15:10:48.690305Z\",\"updated_at\":\"2024-07-12T15:10:48.690305Z\",\"deleted_at\":\"0001-01-01T00:00:00Z\"}}],\"meta\":{\"page\":{\"totalCount\":1,\"totalFilteredCount\":1}}}" }, "cookies": [], "headers": [ @@ -41,14 +41,14 @@ "value": "application/vnd.api+json" } ], - "headersSize": 657, + "headersSize": 656, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-12-20T20:39:22.422Z", - "time": 118 + "startedDateTime": "2024-12-10T19:57:12.228Z", + "time": 114 } ], "pages": [], diff --git a/cassettes/v2/Apps_1406737069/Update-App-returns-Bad-Request-response_1790264197/frozen.json b/cassettes/v2/Apps_1406737069/Update-App-returns-Bad-Request-response_1790264197/frozen.json index e89c68547ecf..144fe1f6bb05 100644 --- a/cassettes/v2/Apps_1406737069/Update-App-returns-Bad-Request-response_1790264197/frozen.json +++ b/cassettes/v2/Apps_1406737069/Update-App-returns-Bad-Request-response_1790264197/frozen.json @@ -1 +1 @@ -"2024-12-20T20:39:22.549Z" +"2024-12-12T20:29:26.349Z" diff --git a/cassettes/v2/Apps_1406737069/Update-App-returns-Bad-Request-response_1790264197/recording.har b/cassettes/v2/Apps_1406737069/Update-App-returns-Bad-Request-response_1790264197/recording.har index 173280ec0299..d5d555572d87 100644 --- a/cassettes/v2/Apps_1406737069/Update-App-returns-Bad-Request-response_1790264197/recording.har +++ b/cassettes/v2/Apps_1406737069/Update-App-returns-Bad-Request-response_1790264197/recording.har @@ -42,7 +42,7 @@ "content": { "mimeType": "application/vnd.api+json", "size": 78, - "text": "{\"data\":{\"id\":\"2eb79081-77f2-4082-93d5-fbb4d2291dc7\",\"type\":\"appDefinitions\"}}" + "text": "{\"data\":{\"id\":\"9d2ee93b-6ac5-4b0e-abd8-829916f2365d\",\"type\":\"appDefinitions\"}}" }, "cookies": [], "headers": [ @@ -57,11 +57,11 @@ "status": 201, "statusText": "Created" }, - "startedDateTime": "2024-12-20T20:39:22.554Z", - "time": 183 + "startedDateTime": "2024-12-12T20:29:26.351Z", + "time": 260 }, { - "_id": "66dd124a225f4a1b98f42f02c61653cb", + "_id": "fcc40ca7a9d47e0558cdc9381dd2b622", "_order": 0, "cache": {}, "request": { @@ -85,10 +85,10 @@ "postData": { "mimeType": "application/json", "params": [], - "text": "{\"data\":{\"attributes\":{\"rootInstanceName\":\"\"},\"id\":\"2eb79081-77f2-4082-93d5-fbb4d2291dc7\",\"type\":\"appDefinitions\"}}" + "text": "{\"data\":{\"attributes\":{\"rootInstanceName\":\"\"},\"id\":\"9d2ee93b-6ac5-4b0e-abd8-829916f2365d\",\"type\":\"appDefinitions\"}}" }, "queryString": [], - "url": "https://api.datadoghq.com/api/v2/app-builder/apps/2eb79081-77f2-4082-93d5-fbb4d2291dc7" + "url": "https://api.datadoghq.com/api/v2/app-builder/apps/9d2ee93b-6ac5-4b0e-abd8-829916f2365d" }, "response": { "bodySize": 105, @@ -110,11 +110,11 @@ "status": 400, "statusText": "Bad Request" }, - "startedDateTime": "2024-12-20T20:39:22.742Z", - "time": 96 + "startedDateTime": "2024-12-12T20:29:26.615Z", + "time": 125 }, { - "_id": "dae6f0fa3f61dba8a0f6d8e7010ebe51", + "_id": "7e8360ae24a933c78f13b6753728e230", "_order": 0, "cache": {}, "request": { @@ -131,14 +131,14 @@ "httpVersion": "HTTP/1.1", "method": "DELETE", "queryString": [], - "url": "https://api.datadoghq.com/api/v2/app-builder/apps/2eb79081-77f2-4082-93d5-fbb4d2291dc7" + "url": "https://api.datadoghq.com/api/v2/app-builder/apps/9d2ee93b-6ac5-4b0e-abd8-829916f2365d" }, "response": { "bodySize": 78, "content": { "mimeType": "application/vnd.api+json", "size": 78, - "text": "{\"data\":{\"id\":\"2eb79081-77f2-4082-93d5-fbb4d2291dc7\",\"type\":\"appDefinitions\"}}" + "text": "{\"data\":{\"id\":\"9d2ee93b-6ac5-4b0e-abd8-829916f2365d\",\"type\":\"appDefinitions\"}}" }, "cookies": [], "headers": [ @@ -153,8 +153,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-12-20T20:39:22.842Z", - "time": 205 + "startedDateTime": "2024-12-12T20:29:26.745Z", + "time": 237 } ], "pages": [], diff --git a/cassettes/v2/Apps_1406737069/Update-App-returns-OK-response_1935745305/frozen.json b/cassettes/v2/Apps_1406737069/Update-App-returns-OK-response_1935745305/frozen.json index f23f8e139fdb..1baaa06f93ae 100644 --- a/cassettes/v2/Apps_1406737069/Update-App-returns-OK-response_1935745305/frozen.json +++ b/cassettes/v2/Apps_1406737069/Update-App-returns-OK-response_1935745305/frozen.json @@ -1 +1 @@ -"2024-12-20T20:39:23.050Z" +"2024-12-12T20:29:26.986Z" diff --git a/cassettes/v2/Apps_1406737069/Update-App-returns-OK-response_1935745305/recording.har b/cassettes/v2/Apps_1406737069/Update-App-returns-OK-response_1935745305/recording.har index 699d9d070d7b..537bf8c7fb2e 100644 --- a/cassettes/v2/Apps_1406737069/Update-App-returns-OK-response_1935745305/recording.har +++ b/cassettes/v2/Apps_1406737069/Update-App-returns-OK-response_1935745305/recording.har @@ -42,7 +42,7 @@ "content": { "mimeType": "application/vnd.api+json", "size": 78, - "text": "{\"data\":{\"id\":\"22653158-3691-4a09-bbd9-f4197f14dd0c\",\"type\":\"appDefinitions\"}}" + "text": "{\"data\":{\"id\":\"5a5e6785-d3f8-41bf-9d5d-95a179362e02\",\"type\":\"appDefinitions\"}}" }, "cookies": [], "headers": [ @@ -57,11 +57,11 @@ "status": 201, "statusText": "Created" }, - "startedDateTime": "2024-12-20T20:39:23.051Z", - "time": 156 + "startedDateTime": "2024-12-12T20:29:27.003Z", + "time": 265 }, { - "_id": "55df5978eb09568ba45ba8be9a1f9733", + "_id": "1a396fb9a6d0f4fcb44a5c7599c23cb7", "_order": 0, "cache": {}, "request": { @@ -79,23 +79,23 @@ "value": "application/json" } ], - "headersSize": 598, + "headersSize": 597, "httpVersion": "HTTP/1.1", "method": "PATCH", "postData": { "mimeType": "application/json", "params": [], - "text": "{\"data\":{\"attributes\":{\"name\":\"Updated Name\",\"rootInstanceName\":\"grid0\"},\"id\":\"22653158-3691-4a09-bbd9-f4197f14dd0c\",\"type\":\"appDefinitions\"}}" + "text": "{\"data\":{\"attributes\":{\"name\":\"Updated Name\",\"rootInstanceName\":\"grid0\"},\"id\":\"5a5e6785-d3f8-41bf-9d5d-95a179362e02\",\"type\":\"appDefinitions\"}}" }, "queryString": [], - "url": "https://api.datadoghq.com/api/v2/app-builder/apps/22653158-3691-4a09-bbd9-f4197f14dd0c" + "url": "https://api.datadoghq.com/api/v2/app-builder/apps/5a5e6785-d3f8-41bf-9d5d-95a179362e02" }, "response": { - "bodySize": 1004, + "bodySize": 1015, "content": { "mimeType": "application/vnd.api+json", - "size": 1004, - "text": "{\"data\":{\"id\":\"22653158-3691-4a09-bbd9-f4197f14dd0c\",\"type\":\"appDefinitions\",\"attributes\":{\"components\":[{\"events\":[],\"name\":\"grid0\",\"properties\":{\"children\":[{\"events\":[],\"name\":\"gridCell0\",\"properties\":{\"children\":[{\"events\":[],\"name\":\"calloutValue0\",\"properties\":{\"isDisabled\":false,\"isLoading\":false,\"isVisible\":true,\"label\":\"CPU Usage\",\"size\":\"sm\",\"style\":\"vivid_yellow\",\"unit\":\"kB\",\"value\":\"42\"},\"type\":\"calloutValue\"}],\"isVisible\":\"true\",\"layout\":{\"default\":{\"height\":8,\"width\":2,\"x\":0,\"y\":0}}},\"type\":\"gridCell\"}]},\"type\":\"grid\"}],\"description\":\"This is a simple example app\",\"embeddedQueries\":[],\"favorite\":false,\"name\":\"Updated Name\",\"rootInstanceName\":\"grid0\",\"selfService\":false,\"tags\":[]},\"meta\":{\"org_id\":1107852,\"user_id\":15479137,\"user_uuid\":\"b3f98453-b289-11ef-a4e9-d6d283f92d91\",\"user_name\":\"oliver.li@datadoghq.com\",\"version\":2,\"updated_since_deployment\":false,\"created_at\":\"2024-12-20T20:39:23.117622Z\",\"updated_at\":\"2024-12-20T20:39:23.317526Z\",\"deleted_at\":\"0001-01-01T00:00:00Z\"}}}" + "size": 1015, + "text": "{\"data\":{\"id\":\"5a5e6785-d3f8-41bf-9d5d-95a179362e02\",\"type\":\"appDefinitions\",\"attributes\":{\"components\":[{\"events\":[],\"name\":\"grid0\",\"properties\":{\"children\":[{\"events\":[],\"name\":\"gridCell0\",\"properties\":{\"children\":[{\"events\":[],\"name\":\"calloutValue0\",\"properties\":{\"isDisabled\":false,\"isLoading\":false,\"isVisible\":true,\"label\":\"CPU Usage\",\"size\":\"sm\",\"style\":\"vivid_yellow\",\"unit\":\"kB\",\"value\":\"42\"},\"type\":\"calloutValue\"}],\"isVisible\":\"true\",\"layout\":{\"default\":{\"height\":8,\"width\":2,\"x\":0,\"y\":0}}},\"type\":\"gridCell\"}]},\"type\":\"grid\"}],\"description\":\"This is a simple example app\",\"embeddedQueries\":[],\"favorite\":false,\"name\":\"Updated Name\",\"rootInstanceName\":\"grid0\",\"selfService\":false,\"tags\":[]},\"meta\":{\"org_id\":321813,\"user_id\":2320499,\"user_uuid\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"user_name\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"version\":2,\"updated_since_deployment\":false,\"created_at\":\"2024-12-12T20:29:27.115629Z\",\"updated_at\":\"2024-12-12T20:29:27.362767Z\",\"deleted_at\":\"0001-01-01T00:00:00Z\"}}}" }, "cookies": [], "headers": [ @@ -110,11 +110,11 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-12-20T20:39:23.213Z", - "time": 213 + "startedDateTime": "2024-12-12T20:29:27.272Z", + "time": 169 }, { - "_id": "74c992c67b0b26d27022368a5f40dd1d", + "_id": "f5f5b2ab46c55f9991c35b0f9cacb5bf", "_order": 0, "cache": {}, "request": { @@ -131,14 +131,14 @@ "httpVersion": "HTTP/1.1", "method": "DELETE", "queryString": [], - "url": "https://api.datadoghq.com/api/v2/app-builder/apps/22653158-3691-4a09-bbd9-f4197f14dd0c" + "url": "https://api.datadoghq.com/api/v2/app-builder/apps/5a5e6785-d3f8-41bf-9d5d-95a179362e02" }, "response": { "bodySize": 78, "content": { "mimeType": "application/vnd.api+json", "size": 78, - "text": "{\"data\":{\"id\":\"22653158-3691-4a09-bbd9-f4197f14dd0c\",\"type\":\"appDefinitions\"}}" + "text": "{\"data\":{\"id\":\"5a5e6785-d3f8-41bf-9d5d-95a179362e02\",\"type\":\"appDefinitions\"}}" }, "cookies": [], "headers": [ @@ -153,8 +153,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-12-20T20:39:23.433Z", - "time": 168 + "startedDateTime": "2024-12-12T20:29:27.446Z", + "time": 193 } ], "pages": [], diff --git a/examples/v2/apps/DeployApp.ts b/examples/v2/app-deployment/DeployApp.ts similarity index 83% rename from examples/v2/apps/DeployApp.ts rename to examples/v2/app-deployment/DeployApp.ts index a49cde967784..b1af4829456b 100644 --- a/examples/v2/apps/DeployApp.ts +++ b/examples/v2/app-deployment/DeployApp.ts @@ -6,12 +6,12 @@ import { client, v2 } from "@datadog/datadog-api-client"; const configuration = client.createConfiguration(); configuration.unstableOperations["v2.deployApp"] = true; -const apiInstance = new v2.AppsApi(configuration); +const apiInstance = new v2.AppDeploymentApi(configuration); // there is a valid "app" in the system const APP_DATA_ID = process.env.APP_DATA_ID as string; -const params: v2.AppsApiDeployAppRequest = { +const params: v2.AppDeploymentApiDeployAppRequest = { appId: APP_DATA_ID, }; diff --git a/examples/v2/apps/DisableApp.ts b/examples/v2/app-deployment/DisableApp.ts similarity index 83% rename from examples/v2/apps/DisableApp.ts rename to examples/v2/app-deployment/DisableApp.ts index 66bbd480ea6a..e472e533fd6a 100644 --- a/examples/v2/apps/DisableApp.ts +++ b/examples/v2/app-deployment/DisableApp.ts @@ -6,12 +6,12 @@ import { client, v2 } from "@datadog/datadog-api-client"; const configuration = client.createConfiguration(); configuration.unstableOperations["v2.disableApp"] = true; -const apiInstance = new v2.AppsApi(configuration); +const apiInstance = new v2.AppDeploymentApi(configuration); // there is a valid "app" in the system const APP_DATA_ID = process.env.APP_DATA_ID as string; -const params: v2.AppsApiDisableAppRequest = { +const params: v2.AppDeploymentApiDisableAppRequest = { appId: APP_DATA_ID, }; diff --git a/features/support/scenarios_model_mapping.ts b/features/support/scenarios_model_mapping.ts index 8f8294e34508..eae8d6f079f3 100644 --- a/features/support/scenarios_model_mapping.ts +++ b/features/support/scenarios_model_mapping.ts @@ -2661,7 +2661,7 @@ export const ScenariosModelMappings: {[key: string]: {[key: string]: any}} = { }, "filterUserUuid": { "type": "string", - "format": "uuid", + "format": "", }, "filterName": { "type": "string", @@ -2683,10 +2683,6 @@ export const ScenariosModelMappings: {[key: string]: {[key: string]: any}} = { "type": "boolean", "format": "", }, - "filterSelfService": { - "type": "boolean", - "format": "", - }, "sort": { "type": "Array", "format": "", @@ -2712,10 +2708,6 @@ export const ScenariosModelMappings: {[key: string]: {[key: string]: any}} = { "type": "string", "format": "", }, - "version": { - "type": "string", - "format": "", - }, "operationResponseType": "GetAppResponse", }, "v2.UpdateApp": { diff --git a/features/v2/app_deployment.feature b/features/v2/app_deployment.feature new file mode 100644 index 000000000000..b76bc1d8841b --- /dev/null +++ b/features/v2/app_deployment.feature @@ -0,0 +1,58 @@ +@endpoint(app-deployment) @endpoint(app-deployment-v2) +Feature: App Deployment + Deploy and disable apps in App Builder. + + Background: + Given a valid "apiKeyAuth" key in the system + And a valid "appKeyAuth" key in the system + And an instance of "AppDeployment" API + + @skip-typescript @team:DataDog/app-builder-backend + Scenario: Deploy App returns "Bad Request" response + Given operation "DeployApp" enabled + And new "DeployApp" request + And request contains "app_id" parameter with value "invalid-uuid" + When the request is sent + Then the response status is 400 Bad Request + + @skip-typescript @team:DataDog/app-builder-backend + Scenario: Deploy App returns "Created" response + Given operation "DeployApp" enabled + And new "DeployApp" request + And there is a valid "app" in the system + And request contains "app_id" parameter from "app.data.id" + When the request is sent + Then the response status is 201 Created + + @skip-typescript @team:DataDog/app-builder-backend + Scenario: Deploy App returns "Not Found" response + Given operation "DeployApp" enabled + And new "DeployApp" request + And request contains "app_id" parameter with value "7addb29b-f935-472c-ae79-d1963979a23e" + When the request is sent + Then the response status is 404 Not Found + + @skip-typescript @team:DataDog/app-builder-backend + Scenario: Disable App returns "Bad Request" response + Given operation "DisableApp" enabled + And new "DisableApp" request + And request contains "app_id" parameter with value "invalid-uuid" + When the request is sent + Then the response status is 400 Bad Request + + @skip-typescript @team:DataDog/app-builder-backend + Scenario: Disable App returns "Not Found" response + Given operation "DisableApp" enabled + And new "DisableApp" request + And request contains "app_id" parameter with value "7addb29b-f935-472c-ae79-d1963979a23e" + When the request is sent + Then the response status is 404 Not Found + + @skip-typescript @team:DataDog/app-builder-backend + Scenario: Disable App returns "OK" response + Given operation "DisableApp" enabled + And new "DisableApp" request + And there is a valid "app" in the system + And request contains "app_id" parameter from "app.data.id" + When the request is sent + Then the response status is 200 OK diff --git a/features/v2/apps.feature b/features/v2/apps.feature index 1bed411c3113..531cc3826430 100644 --- a/features/v2/apps.feature +++ b/features/v2/apps.feature @@ -1,9 +1,6 @@ @endpoint(apps) @endpoint(apps-v2) Feature: Apps - Datadog App Builder provides a low-code solution to rapidly develop and - integrate secure, customized applications into your monitoring stack that - are built to accelerate remediation at scale. These API endpoints allow - you to create, read, update, delete, and publish apps. + Create, read, update, and delete apps in App Builder. Background: Given a valid "apiKeyAuth" key in the system @@ -91,56 +88,6 @@ Feature: Apps And the response "data" has length 1 And the response "data[0].id" has the same value as "app.data.id" - @skip-typescript @team:DataDog/app-builder-backend - Scenario: Deploy App returns "Bad Request" response - Given operation "DeployApp" enabled - And new "DeployApp" request - And request contains "app_id" parameter with value "invalid-uuid" - When the request is sent - Then the response status is 400 Bad Request - - @skip-typescript @team:DataDog/app-builder-backend - Scenario: Deploy App returns "Created" response - Given operation "DeployApp" enabled - And new "DeployApp" request - And there is a valid "app" in the system - And request contains "app_id" parameter from "app.data.id" - When the request is sent - Then the response status is 201 Created - - @skip-typescript @team:DataDog/app-builder-backend - Scenario: Deploy App returns "Not Found" response - Given operation "DeployApp" enabled - And new "DeployApp" request - And request contains "app_id" parameter with value "7addb29b-f935-472c-ae79-d1963979a23e" - When the request is sent - Then the response status is 404 Not Found - - @skip-typescript @team:DataDog/app-builder-backend - Scenario: Disable App returns "Bad Request" response - Given operation "DisableApp" enabled - And new "DisableApp" request - And request contains "app_id" parameter with value "invalid-uuid" - When the request is sent - Then the response status is 400 Bad Request - - @skip-typescript @team:DataDog/app-builder-backend - Scenario: Disable App returns "Not Found" response - Given operation "DisableApp" enabled - And new "DisableApp" request - And request contains "app_id" parameter with value "7addb29b-f935-472c-ae79-d1963979a23e" - When the request is sent - Then the response status is 404 Not Found - - @skip-typescript @team:DataDog/app-builder-backend - Scenario: Disable App returns "OK" response - Given operation "DisableApp" enabled - And new "DisableApp" request - And there is a valid "app" in the system - And request contains "app_id" parameter from "app.data.id" - When the request is sent - Then the response status is 200 OK - @skip-typescript @team:DataDog/app-builder-backend Scenario: Get App returns "Bad Request" response Given operation "GetApp" enabled @@ -169,11 +116,11 @@ Feature: Apps And the response "data.type" is equal to "appDefinitions" @generated @skip @team:DataDog/app-builder-backend - Scenario: List Apps returns "Bad Request" response + Scenario: List Apps returns "Bad Request, e.g. invalid sort parameter" response Given operation "ListApps" enabled And new "ListApps" request When the request is sent - Then the response status is 400 Bad Request + Then the response status is 400 Bad Request, e.g. invalid sort parameter @skip-typescript @team:DataDog/app-builder-backend Scenario: List Apps returns "OK" response diff --git a/features/v2/given.json b/features/v2/given.json index 3c9e4279380a..29503a6ae7c5 100644 --- a/features/v2/given.json +++ b/features/v2/given.json @@ -51,7 +51,7 @@ "parameters": [ { "name": "body", - "value": "{\"data\": {\"attributes\": {\"components\": [{\"events\": [], \"name\": \"grid0\", \"properties\": {\"children\": [{\"events\": [], \"name\": \"gridCell0\", \"properties\": {\"children\": [{\"events\": [], \"name\": \"calloutValue0\", \"properties\": {\"isDisabled\": false, \"isLoading\": false, \"isVisible\": true, \"label\": \"CPU Usage\", \"size\": \"sm\", \"style\": \"vivid_yellow\", \"unit\": \"kB\", \"value\": \"42\"}, \"type\": \"calloutValue\"}], \"isVisible\": \"true\", \"layout\": {\"default\": {\"height\": 8, \"width\": 2, \"x\": 0, \"y\": 0}}}, \"type\": \"gridCell\"}]}, \"type\": \"grid\"}], \"description\": \"This is a simple example app\", \"embeddedQueries\": [], \"name\": \"Example App\", \"rootInstanceName\": \"grid0\"}, \"type\": \"appDefinitions\"}}" + "value": "{\"data\": {\"attributes\": {\"components\": [{\"events\": [], \"name\": \"grid0\", \"properties\": {\"children\": [{\"events\": [], \"name\": \"gridCell0\", \"properties\": {\"children\": [{\"events\": [], \"name\": \"calloutValue0\", \"properties\": {\"isVisible\": true, \"isDisabled\": false, \"isLoading\": false, \"label\": \"CPU Usage\", \"size\": \"sm\", \"style\": \"vivid_yellow\", \"unit\": \"kB\", \"value\": \"42\"}, \"type\": \"calloutValue\"}], \"isVisible\": \"true\", \"layout\": {\"default\": {\"height\": 8, \"width\": 2, \"x\": 0, \"y\": 0}}}, \"type\": \"gridCell\"}]}, \"type\": \"grid\"}], \"description\": \"This is a simple example app\", \"embeddedQueries\": [], \"name\": \"Example App\", \"rootInstanceName\": \"grid0\"}, \"type\": \"appDefinitions\"}}" } ], "step": "there is a valid \"app\" in the system", diff --git a/features/v2/undo.json b/features/v2/undo.json index d6c6e9de87c6..0ba8da298f8b 100644 --- a/features/v2/undo.json +++ b/features/v2/undo.json @@ -203,13 +203,13 @@ } }, "DisableApp": { - "tag": "Apps", + "tag": "App Deployment", "undo": { "type": "idempotent" } }, "DeployApp": { - "tag": "Apps", + "tag": "App Deployment", "undo": { "type": "idempotent" } diff --git a/packages/datadog-api-client-common/configuration.ts b/packages/datadog-api-client-common/configuration.ts index 816d319664d6..b9c86b8ee1f0 100644 --- a/packages/datadog-api-client-common/configuration.ts +++ b/packages/datadog-api-client-common/configuration.ts @@ -230,11 +230,11 @@ export function createConfiguration( "v2.createApp": false, "v2.deleteApp": false, "v2.deleteApps": false, - "v2.deployApp": false, - "v2.disableApp": false, "v2.getApp": false, "v2.listApps": false, "v2.updateApp": false, + "v2.deployApp": false, + "v2.disableApp": false, "v2.getActiveBillingDimensions": false, "v2.getBillingDimensionMapping": false, "v2.getMonthlyCostAttribution": false, diff --git a/packages/datadog-api-client-v2/apis/AppDeploymentApi.ts b/packages/datadog-api-client-v2/apis/AppDeploymentApi.ts new file mode 100644 index 000000000000..ef87c3dfb58c --- /dev/null +++ b/packages/datadog-api-client-v2/apis/AppDeploymentApi.ts @@ -0,0 +1,340 @@ +import { + BaseAPIRequestFactory, + RequiredError, +} from "../../datadog-api-client-common/baseapi"; +import { + Configuration, + applySecurityAuthentication, +} from "../../datadog-api-client-common/configuration"; +import { + RequestContext, + HttpMethod, + ResponseContext, +} from "../../datadog-api-client-common/http/http"; + +import { logger } from "../../../logger"; +import { ObjectSerializer } from "../models/ObjectSerializer"; +import { ApiException } from "../../datadog-api-client-common/exception"; + +import { APIErrorResponse } from "../models/APIErrorResponse"; +import { AppBuilderError } from "../models/AppBuilderError"; +import { DeployAppResponse } from "../models/DeployAppResponse"; +import { DisableAppResponse } from "../models/DisableAppResponse"; + +export class AppDeploymentApiRequestFactory extends BaseAPIRequestFactory { + public async deployApp( + appId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + logger.warn("Using unstable operation 'deployApp'"); + if (!_config.unstableOperations["v2.deployApp"]) { + throw new Error("Unstable operation 'deployApp' is disabled"); + } + + // verify required parameter 'appId' is not null or undefined + if (appId === null || appId === undefined) { + throw new RequiredError("appId", "deployApp"); + } + + // Path Params + const localVarPath = "/api/v2/app-builder/apps/{app_id}/deployment".replace( + "{app_id}", + encodeURIComponent(String(appId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.AppDeploymentApi.deployApp") + .makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + ]); + + return requestContext; + } + + public async disableApp( + appId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + logger.warn("Using unstable operation 'disableApp'"); + if (!_config.unstableOperations["v2.disableApp"]) { + throw new Error("Unstable operation 'disableApp' is disabled"); + } + + // verify required parameter 'appId' is not null or undefined + if (appId === null || appId === undefined) { + throw new RequiredError("appId", "disableApp"); + } + + // Path Params + const localVarPath = "/api/v2/app-builder/apps/{app_id}/deployment".replace( + "{app_id}", + encodeURIComponent(String(appId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.AppDeploymentApi.disableApp") + .makeRequestContext(localVarPath, HttpMethod.DELETE); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + ]); + + return requestContext; + } +} + +export class AppDeploymentApiResponseProcessor { + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to deployApp + * @throws ApiException if the response code was not in [200, 299] + */ + public async deployApp( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 201) { + const body: DeployAppResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "DeployAppResponse" + ) as DeployAppResponse; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: AppBuilderError; + try { + body = ObjectSerializer.deserialize( + bodyText, + "AppBuilderError" + ) as AppBuilderError; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: DeployAppResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "DeployAppResponse", + "" + ) as DeployAppResponse; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to disableApp + * @throws ApiException if the response code was not in [200, 299] + */ + public async disableApp( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: DisableAppResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "DisableAppResponse" + ) as DisableAppResponse; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: AppBuilderError; + try { + body = ObjectSerializer.deserialize( + bodyText, + "AppBuilderError" + ) as AppBuilderError; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: DisableAppResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "DisableAppResponse", + "" + ) as DisableAppResponse; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } +} + +export interface AppDeploymentApiDeployAppRequest { + /** + * @type string + */ + appId: string; +} + +export interface AppDeploymentApiDisableAppRequest { + /** + * @type string + */ + appId: string; +} + +export class AppDeploymentApi { + private requestFactory: AppDeploymentApiRequestFactory; + private responseProcessor: AppDeploymentApiResponseProcessor; + private configuration: Configuration; + + public constructor( + configuration: Configuration, + requestFactory?: AppDeploymentApiRequestFactory, + responseProcessor?: AppDeploymentApiResponseProcessor + ) { + this.configuration = configuration; + this.requestFactory = + requestFactory || new AppDeploymentApiRequestFactory(configuration); + this.responseProcessor = + responseProcessor || new AppDeploymentApiResponseProcessor(); + } + + /** + * Deploy (publish) an app by ID + * @param param The request object + */ + public deployApp( + param: AppDeploymentApiDeployAppRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.deployApp( + param.appId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.deployApp(responseContext); + }); + }); + } + + /** + * Disable an app by ID + * @param param The request object + */ + public disableApp( + param: AppDeploymentApiDisableAppRequest, + options?: Configuration + ): Promise { + const requestContextPromise = this.requestFactory.disableApp( + param.appId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.disableApp(responseContext); + }); + }); + } +} diff --git a/packages/datadog-api-client-v2/apis/AppsApi.ts b/packages/datadog-api-client-v2/apis/AppsApi.ts index f5de93e81dfc..ba51fbfb30c4 100644 --- a/packages/datadog-api-client-v2/apis/AppsApi.ts +++ b/packages/datadog-api-client-v2/apis/AppsApi.ts @@ -17,16 +17,14 @@ import { ObjectSerializer } from "../models/ObjectSerializer"; import { ApiException } from "../../datadog-api-client-common/exception"; import { APIErrorResponse } from "../models/APIErrorResponse"; +import { AppBuilderError } from "../models/AppBuilderError"; import { AppsSortField } from "../models/AppsSortField"; import { CreateAppRequest } from "../models/CreateAppRequest"; import { CreateAppResponse } from "../models/CreateAppResponse"; import { DeleteAppResponse } from "../models/DeleteAppResponse"; import { DeleteAppsRequest } from "../models/DeleteAppsRequest"; import { DeleteAppsResponse } from "../models/DeleteAppsResponse"; -import { DeployAppResponse } from "../models/DeployAppResponse"; -import { DisableAppResponse } from "../models/DisableAppResponse"; import { GetAppResponse } from "../models/GetAppResponse"; -import { JSONAPIErrorResponse } from "../models/JSONAPIErrorResponse"; import { ListAppsResponse } from "../models/ListAppsResponse"; import { UpdateAppRequest } from "../models/UpdateAppRequest"; import { UpdateAppResponse } from "../models/UpdateAppResponse"; @@ -162,85 +160,8 @@ export class AppsApiRequestFactory extends BaseAPIRequestFactory { return requestContext; } - public async deployApp( - appId: string, - _options?: Configuration - ): Promise { - const _config = _options || this.configuration; - - logger.warn("Using unstable operation 'deployApp'"); - if (!_config.unstableOperations["v2.deployApp"]) { - throw new Error("Unstable operation 'deployApp' is disabled"); - } - - // verify required parameter 'appId' is not null or undefined - if (appId === null || appId === undefined) { - throw new RequiredError("appId", "deployApp"); - } - - // Path Params - const localVarPath = "/api/v2/app-builder/apps/{app_id}/deployment".replace( - "{app_id}", - encodeURIComponent(String(appId)) - ); - - // Make Request Context - const requestContext = _config - .getServer("v2.AppsApi.deployApp") - .makeRequestContext(localVarPath, HttpMethod.POST); - requestContext.setHeaderParam("Accept", "application/json"); - requestContext.setHttpConfig(_config.httpConfig); - - // Apply auth methods - applySecurityAuthentication(_config, requestContext, [ - "apiKeyAuth", - "appKeyAuth", - ]); - - return requestContext; - } - - public async disableApp( - appId: string, - _options?: Configuration - ): Promise { - const _config = _options || this.configuration; - - logger.warn("Using unstable operation 'disableApp'"); - if (!_config.unstableOperations["v2.disableApp"]) { - throw new Error("Unstable operation 'disableApp' is disabled"); - } - - // verify required parameter 'appId' is not null or undefined - if (appId === null || appId === undefined) { - throw new RequiredError("appId", "disableApp"); - } - - // Path Params - const localVarPath = "/api/v2/app-builder/apps/{app_id}/deployment".replace( - "{app_id}", - encodeURIComponent(String(appId)) - ); - - // Make Request Context - const requestContext = _config - .getServer("v2.AppsApi.disableApp") - .makeRequestContext(localVarPath, HttpMethod.DELETE); - requestContext.setHeaderParam("Accept", "application/json"); - requestContext.setHttpConfig(_config.httpConfig); - - // Apply auth methods - applySecurityAuthentication(_config, requestContext, [ - "apiKeyAuth", - "appKeyAuth", - ]); - - return requestContext; - } - public async getApp( appId: string, - version?: string, _options?: Configuration ): Promise { const _config = _options || this.configuration; @@ -268,15 +189,6 @@ export class AppsApiRequestFactory extends BaseAPIRequestFactory { requestContext.setHeaderParam("Accept", "application/json"); requestContext.setHttpConfig(_config.httpConfig); - // Query Params - if (version !== undefined) { - requestContext.setQueryParam( - "version", - ObjectSerializer.serialize(version, "string", ""), - "" - ); - } - // Apply auth methods applySecurityAuthentication(_config, requestContext, [ "apiKeyAuth", @@ -296,7 +208,6 @@ export class AppsApiRequestFactory extends BaseAPIRequestFactory { filterDeployed?: boolean, filterTags?: string, filterFavorite?: boolean, - filterSelfService?: boolean, sort?: Array, _options?: Configuration ): Promise { @@ -342,7 +253,7 @@ export class AppsApiRequestFactory extends BaseAPIRequestFactory { if (filterUserUuid !== undefined) { requestContext.setQueryParam( "filter[user_uuid]", - ObjectSerializer.serialize(filterUserUuid, "string", "uuid"), + ObjectSerializer.serialize(filterUserUuid, "string", ""), "" ); } @@ -381,13 +292,6 @@ export class AppsApiRequestFactory extends BaseAPIRequestFactory { "" ); } - if (filterSelfService !== undefined) { - requestContext.setQueryParam( - "filter[self_service]", - ObjectSerializer.serialize(filterSelfService, "boolean", ""), - "" - ); - } if (sort !== undefined) { requestContext.setQueryParam( "sort", @@ -487,23 +391,20 @@ export class AppsApiResponseProcessor { await response.body.text(), contentType ); - let body: JSONAPIErrorResponse; + let body: AppBuilderError; try { body = ObjectSerializer.deserialize( bodyText, - "JSONAPIErrorResponse" - ) as JSONAPIErrorResponse; + "AppBuilderError" + ) as AppBuilderError; } catch (error) { logger.debug(`Got error deserializing error: ${error}`); - throw new ApiException( + throw new ApiException( response.httpStatusCode, bodyText ); } - throw new ApiException( - response.httpStatusCode, - body - ); + throw new ApiException(response.httpStatusCode, body); } if (response.httpStatusCode === 429) { const bodyText = ObjectSerializer.parse( @@ -573,23 +474,20 @@ export class AppsApiResponseProcessor { await response.body.text(), contentType ); - let body: JSONAPIErrorResponse; + let body: AppBuilderError; try { body = ObjectSerializer.deserialize( bodyText, - "JSONAPIErrorResponse" - ) as JSONAPIErrorResponse; + "AppBuilderError" + ) as AppBuilderError; } catch (error) { logger.debug(`Got error deserializing error: ${error}`); - throw new ApiException( + throw new ApiException( response.httpStatusCode, bodyText ); } - throw new ApiException( - response.httpStatusCode, - body - ); + throw new ApiException(response.httpStatusCode, body); } if (response.httpStatusCode === 429) { const bodyText = ObjectSerializer.parse( @@ -658,23 +556,20 @@ export class AppsApiResponseProcessor { await response.body.text(), contentType ); - let body: JSONAPIErrorResponse; + let body: AppBuilderError; try { body = ObjectSerializer.deserialize( bodyText, - "JSONAPIErrorResponse" - ) as JSONAPIErrorResponse; + "AppBuilderError" + ) as AppBuilderError; } catch (error) { logger.debug(`Got error deserializing error: ${error}`); - throw new ApiException( + throw new ApiException( response.httpStatusCode, bodyText ); } - throw new ApiException( - response.httpStatusCode, - body - ); + throw new ApiException(response.httpStatusCode, body); } if (response.httpStatusCode === 429) { const bodyText = ObjectSerializer.parse( @@ -714,176 +609,6 @@ export class AppsApiResponseProcessor { ); } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to deployApp - * @throws ApiException if the response code was not in [200, 299] - */ - public async deployApp( - response: ResponseContext - ): Promise { - const contentType = ObjectSerializer.normalizeMediaType( - response.headers["content-type"] - ); - if (response.httpStatusCode === 201) { - const body: DeployAppResponse = ObjectSerializer.deserialize( - ObjectSerializer.parse(await response.body.text(), contentType), - "DeployAppResponse" - ) as DeployAppResponse; - return body; - } - if ( - response.httpStatusCode === 400 || - response.httpStatusCode === 403 || - response.httpStatusCode === 404 - ) { - const bodyText = ObjectSerializer.parse( - await response.body.text(), - contentType - ); - let body: JSONAPIErrorResponse; - try { - body = ObjectSerializer.deserialize( - bodyText, - "JSONAPIErrorResponse" - ) as JSONAPIErrorResponse; - } catch (error) { - logger.debug(`Got error deserializing error: ${error}`); - throw new ApiException( - response.httpStatusCode, - bodyText - ); - } - throw new ApiException( - response.httpStatusCode, - body - ); - } - if (response.httpStatusCode === 429) { - const bodyText = ObjectSerializer.parse( - await response.body.text(), - contentType - ); - let body: APIErrorResponse; - try { - body = ObjectSerializer.deserialize( - bodyText, - "APIErrorResponse" - ) as APIErrorResponse; - } catch (error) { - logger.debug(`Got error deserializing error: ${error}`); - throw new ApiException( - response.httpStatusCode, - bodyText - ); - } - throw new ApiException(response.httpStatusCode, body); - } - - // Work around for missing responses in specification, e.g. for petstore.yaml - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body: DeployAppResponse = ObjectSerializer.deserialize( - ObjectSerializer.parse(await response.body.text(), contentType), - "DeployAppResponse", - "" - ) as DeployAppResponse; - return body; - } - - const body = (await response.body.text()) || ""; - throw new ApiException( - response.httpStatusCode, - 'Unknown API Status Code!\nBody: "' + body + '"' - ); - } - - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to disableApp - * @throws ApiException if the response code was not in [200, 299] - */ - public async disableApp( - response: ResponseContext - ): Promise { - const contentType = ObjectSerializer.normalizeMediaType( - response.headers["content-type"] - ); - if (response.httpStatusCode === 200) { - const body: DisableAppResponse = ObjectSerializer.deserialize( - ObjectSerializer.parse(await response.body.text(), contentType), - "DisableAppResponse" - ) as DisableAppResponse; - return body; - } - if ( - response.httpStatusCode === 400 || - response.httpStatusCode === 403 || - response.httpStatusCode === 404 - ) { - const bodyText = ObjectSerializer.parse( - await response.body.text(), - contentType - ); - let body: JSONAPIErrorResponse; - try { - body = ObjectSerializer.deserialize( - bodyText, - "JSONAPIErrorResponse" - ) as JSONAPIErrorResponse; - } catch (error) { - logger.debug(`Got error deserializing error: ${error}`); - throw new ApiException( - response.httpStatusCode, - bodyText - ); - } - throw new ApiException( - response.httpStatusCode, - body - ); - } - if (response.httpStatusCode === 429) { - const bodyText = ObjectSerializer.parse( - await response.body.text(), - contentType - ); - let body: APIErrorResponse; - try { - body = ObjectSerializer.deserialize( - bodyText, - "APIErrorResponse" - ) as APIErrorResponse; - } catch (error) { - logger.debug(`Got error deserializing error: ${error}`); - throw new ApiException( - response.httpStatusCode, - bodyText - ); - } - throw new ApiException(response.httpStatusCode, body); - } - - // Work around for missing responses in specification, e.g. for petstore.yaml - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body: DisableAppResponse = ObjectSerializer.deserialize( - ObjectSerializer.parse(await response.body.text(), contentType), - "DisableAppResponse", - "" - ) as DisableAppResponse; - return body; - } - - const body = (await response.body.text()) || ""; - throw new ApiException( - response.httpStatusCode, - 'Unknown API Status Code!\nBody: "' + body + '"' - ); - } - /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -911,23 +636,20 @@ export class AppsApiResponseProcessor { await response.body.text(), contentType ); - let body: JSONAPIErrorResponse; + let body: AppBuilderError; try { body = ObjectSerializer.deserialize( bodyText, - "JSONAPIErrorResponse" - ) as JSONAPIErrorResponse; + "AppBuilderError" + ) as AppBuilderError; } catch (error) { logger.debug(`Got error deserializing error: ${error}`); - throw new ApiException( + throw new ApiException( response.httpStatusCode, bodyText ); } - throw new ApiException( - response.httpStatusCode, - body - ); + throw new ApiException(response.httpStatusCode, body); } if (response.httpStatusCode === 429) { const bodyText = ObjectSerializer.parse( @@ -990,23 +712,20 @@ export class AppsApiResponseProcessor { await response.body.text(), contentType ); - let body: JSONAPIErrorResponse; + let body: AppBuilderError; try { body = ObjectSerializer.deserialize( bodyText, - "JSONAPIErrorResponse" - ) as JSONAPIErrorResponse; + "AppBuilderError" + ) as AppBuilderError; } catch (error) { logger.debug(`Got error deserializing error: ${error}`); - throw new ApiException( + throw new ApiException( response.httpStatusCode, bodyText ); } - throw new ApiException( - response.httpStatusCode, - body - ); + throw new ApiException(response.httpStatusCode, body); } if (response.httpStatusCode === 429) { const bodyText = ObjectSerializer.parse( @@ -1071,23 +790,20 @@ export class AppsApiResponseProcessor { await response.body.text(), contentType ); - let body: JSONAPIErrorResponse; + let body: AppBuilderError; try { body = ObjectSerializer.deserialize( bodyText, - "JSONAPIErrorResponse" - ) as JSONAPIErrorResponse; + "AppBuilderError" + ) as AppBuilderError; } catch (error) { logger.debug(`Got error deserializing error: ${error}`); - throw new ApiException( + throw new ApiException( response.httpStatusCode, bodyText ); } - throw new ApiException( - response.httpStatusCode, - body - ); + throw new ApiException(response.httpStatusCode, body); } if (response.httpStatusCode === 429) { const bodyText = ObjectSerializer.parse( @@ -1149,84 +865,60 @@ export interface AppsApiDeleteAppsRequest { body: DeleteAppsRequest; } -export interface AppsApiDeployAppRequest { - /** - * @type string - */ - appId: string; -} - -export interface AppsApiDisableAppRequest { - /** - * @type string - */ - appId: string; -} - export interface AppsApiGetAppRequest { /** * @type string */ appId: string; - /** - * @type string - */ - version?: string; } export interface AppsApiListAppsRequest { /** - * The number of apps to return per page. + * The number of apps to return per page * @type number */ limit?: number; /** - * The page number to return. + * The page number to return * @type number */ page?: number; /** - * Filter apps by the app creator. Usually the user's email. + * The `AppsFilter` `user_name`. * @type string */ filterUserName?: string; /** - * Filter apps by the app creator's UUID. + * The `AppsFilter` `user_uuid`. * @type string */ filterUserUuid?: string; /** - * Filter by app name. + * The `AppsFilter` `name`. * @type string */ filterName?: string; /** - * Filter apps by the app name or the app creator. + * The `AppsFilter` `query`. * @type string */ filterQuery?: string; /** - * Filter apps by whether they are published. + * The `AppsFilter` `deployed`. * @type boolean */ filterDeployed?: boolean; /** - * Filter apps by tags. + * The `AppsFilter` `tags`. * @type string */ filterTags?: string; /** - * Filter apps by whether you have added them to your favorites. + * The `AppsFilter` `favorite`. * @type boolean */ filterFavorite?: boolean; /** - * Filter apps by whether they are enabled for self-service. - * @type boolean - */ - filterSelfService?: boolean; - /** - * The fields and direction to sort apps by. * @type Array */ sort?: Array; @@ -1323,48 +1015,6 @@ export class AppsApi { }); } - /** - * Deploy (publish) an app by ID - * @param param The request object - */ - public deployApp( - param: AppsApiDeployAppRequest, - options?: Configuration - ): Promise { - const requestContextPromise = this.requestFactory.deployApp( - param.appId, - options - ); - return requestContextPromise.then((requestContext) => { - return this.configuration.httpApi - .send(requestContext) - .then((responseContext) => { - return this.responseProcessor.deployApp(responseContext); - }); - }); - } - - /** - * Disable an app by ID - * @param param The request object - */ - public disableApp( - param: AppsApiDisableAppRequest, - options?: Configuration - ): Promise { - const requestContextPromise = this.requestFactory.disableApp( - param.appId, - options - ); - return requestContextPromise.then((requestContext) => { - return this.configuration.httpApi - .send(requestContext) - .then((responseContext) => { - return this.responseProcessor.disableApp(responseContext); - }); - }); - } - /** * Get the full definition of an app by ID * @param param The request object @@ -1375,7 +1025,6 @@ export class AppsApi { ): Promise { const requestContextPromise = this.requestFactory.getApp( param.appId, - param.version, options ); return requestContextPromise.then((requestContext) => { @@ -1405,7 +1054,6 @@ export class AppsApi { param.filterDeployed, param.filterTags, param.filterFavorite, - param.filterSelfService, param.sort, options ); diff --git a/packages/datadog-api-client-v2/index.ts b/packages/datadog-api-client-v2/index.ts index 86cf9b204f91..34a63e180f90 100644 --- a/packages/datadog-api-client-v2/index.ts +++ b/packages/datadog-api-client-v2/index.ts @@ -29,12 +29,16 @@ export { AWSLogsIntegrationApi } from "./apis/AWSLogsIntegrationApi"; export { AgentlessScanningApi } from "./apis/AgentlessScanningApi"; +export { + AppDeploymentApiDeployAppRequest, + AppDeploymentApiDisableAppRequest, + AppDeploymentApi, +} from "./apis/AppDeploymentApi"; + export { AppsApiCreateAppRequest, AppsApiDeleteAppRequest, AppsApiDeleteAppsRequest, - AppsApiDeployAppRequest, - AppsApiDisableAppRequest, AppsApiGetAppRequest, AppsApiListAppsRequest, AppsApiUpdateAppRequest, @@ -633,6 +637,9 @@ export { APIKeyUpdateAttributes } from "./models/APIKeyUpdateAttributes"; export { APIKeyUpdateData } from "./models/APIKeyUpdateData"; export { APIKeyUpdateRequest } from "./models/APIKeyUpdateRequest"; export { ApmRetentionFilterType } from "./models/ApmRetentionFilterType"; +export { AppBuilderError } from "./models/AppBuilderError"; +export { AppBuilderErrorErrorsItems } from "./models/AppBuilderErrorErrorsItems"; +export { AppBuilderErrorErrorsItemsSource } from "./models/AppBuilderErrorErrorsItemsSource"; export { AppBuilderEvent } from "./models/AppBuilderEvent"; export { AppBuilderEventName } from "./models/AppBuilderEventName"; export { AppBuilderEventType } from "./models/AppBuilderEventType"; diff --git a/packages/datadog-api-client-v2/models/AppBuilderError.ts b/packages/datadog-api-client-v2/models/AppBuilderError.ts new file mode 100644 index 000000000000..f307d9f544a9 --- /dev/null +++ b/packages/datadog-api-client-v2/models/AppBuilderError.ts @@ -0,0 +1,53 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { AppBuilderErrorErrorsItems } from "./AppBuilderErrorErrorsItems"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * The definition of `AppBuilderError` object. + */ +export class AppBuilderError { + /** + * The `AppBuilderError` `errors`. + */ + "errors"?: Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + errors: { + baseName: "errors", + type: "Array", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "any", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return AppBuilderError.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/AppBuilderErrorErrorsItems.ts b/packages/datadog-api-client-v2/models/AppBuilderErrorErrorsItems.ts new file mode 100644 index 000000000000..76a3fd349eac --- /dev/null +++ b/packages/datadog-api-client-v2/models/AppBuilderErrorErrorsItems.ts @@ -0,0 +1,61 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { AppBuilderErrorErrorsItemsSource } from "./AppBuilderErrorErrorsItemsSource"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * The definition of `AppBuilderErrorErrorsItems` object. + */ +export class AppBuilderErrorErrorsItems { + /** + * The `items` `detail`. + */ + "detail"?: string; + /** + * The definition of `AppBuilderErrorErrorsItemsSource` object. + */ + "source"?: AppBuilderErrorErrorsItemsSource; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + detail: { + baseName: "detail", + type: "string", + }, + source: { + baseName: "source", + type: "AppBuilderErrorErrorsItemsSource", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "any", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return AppBuilderErrorErrorsItems.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/AppBuilderErrorErrorsItemsSource.ts b/packages/datadog-api-client-v2/models/AppBuilderErrorErrorsItemsSource.ts new file mode 100644 index 000000000000..71bdbe2496d9 --- /dev/null +++ b/packages/datadog-api-client-v2/models/AppBuilderErrorErrorsItemsSource.ts @@ -0,0 +1,60 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * The definition of `AppBuilderErrorErrorsItemsSource` object. + */ +export class AppBuilderErrorErrorsItemsSource { + /** + * The `source` `parameter`. + */ + "parameter"?: string; + /** + * The `source` `pointer`. + */ + "pointer"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + parameter: { + baseName: "parameter", + type: "string", + }, + pointer: { + baseName: "pointer", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "any", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return AppBuilderErrorErrorsItemsSource.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/AppMeta.ts b/packages/datadog-api-client-v2/models/AppMeta.ts index a1155f06a647..6f04de3aea09 100644 --- a/packages/datadog-api-client-v2/models/AppMeta.ts +++ b/packages/datadog-api-client-v2/models/AppMeta.ts @@ -104,7 +104,6 @@ export class AppMeta { userUuid: { baseName: "user_uuid", type: "string", - format: "uuid", }, version: { baseName: "version", diff --git a/packages/datadog-api-client-v2/models/DeploymentIncludedMeta.ts b/packages/datadog-api-client-v2/models/DeploymentIncludedMeta.ts index e6f651cf45dc..4af01a912bf3 100644 --- a/packages/datadog-api-client-v2/models/DeploymentIncludedMeta.ts +++ b/packages/datadog-api-client-v2/models/DeploymentIncludedMeta.ts @@ -59,7 +59,6 @@ export class DeploymentIncludedMeta { userUuid: { baseName: "user_uuid", type: "string", - format: "uuid", }, additionalProperties: { baseName: "additionalProperties", diff --git a/packages/datadog-api-client-v2/models/DeploymentMeta.ts b/packages/datadog-api-client-v2/models/DeploymentMeta.ts index 2894b345fe98..9f76a304746e 100644 --- a/packages/datadog-api-client-v2/models/DeploymentMeta.ts +++ b/packages/datadog-api-client-v2/models/DeploymentMeta.ts @@ -59,7 +59,6 @@ export class DeploymentMeta { userUuid: { baseName: "user_uuid", type: "string", - format: "uuid", }, additionalProperties: { baseName: "additionalProperties", diff --git a/packages/datadog-api-client-v2/models/DeploymentRelationshipMeta.ts b/packages/datadog-api-client-v2/models/DeploymentRelationshipMeta.ts index 94af45d2ff68..4db823fc75cd 100644 --- a/packages/datadog-api-client-v2/models/DeploymentRelationshipMeta.ts +++ b/packages/datadog-api-client-v2/models/DeploymentRelationshipMeta.ts @@ -59,7 +59,6 @@ export class DeploymentRelationshipMeta { userUuid: { baseName: "user_uuid", type: "string", - format: "uuid", }, additionalProperties: { baseName: "additionalProperties", diff --git a/packages/datadog-api-client-v2/models/ObjectSerializer.ts b/packages/datadog-api-client-v2/models/ObjectSerializer.ts index b67d3443ecac..7a1a453797d7 100644 --- a/packages/datadog-api-client-v2/models/ObjectSerializer.ts +++ b/packages/datadog-api-client-v2/models/ObjectSerializer.ts @@ -45,6 +45,9 @@ import { ActiveBillingDimensionsAttributes } from "./ActiveBillingDimensionsAttr import { ActiveBillingDimensionsBody } from "./ActiveBillingDimensionsBody"; import { ActiveBillingDimensionsResponse } from "./ActiveBillingDimensionsResponse"; import { Advisory } from "./Advisory"; +import { AppBuilderError } from "./AppBuilderError"; +import { AppBuilderErrorErrorsItems } from "./AppBuilderErrorErrorsItems"; +import { AppBuilderErrorErrorsItemsSource } from "./AppBuilderErrorErrorsItemsSource"; import { AppBuilderEvent } from "./AppBuilderEvent"; import { AppMeta } from "./AppMeta"; import { ApplicationKeyCreateAttributes } from "./ApplicationKeyCreateAttributes"; @@ -2342,6 +2345,9 @@ const typeMap: { [index: string]: any } = { ActiveBillingDimensionsBody: ActiveBillingDimensionsBody, ActiveBillingDimensionsResponse: ActiveBillingDimensionsResponse, Advisory: Advisory, + AppBuilderError: AppBuilderError, + AppBuilderErrorErrorsItems: AppBuilderErrorErrorsItems, + AppBuilderErrorErrorsItemsSource: AppBuilderErrorErrorsItemsSource, AppBuilderEvent: AppBuilderEvent, AppMeta: AppMeta, ApplicationKeyCreateAttributes: ApplicationKeyCreateAttributes,