diff --git a/examples/v2/on-call/SetOnCallTeamRoutingRules.py b/examples/v2/on-call/SetOnCallTeamRoutingRules.py index 55c0b0729d..51b8d8bea9 100644 --- a/examples/v2/on-call/SetOnCallTeamRoutingRules.py +++ b/examples/v2/on-call/SetOnCallTeamRoutingRules.py @@ -5,8 +5,6 @@ from os import environ from datadog_api_client import ApiClient, Configuration from datadog_api_client.v2.api.on_call_api import OnCallApi -from datadog_api_client.v2.model.send_slack_message_action import SendSlackMessageAction -from datadog_api_client.v2.model.send_slack_message_action_type import SendSlackMessageActionType from datadog_api_client.v2.model.team_routing_rules_request import TeamRoutingRulesRequest from datadog_api_client.v2.model.team_routing_rules_request_data import TeamRoutingRulesRequestData from datadog_api_client.v2.model.team_routing_rules_request_data_attributes import TeamRoutingRulesRequestDataAttributes @@ -28,14 +26,9 @@ attributes=TeamRoutingRulesRequestDataAttributes( rules=[ TeamRoutingRulesRequestRule( - actions=[ - SendSlackMessageAction( - channel="channel", - type=SendSlackMessageActionType.SEND_SLACK_MESSAGE, - workspace="workspace", - ), - ], + policy_id=ESCALATION_POLICY_DATA_ID, query="tags.service:test", + urgency=Urgency.HIGH, time_restriction=TimeRestrictions( time_zone="Europe/Paris", restrictions=[ diff --git a/tests/v2/cassettes/test_scenarios/test_set_oncall_team_routing_rules_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_set_oncall_team_routing_rules_returns_ok_response.frozen index 7a29240030..19eab68a6b 100644 --- a/tests/v2/cassettes/test_scenarios/test_set_oncall_team_routing_rules_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_set_oncall_team_routing_rules_returns_ok_response.frozen @@ -1 +1 @@ -2025-11-27T14:11:49.966Z \ No newline at end of file +2026-05-11T20:29:00.457Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_set_oncall_team_routing_rules_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_set_oncall_team_routing_rules_returns_ok_response.yaml index 0c06835bb5..9c860c333b 100644 --- a/tests/v2/cassettes/test_scenarios/test_set_oncall_team_routing_rules_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_set_oncall_team_routing_rules_returns_ok_response.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"data":{"attributes":{"email":"Test-Set_On_Call_team_routing_rules_returns_OK_response-1764252709@datadoghq.com","title":"user + body: '{"data":{"attributes":{"email":"Test-Set_On_Call_team_routing_rules_returns_OK_response-1778531340@datadoghq.com","title":"user title"},"type":"users"}}' headers: accept: @@ -11,7 +11,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/users response: body: - string: '{"data":{"type":"users","id":"0473ca92-cb9b-11f0-85f9-9a82ffe01443","attributes":{"name":null,"handle":"test-set_on_call_team_routing_rules_returns_ok_response-1764252709@datadoghq.com","created_at":"2025-11-27T14:11:50.355271+00:00","modified_at":"2025-11-27T14:11:50.355271+00:00","email":"test-set_on_call_team_routing_rules_returns_ok_response-1764252709@datadoghq.com","icon":"https://secure.gravatar.com/avatar/ad92f892fdf302962d879c0d02664d8e?s=48&d=retro","title":"user + string: '{"data":{"type":"users","id":"142a39f5-ccbc-4644-9d1f-dec51ca11160","attributes":{"uuid":"142a39f5-ccbc-4644-9d1f-dec51ca11160","name":null,"handle":"test-set_on_call_team_routing_rules_returns_ok_response-1778531340@datadoghq.com","created_at":"2026-05-11T20:29:01.703412+00:00","modified_at":"2026-05-11T20:29:01.703412+00:00","email":"test-set_on_call_team_routing_rules_returns_ok_response-1778531340@datadoghq.com","icon":"https://secure.gravatar.com/avatar/99c2f323bdfa79820e0e03370f5d8cdf?s=48&d=retro","title":"user title","verified":false,"service_account":false,"disabled":false,"allowed_login_methods":[],"status":"Pending","last_login_time":null},"relationships":{"roles":{"data":[]},"org":{"data":{"type":"orgs","id":"4dee724d-00cc-11ea-a77b-570c9d03c6c5"}}}}} ' @@ -22,7 +22,7 @@ interactions: code: 201 message: Created - request: - body: '{"data":{"attributes":{"handle":"test-handle-a7692378c203a880","name":"test-name-a7692378c203a880"},"type":"team"}}' + body: '{"data":{"attributes":{"handle":"test-handle-35cd746af947f9df","name":"test-name-35cd746af947f9df"},"type":"team"}}' headers: accept: - application/json @@ -32,7 +32,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/team response: body: - string: '{"data":{"id":"ba4fe917-0da4-4b40-96da-f9d7306d97d8","type":"team","attributes":{"avatar":null,"banner":14,"created_at":"2025-11-27T14:11:50.842947+00:00","description":null,"handle":"test-handle-a7692378c203a880","hidden_modules":[],"link_count":0,"modified_at":"2025-11-27T14:11:50.842947+00:00","name":"test-name-a7692378c203a880","summary":null,"user_count":0,"visible_modules":[]},"relationships":{"team_links":{"data":[],"links":{"related":"/api/v2/team/ba4fe917-0da4-4b40-96da-f9d7306d97d8/links"}},"user_team_permissions":{"links":{"related":"/api/v2/team/ba4fe917-0da4-4b40-96da-f9d7306d97d8/permission-settings"}}}}}' + string: '{"data":{"id":"c51b6a85-d7a7-40d0-abf8-3e2e5c964596","type":"team","attributes":{"avatar":null,"banner":8,"created_at":"2026-05-11T20:29:02.025767+00:00","description":null,"handle":"test-handle-35cd746af947f9df","hidden_modules":null,"is_managed":false,"link_count":0,"modified_at":"2026-05-11T20:29:02.025767+00:00","name":"test-name-35cd746af947f9df","summary":null,"user_count":0,"visible_modules":null},"relationships":{"team_links":{"data":[],"links":{"related":"/api/v2/team/c51b6a85-d7a7-40d0-abf8-3e2e5c964596/links"}},"user_team_permissions":{"data":null,"links":{"related":"/api/v2/team/c51b6a85-d7a7-40d0-abf8-3e2e5c964596/permission-settings"}}}}}' headers: content-type: - application/vnd.api+json @@ -40,8 +40,8 @@ interactions: code: 201 message: Created - request: - body: '{"data":{"attributes":{"layers":[{"effective_date":"2025-11-17T14:11:49.966Z","end_date":"2025-12-07T14:11:49.966Z","interval":{"days":1},"members":[{"user":{"id":"0473ca92-cb9b-11f0-85f9-9a82ffe01443"}}],"name":"Layer - 1","restrictions":[{"end_day":"friday","end_time":"17:00:00","start_day":"monday","start_time":"09:00:00"}],"rotation_start":"2025-11-22T14:11:49.966Z"}],"name":"Test-Set_On_Call_team_routing_rules_returns_OK_response-1764252709","time_zone":"America/New_York"},"relationships":{"teams":{"data":[{"id":"65aea9d0-941c-4607-bf8a-14fc0dac2820","type":"teams"}]}},"type":"schedules"}}' + body: '{"data":{"attributes":{"layers":[{"effective_date":"2026-05-01T20:29:00.457Z","end_date":"2026-05-21T20:29:00.457Z","interval":{"days":1},"members":[{"user":{"id":"142a39f5-ccbc-4644-9d1f-dec51ca11160"}}],"name":"Layer + 1","restrictions":[{"end_day":"friday","end_time":"17:00:00","start_day":"monday","start_time":"09:00:00"}],"rotation_start":"2026-05-06T20:29:00.457Z"}],"name":"Test-Set_On_Call_team_routing_rules_returns_OK_response-1778531340","time_zone":"America/New_York"},"relationships":{"teams":{"data":[{"id":"65aea9d0-941c-4607-bf8a-14fc0dac2820","type":"teams"}]}},"type":"schedules"}}' headers: accept: - application/json @@ -51,7 +51,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/on-call/schedules response: body: - string: '{"data":{"id":"1f9b0595-17a3-4d95-9b2e-edcea3b6e737","type":"schedules","attributes":{"name":"Test-Set_On_Call_team_routing_rules_returns_OK_response-1764252709","time_zone":"America/New_York"},"relationships":{"layers":{"data":[{"id":"0eecb6fe-83c6-48c9-9e0e-82379498f733","type":"layers"}]},"teams":{"data":[{"id":"65aea9d0-941c-4607-bf8a-14fc0dac2820","type":"teams"}]}}}}' + string: '{"data":{"id":"666f954b-6eca-4b04-8180-46d64b7ca916","type":"schedules","attributes":{"name":"Test-Set_On_Call_team_routing_rules_returns_OK_response-1778531340","time_zone":"America/New_York"},"relationships":{"layers":{"data":[{"id":"9839b362-a016-4dd4-b8d2-9335a85e4592","type":"layers"}]},"teams":{"data":[{"id":"65aea9d0-941c-4607-bf8a-14fc0dac2820","type":"teams"}]}}}}' headers: content-type: - application/vnd.api+json @@ -59,7 +59,7 @@ interactions: code: 201 message: Created - request: - body: '{"data":{"attributes":{"name":"Test-Set_On_Call_team_routing_rules_returns_OK_response-1764252709","resolve_page_on_policy_end":true,"retries":2,"steps":[{"assignment":"default","escalate_after_seconds":3600,"targets":[{"id":"ba4fe917-0da4-4b40-96da-f9d7306d97d8","type":"teams"},{"id":"1f9b0595-17a3-4d95-9b2e-edcea3b6e737","type":"schedules"},{"config":{"schedule":{"position":"previous"}},"id":"1f9b0595-17a3-4d95-9b2e-edcea3b6e737","type":"schedules"},{"id":"0473ca92-cb9b-11f0-85f9-9a82ffe01443","type":"users"}]},{"assignment":"round-robin","escalate_after_seconds":3600,"targets":[{"id":"ba4fe917-0da4-4b40-96da-f9d7306d97d8","type":"teams"}]}]},"relationships":{"teams":{"data":[{"id":"ba4fe917-0da4-4b40-96da-f9d7306d97d8","type":"teams"}]}},"type":"policies"}}' + body: '{"data":{"attributes":{"name":"Test-Set_On_Call_team_routing_rules_returns_OK_response-1778531340","resolve_page_on_policy_end":true,"retries":2,"steps":[{"assignment":"default","escalate_after_seconds":3600,"targets":[{"id":"c51b6a85-d7a7-40d0-abf8-3e2e5c964596","type":"teams"},{"id":"666f954b-6eca-4b04-8180-46d64b7ca916","type":"schedules"},{"config":{"schedule":{"position":"previous"}},"id":"666f954b-6eca-4b04-8180-46d64b7ca916","type":"schedules"},{"id":"142a39f5-ccbc-4644-9d1f-dec51ca11160","type":"users"}]},{"assignment":"round-robin","escalate_after_seconds":3600,"targets":[{"id":"c51b6a85-d7a7-40d0-abf8-3e2e5c964596","type":"teams"}]}]},"relationships":{"teams":{"data":[{"id":"c51b6a85-d7a7-40d0-abf8-3e2e5c964596","type":"teams"}]}},"type":"policies"}}' headers: accept: - application/json @@ -69,7 +69,7 @@ interactions: uri: https://api.datadoghq.com/api/v2/on-call/escalation-policies response: body: - string: '{"data":{"id":"66f0e922-2834-4d68-aa0b-98cc81fc2a9d","type":"policies","attributes":{"name":"Test-Set_On_Call_team_routing_rules_returns_OK_response-1764252709","resolve_page_on_policy_end":true,"retries":2},"relationships":{"steps":{"data":[{"id":"533f661e-6a1f-4327-8d3f-035add94cff8","type":"steps"},{"id":"b8948730-6aec-4a51-8662-cce4026b94dc","type":"steps"}]},"teams":{"data":[{"id":"ba4fe917-0da4-4b40-96da-f9d7306d97d8","type":"teams"}]}}}}' + string: '{"data":{"id":"ff7c2075-78d0-4bbd-b610-7adda6da7b60","type":"policies","attributes":{"name":"Test-Set_On_Call_team_routing_rules_returns_OK_response-1778531340","resolve_page_on_policy_end":true,"retries":2,"tags":[]},"relationships":{"steps":{"data":[{"id":"864da886-33e0-4b62-9ed1-906253482480","type":"steps"},{"id":"87bcfb40-3279-4aa9-b222-90684e2aa2e1","type":"steps"}]},"teams":{"data":[{"id":"c51b6a85-d7a7-40d0-abf8-3e2e5c964596","type":"teams"}]}}}}' headers: content-type: - application/vnd.api+json @@ -77,17 +77,17 @@ interactions: code: 201 message: Created - request: - body: '{"data":{"attributes":{"rules":[{"actions":[{"channel":"channel","type":"send_slack_message","workspace":"workspace"}],"query":"tags.service:test","time_restriction":{"restrictions":[{"end_day":"monday","end_time":"17:00:00","start_day":"monday","start_time":"09:00:00"},{"end_day":"tuesday","end_time":"17:00:00","start_day":"tuesday","start_time":"09:00:00"}],"time_zone":"Europe/Paris"}},{"policy_id":"66f0e922-2834-4d68-aa0b-98cc81fc2a9d","query":"","urgency":"low"}]},"id":"ba4fe917-0da4-4b40-96da-f9d7306d97d8","type":"team_routing_rules"}}' + body: '{"data":{"attributes":{"rules":[{"policy_id":"ff7c2075-78d0-4bbd-b610-7adda6da7b60","query":"tags.service:test","time_restriction":{"restrictions":[{"end_day":"monday","end_time":"17:00:00","start_day":"monday","start_time":"09:00:00"},{"end_day":"tuesday","end_time":"17:00:00","start_day":"tuesday","start_time":"09:00:00"}],"time_zone":"Europe/Paris"},"urgency":"high"},{"policy_id":"ff7c2075-78d0-4bbd-b610-7adda6da7b60","query":"","urgency":"low"}]},"id":"c51b6a85-d7a7-40d0-abf8-3e2e5c964596","type":"team_routing_rules"}}' headers: accept: - application/json content-type: - application/json method: PUT - uri: https://api.datadoghq.com/api/v2/on-call/teams/ba4fe917-0da4-4b40-96da-f9d7306d97d8/routing-rules?include=rules + uri: https://api.datadoghq.com/api/v2/on-call/teams/c51b6a85-d7a7-40d0-abf8-3e2e5c964596/routing-rules?include=rules response: body: - string: '{"data":{"id":"ba4fe917-0da4-4b40-96da-f9d7306d97d8","type":"team_routing_rules","relationships":{"rules":{"data":[{"id":"virtual-ba4fe917-0da4-4b40-96da-f9d7306d97d8-rule-0","type":"team_routing_rules"},{"id":"virtual-ba4fe917-0da4-4b40-96da-f9d7306d97d8-rule-1","type":"team_routing_rules"}]}}},"included":[{"id":"virtual-ba4fe917-0da4-4b40-96da-f9d7306d97d8-rule-0","type":"team_routing_rules","attributes":{"actions":[{"type":"send_slack_message","channel":"channel","workspace":"workspace"}],"query":"tags.service:test","time_restriction":{"time_zone":"Europe/Paris","restrictions":[{"start_time":"09:00:00","start_day":"monday","end_time":"17:00:00","end_day":"monday"},{"start_time":"09:00:00","start_day":"tuesday","end_time":"17:00:00","end_day":"tuesday"}]}},"relationships":{"policy":{"data":null}}},{"id":"virtual-ba4fe917-0da4-4b40-96da-f9d7306d97d8-rule-1","type":"team_routing_rules","attributes":{"actions":[],"query":"","urgency":"low"},"relationships":{"policy":{"data":{"id":"66f0e922-2834-4d68-aa0b-98cc81fc2a9d","type":"policies"}}}}]}' + string: '{"data":{"id":"c51b6a85-d7a7-40d0-abf8-3e2e5c964596","type":"team_routing_rules","relationships":{"rules":{"data":[{"id":"5f90a626-c08e-49f8-a536-8e59fb589a69","type":"team_routing_rules"},{"id":"6a35222a-a1cf-45e5-861b-7b0cc501b1a9","type":"team_routing_rules"}]}}},"included":[{"id":"5f90a626-c08e-49f8-a536-8e59fb589a69","type":"team_routing_rules","attributes":{"actions":[{"type":"escalation_policy","policy_id":"ff7c2075-78d0-4bbd-b610-7adda6da7b60","urgency":"high"}],"query":"tags.service:test","time_restriction":{"time_zone":"Europe/Paris","restrictions":[{"start_time":"09:00:00","start_day":"monday","end_time":"17:00:00","end_day":"monday"},{"start_time":"09:00:00","start_day":"tuesday","end_time":"17:00:00","end_day":"tuesday"}]},"urgency":"high"},"relationships":{"policy":{"data":{"id":"ff7c2075-78d0-4bbd-b610-7adda6da7b60","type":"policies"}}}},{"id":"6a35222a-a1cf-45e5-861b-7b0cc501b1a9","type":"team_routing_rules","attributes":{"actions":[{"type":"escalation_policy","policy_id":"ff7c2075-78d0-4bbd-b610-7adda6da7b60","urgency":"low"}],"query":"","urgency":"low"},"relationships":{"policy":{"data":{"id":"ff7c2075-78d0-4bbd-b610-7adda6da7b60","type":"policies"}}}}]}' headers: content-type: - application/vnd.api+json @@ -95,17 +95,17 @@ interactions: code: 200 message: OK - request: - body: '{"data":{"attributes":{"rules":[]},"id":"ba4fe917-0da4-4b40-96da-f9d7306d97d8","type":"team_routing_rules"}}' + body: '{"data":{"attributes":{"rules":[]},"id":"c51b6a85-d7a7-40d0-abf8-3e2e5c964596","type":"team_routing_rules"}}' headers: accept: - application/json content-type: - application/json method: PUT - uri: https://api.datadoghq.com/api/v2/on-call/teams/ba4fe917-0da4-4b40-96da-f9d7306d97d8/routing-rules + uri: https://api.datadoghq.com/api/v2/on-call/teams/c51b6a85-d7a7-40d0-abf8-3e2e5c964596/routing-rules response: body: - string: '{"data":{"id":"ba4fe917-0da4-4b40-96da-f9d7306d97d8","type":"team_routing_rules","relationships":{"rules":{"data":[]}}}}' + string: '{"data":{"id":"c51b6a85-d7a7-40d0-abf8-3e2e5c964596","type":"team_routing_rules","relationships":{"rules":{"data":[]}}}}' headers: content-type: - application/vnd.api+json @@ -118,7 +118,7 @@ interactions: accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/on-call/escalation-policies/66f0e922-2834-4d68-aa0b-98cc81fc2a9d + uri: https://api.datadoghq.com/api/v2/on-call/escalation-policies/ff7c2075-78d0-4bbd-b610-7adda6da7b60 response: body: string: '' @@ -132,7 +132,7 @@ interactions: accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/on-call/schedules/1f9b0595-17a3-4d95-9b2e-edcea3b6e737 + uri: https://api.datadoghq.com/api/v2/on-call/schedules/666f954b-6eca-4b04-8180-46d64b7ca916 response: body: string: '' @@ -146,7 +146,7 @@ interactions: accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/team/ba4fe917-0da4-4b40-96da-f9d7306d97d8 + uri: https://api.datadoghq.com/api/v2/team/c51b6a85-d7a7-40d0-abf8-3e2e5c964596 response: body: string: '' @@ -160,7 +160,7 @@ interactions: accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/users/0473ca92-cb9b-11f0-85f9-9a82ffe01443 + uri: https://api.datadoghq.com/api/v2/users/142a39f5-ccbc-4644-9d1f-dec51ca11160 response: body: string: '' diff --git a/tests/v2/features/on-call.feature b/tests/v2/features/on-call.feature index 0f4b2a0e34..59d90b5473 100644 --- a/tests/v2/features/on-call.feature +++ b/tests/v2/features/on-call.feature @@ -401,7 +401,7 @@ Feature: On-Call And there is a valid "schedule" in the system And there is a valid "escalation_policy" in the system And request contains "team_id" parameter from "dd_team.data.id" - And body with value {"data": {"attributes": {"rules": [{"actions": [{"channel": "channel", "type": "send_slack_message", "workspace": "workspace"}], "query": "tags.service:test", "time_restriction": {"time_zone": "Europe/Paris", "restrictions": [{"end_day": "monday", "end_time": "17:00:00", "start_day": "monday", "start_time": "09:00:00"}, {"end_day": "tuesday", "end_time": "17:00:00", "start_day": "tuesday", "start_time": "09:00:00"}]}}, {"policy_id": "{{ escalation_policy.data.id }}", "query": "", "urgency": "low"}]}, "id": "{{ dd_team.data.id }}", "type": "team_routing_rules"}} + And body with value {"data": {"attributes": {"rules": [{"policy_id": "{{ escalation_policy.data.id }}", "query": "tags.service:test", "urgency": "high", "time_restriction": {"time_zone": "Europe/Paris", "restrictions": [{"end_day": "monday", "end_time": "17:00:00", "start_day": "monday", "start_time": "09:00:00"}, {"end_day": "tuesday", "end_time": "17:00:00", "start_day": "tuesday", "start_time": "09:00:00"}]}}, {"policy_id": "{{ escalation_policy.data.id }}", "query": "", "urgency": "low"}]}, "id": "{{ dd_team.data.id }}", "type": "team_routing_rules"}} And request contains "include" parameter with value "rules" When the request is sent Then the response status is 200 OK