curl --request POST \
--url https://developer.synq.io/api/entities/custom/v1/groups \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"group": {
"groupId": "<string>",
"entityIds": [
{
"airflowDag": {
"integrationId": "<string>",
"dagId": "<string>"
},
"entityId": "<string>"
}
],
"createdAt": "2023-01-15T01:30:15.01Z",
"updatedAt": "2023-01-15T01:30:15.01Z"
}
}
'import requests
url = "https://developer.synq.io/api/entities/custom/v1/groups"
payload = { "group": {
"groupId": "<string>",
"entityIds": [
{
"airflowDag": {
"integrationId": "<string>",
"dagId": "<string>"
},
"entityId": "<string>"
}
],
"createdAt": "2023-01-15T01:30:15.01Z",
"updatedAt": "2023-01-15T01:30:15.01Z"
} }
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({
group: {
groupId: '<string>',
entityIds: [
{
airflowDag: {integrationId: '<string>', dagId: '<string>'},
entityId: '<string>'
}
],
createdAt: '2023-01-15T01:30:15.01Z',
updatedAt: '2023-01-15T01:30:15.01Z'
}
})
};
fetch('https://developer.synq.io/api/entities/custom/v1/groups', 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/entities/custom/v1/groups",
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([
'group' => [
'groupId' => '<string>',
'entityIds' => [
[
'airflowDag' => [
'integrationId' => '<string>',
'dagId' => '<string>'
],
'entityId' => '<string>'
]
],
'createdAt' => '2023-01-15T01:30:15.01Z',
'updatedAt' => '2023-01-15T01:30:15.01Z'
]
]),
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/entities/custom/v1/groups"
payload := strings.NewReader("{\n \"group\": {\n \"groupId\": \"<string>\",\n \"entityIds\": [\n {\n \"airflowDag\": {\n \"integrationId\": \"<string>\",\n \"dagId\": \"<string>\"\n },\n \"entityId\": \"<string>\"\n }\n ],\n \"createdAt\": \"2023-01-15T01:30:15.01Z\",\n \"updatedAt\": \"2023-01-15T01:30:15.01Z\"\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/entities/custom/v1/groups")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"group\": {\n \"groupId\": \"<string>\",\n \"entityIds\": [\n {\n \"airflowDag\": {\n \"integrationId\": \"<string>\",\n \"dagId\": \"<string>\"\n },\n \"entityId\": \"<string>\"\n }\n ],\n \"createdAt\": \"2023-01-15T01:30:15.01Z\",\n \"updatedAt\": \"2023-01-15T01:30:15.01Z\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://developer.synq.io/api/entities/custom/v1/groups")
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 \"group\": {\n \"groupId\": \"<string>\",\n \"entityIds\": [\n {\n \"airflowDag\": {\n \"integrationId\": \"<string>\",\n \"dagId\": \"<string>\"\n },\n \"entityId\": \"<string>\"\n }\n ],\n \"createdAt\": \"2023-01-15T01:30:15.01Z\",\n \"updatedAt\": \"2023-01-15T01:30:15.01Z\"\n }\n}"
response = http.request(request)
puts response.read_body{
"deletedIds": [
{
"airflowDag": {
"integrationId": "<string>",
"dagId": "<string>"
},
"entityId": "<string>"
}
]
}UpsertEntitiesGroup
UpsertEntitiesGroup updates current definition of group to the server. As part of the upsert operation the difference of entity ids is calculated between past state and the current state and entities that are no longer part of the group are removed.
curl --request POST \
--url https://developer.synq.io/api/entities/custom/v1/groups \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"group": {
"groupId": "<string>",
"entityIds": [
{
"airflowDag": {
"integrationId": "<string>",
"dagId": "<string>"
},
"entityId": "<string>"
}
],
"createdAt": "2023-01-15T01:30:15.01Z",
"updatedAt": "2023-01-15T01:30:15.01Z"
}
}
'import requests
url = "https://developer.synq.io/api/entities/custom/v1/groups"
payload = { "group": {
"groupId": "<string>",
"entityIds": [
{
"airflowDag": {
"integrationId": "<string>",
"dagId": "<string>"
},
"entityId": "<string>"
}
],
"createdAt": "2023-01-15T01:30:15.01Z",
"updatedAt": "2023-01-15T01:30:15.01Z"
} }
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({
group: {
groupId: '<string>',
entityIds: [
{
airflowDag: {integrationId: '<string>', dagId: '<string>'},
entityId: '<string>'
}
],
createdAt: '2023-01-15T01:30:15.01Z',
updatedAt: '2023-01-15T01:30:15.01Z'
}
})
};
fetch('https://developer.synq.io/api/entities/custom/v1/groups', 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/entities/custom/v1/groups",
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([
'group' => [
'groupId' => '<string>',
'entityIds' => [
[
'airflowDag' => [
'integrationId' => '<string>',
'dagId' => '<string>'
],
'entityId' => '<string>'
]
],
'createdAt' => '2023-01-15T01:30:15.01Z',
'updatedAt' => '2023-01-15T01:30:15.01Z'
]
]),
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/entities/custom/v1/groups"
payload := strings.NewReader("{\n \"group\": {\n \"groupId\": \"<string>\",\n \"entityIds\": [\n {\n \"airflowDag\": {\n \"integrationId\": \"<string>\",\n \"dagId\": \"<string>\"\n },\n \"entityId\": \"<string>\"\n }\n ],\n \"createdAt\": \"2023-01-15T01:30:15.01Z\",\n \"updatedAt\": \"2023-01-15T01:30:15.01Z\"\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/entities/custom/v1/groups")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"group\": {\n \"groupId\": \"<string>\",\n \"entityIds\": [\n {\n \"airflowDag\": {\n \"integrationId\": \"<string>\",\n \"dagId\": \"<string>\"\n },\n \"entityId\": \"<string>\"\n }\n ],\n \"createdAt\": \"2023-01-15T01:30:15.01Z\",\n \"updatedAt\": \"2023-01-15T01:30:15.01Z\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://developer.synq.io/api/entities/custom/v1/groups")
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 \"group\": {\n \"groupId\": \"<string>\",\n \"entityIds\": [\n {\n \"airflowDag\": {\n \"integrationId\": \"<string>\",\n \"dagId\": \"<string>\"\n },\n \"entityId\": \"<string>\"\n }\n ],\n \"createdAt\": \"2023-01-15T01:30:15.01Z\",\n \"updatedAt\": \"2023-01-15T01:30:15.01Z\"\n }\n}"
response = http.request(request)
puts response.read_body{
"deletedIds": [
{
"airflowDag": {
"integrationId": "<string>",
"dagId": "<string>"
},
"entityId": "<string>"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Group is a collection of entities.
Show child attributes
Show child attributes
Response
Success
Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers are designed to closely mimic identifiers used by data platforms and tools. To construct an identifier, you need to know the kind of the entity and the ids that you would normally use to identify it in the data platform or tool. For example, to identify a table in BigQuery, you would need to know the project, dataset, and table names.
Every identifier the API RETURNS also carries entity_id, the entity's opaque
id. Read it when you just need to name the entity again — it is one string for
every platform, where the structured variants below only cover the platforms
that have one.
- Identifier
- Identifier
- Identifier
- Identifier
- Identifier
- Identifier
- Identifier
- Identifier
- Identifier
- Identifier
- Identifier
- Identifier
- Identifier
- Identifier
- Identifier
- Identifier
- Identifier
- Identifier
- Identifier
- Identifier
- Identifier
- Identifier
- Identifier
- Identifier
Show child attributes
Show child attributes