diff --git a/cassettes/features/v2/app_builder/Create-Publish-Request-returns-Not-Found-response.frozen b/cassettes/features/v2/app_builder/Create-Publish-Request-returns-Not-Found-response.frozen new file mode 100644 index 000000000000..3630c84dd5b7 --- /dev/null +++ b/cassettes/features/v2/app_builder/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/cassettes/features/v2/app_builder/Create-Publish-Request-returns-Not-Found-response.yml b/cassettes/features/v2/app_builder/Create-Publish-Request-returns-Not-Found-response.yml new file mode 100644 index 000000000000..240fe165272c --- /dev/null +++ b/cassettes/features/v2/app_builder/Create-Publish-Request-returns-Not-Found-response.yml @@ -0,0 +1,27 @@ +http_interactions: +- recorded_at: Mon, 18 May 2026 19:51:47 GMT + request: + body: + encoding: UTF-8 + string: '{"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: + encoding: UTF-8 + 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 +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/app_builder/List-App-Versions-returns-Not-Found-response.frozen b/cassettes/features/v2/app_builder/List-App-Versions-returns-Not-Found-response.frozen new file mode 100644 index 000000000000..25a432b084d5 --- /dev/null +++ b/cassettes/features/v2/app_builder/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/cassettes/features/v2/app_builder/List-App-Versions-returns-Not-Found-response.yml b/cassettes/features/v2/app_builder/List-App-Versions-returns-Not-Found-response.yml new file mode 100644 index 000000000000..32c2c7610892 --- /dev/null +++ b/cassettes/features/v2/app_builder/List-App-Versions-returns-Not-Found-response.yml @@ -0,0 +1,22 @@ +http_interactions: +- recorded_at: Mon, 18 May 2026 19:51:53 GMT + 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: + encoding: UTF-8 + 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 +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/app_builder/List-App-Versions-returns-OK-response.frozen b/cassettes/features/v2/app_builder/List-App-Versions-returns-OK-response.frozen new file mode 100644 index 000000000000..f134f1904137 --- /dev/null +++ b/cassettes/features/v2/app_builder/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/cassettes/features/v2/app_builder/List-App-Versions-returns-OK-response.yml b/cassettes/features/v2/app_builder/List-App-Versions-returns-OK-response.yml new file mode 100644 index 000000000000..792873730354 --- /dev/null +++ b/cassettes/features/v2/app_builder/List-App-Versions-returns-OK-response.yml @@ -0,0 +1,77 @@ +http_interactions: +- recorded_at: Mon, 18 May 2026 19:51:53 GMT + request: + body: + encoding: UTF-8 + string: '{"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: + encoding: UTF-8 + string: '{"data":{"id":"d928ecbc-acfe-4126-96f6-092fa0a01416","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 201 + message: Created +- recorded_at: Mon, 18 May 2026 19:51:53 GMT + 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: + encoding: UTF-8 + 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 +- recorded_at: Mon, 18 May 2026 19:51:53 GMT + 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: + encoding: UTF-8 + string: '{"data": {"id": "d928ecbc-acfe-4126-96f6-092fa0a01416", "type": "appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/app_builder/Name-App-Version-returns-No-Content-response.frozen b/cassettes/features/v2/app_builder/Name-App-Version-returns-No-Content-response.frozen new file mode 100644 index 000000000000..b224652513eb --- /dev/null +++ b/cassettes/features/v2/app_builder/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/cassettes/features/v2/app_builder/Name-App-Version-returns-No-Content-response.yml b/cassettes/features/v2/app_builder/Name-App-Version-returns-No-Content-response.yml new file mode 100644 index 000000000000..bf42aaee876b --- /dev/null +++ b/cassettes/features/v2/app_builder/Name-App-Version-returns-No-Content-response.yml @@ -0,0 +1,74 @@ +http_interactions: +- recorded_at: Mon, 18 May 2026 19:51:55 GMT + request: + body: + encoding: UTF-8 + string: '{"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: + encoding: UTF-8 + string: '{"data":{"id":"850d5920-6bfb-4723-a3ff-91bfb2d898d8","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 201 + message: Created +- recorded_at: Mon, 18 May 2026 19:51:55 GMT + request: + body: + encoding: UTF-8 + string: '{"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: + encoding: UTF-8 + string: '' + headers: {} + status: + code: 204 + message: No Content +- recorded_at: Mon, 18 May 2026 19:51:55 GMT + 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: + encoding: UTF-8 + string: '{"data":{"id":"850d5920-6bfb-4723-a3ff-91bfb2d898d8","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/app_builder/Name-App-Version-returns-Not-Found-response.frozen b/cassettes/features/v2/app_builder/Name-App-Version-returns-Not-Found-response.frozen new file mode 100644 index 000000000000..f304ca2f6842 --- /dev/null +++ b/cassettes/features/v2/app_builder/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/cassettes/features/v2/app_builder/Name-App-Version-returns-Not-Found-response.yml b/cassettes/features/v2/app_builder/Name-App-Version-returns-Not-Found-response.yml new file mode 100644 index 000000000000..20eac26a0075 --- /dev/null +++ b/cassettes/features/v2/app_builder/Name-App-Version-returns-Not-Found-response.yml @@ -0,0 +1,26 @@ +http_interactions: +- recorded_at: Mon, 18 May 2026 19:51:56 GMT + request: + body: + encoding: UTF-8 + string: '{"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: + encoding: UTF-8 + 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 +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/app_builder/Revert-App-returns-Not-Found-response.frozen b/cassettes/features/v2/app_builder/Revert-App-returns-Not-Found-response.frozen new file mode 100644 index 000000000000..b8cdcb67d8cf --- /dev/null +++ b/cassettes/features/v2/app_builder/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/cassettes/features/v2/app_builder/Revert-App-returns-Not-Found-response.yml b/cassettes/features/v2/app_builder/Revert-App-returns-Not-Found-response.yml new file mode 100644 index 000000000000..ebc82995093d --- /dev/null +++ b/cassettes/features/v2/app_builder/Revert-App-returns-Not-Found-response.yml @@ -0,0 +1,22 @@ +http_interactions: +- recorded_at: Mon, 18 May 2026 19:51:58 GMT + 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: + encoding: UTF-8 + 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 +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/app_builder/Update-App-Favorite-Status-returns-No-Content-response.frozen b/cassettes/features/v2/app_builder/Update-App-Favorite-Status-returns-No-Content-response.frozen new file mode 100644 index 000000000000..632a7af485a6 --- /dev/null +++ b/cassettes/features/v2/app_builder/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/cassettes/features/v2/app_builder/Update-App-Favorite-Status-returns-No-Content-response.yml b/cassettes/features/v2/app_builder/Update-App-Favorite-Status-returns-No-Content-response.yml new file mode 100644 index 000000000000..1a3b300a8d08 --- /dev/null +++ b/cassettes/features/v2/app_builder/Update-App-Favorite-Status-returns-No-Content-response.yml @@ -0,0 +1,74 @@ +http_interactions: +- recorded_at: Mon, 18 May 2026 19:51:59 GMT + request: + body: + encoding: UTF-8 + string: '{"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: + encoding: UTF-8 + string: '{"data":{"id":"ff20368e-cb9a-4216-aa76-a61c11aef6d1","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 201 + message: Created +- recorded_at: Mon, 18 May 2026 19:51:59 GMT + request: + body: + encoding: UTF-8 + string: '{"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: + encoding: UTF-8 + string: '' + headers: {} + status: + code: 204 + message: No Content +- recorded_at: Mon, 18 May 2026 19:51:59 GMT + 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: + encoding: UTF-8 + string: '{"data":{"id":"ff20368e-cb9a-4216-aa76-a61c11aef6d1","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/app_builder/Update-App-Favorite-Status-returns-Not-Found-response.frozen b/cassettes/features/v2/app_builder/Update-App-Favorite-Status-returns-Not-Found-response.frozen new file mode 100644 index 000000000000..ff1ec95de16c --- /dev/null +++ b/cassettes/features/v2/app_builder/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/cassettes/features/v2/app_builder/Update-App-Favorite-Status-returns-Not-Found-response.yml b/cassettes/features/v2/app_builder/Update-App-Favorite-Status-returns-Not-Found-response.yml new file mode 100644 index 000000000000..94a4899b5170 --- /dev/null +++ b/cassettes/features/v2/app_builder/Update-App-Favorite-Status-returns-Not-Found-response.yml @@ -0,0 +1,26 @@ +http_interactions: +- recorded_at: Mon, 18 May 2026 19:52:01 GMT + request: + body: + encoding: UTF-8 + string: '{"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: + encoding: UTF-8 + 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 +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/app_builder/Update-App-Protection-Level-returns-Not-Found-response.frozen b/cassettes/features/v2/app_builder/Update-App-Protection-Level-returns-Not-Found-response.frozen new file mode 100644 index 000000000000..be4a0d65e2d7 --- /dev/null +++ b/cassettes/features/v2/app_builder/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/cassettes/features/v2/app_builder/Update-App-Protection-Level-returns-Not-Found-response.yml b/cassettes/features/v2/app_builder/Update-App-Protection-Level-returns-Not-Found-response.yml new file mode 100644 index 000000000000..4955c5bf47fe --- /dev/null +++ b/cassettes/features/v2/app_builder/Update-App-Protection-Level-returns-Not-Found-response.yml @@ -0,0 +1,26 @@ +http_interactions: +- recorded_at: Mon, 18 May 2026 19:52:01 GMT + request: + body: + encoding: UTF-8 + string: '{"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: + encoding: UTF-8 + 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 +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/app_builder/Update-App-Protection-Level-returns-OK-response.frozen b/cassettes/features/v2/app_builder/Update-App-Protection-Level-returns-OK-response.frozen new file mode 100644 index 000000000000..181d84d9c6e4 --- /dev/null +++ b/cassettes/features/v2/app_builder/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/cassettes/features/v2/app_builder/Update-App-Protection-Level-returns-OK-response.yml b/cassettes/features/v2/app_builder/Update-App-Protection-Level-returns-OK-response.yml new file mode 100644 index 000000000000..9d23875c6abd --- /dev/null +++ b/cassettes/features/v2/app_builder/Update-App-Protection-Level-returns-OK-response.yml @@ -0,0 +1,88 @@ +http_interactions: +- recorded_at: Mon, 18 May 2026 19:52:02 GMT + request: + body: + encoding: UTF-8 + string: '{"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: + encoding: UTF-8 + string: '{"data":{"id":"7233c313-f027-46ba-b269-fbca3f75cbad","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 201 + message: Created +- recorded_at: Mon, 18 May 2026 19:52:02 GMT + request: + body: + encoding: UTF-8 + string: '{"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: + encoding: UTF-8 + 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 +- recorded_at: Mon, 18 May 2026 19:52:02 GMT + 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: + encoding: UTF-8 + string: '{"data":{"id":"7233c313-f027-46ba-b269-fbca3f75cbad","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/app_builder/Update-App-Self-Service-Status-returns-No-Content-response.frozen b/cassettes/features/v2/app_builder/Update-App-Self-Service-Status-returns-No-Content-response.frozen new file mode 100644 index 000000000000..30060a318bf8 --- /dev/null +++ b/cassettes/features/v2/app_builder/Update-App-Self-Service-Status-returns-No-Content-response.frozen @@ -0,0 +1 @@ +2026-05-18T19:52:04.154Z \ No newline at end of file diff --git a/cassettes/features/v2/app_builder/Update-App-Self-Service-Status-returns-No-Content-response.yml b/cassettes/features/v2/app_builder/Update-App-Self-Service-Status-returns-No-Content-response.yml new file mode 100644 index 000000000000..ccc618b54935 --- /dev/null +++ b/cassettes/features/v2/app_builder/Update-App-Self-Service-Status-returns-No-Content-response.yml @@ -0,0 +1,74 @@ +http_interactions: +- recorded_at: Mon, 18 May 2026 19:52:04 GMT + request: + body: + encoding: UTF-8 + string: '{"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: + encoding: UTF-8 + string: '{"data":{"id":"f18f2a0e-bf9a-4b7a-b43d-31ca68aaf5f1","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 201 + message: Created +- recorded_at: Mon, 18 May 2026 19:52:04 GMT + request: + body: + encoding: UTF-8 + string: '{"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: + encoding: UTF-8 + string: '' + headers: {} + status: + code: 204 + message: No Content +- recorded_at: Mon, 18 May 2026 19:52:04 GMT + 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: + encoding: UTF-8 + string: '{"data":{"id":"f18f2a0e-bf9a-4b7a-b43d-31ca68aaf5f1","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/app_builder/Update-App-Self-Service-Status-returns-Not-Found-response.frozen b/cassettes/features/v2/app_builder/Update-App-Self-Service-Status-returns-Not-Found-response.frozen new file mode 100644 index 000000000000..e8d61c771533 --- /dev/null +++ b/cassettes/features/v2/app_builder/Update-App-Self-Service-Status-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2026-05-18T19:52:06.076Z \ No newline at end of file diff --git a/cassettes/features/v2/app_builder/Update-App-Self-Service-Status-returns-Not-Found-response.yml b/cassettes/features/v2/app_builder/Update-App-Self-Service-Status-returns-Not-Found-response.yml new file mode 100644 index 000000000000..870baf61b09e --- /dev/null +++ b/cassettes/features/v2/app_builder/Update-App-Self-Service-Status-returns-Not-Found-response.yml @@ -0,0 +1,26 @@ +http_interactions: +- recorded_at: Mon, 18 May 2026 19:52:06 GMT + request: + body: + encoding: UTF-8 + string: '{"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: + encoding: UTF-8 + 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 +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/app_builder/Update-App-Tags-returns-No-Content-response.frozen b/cassettes/features/v2/app_builder/Update-App-Tags-returns-No-Content-response.frozen new file mode 100644 index 000000000000..94bb561b71f4 --- /dev/null +++ b/cassettes/features/v2/app_builder/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/cassettes/features/v2/app_builder/Update-App-Tags-returns-No-Content-response.yml b/cassettes/features/v2/app_builder/Update-App-Tags-returns-No-Content-response.yml new file mode 100644 index 000000000000..282489a8b62c --- /dev/null +++ b/cassettes/features/v2/app_builder/Update-App-Tags-returns-No-Content-response.yml @@ -0,0 +1,74 @@ +http_interactions: +- recorded_at: Mon, 18 May 2026 19:52:06 GMT + request: + body: + encoding: UTF-8 + string: '{"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: + encoding: UTF-8 + string: '{"data":{"id":"57a1c1c9-edfb-47ea-ad74-e90c2e13d0f0","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 201 + message: Created +- recorded_at: Mon, 18 May 2026 19:52:06 GMT + request: + body: + encoding: UTF-8 + string: '{"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: + encoding: UTF-8 + string: '' + headers: {} + status: + code: 204 + message: No Content +- recorded_at: Mon, 18 May 2026 19:52:06 GMT + 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: + encoding: UTF-8 + string: '{"data":{"id":"57a1c1c9-edfb-47ea-ad74-e90c2e13d0f0","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/app_builder/Update-App-Tags-returns-Not-Found-response.frozen b/cassettes/features/v2/app_builder/Update-App-Tags-returns-Not-Found-response.frozen new file mode 100644 index 000000000000..641ef7d09b70 --- /dev/null +++ b/cassettes/features/v2/app_builder/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/cassettes/features/v2/app_builder/Update-App-Tags-returns-Not-Found-response.yml b/cassettes/features/v2/app_builder/Update-App-Tags-returns-Not-Found-response.yml new file mode 100644 index 000000000000..9ac87ac5e13b --- /dev/null +++ b/cassettes/features/v2/app_builder/Update-App-Tags-returns-Not-Found-response.yml @@ -0,0 +1,26 @@ +http_interactions: +- recorded_at: Mon, 18 May 2026 19:52:07 GMT + request: + body: + encoding: UTF-8 + string: '{"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: + encoding: UTF-8 + 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 +recorded_with: VCR 6.0.0 diff --git a/examples/v2/app-builder/ListAppVersions.rb b/examples/v2/app-builder/ListAppVersions.rb index 1c53dd590e11..d9f40bba0edd 100644 --- a/examples/v2/app-builder/ListAppVersions.rb +++ b/examples/v2/app-builder/ListAppVersions.rb @@ -2,4 +2,7 @@ require "datadog_api_client" api_instance = DatadogAPIClient::V2::AppBuilderAPI.new -p api_instance.list_app_versions("9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d") + +# there is a valid "app" in the system +APP_DATA_ID = ENV["APP_DATA_ID"] +p api_instance.list_app_versions(APP_DATA_ID) diff --git a/examples/v2/app-builder/UpdateAppFavorite.rb b/examples/v2/app-builder/UpdateAppFavorite.rb index 13d3ed6442fc..aa4b6c67c87d 100644 --- a/examples/v2/app-builder/UpdateAppFavorite.rb +++ b/examples/v2/app-builder/UpdateAppFavorite.rb @@ -3,6 +3,9 @@ require "datadog_api_client" api_instance = DatadogAPIClient::V2::AppBuilderAPI.new +# there is a valid "app" in the system +APP_DATA_ID = ENV["APP_DATA_ID"] + body = DatadogAPIClient::V2::UpdateAppFavoriteRequest.new({ data: DatadogAPIClient::V2::UpdateAppFavoriteRequestData.new({ attributes: DatadogAPIClient::V2::UpdateAppFavoriteRequestDataAttributes.new({ @@ -11,4 +14,4 @@ type: DatadogAPIClient::V2::AppFavoriteType::FAVORITES, }), }) -api_instance.update_app_favorite("9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d", body) +api_instance.update_app_favorite(APP_DATA_ID, body) diff --git a/examples/v2/app-builder/UpdateAppSelfService.rb b/examples/v2/app-builder/UpdateAppSelfService.rb index ea0308cb9039..df41753a7d7a 100644 --- a/examples/v2/app-builder/UpdateAppSelfService.rb +++ b/examples/v2/app-builder/UpdateAppSelfService.rb @@ -3,6 +3,9 @@ require "datadog_api_client" api_instance = DatadogAPIClient::V2::AppBuilderAPI.new +# there is a valid "app" in the system +APP_DATA_ID = ENV["APP_DATA_ID"] + body = DatadogAPIClient::V2::UpdateAppSelfServiceRequest.new({ data: DatadogAPIClient::V2::UpdateAppSelfServiceRequestData.new({ attributes: DatadogAPIClient::V2::UpdateAppSelfServiceRequestDataAttributes.new({ @@ -11,4 +14,4 @@ type: DatadogAPIClient::V2::AppSelfServiceType::SELFSERVICE, }), }) -api_instance.update_app_self_service("9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d", body) +api_instance.update_app_self_service(APP_DATA_ID, body) diff --git a/examples/v2/app-builder/UpdateAppTags.rb b/examples/v2/app-builder/UpdateAppTags.rb index 04d8ec88dbab..a1ac5574196b 100644 --- a/examples/v2/app-builder/UpdateAppTags.rb +++ b/examples/v2/app-builder/UpdateAppTags.rb @@ -3,6 +3,9 @@ require "datadog_api_client" api_instance = DatadogAPIClient::V2::AppBuilderAPI.new +# there is a valid "app" in the system +APP_DATA_ID = ENV["APP_DATA_ID"] + body = DatadogAPIClient::V2::UpdateAppTagsRequest.new({ data: DatadogAPIClient::V2::UpdateAppTagsRequestData.new({ attributes: DatadogAPIClient::V2::UpdateAppTagsRequestDataAttributes.new({ @@ -14,4 +17,4 @@ type: DatadogAPIClient::V2::AppTagsType::TAGS, }), }) -api_instance.update_app_tags("9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d", body) +api_instance.update_app_tags(APP_DATA_ID, body) diff --git a/examples/v2/app-builder/UpdateAppVersionName.rb b/examples/v2/app-builder/UpdateAppVersionName.rb index b321d09ad329..c977e0da5db8 100644 --- a/examples/v2/app-builder/UpdateAppVersionName.rb +++ b/examples/v2/app-builder/UpdateAppVersionName.rb @@ -3,6 +3,9 @@ require "datadog_api_client" api_instance = DatadogAPIClient::V2::AppBuilderAPI.new +# there is a valid "app" in the system +APP_DATA_ID = ENV["APP_DATA_ID"] + body = DatadogAPIClient::V2::UpdateAppVersionNameRequest.new({ data: DatadogAPIClient::V2::UpdateAppVersionNameRequestData.new({ attributes: DatadogAPIClient::V2::UpdateAppVersionNameRequestDataAttributes.new({ @@ -11,4 +14,4 @@ type: DatadogAPIClient::V2::AppVersionNameType::VERSIONNAMES, }), }) -api_instance.update_app_version_name("9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d", "version", body) +api_instance.update_app_version_name(APP_DATA_ID, "latest", body) diff --git a/examples/v2/app-builder/UpdateProtectionLevel.rb b/examples/v2/app-builder/UpdateProtectionLevel.rb index 877c217e4443..e18968dec65b 100644 --- a/examples/v2/app-builder/UpdateProtectionLevel.rb +++ b/examples/v2/app-builder/UpdateProtectionLevel.rb @@ -3,6 +3,9 @@ require "datadog_api_client" api_instance = DatadogAPIClient::V2::AppBuilderAPI.new +# there is a valid "app" in the system +APP_DATA_ID = ENV["APP_DATA_ID"] + body = DatadogAPIClient::V2::UpdateAppProtectionLevelRequest.new({ data: DatadogAPIClient::V2::UpdateAppProtectionLevelRequestData.new({ attributes: DatadogAPIClient::V2::UpdateAppProtectionLevelRequestDataAttributes.new({ @@ -11,4 +14,4 @@ type: DatadogAPIClient::V2::AppProtectionLevelType::PROTECTIONLEVEL, }), }) -p api_instance.update_protection_level("9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d", body) +p api_instance.update_protection_level(APP_DATA_ID, body) diff --git a/features/v2/app_builder.feature b/features/v2/app_builder.feature index bbc0caf196fd..9f2b3174bc2c 100644 --- a/features/v2/app_builder.feature +++ b/features/v2/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