Il existe un ensemble spécifique de méthodes API permettant de manipuler les périodes de maintenance d’un moniteur ou de tous les moniteurs d’un groupe de moniteurs.
Description de l’objet Période de Maintenance
L’objet suivant MaintenancePeriod est utilisé dans les méthodes API décrites ci-dessous :
Nom | Description | Type données |
---|---|---|
Id |
L’identifiant unique pour cette période de maintenance | Integer |
ScheduleMode |
OneTime, Daily, Weekly or Monthly | Enum |
StartDateTime |
Une date et une heure de début (applicable uniquement à une période planifiée ponctuelle) | DateTime |
EndDateTime |
La date et l’heure de fin d’une période de maintenance planifiée ponctuelle | DateTime |
StartTime |
L’heure de début (“HH:mm”, notation 24 heures) pour une période de maintenance récurrente (Daily, Weekly ou Monthly) | String (“HH:mm”) |
EndTime |
L’heure de fin (“HH:mm”, notation 24 heures) pour une période de maintenance récurrente (Daily, Weekly ou Monthly) | String (“HH:mm”) |
WeekDay |
Le jour de la semaine pour une période de maintenance hebdomadaire (Sunday/Monday/[…]/Saturday) | Enum |
MonthDay |
Le numéro du jour pour une période de maintenance mensuelle | Int (1-31) |
MaintenanceType |
DisableMonitoring (pour désactiver complètement le moniteur) ou DisableNotifications (la surveillance aura toujours lieu, mais les notifications ne seront pas envoyées) | Enum |
Quand une période de maintenance est retournée via l’API, toutes les propriétés seront présentes, mais en fonction de la ScheduleMode, certains champs liés aux dates ou heures de début et de fin ne seront pas utilisés.
Pour une période de maintenance ponctuelle, nous devons connaître les dates et heures de début et de fin, donc le StartDateTime et EndDateTime propriétés seront utilisées. Pour les périodes de maintenance récurrentes, les champs heure de début et de fin sont pertinents et, en fonction du type de la planification, les propriétésWeekDay ou MonthDay.
Par exemple, un planning quotidien ressemblerait à ceci :
{
"Id": 123,
"ScheduleMode": "Daily",
"StartTime": "22:00",
"EndTime": "22:30",
"MaintenanceType": "DisableNotifications"
}
Les propriétés qui ne sont pas pertinentes pour ce type de planification (DateTime, WeekDay et MonthDay) sont laissées de côté.
Un planning hebdomadaire ressemblerait à ceci :
{
"Id": 123,
"ScheduleMode": "Weekly",
"WeekDay": "Thursday",
"StartTime": "22:00",
"EndTime": "22:30",
"MaintenanceType": "DisableNotifications"
}
Un planning mensuel ressemblerait à ceci :
{
"Id": 125,
"ScheduleMode": "Monthly",
"MonthDay": 24,
"StartTime": "22:00",
"EndTime": "22:30",
"MaintenanceType": "DisableNotifications"
}
Un planning ponctuel ressemblerait à ceci :
{
"Id": 124,
"ScheduleMode": "OneTime",
"StartDateTime": "2018-09-24T22:00",
"EndDateTime": "2018-09-24T22:00",
"MaintenanceType": "DisableMonitoring"
}
Les endpoints d’une période de maintenance
Les endpoints API suivants sont disponibles :
Type de requête | Endpoint | Utilisation |
---|---|---|
GET | Monitor/{monitorGuid}/MaintenancePeriod | Trouve toutes les périodes de maintenance pour un moniteur. |
POST | Monitor/{monitorGuid}/MaintenancePeriod | Enregistre la nouvelle période de maintenance fournie pour le moniteur spécifié |
PUT | Monitor/{monitorGuid}/MaintenancePeriod/ {maintenancePeriodId} | Met à jour le planning de maintenance spécifié pour le moniteur spécifié |
DELETE | Monitor/{monitorGuid}/MaintenancePeriod/ {maintenancePeriodId} | Supprime la période de maintenance spécifiée du moniteur spécifié |
POST | Monitor/{monitorGuid}/MaintenancePeriod/ Cleanup/{beforeDate} | Efface toutes les périodes de maintenance ponctuelles du moniteur spécifié, antérieures à la date spécifiée. |
POST | MonitorGroup/{monitorGroupGuid}/ MaintenancePeriod | Ajoute la période de maintenance fournie à tous les moniteurs du groupe spécifié |
GET Monitor
GET Monitor/{monitorGuid}/MaintenancePeriod
Cette requête GET retournera une collection contenant toutes les périodes de maintenance planifiées pour le moniteur avec le GUID fourni.
Exemple de retour :
[
{
"Id": 125,
"ScheduleMode": "Monthly",
"MonthDay": 24,
"StartTime": "22:00",
"EndTime": "22:30",
"MaintenanceType": "DisableNotifications"
},
{
"Id": 123,
"ScheduleMode": "Weekly",
"WeekDay": "Thursday",
"StartTime": "22:00",
"EndTime": "22:30",
"MaintenanceType": "DisableNotifications"
}
]
POST Monitor
POST Monitor/{monitorGuid}/MaintenancePeriod
Cette méthode créera la période de maintenance fournie dans le corps de la requête et l’attribuera au moniteur dont le GUID est fourni.
Une requête POST attend une structure d’objet telle que fournie dans les exemples de la rubrique « Description de l’objet Période de Maintenance ». Comme indiqué, la structure dépend du type de la période de maintenance (OneTime, Daily, Weekly ou Monthly). De plus, le champ Id ne doit pas être fourni. Une nouvelle valeur d’identifiant sera générée automatiquement.
PUT Monitor
PUT Monitor/{monitorGuid}/MaintenancePeriod/{maintenancePeriodId}
Cette méthode met à jour la période de maintenance dont l’Id est fourni, avec les valeurs fournies dans le corps de la demande.
Valeurs attendues (exemple pour une période de maintenance mensuelle) :
{
"Id": 125,
"ScheduleMode": "Monthly",
"MonthDay": 24,
"StartTime": "22:00",
"EndTime": "22:30",
"MaintenanceType": "DisableNotifications"
}
Notez bien que l’identifiant de la période de maintenance doit être fourni dans le corps ainsi que dans le paramètre maintenancePeriodId. Si l’identifiant dans le paramètre ne correspond pas à l’identifiant de la période de maintenance dans le corps de la demande, une exception sera retournée.
DELETE Monitor
DELETE Monitor/{monitorGuid}/MaintenancePeriod/{maintenancePeriodId}
Cette méthode supprimera la période de maintenance, dont l’identifiant est spécifié dans maintenancePeriodId, du moniteur identifié par le monitorGuidfourni.
POST Monitor
POST Monitor/{monitorGuid}/MaintenancePeriod/Cleanup/{beforeDate}
Cette méthode supprimera toute planification ponctuelle, dont le StartDateTime est antérieur à la date indiquée dans beforeDate, du moniteur identifié par le monitorGuid fourni.
POST MonitorGroup
POST MonitorGroup/{monitorGroupGuid}/MaintenancePeriod
Cette méthode ajoute la période de maintenance fournie dans le corps de la demande à tous les moniteurs du groupe de moniteurs identifié par le Guid fourni.
Valeurs attendues (exemple pour une période de maintenance hebdomadaire :
{
"ScheduleMode": "Weekly",
"WeekDay": "Thursday",
"StartTime": "22:00",
"EndTime": "22:30",
"MaintenanceType": "DisableNotifications"
}