diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index b8661d93ff..14b2d035b5 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -19700,11 +19700,12 @@ components: - id type: object DeploymentRulesOptions: - description: Options for deployment rule response representing either faulty - deployment detection or monitor options. - oneOf: + anyOf: - $ref: '#/components/schemas/DeploymentRuleOptionsFaultyDeploymentDetection' - $ref: '#/components/schemas/DeploymentRuleOptionsMonitor' + description: Options for deployment rule response representing either faulty + deployment detection or monitor options. The actual type is determined by + the parent's 'type' field. DetachCaseRequest: description: Request for detaching security findings from their case. properties: diff --git a/docs/datadog_api_client.v2.model.rst b/docs/datadog_api_client.v2.model.rst index bca0ce24b2..02b33ec9ef 100644 --- a/docs/datadog_api_client.v2.model.rst +++ b/docs/datadog_api_client.v2.model.rst @@ -7746,20 +7746,6 @@ datadog\_api\_client.v2.model.deployment\_rule\_data\_type module :members: :show-inheritance: -datadog\_api\_client.v2.model.deployment\_rule\_options\_faulty\_deployment\_detection module ---------------------------------------------------------------------------------------------- - -.. automodule:: datadog_api_client.v2.model.deployment_rule_options_faulty_deployment_detection - :members: - :show-inheritance: - -datadog\_api\_client.v2.model.deployment\_rule\_options\_monitor module ------------------------------------------------------------------------ - -.. automodule:: datadog_api_client.v2.model.deployment_rule_options_monitor - :members: - :show-inheritance: - datadog\_api\_client.v2.model.deployment\_rule\_response module --------------------------------------------------------------- @@ -7802,13 +7788,6 @@ datadog\_api\_client.v2.model.deployment\_rule\_response\_data\_attributes\_upda :members: :show-inheritance: -datadog\_api\_client.v2.model.deployment\_rules\_options module ---------------------------------------------------------------- - -.. automodule:: datadog_api_client.v2.model.deployment_rules_options - :members: - :show-inheritance: - datadog\_api\_client.v2.model.detach\_case\_request module ---------------------------------------------------------- diff --git a/examples/v2/deployment-gates/CreateDeploymentRule.py b/examples/v2/deployment-gates/CreateDeploymentRule.py index d6b96b9566..260aef4630 100644 --- a/examples/v2/deployment-gates/CreateDeploymentRule.py +++ b/examples/v2/deployment-gates/CreateDeploymentRule.py @@ -11,9 +11,7 @@ CreateDeploymentRuleParamsDataAttributes, ) from datadog_api_client.v2.model.deployment_rule_data_type import DeploymentRuleDataType -from datadog_api_client.v2.model.deployment_rule_options_faulty_deployment_detection import ( - DeploymentRuleOptionsFaultyDeploymentDetection, -) +from datadog_api_client.v2.model.deployment_rules_options import DeploymentRulesOptions # there is a valid "deployment_gate" in the system DEPLOYMENT_GATE_DATA_ID = environ["DEPLOYMENT_GATE_DATA_ID"] @@ -23,9 +21,7 @@ attributes=CreateDeploymentRuleParamsDataAttributes( dry_run=False, name="My deployment rule", - options=DeploymentRuleOptionsFaultyDeploymentDetection( - excluded_resources=[], - ), + options=DeploymentRulesOptions([("excluded_resources", "[]")]), type="faulty_deployment_detection", ), type=DeploymentRuleDataType.DEPLOYMENT_RULE, diff --git a/examples/v2/deployment-gates/UpdateDeploymentRule.py b/examples/v2/deployment-gates/UpdateDeploymentRule.py index a7a333dc19..96a980ded0 100644 --- a/examples/v2/deployment-gates/UpdateDeploymentRule.py +++ b/examples/v2/deployment-gates/UpdateDeploymentRule.py @@ -6,9 +6,7 @@ from datadog_api_client import ApiClient, Configuration from datadog_api_client.v2.api.deployment_gates_api import DeploymentGatesApi from datadog_api_client.v2.model.deployment_rule_data_type import DeploymentRuleDataType -from datadog_api_client.v2.model.deployment_rule_options_faulty_deployment_detection import ( - DeploymentRuleOptionsFaultyDeploymentDetection, -) +from datadog_api_client.v2.model.deployment_rules_options import DeploymentRulesOptions from datadog_api_client.v2.model.update_deployment_rule_params import UpdateDeploymentRuleParams from datadog_api_client.v2.model.update_deployment_rule_params_data import UpdateDeploymentRuleParamsData from datadog_api_client.v2.model.update_deployment_rule_params_data_attributes import ( @@ -26,9 +24,7 @@ attributes=UpdateDeploymentRuleParamsDataAttributes( dry_run=False, name="Updated deployment rule", - options=DeploymentRuleOptionsFaultyDeploymentDetection( - excluded_resources=[], - ), + options=DeploymentRulesOptions([("excluded_resources", "[]")]), ), type=DeploymentRuleDataType.DEPLOYMENT_RULE, ), diff --git a/src/datadog_api_client/v2/model/create_deployment_rule_params_data_attributes.py b/src/datadog_api_client/v2/model/create_deployment_rule_params_data_attributes.py index 504e7e7c96..9d82b499d0 100644 --- a/src/datadog_api_client/v2/model/create_deployment_rule_params_data_attributes.py +++ b/src/datadog_api_client/v2/model/create_deployment_rule_params_data_attributes.py @@ -3,33 +3,38 @@ # Copyright 2019-Present Datadog, Inc. from __future__ import annotations -from typing import Union, TYPE_CHECKING +from typing import Any, Union from datadog_api_client.model_utils import ( ModelNormal, cached_property, + date, + datetime, + none_type, unset, UnsetType, + UUID, ) -if TYPE_CHECKING: - from datadog_api_client.v2.model.deployment_rules_options import DeploymentRulesOptions - from datadog_api_client.v2.model.deployment_rule_options_faulty_deployment_detection import ( - DeploymentRuleOptionsFaultyDeploymentDetection, - ) - from datadog_api_client.v2.model.deployment_rule_options_monitor import DeploymentRuleOptionsMonitor - - class CreateDeploymentRuleParamsDataAttributes(ModelNormal): @cached_property def openapi_types(_): - from datadog_api_client.v2.model.deployment_rules_options import DeploymentRulesOptions - return { "dry_run": (bool,), "name": (str,), - "options": (DeploymentRulesOptions,), + "options": ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + UUID, + none_type, + ), "type": (str,), } @@ -40,16 +45,7 @@ def openapi_types(_): "type": "type", } - def __init__( - self_, - name: str, - options: Union[ - DeploymentRulesOptions, DeploymentRuleOptionsFaultyDeploymentDetection, DeploymentRuleOptionsMonitor - ], - type: str, - dry_run: Union[bool, UnsetType] = unset, - **kwargs, - ): + def __init__(self_, name: str, options: Any, type: str, dry_run: Union[bool, UnsetType] = unset, **kwargs): """ Parameters for creating a deployment rule. @@ -59,8 +55,8 @@ def __init__( :param name: The name of the deployment rule. :type name: str - :param options: Options for deployment rule response representing either faulty deployment detection or monitor options. - :type options: DeploymentRulesOptions + :param options: Options for deployment rule response representing either faulty deployment detection or monitor options. The actual type is determined by the parent's 'type' field. + :type options: bool, date, datetime, dict, float, int, list, str, UUID, none_type :param type: The type of the deployment rule (faulty_deployment_detection or monitor). :type type: str diff --git a/src/datadog_api_client/v2/model/deployment_rule_options_faulty_deployment_detection.py b/src/datadog_api_client/v2/model/deployment_rule_options_faulty_deployment_detection.py deleted file mode 100644 index eea14f5e31..0000000000 --- a/src/datadog_api_client/v2/model/deployment_rule_options_faulty_deployment_detection.py +++ /dev/null @@ -1,52 +0,0 @@ -# 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 List, Union - -from datadog_api_client.model_utils import ( - ModelNormal, - cached_property, - unset, - UnsetType, -) - - -class DeploymentRuleOptionsFaultyDeploymentDetection(ModelNormal): - @cached_property - def additional_properties_type(_): - return None - - @cached_property - def openapi_types(_): - return { - "duration": (int,), - "excluded_resources": ([str],), - } - - attribute_map = { - "duration": "duration", - "excluded_resources": "excluded_resources", - } - - def __init__( - self_, - duration: Union[int, UnsetType] = unset, - excluded_resources: Union[List[str], UnsetType] = unset, - **kwargs, - ): - """ - Faulty deployment detection options for deployment rules. - - :param duration: The duration for faulty deployment detection. - :type duration: int, optional - - :param excluded_resources: Resources to exclude from faulty deployment detection. - :type excluded_resources: [str], optional - """ - if duration is not unset: - kwargs["duration"] = duration - if excluded_resources is not unset: - kwargs["excluded_resources"] = excluded_resources - super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/deployment_rule_options_monitor.py b/src/datadog_api_client/v2/model/deployment_rule_options_monitor.py deleted file mode 100644 index 5ae363b33d..0000000000 --- a/src/datadog_api_client/v2/model/deployment_rule_options_monitor.py +++ /dev/null @@ -1,47 +0,0 @@ -# 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 - -from datadog_api_client.model_utils import ( - ModelNormal, - cached_property, - unset, - UnsetType, -) - - -class DeploymentRuleOptionsMonitor(ModelNormal): - @cached_property - def additional_properties_type(_): - return None - - @cached_property - def openapi_types(_): - return { - "duration": (int,), - "query": (str,), - } - - attribute_map = { - "duration": "duration", - "query": "query", - } - - def __init__(self_, query: str, duration: Union[int, UnsetType] = unset, **kwargs): - """ - Monitor options for deployment rules. - - :param duration: Seconds the monitor needs to stay in OK status for the rule to pass. - :type duration: int, optional - - :param query: Monitors that match this query are evaluated. - :type query: str - """ - if duration is not unset: - kwargs["duration"] = duration - super().__init__(kwargs) - - self_.query = query diff --git a/src/datadog_api_client/v2/model/deployment_rule_response_data_attributes.py b/src/datadog_api_client/v2/model/deployment_rule_response_data_attributes.py index 874e36f6bf..c1ee54c41d 100644 --- a/src/datadog_api_client/v2/model/deployment_rule_response_data_attributes.py +++ b/src/datadog_api_client/v2/model/deployment_rule_response_data_attributes.py @@ -3,14 +3,17 @@ # Copyright 2019-Present Datadog, Inc. from __future__ import annotations -from typing import Union, TYPE_CHECKING +from typing import Any, Union, TYPE_CHECKING from datadog_api_client.model_utils import ( ModelNormal, cached_property, + date, datetime, + none_type, unset, UnsetType, + UUID, ) @@ -18,17 +21,12 @@ from datadog_api_client.v2.model.deployment_rule_response_data_attributes_created_by import ( DeploymentRuleResponseDataAttributesCreatedBy, ) - from datadog_api_client.v2.model.deployment_rules_options import DeploymentRulesOptions from datadog_api_client.v2.model.deployment_rule_response_data_attributes_type import ( DeploymentRuleResponseDataAttributesType, ) from datadog_api_client.v2.model.deployment_rule_response_data_attributes_updated_by import ( DeploymentRuleResponseDataAttributesUpdatedBy, ) - from datadog_api_client.v2.model.deployment_rule_options_faulty_deployment_detection import ( - DeploymentRuleOptionsFaultyDeploymentDetection, - ) - from datadog_api_client.v2.model.deployment_rule_options_monitor import DeploymentRuleOptionsMonitor class DeploymentRuleResponseDataAttributes(ModelNormal): @@ -37,7 +35,6 @@ def openapi_types(_): from datadog_api_client.v2.model.deployment_rule_response_data_attributes_created_by import ( DeploymentRuleResponseDataAttributesCreatedBy, ) - from datadog_api_client.v2.model.deployment_rules_options import DeploymentRulesOptions from datadog_api_client.v2.model.deployment_rule_response_data_attributes_type import ( DeploymentRuleResponseDataAttributesType, ) @@ -51,7 +48,18 @@ def openapi_types(_): "dry_run": (bool,), "gate_id": (str,), "name": (str,), - "options": (DeploymentRulesOptions,), + "options": ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + UUID, + none_type, + ), "type": (DeploymentRuleResponseDataAttributesType,), "updated_at": (datetime,), "updated_by": (DeploymentRuleResponseDataAttributesUpdatedBy,), @@ -76,9 +84,7 @@ def __init__( dry_run: bool, gate_id: str, name: str, - options: Union[ - DeploymentRulesOptions, DeploymentRuleOptionsFaultyDeploymentDetection, DeploymentRuleOptionsMonitor - ], + options: Any, type: DeploymentRuleResponseDataAttributesType, updated_at: Union[datetime, UnsetType] = unset, updated_by: Union[DeploymentRuleResponseDataAttributesUpdatedBy, UnsetType] = unset, @@ -102,8 +108,8 @@ def __init__( :param name: The name of the deployment rule. :type name: str - :param options: Options for deployment rule response representing either faulty deployment detection or monitor options. - :type options: DeploymentRulesOptions + :param options: Options for deployment rule response representing either faulty deployment detection or monitor options. The actual type is determined by the parent's 'type' field. + :type options: bool, date, datetime, dict, float, int, list, str, UUID, none_type :param type: The type of the deployment rule. :type type: DeploymentRuleResponseDataAttributesType diff --git a/src/datadog_api_client/v2/model/deployment_rules_options.py b/src/datadog_api_client/v2/model/deployment_rules_options.py deleted file mode 100644 index 5aaa95dd0a..0000000000 --- a/src/datadog_api_client/v2/model/deployment_rules_options.py +++ /dev/null @@ -1,48 +0,0 @@ -# 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 datadog_api_client.model_utils import ( - ModelComposed, - cached_property, -) - - -class DeploymentRulesOptions(ModelComposed): - def __init__(self, **kwargs): - """ - Options for deployment rule response representing either faulty deployment detection or monitor options. - - :param duration: The duration for faulty deployment detection. - :type duration: int, optional - - :param excluded_resources: Resources to exclude from faulty deployment detection. - :type excluded_resources: [str], optional - - :param query: Monitors that match this query are evaluated. - :type query: str - """ - super().__init__(kwargs) - - @cached_property - def _composed_schemas(_): - # we need this here to make our import statements work - # we must store _composed_schemas in here so the code is only run - # when we invoke this method. If we kept this at the class - # level we would get an error because the class level - # code would be run when this module is imported, and these composed - # classes don't exist yet because their module has not finished - # loading - from datadog_api_client.v2.model.deployment_rule_options_faulty_deployment_detection import ( - DeploymentRuleOptionsFaultyDeploymentDetection, - ) - from datadog_api_client.v2.model.deployment_rule_options_monitor import DeploymentRuleOptionsMonitor - - return { - "oneOf": [ - DeploymentRuleOptionsFaultyDeploymentDetection, - DeploymentRuleOptionsMonitor, - ], - } diff --git a/src/datadog_api_client/v2/model/update_deployment_rule_params_data_attributes.py b/src/datadog_api_client/v2/model/update_deployment_rule_params_data_attributes.py index cc51b544a3..ad97016e84 100644 --- a/src/datadog_api_client/v2/model/update_deployment_rule_params_data_attributes.py +++ b/src/datadog_api_client/v2/model/update_deployment_rule_params_data_attributes.py @@ -3,31 +3,36 @@ # Copyright 2019-Present Datadog, Inc. from __future__ import annotations -from typing import Union, TYPE_CHECKING +from typing import Any from datadog_api_client.model_utils import ( ModelNormal, cached_property, + date, + datetime, + none_type, + UUID, ) -if TYPE_CHECKING: - from datadog_api_client.v2.model.deployment_rules_options import DeploymentRulesOptions - from datadog_api_client.v2.model.deployment_rule_options_faulty_deployment_detection import ( - DeploymentRuleOptionsFaultyDeploymentDetection, - ) - from datadog_api_client.v2.model.deployment_rule_options_monitor import DeploymentRuleOptionsMonitor - - class UpdateDeploymentRuleParamsDataAttributes(ModelNormal): @cached_property def openapi_types(_): - from datadog_api_client.v2.model.deployment_rules_options import DeploymentRulesOptions - return { "dry_run": (bool,), "name": (str,), - "options": (DeploymentRulesOptions,), + "options": ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + UUID, + none_type, + ), } attribute_map = { @@ -36,15 +41,7 @@ def openapi_types(_): "options": "options", } - def __init__( - self_, - dry_run: bool, - name: str, - options: Union[ - DeploymentRulesOptions, DeploymentRuleOptionsFaultyDeploymentDetection, DeploymentRuleOptionsMonitor - ], - **kwargs, - ): + def __init__(self_, dry_run: bool, name: str, options: Any, **kwargs): """ Parameters for updating a deployment rule. @@ -54,8 +51,8 @@ def __init__( :param name: The name of the deployment rule. :type name: str - :param options: Options for deployment rule response representing either faulty deployment detection or monitor options. - :type options: DeploymentRulesOptions + :param options: Options for deployment rule response representing either faulty deployment detection or monitor options. The actual type is determined by the parent's 'type' field. + :type options: bool, date, datetime, dict, float, int, list, str, UUID, none_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 3fa7932ad3..e834d2e20b 100644 --- a/src/datadog_api_client/v2/models/__init__.py +++ b/src/datadog_api_client/v2/models/__init__.py @@ -1576,10 +1576,6 @@ from datadog_api_client.v2.model.deployment_relationship import DeploymentRelationship from datadog_api_client.v2.model.deployment_relationship_data import DeploymentRelationshipData from datadog_api_client.v2.model.deployment_rule_data_type import DeploymentRuleDataType -from datadog_api_client.v2.model.deployment_rule_options_faulty_deployment_detection import ( - DeploymentRuleOptionsFaultyDeploymentDetection, -) -from datadog_api_client.v2.model.deployment_rule_options_monitor import DeploymentRuleOptionsMonitor from datadog_api_client.v2.model.deployment_rule_response import DeploymentRuleResponse from datadog_api_client.v2.model.deployment_rule_response_data import DeploymentRuleResponseData from datadog_api_client.v2.model.deployment_rule_response_data_attributes import DeploymentRuleResponseDataAttributes @@ -1592,7 +1588,6 @@ from datadog_api_client.v2.model.deployment_rule_response_data_attributes_updated_by import ( DeploymentRuleResponseDataAttributesUpdatedBy, ) -from datadog_api_client.v2.model.deployment_rules_options import DeploymentRulesOptions from datadog_api_client.v2.model.detach_case_request import DetachCaseRequest from datadog_api_client.v2.model.detach_case_request_data import DetachCaseRequestData from datadog_api_client.v2.model.detach_case_request_data_relationships import DetachCaseRequestDataRelationships @@ -7150,15 +7145,12 @@ "DeploymentRelationship", "DeploymentRelationshipData", "DeploymentRuleDataType", - "DeploymentRuleOptionsFaultyDeploymentDetection", - "DeploymentRuleOptionsMonitor", "DeploymentRuleResponse", "DeploymentRuleResponseData", "DeploymentRuleResponseDataAttributes", "DeploymentRuleResponseDataAttributesCreatedBy", "DeploymentRuleResponseDataAttributesType", "DeploymentRuleResponseDataAttributesUpdatedBy", - "DeploymentRulesOptions", "DetachCaseRequest", "DetachCaseRequestData", "DetachCaseRequestDataRelationships", diff --git a/tests/v2/features/deployment_gates.feature b/tests/v2/features/deployment_gates.feature index cb0c5a1262..7f9dd2ada6 100644 --- a/tests/v2/features/deployment_gates.feature +++ b/tests/v2/features/deployment_gates.feature @@ -49,7 +49,7 @@ Feature: Deployment Gates Given operation "CreateDeploymentRule" enabled And new "CreateDeploymentRule" request And request contains "gate_id" parameter from "REPLACE.ME" - And body with value {"data": {"attributes": {"dry_run": false, "name": "My deployment rule", "options": {"duration": 3600, "excluded_resources": ["resource1", "resource2"]}, "type": "faulty_deployment_detection"}, "type": "deployment_rule"}} + And body with value {"data": {"attributes": {"dry_run": false, "name": "My deployment rule", "type": "faulty_deployment_detection"}, "type": "deployment_rule"}} When the request is sent Then the response status is 400 Bad request. @@ -279,7 +279,7 @@ Feature: Deployment Gates And new "UpdateDeploymentRule" request And request contains "gate_id" parameter from "REPLACE.ME" And request contains "id" parameter from "REPLACE.ME" - And body with value {"data": {"attributes": {"dry_run": false, "name": "Updated deployment rule", "options": {"duration": 3600, "excluded_resources": ["resource1", "resource2"]}}, "type": "deployment_rule"}} + And body with value {"data": {"attributes": {"dry_run": false, "name": "Updated deployment rule"}, "type": "deployment_rule"}} When the request is sent Then the response status is 400 Bad request. @@ -289,7 +289,7 @@ Feature: Deployment Gates And new "UpdateDeploymentRule" request And request contains "gate_id" parameter from "REPLACE.ME" And request contains "id" parameter from "REPLACE.ME" - And body with value {"data": {"attributes": {"dry_run": false, "name": "Updated deployment rule", "options": {"duration": 3600, "excluded_resources": ["resource1", "resource2"]}}, "type": "deployment_rule"}} + And body with value {"data": {"attributes": {"dry_run": false, "name": "Updated deployment rule"}, "type": "deployment_rule"}} When the request is sent Then the response status is 404 Deployment rule not found.