Référence de l’API Plannings d’astreinte

Valeurs possibles des champs

Type de restriction

ValeurDescription
NONEAucune restriction
TIMEOFDAYRestriction basée sur une heure précise de la journée
TIMEINTERVALSRestriction basée sur des intervalles horaires précis

Type de rotation

ValeurDescription
DAILYLa rotation a lieu chaque jour
WEEKLYLa rotation a lieu chaque semaine
CUSTOMLa rotation suit un planning personnalisé

Jours de la semaine

ValeurDescription
SATURDAYSamedi
SUNDAYDimanche
MONDAYLundi
TUESDAYMardi
WEDNESDAYMercredi
THURSDAYJeudi
FRIDAYVendredi

Récupérer les membres d’un planning d’astreinte

Point de terminaison :

GET /on-call-schedules/:id/members

Exemple de requête

GET /on-call-schedules/clzmgn2ze40301poblv9e1pq5/members

Exemple de réponse

{
"currentMembers": [
{
"id": "clh8nmaan72592bfokqjqd95s1",
"name": null,
"email": "member1@email.com",
"phone": null,
"avatar": "https://example.com/avatar.jpg"
}
],
"nextMembers": [
{
"id": "clzajmm98115510h5olxn5i7ljr",
"name": null,
"email": "member2@email.com",
"phone": null,
"avatar": null
}
],
"allMembers": [
{
"id": "clh8nmaan72592bfokqjqd95s1",
"name": null,
"email": "member1@email.com",
"phone": null,
"avatar": "https://example.com/avatar.jpg"
},
{
"id": "clzajmm98115510h5olxn5i7ljr",
"name": null,
"email": "member2@email.com",
"phone": null,
"avatar": null
}
]
}

Créer un planning d’astreinte

Point de terminaison :

POST /on-call-schedules

Exemple de requête

{
"name": "Primary On-call Schedule",
"description": "This schedule is for the primary on-call team.",
"onCallShifts": [
{
"name": "Primary",
"members": [
{
"workspaceMemberId": "member123",
"color": "#FF5733"
},
{
"workspaceMemberId": "member456",
"color": "#33C4FF"
}
],
"rotationType": "WEEKLY",
"customRotationTypeValue": null,
"customRotationTypeUnit": null,
"startDate": "2023-08-08T08:00:00Z",
"endDate": "2024-08-21T08:42:00.000Z",
"restrictionType": "TIMEINTERVALS",
"timeOfDayRestrictionStartTime": null,
"timeOfDayRestrictionEndTime": null,
"timeIntervals": [
{
"startDay": "SATURDAY",
"startDayTime": "1970-01-01T21:00:00.000Z",
"endDay": "SUNDAY",
"endDayTime": "1970-01-01T03:00:00.000Z"
}
]
}
]
}

Exemple de réponse

{
"id": "clzmgn2ze40301poblv9e1pq5",
"name": "Primary On-call Schedule",
"description": "This schedule is for the primary on-call team.",
"status": "ACTIVE",
"onCallShifts": [
{
"id": "clzmgn2zt40361pobj78giwf7",
"name": "Primary",
"order": 1,
"members": [
{
"id": "clzmgn2zt40401pobjzq0pwjd",
"order": 3,
"color": "#0470a6",
"workspaceMember": {
"id": "member123",
"user": {
"id": "clh8nmaan72592bfokqjqd95s1",
"name": null,
"email": "member12@email.com",
"avatar": null
}
}
},
{
"id": "clzmgn2zt40381pob690bwaxx",
"order": 1,
"color": "#195397",
"workspaceMember": {
"id": "member456",
"user": {
"id": "clzajmm98115510h5olxn5i7ljr",
"name": null,
"email": "member45@email.com",
"avatar": null
}
}
}
],
"rotationType": "WEEKLY",
"customRotationTypeValue": null,
"customRotationTypeUnit": null,
"startDate": "2024-08-09T08:42:34.557Z",
"endDate": "2024-08-21T08:42:00.000Z",
"restrictionType": "TIMEINTERVALS",
"timeOfDayRestrictionStartTime": null,
"timeOfDayRestrictionEndTime": null,
"timeIntervals": [
{
"id": "clzmjq8bn313521ioblyzg7hic",
"startDay": "SATURDAY",
"startDayTime": "1970-01-01T21:00:00.000Z",
"endDay": "SUNDAY",
"endDayTime": "1970-01-01T03:00:00.000Z"
}
]
}
]
}

Mettre à jour un planning d’astreinte

Point de terminaison :

PUT /on-call-schedules/:id

Exemple de requête

PUT /on-call-schedules/clzmgn2ze40301poblv9e1pq5
{
"id": "clzmgn2ze40301poblv9e1pq5",
"name": "Name Update",
"description": "This schedule is for the primary on-call team.",
"status": "ACTIVE",
"onCallShifts": [
{
"id": "clzmgn2zt40361pobj78giwf7",
"name": "Primary",
"order": 1,
"members": [
{
"id": "clzmgn2zt40401pobjzq0pwjd",
"order": 3,
"color": "#0470a6",
"workspaceMember": {
"id": "member123",
"user": {
"id": "clh8nmaan72592bfokqjqd95s1",
"name": null,
"email": "member12@email.com",
"avatar": null
}
}
},
{
"id": "clzmgn2zt40381pob690bwaxx",
"order": 1,
"color": "#195397",
"workspaceMember": {
"id": "member456",
"user": {
"id": "clzajmm98115510h5olxn5i7ljr",
"name": null,
"email": "member45@email.com",
"avatar": null
}
}
}
],
"rotationType": "WEEKLY",
"customRotationTypeValue": null,
"customRotationTypeUnit": null,
"startDate": "2024-08-09T08:42:34.557Z",
"endDate": "2024-08-21T08:42:00.000Z",
"restrictionType": "TIMEINTERVALS",
"timeOfDayRestrictionStartTime": null,
"timeOfDayRestrictionEndTime": null,
"timeIntervals": [
{
"id": "clzmjq8bn313521ioblyzg7hic",
"startDay": "SATURDAY",
"startDayTime": "1970-01-01T21:00:00.000Z",
"endDay": "SUNDAY",
"endDayTime": "1970-01-01T03:00:00.000Z"
}
]
}
]
}

Exemple de réponse

{
"id": "clzmgn2ze40301poblv9e1pq5",
"name": "Name Update",
"description": "This schedule is for the primary on-call team.",
"status": "ACTIVE",
"onCallShifts": [
{
"id": "clzmgn2zt40361pobj78giwf7",
"name": "Primary",
"order": 1,
"members": [
{
"id": "clzmgn2zt40401pobjzq0pwjd",
"order": 3,
"color": "#0470a6",
"workspaceMember": {
"id": "member123",
"user": {
"id": "clh8nmaan72592bfokqjqd95s1",
"name": null,
"email": "member12@email.com",
"avatar": null
}
}
},
{
"id": "clzmgn2zt40381pob690bwaxx",
"order": 1,
"color": "#195397",
"workspaceMember": {
"id": "member456",
"user": {
"id": "clzajmm98115510h5olxn5i7ljr",
"name": null,
"email": "member45@email.com",
"avatar": null
}
}
}
],
"rotationType": "WEEKLY",
"customRotationTypeValue": null,
"customRotationTypeUnit": null,
"startDate": "2024-08-09T08:42:34.557Z",
"endDate": "2024-08-21T08:42:00.000Z",
"restrictionType": "TIMEINTERVALS",
"timeOfDayRestrictionStartTime": null,
"timeOfDayRestrictionEndTime": null,
"timeIntervals": [
{
"id": "clzmjq8bn313521ioblyzg7hic",
"startDay": "SATURDAY",
"startDayTime": "1970-01-01T21:00:00.000Z",
"endDay": "SUNDAY",
"endDayTime": "1970-01-01T03:00:00.000Z"
}
]
}
]
}

Supprimer un planning d’astreinte

Point de terminaison :

DELETE /on-call-schedules/:id

Exemple de requête

DELETE /on-call-schedules/schedule-id-1

Exemple de réponse

204 No Content