diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 9bdfd074316..4b5678d0bcf 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -74529,9 +74529,13 @@ paths: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: [] - summary: Get the schedule on-call user + summary: Get scheduled on-call user tags: - On-Call + x-permission: + operator: AND + permissions: + - on_call_read /api/v2/on-call/teams/{team_id}/on-call: get: description: Get a team's on-call users at a given time @@ -74574,6 +74578,10 @@ paths: summary: Get team on-call users tags: - On-Call + x-permission: + operator: AND + permissions: + - on_call_read /api/v2/on-call/teams/{team_id}/routing-rules: get: description: Get a team's On-Call routing rules diff --git a/examples/v2/on-call/GetScheduleOnCallUser.java b/examples/v2/on-call/GetScheduleOnCallUser.java index a75e3e8b896..a5e6090eb1a 100644 --- a/examples/v2/on-call/GetScheduleOnCallUser.java +++ b/examples/v2/on-call/GetScheduleOnCallUser.java @@ -1,4 +1,4 @@ -// Get the schedule on-call user returns "OK" response +// Get scheduled on-call user returns "OK" response import com.datadog.api.client.ApiClient; import com.datadog.api.client.ApiException; diff --git a/src/main/java/com/datadog/api/client/v2/api/OnCallApi.java b/src/main/java/com/datadog/api/client/v2/api/OnCallApi.java index 40fd0e1e51d..b68bcc5a6d1 100644 --- a/src/main/java/com/datadog/api/client/v2/api/OnCallApi.java +++ b/src/main/java/com/datadog/api/client/v2/api/OnCallApi.java @@ -1358,7 +1358,7 @@ public GetScheduleOnCallUserOptionalParameters filterAtTs(String filterAtTs) { } /** - * Get the schedule on-call user. + * Get scheduled on-call user. * *
See {@link #getScheduleOnCallUserWithHttpInfo}. * @@ -1373,7 +1373,7 @@ scheduleId, new GetScheduleOnCallUserOptionalParameters()) } /** - * Get the schedule on-call user. + * Get scheduled on-call user. * *
See {@link #getScheduleOnCallUserWithHttpInfoAsync}. * @@ -1390,7 +1390,7 @@ scheduleId, new GetScheduleOnCallUserOptionalParameters()) } /** - * Get the schedule on-call user. + * Get scheduled on-call user. * *
See {@link #getScheduleOnCallUserWithHttpInfo}. * @@ -1405,7 +1405,7 @@ public Shift getScheduleOnCallUser( } /** - * Get the schedule on-call user. + * Get scheduled on-call user. * *
See {@link #getScheduleOnCallUserWithHttpInfoAsync}.
*
@@ -1485,7 +1485,7 @@ public ApiResponse See {@link #getScheduleOnCallUserWithHttpInfo}.
*
diff --git a/src/test/resources/cassettes/features/v2/Get_scheduled_on_call_user_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Get_scheduled_on_call_user_returns_OK_response.freeze
new file mode 100644
index 00000000000..be12eaae284
--- /dev/null
+++ b/src/test/resources/cassettes/features/v2/Get_scheduled_on_call_user_returns_OK_response.freeze
@@ -0,0 +1 @@
+2025-12-04T08:50:18.341Z
\ No newline at end of file
diff --git a/src/test/resources/cassettes/features/v2/Get_scheduled_on_call_user_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_scheduled_on_call_user_returns_OK_response.json
new file mode 100644
index 00000000000..f74fc0c22e4
--- /dev/null
+++ b/src/test/resources/cassettes/features/v2/Get_scheduled_on_call_user_returns_OK_response.json
@@ -0,0 +1,130 @@
+[
+ {
+ "httpRequest": {
+ "body": {
+ "type": "JSON",
+ "json": "{\"data\":{\"attributes\":{\"email\":\"Test-Get_scheduled_on_call_user_returns_OK_response-1764838218@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}"
+ },
+ "headers": {},
+ "method": "POST",
+ "path": "/api/v2/users",
+ "keepAlive": false,
+ "secure": true
+ },
+ "httpResponse": {
+ "body": "{\"data\":{\"type\":\"users\",\"id\":\"42e2447f-d0ee-11f0-b246-f6a778e5e220\",\"attributes\":{\"name\":null,\"handle\":\"test-get_scheduled_on_call_user_returns_ok_response-1764838218@datadoghq.com\",\"created_at\":\"2025-12-04T08:50:19.140471+00:00\",\"modified_at\":\"2025-12-04T08:50:19.140471+00:00\",\"email\":\"test-get_scheduled_on_call_user_returns_ok_response-1764838218@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/6a6c3614a2758d626d4fcde0e9727205?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\"}}}}}\n",
+ "headers": {
+ "Content-Type": [
+ "application/json"
+ ]
+ },
+ "statusCode": 201,
+ "reasonPhrase": "Created"
+ },
+ "times": {
+ "remainingTimes": 1
+ },
+ "timeToLive": {
+ "unlimited": true
+ },
+ "id": "94c12122-86d9-d81a-8df3-65a101f4f930"
+ },
+ {
+ "httpRequest": {
+ "body": {
+ "type": "JSON",
+ "json": "{\"data\":{\"attributes\":{\"layers\":[{\"effective_date\":\"2025-11-24T08:50:18.341Z\",\"end_date\":\"2025-12-14T08:50:18.341Z\",\"interval\":{\"days\":1},\"members\":[{\"user\":{\"id\":\"42e2447f-d0ee-11f0-b246-f6a778e5e220\"}}],\"name\":\"Layer 1\",\"restrictions\":[{\"end_day\":\"friday\",\"end_time\":\"17:00:00\",\"start_day\":\"monday\",\"start_time\":\"09:00:00\"}],\"rotation_start\":\"2025-11-29T08:50:18.341Z\"}],\"name\":\"Test-Get_scheduled_on_call_user_returns_OK_response-1764838218\",\"time_zone\":\"America/New_York\"},\"relationships\":{\"teams\":{\"data\":[{\"id\":\"65aea9d0-941c-4607-bf8a-14fc0dac2820\",\"type\":\"teams\"}]}},\"type\":\"schedules\"}}"
+ },
+ "headers": {},
+ "method": "POST",
+ "path": "/api/v2/on-call/schedules",
+ "keepAlive": false,
+ "secure": true
+ },
+ "httpResponse": {
+ "body": "{\"data\":{\"id\":\"7f4eb086-4141-4f2a-ae4a-c0a06816672b\",\"type\":\"schedules\",\"attributes\":{\"name\":\"Test-Get_scheduled_on_call_user_returns_OK_response-1764838218\",\"time_zone\":\"America/New_York\"},\"relationships\":{\"layers\":{\"data\":[{\"id\":\"ad5985ec-b9e0-4dc7-aff9-a7bb75fc334f\",\"type\":\"layers\"}]},\"teams\":{\"data\":[{\"id\":\"65aea9d0-941c-4607-bf8a-14fc0dac2820\",\"type\":\"teams\"}]}}}}",
+ "headers": {
+ "Content-Type": [
+ "application/vnd.api+json"
+ ]
+ },
+ "statusCode": 201,
+ "reasonPhrase": "Created"
+ },
+ "times": {
+ "remainingTimes": 1
+ },
+ "timeToLive": {
+ "unlimited": true
+ },
+ "id": "94e1f56a-c98f-c630-6b9f-3b7477ed2f85"
+ },
+ {
+ "httpRequest": {
+ "headers": {},
+ "method": "GET",
+ "path": "/api/v2/on-call/schedules/7f4eb086-4141-4f2a-ae4a-c0a06816672b/on-call",
+ "keepAlive": false,
+ "secure": true
+ },
+ "httpResponse": {
+ "body": "{\"data\":{\"id\":\"42e2447f-d0ee-11f0-b246-f6a778e5e220-2025-12-04T03:50:19-05:00-2025-12-05T03:50:18-05:00\",\"type\":\"shifts\",\"attributes\":{\"end\":\"2025-12-05T03:50:18-05:00\",\"start\":\"2025-12-04T03:50:19.261184-05:00\"},\"relationships\":{\"user\":{\"data\":{\"id\":\"42e2447f-d0ee-11f0-b246-f6a778e5e220\",\"type\":\"users\"}}}}}",
+ "headers": {
+ "Content-Type": [
+ "application/vnd.api+json"
+ ]
+ },
+ "statusCode": 200,
+ "reasonPhrase": "OK"
+ },
+ "times": {
+ "remainingTimes": 1
+ },
+ "timeToLive": {
+ "unlimited": true
+ },
+ "id": "3d755a0b-81d9-c638-d625-c047ff5eca6f"
+ },
+ {
+ "httpRequest": {
+ "headers": {},
+ "method": "DELETE",
+ "path": "/api/v2/on-call/schedules/7f4eb086-4141-4f2a-ae4a-c0a06816672b",
+ "keepAlive": false,
+ "secure": true
+ },
+ "httpResponse": {
+ "headers": {},
+ "statusCode": 204,
+ "reasonPhrase": "No Content"
+ },
+ "times": {
+ "remainingTimes": 1
+ },
+ "timeToLive": {
+ "unlimited": true
+ },
+ "id": "75c49194-b87b-768e-31c2-3a8fd7da31c3"
+ },
+ {
+ "httpRequest": {
+ "headers": {},
+ "method": "DELETE",
+ "path": "/api/v2/users/42e2447f-d0ee-11f0-b246-f6a778e5e220",
+ "keepAlive": false,
+ "secure": true
+ },
+ "httpResponse": {
+ "headers": {},
+ "statusCode": 204,
+ "reasonPhrase": "No Content"
+ },
+ "times": {
+ "remainingTimes": 1
+ },
+ "timeToLive": {
+ "unlimited": true
+ },
+ "id": "0f7fe3df-b82d-7fdd-80ed-c05c9e77238c"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/cassettes/features/v2/Get_the_schedule_on_call_user_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Get_the_schedule_on_call_user_returns_OK_response.freeze
deleted file mode 100644
index baa8f4a5897..00000000000
--- a/src/test/resources/cassettes/features/v2/Get_the_schedule_on_call_user_returns_OK_response.freeze
+++ /dev/null
@@ -1 +0,0 @@
-2025-11-27T14:11:47.631Z
\ No newline at end of file
diff --git a/src/test/resources/cassettes/features/v2/Get_the_schedule_on_call_user_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_the_schedule_on_call_user_returns_OK_response.json
deleted file mode 100644
index c9f834c931d..00000000000
--- a/src/test/resources/cassettes/features/v2/Get_the_schedule_on_call_user_returns_OK_response.json
+++ /dev/null
@@ -1,130 +0,0 @@
-[
- {
- "httpRequest": {
- "body": {
- "type": "JSON",
- "json": "{\"data\":{\"attributes\":{\"email\":\"Test-Get_the_schedule_on_call_user_returns_OK_response-1764252707@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}"
- },
- "headers": {},
- "method": "POST",
- "path": "/api/v2/users",
- "keepAlive": false,
- "secure": true
- },
- "httpResponse": {
- "body": "{\"data\":{\"type\":\"users\",\"id\":\"030e767a-cb9b-11f0-8fcd-5ac0b02adf59\",\"attributes\":{\"name\":null,\"handle\":\"test-get_the_schedule_on_call_user_returns_ok_response-1764252707@datadoghq.com\",\"created_at\":\"2025-11-27T14:11:48.013486+00:00\",\"modified_at\":\"2025-11-27T14:11:48.013486+00:00\",\"email\":\"test-get_the_schedule_on_call_user_returns_ok_response-1764252707@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/a9e8940d153698e24c0b29024875d46f?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\"}}}}}\n",
- "headers": {
- "Content-Type": [
- "application/json"
- ]
- },
- "statusCode": 201,
- "reasonPhrase": "Created"
- },
- "times": {
- "remainingTimes": 1
- },
- "timeToLive": {
- "unlimited": true
- },
- "id": "f2592e5f-2768-4cf1-127f-fb6994dbb296"
- },
- {
- "httpRequest": {
- "body": {
- "type": "JSON",
- "json": "{\"data\":{\"attributes\":{\"layers\":[{\"effective_date\":\"2025-11-17T14:11:47.631Z\",\"end_date\":\"2025-12-07T14:11:47.631Z\",\"interval\":{\"days\":1},\"members\":[{\"user\":{\"id\":\"030e767a-cb9b-11f0-8fcd-5ac0b02adf59\"}}],\"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:47.631Z\"}],\"name\":\"Test-Get_the_schedule_on_call_user_returns_OK_response-1764252707\",\"time_zone\":\"America/New_York\"},\"relationships\":{\"teams\":{\"data\":[{\"id\":\"65aea9d0-941c-4607-bf8a-14fc0dac2820\",\"type\":\"teams\"}]}},\"type\":\"schedules\"}}"
- },
- "headers": {},
- "method": "POST",
- "path": "/api/v2/on-call/schedules",
- "keepAlive": false,
- "secure": true
- },
- "httpResponse": {
- "body": "{\"data\":{\"id\":\"93a33505-71dc-4be4-a55d-95eb23b6b400\",\"type\":\"schedules\",\"attributes\":{\"name\":\"Test-Get_the_schedule_on_call_user_returns_OK_response-1764252707\",\"time_zone\":\"America/New_York\"},\"relationships\":{\"layers\":{\"data\":[{\"id\":\"c9addf6a-059c-4b07-aced-a2c287fd969f\",\"type\":\"layers\"}]},\"teams\":{\"data\":[{\"id\":\"65aea9d0-941c-4607-bf8a-14fc0dac2820\",\"type\":\"teams\"}]}}}}",
- "headers": {
- "Content-Type": [
- "application/vnd.api+json"
- ]
- },
- "statusCode": 201,
- "reasonPhrase": "Created"
- },
- "times": {
- "remainingTimes": 1
- },
- "timeToLive": {
- "unlimited": true
- },
- "id": "5dfe96b6-5e23-6697-ab11-26519ef0bf70"
- },
- {
- "httpRequest": {
- "headers": {},
- "method": "GET",
- "path": "/api/v2/on-call/schedules/93a33505-71dc-4be4-a55d-95eb23b6b400/on-call",
- "keepAlive": false,
- "secure": true
- },
- "httpResponse": {
- "body": "{\"data\":{\"id\":\"030e767a-cb9b-11f0-8fcd-5ac0b02adf59-2025-11-27T09:11:48-05:00-2025-11-28T09:11:47-05:00\",\"type\":\"shifts\",\"attributes\":{\"end\":\"2025-11-28T09:11:47-05:00\",\"start\":\"2025-11-27T09:11:48.47496-05:00\"},\"relationships\":{\"user\":{\"data\":{\"id\":\"030e767a-cb9b-11f0-8fcd-5ac0b02adf59\",\"type\":\"users\"}}}}}",
- "headers": {
- "Content-Type": [
- "application/vnd.api+json"
- ]
- },
- "statusCode": 200,
- "reasonPhrase": "OK"
- },
- "times": {
- "remainingTimes": 1
- },
- "timeToLive": {
- "unlimited": true
- },
- "id": "39e441da-955d-c16c-d1e6-93330774196f"
- },
- {
- "httpRequest": {
- "headers": {},
- "method": "DELETE",
- "path": "/api/v2/on-call/schedules/93a33505-71dc-4be4-a55d-95eb23b6b400",
- "keepAlive": false,
- "secure": true
- },
- "httpResponse": {
- "headers": {},
- "statusCode": 204,
- "reasonPhrase": "No Content"
- },
- "times": {
- "remainingTimes": 1
- },
- "timeToLive": {
- "unlimited": true
- },
- "id": "0d43106d-ea02-c4f7-744b-6acdce88d57a"
- },
- {
- "httpRequest": {
- "headers": {},
- "method": "DELETE",
- "path": "/api/v2/users/030e767a-cb9b-11f0-8fcd-5ac0b02adf59",
- "keepAlive": false,
- "secure": true
- },
- "httpResponse": {
- "headers": {},
- "statusCode": 204,
- "reasonPhrase": "No Content"
- },
- "times": {
- "remainingTimes": 1
- },
- "timeToLive": {
- "unlimited": true
- },
- "id": "818bd98d-114a-84ce-dad8-501f35d2e638"
- }
-]
\ No newline at end of file
diff --git a/src/test/resources/com/datadog/api/client/v2/api/on-call.feature b/src/test/resources/com/datadog/api/client/v2/api/on-call.feature
index 7bcd1d00e1b..c52e4291fc6 100644
--- a/src/test/resources/com/datadog/api/client/v2/api/on-call.feature
+++ b/src/test/resources/com/datadog/api/client/v2/api/on-call.feature
@@ -127,52 +127,52 @@ Feature: On-Call
Then the response status is 200 OK
@generated @skip @team:DataDog/on-call
- Scenario: Get team on-call users returns "Bad Request" response
- Given new "GetTeamOnCallUsers" request
- And request contains "team_id" parameter from "REPLACE.ME"
+ Scenario: Get scheduled on-call user returns "Bad Request" response
+ Given new "GetScheduleOnCallUser" request
+ And request contains "schedule_id" parameter from "REPLACE.ME"
When the request is sent
Then the response status is 400 Bad Request
@generated @skip @team:DataDog/on-call
- Scenario: Get team on-call users returns "Not Found" response
- Given new "GetTeamOnCallUsers" request
- And request contains "team_id" parameter from "REPLACE.ME"
+ Scenario: Get scheduled on-call user returns "Not Found" response
+ Given new "GetScheduleOnCallUser" request
+ And request contains "schedule_id" parameter from "REPLACE.ME"
When the request is sent
Then the response status is 404 Not Found
@team:DataDog/on-call
- Scenario: Get team on-call users returns "OK" response
- Given new "GetTeamOnCallUsers" request
+ Scenario: Get scheduled on-call user returns "OK" response
+ Given new "GetScheduleOnCallUser" request
And there is a valid "user" in the system
- And there is a valid "dd_team" in the system
And there is a valid "schedule" in the system
- And there is a valid "escalation_policy" in the system
- And there are valid "routing_rules" in the system
- And request contains "team_id" parameter from "routing_rules.data.id"
- And request contains "include" parameter with value "responders,escalations.responders"
+ And request contains "schedule_id" parameter from "schedule.data.id"
When the request is sent
Then the response status is 200 OK
@generated @skip @team:DataDog/on-call
- Scenario: Get the schedule on-call user returns "Bad Request" response
- Given new "GetScheduleOnCallUser" request
- And request contains "schedule_id" parameter from "REPLACE.ME"
+ Scenario: Get team on-call users returns "Bad Request" response
+ Given new "GetTeamOnCallUsers" request
+ And request contains "team_id" parameter from "REPLACE.ME"
When the request is sent
Then the response status is 400 Bad Request
@generated @skip @team:DataDog/on-call
- Scenario: Get the schedule on-call user returns "Not Found" response
- Given new "GetScheduleOnCallUser" request
- And request contains "schedule_id" parameter from "REPLACE.ME"
+ Scenario: Get team on-call users returns "Not Found" response
+ Given new "GetTeamOnCallUsers" request
+ And request contains "team_id" parameter from "REPLACE.ME"
When the request is sent
Then the response status is 404 Not Found
@team:DataDog/on-call
- Scenario: Get the schedule on-call user returns "OK" response
- Given new "GetScheduleOnCallUser" request
+ Scenario: Get team on-call users returns "OK" response
+ Given new "GetTeamOnCallUsers" request
And there is a valid "user" in the system
+ And there is a valid "dd_team" in the system
And there is a valid "schedule" in the system
- And request contains "schedule_id" parameter from "schedule.data.id"
+ And there is a valid "escalation_policy" in the system
+ And there are valid "routing_rules" in the system
+ And request contains "team_id" parameter from "routing_rules.data.id"
+ And request contains "include" parameter with value "responders,escalations.responders"
When the request is sent
Then the response status is 200 OK