A consulta destinations permite paginar todos os seus destinos por conta. Também permite algumas funcionalidades de filtragem.
Aqui está um exemplo:
{
actor{
account(id:YOUR_ACCOUNT_ID){
aiNotifications{
destinations{
entities{
id
name
}
error{
details
}
}
}
}
}
}
Para paginar seus destinos, você deve solicitar o campo nextCursor na sua consulta inicial.
Com a paginação do cursor, você continua fazendo uma solicitação por meio do conjunto de resultados até que nextCursor retornado da resposta retorne vazio. Isso significa que você chegou ao fim dos seus resultados.
Aqui está um exemplo:
{
actor{
account(id:YOUR_ACCOUNT_ID){
aiNotifications{
destinations(cursor:""){
nextCursor
entities{
id
name
}
totalCount
}
}
}
}
}
O código acima retorna um conjunto de resultados como este:
Portanto, em sua solicitação subsequente, forneça o cursor assim, até que ele fique vazio:
{
actor{
account(id:YOUR_ACCOUNT_ID){
aiNotifications{
destinations(cursor:""){
nextCursor
entities{
id
name
}
totalCount
}
}
}
}
}
A API permite consultar o destino por nome. O filtro name retorna correspondências exatas e parciais. Não faz distinção entre maiúsculas e minúsculas. Isso retornará apenas as informações dos destinos que correspondem ao nome fornecido.
Neste exemplo, queremos encontrar destinos com "DevOps" no nome:
{
actor{
account(id:YOUR_ACCOUNT_ID){
aiNotifications{
destinations(filters:{name:"DevOps"}){
entities{
id
name
}
}
}
}
}
}
A API permite consultar por ID de destino:
{
actor{
account(id:YOUR_ACCOUNT_ID){
aiNotifications{
destinations(filters:{id:YOUR_DESTINATION_ID}){
entities{
id
name
}
}
}
}
}
}
A API permite consultar por tipo de destino. A consulta a seguir retornará todos os destinos de email na conta escolhida:
{
actor{
account(id:YOUR_ACCOUNT_ID){
aiNotifications{
destinations(filters:{type:EMAIL}){
entities{
id
name
}
}
}
}
}
}
Crie um destino
Para criar um destino, diferentes entradas devem ser fornecidas para cada tipo de destino. Uma propriedade two_way_integration opcional está disponível para integrações que permitem integração bidirecional.
PagerDuty possui dois tipos de integração, nível de serviço e nível de conta. Para obter mais informações, consulte os documentos de integração do PagerDuty.
Ao atualizar um destino, observe que não é necessário fornecer todos os atributos do destino. Por exemplo, você só precisa fornecer o nome se pretende apenas atualizá-lo:
mutation{
aiNotificationsUpdateDestination(
accountId:YOUR_ACCOUNT_ID
destinationId:YOUR_destination_ID
destination:{name:"Updated destination Name"}
){
destination{
id
name
}
}
}
Testando um destino
Você pode testar destinos por meio da API NerdGraph. Isso pode ser feito antes ou depois de criar o destino.
mutation{
aiNotificationsTestDestination(
accountId:YOUR_ACCOUNT_ID
destination:{
type:EMAIL
name:"Destination Name"
properties:[{key:"email",value:YOUR_EMAIL}]
}
){
error{
details
}
details
result
}
}
mutation{
aiNotificationsTestDestinationById(
accountId:YOUR_ACCOUNT_ID
destinationId:YOUR_DESTINATION_ID
){
error{
details
}
details
result
}
}
Excluir um destino
Você pode excluir destinos por meio da API NerdGraph.
mutation{
aiNotificationsDeleteDestination(
accountId:YOUR_ACCOUNT_ID
destinationId:YOUR_DESTINATION_ID
){
ids
error{
details
}
}
}
Importante
Se você receber uma mensagem de falha informando Entity type channel is in use, será necessário identificar os canais usados pelo destino e excluí-los antes de continuar. Para fazer isso, primeiro encontre todos os canais associados ao destino e, em seguida, exclua cada canal individualmente.