UI에서 공지 목적지를 관리하는 것 외에도 NerdGraph API 사용할 수 있습니다.
목적지 나열 및 필터링
destinations
쿼리를 사용하면 계정당 모든 목적지에 대해 페이지를 매길 수 있습니다.또한 일부 필터링 기능을 허용합니다.
다음은 예입니다.
account(id: YOUR_ACCOUNT_ID) {
목적지를 페이지로 나누려면 초기 쿼리에서 nextCursor
필드를 요청해야 합니다.
커서 페이지 매김을 사용하면 응답에서 반환된 nextCursor
이 다시 비어 있을 때까지 결과 집합을 통해 계속 요청합니다. 이것은 결과의 끝에 도달했음을 의미합니다.
다음은 예입니다.
account(id: YOUR_ACCOUNT_ID) {
destinations(cursor: "") {
위의 코드는 다음과 같은 결과 집합을 반환합니다.
"nextCursor": "/8o0y2qiR54m6thkdgHgwg==:jZTXDFKbTkhKwvMx+CtsPVM=",
"id": "01c0cbe7-3d70-47c1-99e0-adf906eed6c2",
"name": "Destination Name"
"id": "05db0207-c137-4985-8cb5-f21e7e57b8cc",
"name": "Another Destination Name"
따라서 후속 요청에서 커서가 비어 있을 때까지 다음과 같이 커서를 제공합니다.
account(id: YOUR_ACCOUNT_ID) {
destinations(cursor: "") {
API는 이름으로 대상 쿼리를 허용합니다.name
필터는 정확히 일치 및 부분 일치를 반환합니다.대소문자를 구분하지 않습니다.이렇게 하면 제공된 이름과 일치하는 대상에 대한 정보만 반환됩니다.
이 예에서는 이름에 "DevOps"
포함된 목적지를 찾으려고 합니다.
account(id: YOUR_ACCOUNT_ID) {
destinations(filters: { name: "DevOps" }) {
API를 사용하면 대상 ID로 쿼리할 수 있습니다.
account(id: YOUR_ACCOUNT_ID) {
destinations(filters: { id: YOUR_DESTINATION_ID }) {
API를 사용하면 대상 유형별로 쿼리할 수 있습니다.다음 쿼리는 선택한 계정의 모든 이메일 대상을 반환합니다.
account(id: YOUR_ACCOUNT_ID) {
destinations(filters: { type: EMAIL }) {
목적지 만들기
대상을 생성하려면 대상 유형마다 다른 입력을 제공해야 합니다.양방향 통합을 허용하는 통합에 선택적 two_way_integration
속성을 사용할 수 있습니다.
aiNotificationsCreateDestination(accountId: YOUR_ACCOUNT_ID, destination: {
name: "Destination Name",
"password": YOUR_PASSWORD
value: "https://YOUR_INSTANCE.atlassian.net"
key: "two_way_integration",
aiNotificationsCreateDestination(accountId: YOUR_ACCOUNT_ID, destination: {
name: "Destination Name",
"password": YOUR_PASSWORD
value: "https://YOUR_INSTANCE.service-now.com"
key: "two_way_integration",
slack과의 통합은 OAuth2 인증을 통해서만 가능하기 때문에 대상을 변형으로 생성할 수 없습니다.
이 예에서 auth
은 통합되는 서비스에 따라 선택 사항입니다.
aiNotificationsCreateDestination(accountId: YOUR_ACCOUNT_ID, destination: {
name: "Destination Name",
"password": YOUR_PASSWORD
key: "two_way_integration",
aiNotificationsCreateDestination(
accountId: YOUR_ACCOUNT_ID
properties: [{ key: "email", value: YOUR_EMAIL }]
aiNotificationsCreateDestination(accountId: YOUR_ACCOUNT_ID, destination: {
name: "Destination Name",
"password": YOUR_PASSWORD
value: YOUR_AWS_ACCOUNT_ID
PagerDuty에는 서비스 수준과 계정 수준의 두 가지 통합 유형이 있습니다.자세한 내용은 PagerDuty 통합 문서 를 참조하십시오.
서비스 수준:
aiNotificationsCreateDestination(
accountId: YOUR_ACCOUNT_ID
type: PAGERDUTY_SERVICE_INTEGRATION
basic: { token: YOUR_INTEGRATION_TOKEN, prefix: "Token token=" }
계정 수준:
aiNotificationsCreateDestination(
accountId: YOUR_ACCOUNT_ID
type: PAGERDUTY_ACCOUNT_INTEGRATION
basic: { token: YOUR_API_KEY, prefix: "Token token=" }
properties: [{ key: "two_way_integration", value: "true" }]
목적지 업데이트
대상을 업데이트할 때 대상의 모든 속성을 제공할 필요는 없습니다.예를 들어, 이름만 업데이트하려는 경우에만 이름을 제공하면 됩니다.
aiNotificationsUpdateDestination(
accountId: YOUR_ACCOUNT_ID
destinationId: YOUR_destination_ID
destination: { name: "Updated destination Name" }
대상 테스트
NerdGraph API를 통해 대상을 테스트할 수 있습니다.대상을 생성하기 전이나 후에 수행할 수 있습니다.
aiNotificationsTestDestination(
accountId: YOUR_ACCOUNT_ID
properties: [{ key: "email", value: YOUR_EMAIL }]
aiNotificationsTestDestinationById(
accountId: YOUR_ACCOUNT_ID
destinationId: YOUR_DESTINATION_ID
목적지 삭제
NerdGraph API를 통해 목적지를 삭제할 수 있습니다.
aiNotificationsDeleteDestination(
accountId: YOUR_ACCOUNT_ID
destinationId: YOUR_DESTINATION_ID
중요
Entity type channel is in use
이라는 실패 메시지를 받은 경우 계속하기 전에 대상에서 사용하는 채널을 식별하고 삭제해야 합니다. 이를 수행하려면 먼저 대상과 연관된 모든 채널을 찾은 다음 각 채널을 개별적으로 삭제하십시오.
account(id: YOUR_ACCOUNT_ID) {
channels(filters: { destinationId: YOUR_DESTINATION_ID }) {
aiNotificationsDeleteChannel(
accountId: YOUR_ACCOUNT_ID
channelId: YOUR_CHANNEL_ID