From eec5823c60e146963a4621968a1d04011c5aa673 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Tue, 30 Jul 2024 15:12:09 +0000 Subject: [PATCH] Regenerate client from commit b720f32b of spec repo --- .apigentools-info | 8 +- .generator/schemas/v2/openapi.yaml | 75 ++++++++++++++++++- docs/datadog_api_client.v2.model.rst | 28 +++++++ .../service-scorecards/UpdateScorecardRule.py | 34 +++++++++ src/datadog_api_client/configuration.py | 1 + .../v2/api/service_scorecards_api.py | 52 ++++++++++++- .../v2/model/update_rule_request.py | 42 +++++++++++ .../v2/model/update_rule_request_data.py | 53 +++++++++++++ .../v2/model/update_rule_response.py | 42 +++++++++++ .../v2/model/update_rule_response_data.py | 74 ++++++++++++++++++ src/datadog_api_client/v2/models/__init__.py | 8 ++ ..._rule_updated_successfully_response.frozen | 1 + ...ns_rule_updated_successfully_response.yaml | 61 +++++++++++++++ tests/v2/features/service_scorecards.feature | 19 +++++ tests/v2/features/undo.json | 6 ++ 15 files changed, 496 insertions(+), 8 deletions(-) create mode 100644 examples/v2/service-scorecards/UpdateScorecardRule.py create mode 100644 src/datadog_api_client/v2/model/update_rule_request.py create mode 100644 src/datadog_api_client/v2/model/update_rule_request_data.py create mode 100644 src/datadog_api_client/v2/model/update_rule_response.py create mode 100644 src/datadog_api_client/v2/model/update_rule_response_data.py create mode 100644 tests/v2/cassettes/test_scenarios/test_update_an_existing_rule_returns_rule_updated_successfully_response.frozen create mode 100644 tests/v2/cassettes/test_scenarios/test_update_an_existing_rule_returns_rule_updated_successfully_response.yaml diff --git a/.apigentools-info b/.apigentools-info index 4b6fbfbdae..ccabb51e73 100644 --- a/.apigentools-info +++ b/.apigentools-info @@ -4,13 +4,13 @@ "spec_versions": { "v1": { "apigentools_version": "1.6.6", - "regenerated": "2024-07-26 19:58:47.789565", - "spec_repo_commit": "2c4b4e85" + "regenerated": "2024-07-30 15:11:38.559208", + "spec_repo_commit": "b720f32b" }, "v2": { "apigentools_version": "1.6.6", - "regenerated": "2024-07-26 19:58:47.806497", - "spec_repo_commit": "2c4b4e85" + "regenerated": "2024-07-30 15:11:38.576244", + "spec_repo_commit": "b720f32b" } } } \ No newline at end of file diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 69457eb477..cb8e3ca6d6 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -457,7 +457,7 @@ components: schema: type: string RuleId: - description: The ID of the rule/scorecard. + description: The ID of the rule. in: path name: rule_id required: true @@ -16532,7 +16532,7 @@ components: properties: id: description: The unique ID for a scorecard. - example: 00000000-0000-beef-0000-000000000000 + example: q8MQxk8TCqrHnWkp type: string type: $ref: '#/components/schemas/ScorecardType' @@ -17377,7 +17377,7 @@ components: type: object RuleId: description: The unique ID for a scorecard rule. - example: 00000000-0000-beef-0000-000000000000 + example: q8MQxk8TCqrHnWkx type: string RuleOutcomeRelationships: description: The JSON:API relationship to a scorecard rule. @@ -23214,6 +23214,38 @@ components: id: $ref: '#/components/schemas/ApiID' type: object + UpdateRuleRequest: + description: Scorecard update rule request. + properties: + data: + $ref: '#/components/schemas/UpdateRuleRequestData' + type: object + UpdateRuleRequestData: + description: Scorecard update rule request data. + properties: + attributes: + $ref: '#/components/schemas/RuleAttributes' + type: + $ref: '#/components/schemas/RuleType' + type: object + UpdateRuleResponse: + description: Updated rule in response. + properties: + data: + $ref: '#/components/schemas/UpdateRuleResponseData' + type: object + UpdateRuleResponseData: + description: Update rule response data. + properties: + attributes: + $ref: '#/components/schemas/RuleAttributes' + id: + $ref: '#/components/schemas/RuleId' + relationships: + $ref: '#/components/schemas/RelationshipToRule' + type: + $ref: '#/components/schemas/RuleType' + type: object UsageApplicationSecurityMonitoringResponse: description: Application Security Monitoring usage response. properties: @@ -33554,6 +33586,43 @@ paths: x-unstable: '**Note**: This endpoint is in public beta. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + put: + description: Updates an existing rule. + operationId: UpdateScorecardRule + parameters: + - $ref: '#/components/parameters/RuleId' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateRuleRequest' + description: Rule attributes. + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateRuleResponse' + description: Rule updated successfully + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - apm_service_catalog_write + summary: Update an existing rule + tags: + - Service Scorecards + x-codegen-request-body-name: body + x-unstable: '**Note**: This endpoint is in public beta. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' /api/v2/security/cloud_workload/policy/download: get: description: 'The download endpoint generates a Cloud Workload Security policy diff --git a/docs/datadog_api_client.v2.model.rst b/docs/datadog_api_client.v2.model.rst index afcaacd3b6..355851d19e 100644 --- a/docs/datadog_api_client.v2.model.rst +++ b/docs/datadog_api_client.v2.model.rst @@ -10371,6 +10371,34 @@ datadog\_api\_client.v2.model.update\_open\_api\_response\_data module :members: :show-inheritance: +datadog\_api\_client.v2.model.update\_rule\_request module +---------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.update_rule_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.update\_rule\_request\_data module +---------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.update_rule_request_data + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.update\_rule\_response module +----------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.update_rule_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.update\_rule\_response\_data module +----------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.update_rule_response_data + :members: + :show-inheritance: + datadog\_api\_client.v2.model.usage\_application\_security\_monitoring\_response module --------------------------------------------------------------------------------------- diff --git a/examples/v2/service-scorecards/UpdateScorecardRule.py b/examples/v2/service-scorecards/UpdateScorecardRule.py new file mode 100644 index 0000000000..cba74500fa --- /dev/null +++ b/examples/v2/service-scorecards/UpdateScorecardRule.py @@ -0,0 +1,34 @@ +""" +Update an existing rule returns "Rule updated successfully" response +""" + +from os import environ +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.service_scorecards_api import ServiceScorecardsApi +from datadog_api_client.v2.model.rule_attributes import RuleAttributes +from datadog_api_client.v2.model.update_rule_request import UpdateRuleRequest +from datadog_api_client.v2.model.update_rule_request_data import UpdateRuleRequestData + +# there is a valid "create_scorecard_rule" in the system +CREATE_SCORECARD_RULE_DATA_ATTRIBUTES_NAME = environ["CREATE_SCORECARD_RULE_DATA_ATTRIBUTES_NAME"] +CREATE_SCORECARD_RULE_DATA_ATTRIBUTES_SCORECARD_NAME = environ["CREATE_SCORECARD_RULE_DATA_ATTRIBUTES_SCORECARD_NAME"] +CREATE_SCORECARD_RULE_DATA_ID = environ["CREATE_SCORECARD_RULE_DATA_ID"] + +body = UpdateRuleRequest( + data=UpdateRuleRequestData( + attributes=RuleAttributes( + enabled=True, + name=CREATE_SCORECARD_RULE_DATA_ATTRIBUTES_NAME, + scorecard_name=CREATE_SCORECARD_RULE_DATA_ATTRIBUTES_SCORECARD_NAME, + description="Updated description via test", + ), + ), +) + +configuration = Configuration() +configuration.unstable_operations["update_scorecard_rule"] = True +with ApiClient(configuration) as api_client: + api_instance = ServiceScorecardsApi(api_client) + response = api_instance.update_scorecard_rule(rule_id=CREATE_SCORECARD_RULE_DATA_ID, body=body) + + print(response) diff --git a/src/datadog_api_client/configuration.py b/src/datadog_api_client/configuration.py index 1c36914c3d..b56efd790d 100644 --- a/src/datadog_api_client/configuration.py +++ b/src/datadog_api_client/configuration.py @@ -273,6 +273,7 @@ def __init__( "v2.delete_scorecard_rule": False, "v2.list_scorecard_outcomes": False, "v2.list_scorecard_rules": False, + "v2.update_scorecard_rule": False, "v2.create_incident_service": False, "v2.delete_incident_service": False, "v2.get_incident_service": False, diff --git a/src/datadog_api_client/v2/api/service_scorecards_api.py b/src/datadog_api_client/v2/api/service_scorecards_api.py index dad1294053..a7561659ea 100644 --- a/src/datadog_api_client/v2/api/service_scorecards_api.py +++ b/src/datadog_api_client/v2/api/service_scorecards_api.py @@ -22,6 +22,8 @@ from datadog_api_client.v2.model.list_rules_response_data_item import ListRulesResponseDataItem from datadog_api_client.v2.model.create_rule_response import CreateRuleResponse from datadog_api_client.v2.model.create_rule_request import CreateRuleRequest +from datadog_api_client.v2.model.update_rule_response import UpdateRuleResponse +from datadog_api_client.v2.model.update_rule_request import UpdateRuleRequest class ServiceScorecardsApi: @@ -233,6 +235,32 @@ def __init__(self, api_client=None): api_client=api_client, ) + self._update_scorecard_rule_endpoint = _Endpoint( + settings={ + "response_type": (UpdateRuleResponse,), + "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], + "endpoint_path": "/api/v2/scorecard/rules/{rule_id}", + "operation_id": "update_scorecard_rule", + "http_method": "PUT", + "version": "v2", + }, + params_map={ + "rule_id": { + "required": True, + "openapi_types": (str,), + "attribute": "rule_id", + "location": "path", + }, + "body": { + "required": True, + "openapi_types": (UpdateRuleRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["application/json"], "content_type": ["application/json"]}, + api_client=api_client, + ) + def create_scorecard_outcomes_batch( self, body: OutcomesBatchRequest, @@ -275,7 +303,7 @@ def delete_scorecard_rule( Deletes a single rule. - :param rule_id: The ID of the rule/scorecard. + :param rule_id: The ID of the rule. :type rule_id: str :rtype: None """ @@ -599,3 +627,25 @@ def list_scorecard_rules_with_pagination( "kwargs": kwargs, } return endpoint.call_with_http_info_paginated(pagination) + + def update_scorecard_rule( + self, + rule_id: str, + body: UpdateRuleRequest, + ) -> UpdateRuleResponse: + """Update an existing rule. + + Updates an existing rule. + + :param rule_id: The ID of the rule. + :type rule_id: str + :param body: Rule attributes. + :type body: UpdateRuleRequest + :rtype: UpdateRuleResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["rule_id"] = rule_id + + kwargs["body"] = body + + return self._update_scorecard_rule_endpoint.call_with_http_info(**kwargs) diff --git a/src/datadog_api_client/v2/model/update_rule_request.py b/src/datadog_api_client/v2/model/update_rule_request.py new file mode 100644 index 0000000000..93dc82c077 --- /dev/null +++ b/src/datadog_api_client/v2/model/update_rule_request.py @@ -0,0 +1,42 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.update_rule_request_data import UpdateRuleRequestData + + +class UpdateRuleRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.update_rule_request_data import UpdateRuleRequestData + + return { + "data": (UpdateRuleRequestData,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: Union[UpdateRuleRequestData, UnsetType] = unset, **kwargs): + """ + Scorecard update rule request. + + :param data: Scorecard update rule request data. + :type data: UpdateRuleRequestData, optional + """ + if data is not unset: + kwargs["data"] = data + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/update_rule_request_data.py b/src/datadog_api_client/v2/model/update_rule_request_data.py new file mode 100644 index 0000000000..dd44e7b527 --- /dev/null +++ b/src/datadog_api_client/v2/model/update_rule_request_data.py @@ -0,0 +1,53 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.rule_attributes import RuleAttributes + from datadog_api_client.v2.model.rule_type import RuleType + + +class UpdateRuleRequestData(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.rule_attributes import RuleAttributes + from datadog_api_client.v2.model.rule_type import RuleType + + return { + "attributes": (RuleAttributes,), + "type": (RuleType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__( + self_, attributes: Union[RuleAttributes, UnsetType] = unset, type: Union[RuleType, UnsetType] = unset, **kwargs + ): + """ + Scorecard update rule request data. + + :param attributes: Details of a rule. + :type attributes: RuleAttributes, optional + + :param type: The JSON:API type for scorecard rules. + :type type: RuleType, optional + """ + if attributes is not unset: + kwargs["attributes"] = attributes + if type is not unset: + kwargs["type"] = type + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/update_rule_response.py b/src/datadog_api_client/v2/model/update_rule_response.py new file mode 100644 index 0000000000..fa78090931 --- /dev/null +++ b/src/datadog_api_client/v2/model/update_rule_response.py @@ -0,0 +1,42 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.update_rule_response_data import UpdateRuleResponseData + + +class UpdateRuleResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.update_rule_response_data import UpdateRuleResponseData + + return { + "data": (UpdateRuleResponseData,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: Union[UpdateRuleResponseData, UnsetType] = unset, **kwargs): + """ + Updated rule in response. + + :param data: Update rule response data. + :type data: UpdateRuleResponseData, optional + """ + if data is not unset: + kwargs["data"] = data + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/update_rule_response_data.py b/src/datadog_api_client/v2/model/update_rule_response_data.py new file mode 100644 index 0000000000..6a662e39b2 --- /dev/null +++ b/src/datadog_api_client/v2/model/update_rule_response_data.py @@ -0,0 +1,74 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.rule_attributes import RuleAttributes + from datadog_api_client.v2.model.relationship_to_rule import RelationshipToRule + from datadog_api_client.v2.model.rule_type import RuleType + + +class UpdateRuleResponseData(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.rule_attributes import RuleAttributes + from datadog_api_client.v2.model.relationship_to_rule import RelationshipToRule + from datadog_api_client.v2.model.rule_type import RuleType + + return { + "attributes": (RuleAttributes,), + "id": (str,), + "relationships": (RelationshipToRule,), + "type": (RuleType,), + } + + attribute_map = { + "attributes": "attributes", + "id": "id", + "relationships": "relationships", + "type": "type", + } + + def __init__( + self_, + attributes: Union[RuleAttributes, UnsetType] = unset, + id: Union[str, UnsetType] = unset, + relationships: Union[RelationshipToRule, UnsetType] = unset, + type: Union[RuleType, UnsetType] = unset, + **kwargs, + ): + """ + Update rule response data. + + :param attributes: Details of a rule. + :type attributes: RuleAttributes, optional + + :param id: The unique ID for a scorecard rule. + :type id: str, optional + + :param relationships: Scorecard create rule response relationship. + :type relationships: RelationshipToRule, optional + + :param type: The JSON:API type for scorecard rules. + :type type: RuleType, optional + """ + if attributes is not unset: + kwargs["attributes"] = attributes + if id is not unset: + kwargs["id"] = id + if relationships is not unset: + kwargs["relationships"] = relationships + if type is not unset: + kwargs["type"] = type + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/models/__init__.py b/src/datadog_api_client/v2/models/__init__.py index 47e62bc8ed..7c85b65b26 100644 --- a/src/datadog_api_client/v2/models/__init__.py +++ b/src/datadog_api_client/v2/models/__init__.py @@ -1799,6 +1799,10 @@ from datadog_api_client.v2.model.update_open_api_response import UpdateOpenAPIResponse from datadog_api_client.v2.model.update_open_api_response_attributes import UpdateOpenAPIResponseAttributes from datadog_api_client.v2.model.update_open_api_response_data import UpdateOpenAPIResponseData +from datadog_api_client.v2.model.update_rule_request import UpdateRuleRequest +from datadog_api_client.v2.model.update_rule_request_data import UpdateRuleRequestData +from datadog_api_client.v2.model.update_rule_response import UpdateRuleResponse +from datadog_api_client.v2.model.update_rule_response_data import UpdateRuleResponseData from datadog_api_client.v2.model.usage_application_security_monitoring_response import ( UsageApplicationSecurityMonitoringResponse, ) @@ -3338,6 +3342,10 @@ "UpdateOpenAPIResponse", "UpdateOpenAPIResponseAttributes", "UpdateOpenAPIResponseData", + "UpdateRuleRequest", + "UpdateRuleRequestData", + "UpdateRuleResponse", + "UpdateRuleResponseData", "UsageApplicationSecurityMonitoringResponse", "UsageAttributesObject", "UsageDataObject", diff --git a/tests/v2/cassettes/test_scenarios/test_update_an_existing_rule_returns_rule_updated_successfully_response.frozen b/tests/v2/cassettes/test_scenarios/test_update_an_existing_rule_returns_rule_updated_successfully_response.frozen new file mode 100644 index 0000000000..dc5624fef6 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_an_existing_rule_returns_rule_updated_successfully_response.frozen @@ -0,0 +1 @@ +2024-07-30T02:47:12.976Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_update_an_existing_rule_returns_rule_updated_successfully_response.yaml b/tests/v2/cassettes/test_scenarios/test_update_an_existing_rule_returns_rule_updated_successfully_response.yaml new file mode 100644 index 0000000000..74b3e94549 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_update_an_existing_rule_returns_rule_updated_successfully_response.yaml @@ -0,0 +1,61 @@ +interactions: +- request: + body: '{"data":{"attributes":{"enabled":true,"name":"Test-Update_an_existing_rule_returns_Rule_updated_successfully_response-1722307632","owner":"Datadog","scorecard_name":"OpenAPI + Spec Test Best Practices"},"type":"rule"}}' + headers: + accept: + - application/json + content-type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/scorecard/rules + response: + body: + string: '{"data":{"id":"L2uJseIxQCRLg_2z","type":"rule","attributes":{"category":"OpenAPI + Spec Test Best Practices","created_at":"2024-07-30T02:47:13.117302334Z","custom":true,"enabled":true,"modified_at":"2024-07-30T02:47:13.117302334Z","name":"Test-Update_an_existing_rule_returns_Rule_updated_successfully_response-1722307632","owner":"Datadog","scorecard_name":"OpenAPI + Spec Test Best Practices"},"relationships":{"scorecard":{"data":{"id":"qsxpoYRhU_yz","type":"scorecard"}}}}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 201 + message: Created +- request: + body: '{"data":{"attributes":{"description":"Updated description via test","enabled":true,"name":"Test-Update_an_existing_rule_returns_Rule_updated_successfully_response-1722307632","scorecard_name":"OpenAPI + Spec Test Best Practices"}}}' + headers: + accept: + - application/json + content-type: + - application/json + method: PUT + uri: https://api.datadoghq.com/api/v2/scorecard/rules/L2uJseIxQCRLg_2z + response: + body: + string: '{"data":{"id":"L2uJseIxQCRLg_2z","type":"rule","attributes":{"category":"OpenAPI + Spec Test Best Practices","created_at":"2024-07-30T02:47:13.117302Z","custom":true,"description":"Updated + description via test","enabled":true,"modified_at":"2024-07-30T02:47:13.231478Z","name":"Test-Update_an_existing_rule_returns_Rule_updated_successfully_response-1722307632","scorecard_name":"OpenAPI + Spec Test Best Practices"},"relationships":{"scorecard":{"data":{"id":"qsxpoYRhU_yz","type":"scorecard"}}}}}' + headers: + content-type: + - application/vnd.api+json + status: + code: 200 + message: OK +- request: + body: null + headers: + accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/scorecard/rules/L2uJseIxQCRLg_2z + response: + body: + string: '' + headers: + content-type: + - application/vnd.api+json + status: + code: 204 + message: No Content +version: 1 diff --git a/tests/v2/features/service_scorecards.feature b/tests/v2/features/service_scorecards.feature index e772aeeb48..edab6d51cb 100644 --- a/tests/v2/features/service_scorecards.feature +++ b/tests/v2/features/service_scorecards.feature @@ -120,3 +120,22 @@ Feature: Service Scorecards When the request with pagination is sent Then the response status is 200 OK And the response has 4 items + + @generated @skip @team:DataDog/service-catalog + Scenario: Update an existing rule returns "Bad Request" response + Given operation "UpdateScorecardRule" enabled + And new "UpdateScorecardRule" request + And request contains "rule_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"enabled": true, "name": "Team Defined", "scorecard_name": "Deployments automated via Deployment Trains"}, "type": "rule"}} + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/service-catalog + Scenario: Update an existing rule returns "Rule updated successfully" response + Given operation "UpdateScorecardRule" enabled + And there is a valid "create_scorecard_rule" in the system + And new "UpdateScorecardRule" request + And request contains "rule_id" parameter from "create_scorecard_rule.data.id" + And body with value {"data": { "attributes" : {"enabled": true, "name": "{{create_scorecard_rule.data.attributes.name}}", "scorecard_name": "{{create_scorecard_rule.data.attributes.scorecard_name}}", "description": "Updated description via test"}}} + When the request is sent + Then the response status is 200 Rule updated successfully diff --git a/tests/v2/features/undo.json b/tests/v2/features/undo.json index c97bab6f78..c1d15f6015 100644 --- a/tests/v2/features/undo.json +++ b/tests/v2/features/undo.json @@ -1681,6 +1681,12 @@ "type": "idempotent" } }, + "UpdateScorecardRule": { + "tag": "Service Scorecards", + "undo": { + "type": "idempotent" + } + }, "DownloadCloudWorkloadPolicyFile": { "tag": "CSM Threats", "undo": {