Create On-Call schedule
https://api.datadoghq.com/api/v2/on-call/scheduleshttps://api.us3.datadoghq.com/api/v2/on-call/scheduleshttps://api.us5.datadoghq.com/api/v2/on-call/scheduleshttps://api.datadoghq.eu/api/v2/on-call/scheduleshttps://api.ap1.datadoghq.com/api/v2/on-call/scheduleshttps://api.ap2.datadoghq.com/api/v2/on-call/scheduleshttps://api.uk1.datadoghq.com/api/v2/on-call/scheduleshttps://api.ddog-gov.com/api/v2/on-call/scheduleshttps://api.us2.ddog-gov.com/api/v2/on-call/schedules概要
Create a new On-Call schedule
引数
クエリ文字列
includeComma-separated list of included relationships to be returned. Allowed values: teams, layers, layers.members, layers.members.user.
リクエスト
Body Data (required)
data [required]The core data wrapper for creating a schedule, encompassing attributes, relationships, and the resource type.
attributes [required]Describes the main attributes for creating a new schedule, including name, layers, and time zone.
layers [required]The layers of On-Call coverage that define rotation intervals and restrictions.
effective_date [required]The date/time when this layer becomes active (in ISO 8601).
end_dateThe date/time after which this layer no longer applies (in ISO 8601).
interval [required]Defines how often the rotation repeats, using a combination of days and optional seconds. Should be at least 1 hour.
daysThe number of days in each rotation cycle.
secondsAny additional seconds for the rotation cycle (up to 30 days).
members [required]A list of members who participate in this layer's rotation.
userIdentifies the user participating in this layer as a single object with an id.
idThe user's ID.
name [required]The name of this layer.
restrictionsZero or more time-based restrictions (for example, only weekdays, during business hours).
end_dayA day of the week.
monday, tuesday, wednesday, thursday, friday, saturday, sundayend_timeSpecifies the ending time for this restriction.
start_dayA day of the week.
monday, tuesday, wednesday, thursday, friday, saturday, sundaystart_timeSpecifies the starting time for this restriction.
rotation_start [required]The date/time when the rotation for this layer starts (in ISO 8601).
time_zoneThe time zone for this layer.
max_respondersMaximum number of users who can be on call at the same time. The value must be between 1 and the number of layers, and no greater than 10.
name [required]A human-readable name for the new schedule.
time_zone [required]The time zone in which the schedule is defined.
relationshipsGathers relationship objects for the schedule creation request, including the teams to associate.
teamsAssociates teams with this schedule in a data structure.
dataAn array of team references for this schedule.
id [required]The unique identifier of the team in this relationship.
type [required]Teams resource type.
teamsteamstype [required]Schedules resource type.
schedulesschedulesCreate On-Call schedule returns "Created" response
{
"data": {
"attributes": {
"layers": [
{
"effective_date": "2021-11-01T11:11:11+00:00",
"end_date": "2021-11-21T11:11:11+00:00",
"interval": {
"days": 1
},
"members": [
{
"user": {
"id": "string"
}
}
],
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2021-11-06T11:11:11+00:00"
}
],
"name": "Example-On-Call",
"time_zone": "America/New_York"
},
"relationships": {
"teams": {
"data": [
{
"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "teams"
}
]
}
},
"type": "schedules"
}
}Create additive On-Call schedule returns "Created" response
{
"data": {
"attributes": {
"max_responders": 1,
"layers": [
{
"effective_date": "2021-11-01T11:11:11+00:00",
"end_date": "2021-11-21T11:11:11+00:00",
"interval": {
"days": 1
},
"members": [
{
"user": {
"id": "string"
}
}
],
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2021-11-06T11:11:11+00:00"
}
],
"name": "Example-On-Call",
"time_zone": "America/New_York"
},
"relationships": {
"teams": {
"data": [
{
"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "teams"
}
]
}
},
"type": "schedules"
}
}応答
Created
Top-level container for a schedule object, including both the data payload and any related included resources (such as teams, layers, or members).
dataRepresents the primary data object for a schedule, linking attributes and relationships.
attributesProvides core properties of a schedule object such as its name and time zone.
max_respondersMaximum number of users who can be on call at the same time. The value is between 1 and the number of layers, and no greater than 10.
nameA short name for the schedule.
tagsA list of tags associated with the schedule.
time_zoneThe time zone in which this schedule operates.
idThe schedule's unique identifier.
relationshipsGroups the relationships for a schedule object, referencing layers and teams.
layersAssociates layers with this schedule in a data structure.
dataAn array of layer references for this schedule.
id [required]The unique identifier of the layer in this relationship.
type [required]Layers resource type.
layerslayersteamsAssociates teams with this schedule in a data structure.
dataAn array of team references for this schedule.
id [required]The unique identifier of the team in this relationship.
type [required]Teams resource type.
teamsteamstype [required]Schedules resource type.
schedulesschedulesincludedAny additional resources related to this schedule, such as teams and layers.
<type=teams>Provides a reference to a team, including ID, type, and basic attributes/relationships.
attributesEncapsulates the basic attributes of a Team reference, such as name, handle, and an optional avatar or description.
avatarURL or reference for the team's avatar (if available).
descriptionA short text describing the team.
handleA unique handle/slug for the team.
nameThe full, human-readable name of the team.
idThe team's unique identifier.
type [required]Teams resource type.
teamsteams<type=layers>Encapsulates a layer resource, holding attributes like rotation details, plus relationships to the members covering that layer.
attributesDescribes key properties of a Layer, including rotation details, name, start/end times, and any restrictions.
effective_dateWhen the layer becomes active (ISO 8601).
end_dateWhen the layer ceases to be active (ISO 8601).
intervalDefines how often the rotation repeats, using a combination of days and optional seconds. Should be at least 1 hour.
daysThe number of days in each rotation cycle.
secondsAny additional seconds for the rotation cycle (up to 30 days).
nameThe name of this layer.
restrictionsAn optional list of time restrictions for when this layer is in effect.
end_dayA day of the week.
monday, tuesday, wednesday, thursday, friday, saturday, sundayend_timeSpecifies the ending time for this restriction.
start_dayA day of the week.
monday, tuesday, wednesday, thursday, friday, saturday, sundaystart_timeSpecifies the starting time for this restriction.
rotation_startThe date/time when the rotation starts (ISO 8601).
time_zoneThe time zone for this layer.
idA unique identifier for this layer.
relationshipsHolds references to objects related to the Layer entity, such as its members.
membersHolds an array of references to the members of a Layer, each containing member IDs.
dataThe list of members who belong to this layer.
id [required]The unique user ID of the layer member.
type [required]Members resource type.
membersmemberstype [required]Layers resource type.
layerslayers<type=members>Represents a single member entry in a schedule, referencing a specific user.
idThe unique identifier for this schedule member.
relationshipsDefines relationships for a schedule member, primarily referencing a single user.
userWraps the user data reference for a schedule member.
data [required]Points to the user data associated with this schedule member, including an ID and type.
id [required]The user's unique identifier.
type [required]Users resource type.
usersuserstype [required]Schedule Members resource type.
membersmembers<type=users>Represents a user object in the context of a schedule, including their id, type, and basic attributes.
attributesProvides basic user information for a schedule, including a name and email address.
colorThe user's on-call color, as a hex code (for example, #FF0000). Included only when user.color is requested in the include parameter.
emailThe user's email address.
nameThe user's name.
statusThe user's status.
active, deactivated, pendingid [required]The unique user identifier.
type [required]Users resource type.
usersusers{
"data": {
"attributes": {
"max_responders": 1,
"name": "On-Call Schedule",
"time_zone": "America/New_York"
},
"id": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
"relationships": {
"layers": {
"data": [
{
"id": "00000000-0000-0000-0000-000000000001",
"type": "layers"
}
]
},
"teams": {
"data": [
{
"id": "00000000-da3a-0000-0000-000000000000",
"type": "teams"
}
]
}
},
"type": "schedules"
},
"included": [
{
"attributes": {
"avatar": "",
"description": "Team 1 description",
"handle": "team1",
"name": "Team 1"
},
"id": "00000000-da3a-0000-0000-000000000000",
"type": "teams"
},
{
"attributes": {
"effective_date": "2025-02-03T05:00:00Z",
"end_date": "2025-12-31T00:00:00Z",
"interval": {
"days": 1
},
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2025-02-01T00:00:00Z"
},
"id": "00000000-0000-0000-0000-000000000001",
"relationships": {
"members": {
"data": [
{
"id": "00000000-0000-0000-0000-000000000002",
"type": "members"
}
]
}
},
"type": "layers"
},
{
"id": "00000000-0000-0000-0000-000000000002",
"relationships": {
"user": {
"data": {
"id": "00000000-aba1-0000-0000-000000000000",
"type": "users"
}
}
},
"type": "members"
},
{
"attributes": {
"email": "foo@bar.com",
"name": "User 1"
},
"id": "00000000-aba1-0000-0000-000000000000",
"type": "users"
}
]
}Bad Request
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Unauthorized
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Forbidden
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Too many requests
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}コード例
Create On-Call schedule returns "Created" response
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/on-call/schedules" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"layers": [
{
"effective_date": "2021-11-01T11:11:11+00:00",
"end_date": "2021-11-21T11:11:11+00:00",
"interval": {
"days": 1
},
"members": [
{
"user": {
"id": "string"
}
}
],
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2021-11-06T11:11:11+00:00"
}
],
"name": "Example-On-Call",
"time_zone": "America/New_York"
},
"relationships": {
"teams": {
"data": [
{
"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "teams"
}
]
}
},
"type": "schedules"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us3.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/on-call/schedules" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"layers": [
{
"effective_date": "2021-11-01T11:11:11+00:00",
"end_date": "2021-11-21T11:11:11+00:00",
"interval": {
"days": 1
},
"members": [
{
"user": {
"id": "string"
}
}
],
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2021-11-06T11:11:11+00:00"
}
],
"name": "Example-On-Call",
"time_zone": "America/New_York"
},
"relationships": {
"teams": {
"data": [
{
"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "teams"
}
]
}
},
"type": "schedules"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us5.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/on-call/schedules" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"layers": [
{
"effective_date": "2021-11-01T11:11:11+00:00",
"end_date": "2021-11-21T11:11:11+00:00",
"interval": {
"days": 1
},
"members": [
{
"user": {
"id": "string"
}
}
],
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2021-11-06T11:11:11+00:00"
}
],
"name": "Example-On-Call",
"time_zone": "America/New_York"
},
"relationships": {
"teams": {
"data": [
{
"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "teams"
}
]
}
},
"type": "schedules"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="datadoghq.eu"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/on-call/schedules" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"layers": [
{
"effective_date": "2021-11-01T11:11:11+00:00",
"end_date": "2021-11-21T11:11:11+00:00",
"interval": {
"days": 1
},
"members": [
{
"user": {
"id": "string"
}
}
],
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2021-11-06T11:11:11+00:00"
}
],
"name": "Example-On-Call",
"time_zone": "America/New_York"
},
"relationships": {
"teams": {
"data": [
{
"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "teams"
}
]
}
},
"type": "schedules"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/on-call/schedules" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"layers": [
{
"effective_date": "2021-11-01T11:11:11+00:00",
"end_date": "2021-11-21T11:11:11+00:00",
"interval": {
"days": 1
},
"members": [
{
"user": {
"id": "string"
}
}
],
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2021-11-06T11:11:11+00:00"
}
],
"name": "Example-On-Call",
"time_zone": "America/New_York"
},
"relationships": {
"teams": {
"data": [
{
"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "teams"
}
]
}
},
"type": "schedules"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap2.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/on-call/schedules" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"layers": [
{
"effective_date": "2021-11-01T11:11:11+00:00",
"end_date": "2021-11-21T11:11:11+00:00",
"interval": {
"days": 1
},
"members": [
{
"user": {
"id": "string"
}
}
],
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2021-11-06T11:11:11+00:00"
}
],
"name": "Example-On-Call",
"time_zone": "America/New_York"
},
"relationships": {
"teams": {
"data": [
{
"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "teams"
}
]
}
},
"type": "schedules"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="uk1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/on-call/schedules" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"layers": [
{
"effective_date": "2021-11-01T11:11:11+00:00",
"end_date": "2021-11-21T11:11:11+00:00",
"interval": {
"days": 1
},
"members": [
{
"user": {
"id": "string"
}
}
],
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2021-11-06T11:11:11+00:00"
}
],
"name": "Example-On-Call",
"time_zone": "America/New_York"
},
"relationships": {
"teams": {
"data": [
{
"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "teams"
}
]
}
},
"type": "schedules"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/on-call/schedules" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"layers": [
{
"effective_date": "2021-11-01T11:11:11+00:00",
"end_date": "2021-11-21T11:11:11+00:00",
"interval": {
"days": 1
},
"members": [
{
"user": {
"id": "string"
}
}
],
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2021-11-06T11:11:11+00:00"
}
],
"name": "Example-On-Call",
"time_zone": "America/New_York"
},
"relationships": {
"teams": {
"data": [
{
"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "teams"
}
]
}
},
"type": "schedules"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us2.ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/on-call/schedules" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"layers": [
{
"effective_date": "2021-11-01T11:11:11+00:00",
"end_date": "2021-11-21T11:11:11+00:00",
"interval": {
"days": 1
},
"members": [
{
"user": {
"id": "string"
}
}
],
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2021-11-06T11:11:11+00:00"
}
],
"name": "Example-On-Call",
"time_zone": "America/New_York"
},
"relationships": {
"teams": {
"data": [
{
"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "teams"
}
]
}
},
"type": "schedules"
}
}
EOFCreate additive On-Call schedule returns "Created" response
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/on-call/schedules" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"max_responders": 1,
"layers": [
{
"effective_date": "2021-11-01T11:11:11+00:00",
"end_date": "2021-11-21T11:11:11+00:00",
"interval": {
"days": 1
},
"members": [
{
"user": {
"id": "string"
}
}
],
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2021-11-06T11:11:11+00:00"
}
],
"name": "Example-On-Call",
"time_zone": "America/New_York"
},
"relationships": {
"teams": {
"data": [
{
"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "teams"
}
]
}
},
"type": "schedules"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us3.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/on-call/schedules" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"max_responders": 1,
"layers": [
{
"effective_date": "2021-11-01T11:11:11+00:00",
"end_date": "2021-11-21T11:11:11+00:00",
"interval": {
"days": 1
},
"members": [
{
"user": {
"id": "string"
}
}
],
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2021-11-06T11:11:11+00:00"
}
],
"name": "Example-On-Call",
"time_zone": "America/New_York"
},
"relationships": {
"teams": {
"data": [
{
"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "teams"
}
]
}
},
"type": "schedules"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us5.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/on-call/schedules" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"max_responders": 1,
"layers": [
{
"effective_date": "2021-11-01T11:11:11+00:00",
"end_date": "2021-11-21T11:11:11+00:00",
"interval": {
"days": 1
},
"members": [
{
"user": {
"id": "string"
}
}
],
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2021-11-06T11:11:11+00:00"
}
],
"name": "Example-On-Call",
"time_zone": "America/New_York"
},
"relationships": {
"teams": {
"data": [
{
"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "teams"
}
]
}
},
"type": "schedules"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="datadoghq.eu"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/on-call/schedules" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"max_responders": 1,
"layers": [
{
"effective_date": "2021-11-01T11:11:11+00:00",
"end_date": "2021-11-21T11:11:11+00:00",
"interval": {
"days": 1
},
"members": [
{
"user": {
"id": "string"
}
}
],
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2021-11-06T11:11:11+00:00"
}
],
"name": "Example-On-Call",
"time_zone": "America/New_York"
},
"relationships": {
"teams": {
"data": [
{
"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "teams"
}
]
}
},
"type": "schedules"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/on-call/schedules" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"max_responders": 1,
"layers": [
{
"effective_date": "2021-11-01T11:11:11+00:00",
"end_date": "2021-11-21T11:11:11+00:00",
"interval": {
"days": 1
},
"members": [
{
"user": {
"id": "string"
}
}
],
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2021-11-06T11:11:11+00:00"
}
],
"name": "Example-On-Call",
"time_zone": "America/New_York"
},
"relationships": {
"teams": {
"data": [
{
"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "teams"
}
]
}
},
"type": "schedules"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap2.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/on-call/schedules" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"max_responders": 1,
"layers": [
{
"effective_date": "2021-11-01T11:11:11+00:00",
"end_date": "2021-11-21T11:11:11+00:00",
"interval": {
"days": 1
},
"members": [
{
"user": {
"id": "string"
}
}
],
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2021-11-06T11:11:11+00:00"
}
],
"name": "Example-On-Call",
"time_zone": "America/New_York"
},
"relationships": {
"teams": {
"data": [
{
"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "teams"
}
]
}
},
"type": "schedules"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="uk1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/on-call/schedules" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"max_responders": 1,
"layers": [
{
"effective_date": "2021-11-01T11:11:11+00:00",
"end_date": "2021-11-21T11:11:11+00:00",
"interval": {
"days": 1
},
"members": [
{
"user": {
"id": "string"
}
}
],
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2021-11-06T11:11:11+00:00"
}
],
"name": "Example-On-Call",
"time_zone": "America/New_York"
},
"relationships": {
"teams": {
"data": [
{
"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "teams"
}
]
}
},
"type": "schedules"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/on-call/schedules" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"max_responders": 1,
"layers": [
{
"effective_date": "2021-11-01T11:11:11+00:00",
"end_date": "2021-11-21T11:11:11+00:00",
"interval": {
"days": 1
},
"members": [
{
"user": {
"id": "string"
}
}
],
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2021-11-06T11:11:11+00:00"
}
],
"name": "Example-On-Call",
"time_zone": "America/New_York"
},
"relationships": {
"teams": {
"data": [
{
"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "teams"
}
]
}
},
"type": "schedules"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us2.ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/on-call/schedules" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"max_responders": 1,
"layers": [
{
"effective_date": "2021-11-01T11:11:11+00:00",
"end_date": "2021-11-21T11:11:11+00:00",
"interval": {
"days": 1
},
"members": [
{
"user": {
"id": "string"
}
}
],
"name": "Layer 1",
"restrictions": [
{
"end_day": "friday",
"end_time": "17:00:00",
"start_day": "monday",
"start_time": "09:00:00"
}
],
"rotation_start": "2021-11-06T11:11:11+00:00"
}
],
"name": "Example-On-Call",
"time_zone": "America/New_York"
},
"relationships": {
"teams": {
"data": [
{
"id": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "teams"
}
]
}
},
"type": "schedules"
}
}
EOF// Create On-Call schedule returns "Created" response
package main
import (
"context"
"encoding/json"
"fmt"
"os"
"time"
"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)
func main() {
// there is a valid "user" in the system
UserDataID := os.Getenv("USER_DATA_ID")
// there is a valid "dd_team" in the system
DdTeamDataID := os.Getenv("DD_TEAM_DATA_ID")
body := datadogV2.ScheduleCreateRequest{
Data: datadogV2.ScheduleCreateRequestData{
Attributes: datadogV2.ScheduleCreateRequestDataAttributes{
Layers: []datadogV2.ScheduleCreateRequestDataAttributesLayersItems{
{
EffectiveDate: time.Now().AddDate(0, 0, -10),
EndDate: datadog.PtrTime(time.Now().AddDate(0, 0, 10)),
Interval: datadogV2.LayerAttributesInterval{
Days: datadog.PtrInt32(1),
},
Members: []datadogV2.ScheduleRequestDataAttributesLayersItemsMembersItems{
{
User: &datadogV2.ScheduleRequestDataAttributesLayersItemsMembersItemsUser{
Id: datadog.PtrString(UserDataID),
},
},
},
Name: "Layer 1",
Restrictions: []datadogV2.TimeRestriction{
{
EndDay: datadogV2.WEEKDAY_FRIDAY.Ptr(),
EndTime: datadog.PtrString("17:00:00"),
StartDay: datadogV2.WEEKDAY_MONDAY.Ptr(),
StartTime: datadog.PtrString("09:00:00"),
},
},
RotationStart: time.Now().AddDate(0, 0, -5),
},
},
Name: "Example-On-Call",
TimeZone: "America/New_York",
},
Relationships: &datadogV2.ScheduleCreateRequestDataRelationships{
Teams: &datadogV2.DataRelationshipsTeams{
Data: []datadogV2.DataRelationshipsTeamsDataItems{
{
Id: DdTeamDataID,
Type: datadogV2.DATARELATIONSHIPSTEAMSDATAITEMSTYPE_TEAMS,
},
},
},
},
Type: datadogV2.SCHEDULECREATEREQUESTDATATYPE_SCHEDULES,
},
}
ctx := datadog.NewDefaultContext(context.Background())
ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
configuration := datadog.NewConfiguration()
apiClient := datadog.NewAPIClient(configuration)
api := datadogV2.NewOnCallApi(apiClient)
resp, r, err := api.CreateOnCallSchedule(ctx, body, *datadogV2.NewCreateOnCallScheduleOptionalParameters())
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `OnCallApi.CreateOnCallSchedule`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := json.MarshalIndent(resp, "", " ")
fmt.Fprintf(os.Stdout, "Response from `OnCallApi.CreateOnCallSchedule`:\n%s\n", responseContent)
}
Instructions
First install the library and its dependencies and then save the example to main.go and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"// Create On-Call schedule returns "Created" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.OnCallApi;
import com.datadog.api.client.v2.model.DataRelationshipsTeams;
import com.datadog.api.client.v2.model.DataRelationshipsTeamsDataItems;
import com.datadog.api.client.v2.model.DataRelationshipsTeamsDataItemsType;
import com.datadog.api.client.v2.model.LayerAttributesInterval;
import com.datadog.api.client.v2.model.Schedule;
import com.datadog.api.client.v2.model.ScheduleCreateRequest;
import com.datadog.api.client.v2.model.ScheduleCreateRequestData;
import com.datadog.api.client.v2.model.ScheduleCreateRequestDataAttributes;
import com.datadog.api.client.v2.model.ScheduleCreateRequestDataAttributesLayersItems;
import com.datadog.api.client.v2.model.ScheduleCreateRequestDataRelationships;
import com.datadog.api.client.v2.model.ScheduleCreateRequestDataType;
import com.datadog.api.client.v2.model.ScheduleRequestDataAttributesLayersItemsMembersItems;
import com.datadog.api.client.v2.model.ScheduleRequestDataAttributesLayersItemsMembersItemsUser;
import com.datadog.api.client.v2.model.TimeRestriction;
import com.datadog.api.client.v2.model.Weekday;
import java.time.OffsetDateTime;
import java.util.Collections;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
OnCallApi apiInstance = new OnCallApi(defaultClient);
// there is a valid "user" in the system
String USER_DATA_ID = System.getenv("USER_DATA_ID");
// there is a valid "dd_team" in the system
String DD_TEAM_DATA_ID = System.getenv("DD_TEAM_DATA_ID");
ScheduleCreateRequest body =
new ScheduleCreateRequest()
.data(
new ScheduleCreateRequestData()
.attributes(
new ScheduleCreateRequestDataAttributes()
.layers(
Collections.singletonList(
new ScheduleCreateRequestDataAttributesLayersItems()
.effectiveDate(OffsetDateTime.now().plusDays(-10))
.endDate(OffsetDateTime.now().plusDays(10))
.interval(new LayerAttributesInterval().days(1))
.members(
Collections.singletonList(
new ScheduleRequestDataAttributesLayersItemsMembersItems()
.user(
new ScheduleRequestDataAttributesLayersItemsMembersItemsUser()
.id(USER_DATA_ID))))
.name("Layer 1")
.restrictions(
Collections.singletonList(
new TimeRestriction()
.endDay(Weekday.FRIDAY)
.endTime("17:00:00")
.startDay(Weekday.MONDAY)
.startTime("09:00:00")))
.rotationStart(OffsetDateTime.now().plusDays(-5))))
.name("Example-On-Call")
.timeZone("America/New_York"))
.relationships(
new ScheduleCreateRequestDataRelationships()
.teams(
new DataRelationshipsTeams()
.data(
Collections.singletonList(
new DataRelationshipsTeamsDataItems()
.id(DD_TEAM_DATA_ID)
.type(DataRelationshipsTeamsDataItemsType.TEAMS)))))
.type(ScheduleCreateRequestDataType.SCHEDULES));
try {
Schedule result = apiInstance.createOnCallSchedule(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling OnCallApi#createOnCallSchedule");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
Instructions
First install the library and its dependencies and then save the example to Example.java and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java""""
Create On-Call schedule returns "Created" response
"""
from datetime import datetime
from dateutil.relativedelta import relativedelta
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.data_relationships_teams import DataRelationshipsTeams
from datadog_api_client.v2.model.data_relationships_teams_data_items import DataRelationshipsTeamsDataItems
from datadog_api_client.v2.model.data_relationships_teams_data_items_type import DataRelationshipsTeamsDataItemsType
from datadog_api_client.v2.model.layer_attributes_interval import LayerAttributesInterval
from datadog_api_client.v2.model.schedule_create_request import ScheduleCreateRequest
from datadog_api_client.v2.model.schedule_create_request_data import ScheduleCreateRequestData
from datadog_api_client.v2.model.schedule_create_request_data_attributes import ScheduleCreateRequestDataAttributes
from datadog_api_client.v2.model.schedule_create_request_data_attributes_layers_items import (
ScheduleCreateRequestDataAttributesLayersItems,
)
from datadog_api_client.v2.model.schedule_create_request_data_relationships import (
ScheduleCreateRequestDataRelationships,
)
from datadog_api_client.v2.model.schedule_create_request_data_type import ScheduleCreateRequestDataType
from datadog_api_client.v2.model.schedule_request_data_attributes_layers_items_members_items import (
ScheduleRequestDataAttributesLayersItemsMembersItems,
)
from datadog_api_client.v2.model.schedule_request_data_attributes_layers_items_members_items_user import (
ScheduleRequestDataAttributesLayersItemsMembersItemsUser,
)
from datadog_api_client.v2.model.time_restriction import TimeRestriction
from datadog_api_client.v2.model.weekday import Weekday
# there is a valid "user" in the system
USER_DATA_ID = environ["USER_DATA_ID"]
# there is a valid "dd_team" in the system
DD_TEAM_DATA_ID = environ["DD_TEAM_DATA_ID"]
body = ScheduleCreateRequest(
data=ScheduleCreateRequestData(
attributes=ScheduleCreateRequestDataAttributes(
layers=[
ScheduleCreateRequestDataAttributesLayersItems(
effective_date=(datetime.now() + relativedelta(days=-10)),
end_date=(datetime.now() + relativedelta(days=10)),
interval=LayerAttributesInterval(
days=1,
),
members=[
ScheduleRequestDataAttributesLayersItemsMembersItems(
user=ScheduleRequestDataAttributesLayersItemsMembersItemsUser(
id=USER_DATA_ID,
),
),
],
name="Layer 1",
restrictions=[
TimeRestriction(
end_day=Weekday.FRIDAY,
end_time="17:00:00",
start_day=Weekday.MONDAY,
start_time="09:00:00",
),
],
rotation_start=(datetime.now() + relativedelta(days=-5)),
),
],
name="Example-On-Call",
time_zone="America/New_York",
),
relationships=ScheduleCreateRequestDataRelationships(
teams=DataRelationshipsTeams(
data=[
DataRelationshipsTeamsDataItems(
id=DD_TEAM_DATA_ID,
type=DataRelationshipsTeamsDataItemsType.TEAMS,
),
],
),
),
type=ScheduleCreateRequestDataType.SCHEDULES,
),
)
configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
api_instance = OnCallApi(api_client)
response = api_instance.create_on_call_schedule(body=body)
print(response)
Instructions
First install the library and its dependencies and then save the example to example.py and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"# Create On-Call schedule returns "Created" response
require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.access_token = ENV["DD_BEARER_TOKEN"]
end
api_instance = DatadogAPIClient::V2::OnCallAPI.new
# there is a valid "user" in the system
USER_DATA_ID = ENV["USER_DATA_ID"]
# there is a valid "dd_team" in the system
DD_TEAM_DATA_ID = ENV["DD_TEAM_DATA_ID"]
body = DatadogAPIClient::V2::ScheduleCreateRequest.new({
data: DatadogAPIClient::V2::ScheduleCreateRequestData.new({
attributes: DatadogAPIClient::V2::ScheduleCreateRequestDataAttributes.new({
layers: [
DatadogAPIClient::V2::ScheduleCreateRequestDataAttributesLayersItems.new({
effective_date: (Time.now + -10 * 86400),
end_date: (Time.now + 10 * 86400),
interval: DatadogAPIClient::V2::LayerAttributesInterval.new({
days: 1,
}),
members: [
DatadogAPIClient::V2::ScheduleRequestDataAttributesLayersItemsMembersItems.new({
user: DatadogAPIClient::V2::ScheduleRequestDataAttributesLayersItemsMembersItemsUser.new({
id: USER_DATA_ID,
}),
}),
],
name: "Layer 1",
restrictions: [
DatadogAPIClient::V2::TimeRestriction.new({
end_day: DatadogAPIClient::V2::Weekday::FRIDAY,
end_time: "17:00:00",
start_day: DatadogAPIClient::V2::Weekday::MONDAY,
start_time: "09:00:00",
}),
],
rotation_start: (Time.now + -5 * 86400),
}),
],
name: "Example-On-Call",
time_zone: "America/New_York",
}),
relationships: DatadogAPIClient::V2::ScheduleCreateRequestDataRelationships.new({
teams: DatadogAPIClient::V2::DataRelationshipsTeams.new({
data: [
DatadogAPIClient::V2::DataRelationshipsTeamsDataItems.new({
id: DD_TEAM_DATA_ID,
type: DatadogAPIClient::V2::DataRelationshipsTeamsDataItemsType::TEAMS,
}),
],
}),
}),
type: DatadogAPIClient::V2::ScheduleCreateRequestDataType::SCHEDULES,
}),
})
p api_instance.create_on_call_schedule(body)
Instructions
First install the library and its dependencies and then save the example to example.rb and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"// Create On-Call schedule returns "Created" response
use chrono::{DateTime, Utc};
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_on_call::CreateOnCallScheduleOptionalParams;
use datadog_api_client::datadogV2::api_on_call::OnCallAPI;
use datadog_api_client::datadogV2::model::DataRelationshipsTeams;
use datadog_api_client::datadogV2::model::DataRelationshipsTeamsDataItems;
use datadog_api_client::datadogV2::model::DataRelationshipsTeamsDataItemsType;
use datadog_api_client::datadogV2::model::LayerAttributesInterval;
use datadog_api_client::datadogV2::model::ScheduleCreateRequest;
use datadog_api_client::datadogV2::model::ScheduleCreateRequestData;
use datadog_api_client::datadogV2::model::ScheduleCreateRequestDataAttributes;
use datadog_api_client::datadogV2::model::ScheduleCreateRequestDataAttributesLayersItems;
use datadog_api_client::datadogV2::model::ScheduleCreateRequestDataRelationships;
use datadog_api_client::datadogV2::model::ScheduleCreateRequestDataType;
use datadog_api_client::datadogV2::model::ScheduleRequestDataAttributesLayersItemsMembersItems;
use datadog_api_client::datadogV2::model::ScheduleRequestDataAttributesLayersItemsMembersItemsUser;
use datadog_api_client::datadogV2::model::TimeRestriction;
use datadog_api_client::datadogV2::model::Weekday;
#[tokio::main]
async fn main() {
// there is a valid "user" in the system
let user_data_id = std::env::var("USER_DATA_ID").unwrap();
// there is a valid "dd_team" in the system
let dd_team_data_id = std::env::var("DD_TEAM_DATA_ID").unwrap();
let body = ScheduleCreateRequest::new(
ScheduleCreateRequestData::new(
ScheduleCreateRequestDataAttributes::new(
vec![ScheduleCreateRequestDataAttributesLayersItems::new(
DateTime::parse_from_rfc3339("2021-11-01T11:11:11+00:00")
.expect("Failed to parse datetime")
.with_timezone(&Utc),
LayerAttributesInterval::new().days(1),
vec![
ScheduleRequestDataAttributesLayersItemsMembersItems::new().user(
ScheduleRequestDataAttributesLayersItemsMembersItemsUser::new()
.id(user_data_id.clone()),
),
],
"Layer 1".to_string(),
DateTime::parse_from_rfc3339("2021-11-06T11:11:11+00:00")
.expect("Failed to parse datetime")
.with_timezone(&Utc),
)
.end_date(
DateTime::parse_from_rfc3339("2021-11-21T11:11:11+00:00")
.expect("Failed to parse datetime")
.with_timezone(&Utc),
)
.restrictions(vec![TimeRestriction::new()
.end_day(Weekday::FRIDAY)
.end_time("17:00:00".to_string())
.start_day(Weekday::MONDAY)
.start_time("09:00:00".to_string())])],
"Example-On-Call".to_string(),
"America/New_York".to_string(),
),
ScheduleCreateRequestDataType::SCHEDULES,
)
.relationships(ScheduleCreateRequestDataRelationships::new().teams(
DataRelationshipsTeams::new().data(vec![DataRelationshipsTeamsDataItems::new(
dd_team_data_id.clone(),
DataRelationshipsTeamsDataItemsType::TEAMS,
)]),
)),
);
let configuration = datadog::Configuration::new();
let api = OnCallAPI::with_config(configuration);
let resp = api
.create_on_call_schedule(body, CreateOnCallScheduleOptionalParams::default())
.await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}
Instructions
First install the library and its dependencies and then save the example to src/main.rs and run following commands:
DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="us3.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="us5.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="datadoghq.eu" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="ap1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="ap2.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="uk1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="us2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run/**
* Create On-Call schedule returns "Created" response
*/
import { client, v2 } from "@datadog/datadog-api-client";
const configuration = client.createConfiguration({
authMethods: {
AuthZ: {
accessToken: process.env.DD_BEARER_TOKEN as string,
},
},
});
const apiInstance = new v2.OnCallApi(configuration);
// there is a valid "user" in the system
const USER_DATA_ID = process.env.USER_DATA_ID as string;
// there is a valid "dd_team" in the system
const DD_TEAM_DATA_ID = process.env.DD_TEAM_DATA_ID as string;
const params: v2.OnCallApiCreateOnCallScheduleRequest = {
body: {
data: {
attributes: {
layers: [
{
effectiveDate: new Date(new Date().getTime() + -10 * 86400 * 1000),
endDate: new Date(new Date().getTime() + 10 * 86400 * 1000),
interval: {
days: 1,
},
members: [
{
user: {
id: USER_DATA_ID,
},
},
],
name: "Layer 1",
restrictions: [
{
endDay: "friday",
endTime: "17:00:00",
startDay: "monday",
startTime: "09:00:00",
},
],
rotationStart: new Date(new Date().getTime() + -5 * 86400 * 1000),
},
],
name: "Example-On-Call",
timeZone: "America/New_York",
},
relationships: {
teams: {
data: [
{
id: DD_TEAM_DATA_ID,
type: "teams",
},
],
},
},
type: "schedules",
},
},
};
apiInstance
.createOnCallSchedule(params)
.then((data: v2.Schedule) => {
console.log(
"API called successfully. Returned data: " + JSON.stringify(data)
);
})
.catch((error: any) => console.error(error));
Instructions
First install the library and its dependencies and then save the example to example.ts and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"