Cette traduction automatique est fournie pour votre commodité.
En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.
La requête notificationChannels vous permet de parcourir l'ensemble de vos canaux de notificationd'alerte par compte. Vous pouvez également utiliser la requête notificationChannel pour obtenir un canal de notification spécifique par son ID.
Conseil
Notez que certains champs secrets (par exemple, les mots de passe ou la clé API) sont obscurcis dans les champs renvoyés.
Cet exemple renvoie tous les champs pour chaque canal de notification sur l'ID de compte fourni, jusqu'à la limite de page de 200. Notez comment nous utilisons [fragments en ligne][fragments-en-ligne] pour faire référence aux champs spécifiques sur les types concrets implémentant l'interface AlertsNotificationChannel .
{
actor{
account(id:YOUR_ACCOUNT_ID){
alerts{
notificationChannels{
channels{
id
name
type
...onAlertsXMattersNotificationChannel{
config{
integrationUrl
}
}
...onAlertsWebhookNotificationChannel{
config{
baseUrl
basicAuth{
password
username
}
customHttpHeaders{
name
value
}
customPayloadBody
customPayloadType
}
}
...onAlertsVictorOpsNotificationChannel{
config{
key
routeKey
}
}
...onAlertsUserNotificationChannel{
config{
userId
}
}
...onAlertsSlackNotificationChannel{
config{
teamChannel
url
}
}
...onAlertsPagerDutyNotificationChannel{
config{
apiKey
}
}
...onAlertsOpsGenieNotificationChannel{
config{
apiKey
dataCenterRegion
recipients
tags
teams
}
}
...onAlertsHipChatNotificationChannel{
config{
authToken
baseUrl
roomId
}
}
...onAlertsEmailNotificationChannel{
config{
emails
includeJson
}
}
...onAlertsCampfireNotificationChannel{
config{
room
subdomain
token
}
}
}
totalCount
nextCursor
}
}
}
}
}
Si la liste des canaux de notification d'un compte donné dépasse la limite de 200 pages de canaux, vous pouvez utiliser le curseur de pagination pour récupérer des pages supplémentaires.
Avec la pagination du curseur, vous continuez à demander des pages supplémentaires en utilisant le nextCursor jusqu'à ce que ce champ renvoie vide dans la réponse. Un nextCursor vide signale que vous avez atteint la fin de l'ensemble de résultats.
Voici un exemple :
{
actor{
account(id:YOUR_ACCOUNT_ID){
alerts{
notificationChannels{
channels{
id
name
type
}
totalCount
nextCursor
}
}
}
}
}
Le code ci-dessus renvoie un ensemble de résultats comme celui-ci :
Dans votre prochaine requête, fournissez le curseur comme ceci, en mettant à jour chaque requête suivante pour renvoyer le curseur mis à jour, jusqu'à ce que le curseur soit vide :
Si vous disposez de l'ID d'un canal de notification spécifique, l'API vous permet de le rechercher directement. Notez que, comme le canal spécifique est un type concret implémentant l'interface AlertsNotificationChannel , vous devrez peut-être spécifier certains champs à l'aide de la syntaxe ... on pour [fragments en ligne][fragments en ligne].
Dans cet exemple, nous récupérons un canal Slack :
{
actor{
account(id:YOUR_ACCOUNT_ID){
alerts{
notificationChannel(id:YOUR_CHANNEL_ID){
id
name
type
...onAlertsSlackNotificationChannel{
config{
teamChannel
url
}
}
}
}
}
}
}
Cet exemple renvoie l'ID, le nom et le type de chaque canal de notification sur l'ID de compte fourni, ainsi qu'une liste de toutes les politiques associées à ce canal.
{
actor{
account(id:YOUR_ACCOUNT_ID){
alerts{
notificationChannels{
channels{
id
name
type
associatedPolicies{
policies{
id
name
}
totalCount
}
}
nextCursor
totalCount
}
}
}
}
}
Créer un canal de notification
Afin de créer un canal de notification d'alerte, vous devez connaître le type spécifique de canal de notification que vous souhaitez créer (par exemple, e-mail, Slack, etc.), ainsi que les détails nécessaires pour le configurer (qui dépendront du type de canal). Une fois qu'un canal de notification a été créé, il peut être associé à un ou plusieurs [règle d'alerte][règle d'alerte]. Une fois associés, ces canaux recevront une notification de ces politiques lorsque les conditions ne sont pas respectées.
Prudence
Bien que vous puissiez interroger n'importe quel type de canal de notification existant, vous ne pouvez en créer qu'un sous-ensemble. Plus précisément, le type de canal user n'a pas de champs modifiables et les types de canal Campfire et HipChat sont tous deux obsolètes.
Un exemple de création de mutation pour un canal de notification par e-mail :
mutation{
alertsNotificationChannelCreate(
accountId:YOUR_ACCOUNT_ID
notificationChannel:{
email:{
emails:["email@example.com"]
includeJson:true
name:"Some Name <email@example.com>"
}
}
){
notificationChannel{
...onAlertsEmailNotificationChannel{
id
name
type
config{
emails
includeJson
}
}
}
error{
description
errorType
}
}
}
Un exemple de création de mutation pour un canal de notification OpsGenie :
mutation{
alertsNotificationChannelCreate(
accountId:YOUR_ACCOUNT_ID
notificationChannel:{
opsGenie:{
apiKey:"api-key-from-opsgenie"
dataCenterRegion:US
name:"OpsGenie notification channel name"
recipients:["user@example.com"]
tags:["tag1","tag2"]
teams:["team1","team2"]
}
}
){
notificationChannel{
...onAlertsOpsGenieNotificationChannel{
id
name
type
config{
apiKey
teams
tags
recipients
dataCenterRegion
}
}
}
error{
description
errorType
}
}
}
Un exemple de création de mutation pour un canal de notification PagerDuty :
mutation{
alertsNotificationChannelCreate(
accountId:YOUR_ACCOUNT_ID
notificationChannel:{
pagerDuty:{
name:"PagerDuty notification channel name"
apiKey:"api-key-from-pagerduty"
}
}
){
notificationChannel{
...onAlertsPagerDutyNotificationChannel{
id
name
type
config{
apiKey
}
}
}
error{
description
errorType
}
}
}
Un exemple de création de mutation pour un canal de notification Slack :
Afin de mettre à jour un canal de notification d'alerte, vous devez connaître le type spécifique de canal de notification que vous souhaitez modifier (par exemple, e-mail, Slack, etc.), ainsi que les détails nécessaires pour le configurer (qui dépendront du type de canal). Conformément aux autres API GraphQL, vous pouvez mettre à jour un seul champ sur le canal sans rien connaître d'autre que l'ID du canal.
Prudence
Bien que vous puissiez interroger n'importe quel type de canal de notification existant, vous ne pouvez mettre à jour qu'un sous-ensemble d'entre eux. Plus précisément, le type de canal user n'a pas de champs modifiables et les types de canal Campfire et HipChat sont tous deux obsolètes.
Un exemple de mutation de mise à jour pour un canal de notification par e-mail où nous mettons à jour uniquement le nom :
mutation{
alertsNotificationChannelUpdate(
accountId:YOUR_ACCOUNT_ID
id:YOUR_CHANNEL_ID
notificationChannel:{email:{name:"Updated Name <email@example.com>"}}
){
notificationChannel{
...onAlertsEmailNotificationChannel{
id
name
type
}
}
error{
description
errorType
notificationChannelId
}
}
}
Un exemple de mutation de mise à jour pour un canal de notification OpsGenie où nous mettons à jour uniquement le nom :
Vous pouvez supprimer un canal de notification avec uniquement l'ID de compte et l'ID de canal. Notez que la suppression d'un canal le dissocie de toutes les politiques, ce qui signifie qu'aucune autre notification ne sera envoyée à ce canal.
mutation{
alertsNotificationChannelDelete(
accountId:YOUR_ACCOUNT_ID
id:YOUR_CHANNEL_ID
){
id
error{
description
errorType
notificationChannelId
}
}
}
Associer des canaux à une politique
Créer un canal de notification d'alerte ne suffit pas : une fois le canal créé, il faut l'associer à une ou plusieurs [politiques][règle d'alerte]. Une fois associé à une politique, le canal peut recevoir une notification d'alerte lorsque les conditions de cette politique dépassent le seuil.
Dans cet exemple, nous associons deux canaux à une politique :
Dans les cas où un canal de notification a perdu son utilité (par exemple, une liste de courrier électronique qui a été retirée), le moment est venu de dissocier ce canal de la [politique][règle d'alerte] (ou des politiques) qui lui envoient des notifications d'alerte. Cet appel d'API laisse le canal lui-même intact, mais le supprime de la politique spécifiée.
Dans cet exemple, nous supprimons deux canaux d'une politique (en laissant les autres en place) et obtenons la confirmation que ces deux identifiants de canal ont été supprimés :
La suppression d'un canal de notification d'alerte d'une politique does not supprime le canal car il peut être utilisé par d'autres politiques. En revanche, la suppression d’un canal entraînera l’arrêt de l’envoi de notifications d’alerte à ce canal par toutes les politiques associées.