curl --request POST \
--url https://developer.synq.io/api/alerts/v1 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"trigger": {
"parts": [
{
"parts": [
{
"identifierList": {
"identifiers": [
{
"airflowDag": {
"integrationId": "<string>",
"dagId": "<string>"
}
}
]
}
}
]
}
]
},
"settings": {
"issue": {
"ongoing": {
"disabled": {}
},
"severities": [],
"notifyUpstream": true,
"allowSqlTestAuditLink": true,
"grouping": {
"noGrouping": {}
}
}
},
"name": "<string>",
"fqn": "<string>",
"targets": [
{
"email": {
"recipientEmails": [
"jsmith@example.com"
]
}
}
],
"owner": {
"ownerPath": "<string>",
"ownershipId": "<string>"
}
}
'import requests
url = "https://developer.synq.io/api/alerts/v1"
payload = {
"trigger": { "parts": [{ "parts": [{ "identifierList": { "identifiers": [{ "airflowDag": {
"integrationId": "<string>",
"dagId": "<string>"
} }] } }] }] },
"settings": { "issue": {
"ongoing": { "disabled": {} },
"severities": [],
"notifyUpstream": True,
"allowSqlTestAuditLink": True,
"grouping": { "noGrouping": {} }
} },
"name": "<string>",
"fqn": "<string>",
"targets": [{ "email": { "recipientEmails": ["jsmith@example.com"] } }],
"owner": {
"ownerPath": "<string>",
"ownershipId": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
trigger: {
parts: [
{
parts: [
{
identifierList: {identifiers: [{airflowDag: {integrationId: '<string>', dagId: '<string>'}}]}
}
]
}
]
},
settings: {
issue: {
ongoing: {disabled: {}},
severities: [],
notifyUpstream: true,
allowSqlTestAuditLink: true,
grouping: {noGrouping: {}}
}
},
name: '<string>',
fqn: '<string>',
targets: [{email: {recipientEmails: ['jsmith@example.com']}}],
owner: {ownerPath: '<string>', ownershipId: '<string>'}
})
};
fetch('https://developer.synq.io/api/alerts/v1', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://developer.synq.io/api/alerts/v1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'trigger' => [
'parts' => [
[
'parts' => [
[
'identifierList' => [
'identifiers' => [
[
'airflowDag' => [
'integrationId' => '<string>',
'dagId' => '<string>'
]
]
]
]
]
]
]
]
],
'settings' => [
'issue' => [
'ongoing' => [
'disabled' => [
]
],
'severities' => [
],
'notifyUpstream' => true,
'allowSqlTestAuditLink' => true,
'grouping' => [
'noGrouping' => [
]
]
]
],
'name' => '<string>',
'fqn' => '<string>',
'targets' => [
[
'email' => [
'recipientEmails' => [
'jsmith@example.com'
]
]
]
],
'owner' => [
'ownerPath' => '<string>',
'ownershipId' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://developer.synq.io/api/alerts/v1"
payload := strings.NewReader("{\n \"trigger\": {\n \"parts\": [\n {\n \"parts\": [\n {\n \"identifierList\": {\n \"identifiers\": [\n {\n \"airflowDag\": {\n \"integrationId\": \"<string>\",\n \"dagId\": \"<string>\"\n }\n }\n ]\n }\n }\n ]\n }\n ]\n },\n \"settings\": {\n \"issue\": {\n \"ongoing\": {\n \"disabled\": {}\n },\n \"severities\": [],\n \"notifyUpstream\": true,\n \"allowSqlTestAuditLink\": true,\n \"grouping\": {\n \"noGrouping\": {}\n }\n }\n },\n \"name\": \"<string>\",\n \"fqn\": \"<string>\",\n \"targets\": [\n {\n \"email\": {\n \"recipientEmails\": [\n \"jsmith@example.com\"\n ]\n }\n }\n ],\n \"owner\": {\n \"ownerPath\": \"<string>\",\n \"ownershipId\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://developer.synq.io/api/alerts/v1")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"trigger\": {\n \"parts\": [\n {\n \"parts\": [\n {\n \"identifierList\": {\n \"identifiers\": [\n {\n \"airflowDag\": {\n \"integrationId\": \"<string>\",\n \"dagId\": \"<string>\"\n }\n }\n ]\n }\n }\n ]\n }\n ]\n },\n \"settings\": {\n \"issue\": {\n \"ongoing\": {\n \"disabled\": {}\n },\n \"severities\": [],\n \"notifyUpstream\": true,\n \"allowSqlTestAuditLink\": true,\n \"grouping\": {\n \"noGrouping\": {}\n }\n }\n },\n \"name\": \"<string>\",\n \"fqn\": \"<string>\",\n \"targets\": [\n {\n \"email\": {\n \"recipientEmails\": [\n \"jsmith@example.com\"\n ]\n }\n }\n ],\n \"owner\": {\n \"ownerPath\": \"<string>\",\n \"ownershipId\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://developer.synq.io/api/alerts/v1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"trigger\": {\n \"parts\": [\n {\n \"parts\": [\n {\n \"identifierList\": {\n \"identifiers\": [\n {\n \"airflowDag\": {\n \"integrationId\": \"<string>\",\n \"dagId\": \"<string>\"\n }\n }\n ]\n }\n }\n ]\n }\n ]\n },\n \"settings\": {\n \"issue\": {\n \"ongoing\": {\n \"disabled\": {}\n },\n \"severities\": [],\n \"notifyUpstream\": true,\n \"allowSqlTestAuditLink\": true,\n \"grouping\": {\n \"noGrouping\": {}\n }\n }\n },\n \"name\": \"<string>\",\n \"fqn\": \"<string>\",\n \"targets\": [\n {\n \"email\": {\n \"recipientEmails\": [\n \"jsmith@example.com\"\n ]\n }\n }\n ],\n \"owner\": {\n \"ownerPath\": \"<string>\",\n \"ownershipId\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"alert": {
"trigger": {
"parts": [
{
"parts": [
{
"identifierList": {
"identifiers": [
{
"airflowDag": {
"integrationId": "<string>",
"dagId": "<string>"
}
}
]
}
}
]
}
]
},
"settings": {
"issue": {
"ongoing": {
"disabled": {}
},
"severities": [],
"notifyUpstream": true,
"allowSqlTestAuditLink": true,
"grouping": {
"noGrouping": {}
}
}
},
"createdAt": "2023-11-07T05:31:56Z",
"id": "<string>",
"name": "<string>",
"fqn": "<string>",
"targets": [
{
"email": {
"recipientEmails": [
"jsmith@example.com"
]
}
}
],
"owner": {
"ownerPath": "<string>",
"ownershipId": "<string>"
},
"isDisabled": true
}
}Create
Create a new alert configuration.
curl --request POST \
--url https://developer.synq.io/api/alerts/v1 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"trigger": {
"parts": [
{
"parts": [
{
"identifierList": {
"identifiers": [
{
"airflowDag": {
"integrationId": "<string>",
"dagId": "<string>"
}
}
]
}
}
]
}
]
},
"settings": {
"issue": {
"ongoing": {
"disabled": {}
},
"severities": [],
"notifyUpstream": true,
"allowSqlTestAuditLink": true,
"grouping": {
"noGrouping": {}
}
}
},
"name": "<string>",
"fqn": "<string>",
"targets": [
{
"email": {
"recipientEmails": [
"jsmith@example.com"
]
}
}
],
"owner": {
"ownerPath": "<string>",
"ownershipId": "<string>"
}
}
'import requests
url = "https://developer.synq.io/api/alerts/v1"
payload = {
"trigger": { "parts": [{ "parts": [{ "identifierList": { "identifiers": [{ "airflowDag": {
"integrationId": "<string>",
"dagId": "<string>"
} }] } }] }] },
"settings": { "issue": {
"ongoing": { "disabled": {} },
"severities": [],
"notifyUpstream": True,
"allowSqlTestAuditLink": True,
"grouping": { "noGrouping": {} }
} },
"name": "<string>",
"fqn": "<string>",
"targets": [{ "email": { "recipientEmails": ["jsmith@example.com"] } }],
"owner": {
"ownerPath": "<string>",
"ownershipId": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
trigger: {
parts: [
{
parts: [
{
identifierList: {identifiers: [{airflowDag: {integrationId: '<string>', dagId: '<string>'}}]}
}
]
}
]
},
settings: {
issue: {
ongoing: {disabled: {}},
severities: [],
notifyUpstream: true,
allowSqlTestAuditLink: true,
grouping: {noGrouping: {}}
}
},
name: '<string>',
fqn: '<string>',
targets: [{email: {recipientEmails: ['jsmith@example.com']}}],
owner: {ownerPath: '<string>', ownershipId: '<string>'}
})
};
fetch('https://developer.synq.io/api/alerts/v1', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://developer.synq.io/api/alerts/v1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'trigger' => [
'parts' => [
[
'parts' => [
[
'identifierList' => [
'identifiers' => [
[
'airflowDag' => [
'integrationId' => '<string>',
'dagId' => '<string>'
]
]
]
]
]
]
]
]
],
'settings' => [
'issue' => [
'ongoing' => [
'disabled' => [
]
],
'severities' => [
],
'notifyUpstream' => true,
'allowSqlTestAuditLink' => true,
'grouping' => [
'noGrouping' => [
]
]
]
],
'name' => '<string>',
'fqn' => '<string>',
'targets' => [
[
'email' => [
'recipientEmails' => [
'jsmith@example.com'
]
]
]
],
'owner' => [
'ownerPath' => '<string>',
'ownershipId' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://developer.synq.io/api/alerts/v1"
payload := strings.NewReader("{\n \"trigger\": {\n \"parts\": [\n {\n \"parts\": [\n {\n \"identifierList\": {\n \"identifiers\": [\n {\n \"airflowDag\": {\n \"integrationId\": \"<string>\",\n \"dagId\": \"<string>\"\n }\n }\n ]\n }\n }\n ]\n }\n ]\n },\n \"settings\": {\n \"issue\": {\n \"ongoing\": {\n \"disabled\": {}\n },\n \"severities\": [],\n \"notifyUpstream\": true,\n \"allowSqlTestAuditLink\": true,\n \"grouping\": {\n \"noGrouping\": {}\n }\n }\n },\n \"name\": \"<string>\",\n \"fqn\": \"<string>\",\n \"targets\": [\n {\n \"email\": {\n \"recipientEmails\": [\n \"jsmith@example.com\"\n ]\n }\n }\n ],\n \"owner\": {\n \"ownerPath\": \"<string>\",\n \"ownershipId\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://developer.synq.io/api/alerts/v1")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"trigger\": {\n \"parts\": [\n {\n \"parts\": [\n {\n \"identifierList\": {\n \"identifiers\": [\n {\n \"airflowDag\": {\n \"integrationId\": \"<string>\",\n \"dagId\": \"<string>\"\n }\n }\n ]\n }\n }\n ]\n }\n ]\n },\n \"settings\": {\n \"issue\": {\n \"ongoing\": {\n \"disabled\": {}\n },\n \"severities\": [],\n \"notifyUpstream\": true,\n \"allowSqlTestAuditLink\": true,\n \"grouping\": {\n \"noGrouping\": {}\n }\n }\n },\n \"name\": \"<string>\",\n \"fqn\": \"<string>\",\n \"targets\": [\n {\n \"email\": {\n \"recipientEmails\": [\n \"jsmith@example.com\"\n ]\n }\n }\n ],\n \"owner\": {\n \"ownerPath\": \"<string>\",\n \"ownershipId\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://developer.synq.io/api/alerts/v1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"trigger\": {\n \"parts\": [\n {\n \"parts\": [\n {\n \"identifierList\": {\n \"identifiers\": [\n {\n \"airflowDag\": {\n \"integrationId\": \"<string>\",\n \"dagId\": \"<string>\"\n }\n }\n ]\n }\n }\n ]\n }\n ]\n },\n \"settings\": {\n \"issue\": {\n \"ongoing\": {\n \"disabled\": {}\n },\n \"severities\": [],\n \"notifyUpstream\": true,\n \"allowSqlTestAuditLink\": true,\n \"grouping\": {\n \"noGrouping\": {}\n }\n }\n },\n \"name\": \"<string>\",\n \"fqn\": \"<string>\",\n \"targets\": [\n {\n \"email\": {\n \"recipientEmails\": [\n \"jsmith@example.com\"\n ]\n }\n }\n ],\n \"owner\": {\n \"ownerPath\": \"<string>\",\n \"ownershipId\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"alert": {
"trigger": {
"parts": [
{
"parts": [
{
"identifierList": {
"identifiers": [
{
"airflowDag": {
"integrationId": "<string>",
"dagId": "<string>"
}
}
]
}
}
]
}
]
},
"settings": {
"issue": {
"ongoing": {
"disabled": {}
},
"severities": [],
"notifyUpstream": true,
"allowSqlTestAuditLink": true,
"grouping": {
"noGrouping": {}
}
}
},
"createdAt": "2023-11-07T05:31:56Z",
"id": "<string>",
"name": "<string>",
"fqn": "<string>",
"targets": [
{
"email": {
"recipientEmails": [
"jsmith@example.com"
]
}
}
],
"owner": {
"ownerPath": "<string>",
"ownershipId": "<string>"
},
"isDisabled": true
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
CreateRequest creates a new alert configuration. create_request.webhook_incompatible_with_grouped_alerts // Webhook targets are not compatible with grouped alerts. Use the no_grouping strategy when sending alerts to webhook targets. create_request.webhook_incompatible_with_ongoing_alerts // Webhook targets are not compatible with ongoing alert strategies (stream or schedule). Use the disabled ongoing strategy when sending alerts to webhook targets.
Query that defines which entities can trigger this alert.
Show child attributes
Show child attributes
Additional settings for the specific alert type.
- issue
- schema_change
Show child attributes
Show child attributes
Human-readable name for the alert configuration.
1 - 255User-provided fully qualified name for the alert config. This is a unique identifier that users can specify to reference the alert.
1 - 500Targets where alerts will be sent.
1AlertingTarget represents a destination where alert notifications will be sent. Each target type has its own specific configuration requirements.
- email
- ms_teams
- owner
- slack
- webhook
Show child attributes
Show child attributes
Optional owner information for the alert configuration.
Show child attributes
Show child attributes
Response
Success
CreateResponse returns the created alert configuration.
The alert configuration that was created.
Show child attributes
Show child attributes