diff --git a/.apigentools-info b/.apigentools-info index 4ee4e15b799..11ab7c88ca3 100644 --- a/.apigentools-info +++ b/.apigentools-info @@ -4,13 +4,13 @@ "spec_versions": { "v1": { "apigentools_version": "1.6.6", - "regenerated": "2024-12-23 16:35:38.862733", - "spec_repo_commit": "19946d35" + "regenerated": "2024-12-26 22:06:24.076113", + "spec_repo_commit": "930cad1d" }, "v2": { "apigentools_version": "1.6.6", - "regenerated": "2024-12-23 16:35:38.877280", - "spec_repo_commit": "19946d35" + "regenerated": "2024-12-26 22:06:24.091143", + "spec_repo_commit": "930cad1d" } } } \ No newline at end of file diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 3480f9db3a7..ea5a2767e06 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -1615,34 +1615,6 @@ 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. @@ -1729,6 +1701,7 @@ components: type: string user_uuid: description: The `AppMeta` `user_uuid`. + format: uuid type: string version: description: The `AppMeta` `version`. @@ -8765,6 +8738,7 @@ components: type: string user_uuid: description: The `meta` `user_uuid`. + format: uuid type: string type: object DeploymentIncludedType: @@ -8790,6 +8764,7 @@ components: type: string user_uuid: description: The `DeploymentMeta` `user_uuid`. + format: uuid type: string type: object DeploymentRelationship: @@ -8832,6 +8807,7 @@ components: type: string user_uuid: description: The `meta` `user_uuid`. + format: uuid type: string type: object DeploymentType: @@ -30153,19 +30129,19 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' + $ref: '#/components/schemas/JSONAPIErrorResponse' description: Bad Request '403': content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' - description: Forbidden, e.g. missing permissions to delete one or more apps + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden '404': content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' + $ref: '#/components/schemas/JSONAPIErrorResponse' description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' @@ -30182,63 +30158,71 @@ 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: The `AppsFilter` `user_name`. + - description: Filter apps by the app creator. Usually the user's email. in: query name: filter[user_name] required: false schema: type: string - - description: The `AppsFilter` `user_uuid`. + - description: Filter apps by the app creator's UUID. in: query name: filter[user_uuid] required: false schema: + format: uuid type: string - - description: The `AppsFilter` `name`. + - description: Filter by app name. in: query name: filter[name] required: false schema: type: string - - description: The `AppsFilter` `query`. + - description: Filter apps by the app name or the app creator. in: query name: filter[query] required: false schema: type: string - - description: The `AppsFilter` `deployed`. + - description: Filter apps by whether they are published. in: query name: filter[deployed] required: false schema: type: boolean - - description: The `AppsFilter` `tags`. + - description: Filter apps by tags. in: query name: filter[tags] required: false schema: type: string - - description: The `AppsFilter` `favorite`. + - description: Filter apps by whether you have added them to your favorites. in: query name: filter[favorite] required: false schema: type: boolean - - explode: false + - 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 in: query name: sort required: false @@ -30258,13 +30242,13 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' - description: Bad Request, e.g. invalid sort parameter + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request '403': content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' + $ref: '#/components/schemas/JSONAPIErrorResponse' description: Forbidden '429': $ref: '#/components/responses/TooManyRequestsResponse' @@ -30297,15 +30281,14 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' + $ref: '#/components/schemas/JSONAPIErrorResponse' description: Bad Request '403': content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' - description: Forbidden, e.g. missing required permissions to a connection - or workflow used in the app + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden '429': $ref: '#/components/responses/TooManyRequestsResponse' summary: Create App @@ -30340,25 +30323,25 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' + $ref: '#/components/schemas/JSONAPIErrorResponse' description: Bad Request '403': content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' + $ref: '#/components/schemas/JSONAPIErrorResponse' description: Forbidden '404': content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' + $ref: '#/components/schemas/JSONAPIErrorResponse' description: Not Found '410': content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' + $ref: '#/components/schemas/JSONAPIErrorResponse' description: Gone '429': $ref: '#/components/responses/TooManyRequestsResponse' @@ -30380,6 +30363,11 @@ paths: required: true schema: type: string + - in: query + name: version + required: false + schema: + type: string responses: '200': content: @@ -30391,19 +30379,19 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' + $ref: '#/components/schemas/JSONAPIErrorResponse' description: Bad Request '403': content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' + $ref: '#/components/schemas/JSONAPIErrorResponse' description: Forbidden '404': content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' + $ref: '#/components/schemas/JSONAPIErrorResponse' description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' @@ -30443,15 +30431,14 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' + $ref: '#/components/schemas/JSONAPIErrorResponse' description: Bad Request '403': content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' - description: Forbidden, e.g. missing required permissions to a connection - or workflow used in the app + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden '429': $ref: '#/components/responses/TooManyRequestsResponse' summary: Update App @@ -30486,25 +30473,25 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' + $ref: '#/components/schemas/JSONAPIErrorResponse' description: Bad Request '403': content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' + $ref: '#/components/schemas/JSONAPIErrorResponse' description: Forbidden '404': content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' + $ref: '#/components/schemas/JSONAPIErrorResponse' description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' summary: Disable App tags: - - App Deployment + - Apps x-permission: operator: OR permissions: @@ -30531,25 +30518,25 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' + $ref: '#/components/schemas/JSONAPIErrorResponse' description: Bad Request '403': content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' + $ref: '#/components/schemas/JSONAPIErrorResponse' description: Forbidden '404': content: application/json: schema: - $ref: '#/components/schemas/AppBuilderError' + $ref: '#/components/schemas/JSONAPIErrorResponse' description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' summary: Deploy App tags: - - App Deployment + - Apps x-permission: operator: OR permissions: @@ -46584,9 +46571,10 @@ tags: externalDocs: url: https://docs.datadoghq.com/integrations/amazon_web_services/#log-collection name: AWS Logs Integration -- description: Deploy and disable apps in App Builder. - name: App Deployment -- description: Create, read, update, and delete apps in App Builder. +- 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. name: Apps - description: Search your Audit Logs events over HTTP. name: Audit diff --git a/cassettes/features/v2/app_deployment/Deploy-App-returns-Bad-Request-response.frozen b/cassettes/features/v2/app_deployment/Deploy-App-returns-Bad-Request-response.frozen deleted file mode 100644 index 70eab29e2a7..00000000000 --- a/cassettes/features/v2/app_deployment/Deploy-App-returns-Bad-Request-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-10T19:57:35.320Z \ No newline at end of file diff --git a/cassettes/features/v2/app_deployment/Deploy-App-returns-Created-response.frozen b/cassettes/features/v2/app_deployment/Deploy-App-returns-Created-response.frozen deleted file mode 100644 index 12cd09b1d29..00000000000 --- a/cassettes/features/v2/app_deployment/Deploy-App-returns-Created-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-12T20:29:22.668Z \ No newline at end of file diff --git a/cassettes/features/v2/app_deployment/Deploy-App-returns-Not-Found-response.frozen b/cassettes/features/v2/app_deployment/Deploy-App-returns-Not-Found-response.frozen deleted file mode 100644 index c11fe09d7f4..00000000000 --- a/cassettes/features/v2/app_deployment/Deploy-App-returns-Not-Found-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-10T19:57:35.984Z \ No newline at end of file diff --git a/cassettes/features/v2/app_deployment/Disable-App-returns-Bad-Request-response.frozen b/cassettes/features/v2/app_deployment/Disable-App-returns-Bad-Request-response.frozen deleted file mode 100644 index bf3af7629d0..00000000000 --- a/cassettes/features/v2/app_deployment/Disable-App-returns-Bad-Request-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-10T19:57:36.091Z \ No newline at end of file diff --git a/cassettes/features/v2/app_deployment/Disable-App-returns-Not-Found-response.frozen b/cassettes/features/v2/app_deployment/Disable-App-returns-Not-Found-response.frozen deleted file mode 100644 index 8dc6b57d756..00000000000 --- a/cassettes/features/v2/app_deployment/Disable-App-returns-Not-Found-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-10T19:57:36.179Z \ No newline at end of file diff --git a/cassettes/features/v2/app_deployment/Disable-App-returns-OK-response.frozen b/cassettes/features/v2/app_deployment/Disable-App-returns-OK-response.frozen deleted file mode 100644 index 883ce61def2..00000000000 --- a/cassettes/features/v2/app_deployment/Disable-App-returns-OK-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-12T20:29:23.546Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Create-App-returns-App-Created-response.frozen b/cassettes/features/v2/apps/Create-App-returns-App-Created-response.frozen index 6dfadcf607a..a188f565172 100644 --- a/cassettes/features/v2/apps/Create-App-returns-App-Created-response.frozen +++ b/cassettes/features/v2/apps/Create-App-returns-App-Created-response.frozen @@ -1 +1 @@ -2024-12-12T20:29:24.182Z \ No newline at end of file +2024-12-20T20:39:18.375Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Create-App-returns-App-Created-response.yml b/cassettes/features/v2/apps/Create-App-returns-App-Created-response.yml index 6a66628c9c6..6e52e504cca 100644 --- a/cassettes/features/v2/apps/Create-App-returns-App-Created-response.yml +++ b/cassettes/features/v2/apps/Create-App-returns-App-Created-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Thu, 12 Dec 2024 20:29:24 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:18 GMT request: body: encoding: UTF-8 @@ -16,25 +16,25 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"2d9dd18e-c574-454c-8d43-3045b731d6a2","type":"appDefinitions"}}' + string: '{"data":{"id":"02c52f8c-78d9-4c14-ac27-b0bcac36ce74","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json status: code: 201 message: Created -- recorded_at: Thu, 12 Dec 2024 20:29:24 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:18 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/2d9dd18e-c574-454c-8d43-3045b731d6a2 + uri: https://api.datadoghq.com/api/v2/app-builder/apps/02c52f8c-78d9-4c14-ac27-b0bcac36ce74 response: body: encoding: UTF-8 - string: '{"data":{"id":"2d9dd18e-c574-454c-8d43-3045b731d6a2","type":"appDefinitions"}}' + string: '{"data":{"id":"02c52f8c-78d9-4c14-ac27-b0bcac36ce74","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/apps/Create-App-returns-Bad-Request-response.frozen b/cassettes/features/v2/apps/Create-App-returns-Bad-Request-response.frozen index 5912dc34412..6bab6b51774 100644 --- a/cassettes/features/v2/apps/Create-App-returns-Bad-Request-response.frozen +++ b/cassettes/features/v2/apps/Create-App-returns-Bad-Request-response.frozen @@ -1 +1 @@ -2024-12-10T19:57:10.031Z \ No newline at end of file +2024-12-20T20:39:18.779Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Create-App-returns-Bad-Request-response.yml b/cassettes/features/v2/apps/Create-App-returns-Bad-Request-response.yml index 3d91d20a10f..b8068b2bb6a 100644 --- a/cassettes/features/v2/apps/Create-App-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/apps/Create-App-returns-Bad-Request-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 10 Dec 2024 19:57:10 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:18 GMT request: body: encoding: UTF-8 diff --git a/cassettes/features/v2/apps/Delete-App-returns-Bad-Request-response.frozen b/cassettes/features/v2/apps/Delete-App-returns-Bad-Request-response.frozen index 3925b1b25d4..f2fcc286e7e 100644 --- a/cassettes/features/v2/apps/Delete-App-returns-Bad-Request-response.frozen +++ b/cassettes/features/v2/apps/Delete-App-returns-Bad-Request-response.frozen @@ -1 +1 @@ -2024-12-10T19:57:10.128Z \ No newline at end of file +2024-12-20T20:39:18.880Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Delete-App-returns-Bad-Request-response.yml b/cassettes/features/v2/apps/Delete-App-returns-Bad-Request-response.yml index 25ad2445f4e..1cb0dd924d5 100644 --- a/cassettes/features/v2/apps/Delete-App-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/apps/Delete-App-returns-Bad-Request-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 10 Dec 2024 19:57:10 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:18 GMT request: body: null headers: diff --git a/cassettes/features/v2/apps/Delete-App-returns-Not-Found-response.frozen b/cassettes/features/v2/apps/Delete-App-returns-Not-Found-response.frozen index cfa34bd9baf..fb9dd880bf6 100644 --- a/cassettes/features/v2/apps/Delete-App-returns-Not-Found-response.frozen +++ b/cassettes/features/v2/apps/Delete-App-returns-Not-Found-response.frozen @@ -1 +1 @@ -2024-12-10T19:57:10.225Z \ No newline at end of file +2024-12-20T20:39:18.985Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Delete-App-returns-Not-Found-response.yml b/cassettes/features/v2/apps/Delete-App-returns-Not-Found-response.yml index b9b6347ab40..c319380ab04 100644 --- a/cassettes/features/v2/apps/Delete-App-returns-Not-Found-response.yml +++ b/cassettes/features/v2/apps/Delete-App-returns-Not-Found-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 10 Dec 2024 19:57:10 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:18 GMT request: body: null headers: diff --git a/cassettes/features/v2/apps/Delete-App-returns-OK-response.frozen b/cassettes/features/v2/apps/Delete-App-returns-OK-response.frozen index 81a74305aec..744eafd5016 100644 --- a/cassettes/features/v2/apps/Delete-App-returns-OK-response.frozen +++ b/cassettes/features/v2/apps/Delete-App-returns-OK-response.frozen @@ -1 +1 @@ -2024-12-12T20:29:24.659Z \ No newline at end of file +2024-12-20T20:39:19.083Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Delete-App-returns-OK-response.yml b/cassettes/features/v2/apps/Delete-App-returns-OK-response.yml index cacc3dabfdc..681b5ee28cd 100644 --- a/cassettes/features/v2/apps/Delete-App-returns-OK-response.yml +++ b/cassettes/features/v2/apps/Delete-App-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Thu, 12 Dec 2024 20:29:24 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:19 GMT request: body: encoding: UTF-8 @@ -16,39 +16,39 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"5cb67134-d7bd-4320-9cda-d79ec98cff4c","type":"appDefinitions"}}' + string: '{"data":{"id":"500bf715-77a5-4c1d-b4ef-0d181b071daf","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json status: code: 201 message: Created -- recorded_at: Thu, 12 Dec 2024 20:29:24 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:19 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/5cb67134-d7bd-4320-9cda-d79ec98cff4c + uri: https://api.datadoghq.com/api/v2/app-builder/apps/500bf715-77a5-4c1d-b4ef-0d181b071daf response: body: encoding: UTF-8 - string: '{"data":{"id":"5cb67134-d7bd-4320-9cda-d79ec98cff4c","type":"appDefinitions"}}' + string: '{"data":{"id":"500bf715-77a5-4c1d-b4ef-0d181b071daf","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json status: code: 200 message: OK -- recorded_at: Thu, 12 Dec 2024 20:29:24 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:19 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/5cb67134-d7bd-4320-9cda-d79ec98cff4c + uri: https://api.datadoghq.com/api/v2/app-builder/apps/500bf715-77a5-4c1d-b4ef-0d181b071daf response: body: encoding: UTF-8 diff --git a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Bad-Request-response.frozen b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Bad-Request-response.frozen index 47c84b21b2b..c2c122a9a5c 100644 --- a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Bad-Request-response.frozen +++ b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Bad-Request-response.frozen @@ -1 +1 @@ -2024-12-10T19:57:10.845Z \ No newline at end of file +2024-12-20T20:39:19.594Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Bad-Request-response.yml b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Bad-Request-response.yml index d46a706bf25..2bfa8d54ed6 100644 --- a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Bad-Request-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 10 Dec 2024 19:57:10 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:19 GMT request: body: encoding: UTF-8 diff --git a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Not-Found-response.frozen b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Not-Found-response.frozen index 0fbfbe769d0..7d397ad29fe 100644 --- a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Not-Found-response.frozen +++ b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Not-Found-response.frozen @@ -1 +1 @@ -2024-12-10T19:57:10.942Z \ No newline at end of file +2024-12-20T20:39:19.688Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Not-Found-response.yml b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Not-Found-response.yml index 65c610f1e64..2862558fa8f 100644 --- a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Not-Found-response.yml +++ b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Not-Found-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 10 Dec 2024 19:57:10 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:19 GMT request: body: encoding: UTF-8 diff --git a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-OK-response.frozen b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-OK-response.frozen index 5848314b797..d2346be1daa 100644 --- a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-OK-response.frozen +++ b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-OK-response.frozen @@ -1 +1 @@ -2024-12-12T20:29:25.239Z \ No newline at end of file +2024-12-20T20:39:19.785Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-OK-response.yml b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-OK-response.yml index 0e9699b600d..cbfb9b76eeb 100644 --- a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-OK-response.yml +++ b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Thu, 12 Dec 2024 20:29:25 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:19 GMT request: body: encoding: UTF-8 @@ -16,18 +16,18 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"61d36766-5d27-47ea-a3e7-aa7bd77b1da3","type":"appDefinitions"}}' + string: '{"data":{"id":"884b37bc-71b8-40bc-8967-12684ec7f3c4","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json status: code: 201 message: Created -- recorded_at: Thu, 12 Dec 2024 20:29:25 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:19 GMT request: body: encoding: UTF-8 - string: '{"data":[{"id":"61d36766-5d27-47ea-a3e7-aa7bd77b1da3","type":"appDefinitions"}]}' + string: '{"data":[{"id":"884b37bc-71b8-40bc-8967-12684ec7f3c4","type":"appDefinitions"}]}' headers: Accept: - application/json @@ -38,21 +38,21 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":[{"id":"61d36766-5d27-47ea-a3e7-aa7bd77b1da3","type":"appDefinitions"}]}' + string: '{"data":[{"id":"884b37bc-71b8-40bc-8967-12684ec7f3c4","type":"appDefinitions"}]}' headers: Content-Type: - application/vnd.api+json status: code: 200 message: OK -- recorded_at: Thu, 12 Dec 2024 20:29:25 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:19 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/61d36766-5d27-47ea-a3e7-aa7bd77b1da3 + uri: https://api.datadoghq.com/api/v2/app-builder/apps/884b37bc-71b8-40bc-8967-12684ec7f3c4 response: body: encoding: UTF-8 diff --git a/cassettes/features/v2/apps/Deploy-App-returns-Bad-Request-response.frozen b/cassettes/features/v2/apps/Deploy-App-returns-Bad-Request-response.frozen new file mode 100644 index 00000000000..3f65923d0af --- /dev/null +++ b/cassettes/features/v2/apps/Deploy-App-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-12-20T20:39:20.190Z \ No newline at end of file diff --git a/cassettes/features/v2/app_deployment/Deploy-App-returns-Bad-Request-response.yml b/cassettes/features/v2/apps/Deploy-App-returns-Bad-Request-response.yml similarity index 91% rename from cassettes/features/v2/app_deployment/Deploy-App-returns-Bad-Request-response.yml rename to cassettes/features/v2/apps/Deploy-App-returns-Bad-Request-response.yml index a4596176dc8..4ee6d51d485 100644 --- a/cassettes/features/v2/app_deployment/Deploy-App-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/apps/Deploy-App-returns-Bad-Request-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 10 Dec 2024 19:57:35 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:20 GMT request: body: null headers: diff --git a/cassettes/features/v2/apps/Deploy-App-returns-Created-response.frozen b/cassettes/features/v2/apps/Deploy-App-returns-Created-response.frozen new file mode 100644 index 00000000000..2c4a1170293 --- /dev/null +++ b/cassettes/features/v2/apps/Deploy-App-returns-Created-response.frozen @@ -0,0 +1 @@ +2024-12-20T20:39:20.292Z \ No newline at end of file diff --git a/cassettes/features/v2/app_deployment/Deploy-App-returns-Created-response.yml b/cassettes/features/v2/apps/Deploy-App-returns-Created-response.yml similarity index 64% rename from cassettes/features/v2/app_deployment/Deploy-App-returns-Created-response.yml rename to cassettes/features/v2/apps/Deploy-App-returns-Created-response.yml index d0bb837158a..2e35b9703f4 100644 --- a/cassettes/features/v2/app_deployment/Deploy-App-returns-Created-response.yml +++ b/cassettes/features/v2/apps/Deploy-App-returns-Created-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Thu, 12 Dec 2024 20:29:22 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:20 GMT request: body: encoding: UTF-8 @@ -16,43 +16,43 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"d9f547cd-bc8d-46be-b321-336856723728","type":"appDefinitions"}}' + string: '{"data":{"id":"290ad26d-6f5c-43b6-aef6-57b403d755e8","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json status: code: 201 message: Created -- recorded_at: Thu, 12 Dec 2024 20:29:22 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:20 GMT request: body: null headers: Accept: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/app-builder/apps/d9f547cd-bc8d-46be-b321-336856723728/deployment + uri: https://api.datadoghq.com/api/v2/app-builder/apps/290ad26d-6f5c-43b6-aef6-57b403d755e8/deployment response: body: encoding: UTF-8 - string: '{"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"}}}' + string: '{"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"}}}' headers: Content-Type: - application/vnd.api+json status: code: 201 message: Created -- recorded_at: Thu, 12 Dec 2024 20:29:22 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:20 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/d9f547cd-bc8d-46be-b321-336856723728 + uri: https://api.datadoghq.com/api/v2/app-builder/apps/290ad26d-6f5c-43b6-aef6-57b403d755e8 response: body: encoding: UTF-8 - string: '{"data":{"id":"d9f547cd-bc8d-46be-b321-336856723728","type":"appDefinitions"}}' + string: '{"data":{"id":"290ad26d-6f5c-43b6-aef6-57b403d755e8","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/apps/Deploy-App-returns-Not-Found-response.frozen b/cassettes/features/v2/apps/Deploy-App-returns-Not-Found-response.frozen new file mode 100644 index 00000000000..f8f8e8f2692 --- /dev/null +++ b/cassettes/features/v2/apps/Deploy-App-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-12-20T20:39:20.929Z \ No newline at end of file diff --git a/cassettes/features/v2/app_deployment/Deploy-App-returns-Not-Found-response.yml b/cassettes/features/v2/apps/Deploy-App-returns-Not-Found-response.yml similarity index 91% rename from cassettes/features/v2/app_deployment/Deploy-App-returns-Not-Found-response.yml rename to cassettes/features/v2/apps/Deploy-App-returns-Not-Found-response.yml index d3430a3d3f9..241cc900eb3 100644 --- a/cassettes/features/v2/app_deployment/Deploy-App-returns-Not-Found-response.yml +++ b/cassettes/features/v2/apps/Deploy-App-returns-Not-Found-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 10 Dec 2024 19:57:35 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:20 GMT request: body: null headers: diff --git a/cassettes/features/v2/apps/Disable-App-returns-Bad-Request-response.frozen b/cassettes/features/v2/apps/Disable-App-returns-Bad-Request-response.frozen new file mode 100644 index 00000000000..afd2bf6b9f8 --- /dev/null +++ b/cassettes/features/v2/apps/Disable-App-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-12-20T20:39:21.034Z \ No newline at end of file diff --git a/cassettes/features/v2/app_deployment/Disable-App-returns-Bad-Request-response.yml b/cassettes/features/v2/apps/Disable-App-returns-Bad-Request-response.yml similarity index 91% rename from cassettes/features/v2/app_deployment/Disable-App-returns-Bad-Request-response.yml rename to cassettes/features/v2/apps/Disable-App-returns-Bad-Request-response.yml index f143723922d..0351474fb7e 100644 --- a/cassettes/features/v2/app_deployment/Disable-App-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/apps/Disable-App-returns-Bad-Request-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 10 Dec 2024 19:57:36 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:21 GMT request: body: null headers: diff --git a/cassettes/features/v2/apps/Disable-App-returns-Not-Found-response.frozen b/cassettes/features/v2/apps/Disable-App-returns-Not-Found-response.frozen new file mode 100644 index 00000000000..7332f600132 --- /dev/null +++ b/cassettes/features/v2/apps/Disable-App-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-12-20T20:39:21.129Z \ No newline at end of file diff --git a/cassettes/features/v2/app_deployment/Disable-App-returns-Not-Found-response.yml b/cassettes/features/v2/apps/Disable-App-returns-Not-Found-response.yml similarity index 91% rename from cassettes/features/v2/app_deployment/Disable-App-returns-Not-Found-response.yml rename to cassettes/features/v2/apps/Disable-App-returns-Not-Found-response.yml index 4c2f45085e3..5b801e25288 100644 --- a/cassettes/features/v2/app_deployment/Disable-App-returns-Not-Found-response.yml +++ b/cassettes/features/v2/apps/Disable-App-returns-Not-Found-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 10 Dec 2024 19:57:36 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:21 GMT request: body: null headers: diff --git a/cassettes/features/v2/apps/Disable-App-returns-OK-response.frozen b/cassettes/features/v2/apps/Disable-App-returns-OK-response.frozen new file mode 100644 index 00000000000..672904fce26 --- /dev/null +++ b/cassettes/features/v2/apps/Disable-App-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-12-20T20:39:21.230Z \ No newline at end of file diff --git a/cassettes/features/v2/app_deployment/Disable-App-returns-OK-response.yml b/cassettes/features/v2/apps/Disable-App-returns-OK-response.yml similarity index 64% rename from cassettes/features/v2/app_deployment/Disable-App-returns-OK-response.yml rename to cassettes/features/v2/apps/Disable-App-returns-OK-response.yml index f79fe7ef415..ee7aba0ea36 100644 --- a/cassettes/features/v2/app_deployment/Disable-App-returns-OK-response.yml +++ b/cassettes/features/v2/apps/Disable-App-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Thu, 12 Dec 2024 20:29:23 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:21 GMT request: body: encoding: UTF-8 @@ -16,43 +16,43 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"6fdd1eb3-bd2c-4fe3-a3cf-38d0af4913ad","type":"appDefinitions"}}' + string: '{"data":{"id":"cfe9f7bc-e6e6-44e2-9d30-19b03ab871b5","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json status: code: 201 message: Created -- recorded_at: Thu, 12 Dec 2024 20:29:23 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:21 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/6fdd1eb3-bd2c-4fe3-a3cf-38d0af4913ad/deployment + uri: https://api.datadoghq.com/api/v2/app-builder/apps/cfe9f7bc-e6e6-44e2-9d30-19b03ab871b5/deployment response: body: encoding: UTF-8 - string: '{"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"}}}' + string: '{"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"}}}' headers: Content-Type: - application/vnd.api+json status: code: 200 message: OK -- recorded_at: Thu, 12 Dec 2024 20:29:23 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:21 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/6fdd1eb3-bd2c-4fe3-a3cf-38d0af4913ad + uri: https://api.datadoghq.com/api/v2/app-builder/apps/cfe9f7bc-e6e6-44e2-9d30-19b03ab871b5 response: body: encoding: UTF-8 - string: '{"data":{"id":"6fdd1eb3-bd2c-4fe3-a3cf-38d0af4913ad","type":"appDefinitions"}}' + string: '{"data":{"id":"cfe9f7bc-e6e6-44e2-9d30-19b03ab871b5","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/apps/Get-App-returns-Bad-Request-response.frozen b/cassettes/features/v2/apps/Get-App-returns-Bad-Request-response.frozen index 9a1b4493f05..8251b6eaf66 100644 --- a/cassettes/features/v2/apps/Get-App-returns-Bad-Request-response.frozen +++ b/cassettes/features/v2/apps/Get-App-returns-Bad-Request-response.frozen @@ -1 +1 @@ -2024-12-10T19:57:11.519Z \ No newline at end of file +2024-12-20T20:39:21.680Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Get-App-returns-Bad-Request-response.yml b/cassettes/features/v2/apps/Get-App-returns-Bad-Request-response.yml index 398f3cb08e1..8e0396ba476 100644 --- a/cassettes/features/v2/apps/Get-App-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/apps/Get-App-returns-Bad-Request-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 10 Dec 2024 19:57:11 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:21 GMT request: body: null headers: diff --git a/cassettes/features/v2/apps/Get-App-returns-Not-Found-response.frozen b/cassettes/features/v2/apps/Get-App-returns-Not-Found-response.frozen index 0d42c760761..8bd6f7561c5 100644 --- a/cassettes/features/v2/apps/Get-App-returns-Not-Found-response.frozen +++ b/cassettes/features/v2/apps/Get-App-returns-Not-Found-response.frozen @@ -1 +1 @@ -2024-12-10T19:57:11.612Z \ No newline at end of file +2024-12-20T20:39:21.762Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Get-App-returns-Not-Found-response.yml b/cassettes/features/v2/apps/Get-App-returns-Not-Found-response.yml index 6c0ab3ad797..17c83336b86 100644 --- a/cassettes/features/v2/apps/Get-App-returns-Not-Found-response.yml +++ b/cassettes/features/v2/apps/Get-App-returns-Not-Found-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 10 Dec 2024 19:57:11 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:21 GMT request: body: null headers: diff --git a/cassettes/features/v2/apps/Get-App-returns-OK-response.frozen b/cassettes/features/v2/apps/Get-App-returns-OK-response.frozen index 7b34332de4d..e407ffe5d62 100644 --- a/cassettes/features/v2/apps/Get-App-returns-OK-response.frozen +++ b/cassettes/features/v2/apps/Get-App-returns-OK-response.frozen @@ -1 +1 @@ -2024-12-12T20:29:25.770Z \ No newline at end of file +2024-12-20T20:39:21.868Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Get-App-returns-OK-response.yml b/cassettes/features/v2/apps/Get-App-returns-OK-response.yml index f5d70a084f7..ab8e2f83eb9 100644 --- a/cassettes/features/v2/apps/Get-App-returns-OK-response.yml +++ b/cassettes/features/v2/apps/Get-App-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Thu, 12 Dec 2024 20:29:25 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:21 GMT request: body: encoding: UTF-8 @@ -16,46 +16,46 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"4937a273-31f5-4375-a9cf-b71eeb92f89c","type":"appDefinitions"}}' + string: '{"data":{"id":"e91c5ea9-5827-4008-b1e6-026d71f5c005","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json status: code: 201 message: Created -- recorded_at: Thu, 12 Dec 2024 20:29:25 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:21 GMT request: body: null headers: Accept: - application/json method: GET - uri: https://api.datadoghq.com/api/v2/app-builder/apps/4937a273-31f5-4375-a9cf-b71eeb92f89c + uri: https://api.datadoghq.com/api/v2/app-builder/apps/e91c5ea9-5827-4008-b1e6-026d71f5c005 response: body: encoding: UTF-8 - string: '{"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 + string: '{"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":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"}}}' + 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"}}}' headers: Content-Type: - application/vnd.api+json status: code: 200 message: OK -- recorded_at: Thu, 12 Dec 2024 20:29:25 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:21 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/4937a273-31f5-4375-a9cf-b71eeb92f89c + uri: https://api.datadoghq.com/api/v2/app-builder/apps/e91c5ea9-5827-4008-b1e6-026d71f5c005 response: body: encoding: UTF-8 - string: '{"data":{"id":"4937a273-31f5-4375-a9cf-b71eeb92f89c","type":"appDefinitions"}}' + string: '{"data":{"id":"e91c5ea9-5827-4008-b1e6-026d71f5c005","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/apps/List-Apps-returns-OK-response.frozen b/cassettes/features/v2/apps/List-Apps-returns-OK-response.frozen index 1cb2468dc44..b459860c38e 100644 --- a/cassettes/features/v2/apps/List-Apps-returns-OK-response.frozen +++ b/cassettes/features/v2/apps/List-Apps-returns-OK-response.frozen @@ -1 +1 @@ -2024-12-10T19:57:12.227Z \ No newline at end of file +2024-12-20T20:39:22.419Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/List-Apps-returns-OK-response.yml b/cassettes/features/v2/apps/List-Apps-returns-OK-response.yml index 8d910597b6a..9622ec2a958 100644 --- a/cassettes/features/v2/apps/List-Apps-returns-OK-response.yml +++ b/cassettes/features/v2/apps/List-Apps-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Tue, 10 Dec 2024 19:57:12 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:22 GMT request: body: null headers: @@ -10,8 +10,9 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"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}}}' + string: '{"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}}}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/apps/Update-App-returns-Bad-Request-response.frozen b/cassettes/features/v2/apps/Update-App-returns-Bad-Request-response.frozen index 56162830354..fd24ecdb585 100644 --- a/cassettes/features/v2/apps/Update-App-returns-Bad-Request-response.frozen +++ b/cassettes/features/v2/apps/Update-App-returns-Bad-Request-response.frozen @@ -1 +1 @@ -2024-12-12T20:29:26.349Z \ No newline at end of file +2024-12-20T20:39:22.549Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Update-App-returns-Bad-Request-response.yml b/cassettes/features/v2/apps/Update-App-returns-Bad-Request-response.yml index c813f849d83..57c1081567e 100644 --- a/cassettes/features/v2/apps/Update-App-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/apps/Update-App-returns-Bad-Request-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Thu, 12 Dec 2024 20:29:26 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:22 GMT request: body: encoding: UTF-8 @@ -16,25 +16,25 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"9d2ee93b-6ac5-4b0e-abd8-829916f2365d","type":"appDefinitions"}}' + string: '{"data":{"id":"2eb79081-77f2-4082-93d5-fbb4d2291dc7","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json status: code: 201 message: Created -- recorded_at: Thu, 12 Dec 2024 20:29:26 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:22 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"rootInstanceName":""},"id":"9d2ee93b-6ac5-4b0e-abd8-829916f2365d","type":"appDefinitions"}}' + string: '{"data":{"attributes":{"rootInstanceName":""},"id":"2eb79081-77f2-4082-93d5-fbb4d2291dc7","type":"appDefinitions"}}' headers: Accept: - application/json Content-Type: - application/json method: PATCH - uri: https://api.datadoghq.com/api/v2/app-builder/apps/9d2ee93b-6ac5-4b0e-abd8-829916f2365d + uri: https://api.datadoghq.com/api/v2/app-builder/apps/2eb79081-77f2-4082-93d5-fbb4d2291dc7 response: body: encoding: UTF-8 @@ -45,18 +45,18 @@ http_interactions: status: code: 400 message: Bad Request -- recorded_at: Thu, 12 Dec 2024 20:29:26 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:22 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/9d2ee93b-6ac5-4b0e-abd8-829916f2365d + uri: https://api.datadoghq.com/api/v2/app-builder/apps/2eb79081-77f2-4082-93d5-fbb4d2291dc7 response: body: encoding: UTF-8 - string: '{"data":{"id":"9d2ee93b-6ac5-4b0e-abd8-829916f2365d","type":"appDefinitions"}}' + string: '{"data":{"id":"2eb79081-77f2-4082-93d5-fbb4d2291dc7","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/apps/Update-App-returns-OK-response.frozen b/cassettes/features/v2/apps/Update-App-returns-OK-response.frozen index 9a62b802399..b873204c5af 100644 --- a/cassettes/features/v2/apps/Update-App-returns-OK-response.frozen +++ b/cassettes/features/v2/apps/Update-App-returns-OK-response.frozen @@ -1 +1 @@ -2024-12-12T20:29:26.986Z \ No newline at end of file +2024-12-20T20:39:23.050Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Update-App-returns-OK-response.yml b/cassettes/features/v2/apps/Update-App-returns-OK-response.yml index 439e08e294b..cab9a9202a6 100644 --- a/cassettes/features/v2/apps/Update-App-returns-OK-response.yml +++ b/cassettes/features/v2/apps/Update-App-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Thu, 12 Dec 2024 20:29:26 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:23 GMT request: body: encoding: UTF-8 @@ -16,50 +16,50 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"5a5e6785-d3f8-41bf-9d5d-95a179362e02","type":"appDefinitions"}}' + string: '{"data":{"id":"22653158-3691-4a09-bbd9-f4197f14dd0c","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json status: code: 201 message: Created -- recorded_at: Thu, 12 Dec 2024 20:29:26 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:23 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"name":"Updated Name","rootInstanceName":"grid0"},"id":"5a5e6785-d3f8-41bf-9d5d-95a179362e02","type":"appDefinitions"}}' + string: '{"data":{"attributes":{"name":"Updated Name","rootInstanceName":"grid0"},"id":"22653158-3691-4a09-bbd9-f4197f14dd0c","type":"appDefinitions"}}' headers: Accept: - application/json Content-Type: - application/json method: PATCH - uri: https://api.datadoghq.com/api/v2/app-builder/apps/5a5e6785-d3f8-41bf-9d5d-95a179362e02 + uri: https://api.datadoghq.com/api/v2/app-builder/apps/22653158-3691-4a09-bbd9-f4197f14dd0c response: body: encoding: UTF-8 - string: '{"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 + string: '{"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":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"}}}' + 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"}}}' headers: Content-Type: - application/vnd.api+json status: code: 200 message: OK -- recorded_at: Thu, 12 Dec 2024 20:29:26 GMT +- recorded_at: Fri, 20 Dec 2024 20:39:23 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/5a5e6785-d3f8-41bf-9d5d-95a179362e02 + uri: https://api.datadoghq.com/api/v2/app-builder/apps/22653158-3691-4a09-bbd9-f4197f14dd0c response: body: encoding: UTF-8 - string: '{"data":{"id":"5a5e6785-d3f8-41bf-9d5d-95a179362e02","type":"appDefinitions"}}' + string: '{"data":{"id":"22653158-3691-4a09-bbd9-f4197f14dd0c","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json diff --git a/examples/v2/app-deployment/DeployApp.rb b/examples/v2/apps/DeployApp.rb similarity index 83% rename from examples/v2/app-deployment/DeployApp.rb rename to examples/v2/apps/DeployApp.rb index 9d5ada69754..553f9c54728 100644 --- a/examples/v2/app-deployment/DeployApp.rb +++ b/examples/v2/apps/DeployApp.rb @@ -4,7 +4,7 @@ DatadogAPIClient.configure do |config| config.unstable_operations["v2.deploy_app".to_sym] = true end -api_instance = DatadogAPIClient::V2::AppDeploymentAPI.new +api_instance = DatadogAPIClient::V2::AppsAPI.new # there is a valid "app" in the system APP_DATA_ID = ENV["APP_DATA_ID"] diff --git a/examples/v2/app-deployment/DisableApp.rb b/examples/v2/apps/DisableApp.rb similarity index 82% rename from examples/v2/app-deployment/DisableApp.rb rename to examples/v2/apps/DisableApp.rb index d516cb30f97..1f1ee733aa9 100644 --- a/examples/v2/app-deployment/DisableApp.rb +++ b/examples/v2/apps/DisableApp.rb @@ -4,7 +4,7 @@ DatadogAPIClient.configure do |config| config.unstable_operations["v2.disable_app".to_sym] = true end -api_instance = DatadogAPIClient::V2::AppDeploymentAPI.new +api_instance = DatadogAPIClient::V2::AppsAPI.new # there is a valid "app" in the system APP_DATA_ID = ENV["APP_DATA_ID"] diff --git a/features/scenarios_model_mapping.rb b/features/scenarios_model_mapping.rb index 6cc2f2771cc..0b02fff3ebb 100644 --- a/features/scenarios_model_mapping.rb +++ b/features/scenarios_model_mapping.rb @@ -950,12 +950,13 @@ "limit" => "Integer", "page" => "Integer", "filter_user_name" => "String", - "filter_user_uuid" => "String", + "filter_user_uuid" => "UUID", "filter_name" => "String", "filter_query" => "String", "filter_deployed" => "Boolean", "filter_tags" => "String", "filter_favorite" => "Boolean", + "filter_self_service" => "Boolean", "sort" => "Array", }, "v2.CreateApp" => { @@ -966,6 +967,7 @@ }, "v2.GetApp" => { "app_id" => "String", + "version" => "String", }, "v2.UpdateApp" => { "app_id" => "String", diff --git a/features/v2/apps.feature b/features/v2/apps.feature index 531cc382643..1bed411c311 100644 --- a/features/v2/apps.feature +++ b/features/v2/apps.feature @@ -1,6 +1,9 @@ @endpoint(apps) @endpoint(apps-v2) Feature: Apps - Create, read, update, and delete apps in App Builder. + 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. Background: Given a valid "apiKeyAuth" key in the system @@ -88,6 +91,56 @@ 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 @@ -116,11 +169,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, e.g. invalid sort parameter" response + Scenario: List Apps returns "Bad Request" response Given operation "ListApps" enabled And new "ListApps" request When the request is sent - Then the response status is 400 Bad Request, e.g. invalid sort parameter + Then the response status is 400 Bad Request @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 29503a6ae7c..3c9e4279380 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\": {\"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\"}}" + "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\"}}" } ], "step": "there is a valid \"app\" in the system", diff --git a/features/v2/undo.json b/features/v2/undo.json index b1ed2db693d..08d57ce2bbe 100644 --- a/features/v2/undo.json +++ b/features/v2/undo.json @@ -197,13 +197,13 @@ } }, "DisableApp": { - "tag": "App Deployment", + "tag": "Apps", "undo": { "type": "idempotent" } }, "DeployApp": { - "tag": "App Deployment", + "tag": "Apps", "undo": { "type": "idempotent" } diff --git a/lib/datadog_api_client/configuration.rb b/lib/datadog_api_client/configuration.rb index 6dd512bf344..7633a27f8ff 100644 --- a/lib/datadog_api_client/configuration.rb +++ b/lib/datadog_api_client/configuration.rb @@ -197,11 +197,11 @@ def initialize "v2.create_app": false, "v2.delete_app": false, "v2.delete_apps": false, + "v2.deploy_app": false, + "v2.disable_app": false, "v2.get_app": false, "v2.list_apps": false, "v2.update_app": false, - "v2.deploy_app": false, - "v2.disable_app": false, "v2.get_active_billing_dimensions": false, "v2.get_billing_dimension_mapping": false, "v2.get_monthly_cost_attribution": false, diff --git a/lib/datadog_api_client/inflector.rb b/lib/datadog_api_client/inflector.rb index 7436dcdf6b8..1e87e76b0ac 100644 --- a/lib/datadog_api_client/inflector.rb +++ b/lib/datadog_api_client/inflector.rb @@ -926,9 +926,6 @@ def overrides "v2.api_key_update_data" => "APIKeyUpdateData", "v2.api_key_update_request" => "APIKeyUpdateRequest", "v2.apm_retention_filter_type" => "ApmRetentionFilterType", - "v2.app_builder_error" => "AppBuilderError", - "v2.app_builder_error_errors_items" => "AppBuilderErrorErrorsItems", - "v2.app_builder_error_errors_items_source" => "AppBuilderErrorErrorsItemsSource", "v2.app_builder_event" => "AppBuilderEvent", "v2.app_builder_event_name" => "AppBuilderEventName", "v2.app_builder_event_type" => "AppBuilderEventType", @@ -2786,7 +2783,6 @@ def overrides "v1.webhooks_integration_api" => "WebhooksIntegrationAPI", "v2.api_management_api" => "APIManagementAPI", "v2.apm_retention_filters_api" => "APMRetentionFiltersAPI", - "v2.app_deployment_api" => "AppDeploymentAPI", "v2.apps_api" => "AppsAPI", "v2.audit_api" => "AuditAPI", "v2.authn_mappings_api" => "AuthNMappingsAPI", diff --git a/lib/datadog_api_client/v2/api/app_deployment_api.rb b/lib/datadog_api_client/v2/api/app_deployment_api.rb deleted file mode 100644 index 692c448f5ac..00000000000 --- a/lib/datadog_api_client/v2/api/app_deployment_api.rb +++ /dev/null @@ -1,168 +0,0 @@ -=begin -#Datadog API V2 Collection - -#Collection of all Datadog Public endpoints. - -The version of the OpenAPI document: 1.0 -Contact: support@datadoghq.com -Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator - - Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. - This product includes software developed at Datadog (https://www.datadoghq.com/). - Copyright 2020-Present Datadog, Inc. - -=end - -require 'cgi' - -module DatadogAPIClient::V2 - class AppDeploymentAPI - attr_accessor :api_client - - def initialize(api_client = DatadogAPIClient::APIClient.default) - @api_client = api_client - end - - # Deploy App. - # - # @see #deploy_app_with_http_info - def deploy_app(app_id, opts = {}) - data, _status_code, _headers = deploy_app_with_http_info(app_id, opts) - data - end - - # Deploy App. - # - # Deploy (publish) an app by ID - # - # @param app_id [String] - # @param opts [Hash] the optional parameters - # @return [Array<(DeployAppResponse, Integer, Hash)>] DeployAppResponse data, response status code and response headers - def deploy_app_with_http_info(app_id, opts = {}) - unstable_enabled = @api_client.config.unstable_operations["v2.deploy_app".to_sym] - if unstable_enabled - @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.deploy_app") - else - raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.deploy_app")) - end - - if @api_client.config.debugging - @api_client.config.logger.debug 'Calling API: AppDeploymentAPI.deploy_app ...' - end - # verify the required parameter 'app_id' is set - if @api_client.config.client_side_validation && app_id.nil? - fail ArgumentError, "Missing the required parameter 'app_id' when calling AppDeploymentAPI.deploy_app" - end - # resource path - local_var_path = '/api/v2/app-builder/apps/{app_id}/deployment'.sub('{app_id}', CGI.escape(app_id.to_s).gsub('%2F', '/')) - - # query parameters - query_params = opts[:query_params] || {} - - # header parameters - header_params = opts[:header_params] || {} - # HTTP header 'Accept' (if needed) - header_params['Accept'] = @api_client.select_header_accept(['application/json']) - - # form parameters - form_params = opts[:form_params] || {} - - # http body (model) - post_body = opts[:debug_body] - - # return_type - return_type = opts[:debug_return_type] || 'DeployAppResponse' - - # auth_names - auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] - - new_options = opts.merge( - :operation => :deploy_app, - :header_params => header_params, - :query_params => query_params, - :form_params => form_params, - :body => post_body, - :auth_names => auth_names, - :return_type => return_type, - :api_version => "V2" - ) - - data, status_code, headers = @api_client.call_api(Net::HTTP::Post, local_var_path, new_options) - if @api_client.config.debugging - @api_client.config.logger.debug "API called: AppDeploymentAPI#deploy_app\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" - end - return data, status_code, headers - end - - # Disable App. - # - # @see #disable_app_with_http_info - def disable_app(app_id, opts = {}) - data, _status_code, _headers = disable_app_with_http_info(app_id, opts) - data - end - - # Disable App. - # - # Disable an app by ID - # - # @param app_id [String] - # @param opts [Hash] the optional parameters - # @return [Array<(DisableAppResponse, Integer, Hash)>] DisableAppResponse data, response status code and response headers - def disable_app_with_http_info(app_id, opts = {}) - unstable_enabled = @api_client.config.unstable_operations["v2.disable_app".to_sym] - if unstable_enabled - @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.disable_app") - else - raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.disable_app")) - end - - if @api_client.config.debugging - @api_client.config.logger.debug 'Calling API: AppDeploymentAPI.disable_app ...' - end - # verify the required parameter 'app_id' is set - if @api_client.config.client_side_validation && app_id.nil? - fail ArgumentError, "Missing the required parameter 'app_id' when calling AppDeploymentAPI.disable_app" - end - # resource path - local_var_path = '/api/v2/app-builder/apps/{app_id}/deployment'.sub('{app_id}', CGI.escape(app_id.to_s).gsub('%2F', '/')) - - # query parameters - query_params = opts[:query_params] || {} - - # header parameters - header_params = opts[:header_params] || {} - # HTTP header 'Accept' (if needed) - header_params['Accept'] = @api_client.select_header_accept(['application/json']) - - # form parameters - form_params = opts[:form_params] || {} - - # http body (model) - post_body = opts[:debug_body] - - # return_type - return_type = opts[:debug_return_type] || 'DisableAppResponse' - - # auth_names - auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] - - new_options = opts.merge( - :operation => :disable_app, - :header_params => header_params, - :query_params => query_params, - :form_params => form_params, - :body => post_body, - :auth_names => auth_names, - :return_type => return_type, - :api_version => "V2" - ) - - data, status_code, headers = @api_client.call_api(Net::HTTP::Delete, local_var_path, new_options) - if @api_client.config.debugging - @api_client.config.logger.debug "API called: AppDeploymentAPI#disable_app\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" - end - return data, status_code, headers - end - end -end diff --git a/lib/datadog_api_client/v2/api/apps_api.rb b/lib/datadog_api_client/v2/api/apps_api.rb index 9370b6c9e09..93e0533bbfd 100644 --- a/lib/datadog_api_client/v2/api/apps_api.rb +++ b/lib/datadog_api_client/v2/api/apps_api.rb @@ -240,6 +240,148 @@ def delete_apps_with_http_info(body, opts = {}) return data, status_code, headers end + # Deploy App. + # + # @see #deploy_app_with_http_info + def deploy_app(app_id, opts = {}) + data, _status_code, _headers = deploy_app_with_http_info(app_id, opts) + data + end + + # Deploy App. + # + # Deploy (publish) an app by ID + # + # @param app_id [String] + # @param opts [Hash] the optional parameters + # @return [Array<(DeployAppResponse, Integer, Hash)>] DeployAppResponse data, response status code and response headers + def deploy_app_with_http_info(app_id, opts = {}) + unstable_enabled = @api_client.config.unstable_operations["v2.deploy_app".to_sym] + if unstable_enabled + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.deploy_app") + else + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.deploy_app")) + end + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: AppsAPI.deploy_app ...' + end + # verify the required parameter 'app_id' is set + if @api_client.config.client_side_validation && app_id.nil? + fail ArgumentError, "Missing the required parameter 'app_id' when calling AppsAPI.deploy_app" + end + # resource path + local_var_path = '/api/v2/app-builder/apps/{app_id}/deployment'.sub('{app_id}', CGI.escape(app_id.to_s).gsub('%2F', '/')) + + # query parameters + query_params = opts[:query_params] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'DeployAppResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :deploy_app, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V2" + ) + + data, status_code, headers = @api_client.call_api(Net::HTTP::Post, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: AppsAPI#deploy_app\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + + # Disable App. + # + # @see #disable_app_with_http_info + def disable_app(app_id, opts = {}) + data, _status_code, _headers = disable_app_with_http_info(app_id, opts) + data + end + + # Disable App. + # + # Disable an app by ID + # + # @param app_id [String] + # @param opts [Hash] the optional parameters + # @return [Array<(DisableAppResponse, Integer, Hash)>] DisableAppResponse data, response status code and response headers + def disable_app_with_http_info(app_id, opts = {}) + unstable_enabled = @api_client.config.unstable_operations["v2.disable_app".to_sym] + if unstable_enabled + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.disable_app") + else + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.disable_app")) + end + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: AppsAPI.disable_app ...' + end + # verify the required parameter 'app_id' is set + if @api_client.config.client_side_validation && app_id.nil? + fail ArgumentError, "Missing the required parameter 'app_id' when calling AppsAPI.disable_app" + end + # resource path + local_var_path = '/api/v2/app-builder/apps/{app_id}/deployment'.sub('{app_id}', CGI.escape(app_id.to_s).gsub('%2F', '/')) + + # query parameters + query_params = opts[:query_params] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'DisableAppResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :disable_app, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V2" + ) + + data, status_code, headers = @api_client.call_api(Net::HTTP::Delete, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: AppsAPI#disable_app\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + # Get App. # # @see #get_app_with_http_info @@ -254,6 +396,7 @@ def get_app(app_id, opts = {}) # # @param app_id [String] # @param opts [Hash] the optional parameters + # @option opts [String] :version # @return [Array<(GetAppResponse, Integer, Hash)>] GetAppResponse data, response status code and response headers def get_app_with_http_info(app_id, opts = {}) unstable_enabled = @api_client.config.unstable_operations["v2.get_app".to_sym] @@ -275,6 +418,7 @@ def get_app_with_http_info(app_id, opts = {}) # query parameters query_params = opts[:query_params] || {} + query_params[:'version'] = opts[:'version'] if !opts[:'version'].nil? # header parameters header_params = opts[:header_params] || {} @@ -324,16 +468,17 @@ def list_apps(opts = {}) # List all apps, with optional filters and sorting # # @param opts [Hash] the optional parameters - # @option opts [Integer] :limit The number of apps to return per page - # @option opts [Integer] :page The page number to return - # @option opts [String] :filter_user_name The `AppsFilter` `user_name`. - # @option opts [String] :filter_user_uuid The `AppsFilter` `user_uuid`. - # @option opts [String] :filter_name The `AppsFilter` `name`. - # @option opts [String] :filter_query The `AppsFilter` `query`. - # @option opts [Boolean] :filter_deployed The `AppsFilter` `deployed`. - # @option opts [String] :filter_tags The `AppsFilter` `tags`. - # @option opts [Boolean] :filter_favorite The `AppsFilter` `favorite`. - # @option opts [Array] :sort + # @option opts [Integer] :limit The number of apps to return per page. + # @option opts [Integer] :page The page number to return. + # @option opts [String] :filter_user_name Filter apps by the app creator. Usually the user's email. + # @option opts [UUID] :filter_user_uuid Filter apps by the app creator's UUID. + # @option opts [String] :filter_name Filter by app name. + # @option opts [String] :filter_query Filter apps by the app name or the app creator. + # @option opts [Boolean] :filter_deployed Filter apps by whether they are published. + # @option opts [String] :filter_tags Filter apps by tags. + # @option opts [Boolean] :filter_favorite Filter apps by whether you have added them to your favorites. + # @option opts [Boolean] :filter_self_service Filter apps by whether they are enabled for self-service. + # @option opts [Array] :sort The fields and direction to sort apps by. # @return [Array<(ListAppsResponse, Integer, Hash)>] ListAppsResponse data, response status code and response headers def list_apps_with_http_info(opts = {}) unstable_enabled = @api_client.config.unstable_operations["v2.list_apps".to_sym] @@ -360,6 +505,7 @@ def list_apps_with_http_info(opts = {}) query_params[:'filter[deployed]'] = opts[:'filter_deployed'] if !opts[:'filter_deployed'].nil? query_params[:'filter[tags]'] = opts[:'filter_tags'] if !opts[:'filter_tags'].nil? query_params[:'filter[favorite]'] = opts[:'filter_favorite'] if !opts[:'filter_favorite'].nil? + query_params[:'filter[self_service]'] = opts[:'filter_self_service'] if !opts[:'filter_self_service'].nil? query_params[:'sort'] = @api_client.build_collection_param(opts[:'sort'], :csv) if !opts[:'sort'].nil? # header parameters diff --git a/lib/datadog_api_client/v2/models/app_builder_error.rb b/lib/datadog_api_client/v2/models/app_builder_error.rb deleted file mode 100644 index 583057f34b4..00000000000 --- a/lib/datadog_api_client/v2/models/app_builder_error.rb +++ /dev/null @@ -1,107 +0,0 @@ -=begin -#Datadog API V2 Collection - -#Collection of all Datadog Public endpoints. - -The version of the OpenAPI document: 1.0 -Contact: support@datadoghq.com -Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator - - Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. - This product includes software developed at Datadog (https://www.datadoghq.com/). - Copyright 2020-Present Datadog, Inc. - -=end - -require 'date' -require 'time' - -module DatadogAPIClient::V2 - # The definition of `AppBuilderError` object. - class AppBuilderError - include BaseGenericModel - - # The `AppBuilderError` `errors`. - attr_accessor :errors - - attr_accessor :additional_properties - - # Attribute mapping from ruby-style variable name to JSON key. - # @!visibility private - def self.attribute_map - { - :'errors' => :'errors' - } - end - - # Attribute type mapping. - # @!visibility private - def self.openapi_types - { - :'errors' => :'Array' - } - end - - # Initializes the object - # @param attributes [Hash] Model attributes in the form of hash - # @!visibility private - def initialize(attributes = {}) - if (!attributes.is_a?(Hash)) - fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::AppBuilderError` initialize method" - end - - self.additional_properties = {} - # check to see if the attribute exists and convert string to symbol for hash key - attributes = attributes.each_with_object({}) { |(k, v), h| - if (!self.class.attribute_map.key?(k.to_sym)) - self.additional_properties[k.to_sym] = v - else - h[k.to_sym] = v - end - } - - if attributes.key?(:'errors') - if (value = attributes[:'errors']).is_a?(Array) - self.errors = value - end - end - end - - # Returns the object in the form of hash, with additionalProperties support. - # @return [Hash] Returns the object in the form of hash - # @!visibility private - def to_hash - hash = {} - self.class.attribute_map.each_pair do |attr, param| - value = self.send(attr) - if value.nil? - is_nullable = self.class.openapi_nullable.include?(attr) - next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) - end - - hash[param] = _to_hash(value) - end - self.additional_properties.each_pair do |attr, value| - hash[attr] = value - end - hash - end - - # Checks equality by comparing each attribute. - # @param o [Object] Object to be compared - # @!visibility private - def ==(o) - return true if self.equal?(o) - self.class == o.class && - errors == o.errors && - additional_properties == o.additional_properties - end - - # Calculates hash code according to all attributes. - # @return [Integer] Hash code - # @!visibility private - def hash - [errors, additional_properties].hash - end - end -end diff --git a/lib/datadog_api_client/v2/models/app_builder_error_errors_items.rb b/lib/datadog_api_client/v2/models/app_builder_error_errors_items.rb deleted file mode 100644 index a29afee0631..00000000000 --- a/lib/datadog_api_client/v2/models/app_builder_error_errors_items.rb +++ /dev/null @@ -1,115 +0,0 @@ -=begin -#Datadog API V2 Collection - -#Collection of all Datadog Public endpoints. - -The version of the OpenAPI document: 1.0 -Contact: support@datadoghq.com -Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator - - Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. - This product includes software developed at Datadog (https://www.datadoghq.com/). - Copyright 2020-Present Datadog, Inc. - -=end - -require 'date' -require 'time' - -module DatadogAPIClient::V2 - # The definition of `AppBuilderErrorErrorsItems` object. - class AppBuilderErrorErrorsItems - include BaseGenericModel - - # The `items` `detail`. - attr_accessor :detail - - # The definition of `AppBuilderErrorErrorsItemsSource` object. - attr_accessor :source - - attr_accessor :additional_properties - - # Attribute mapping from ruby-style variable name to JSON key. - # @!visibility private - def self.attribute_map - { - :'detail' => :'detail', - :'source' => :'source' - } - end - - # Attribute type mapping. - # @!visibility private - def self.openapi_types - { - :'detail' => :'String', - :'source' => :'AppBuilderErrorErrorsItemsSource' - } - end - - # Initializes the object - # @param attributes [Hash] Model attributes in the form of hash - # @!visibility private - def initialize(attributes = {}) - if (!attributes.is_a?(Hash)) - fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::AppBuilderErrorErrorsItems` initialize method" - end - - self.additional_properties = {} - # check to see if the attribute exists and convert string to symbol for hash key - attributes = attributes.each_with_object({}) { |(k, v), h| - if (!self.class.attribute_map.key?(k.to_sym)) - self.additional_properties[k.to_sym] = v - else - h[k.to_sym] = v - end - } - - if attributes.key?(:'detail') - self.detail = attributes[:'detail'] - end - - if attributes.key?(:'source') - self.source = attributes[:'source'] - end - end - - # Returns the object in the form of hash, with additionalProperties support. - # @return [Hash] Returns the object in the form of hash - # @!visibility private - def to_hash - hash = {} - self.class.attribute_map.each_pair do |attr, param| - value = self.send(attr) - if value.nil? - is_nullable = self.class.openapi_nullable.include?(attr) - next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) - end - - hash[param] = _to_hash(value) - end - self.additional_properties.each_pair do |attr, value| - hash[attr] = value - end - hash - end - - # Checks equality by comparing each attribute. - # @param o [Object] Object to be compared - # @!visibility private - def ==(o) - return true if self.equal?(o) - self.class == o.class && - detail == o.detail && - source == o.source && - additional_properties == o.additional_properties - end - - # Calculates hash code according to all attributes. - # @return [Integer] Hash code - # @!visibility private - def hash - [detail, source, additional_properties].hash - end - end -end diff --git a/lib/datadog_api_client/v2/models/app_builder_error_errors_items_source.rb b/lib/datadog_api_client/v2/models/app_builder_error_errors_items_source.rb deleted file mode 100644 index adfcaee5a94..00000000000 --- a/lib/datadog_api_client/v2/models/app_builder_error_errors_items_source.rb +++ /dev/null @@ -1,115 +0,0 @@ -=begin -#Datadog API V2 Collection - -#Collection of all Datadog Public endpoints. - -The version of the OpenAPI document: 1.0 -Contact: support@datadoghq.com -Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator - - Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. - This product includes software developed at Datadog (https://www.datadoghq.com/). - Copyright 2020-Present Datadog, Inc. - -=end - -require 'date' -require 'time' - -module DatadogAPIClient::V2 - # The definition of `AppBuilderErrorErrorsItemsSource` object. - class AppBuilderErrorErrorsItemsSource - include BaseGenericModel - - # The `source` `parameter`. - attr_accessor :parameter - - # The `source` `pointer`. - attr_accessor :pointer - - attr_accessor :additional_properties - - # Attribute mapping from ruby-style variable name to JSON key. - # @!visibility private - def self.attribute_map - { - :'parameter' => :'parameter', - :'pointer' => :'pointer' - } - end - - # Attribute type mapping. - # @!visibility private - def self.openapi_types - { - :'parameter' => :'String', - :'pointer' => :'String' - } - end - - # Initializes the object - # @param attributes [Hash] Model attributes in the form of hash - # @!visibility private - def initialize(attributes = {}) - if (!attributes.is_a?(Hash)) - fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::AppBuilderErrorErrorsItemsSource` initialize method" - end - - self.additional_properties = {} - # check to see if the attribute exists and convert string to symbol for hash key - attributes = attributes.each_with_object({}) { |(k, v), h| - if (!self.class.attribute_map.key?(k.to_sym)) - self.additional_properties[k.to_sym] = v - else - h[k.to_sym] = v - end - } - - if attributes.key?(:'parameter') - self.parameter = attributes[:'parameter'] - end - - if attributes.key?(:'pointer') - self.pointer = attributes[:'pointer'] - end - end - - # Returns the object in the form of hash, with additionalProperties support. - # @return [Hash] Returns the object in the form of hash - # @!visibility private - def to_hash - hash = {} - self.class.attribute_map.each_pair do |attr, param| - value = self.send(attr) - if value.nil? - is_nullable = self.class.openapi_nullable.include?(attr) - next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) - end - - hash[param] = _to_hash(value) - end - self.additional_properties.each_pair do |attr, value| - hash[attr] = value - end - hash - end - - # Checks equality by comparing each attribute. - # @param o [Object] Object to be compared - # @!visibility private - def ==(o) - return true if self.equal?(o) - self.class == o.class && - parameter == o.parameter && - pointer == o.pointer && - additional_properties == o.additional_properties - end - - # Calculates hash code according to all attributes. - # @return [Integer] Hash code - # @!visibility private - def hash - [parameter, pointer, additional_properties].hash - end - end -end diff --git a/lib/datadog_api_client/v2/models/app_meta.rb b/lib/datadog_api_client/v2/models/app_meta.rb index 25cccb23a84..3a6949607f5 100644 --- a/lib/datadog_api_client/v2/models/app_meta.rb +++ b/lib/datadog_api_client/v2/models/app_meta.rb @@ -82,7 +82,7 @@ def self.openapi_types :'updated_since_deployment' => :'Boolean', :'user_id' => :'Integer', :'user_name' => :'String', - :'user_uuid' => :'String', + :'user_uuid' => :'UUID', :'version' => :'Integer' } end diff --git a/lib/datadog_api_client/v2/models/deployment_included_meta.rb b/lib/datadog_api_client/v2/models/deployment_included_meta.rb index f1c20bf0972..2b267f97458 100644 --- a/lib/datadog_api_client/v2/models/deployment_included_meta.rb +++ b/lib/datadog_api_client/v2/models/deployment_included_meta.rb @@ -53,7 +53,7 @@ def self.openapi_types :'created_at' => :'String', :'user_id' => :'Integer', :'user_name' => :'String', - :'user_uuid' => :'String' + :'user_uuid' => :'UUID' } end diff --git a/lib/datadog_api_client/v2/models/deployment_meta.rb b/lib/datadog_api_client/v2/models/deployment_meta.rb index f70765963f7..343c0bbbaaf 100644 --- a/lib/datadog_api_client/v2/models/deployment_meta.rb +++ b/lib/datadog_api_client/v2/models/deployment_meta.rb @@ -53,7 +53,7 @@ def self.openapi_types :'created_at' => :'String', :'user_id' => :'Integer', :'user_name' => :'String', - :'user_uuid' => :'String' + :'user_uuid' => :'UUID' } end diff --git a/lib/datadog_api_client/v2/models/deployment_relationship_meta.rb b/lib/datadog_api_client/v2/models/deployment_relationship_meta.rb index 0d653a7b689..5d75320dab2 100644 --- a/lib/datadog_api_client/v2/models/deployment_relationship_meta.rb +++ b/lib/datadog_api_client/v2/models/deployment_relationship_meta.rb @@ -53,7 +53,7 @@ def self.openapi_types :'created_at' => :'String', :'user_id' => :'Integer', :'user_name' => :'String', - :'user_uuid' => :'String' + :'user_uuid' => :'UUID' } end