From 0dc576922db87f446e83c681b4086c4f205ea806 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Wed, 20 May 2026 16:54:11 +0000 Subject: [PATCH] Regenerate client from commit 4bd3443 of spec repo --- examples/v2/app-builder/ListAppVersions.py | 7 +- examples/v2/app-builder/UpdateAppFavorite.py | 7 +- .../v2/app-builder/UpdateAppSelfService.py | 7 +- examples/v2/app-builder/UpdateAppTags.py | 7 +- .../v2/app-builder/UpdateAppVersionName.py | 9 +- .../v2/app-builder/UpdateProtectionLevel.py | 7 +- ..._request_returns_not_found_response.frozen | 1 + ...sh_request_returns_not_found_response.yaml | 23 ++++ ...versions_returns_not_found_response.frozen | 1 + ...p_versions_returns_not_found_response.yaml | 20 ++++ ...st_app_versions_returns_ok_response.frozen | 1 + ...list_app_versions_returns_ok_response.yaml | 69 ++++++++++++ ...version_returns_no_content_response.frozen | 1 + ...p_version_returns_no_content_response.yaml | 64 +++++++++++ ..._version_returns_not_found_response.frozen | 1 + ...pp_version_returns_not_found_response.yaml | 22 ++++ ...vert_app_returns_not_found_response.frozen | 1 + ...revert_app_returns_not_found_response.yaml | 20 ++++ ..._status_returns_no_content_response.frozen | 1 + ...te_status_returns_no_content_response.yaml | 64 +++++++++++ ...e_status_returns_not_found_response.frozen | 1 + ...ite_status_returns_not_found_response.yaml | 22 ++++ ...on_level_returns_not_found_response.frozen | 1 + ...tion_level_returns_not_found_response.yaml | 22 ++++ ...rotection_level_returns_ok_response.frozen | 1 + ..._protection_level_returns_ok_response.yaml | 78 +++++++++++++ ..._status_returns_no_content_response.frozen | 1 + ...ce_status_returns_no_content_response.yaml | 64 +++++++++++ ...e_status_returns_not_found_response.frozen | 1 + ...ice_status_returns_not_found_response.yaml | 22 ++++ ...pp_tags_returns_no_content_response.frozen | 1 + ..._app_tags_returns_no_content_response.yaml | 64 +++++++++++ ...app_tags_returns_not_found_response.frozen | 1 + ...e_app_tags_returns_not_found_response.yaml | 22 ++++ tests/v2/features/app_builder.feature | 105 ++++++++++-------- 35 files changed, 676 insertions(+), 63 deletions(-) create mode 100644 tests/v2/cassettes/test_scenarios/test_create_publish_request_returns_not_found_response.frozen create mode 100644 tests/v2/cassettes/test_scenarios/test_create_publish_request_returns_not_found_response.yaml create mode 100644 tests/v2/cassettes/test_scenarios/test_list_app_versions_returns_not_found_response.frozen create mode 100644 tests/v2/cassettes/test_scenarios/test_list_app_versions_returns_not_found_response.yaml create mode 100644 tests/v2/cassettes/test_scenarios/test_list_app_versions_returns_ok_response.frozen create mode 100644 tests/v2/cassettes/test_scenarios/test_list_app_versions_returns_ok_response.yaml create mode 100644 tests/v2/cassettes/test_scenarios/test_name_app_version_returns_no_content_response.frozen create mode 100644 tests/v2/cassettes/test_scenarios/test_name_app_version_returns_no_content_response.yaml create mode 100644 tests/v2/cassettes/test_scenarios/test_name_app_version_returns_not_found_response.frozen create mode 100644 tests/v2/cassettes/test_scenarios/test_name_app_version_returns_not_found_response.yaml create mode 100644 tests/v2/cassettes/test_scenarios/test_revert_app_returns_not_found_response.frozen create mode 100644 tests/v2/cassettes/test_scenarios/test_revert_app_returns_not_found_response.yaml create mode 100644 tests/v2/cassettes/test_scenarios/test_update_app_favorite_status_returns_no_content_response.frozen create mode 100644 tests/v2/cassettes/test_scenarios/test_update_app_favorite_status_returns_no_content_response.yaml create mode 100644 tests/v2/cassettes/test_scenarios/test_update_app_favorite_status_returns_not_found_response.frozen create mode 100644 tests/v2/cassettes/test_scenarios/test_update_app_favorite_status_returns_not_found_response.yaml create mode 100644 tests/v2/cassettes/test_scenarios/test_update_app_protection_level_returns_not_found_response.frozen create mode 100644 tests/v2/cassettes/test_scenarios/test_update_app_protection_level_returns_not_found_response.yaml create mode 100644 tests/v2/cassettes/test_scenarios/test_update_app_protection_level_returns_ok_response.frozen create mode 100644 tests/v2/cassettes/test_scenarios/test_update_app_protection_level_returns_ok_response.yaml create mode 100644 tests/v2/cassettes/test_scenarios/test_update_app_selfservice_status_returns_no_content_response.frozen create mode 100644 tests/v2/cassettes/test_scenarios/test_update_app_selfservice_status_returns_no_content_response.yaml create mode 100644 tests/v2/cassettes/test_scenarios/test_update_app_selfservice_status_returns_not_found_response.frozen create mode 100644 tests/v2/cassettes/test_scenarios/test_update_app_selfservice_status_returns_not_found_response.yaml create mode 100644 tests/v2/cassettes/test_scenarios/test_update_app_tags_returns_no_content_response.frozen create mode 100644 tests/v2/cassettes/test_scenarios/test_update_app_tags_returns_no_content_response.yaml create mode 100644 tests/v2/cassettes/test_scenarios/test_update_app_tags_returns_not_found_response.frozen create mode 100644 tests/v2/cassettes/test_scenarios/test_update_app_tags_returns_not_found_response.yaml diff --git a/examples/v2/app-builder/ListAppVersions.py b/examples/v2/app-builder/ListAppVersions.py index 984b9f327d..60afde4734 100644 --- a/examples/v2/app-builder/ListAppVersions.py +++ b/examples/v2/app-builder/ListAppVersions.py @@ -2,15 +2,18 @@ List App Versions returns "OK" response """ +from os import environ from datadog_api_client import ApiClient, Configuration from datadog_api_client.v2.api.app_builder_api import AppBuilderApi -from uuid import UUID + +# there is a valid "app" in the system +APP_DATA_ID = environ["APP_DATA_ID"] configuration = Configuration() with ApiClient(configuration) as api_client: api_instance = AppBuilderApi(api_client) response = api_instance.list_app_versions( - app_id=UUID("9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"), + app_id=APP_DATA_ID, ) print(response) diff --git a/examples/v2/app-builder/UpdateAppFavorite.py b/examples/v2/app-builder/UpdateAppFavorite.py index 9516fec356..529acc9f97 100644 --- a/examples/v2/app-builder/UpdateAppFavorite.py +++ b/examples/v2/app-builder/UpdateAppFavorite.py @@ -2,6 +2,7 @@ Update App Favorite Status returns "No Content" response """ +from os import environ from datadog_api_client import ApiClient, Configuration from datadog_api_client.v2.api.app_builder_api import AppBuilderApi from datadog_api_client.v2.model.app_favorite_type import AppFavoriteType @@ -10,7 +11,9 @@ from datadog_api_client.v2.model.update_app_favorite_request_data_attributes import ( UpdateAppFavoriteRequestDataAttributes, ) -from uuid import UUID + +# there is a valid "app" in the system +APP_DATA_ID = environ["APP_DATA_ID"] body = UpdateAppFavoriteRequest( data=UpdateAppFavoriteRequestData( @@ -24,4 +27,4 @@ configuration = Configuration() with ApiClient(configuration) as api_client: api_instance = AppBuilderApi(api_client) - api_instance.update_app_favorite(app_id=UUID("9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"), body=body) + api_instance.update_app_favorite(app_id=APP_DATA_ID, body=body) diff --git a/examples/v2/app-builder/UpdateAppSelfService.py b/examples/v2/app-builder/UpdateAppSelfService.py index adbecc93ca..4c4a08d442 100644 --- a/examples/v2/app-builder/UpdateAppSelfService.py +++ b/examples/v2/app-builder/UpdateAppSelfService.py @@ -2,6 +2,7 @@ Update App Self-Service Status returns "No Content" response """ +from os import environ from datadog_api_client import ApiClient, Configuration from datadog_api_client.v2.api.app_builder_api import AppBuilderApi from datadog_api_client.v2.model.app_self_service_type import AppSelfServiceType @@ -10,7 +11,9 @@ from datadog_api_client.v2.model.update_app_self_service_request_data_attributes import ( UpdateAppSelfServiceRequestDataAttributes, ) -from uuid import UUID + +# there is a valid "app" in the system +APP_DATA_ID = environ["APP_DATA_ID"] body = UpdateAppSelfServiceRequest( data=UpdateAppSelfServiceRequestData( @@ -24,4 +27,4 @@ configuration = Configuration() with ApiClient(configuration) as api_client: api_instance = AppBuilderApi(api_client) - api_instance.update_app_self_service(app_id=UUID("9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"), body=body) + api_instance.update_app_self_service(app_id=APP_DATA_ID, body=body) diff --git a/examples/v2/app-builder/UpdateAppTags.py b/examples/v2/app-builder/UpdateAppTags.py index f17a84daf0..5d7579bbbc 100644 --- a/examples/v2/app-builder/UpdateAppTags.py +++ b/examples/v2/app-builder/UpdateAppTags.py @@ -2,13 +2,16 @@ Update App Tags returns "No Content" response """ +from os import environ from datadog_api_client import ApiClient, Configuration from datadog_api_client.v2.api.app_builder_api import AppBuilderApi from datadog_api_client.v2.model.app_tags_type import AppTagsType from datadog_api_client.v2.model.update_app_tags_request import UpdateAppTagsRequest from datadog_api_client.v2.model.update_app_tags_request_data import UpdateAppTagsRequestData from datadog_api_client.v2.model.update_app_tags_request_data_attributes import UpdateAppTagsRequestDataAttributes -from uuid import UUID + +# there is a valid "app" in the system +APP_DATA_ID = environ["APP_DATA_ID"] body = UpdateAppTagsRequest( data=UpdateAppTagsRequestData( @@ -25,4 +28,4 @@ configuration = Configuration() with ApiClient(configuration) as api_client: api_instance = AppBuilderApi(api_client) - api_instance.update_app_tags(app_id=UUID("9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"), body=body) + api_instance.update_app_tags(app_id=APP_DATA_ID, body=body) diff --git a/examples/v2/app-builder/UpdateAppVersionName.py b/examples/v2/app-builder/UpdateAppVersionName.py index 24810d300d..f0ea7a1b21 100644 --- a/examples/v2/app-builder/UpdateAppVersionName.py +++ b/examples/v2/app-builder/UpdateAppVersionName.py @@ -2,6 +2,7 @@ Name App Version returns "No Content" response """ +from os import environ from datadog_api_client import ApiClient, Configuration from datadog_api_client.v2.api.app_builder_api import AppBuilderApi from datadog_api_client.v2.model.app_version_name_type import AppVersionNameType @@ -10,7 +11,9 @@ from datadog_api_client.v2.model.update_app_version_name_request_data_attributes import ( UpdateAppVersionNameRequestDataAttributes, ) -from uuid import UUID + +# there is a valid "app" in the system +APP_DATA_ID = environ["APP_DATA_ID"] body = UpdateAppVersionNameRequest( data=UpdateAppVersionNameRequestData( @@ -24,6 +27,4 @@ configuration = Configuration() with ApiClient(configuration) as api_client: api_instance = AppBuilderApi(api_client) - api_instance.update_app_version_name( - app_id=UUID("9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"), version="version", body=body - ) + api_instance.update_app_version_name(app_id=APP_DATA_ID, version="latest", body=body) diff --git a/examples/v2/app-builder/UpdateProtectionLevel.py b/examples/v2/app-builder/UpdateProtectionLevel.py index a4962bd9f5..9fac60ec95 100644 --- a/examples/v2/app-builder/UpdateProtectionLevel.py +++ b/examples/v2/app-builder/UpdateProtectionLevel.py @@ -2,6 +2,7 @@ Update App Protection Level returns "OK" response """ +from os import environ from datadog_api_client import ApiClient, Configuration from datadog_api_client.v2.api.app_builder_api import AppBuilderApi from datadog_api_client.v2.model.app_protection_level import AppProtectionLevel @@ -11,7 +12,9 @@ from datadog_api_client.v2.model.update_app_protection_level_request_data_attributes import ( UpdateAppProtectionLevelRequestDataAttributes, ) -from uuid import UUID + +# there is a valid "app" in the system +APP_DATA_ID = environ["APP_DATA_ID"] body = UpdateAppProtectionLevelRequest( data=UpdateAppProtectionLevelRequestData( @@ -25,6 +28,6 @@ configuration = Configuration() with ApiClient(configuration) as api_client: api_instance = AppBuilderApi(api_client) - response = api_instance.update_protection_level(app_id=UUID("9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"), body=body) + response = api_instance.update_protection_level(app_id=APP_DATA_ID, body=body) print(response) diff --git a/tests/v2/cassettes/test_scenarios/test_create_publish_request_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_create_publish_request_returns_not_found_response.frozen new file mode 100644 index 0000000000..3630c84dd5 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_create_publish_request_returns_not_found_response.frozen @@ -0,0 +1 @@ +2026-05-18T19:51:47.462Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_create_publish_request_returns_not_found_response.yaml b/tests/v2/cassettes/test_scenarios/test_create_publish_request_returns_not_found_response.yaml new file mode 100644 index 0000000000..eb13a02de2 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_create_publish_request_returns_not_found_response.yaml @@ -0,0 +1,23 @@ +interactions: +- request: + body: '{"data":{"attributes":{"description":"Adds new dashboard widgets and a + few bug fixes.","title":"Release v1.2 to production"},"type":"publishRequest"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/app-builder/apps/7addb29b-f935-472c-ae79-d1963979a23e/publish-request + response: + body: + string: '{"errors":[{"status":"404","id":"c9247d40-2291-4860-90ac-9c2441ff23db","title":"app + not found","detail":"app with id 7addb29b-f935-472c-ae79-d1963979a23e not + found"}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_list_app_versions_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_list_app_versions_returns_not_found_response.frozen new file mode 100644 index 0000000000..25a432b084 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_list_app_versions_returns_not_found_response.frozen @@ -0,0 +1 @@ +2026-05-18T19:51:53.216Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_list_app_versions_returns_not_found_response.yaml b/tests/v2/cassettes/test_scenarios/test_list_app_versions_returns_not_found_response.yaml new file mode 100644 index 0000000000..a5c5bef13f --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_list_app_versions_returns_not_found_response.yaml @@ -0,0 +1,20 @@ +interactions: +- request: + body: null + headers: + accept: + - application/json + method: GET + uri: https://api.datadoghq.com/api/v2/app-builder/apps/7addb29b-f935-472c-ae79-d1963979a23e/versions + response: + body: + string: '{"errors":[{"status":"404","id":"4dfd53b4-6987-4868-b330-af0535219c61","title":"app + not found","detail":"app with id 7addb29b-f935-472c-ae79-d1963979a23e not + found"}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_list_app_versions_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_list_app_versions_returns_ok_response.frozen new file mode 100644 index 0000000000..f134f19041 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_list_app_versions_returns_ok_response.frozen @@ -0,0 +1 @@ +2026-05-18T19:51:53.386Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_list_app_versions_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_list_app_versions_returns_ok_response.yaml new file mode 100644 index 0000000000..70b9164730 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_list_app_versions_returns_ok_response.yaml @@ -0,0 +1,69 @@ +interactions: +- request: + body: '{"data":{"attributes":{"components":[{"events":[],"name":"grid0","properties":{"backgroundColor":"default","children":[{"events":[],"name":"gridCell0","properties":{"children":[{"events":[],"name":"text0","properties":{"content":"# + Cat Facts","contentType":"markdown","isVisible":true,"textAlign":"left","verticalAlign":"top"},"type":"text"}],"isVisible":"true","layout":{"default":{"height":5,"width":4,"x":0,"y":0}}},"type":"gridCell"},{"events":[],"name":"gridCell2","properties":{"children":[{"events":[],"name":"table0","properties":{"columns":[{"dataPath":"fact","header":"fact","id":"0ae2ae9e-0280-4389-83c6-1c5949f7e674","isHidden":false},{"dataPath":"length","header":"length","id":"c9048611-0196-4a00-9366-1ef9e3ec0408","isHidden":true},{"dataPath":"Due + Date","disableSortBy":false,"formatter":{"format":"LARGE_WITHOUT_TIME","type":"formatted_time"},"header":"Unused + Old Column","id":"8fa9284b-7a58-4f13-9959-57b7d8a7fe8f","isDeleted":true}],"data":"${fetchFacts?.outputs?.body?.data}","globalFilter":false,"isLoading":"${fetchFacts?.isLoading}","isScrollable":"vertical","isSubRowsEnabled":false,"isVisible":true,"isWrappable":false,"pageSize":"${pageSize?.value}","paginationType":"server_side","rowButtons":[],"summary":true,"totalCount":"${fetchFacts?.outputs?.body?.total}"},"type":"table"}],"isVisible":"true","layout":{"default":{"height":96,"width":12,"x":0,"y":5}}},"type":"gridCell"},{"events":[],"name":"gridCell1","properties":{"children":[{"events":[],"name":"text1","properties":{"content":"## + Random Fact\n\n${randomFact?.outputs?.fact}","contentType":"markdown","isVisible":true,"textAlign":"left","verticalAlign":"top"},"type":"text"}],"isVisible":"true","layout":{"default":{"height":16,"width":12,"x":0,"y":101}}},"type":"gridCell"},{"events":[],"name":"gridCell3","properties":{"children":[{"events":[{"name":"click","type":"setStateVariableValue","value":"${pageSize?.value + + 1}","variableName":"pageSize"}],"name":"button0","properties":{"iconLeft":"angleUp","iconRight":"","isBorderless":false,"isDisabled":false,"isLoading":false,"isPrimary":true,"isVisible":true,"label":"Increase + Page Size","level":"default"},"type":"button"}],"isVisible":"true","layout":{"default":{"height":4,"width":2,"x":10,"y":134}}},"type":"gridCell"},{"events":[],"name":"gridCell4","properties":{"children":[{"events":[{"name":"click","type":"setStateVariableValue","value":"${pageSize?.value + - 1}","variableName":"pageSize"}],"name":"button1","properties":{"iconLeft":"angleDown","iconRight":"","isBorderless":false,"isDisabled":false,"isLoading":false,"isPrimary":true,"isVisible":true,"label":"Decrease + Page Size","level":"default"},"type":"button"}],"isVisible":"true","layout":{"default":{"height":4,"width":2,"x":10,"y":138}}},"type":"gridCell"}]},"type":"grid"}],"description":"This + is a slightly complicated example app that fetches and displays cat facts","name":"Example + Cat Facts Viewer","queries":[{"events":[],"id":"92ff0bb8-553b-4f31-87c7-ef5bd16d47d5","name":"fetchFacts","properties":{"spec":{"connectionId":"5e63f4a8-4ce6-47de-ba11-f6617c1d54f3","fqn":"com.datadoghq.http.request","inputs":{"url":"https://catfact.ninja/facts","urlParams":[{"key":"limit","value":"${pageSize.value.toString()}"},{"key":"page","value":"${(table0.pageIndex + + 1).toString()}"}],"verb":"GET"}}},"type":"action"},{"id":"afd03c81-4075-4432-8618-ba09d52d2f2d","name":"pageSize","properties":{"defaultValue":"${20}"},"type":"stateVariable"},{"id":"0fb22859-47dc-4137-9e41-7b67d04c525c","name":"randomFact","properties":{"outputs":"${(() + => {const facts = fetchFacts.outputs.body.data\nreturn facts[Math.floor(Math.random()*facts.length)]\n})()}"},"type":"dataTransform"}],"rootInstanceName":"grid0"},"type":"appDefinitions"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/app-builder/apps + response: + body: + string: '{"data":{"id":"d928ecbc-acfe-4126-96f6-092fa0a01416","type":"appDefinitions"}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: null + headers: + accept: + - application/json + method: GET + uri: https://api.datadoghq.com/api/v2/app-builder/apps/d928ecbc-acfe-4126-96f6-092fa0a01416/versions + response: + body: + string: '{"data": [{"id": "98cd3a5a-644d-41fd-8ffa-e58e21e8e21b", "type": "appVersions", + "attributes": {"app_id": "d928ecbc-acfe-4126-96f6-092fa0a01416", "created_at": + "2026-05-18T19:51:53.59976Z", "has_ever_been_published": false, "updated_at": + "2026-05-18T19:51:53.59976Z", "user_id": 1445416, "user_name": "", "user_uuid": + "3ad549bf-eba0-11e9-a77a-0705486660d0", "version": 1}}], "meta": {"page": + {"totalCount": 1, "totalFilteredCount": 0}}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 200 + message: OK +- request: + body: null + headers: + accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v2/app-builder/apps/d928ecbc-acfe-4126-96f6-092fa0a01416 + response: + body: + string: '{"data": {"id": "d928ecbc-acfe-4126-96f6-092fa0a01416", "type": "appDefinitions"}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 200 + message: OK +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_name_app_version_returns_no_content_response.frozen b/tests/v2/cassettes/test_scenarios/test_name_app_version_returns_no_content_response.frozen new file mode 100644 index 0000000000..b224652513 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_name_app_version_returns_no_content_response.frozen @@ -0,0 +1 @@ +2026-05-18T19:51:55.262Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_name_app_version_returns_no_content_response.yaml b/tests/v2/cassettes/test_scenarios/test_name_app_version_returns_no_content_response.yaml new file mode 100644 index 0000000000..24f6832e38 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_name_app_version_returns_no_content_response.yaml @@ -0,0 +1,64 @@ +interactions: +- request: + body: '{"data":{"attributes":{"components":[{"events":[],"name":"grid0","properties":{"backgroundColor":"default","children":[{"events":[],"name":"gridCell0","properties":{"children":[{"events":[],"name":"text0","properties":{"content":"# + Cat Facts","contentType":"markdown","isVisible":true,"textAlign":"left","verticalAlign":"top"},"type":"text"}],"isVisible":"true","layout":{"default":{"height":5,"width":4,"x":0,"y":0}}},"type":"gridCell"},{"events":[],"name":"gridCell2","properties":{"children":[{"events":[],"name":"table0","properties":{"columns":[{"dataPath":"fact","header":"fact","id":"0ae2ae9e-0280-4389-83c6-1c5949f7e674","isHidden":false},{"dataPath":"length","header":"length","id":"c9048611-0196-4a00-9366-1ef9e3ec0408","isHidden":true},{"dataPath":"Due + Date","disableSortBy":false,"formatter":{"format":"LARGE_WITHOUT_TIME","type":"formatted_time"},"header":"Unused + Old Column","id":"8fa9284b-7a58-4f13-9959-57b7d8a7fe8f","isDeleted":true}],"data":"${fetchFacts?.outputs?.body?.data}","globalFilter":false,"isLoading":"${fetchFacts?.isLoading}","isScrollable":"vertical","isSubRowsEnabled":false,"isVisible":true,"isWrappable":false,"pageSize":"${pageSize?.value}","paginationType":"server_side","rowButtons":[],"summary":true,"totalCount":"${fetchFacts?.outputs?.body?.total}"},"type":"table"}],"isVisible":"true","layout":{"default":{"height":96,"width":12,"x":0,"y":5}}},"type":"gridCell"},{"events":[],"name":"gridCell1","properties":{"children":[{"events":[],"name":"text1","properties":{"content":"## + Random Fact\n\n${randomFact?.outputs?.fact}","contentType":"markdown","isVisible":true,"textAlign":"left","verticalAlign":"top"},"type":"text"}],"isVisible":"true","layout":{"default":{"height":16,"width":12,"x":0,"y":101}}},"type":"gridCell"},{"events":[],"name":"gridCell3","properties":{"children":[{"events":[{"name":"click","type":"setStateVariableValue","value":"${pageSize?.value + + 1}","variableName":"pageSize"}],"name":"button0","properties":{"iconLeft":"angleUp","iconRight":"","isBorderless":false,"isDisabled":false,"isLoading":false,"isPrimary":true,"isVisible":true,"label":"Increase + Page Size","level":"default"},"type":"button"}],"isVisible":"true","layout":{"default":{"height":4,"width":2,"x":10,"y":134}}},"type":"gridCell"},{"events":[],"name":"gridCell4","properties":{"children":[{"events":[{"name":"click","type":"setStateVariableValue","value":"${pageSize?.value + - 1}","variableName":"pageSize"}],"name":"button1","properties":{"iconLeft":"angleDown","iconRight":"","isBorderless":false,"isDisabled":false,"isLoading":false,"isPrimary":true,"isVisible":true,"label":"Decrease + Page Size","level":"default"},"type":"button"}],"isVisible":"true","layout":{"default":{"height":4,"width":2,"x":10,"y":138}}},"type":"gridCell"}]},"type":"grid"}],"description":"This + is a slightly complicated example app that fetches and displays cat facts","name":"Example + Cat Facts Viewer","queries":[{"events":[],"id":"92ff0bb8-553b-4f31-87c7-ef5bd16d47d5","name":"fetchFacts","properties":{"spec":{"connectionId":"5e63f4a8-4ce6-47de-ba11-f6617c1d54f3","fqn":"com.datadoghq.http.request","inputs":{"url":"https://catfact.ninja/facts","urlParams":[{"key":"limit","value":"${pageSize.value.toString()}"},{"key":"page","value":"${(table0.pageIndex + + 1).toString()}"}],"verb":"GET"}}},"type":"action"},{"id":"afd03c81-4075-4432-8618-ba09d52d2f2d","name":"pageSize","properties":{"defaultValue":"${20}"},"type":"stateVariable"},{"id":"0fb22859-47dc-4137-9e41-7b67d04c525c","name":"randomFact","properties":{"outputs":"${(() + => {const facts = fetchFacts.outputs.body.data\nreturn facts[Math.floor(Math.random()*facts.length)]\n})()}"},"type":"dataTransform"}],"rootInstanceName":"grid0"},"type":"appDefinitions"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/app-builder/apps + response: + body: + string: '{"data":{"id":"850d5920-6bfb-4723-a3ff-91bfb2d898d8","type":"appDefinitions"}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"name":"v1.2.0 - bug fix release"},"type":"versionNames"}}' + headers: + accept: + - '*/*' + content-type: + - application/json + method: PATCH + uri: https://api.datadoghq.com/api/v2/app-builder/apps/850d5920-6bfb-4723-a3ff-91bfb2d898d8/version-name?version=latest + response: + body: + string: '' + headers: {} + status: + code: 204 + message: No Content +- request: + body: null + headers: + accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v2/app-builder/apps/850d5920-6bfb-4723-a3ff-91bfb2d898d8 + response: + body: + string: '{"data":{"id":"850d5920-6bfb-4723-a3ff-91bfb2d898d8","type":"appDefinitions"}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 200 + message: OK +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_name_app_version_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_name_app_version_returns_not_found_response.frozen new file mode 100644 index 0000000000..f304ca2f68 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_name_app_version_returns_not_found_response.frozen @@ -0,0 +1 @@ +2026-05-18T19:51:56.300Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_name_app_version_returns_not_found_response.yaml b/tests/v2/cassettes/test_scenarios/test_name_app_version_returns_not_found_response.yaml new file mode 100644 index 0000000000..28ecb5ccc3 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_name_app_version_returns_not_found_response.yaml @@ -0,0 +1,22 @@ +interactions: +- request: + body: '{"data":{"attributes":{"name":"v1.2.0 - bug fix release"},"type":"versionNames"}}' + headers: + accept: + - '*/*' + content-type: + - application/json + method: PATCH + uri: https://api.datadoghq.com/api/v2/app-builder/apps/7addb29b-f935-472c-ae79-d1963979a23e/version-name?version=latest + response: + body: + string: '{"errors":[{"status":"404","id":"16fc993f-2445-4b88-b1e7-c924feed5141","title":"app + not found","detail":"app with id 7addb29b-f935-472c-ae79-d1963979a23e not + found"}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_revert_app_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_revert_app_returns_not_found_response.frozen new file mode 100644 index 0000000000..b8cdcb67d8 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_revert_app_returns_not_found_response.frozen @@ -0,0 +1 @@ +2026-05-18T19:51:58.197Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_revert_app_returns_not_found_response.yaml b/tests/v2/cassettes/test_scenarios/test_revert_app_returns_not_found_response.yaml new file mode 100644 index 0000000000..064c2e15c2 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_revert_app_returns_not_found_response.yaml @@ -0,0 +1,20 @@ +interactions: +- request: + body: null + headers: + accept: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/app-builder/apps/7addb29b-f935-472c-ae79-d1963979a23e/revert?version=1 + response: + body: + string: '{"errors":[{"status":"404","id":"09483925-ee8b-44c8-882a-35b53e209584","title":"app + not found","detail":"app with id 7addb29b-f935-472c-ae79-d1963979a23e not + found"}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_update_app_favorite_status_returns_no_content_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_app_favorite_status_returns_no_content_response.frozen new file mode 100644 index 0000000000..632a7af485 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_app_favorite_status_returns_no_content_response.frozen @@ -0,0 +1 @@ +2026-05-18T19:51:59.539Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_app_favorite_status_returns_no_content_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_app_favorite_status_returns_no_content_response.yaml new file mode 100644 index 0000000000..41db418d45 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_app_favorite_status_returns_no_content_response.yaml @@ -0,0 +1,64 @@ +interactions: +- request: + body: '{"data":{"attributes":{"components":[{"events":[],"name":"grid0","properties":{"backgroundColor":"default","children":[{"events":[],"name":"gridCell0","properties":{"children":[{"events":[],"name":"text0","properties":{"content":"# + Cat Facts","contentType":"markdown","isVisible":true,"textAlign":"left","verticalAlign":"top"},"type":"text"}],"isVisible":"true","layout":{"default":{"height":5,"width":4,"x":0,"y":0}}},"type":"gridCell"},{"events":[],"name":"gridCell2","properties":{"children":[{"events":[],"name":"table0","properties":{"columns":[{"dataPath":"fact","header":"fact","id":"0ae2ae9e-0280-4389-83c6-1c5949f7e674","isHidden":false},{"dataPath":"length","header":"length","id":"c9048611-0196-4a00-9366-1ef9e3ec0408","isHidden":true},{"dataPath":"Due + Date","disableSortBy":false,"formatter":{"format":"LARGE_WITHOUT_TIME","type":"formatted_time"},"header":"Unused + Old Column","id":"8fa9284b-7a58-4f13-9959-57b7d8a7fe8f","isDeleted":true}],"data":"${fetchFacts?.outputs?.body?.data}","globalFilter":false,"isLoading":"${fetchFacts?.isLoading}","isScrollable":"vertical","isSubRowsEnabled":false,"isVisible":true,"isWrappable":false,"pageSize":"${pageSize?.value}","paginationType":"server_side","rowButtons":[],"summary":true,"totalCount":"${fetchFacts?.outputs?.body?.total}"},"type":"table"}],"isVisible":"true","layout":{"default":{"height":96,"width":12,"x":0,"y":5}}},"type":"gridCell"},{"events":[],"name":"gridCell1","properties":{"children":[{"events":[],"name":"text1","properties":{"content":"## + Random Fact\n\n${randomFact?.outputs?.fact}","contentType":"markdown","isVisible":true,"textAlign":"left","verticalAlign":"top"},"type":"text"}],"isVisible":"true","layout":{"default":{"height":16,"width":12,"x":0,"y":101}}},"type":"gridCell"},{"events":[],"name":"gridCell3","properties":{"children":[{"events":[{"name":"click","type":"setStateVariableValue","value":"${pageSize?.value + + 1}","variableName":"pageSize"}],"name":"button0","properties":{"iconLeft":"angleUp","iconRight":"","isBorderless":false,"isDisabled":false,"isLoading":false,"isPrimary":true,"isVisible":true,"label":"Increase + Page Size","level":"default"},"type":"button"}],"isVisible":"true","layout":{"default":{"height":4,"width":2,"x":10,"y":134}}},"type":"gridCell"},{"events":[],"name":"gridCell4","properties":{"children":[{"events":[{"name":"click","type":"setStateVariableValue","value":"${pageSize?.value + - 1}","variableName":"pageSize"}],"name":"button1","properties":{"iconLeft":"angleDown","iconRight":"","isBorderless":false,"isDisabled":false,"isLoading":false,"isPrimary":true,"isVisible":true,"label":"Decrease + Page Size","level":"default"},"type":"button"}],"isVisible":"true","layout":{"default":{"height":4,"width":2,"x":10,"y":138}}},"type":"gridCell"}]},"type":"grid"}],"description":"This + is a slightly complicated example app that fetches and displays cat facts","name":"Example + Cat Facts Viewer","queries":[{"events":[],"id":"92ff0bb8-553b-4f31-87c7-ef5bd16d47d5","name":"fetchFacts","properties":{"spec":{"connectionId":"5e63f4a8-4ce6-47de-ba11-f6617c1d54f3","fqn":"com.datadoghq.http.request","inputs":{"url":"https://catfact.ninja/facts","urlParams":[{"key":"limit","value":"${pageSize.value.toString()}"},{"key":"page","value":"${(table0.pageIndex + + 1).toString()}"}],"verb":"GET"}}},"type":"action"},{"id":"afd03c81-4075-4432-8618-ba09d52d2f2d","name":"pageSize","properties":{"defaultValue":"${20}"},"type":"stateVariable"},{"id":"0fb22859-47dc-4137-9e41-7b67d04c525c","name":"randomFact","properties":{"outputs":"${(() + => {const facts = fetchFacts.outputs.body.data\nreturn facts[Math.floor(Math.random()*facts.length)]\n})()}"},"type":"dataTransform"}],"rootInstanceName":"grid0"},"type":"appDefinitions"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/app-builder/apps + response: + body: + string: '{"data":{"id":"ff20368e-cb9a-4216-aa76-a61c11aef6d1","type":"appDefinitions"}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"favorite":true},"type":"favorites"}}' + headers: + accept: + - '*/*' + content-type: + - application/json + method: PATCH + uri: https://api.datadoghq.com/api/v2/app-builder/apps/ff20368e-cb9a-4216-aa76-a61c11aef6d1/favorite + response: + body: + string: '' + headers: {} + status: + code: 204 + message: No Content +- request: + body: null + headers: + accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v2/app-builder/apps/ff20368e-cb9a-4216-aa76-a61c11aef6d1 + response: + body: + string: '{"data":{"id":"ff20368e-cb9a-4216-aa76-a61c11aef6d1","type":"appDefinitions"}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 200 + message: OK +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_update_app_favorite_status_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_app_favorite_status_returns_not_found_response.frozen new file mode 100644 index 0000000000..ff1ec95de1 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_app_favorite_status_returns_not_found_response.frozen @@ -0,0 +1 @@ +2026-05-18T19:52:01.652Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_app_favorite_status_returns_not_found_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_app_favorite_status_returns_not_found_response.yaml new file mode 100644 index 0000000000..7c2bb00bcc --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_app_favorite_status_returns_not_found_response.yaml @@ -0,0 +1,22 @@ +interactions: +- request: + body: '{"data":{"attributes":{"favorite":true},"type":"favorites"}}' + headers: + accept: + - '*/*' + content-type: + - application/json + method: PATCH + uri: https://api.datadoghq.com/api/v2/app-builder/apps/7addb29b-f935-472c-ae79-d1963979a23e/favorite + response: + body: + string: '{"errors":[{"status":"404","id":"3711d641-f1a9-4a08-b8a2-f02b0c6d3cac","title":"app + not found","detail":"app with id 7addb29b-f935-472c-ae79-d1963979a23e not + found"}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_update_app_protection_level_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_app_protection_level_returns_not_found_response.frozen new file mode 100644 index 0000000000..be4a0d65e2 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_app_protection_level_returns_not_found_response.frozen @@ -0,0 +1 @@ +2026-05-18T19:52:01.865Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_app_protection_level_returns_not_found_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_app_protection_level_returns_not_found_response.yaml new file mode 100644 index 0000000000..39cb1988d5 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_app_protection_level_returns_not_found_response.yaml @@ -0,0 +1,22 @@ +interactions: +- request: + body: '{"data":{"attributes":{"protectionLevel":"approval_required"},"type":"protectionLevel"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: PATCH + uri: https://api.datadoghq.com/api/v2/app-builder/apps/7addb29b-f935-472c-ae79-d1963979a23e/protection-level + response: + body: + string: '{"errors":[{"status":"404","id":"ac8e4f99-d059-43c6-b48a-2feb634c46b9","title":"app + not found","detail":"app with id 7addb29b-f935-472c-ae79-d1963979a23e not + found"}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_update_app_protection_level_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_app_protection_level_returns_ok_response.frozen new file mode 100644 index 0000000000..181d84d9c6 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_app_protection_level_returns_ok_response.frozen @@ -0,0 +1 @@ +2026-05-18T19:52:02.394Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_app_protection_level_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_app_protection_level_returns_ok_response.yaml new file mode 100644 index 0000000000..a86f5a1e62 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_app_protection_level_returns_ok_response.yaml @@ -0,0 +1,78 @@ +interactions: +- request: + body: '{"data":{"attributes":{"components":[{"events":[],"name":"grid0","properties":{"backgroundColor":"default","children":[{"events":[],"name":"gridCell0","properties":{"children":[{"events":[],"name":"text0","properties":{"content":"# + Cat Facts","contentType":"markdown","isVisible":true,"textAlign":"left","verticalAlign":"top"},"type":"text"}],"isVisible":"true","layout":{"default":{"height":5,"width":4,"x":0,"y":0}}},"type":"gridCell"},{"events":[],"name":"gridCell2","properties":{"children":[{"events":[],"name":"table0","properties":{"columns":[{"dataPath":"fact","header":"fact","id":"0ae2ae9e-0280-4389-83c6-1c5949f7e674","isHidden":false},{"dataPath":"length","header":"length","id":"c9048611-0196-4a00-9366-1ef9e3ec0408","isHidden":true},{"dataPath":"Due + Date","disableSortBy":false,"formatter":{"format":"LARGE_WITHOUT_TIME","type":"formatted_time"},"header":"Unused + Old Column","id":"8fa9284b-7a58-4f13-9959-57b7d8a7fe8f","isDeleted":true}],"data":"${fetchFacts?.outputs?.body?.data}","globalFilter":false,"isLoading":"${fetchFacts?.isLoading}","isScrollable":"vertical","isSubRowsEnabled":false,"isVisible":true,"isWrappable":false,"pageSize":"${pageSize?.value}","paginationType":"server_side","rowButtons":[],"summary":true,"totalCount":"${fetchFacts?.outputs?.body?.total}"},"type":"table"}],"isVisible":"true","layout":{"default":{"height":96,"width":12,"x":0,"y":5}}},"type":"gridCell"},{"events":[],"name":"gridCell1","properties":{"children":[{"events":[],"name":"text1","properties":{"content":"## + Random Fact\n\n${randomFact?.outputs?.fact}","contentType":"markdown","isVisible":true,"textAlign":"left","verticalAlign":"top"},"type":"text"}],"isVisible":"true","layout":{"default":{"height":16,"width":12,"x":0,"y":101}}},"type":"gridCell"},{"events":[],"name":"gridCell3","properties":{"children":[{"events":[{"name":"click","type":"setStateVariableValue","value":"${pageSize?.value + + 1}","variableName":"pageSize"}],"name":"button0","properties":{"iconLeft":"angleUp","iconRight":"","isBorderless":false,"isDisabled":false,"isLoading":false,"isPrimary":true,"isVisible":true,"label":"Increase + Page Size","level":"default"},"type":"button"}],"isVisible":"true","layout":{"default":{"height":4,"width":2,"x":10,"y":134}}},"type":"gridCell"},{"events":[],"name":"gridCell4","properties":{"children":[{"events":[{"name":"click","type":"setStateVariableValue","value":"${pageSize?.value + - 1}","variableName":"pageSize"}],"name":"button1","properties":{"iconLeft":"angleDown","iconRight":"","isBorderless":false,"isDisabled":false,"isLoading":false,"isPrimary":true,"isVisible":true,"label":"Decrease + Page Size","level":"default"},"type":"button"}],"isVisible":"true","layout":{"default":{"height":4,"width":2,"x":10,"y":138}}},"type":"gridCell"}]},"type":"grid"}],"description":"This + is a slightly complicated example app that fetches and displays cat facts","name":"Example + Cat Facts Viewer","queries":[{"events":[],"id":"92ff0bb8-553b-4f31-87c7-ef5bd16d47d5","name":"fetchFacts","properties":{"spec":{"connectionId":"5e63f4a8-4ce6-47de-ba11-f6617c1d54f3","fqn":"com.datadoghq.http.request","inputs":{"url":"https://catfact.ninja/facts","urlParams":[{"key":"limit","value":"${pageSize.value.toString()}"},{"key":"page","value":"${(table0.pageIndex + + 1).toString()}"}],"verb":"GET"}}},"type":"action"},{"id":"afd03c81-4075-4432-8618-ba09d52d2f2d","name":"pageSize","properties":{"defaultValue":"${20}"},"type":"stateVariable"},{"id":"0fb22859-47dc-4137-9e41-7b67d04c525c","name":"randomFact","properties":{"outputs":"${(() + => {const facts = fetchFacts.outputs.body.data\nreturn facts[Math.floor(Math.random()*facts.length)]\n})()}"},"type":"dataTransform"}],"rootInstanceName":"grid0"},"type":"appDefinitions"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/app-builder/apps + response: + body: + string: '{"data":{"id":"7233c313-f027-46ba-b269-fbca3f75cbad","type":"appDefinitions"}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"protectionLevel":"approval_required"},"type":"protectionLevel"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: PATCH + uri: https://api.datadoghq.com/api/v2/app-builder/apps/7233c313-f027-46ba-b269-fbca3f75cbad/protection-level + response: + body: + string: '{"data":{"id":"7233c313-f027-46ba-b269-fbca3f75cbad","type":"appDefinitions","attributes":{"components":[{"events":[],"name":"grid0","properties":{"backgroundColor":"default","children":[{"events":[],"name":"gridCell0","properties":{"children":[{"events":[],"name":"text0","properties":{"content":"# + Cat Facts","contentType":"markdown","isVisible":true,"textAlign":"left","verticalAlign":"top"},"type":"text"}],"isVisible":"true","layout":{"default":{"height":5,"width":4,"x":0,"y":0}}},"type":"gridCell"},{"events":[],"name":"gridCell2","properties":{"children":[{"events":[],"name":"table0","properties":{"columns":[{"dataPath":"fact","header":"fact","id":"0ae2ae9e-0280-4389-83c6-1c5949f7e674","isHidden":false},{"dataPath":"length","header":"length","id":"c9048611-0196-4a00-9366-1ef9e3ec0408","isHidden":true},{"dataPath":"Due + Date","disableSortBy":false,"formatter":{"format":"LARGE_WITHOUT_TIME","type":"formatted_time"},"header":"Unused + Old Column","id":"8fa9284b-7a58-4f13-9959-57b7d8a7fe8f","isDeleted":true}],"data":"${fetchFacts?.outputs?.body?.data}","globalFilter":false,"isLoading":"${fetchFacts?.isLoading}","isScrollable":"vertical","isSubRowsEnabled":false,"isVisible":true,"isWrappable":false,"pageSize":"${pageSize?.value}","paginationType":"server_side","rowButtons":[],"summary":true,"totalCount":"${fetchFacts?.outputs?.body?.total}"},"type":"table"}],"isVisible":"true","layout":{"default":{"height":96,"width":12,"x":0,"y":5}}},"type":"gridCell"},{"events":[],"name":"gridCell1","properties":{"children":[{"events":[],"name":"text1","properties":{"content":"## + Random Fact\n\n${randomFact?.outputs?.fact}","contentType":"markdown","isVisible":true,"textAlign":"left","verticalAlign":"top"},"type":"text"}],"isVisible":"true","layout":{"default":{"height":16,"width":12,"x":0,"y":101}}},"type":"gridCell"},{"events":[],"name":"gridCell3","properties":{"children":[{"events":[{"name":"click","type":"setStateVariableValue","value":"${pageSize?.value + + 1}","variableName":"pageSize"}],"name":"button0","properties":{"iconLeft":"angleUp","iconRight":"","isBorderless":false,"isDisabled":false,"isLoading":false,"isPrimary":true,"isVisible":true,"label":"Increase + Page Size","level":"default"},"type":"button"}],"isVisible":"true","layout":{"default":{"height":4,"width":2,"x":10,"y":134}}},"type":"gridCell"},{"events":[],"name":"gridCell4","properties":{"children":[{"events":[{"name":"click","type":"setStateVariableValue","value":"${pageSize?.value + - 1}","variableName":"pageSize"}],"name":"button1","properties":{"iconLeft":"angleDown","iconRight":"","isBorderless":false,"isDisabled":false,"isLoading":false,"isPrimary":true,"isVisible":true,"label":"Decrease + Page Size","level":"default"},"type":"button"}],"isVisible":"true","layout":{"default":{"height":4,"width":2,"x":10,"y":138}}},"type":"gridCell"}]},"type":"grid"}],"description":"This + is a slightly complicated example app that fetches and displays cat facts","favorite":false,"name":"Example + Cat Facts Viewer","protectionLevel":"approval_required","queries":[{"id":"92ff0bb8-553b-4f31-87c7-ef5bd16d47d5","name":"fetchFacts","type":"action","properties":{"spec":{"connectionId":"5e63f4a8-4ce6-47de-ba11-f6617c1d54f3","fqn":"com.datadoghq.http.request","inputs":{"url":"https://catfact.ninja/facts","urlParams":[{"key":"limit","value":"${pageSize.value.toString()}"},{"key":"page","value":"${(table0.pageIndex + + 1).toString()}"}],"verb":"GET"}}}},{"id":"afd03c81-4075-4432-8618-ba09d52d2f2d","name":"pageSize","type":"stateVariable","properties":{"defaultValue":"${20}"}},{"id":"0fb22859-47dc-4137-9e41-7b67d04c525c","name":"randomFact","type":"dataTransform","properties":{"outputs":"${(() + =\u003e {const facts = fetchFacts.outputs.body.data\nreturn facts[Math.floor(Math.random()*facts.length)]\n})()}"}}],"rootInstanceName":"grid0","selfService":false,"tags":[]},"meta":{"org_id":321813,"user_id":1445416,"user_uuid":"3ad549bf-eba0-11e9-a77a-0705486660d0","user_name":"frog@datadoghq.com","version":1,"version_id":"42a9e44d-6fd7-4dd6-8a72-17e570b9e46f","updated_since_deployment":false,"created_at":"2026-05-18T19:52:02.806411Z","updated_at":"2026-05-18T19:52:02.806411Z","deleted_at":"0001-01-01T00:00:00Z","run_as_user":"3ad549bf-eba0-11e9-a77a-0705486660d0"}}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 200 + message: OK +- request: + body: null + headers: + accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v2/app-builder/apps/7233c313-f027-46ba-b269-fbca3f75cbad + response: + body: + string: '{"data":{"id":"7233c313-f027-46ba-b269-fbca3f75cbad","type":"appDefinitions"}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 200 + message: OK +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_update_app_selfservice_status_returns_no_content_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_app_selfservice_status_returns_no_content_response.frozen new file mode 100644 index 0000000000..30060a318b --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_app_selfservice_status_returns_no_content_response.frozen @@ -0,0 +1 @@ +2026-05-18T19:52:04.154Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_app_selfservice_status_returns_no_content_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_app_selfservice_status_returns_no_content_response.yaml new file mode 100644 index 0000000000..ee65784f21 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_app_selfservice_status_returns_no_content_response.yaml @@ -0,0 +1,64 @@ +interactions: +- request: + body: '{"data":{"attributes":{"components":[{"events":[],"name":"grid0","properties":{"backgroundColor":"default","children":[{"events":[],"name":"gridCell0","properties":{"children":[{"events":[],"name":"text0","properties":{"content":"# + Cat Facts","contentType":"markdown","isVisible":true,"textAlign":"left","verticalAlign":"top"},"type":"text"}],"isVisible":"true","layout":{"default":{"height":5,"width":4,"x":0,"y":0}}},"type":"gridCell"},{"events":[],"name":"gridCell2","properties":{"children":[{"events":[],"name":"table0","properties":{"columns":[{"dataPath":"fact","header":"fact","id":"0ae2ae9e-0280-4389-83c6-1c5949f7e674","isHidden":false},{"dataPath":"length","header":"length","id":"c9048611-0196-4a00-9366-1ef9e3ec0408","isHidden":true},{"dataPath":"Due + Date","disableSortBy":false,"formatter":{"format":"LARGE_WITHOUT_TIME","type":"formatted_time"},"header":"Unused + Old Column","id":"8fa9284b-7a58-4f13-9959-57b7d8a7fe8f","isDeleted":true}],"data":"${fetchFacts?.outputs?.body?.data}","globalFilter":false,"isLoading":"${fetchFacts?.isLoading}","isScrollable":"vertical","isSubRowsEnabled":false,"isVisible":true,"isWrappable":false,"pageSize":"${pageSize?.value}","paginationType":"server_side","rowButtons":[],"summary":true,"totalCount":"${fetchFacts?.outputs?.body?.total}"},"type":"table"}],"isVisible":"true","layout":{"default":{"height":96,"width":12,"x":0,"y":5}}},"type":"gridCell"},{"events":[],"name":"gridCell1","properties":{"children":[{"events":[],"name":"text1","properties":{"content":"## + Random Fact\n\n${randomFact?.outputs?.fact}","contentType":"markdown","isVisible":true,"textAlign":"left","verticalAlign":"top"},"type":"text"}],"isVisible":"true","layout":{"default":{"height":16,"width":12,"x":0,"y":101}}},"type":"gridCell"},{"events":[],"name":"gridCell3","properties":{"children":[{"events":[{"name":"click","type":"setStateVariableValue","value":"${pageSize?.value + + 1}","variableName":"pageSize"}],"name":"button0","properties":{"iconLeft":"angleUp","iconRight":"","isBorderless":false,"isDisabled":false,"isLoading":false,"isPrimary":true,"isVisible":true,"label":"Increase + Page Size","level":"default"},"type":"button"}],"isVisible":"true","layout":{"default":{"height":4,"width":2,"x":10,"y":134}}},"type":"gridCell"},{"events":[],"name":"gridCell4","properties":{"children":[{"events":[{"name":"click","type":"setStateVariableValue","value":"${pageSize?.value + - 1}","variableName":"pageSize"}],"name":"button1","properties":{"iconLeft":"angleDown","iconRight":"","isBorderless":false,"isDisabled":false,"isLoading":false,"isPrimary":true,"isVisible":true,"label":"Decrease + Page Size","level":"default"},"type":"button"}],"isVisible":"true","layout":{"default":{"height":4,"width":2,"x":10,"y":138}}},"type":"gridCell"}]},"type":"grid"}],"description":"This + is a slightly complicated example app that fetches and displays cat facts","name":"Example + Cat Facts Viewer","queries":[{"events":[],"id":"92ff0bb8-553b-4f31-87c7-ef5bd16d47d5","name":"fetchFacts","properties":{"spec":{"connectionId":"5e63f4a8-4ce6-47de-ba11-f6617c1d54f3","fqn":"com.datadoghq.http.request","inputs":{"url":"https://catfact.ninja/facts","urlParams":[{"key":"limit","value":"${pageSize.value.toString()}"},{"key":"page","value":"${(table0.pageIndex + + 1).toString()}"}],"verb":"GET"}}},"type":"action"},{"id":"afd03c81-4075-4432-8618-ba09d52d2f2d","name":"pageSize","properties":{"defaultValue":"${20}"},"type":"stateVariable"},{"id":"0fb22859-47dc-4137-9e41-7b67d04c525c","name":"randomFact","properties":{"outputs":"${(() + => {const facts = fetchFacts.outputs.body.data\nreturn facts[Math.floor(Math.random()*facts.length)]\n})()}"},"type":"dataTransform"}],"rootInstanceName":"grid0"},"type":"appDefinitions"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/app-builder/apps + response: + body: + string: '{"data":{"id":"f18f2a0e-bf9a-4b7a-b43d-31ca68aaf5f1","type":"appDefinitions"}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"selfService":true},"type":"selfService"}}' + headers: + accept: + - '*/*' + content-type: + - application/json + method: PATCH + uri: https://api.datadoghq.com/api/v2/app-builder/apps/f18f2a0e-bf9a-4b7a-b43d-31ca68aaf5f1/self-service + response: + body: + string: '' + headers: {} + status: + code: 204 + message: No Content +- request: + body: null + headers: + accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v2/app-builder/apps/f18f2a0e-bf9a-4b7a-b43d-31ca68aaf5f1 + response: + body: + string: '{"data":{"id":"f18f2a0e-bf9a-4b7a-b43d-31ca68aaf5f1","type":"appDefinitions"}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 200 + message: OK +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_update_app_selfservice_status_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_app_selfservice_status_returns_not_found_response.frozen new file mode 100644 index 0000000000..e8d61c7715 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_app_selfservice_status_returns_not_found_response.frozen @@ -0,0 +1 @@ +2026-05-18T19:52:06.076Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_app_selfservice_status_returns_not_found_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_app_selfservice_status_returns_not_found_response.yaml new file mode 100644 index 0000000000..0ef129ac82 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_app_selfservice_status_returns_not_found_response.yaml @@ -0,0 +1,22 @@ +interactions: +- request: + body: '{"data":{"attributes":{"selfService":true},"type":"selfService"}}' + headers: + accept: + - '*/*' + content-type: + - application/json + method: PATCH + uri: https://api.datadoghq.com/api/v2/app-builder/apps/7addb29b-f935-472c-ae79-d1963979a23e/self-service + response: + body: + string: '{"errors":[{"status":"404","id":"623c417b-ba6a-4952-8d3c-1d90edaf3166","title":"app + not found","detail":"app with id 7addb29b-f935-472c-ae79-d1963979a23e not + found"}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_update_app_tags_returns_no_content_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_app_tags_returns_no_content_response.frozen new file mode 100644 index 0000000000..94bb561b71 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_app_tags_returns_no_content_response.frozen @@ -0,0 +1 @@ +2026-05-18T19:52:06.248Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_app_tags_returns_no_content_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_app_tags_returns_no_content_response.yaml new file mode 100644 index 0000000000..20bb55a587 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_app_tags_returns_no_content_response.yaml @@ -0,0 +1,64 @@ +interactions: +- request: + body: '{"data":{"attributes":{"components":[{"events":[],"name":"grid0","properties":{"backgroundColor":"default","children":[{"events":[],"name":"gridCell0","properties":{"children":[{"events":[],"name":"text0","properties":{"content":"# + Cat Facts","contentType":"markdown","isVisible":true,"textAlign":"left","verticalAlign":"top"},"type":"text"}],"isVisible":"true","layout":{"default":{"height":5,"width":4,"x":0,"y":0}}},"type":"gridCell"},{"events":[],"name":"gridCell2","properties":{"children":[{"events":[],"name":"table0","properties":{"columns":[{"dataPath":"fact","header":"fact","id":"0ae2ae9e-0280-4389-83c6-1c5949f7e674","isHidden":false},{"dataPath":"length","header":"length","id":"c9048611-0196-4a00-9366-1ef9e3ec0408","isHidden":true},{"dataPath":"Due + Date","disableSortBy":false,"formatter":{"format":"LARGE_WITHOUT_TIME","type":"formatted_time"},"header":"Unused + Old Column","id":"8fa9284b-7a58-4f13-9959-57b7d8a7fe8f","isDeleted":true}],"data":"${fetchFacts?.outputs?.body?.data}","globalFilter":false,"isLoading":"${fetchFacts?.isLoading}","isScrollable":"vertical","isSubRowsEnabled":false,"isVisible":true,"isWrappable":false,"pageSize":"${pageSize?.value}","paginationType":"server_side","rowButtons":[],"summary":true,"totalCount":"${fetchFacts?.outputs?.body?.total}"},"type":"table"}],"isVisible":"true","layout":{"default":{"height":96,"width":12,"x":0,"y":5}}},"type":"gridCell"},{"events":[],"name":"gridCell1","properties":{"children":[{"events":[],"name":"text1","properties":{"content":"## + Random Fact\n\n${randomFact?.outputs?.fact}","contentType":"markdown","isVisible":true,"textAlign":"left","verticalAlign":"top"},"type":"text"}],"isVisible":"true","layout":{"default":{"height":16,"width":12,"x":0,"y":101}}},"type":"gridCell"},{"events":[],"name":"gridCell3","properties":{"children":[{"events":[{"name":"click","type":"setStateVariableValue","value":"${pageSize?.value + + 1}","variableName":"pageSize"}],"name":"button0","properties":{"iconLeft":"angleUp","iconRight":"","isBorderless":false,"isDisabled":false,"isLoading":false,"isPrimary":true,"isVisible":true,"label":"Increase + Page Size","level":"default"},"type":"button"}],"isVisible":"true","layout":{"default":{"height":4,"width":2,"x":10,"y":134}}},"type":"gridCell"},{"events":[],"name":"gridCell4","properties":{"children":[{"events":[{"name":"click","type":"setStateVariableValue","value":"${pageSize?.value + - 1}","variableName":"pageSize"}],"name":"button1","properties":{"iconLeft":"angleDown","iconRight":"","isBorderless":false,"isDisabled":false,"isLoading":false,"isPrimary":true,"isVisible":true,"label":"Decrease + Page Size","level":"default"},"type":"button"}],"isVisible":"true","layout":{"default":{"height":4,"width":2,"x":10,"y":138}}},"type":"gridCell"}]},"type":"grid"}],"description":"This + is a slightly complicated example app that fetches and displays cat facts","name":"Example + Cat Facts Viewer","queries":[{"events":[],"id":"92ff0bb8-553b-4f31-87c7-ef5bd16d47d5","name":"fetchFacts","properties":{"spec":{"connectionId":"5e63f4a8-4ce6-47de-ba11-f6617c1d54f3","fqn":"com.datadoghq.http.request","inputs":{"url":"https://catfact.ninja/facts","urlParams":[{"key":"limit","value":"${pageSize.value.toString()}"},{"key":"page","value":"${(table0.pageIndex + + 1).toString()}"}],"verb":"GET"}}},"type":"action"},{"id":"afd03c81-4075-4432-8618-ba09d52d2f2d","name":"pageSize","properties":{"defaultValue":"${20}"},"type":"stateVariable"},{"id":"0fb22859-47dc-4137-9e41-7b67d04c525c","name":"randomFact","properties":{"outputs":"${(() + => {const facts = fetchFacts.outputs.body.data\nreturn facts[Math.floor(Math.random()*facts.length)]\n})()}"},"type":"dataTransform"}],"rootInstanceName":"grid0"},"type":"appDefinitions"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/app-builder/apps + response: + body: + string: '{"data":{"id":"57a1c1c9-edfb-47ea-ad74-e90c2e13d0f0","type":"appDefinitions"}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"tags":["team:platform","service:ops"]},"type":"tags"}}' + headers: + accept: + - '*/*' + content-type: + - application/json + method: PATCH + uri: https://api.datadoghq.com/api/v2/app-builder/apps/57a1c1c9-edfb-47ea-ad74-e90c2e13d0f0/tags + response: + body: + string: '' + headers: {} + status: + code: 204 + message: No Content +- request: + body: null + headers: + accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v2/app-builder/apps/57a1c1c9-edfb-47ea-ad74-e90c2e13d0f0 + response: + body: + string: '{"data":{"id":"57a1c1c9-edfb-47ea-ad74-e90c2e13d0f0","type":"appDefinitions"}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 200 + message: OK +version: 1 diff --git a/tests/v2/cassettes/test_scenarios/test_update_app_tags_returns_not_found_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_app_tags_returns_not_found_response.frozen new file mode 100644 index 0000000000..641ef7d09b --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_app_tags_returns_not_found_response.frozen @@ -0,0 +1 @@ +2026-05-18T19:52:07.233Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_app_tags_returns_not_found_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_app_tags_returns_not_found_response.yaml new file mode 100644 index 0000000000..2619228f48 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_app_tags_returns_not_found_response.yaml @@ -0,0 +1,22 @@ +interactions: +- request: + body: '{"data":{"attributes":{"tags":["team:platform","service:ops"]},"type":"tags"}}' + headers: + accept: + - '*/*' + content-type: + - application/json + method: PATCH + uri: https://api.datadoghq.com/api/v2/app-builder/apps/7addb29b-f935-472c-ae79-d1963979a23e/tags + response: + body: + string: '{"errors":[{"status":"404","id":"26c91c86-51b3-4c5f-98b4-713698730b08","title":"app + not found","detail":"app with id 7addb29b-f935-472c-ae79-d1963979a23e not + found"}]}' + headers: + content-type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +version: 1 diff --git a/tests/v2/features/app_builder.feature b/tests/v2/features/app_builder.feature index bbc0caf196..9f2b3174bc 100644 --- a/tests/v2/features/app_builder.feature +++ b/tests/v2/features/app_builder.feature @@ -27,10 +27,10 @@ Feature: App Builder Then the response status is 201 Created And the response "data.type" is equal to "appDefinitions" - @generated @skip @team:DataDog/app-builder-backend + @skip @team:DataDog/app-builder-backend Scenario: Create Publish Request returns "Bad Request" response Given new "CreatePublishRequest" request - And request contains "app_id" parameter from "REPLACE.ME" + And request contains "app_id" parameter with value "bad-app-id" And body with value {"data": {"attributes": {"description": "Adds new dashboard widgets and a few bug fixes.", "title": "Release v1.2 to production"}, "type": "publishRequest"}} When the request is sent Then the response status is 400 Bad Request @@ -43,10 +43,10 @@ Feature: App Builder When the request is sent Then the response status is 201 Created - @generated @skip @team:DataDog/app-builder-backend + @skip-typescript @team:DataDog/app-builder-backend Scenario: Create Publish Request returns "Not Found" response Given new "CreatePublishRequest" request - And request contains "app_id" parameter from "REPLACE.ME" + And request contains "app_id" parameter with value "7addb29b-f935-472c-ae79-d1963979a23e" And body with value {"data": {"attributes": {"description": "Adds new dashboard widgets and a few bug fixes.", "title": "Release v1.2 to production"}, "type": "publishRequest"}} When the request is sent Then the response status is 404 Not Found @@ -139,24 +139,25 @@ Feature: App Builder And the response "data.id" has the same value as "app.data.id" And the response "data.type" is equal to "appDefinitions" - @generated @skip @team:DataDog/app-builder-backend + @skip @team:DataDog/app-builder-backend Scenario: List App Versions returns "Bad Request" response Given new "ListAppVersions" request - And request contains "app_id" parameter from "REPLACE.ME" + And request contains "app_id" parameter with value "bad-app-id" When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:DataDog/app-builder-backend + @skip-typescript @team:DataDog/app-builder-backend Scenario: List App Versions returns "Not Found" response Given new "ListAppVersions" request - And request contains "app_id" parameter from "REPLACE.ME" + 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 - @generated @skip @team:DataDog/app-builder-backend + @skip-typescript @team:DataDog/app-builder-backend Scenario: List App Versions returns "OK" response Given new "ListAppVersions" request - And request contains "app_id" parameter from "REPLACE.ME" + 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 @@ -172,29 +173,30 @@ Feature: App Builder When the request is sent Then the response status is 200 OK - @generated @skip @team:DataDog/app-builder-backend + @skip @team:DataDog/app-builder-backend Scenario: Name App Version returns "Bad Request" response Given new "UpdateAppVersionName" request - And request contains "app_id" parameter from "REPLACE.ME" - And request contains "version" parameter from "REPLACE.ME" + And request contains "app_id" parameter with value "bad-app-id" + And request contains "version" parameter with value "latest" And body with value {"data": {"attributes": {"name": "v1.2.0 - bug fix release"}, "type": "versionNames"}} When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:DataDog/app-builder-backend + @skip-typescript @team:DataDog/app-builder-backend Scenario: Name App Version returns "No Content" response Given new "UpdateAppVersionName" request - And request contains "app_id" parameter from "REPLACE.ME" - And request contains "version" parameter from "REPLACE.ME" + And there is a valid "app" in the system + And request contains "app_id" parameter from "app.data.id" + And request contains "version" parameter with value "latest" And body with value {"data": {"attributes": {"name": "v1.2.0 - bug fix release"}, "type": "versionNames"}} When the request is sent Then the response status is 204 No Content - @generated @skip @team:DataDog/app-builder-backend + @skip-typescript @team:DataDog/app-builder-backend Scenario: Name App Version returns "Not Found" response Given new "UpdateAppVersionName" request - And request contains "app_id" parameter from "REPLACE.ME" - And request contains "version" parameter from "REPLACE.ME" + And request contains "app_id" parameter with value "7addb29b-f935-472c-ae79-d1963979a23e" + And request contains "version" parameter with value "latest" And body with value {"data": {"attributes": {"name": "v1.2.0 - bug fix release"}, "type": "versionNames"}} When the request is sent Then the response status is 404 Not Found @@ -221,19 +223,19 @@ Feature: App Builder When the request is sent Then the response status is 404 Not Found - @generated @skip @team:DataDog/app-builder-backend + @skip @team:DataDog/app-builder-backend Scenario: Revert App returns "Bad Request" response Given new "RevertApp" request - And request contains "app_id" parameter from "REPLACE.ME" - And request contains "version" parameter from "REPLACE.ME" + And request contains "app_id" parameter with value "bad-app-id" + And request contains "version" parameter with value "1" When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:DataDog/app-builder-backend + @skip-typescript @team:DataDog/app-builder-backend Scenario: Revert App returns "Not Found" response Given new "RevertApp" request - And request contains "app_id" parameter from "REPLACE.ME" - And request contains "version" parameter from "REPLACE.ME" + And request contains "app_id" parameter with value "7addb29b-f935-472c-ae79-d1963979a23e" + And request contains "version" parameter with value "1" When the request is sent Then the response status is 404 Not Found @@ -267,98 +269,103 @@ Feature: App Builder When the request is sent Then the response status is 200 OK - @generated @skip @team:DataDog/app-builder-backend + @skip @team:DataDog/app-builder-backend Scenario: Update App Favorite Status returns "Bad Request" response Given new "UpdateAppFavorite" request - And request contains "app_id" parameter from "REPLACE.ME" + And request contains "app_id" parameter with value "bad-app-id" And body with value {"data": {"attributes": {"favorite": true}, "type": "favorites"}} When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:DataDog/app-builder-backend + @skip-typescript @team:DataDog/app-builder-backend Scenario: Update App Favorite Status returns "No Content" response Given new "UpdateAppFavorite" request - And request contains "app_id" parameter from "REPLACE.ME" + And there is a valid "app" in the system + And request contains "app_id" parameter from "app.data.id" And body with value {"data": {"attributes": {"favorite": true}, "type": "favorites"}} When the request is sent Then the response status is 204 No Content - @generated @skip @team:DataDog/app-builder-backend + @skip-typescript @team:DataDog/app-builder-backend Scenario: Update App Favorite Status returns "Not Found" response Given new "UpdateAppFavorite" request - And request contains "app_id" parameter from "REPLACE.ME" + And request contains "app_id" parameter with value "7addb29b-f935-472c-ae79-d1963979a23e" And body with value {"data": {"attributes": {"favorite": true}, "type": "favorites"}} When the request is sent Then the response status is 404 Not Found - @generated @skip @team:DataDog/app-builder-backend + @skip @team:DataDog/app-builder-backend Scenario: Update App Protection Level returns "Bad Request" response Given new "UpdateProtectionLevel" request - And request contains "app_id" parameter from "REPLACE.ME" + And request contains "app_id" parameter with value "bad-app-id" And body with value {"data": {"attributes": {"protectionLevel": "approval_required"}, "type": "protectionLevel"}} When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:DataDog/app-builder-backend + @skip-typescript @team:DataDog/app-builder-backend Scenario: Update App Protection Level returns "Not Found" response Given new "UpdateProtectionLevel" request - And request contains "app_id" parameter from "REPLACE.ME" + And request contains "app_id" parameter with value "7addb29b-f935-472c-ae79-d1963979a23e" And body with value {"data": {"attributes": {"protectionLevel": "approval_required"}, "type": "protectionLevel"}} When the request is sent Then the response status is 404 Not Found - @generated @skip @team:DataDog/app-builder-backend + @skip-typescript @team:DataDog/app-builder-backend Scenario: Update App Protection Level returns "OK" response Given new "UpdateProtectionLevel" request - And request contains "app_id" parameter from "REPLACE.ME" + And there is a valid "app" in the system + And request contains "app_id" parameter from "app.data.id" And body with value {"data": {"attributes": {"protectionLevel": "approval_required"}, "type": "protectionLevel"}} When the request is sent Then the response status is 200 OK + And the response "data.type" is equal to "appDefinitions" - @generated @skip @team:DataDog/app-builder-backend + @skip @team:DataDog/app-builder-backend Scenario: Update App Self-Service Status returns "Bad Request" response Given new "UpdateAppSelfService" request - And request contains "app_id" parameter from "REPLACE.ME" + And request contains "app_id" parameter with value "bad-app-id" And body with value {"data": {"attributes": {"selfService": true}, "type": "selfService"}} When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:DataDog/app-builder-backend + @skip-typescript @team:DataDog/app-builder-backend Scenario: Update App Self-Service Status returns "No Content" response Given new "UpdateAppSelfService" request - And request contains "app_id" parameter from "REPLACE.ME" + And there is a valid "app" in the system + And request contains "app_id" parameter from "app.data.id" And body with value {"data": {"attributes": {"selfService": true}, "type": "selfService"}} When the request is sent Then the response status is 204 No Content - @generated @skip @team:DataDog/app-builder-backend + @skip-typescript @team:DataDog/app-builder-backend Scenario: Update App Self-Service Status returns "Not Found" response Given new "UpdateAppSelfService" request - And request contains "app_id" parameter from "REPLACE.ME" + And request contains "app_id" parameter with value "7addb29b-f935-472c-ae79-d1963979a23e" And body with value {"data": {"attributes": {"selfService": true}, "type": "selfService"}} When the request is sent Then the response status is 404 Not Found - @generated @skip @team:DataDog/app-builder-backend + @skip @team:DataDog/app-builder-backend Scenario: Update App Tags returns "Bad Request" response Given new "UpdateAppTags" request - And request contains "app_id" parameter from "REPLACE.ME" + And request contains "app_id" parameter with value "bad-app-id" And body with value {"data": {"attributes": {"tags": ["team:platform", "service:ops"]}, "type": "tags"}} When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:DataDog/app-builder-backend + @skip-typescript @team:DataDog/app-builder-backend Scenario: Update App Tags returns "No Content" response Given new "UpdateAppTags" request - And request contains "app_id" parameter from "REPLACE.ME" + And there is a valid "app" in the system + And request contains "app_id" parameter from "app.data.id" And body with value {"data": {"attributes": {"tags": ["team:platform", "service:ops"]}, "type": "tags"}} When the request is sent Then the response status is 204 No Content - @generated @skip @team:DataDog/app-builder-backend + @skip-typescript @team:DataDog/app-builder-backend Scenario: Update App Tags returns "Not Found" response Given new "UpdateAppTags" request - And request contains "app_id" parameter from "REPLACE.ME" + And request contains "app_id" parameter with value "7addb29b-f935-472c-ae79-d1963979a23e" And body with value {"data": {"attributes": {"tags": ["team:platform", "service:ops"]}, "type": "tags"}} When the request is sent Then the response status is 404 Not Found