From 6658055c4aafdf8f889fb41aa47f9fa54427c9b0 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Mon, 2 Mar 2026 08:41:41 +0000 Subject: [PATCH] Regenerate client from commit e8da02f of spec repo --- .generator/schemas/v2/openapi.yaml | 42 +++++++++++ docs/datadog_api_client.v2.model.rst | 14 ++++ src/datadog_api_client/v2/api/on_call_api.py | 22 ++++++ .../v2/model/escalation_policy_action.py | 73 +++++++++++++++++++ .../v2/model/escalation_policy_action_type.py | 35 +++++++++ .../v2/model/routing_rule_action.py | 11 +++ .../v2/model/routing_rule_attributes.py | 4 +- .../model/team_routing_rules_request_rule.py | 4 +- src/datadog_api_client/v2/models/__init__.py | 4 + ...te_a_test_suite_returns_ok_response.frozen | 2 +- ...eate_a_test_suite_returns_ok_response.yaml | 13 ++-- 11 files changed, 215 insertions(+), 9 deletions(-) create mode 100644 src/datadog_api_client/v2/model/escalation_policy_action.py create mode 100644 src/datadog_api_client/v2/model/escalation_policy_action_type.py diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index e2256f32bd..6dfc227d23 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -22994,6 +22994,35 @@ components: $ref: '#/components/schemas/EscalationPolicyIncluded' type: array type: object + EscalationPolicyAction: + description: Triggers an escalation policy when the routing rule matches. + properties: + policy_id: + description: The ID of the escalation policy to trigger. + example: fad4eee1-13f5-40d8-886b-4e56d8d5d1c6 + type: string + support_hours: + $ref: '#/components/schemas/TimeRestrictions' + description: Defines the support hours during which the escalation policy + will be executed. + nullable: true + type: + $ref: '#/components/schemas/EscalationPolicyActionType' + urgency: + $ref: '#/components/schemas/Urgency' + required: + - type + - policy_id + type: object + EscalationPolicyActionType: + default: escalation_policy + description: Indicates that the action is an escalation policy action. + enum: + - escalation_policy + example: escalation_policy + type: string + x-enum-varnames: + - ESCALATION_POLICY EscalationPolicyCreateRequest: description: Represents a request to create a new escalation policy, including the policy data. @@ -52369,6 +52398,7 @@ components: oneOf: - $ref: '#/components/schemas/SendSlackMessageAction' - $ref: '#/components/schemas/SendTeamsMessageAction' + - $ref: '#/components/schemas/EscalationPolicyAction' RoutingRuleAttributes: description: Defines the configurable attributes of a routing rule, such as actions, query, time restriction, and urgency. @@ -91487,6 +91517,12 @@ paths: name: include schema: type: string + - description: When set to `true`, escalation policies are returned as actions + within routing rules rather than as a separate `policy_id` field. + in: query + name: use_policy_action + schema: + type: boolean responses: '200': content: @@ -91524,6 +91560,12 @@ paths: name: include schema: type: string + - description: When set to `true`, escalation policies are returned as actions + within routing rules rather than as a separate `policy_id` field. + in: query + name: use_policy_action + schema: + type: boolean requestBody: content: application/json: diff --git a/docs/datadog_api_client.v2.model.rst b/docs/datadog_api_client.v2.model.rst index deb71c283a..a1bc58c978 100644 --- a/docs/datadog_api_client.v2.model.rst +++ b/docs/datadog_api_client.v2.model.rst @@ -9559,6 +9559,20 @@ datadog\_api\_client.v2.model.escalation\_policy module :members: :show-inheritance: +datadog\_api\_client.v2.model.escalation\_policy\_action module +--------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.escalation_policy_action + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.escalation\_policy\_action\_type module +--------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.escalation_policy_action_type + :members: + :show-inheritance: + datadog\_api\_client.v2.model.escalation\_policy\_create\_request module ------------------------------------------------------------------------ diff --git a/src/datadog_api_client/v2/api/on_call_api.py b/src/datadog_api_client/v2/api/on_call_api.py index c41567de38..f1c66978b0 100644 --- a/src/datadog_api_client/v2/api/on_call_api.py +++ b/src/datadog_api_client/v2/api/on_call_api.py @@ -324,6 +324,11 @@ def __init__(self, api_client=None): "attribute": "include", "location": "query", }, + "use_policy_action": { + "openapi_types": (bool,), + "attribute": "use_policy_action", + "location": "query", + }, }, headers_map={ "accept": ["application/json"], @@ -527,6 +532,11 @@ def __init__(self, api_client=None): "attribute": "include", "location": "query", }, + "use_policy_action": { + "openapi_types": (bool,), + "attribute": "use_policy_action", + "location": "query", + }, "body": { "required": True, "openapi_types": (TeamRoutingRulesRequest,), @@ -855,6 +865,7 @@ def get_on_call_team_routing_rules( team_id: str, *, include: Union[str, UnsetType] = unset, + use_policy_action: Union[bool, UnsetType] = unset, ) -> TeamRoutingRules: """Get On-Call team routing rules. @@ -864,6 +875,8 @@ def get_on_call_team_routing_rules( :type team_id: str :param include: Comma-separated list of included relationships to be returned. Allowed values: ``rules`` , ``rules.policy``. :type include: str, optional + :param use_policy_action: When set to ``true`` , escalation policies are returned as actions within routing rules rather than as a separate ``policy_id`` field. + :type use_policy_action: bool, optional :rtype: TeamRoutingRules """ kwargs: Dict[str, Any] = {} @@ -872,6 +885,9 @@ def get_on_call_team_routing_rules( if include is not unset: kwargs["include"] = include + if use_policy_action is not unset: + kwargs["use_policy_action"] = use_policy_action + return self._get_on_call_team_routing_rules_endpoint.call_with_http_info(**kwargs) def get_schedule_on_call_user( @@ -1026,6 +1042,7 @@ def set_on_call_team_routing_rules( body: TeamRoutingRulesRequest, *, include: Union[str, UnsetType] = unset, + use_policy_action: Union[bool, UnsetType] = unset, ) -> TeamRoutingRules: """Set On-Call team routing rules. @@ -1036,6 +1053,8 @@ def set_on_call_team_routing_rules( :type body: TeamRoutingRulesRequest :param include: Comma-separated list of included relationships to be returned. Allowed values: ``rules`` , ``rules.policy``. :type include: str, optional + :param use_policy_action: When set to ``true`` , escalation policies are returned as actions within routing rules rather than as a separate ``policy_id`` field. + :type use_policy_action: bool, optional :rtype: TeamRoutingRules """ kwargs: Dict[str, Any] = {} @@ -1044,6 +1063,9 @@ def set_on_call_team_routing_rules( if include is not unset: kwargs["include"] = include + if use_policy_action is not unset: + kwargs["use_policy_action"] = use_policy_action + kwargs["body"] = body return self._set_on_call_team_routing_rules_endpoint.call_with_http_info(**kwargs) diff --git a/src/datadog_api_client/v2/model/escalation_policy_action.py b/src/datadog_api_client/v2/model/escalation_policy_action.py new file mode 100644 index 0000000000..97e8ee6de3 --- /dev/null +++ b/src/datadog_api_client/v2/model/escalation_policy_action.py @@ -0,0 +1,73 @@ +# 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.time_restrictions import TimeRestrictions + from datadog_api_client.v2.model.escalation_policy_action_type import EscalationPolicyActionType + from datadog_api_client.v2.model.urgency import Urgency + + +class EscalationPolicyAction(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.time_restrictions import TimeRestrictions + from datadog_api_client.v2.model.escalation_policy_action_type import EscalationPolicyActionType + from datadog_api_client.v2.model.urgency import Urgency + + return { + "policy_id": (str,), + "support_hours": (TimeRestrictions,), + "type": (EscalationPolicyActionType,), + "urgency": (Urgency,), + } + + attribute_map = { + "policy_id": "policy_id", + "support_hours": "support_hours", + "type": "type", + "urgency": "urgency", + } + + def __init__( + self_, + policy_id: str, + type: EscalationPolicyActionType, + support_hours: Union[TimeRestrictions, UnsetType] = unset, + urgency: Union[Urgency, UnsetType] = unset, + **kwargs, + ): + """ + Triggers an escalation policy when the routing rule matches. + + :param policy_id: The ID of the escalation policy to trigger. + :type policy_id: str + + :param support_hours: Holds time zone information and a list of time restrictions for a routing rule. + :type support_hours: TimeRestrictions, optional + + :param type: Indicates that the action is an escalation policy action. + :type type: EscalationPolicyActionType + + :param urgency: Specifies the level of urgency for a routing rule (low, high, or dynamic). + :type urgency: Urgency, optional + """ + if support_hours is not unset: + kwargs["support_hours"] = support_hours + if urgency is not unset: + kwargs["urgency"] = urgency + super().__init__(kwargs) + + self_.policy_id = policy_id + self_.type = type diff --git a/src/datadog_api_client/v2/model/escalation_policy_action_type.py b/src/datadog_api_client/v2/model/escalation_policy_action_type.py new file mode 100644 index 0000000000..2779e44586 --- /dev/null +++ b/src/datadog_api_client/v2/model/escalation_policy_action_type.py @@ -0,0 +1,35 @@ +# 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 ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class EscalationPolicyActionType(ModelSimple): + """ + Indicates that the action is an escalation policy action. + + :param value: If omitted defaults to "escalation_policy". Must be one of ["escalation_policy"]. + :type value: str + """ + + allowed_values = { + "escalation_policy", + } + ESCALATION_POLICY: ClassVar["EscalationPolicyActionType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +EscalationPolicyActionType.ESCALATION_POLICY = EscalationPolicyActionType("escalation_policy") diff --git a/src/datadog_api_client/v2/model/routing_rule_action.py b/src/datadog_api_client/v2/model/routing_rule_action.py index 0619e999ae..9a6ec0bbb3 100644 --- a/src/datadog_api_client/v2/model/routing_rule_action.py +++ b/src/datadog_api_client/v2/model/routing_rule_action.py @@ -29,6 +29,15 @@ def __init__(self, **kwargs): :param tenant: The tenant ID. :type tenant: str + + :param policy_id: The ID of the escalation policy to trigger. + :type policy_id: str + + :param support_hours: Holds time zone information and a list of time restrictions for a routing rule. + :type support_hours: TimeRestrictions, optional + + :param urgency: Specifies the level of urgency for a routing rule (low, high, or dynamic). + :type urgency: Urgency, optional """ super().__init__(kwargs) @@ -43,10 +52,12 @@ def _composed_schemas(_): # loading from datadog_api_client.v2.model.send_slack_message_action import SendSlackMessageAction from datadog_api_client.v2.model.send_teams_message_action import SendTeamsMessageAction + from datadog_api_client.v2.model.escalation_policy_action import EscalationPolicyAction return { "oneOf": [ SendSlackMessageAction, SendTeamsMessageAction, + EscalationPolicyAction, ], } diff --git a/src/datadog_api_client/v2/model/routing_rule_attributes.py b/src/datadog_api_client/v2/model/routing_rule_attributes.py index 55096f012e..689623b4e1 100644 --- a/src/datadog_api_client/v2/model/routing_rule_attributes.py +++ b/src/datadog_api_client/v2/model/routing_rule_attributes.py @@ -19,6 +19,7 @@ from datadog_api_client.v2.model.urgency import Urgency from datadog_api_client.v2.model.send_slack_message_action import SendSlackMessageAction from datadog_api_client.v2.model.send_teams_message_action import SendTeamsMessageAction + from datadog_api_client.v2.model.escalation_policy_action import EscalationPolicyAction class RoutingRuleAttributes(ModelNormal): @@ -45,7 +46,8 @@ def openapi_types(_): def __init__( self_, actions: Union[ - List[Union[RoutingRuleAction, SendSlackMessageAction, SendTeamsMessageAction]], UnsetType + List[Union[RoutingRuleAction, SendSlackMessageAction, SendTeamsMessageAction, EscalationPolicyAction]], + UnsetType, ] = unset, query: Union[str, UnsetType] = unset, time_restriction: Union[TimeRestrictions, UnsetType] = unset, diff --git a/src/datadog_api_client/v2/model/team_routing_rules_request_rule.py b/src/datadog_api_client/v2/model/team_routing_rules_request_rule.py index 94ce34e5b2..9047831d1e 100644 --- a/src/datadog_api_client/v2/model/team_routing_rules_request_rule.py +++ b/src/datadog_api_client/v2/model/team_routing_rules_request_rule.py @@ -19,6 +19,7 @@ from datadog_api_client.v2.model.urgency import Urgency from datadog_api_client.v2.model.send_slack_message_action import SendSlackMessageAction from datadog_api_client.v2.model.send_teams_message_action import SendTeamsMessageAction + from datadog_api_client.v2.model.escalation_policy_action import EscalationPolicyAction class TeamRoutingRulesRequestRule(ModelNormal): @@ -47,7 +48,8 @@ def openapi_types(_): def __init__( self_, actions: Union[ - List[Union[RoutingRuleAction, SendSlackMessageAction, SendTeamsMessageAction]], UnsetType + List[Union[RoutingRuleAction, SendSlackMessageAction, SendTeamsMessageAction, EscalationPolicyAction]], + UnsetType, ] = unset, policy_id: Union[str, UnsetType] = unset, query: Union[str, UnsetType] = unset, diff --git a/src/datadog_api_client/v2/models/__init__.py b/src/datadog_api_client/v2/models/__init__.py index f96bb1ec98..449cf9c340 100644 --- a/src/datadog_api_client/v2/models/__init__.py +++ b/src/datadog_api_client/v2/models/__init__.py @@ -1883,6 +1883,8 @@ from datadog_api_client.v2.model.error_handler import ErrorHandler from datadog_api_client.v2.model.escalation import Escalation from datadog_api_client.v2.model.escalation_policy import EscalationPolicy +from datadog_api_client.v2.model.escalation_policy_action import EscalationPolicyAction +from datadog_api_client.v2.model.escalation_policy_action_type import EscalationPolicyActionType from datadog_api_client.v2.model.escalation_policy_create_request import EscalationPolicyCreateRequest from datadog_api_client.v2.model.escalation_policy_create_request_data import EscalationPolicyCreateRequestData from datadog_api_client.v2.model.escalation_policy_create_request_data_attributes import ( @@ -7653,6 +7655,8 @@ "ErrorHandler", "Escalation", "EscalationPolicy", + "EscalationPolicyAction", + "EscalationPolicyActionType", "EscalationPolicyCreateRequest", "EscalationPolicyCreateRequestData", "EscalationPolicyCreateRequestDataAttributes", diff --git a/tests/v2/cassettes/test_scenarios/test_create_a_test_suite_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_create_a_test_suite_returns_ok_response.frozen index 957e037f23..62723cd8d2 100644 --- a/tests/v2/cassettes/test_scenarios/test_create_a_test_suite_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_create_a_test_suite_returns_ok_response.frozen @@ -1 +1 @@ -2026-02-18T16:57:05.121Z \ No newline at end of file +2026-01-07T12:38:45.716Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_create_a_test_suite_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_create_a_test_suite_returns_ok_response.yaml index ee353eaab8..d29e21551c 100644 --- a/tests/v2/cassettes/test_scenarios/test_create_a_test_suite_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_create_a_test_suite_returns_ok_response.yaml @@ -11,10 +11,10 @@ interactions: uri: https://api.datadoghq.com/api/v2/synthetics/suites response: body: - string: '{"data":{"type":"suites","attributes":{"type":"suite","monitor_id":259845717,"name":"Example - suite name","options":{},"tests":[],"tags":["env:production"],"public_id":"hik-xp5-9q6","created_at":"2026-02-18T16:57:05.583051+00:00","modified_at":"2026-02-18T16:57:05.583051+00:00","created_by":{"name":"Corentin - Girard","email":"corentin.girard@datadoghq.com","handle":"corentin.girard@datadoghq.com"},"message":"Notification - message","org_id":321813,"modified_by":{"name":"Corentin Girard","email":"corentin.girard@datadoghq.com","handle":"corentin.girard@datadoghq.com"}},"id":"hik-xp5-9q6"}} + string: '{"data":{"type":"suites","id":"36n-bb6-njj","attributes":{"tags":["env:production"],"type":"suite","created_by":{"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI + Account"},"created_at":"2026-01-07T12:38:46.109472+00:00","modified_at":"2026-01-07T12:38:46.109472+00:00","message":"Notification + message","public_id":"36n-bb6-njj","options":{},"modified_by":{"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI + Account"},"tests":[],"name":"Example suite name","org_id":321813,"monitor_id":249141773}}} ' headers: @@ -24,7 +24,7 @@ interactions: code: 200 message: OK - request: - body: '{"data":{"attributes":{"public_ids":["hik-xp5-9q6"]},"type":"delete_suites_request"}}' + body: '{"data":{"attributes":{"public_ids":["36n-bb6-njj"]},"type":"delete_suites_request"}}' headers: accept: - application/json @@ -34,7 +34,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/synthetics/suites/bulk-delete response: body: - string: '{"data":[{"type":"suites","attributes":{"deleted_at":"2026-02-18 16:57:06.420679","public_id":"hik-xp5-9q6"},"id":"hik-xp5-9q6"}]} + string: '{"data":[{"type":"suites","attributes":{"public_id":"36n-bb6-njj","deleted_at":"2026-01-07 + 12:38:46.679914"},"id":"36n-bb6-njj"}]} ' headers: