Te ofrecemos esta traducción automática para facilitar la lectura.
En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.
La consulta notificationChannels le permite paginar todo su canal de notificación por cuenta. También puede utilizar la consulta notificationChannel para obtener un canal de notificación específico por su ID.
Sugerencia
Tenga en cuenta que ciertos campos secretos (por ejemplo, contraseñas o clave de API) están ofuscados en los campos devueltos.
Este ejemplo devuelve todos los campos para cada canal de notificación en el ID de cuenta proporcionado, hasta el límite de páginas de 200. Observe cómo utilizamos fragmentos en línea para hacer referencia a campos específicos en los tipos concretos que implementan la interfaz 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 lista de canal de notificación de una cuenta determinada excede el límite de páginas de 200 canales, puede usar el cursor de paginación para recuperar páginas adicionales.
Con la paginación del cursor, continúa solicitando páginas adicionales usando nextCursor hasta que ese campo regrese vacío en la respuesta. Un nextCursor vacío indica que ha llegado al final del conjunto de resultados.
He aquí un ejemplo:
{
actor{
account(id:YOUR_ACCOUNT_ID){
alerts{
notificationChannels{
channels{
id
name
type
}
totalCount
nextCursor
}
}
}
}
}
El código anterior devuelve un conjunto de resultados como este:
En su próxima solicitud, proporcione el cursor así, actualizando cada solicitud posterior para devolver el cursor actualizado, hasta que el cursor esté vacío:
Si tiene el ID de un canal de notificación específico, la API le permite buscarlo directamente. Tenga en cuenta que debido a que el canal específico es un tipo concreto que implementa la interfaz AlertsNotificationChannel , es posible que deba especificar ciertos campos usando la sintaxis ... on para fragmentos en línea.
En este ejemplo, recuperamos un canal de Slack:
{
actor{
account(id:YOUR_ACCOUNT_ID){
alerts{
notificationChannel(id:YOUR_CHANNEL_ID){
id
name
type
...onAlertsSlackNotificationChannel{
config{
teamChannel
url
}
}
}
}
}
}
}
Este ejemplo devuelve el ID, el nombre y el tipo de cada canal de notificación en el ID de cuenta proporcionado, así como una lista de cada política asociada con ese canal.
{
actor{
account(id:YOUR_ACCOUNT_ID){
alerts{
notificationChannels{
channels{
id
name
type
associatedPolicies{
policies{
id
name
}
totalCount
}
}
nextCursor
totalCount
}
}
}
}
}
Crear un canal de notificación
Para poder crear un canal de notificación alerta, necesitas saber el tipo específico de canal de notificación que deseas crear (por ejemplo correo electrónico, Slack, etc.), así como los detalles necesarios para configurarlo (que dependerán del canal). tipo). Una vez creado un canal de notificación, se puede asociar a una o más políticas de alertas. Una vez asociados, esos canales recibirán notificaciones de esas políticas cuando se incumplan las condiciones.
Advertencia
Si bien puede consultar cualquier tipo de canal de notificación existente, solo puede crear un subconjunto de ellos. Específicamente, el tipo de canal user no tiene campos editables y los tipos de canal Campfire y HipChat están obsoletos.
Un ejemplo de creación de mutación para un canal de notificación por correo electrónico:
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 ejemplo de creación de mutación para un canal de notificación de 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 ejemplo de creación de mutación para un canal de notificación 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 ejemplo de creación de mutación para un canal de notificación de Slack:
Para actualizar un canal de notificación de alerta, necesitas saber el tipo específico de canal de notificación que deseas cambiar (por ejemplo correo electrónico, Slack, etc.), así como los detalles necesarios para configurarlo (que dependerán del canal). tipo). De manera consistente con otras API de GraphQL, puede actualizar un solo campo en el canal sin saber nada más que el ID del canal.
Advertencia
Si bien puede consultar cualquier tipo de canal de notificación existente, solo puede actualizar un subconjunto de ellos. Específicamente, el tipo de canal user no tiene campos editables y los tipos de canal Campfire y HipChat están obsoletos.
Un ejemplo de mutación de actualización para un canal de notificación por correo electrónico donde actualizamos solo el nombre:
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 ejemplo de mutación de actualización para un canal de notificación de OpsGenie donde actualizamos solo el nombre:
Puede eliminar un canal de notificación solo con el ID de la cuenta y el ID del canal. Tenga en cuenta que eliminar un canal lo disocia de todas las políticas, lo que significa que no se enviará ninguna notificación adicional a ese canal.
mutation{
alertsNotificationChannelDelete(
accountId:YOUR_ACCOUNT_ID
id:YOUR_CHANNEL_ID
){
id
error{
description
errorType
notificationChannelId
}
}
}
Asociar canales a una política
Crear un canal de notificación alerta no es suficiente: una vez creado el canal, es necesario asociarlo a una o más políticas. Una vez asociado a una política, el canal puede recibir una notificación de alerta cuando las condiciones de esa política superen el umbral.
En este ejemplo, asociamos dos canales con una política:
En aquellos casos en los que un canal de notificación ha dejado de ser útil (por ejemplo, una lista de correo electrónico que se ha retirado), ha llegado el momento de disociar ese canal de la política (o políticas) que le envían notificaciones de alerta. Esta llamada API deja el canal intacto, pero lo elimina de la política especificada.
En este ejemplo, eliminamos dos canales de una política (dejamos los demás vigentes) y obtenemos la confirmación de que esos dos ID de canal se eliminaron:
Eliminación de un canal de notificación de alerta de una política does not elimine el canal porque podría ser utilizado por otras políticas. Por otro lado, eliminar un canal hará que todas las políticas asociadas dejen de enviar notificaciones de alerta a ese canal.