Retrieves the complete change history for specified entities.
Returns all change types (git commits, schema changes, SQL changes) in chronological order (newest first).
Changes include lineage context showing upstream_distance when changes affect dependencies.
Opaque id of the entity, set on every identifier the API returns. Round-trip
it verbatim; the format is not part of this contract and may change, and it
is never constructed by hand.
OUTPUT ONLY. On a request this field is ignored — the structured variant is
what resolves. That is what lets you hand an identifier straight back
unchanged, or edit its structured fields, without the two disagreeing about
which entity you meant. To name an entity BY opaque id on a request, set the
synq_path variant to that id: it carries exactly this string, and it is
also how an entity whose platform has no structured variant is named.
Opaque identifier of the dbt Core project. Usually the Coalesce Quality
integration id (a UUID), but may also be the dbt project name from
manifest.json when the integration is configured to identify assets by
project name. Treat it as an opaque string, not a UUID.
Required. Host of the Redshift endpoint, as in the connection, for example
my-cluster.abc123.eu-west-1.redshift.amazonaws.com. A port suffix is
accepted and ignored. The bare cluster name (my-cluster) is not enough,
because one name can exist in more than one account or region. A response
returns the host in its normalized form, which is also accepted on input.
The rule below also refuses an empty value. It is not required, because
required stops the other rules and its error does not say what to send.
Required. Host of the Redshift endpoint, as in the connection, for example
my-cluster.abc123.eu-west-1.redshift.amazonaws.com. A port suffix is
accepted and ignored. The bare cluster name (my-cluster) is not enough,
because one name can exist in more than one account or region. A response
returns the host in its normalized form, which is also accepted on input.
The rule below also refuses an empty value. It is not required, because
required stops the other rules and its error does not say what to send.
redshift_table.cluster.full_host // cluster must be the full host of the Redshift endpoint from the connection, for example my-cluster.abc123.eu-west-1.redshift.amazonaws.com
AWS account and region the Athena workgroup runs in, formatted as
"." (e.g. "123456789012.eu-west-1"). Auto-derived
from sts:GetCallerIdentity at integration setup time.
Fabric workspace GUID, decoded from the endpoint host in instance.
Optional and informational: the table is addressed by
instance/database/schema/table, so leave it empty if you don't have it —
it does not affect how the identifier resolves.
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must
be between -315576000000 and 315576000000 inclusive (which corresponds to
0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).
Non-negative fractions of a second at nanosecond resolution. This field is
the nanosecond portion of the duration, not an alternative to seconds.
Negative second values with fractions must still have non-negative nanos
values that count forward in time. Must be between 0 and 999,999,999
inclusive.
Opaque cursor token for the next page of results. If not provided, returns the first page.
This is an encoded token that should be passed as-is from the previous PageInfo.last_id.
List of recent changes to the state of entity. Changes are returned from newest to oldest.
Each change includes:
The type of change (git commit, schema change, SQL definition change)
When the change occurred
Details specific to the type of change
Metadata about who made the change
EntityChange represents a change detected in an entity within the system.
It tracks modifications to entities like Git commits, SQL definitions, and database schemas.
Pagination information for navigating through results.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Coalesce Quality Documentation","colors":{"primary":"#135594","light":"#e8f0f8","dark":"#0d3966"},"logo":{"light":"https://mintcdn.com/synq-15/VrNXC6Gv5xCECUGd/logo/coalesce-quality-logo.svg?fit=max\u0026auto=format\u0026n=VrNXC6Gv5xCECUGd\u0026q=85\u0026s=4ad60b616ed815902c710f413d59cf63","dark":"https://mintcdn.com/synq-15/VrNXC6Gv5xCECUGd/logo/coalesce-quality-logo-white.svg?fit=max\u0026auto=format\u0026n=VrNXC6Gv5xCECUGd\u0026q=85\u0026s=4d8c4a954595c0dfd25bfdf645e6cb56"},"favicon":{"light":"https://mintcdn.com/synq-15/xb0Db-MnOw_Ojah5/favicon.svg?fit=max\u0026auto=format\u0026n=xb0Db-MnOw_Ojah5\u0026q=85\u0026s=860c7081b896f01fe24af1c330da1796","dark":"https://mintcdn.com/synq-15/qs0RRq4z_2GWyKyp/favicon-dark.svg?fit=max\u0026auto=format\u0026n=qs0RRq4z_2GWyKyp\u0026q=85\u0026s=b740f42e7f6972f91d62be5b2840c805"},"navbar":{"links":[{"href":"https://coalesce.io/product/quality/","label":"Website"},{"href":"https://coalesce.io/product/request-demo/","label":"Book a Demo"}],"primary":{"type":"button","label":"Coalesce Quality Platform","href":"https://app.synq.io"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/coalesceio"}},"integrations":{"ga4":{"measurementId":"G-P55J2JTKF1"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://coalesce.io/resources/"},{"anchor":"Changelog","icon":"rocket","href":"https://synq.io/changelog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"synq-15","hasAudioNarration":false,"actualSubdomain":"synq-15","customDomains":["docs.synq.io"],"gitSource":{"type":"github","owner":"getsynq","repo":"docs","deployBranch":"master","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aecb414e142d265493a8a86","collectionId":"96dd6f2b-88bb-4d89-a679-534e33a89a90","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aecb414e142d265493a8a86"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aedccbfa97e78d5bc08e291","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"Documentation","count":450},{"language":"default","tag":"Developer API","count":342},{"language":"default","tag":"REST API","count":331},{"language":"default","tag":"synq.incidents.v1.IncidentsService","count":14},{"language":"default","tag":"Monitors","count":13},{"language":"default","tag":"Reconciliations","count":13},{"language":"default","tag":"synq.alerts.services.v2.AlertsService","count":13},{"language":"default","tag":"synq.monitors.automated_monitors.v1.DeploymentRulesService","count":12},{"language":"default","tag":"synq.domains.v2.DomainsService","count":10},{"language":"default","tag":"synq.users.v1.UsersService","count":10}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[{"filePath":"global.css","content":".dark img[src^=\"/images/\"]{background:white;border-radius:0.5rem;padding:4px}"}],"page":{"pagePath":"api-reference/synqentitieschangesv1changesservice/list","slug":"/api-reference/synqentitieschangesv1changesservice/list","pageMetadata":{"title":"List","description":"Retrieves the complete change history for specified entities.\n Returns all change types (git commits, schema changes, SQL changes) in chronological order (newest first).\n Changes include lineage context showing upstream_distance when changes affect dependencies.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/changes/v1","href":"/api-reference/synqentitieschangesv1changesservice/list","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Retrieves the complete change history for specified entities.\\nReturns all change types (git commits, schema changes, SQL changes) in chronological order (newest first).\\nChanges include lineage context showing upstream_distance when changes affect dependencies.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"List","description":"Retrieves the complete change history for specified entities.\n Returns all change types (git commits, schema changes, SQL changes) in chronological order (newest first).\n Changes include lineage context showing upstream_distance when changes affect dependencies.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/changes/v1","href":"/api-reference/synqentitieschangesv1changesservice/list","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/synq-15/7fe5b7dda612017d/region.js"],"openApiReferenceData":{"operation":{"tags":["synq.entities.changes.v1.ChangesService"],"summary":"List","description":"Retrieves the complete change history for specified entities.\n Returns all change types (git commits, schema changes, SQL changes) in chronological order (newest first).\n Changes include lineage context showing upstream_distance when changes affect dependencies.","operationId":"synq.entities.changes.v1.ChangesService.List","parameters":["76156aec-d2ed-49b4-9ad1-a31f8832ea3b","be984c3a-5ccb-4029-812b-fd6be85a71fd","2385bdb2-eca0-4e59-a1e7-17085b5b7a49","f1b20355-a184-4339-ba25-fb1886e13448","2ba2e32b-6c24-4abe-95c7-08b1b0a179b5","54ef39d1-f27b-406d-9a0e-bbd356da5fa9","6fab520f-074b-44d5-a6f8-d0b7a14cfbed","4a5381dc-83a6-42d2-9acb-298b6a6ba098","c08897c1-2f1f-4b0f-b8a6-c6d1f66e0174","bdddec6c-6f93-4f03-8af7-5f9d8d7251b6","31be379b-3483-4d18-8bb8-718575b2a418","59d6d1ae-6786-4fef-817e-036ebbca81cd","772e8b7f-e799-4668-920e-c7760c1974dc","92e6f8fc-ceb8-4016-adfc-cf7b41132062","9b25c2eb-ddf6-4ad0-a8a3-9ac3f4854925","e9c6f472-8a8d-41d5-a47f-e19ae43b3b90","5e19a62e-6b15-408b-9a7f-13af6fd9186a","e61e1697-1aca-455b-8d44-945b4a0cba02","233291c9-0800-4edb-a44f-0537db636cad","a248bccd-10c8-400a-8945-d429eff8e5e3","764fc2ae-1f87-4b77-b522-edd9d627f764","58cd23a0-fe0c-4854-ac76-a92882c615e4","8d6b1e3e-1e05-4297-97da-e15101ac0c67","eb26ffd6-72b5-4a20-a715-91bc0b7cebd7","b1ec7146-eb09-470d-819d-130cde7f99d1","f1c2e255-147a-469f-9f1d-ab77a61dbd0e","486b6820-8334-4948-aedc-db5a2cefa025","764eebde-c363-4a82-9dc6-8aa13ea1a541","52118ab6-1a85-47b2-8424-10a386549de4","8253cde6-9ce3-4c17-8b10-64c4fad4fd05","9e5c845a-8312-4030-ab94-0ccf8ab433f9","ddf0ad7d-3ff4-4883-a1fa-b099a7da746c","611e2264-ea1f-480e-9d12-04122547b9c0","c7c018a4-3803-448f-a7e7-3336b9169491","4a1aac76-fe7d-4c10-b02f-732d34b562c9","c484cfc6-f6a8-4215-b401-92b7dcfe27ca","a64d691b-947a-420a-b103-06e85dd5b444","976e79d8-237e-4ad9-afa4-8e98ec29ee68","ada99a90-437f-4d10-8e89-9c02c2db1eca","834b5973-5747-428b-bf30-e7042605d54c","dfbd3a0e-511a-4b9f-a685-899fc7c72b18","b8ac6160-93de-4a26-9f19-e77f89ea3f25","ce2ba3b7-8318-49e2-b3c7-61bbadcfd498","e845a688-8a87-4b34-a22b-890dfcc32ab2","6254ae30-af72-4175-a388-1ad8d9d2e55a","094b8d3b-ca20-4b52-8867-84e6a656c10c","f92dfef3-70b7-4056-8a41-0fb8d46ff3fd","56383175-1ed8-410b-b0a2-86bdd52d2d53","ded2497a-52a1-4d5d-989b-aef2728870a3","e05ffeca-5529-47fa-bab7-c34451f3779d","5ef65df3-f70b-4ba4-9aa5-1f2eb8abc7b8","d3fcf39a-8984-47b4-9d22-5d35b3665606","985d4921-3efd-42ea-a744-5cbe892973dc","a51fd37e-0836-4203-a0bc-bf13420af806","07c81cf0-5644-478e-84b1-3b6853fc0548","5bfed858-4d4e-4c66-bb5e-030781bbada9","259dc815-15d0-4d55-8a58-6df2ba240cd9","90a8c25a-c6a4-4f20-bc84-bf2b5898f49d","2f9ed7c9-401d-4591-b075-1a7e233dc8fc","d9eb3270-28c5-48f9-a329-4b6cc4c70630","3eb0961b-06c7-4b40-aa86-eb350740ec1d","25f2d66a-2f23-4b25-bd58-04dc84991b21","396bb172-5e22-4ab0-9be5-990b99aaf19b","e3312d31-fdbf-4b95-a4fb-ff05735d533c","689e263d-adeb-4800-b8e1-e1a446655f29","5d81fe29-de59-40fc-a2a8-1b50f74c8e1a","fe4b7900-9822-4aa9-9ccc-fcd19ed3744d","3a0e0b83-1f4c-443c-9225-5af740282411","7b272ead-e035-46db-8e50-dfb5d8078a1b","cec25f05-fed1-4253-8c4b-7175c86e7cf7","3a0f0601-c01a-40e5-be60-acb69451cec3","13cf3fa9-af78-4063-8a2e-b3bae8db586a","86febbcb-db4d-4eba-8b81-dcf7c9b016c9","d37417ae-14bc-465c-b202-c0a08d210f07","c9e31e23-3ba0-473c-bbe2-8bedcaf4e11a","db62d68e-c697-454c-9cf9-4696a1bc1f09","22f2c231-00ff-4cd9-94cc-cee8aefb6739","359101b1-9ae6-4d9f-8c8e-4de5c3212b15","26fbd157-b3d3-45b5-930a-f43b5245f71d"],"responses":{"200":"c3671562-0481-436a-814c-048f1b9b4d17"},"method":"get","type":"path","servers":["82cf4404-d9d3-43bb-9fb0-2f40a78dde7b","aa6da49a-b0c5-4d36-8910-d2ed76885994","c9d25553-4913-481a-b29f-92bb1f2b1ce2"],"security":["85f48775-9ef8-48fb-a7f7-5dbc785cd09f"],"path":"/api/changes/v1","baseUrlOptions":["https://developer.synq.io","https://api.us.synq.io","https://api.au.synq.io"],"title":"List","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"76156aec-d2ed-49b4-9ad1-a31f8832ea3b":{"name":"id.entityId","in":"query","description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","schema":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"","typeLabel":"string"}},"be984c3a-5ccb-4029-812b-fd6be85a71fd":{"name":"id.dbtCoreNode.integrationId","in":"query","description":"Opaque identifier of the dbt Core project. Usually the Coalesce Quality\n integration id (a UUID), but may also be the dbt project name from\n manifest.json when the integration is configured to identify assets by\n project name. Treat it as an opaque string, not a UUID.","required":true,"schema":{"type":"string","title":"integration_id","description":"Opaque identifier of the dbt Core project. Usually the Coalesce Quality\n integration id (a UUID), but may also be the dbt project name from\n manifest.json when the integration is configured to identify assets by\n project name. Treat it as an opaque string, not a UUID.","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"2385bdb2-eca0-4e59-a1e7-17085b5b7a49":{"name":"id.dbtCoreNode.nodeId","in":"query","description":"Dbt node_id that identifies one of dbt DAG nodes (model, test, etc)","required":true,"schema":{"type":"string","title":"node_id","description":"Dbt node_id that identifies one of dbt DAG nodes (model, test, etc)","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"f1b20355-a184-4339-ba25-fb1886e13448":{"name":"id.dbtCloudNode.projectId","in":"query","description":"Your dbt Cloud project id","required":true,"schema":{"type":"string","title":"project_id","description":"Your dbt Cloud project id","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"2ba2e32b-6c24-4abe-95c7-08b1b0a179b5":{"name":"id.dbtCloudNode.accountId","in":"query","description":"Your dbt Cloud account id","schema":{"type":"string","title":"account_id","description":"Your dbt Cloud account id","uniqueKey":"","typeLabel":"string"}},"54ef39d1-f27b-406d-9a0e-bbd356da5fa9":{"name":"id.dbtCloudNode.nodeId","in":"query","description":"Dbt node_id that identifies one of dbt DAG nodes (model, test, etc)","required":true,"schema":{"type":"string","title":"node_id","description":"Dbt node_id that identifies one of dbt DAG nodes (model, test, etc)","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"6fab520f-074b-44d5-a6f8-d0b7a14cfbed":{"name":"id.bigqueryTable.project","in":"query","description":"BigQuery project","required":true,"schema":{"type":"string","title":"project","description":"BigQuery project","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"4a5381dc-83a6-42d2-9acb-298b6a6ba098":{"name":"id.bigqueryTable.dataset","in":"query","description":"BigQuery dataset id","required":true,"schema":{"type":"string","title":"dataset","description":"BigQuery dataset id","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"c08897c1-2f1f-4b0f-b8a6-c6d1f66e0174":{"name":"id.bigqueryTable.table","in":"query","description":"BigQuery table name","required":true,"schema":{"type":"string","title":"table","description":"BigQuery table name","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"bdddec6c-6f93-4f03-8af7-5f9d8d7251b6":{"name":"id.snowflakeTable.account","in":"query","description":"Snowflake account","required":true,"schema":{"type":"string","title":"account","description":"Snowflake account","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"31be379b-3483-4d18-8bb8-718575b2a418":{"name":"id.snowflakeTable.database","in":"query","description":"Snowflake database","required":true,"schema":{"type":"string","title":"database","description":"Snowflake database","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"59d6d1ae-6786-4fef-817e-036ebbca81cd":{"name":"id.snowflakeTable.schema","in":"query","description":"Snowflake schema","required":true,"schema":{"type":"string","title":"schema","description":"Snowflake schema","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"772e8b7f-e799-4668-920e-c7760c1974dc":{"name":"id.snowflakeTable.table","in":"query","description":"Snowflake table","required":true,"schema":{"type":"string","title":"table","description":"Snowflake table","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"92e6f8fc-ceb8-4016-adfc-cf7b41132062":{"name":"id.redshiftTable.cluster","in":"query","description":"Required. Host of the Redshift endpoint, as in the connection, for example\n `my-cluster.abc123.eu-west-1.redshift.amazonaws.com`. A port suffix is\n accepted and ignored. The bare cluster name (`my-cluster`) is not enough,\n because one name can exist in more than one account or region. A response\n returns the host in its normalized form, which is also accepted on input.\n\n The rule below also refuses an empty value. It is not `required`, because\n `required` stops the other rules and its error does not say what to send.","schema":{"type":"string","title":"cluster","description":"Required. Host of the Redshift endpoint, as in the connection, for example\n `my-cluster.abc123.eu-west-1.redshift.amazonaws.com`. A port suffix is\n accepted and ignored. The bare cluster name (`my-cluster`) is not enough,\n because one name can exist in more than one account or region. A response\n returns the host in its normalized form, which is also accepted on input.\n\n The rule below also refuses an empty value. It is not `required`, because\n `required` stops the other rules and its error does not say what to send.\nRequired. Host of the Redshift endpoint, as in the connection, for example\n `my-cluster.abc123.eu-west-1.redshift.amazonaws.com`. A port suffix is\n accepted and ignored. The bare cluster name (`my-cluster`) is not enough,\n because one name can exist in more than one account or region. A response\n returns the host in its normalized form, which is also accepted on input.\n\n The rule below also refuses an empty value. It is not `required`, because\n `required` stops the other rules and its error does not say what to send.\nredshift_table.cluster.full_host // cluster must be the full host of the Redshift endpoint from the connection, for example my-cluster.abc123.eu-west-1.redshift.amazonaws.com\n","uniqueKey":"","typeLabel":"string"}},"9b25c2eb-ddf6-4ad0-a8a3-9ac3f4854925":{"name":"id.redshiftTable.database","in":"query","description":"Redshift database","required":true,"schema":{"type":"string","title":"database","description":"Redshift database","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"e9c6f472-8a8d-41d5-a47f-e19ae43b3b90":{"name":"id.redshiftTable.schema","in":"query","description":"Redshift schema","required":true,"schema":{"type":"string","title":"schema","description":"Redshift schema","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"5e19a62e-6b15-408b-9a7f-13af6fd9186a":{"name":"id.redshiftTable.table","in":"query","description":"Redshift table","required":true,"schema":{"type":"string","title":"table","description":"Redshift table","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"e61e1697-1aca-455b-8d44-945b4a0cba02":{"name":"id.postgresTable.host","in":"query","description":"Postgres hostname without port","required":true,"schema":{"type":"string","title":"host","description":"Postgres hostname without port","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"233291c9-0800-4edb-a44f-0537db636cad":{"name":"id.postgresTable.database","in":"query","description":"Postgres database","required":true,"schema":{"type":"string","title":"database","description":"Postgres database","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"a248bccd-10c8-400a-8945-d429eff8e5e3":{"name":"id.postgresTable.schema","in":"query","description":"Postgres schema","required":true,"schema":{"type":"string","title":"schema","description":"Postgres schema","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"764fc2ae-1f87-4b77-b522-edd9d627f764":{"name":"id.postgresTable.table","in":"query","description":"Postgres table","required":true,"schema":{"type":"string","title":"table","description":"Postgres table","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"58cd23a0-fe0c-4854-ac76-a92882c615e4":{"name":"id.mysqlTable.host","in":"query","description":"Mysql hostname without port","required":true,"schema":{"type":"string","title":"host","description":"Mysql hostname without port","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"8d6b1e3e-1e05-4297-97da-e15101ac0c67":{"name":"id.mysqlTable.schema","in":"query","description":"Mysql database","required":true,"schema":{"type":"string","title":"schema","description":"Mysql database","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"eb26ffd6-72b5-4a20-a715-91bc0b7cebd7":{"name":"id.mysqlTable.table","in":"query","description":"Mysql table","required":true,"schema":{"type":"string","title":"table","description":"Mysql table","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"b1ec7146-eb09-470d-819d-130cde7f99d1":{"name":"id.clickhouseTable.host","in":"query","description":"Clickhouse hostname without port","required":true,"schema":{"type":"string","title":"host","description":"Clickhouse hostname without port","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"f1c2e255-147a-469f-9f1d-ab77a61dbd0e":{"name":"id.clickhouseTable.schema","in":"query","description":"Clickhouse database","required":true,"schema":{"type":"string","title":"schema","description":"Clickhouse database","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"486b6820-8334-4948-aedc-db5a2cefa025":{"name":"id.clickhouseTable.table","in":"query","description":"Clickhouse table","required":true,"schema":{"type":"string","title":"table","description":"Clickhouse table","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"764eebde-c363-4a82-9dc6-8aa13ea1a541":{"name":"id.airflowDag.integrationId","in":"query","description":"Coalesce Quality integration_id that identifies the Airflow instance","required":true,"schema":{"type":"string","title":"integration_id","description":"Coalesce Quality integration_id that identifies the Airflow instance","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"52118ab6-1a85-47b2-8424-10a386549de4":{"name":"id.airflowDag.dagId","in":"query","description":"Airflow dag_id that identifies the DAG","required":true,"schema":{"type":"string","title":"dag_id","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"8253cde6-9ce3-4c17-8b10-64c4fad4fd05":{"name":"id.airflowTask.integrationId","in":"query","description":"Coalesce Quality integration_id that identifies the Airflow instance","required":true,"schema":{"type":"string","title":"integration_id","description":"Coalesce Quality integration_id that identifies the Airflow instance","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"9e5c845a-8312-4030-ab94-0ccf8ab433f9":{"name":"id.airflowTask.dagId","in":"query","description":"Airflow dag_id that identifies the DAG","required":true,"schema":{"type":"string","title":"dag_id","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"ddf0ad7d-3ff4-4883-a1fa-b099a7da746c":{"name":"id.airflowTask.taskId","in":"query","description":"Airflow task_id that identifies the task within the DAG","required":true,"schema":{"type":"string","title":"task_id","description":"Airflow task_id that identifies the task within the DAG","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"611e2264-ea1f-480e-9d12-04122547b9c0":{"name":"id.custom.id","in":"query","description":"Id that identifies the custom entity\n The Id should be unique within the custom entity Identifier.","required":true,"schema":{"type":"string","title":"id","description":"Id that identifies the custom entity\n The Id should be unique within the custom entity Identifier.","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"c7c018a4-3803-448f-a7e7-3336b9169491":{"name":"id.dataproduct.id","in":"query","description":"Dataproduct id that identifies the Dataproduct","required":true,"schema":{"type":"string","title":"id","format":"uuid","description":"Dataproduct id that identifies the Dataproduct","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"}},"4a1aac76-fe7d-4c10-b02f-732d34b562c9":{"name":"id.synqPath.path","in":"query","description":"Coalesce Quality path that identifies the Coalesce Quality entity, needs to be one of supported paths","required":true,"schema":{"type":"string","title":"path","description":"Coalesce Quality path that identifies the Coalesce Quality entity, needs to be one of supported paths","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"c484cfc6-f6a8-4215-b401-92b7dcfe27ca":{"name":"id.databricksTable.workspace","in":"query","description":"URL of Databricks workspace","required":true,"schema":{"type":"string","title":"workspace","description":"URL of Databricks workspace","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"a64d691b-947a-420a-b103-06e85dd5b444":{"name":"id.databricksTable.catalog","in":"query","description":"Databricks catalog","required":true,"schema":{"type":"string","title":"catalog","description":"Databricks catalog","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"976e79d8-237e-4ad9-afa4-8e98ec29ee68":{"name":"id.databricksTable.schema","in":"query","description":"Databricks schema","required":true,"schema":{"type":"string","title":"schema","description":"Databricks schema","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"ada99a90-437f-4d10-8e89-9c02c2db1eca":{"name":"id.databricksTable.table","in":"query","description":"Databricks table or view","required":true,"schema":{"type":"string","title":"table","description":"Databricks table or view","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"834b5973-5747-428b-bf30-e7042605d54c":{"name":"id.trinoTable.host","in":"query","description":"Hostname of the Trino instance","required":true,"schema":{"type":"string","title":"host","description":"Hostname of the Trino instance","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"dfbd3a0e-511a-4b9f-a685-899fc7c72b18":{"name":"id.trinoTable.catalog","in":"query","description":"Trino catalog","required":true,"schema":{"type":"string","title":"catalog","description":"Trino catalog","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"b8ac6160-93de-4a26-9f19-e77f89ea3f25":{"name":"id.trinoTable.schema","in":"query","description":"Trino schema","required":true,"schema":{"type":"string","title":"schema","description":"Trino schema","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"ce2ba3b7-8318-49e2-b3c7-61bbadcfd498":{"name":"id.trinoTable.table","in":"query","description":"Trino table or view","required":true,"schema":{"type":"string","title":"table","description":"Trino table or view","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"e845a688-8a87-4b34-a22b-890dfcc32ab2":{"name":"id.sqlMeshModel.integrationId","in":"query","description":"Coalesce Quality integration_id that identifies the dbt Core project","required":true,"schema":{"type":"string","title":"integration_id","format":"uuid","description":"Coalesce Quality integration_id that identifies the dbt Core project","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"}},"6254ae30-af72-4175-a388-1ad8d9d2e55a":{"name":"id.sqlMeshModel.fqn","in":"query","description":"SQLMesh model fully qualified name","required":true,"schema":{"type":"string","title":"fqn","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"094b8d3b-ca20-4b52-8867-84e6a656c10c":{"name":"id.sqlMeshAudit.integrationId","in":"query","description":"Coalesce Quality integration_id that identifies the dbt Core project","required":true,"schema":{"type":"string","title":"integration_id","format":"uuid","description":"Coalesce Quality integration_id that identifies the dbt Core project","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"}},"f92dfef3-70b7-4056-8a41-0fb8d46ff3fd":{"name":"id.sqlMeshAudit.fqn","in":"query","description":"SQLMesh model fully qualified name","required":true,"schema":{"type":"string","title":"fqn","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"56383175-1ed8-410b-b0a2-86bdd52d2d53":{"name":"id.sqlMeshAudit.auditId","in":"query","description":"Identifier of the audit","required":true,"schema":{"type":"string","title":"audit_id","description":"Identifier of the audit","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"ded2497a-52a1-4d5d-989b-aef2728870a3":{"name":"id.monitor.monitoredId.mssqlTable.host","in":"query","description":"Hostname of the SQL Server instance","required":true,"schema":{"type":"string","title":"host","description":"Hostname of the SQL Server instance","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"e05ffeca-5529-47fa-bab7-c34451f3779d":{"name":"id.monitor.monitoredId.mssqlTable.database","in":"query","description":"SQL Server database","required":true,"schema":{"type":"string","title":"database","description":"SQL Server database","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"5ef65df3-f70b-4ba4-9aa5-1f2eb8abc7b8":{"name":"id.monitor.monitoredId.mssqlTable.schema","in":"query","description":"SQL Server schema (e.g. \"dbo\")","required":true,"schema":{"type":"string","title":"schema","description":"SQL Server schema (e.g. \"dbo\")","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"d3fcf39a-8984-47b4-9d22-5d35b3665606":{"name":"id.monitor.monitoredId.mssqlTable.table","in":"query","description":"SQL Server table or view","required":true,"schema":{"type":"string","title":"table","description":"SQL Server table or view","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"985d4921-3efd-42ea-a744-5cbe892973dc":{"name":"id.monitor.monitoredId.oracleTable.host","in":"query","description":"Hostname of the Oracle instance","required":true,"schema":{"type":"string","title":"host","description":"Hostname of the Oracle instance","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"a51fd37e-0836-4203-a0bc-bf13420af806":{"name":"id.monitor.monitoredId.oracleTable.serviceName","in":"query","description":"Oracle service name (PDB)","required":true,"schema":{"type":"string","title":"service_name","description":"Oracle service name (PDB)","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"07c81cf0-5644-478e-84b1-3b6853fc0548":{"name":"id.monitor.monitoredId.oracleTable.schema","in":"query","description":"Oracle schema (= owning user)","required":true,"schema":{"type":"string","title":"schema","description":"Oracle schema (= owning user)","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"5bfed858-4d4e-4c66-bb5e-030781bbada9":{"name":"id.monitor.monitoredId.oracleTable.table","in":"query","description":"Oracle table or view","required":true,"schema":{"type":"string","title":"table","description":"Oracle table or view","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"259dc815-15d0-4d55-8a58-6df2ba240cd9":{"name":"id.monitor.monitoredId.athenaTable.instance","in":"query","description":"AWS account and region the Athena workgroup runs in, formatted as\n \"\u003caccount-id>.\u003cregion>\" (e.g. \"123456789012.eu-west-1\"). Auto-derived\n from sts:GetCallerIdentity at integration setup time.","required":true,"schema":{"type":"string","title":"instance","description":"AWS account and region the Athena workgroup runs in, formatted as\n \"\u003caccount-id>.\u003cregion>\" (e.g. \"123456789012.eu-west-1\"). Auto-derived\n from sts:GetCallerIdentity at integration setup time.","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"90a8c25a-c6a4-4f20-bc84-bf2b5898f49d":{"name":"id.monitor.monitoredId.athenaTable.catalog","in":"query","description":"Glue Data Catalog name. Almost always \"AwsDataCatalog\" — the default\n catalog for Athena unless the customer registered a federated catalog.","required":true,"schema":{"type":"string","title":"catalog","description":"Glue Data Catalog name. Almost always \"AwsDataCatalog\" — the default\n catalog for Athena unless the customer registered a federated catalog.","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"2f9ed7c9-401d-4591-b075-1a7e233dc8fc":{"name":"id.monitor.monitoredId.athenaTable.database","in":"query","description":"Glue database (the namespace users typically filter on).","required":true,"schema":{"type":"string","title":"database","description":"Glue database (the namespace users typically filter on).","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"d9eb3270-28c5-48f9-a329-4b6cc4c70630":{"name":"id.monitor.monitoredId.athenaTable.table","in":"query","description":"Glue table or view name.","required":true,"schema":{"type":"string","title":"table","description":"Glue table or view name.","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"3eb0961b-06c7-4b40-aa86-eb350740ec1d":{"name":"id.monitor.monitoredId.savedView.id","in":"query","description":"Saved view id (client-supplied UUID) that identifies the saved view","required":true,"schema":{"type":"string","title":"id","format":"uuid","description":"Saved view id (client-supplied UUID) that identifies the saved view","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"}},"25f2d66a-2f23-4b25-bd58-04dc84991b21":{"name":"id.monitor.monitoredId.fabricTable.instance","in":"query","description":"Workspace SQL analytics endpoint host, e.g.\n \"\u003cworkspace-id>.datawarehouse.fabric.microsoft.com\".","required":true,"schema":{"type":"string","title":"instance","description":"Workspace SQL analytics endpoint host, e.g.\n \"\u003cworkspace-id>.datawarehouse.fabric.microsoft.com\".","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"396bb172-5e22-4ab0-9be5-990b99aaf19b":{"name":"id.monitor.monitoredId.fabricTable.database","in":"query","description":"Fabric warehouse / lakehouse (database).","required":true,"schema":{"type":"string","title":"database","description":"Fabric warehouse / lakehouse (database).","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"e3312d31-fdbf-4b95-a4fb-ff05735d533c":{"name":"id.monitor.monitoredId.fabricTable.schema","in":"query","description":"Schema within the database.","required":true,"schema":{"type":"string","title":"schema","description":"Schema within the database.","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"689e263d-adeb-4800-b8e1-e1a446655f29":{"name":"id.monitor.monitoredId.fabricTable.table","in":"query","description":"Table or view name.","required":true,"schema":{"type":"string","title":"table","description":"Table or view name.","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"5d81fe29-de59-40fc-a2a8-1b50f74c8e1a":{"name":"id.monitor.monitoredId.fabricTable.workspaceId","in":"query","description":"Fabric workspace GUID, decoded from the endpoint host in `instance`.\n Optional and informational: the table is addressed by\n instance/database/schema/table, so leave it empty if you don't have it —\n it does not affect how the identifier resolves.","schema":{"type":"string","title":"workspace_id","description":"Fabric workspace GUID, decoded from the endpoint host in `instance`.\n Optional and informational: the table is addressed by\n instance/database/schema/table, so leave it empty if you don't have it —\n it does not affect how the identifier resolves.","uniqueKey":"","typeLabel":"string"}},"fe4b7900-9822-4aa9-9ccc-fcd19ed3744d":{"name":"id.monitor.monitoredId.fabricTable.tenantId","in":"query","description":"Entra (Azure AD) tenant GUID, decoded from the endpoint host in `instance`.\n Optional and informational, like workspace_id.","schema":{"type":"string","title":"tenant_id","description":"Entra (Azure AD) tenant GUID, decoded from the endpoint host in `instance`.\n Optional and informational, like workspace_id.","uniqueKey":"","typeLabel":"string"}},"3a0e0b83-1f4c-443c-9225-5af740282411":{"name":"id.monitor.monitoredId.db2Table.host","in":"query","description":"Host name of the Db2 server","required":true,"schema":{"type":"string","title":"host","description":"Host name of the Db2 server","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"7b272ead-e035-46db-8e50-dfb5d8078a1b":{"name":"id.monitor.monitoredId.db2Table.database","in":"query","description":"Database name or alias, as in `CONNECT TO \u003cdatabase>`","required":true,"schema":{"type":"string","title":"database","description":"Database name or alias, as in `CONNECT TO \u003cdatabase>`","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"cec25f05-fed1-4253-8c4b-7175c86e7cf7":{"name":"id.monitor.monitoredId.db2Table.schema","in":"query","description":"Db2 schema (e.g. \"DB2INST1\")","required":true,"schema":{"type":"string","title":"schema","description":"Db2 schema (e.g. \"DB2INST1\")","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"3a0f0601-c01a-40e5-be60-acb69451cec3":{"name":"id.monitor.monitoredId.db2Table.table","in":"query","description":"Db2 table or view","required":true,"schema":{"type":"string","title":"table","description":"Db2 table or view","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"13cf3fa9-af78-4063-8a2e-b3bae8db586a":{"name":"id.monitor.monitorId","in":"query","description":"Identifier of the monitor","required":true,"schema":{"type":"string","title":"monitor_id","description":"Identifier of the monitor","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"86febbcb-db4d-4eba-8b81-dcf7c9b016c9":{"name":"id.monitor.segment","in":"query","description":"Optional monitor segmentation identifier","schema":{"type":"string","title":"segment","description":"Optional monitor segmentation identifier","uniqueKey":"","typeLabel":"string"}},"d37417ae-14bc-465c-b202-c0a08d210f07":{"name":"id.monitor.integrationId","in":"query","description":"Coalesce Quality integration_id of the monitored identifier","schema":{"type":"string","title":"integration_id","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"","typeLabel":"string"}},"c9e31e23-3ba0-473c-bbe2-8bedcaf4e11a":{"name":"changeBefore.seconds","in":"query","description":"Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must\n be between -315576000000 and 315576000000 inclusive (which corresponds to\n 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).","schema":{"oneOf":[{"type":"integer","title":"seconds","format":"int64","description":"Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must\n be between -315576000000 and 315576000000 inclusive (which corresponds to\n 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).","uniqueKey":"oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","title":"seconds","format":"int64","description":"Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must\n be between -315576000000 and 315576000000 inclusive (which corresponds to\n 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).","uniqueKey":"oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"","typeLabel":"integer\u003cint64> | string\u003cint64>"}},"db62d68e-c697-454c-9cf9-4696a1bc1f09":{"name":"changeBefore.nanos","in":"query","description":"Non-negative fractions of a second at nanosecond resolution. This field is\n the nanosecond portion of the duration, not an alternative to seconds.\n Negative second values with fractions must still have non-negative nanos\n values that count forward in time. Must be between 0 and 999,999,999\n inclusive.","schema":{"type":"integer","title":"nanos","format":"int32","description":"Non-negative fractions of a second at nanosecond resolution. This field is\n the nanosecond portion of the duration, not an alternative to seconds.\n Negative second values with fractions must still have non-negative nanos\n values that count forward in time. Must be between 0 and 999,999,999\n inclusive.","uniqueKey":"","typeLabel":"integer\u003cint32>"}},"22f2c231-00ff-4cd9-94cc-cee8aefb6739":{"name":"limitToChangeTypes","in":"query","description":"Return only changes of specific types.","schema":{"type":"array","items":{"type":"string","title":"EntityChangeType","enum":["ENTITY_CHANGE_TYPE_UNSPECIFIED","ENTITY_CHANGE_TYPE_GIT_COMMIT","ENTITY_CHANGE_TYPE_SQL_DEFINITION_CHANGE","ENTITY_CHANGE_TYPE_SCHEMA_CHANGE"],"uniqueKey":"items.[INDEX]","typeLabel":"enum\u003cstring>"},"title":"limit_to_change_types","description":"Return only changes of specific types.","uniqueKey":"","typeLabel":"enum\u003cstring>[]"}},"359101b1-9ae6-4d9f-8c8e-4de5c3212b15":{"name":"pagination.cursor","in":"query","description":"Opaque cursor token for the next page of results. If not provided, returns the first page.\n This is an encoded token that should be passed as-is from the previous PageInfo.last_id.","schema":{"type":"string","title":"cursor","description":"Opaque cursor token for the next page of results. If not provided, returns the first page.\n This is an encoded token that should be passed as-is from the previous PageInfo.last_id.","uniqueKey":"","typeLabel":"string"}},"26fbd157-b3d3-45b5-930a-f43b5245f71d":{"name":"pagination.pageSize","in":"query","description":"Maximum number of items to return in a single page. If not provided, defaults vary per API.","schema":{"type":"integer","title":"page_size","minimum":0,"format":"int32","description":"Maximum number of items to return in a single page. If not provided, defaults vary per API.","uniqueKey":"","typeLabel":"integer\u003cint32>"}}},"responses":{"c3671562-0481-436a-814c-048f1b9b4d17":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"changes":{"type":"array","items":{"oneOf":[{"type":"object","title":"EntityChange","description":"EntityChange represents a change detected in an entity within the system.\n It tracks modifications to entities like Git commits, SQL definitions, and database schemas.","required":["entityId","changeId","changeDetectedAt","gitCommit"],"properties":{"entityId":{"oneOf":[{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["airflowDag"],"properties":{"airflowDag":{"type":"object","properties":{"integrationId":{"type":"string","description":"Coalesce Quality integration_id that identifies the Airflow instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.0.airflowDag.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.0.airflowDag.dagId","typeLabel":"string"}},"title":"airflow_dag","required":["integrationId","dagId"],"additionalProperties":false,"description":"Airflow DAG identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.0.airflowDag","typeLabel":"airflow_dag · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.0.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.0","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["airflowTask"],"properties":{"airflowTask":{"type":"object","properties":{"integrationId":{"type":"string","description":"Coalesce Quality integration_id that identifies the Airflow instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.1.airflowTask.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.1.airflowTask.dagId","typeLabel":"string"},"taskId":{"type":"string","description":"Airflow task_id that identifies the task within the DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.1.airflowTask.taskId","typeLabel":"string"}},"title":"airflow_task","required":["integrationId","dagId","taskId"],"additionalProperties":false,"description":"Airflow task identifier within a given DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.1.airflowTask","typeLabel":"airflow_task · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.1.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.1","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["athenaTable"],"properties":{"athenaTable":{"type":"object","properties":{"instance":{"type":"string","description":"AWS account and region the Athena workgroup runs in, formatted as\n \"\u003caccount-id>.\u003cregion>\" (e.g. \"123456789012.eu-west-1\"). Auto-derived\n from sts:GetCallerIdentity at integration setup time.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.2.athenaTable.instance","typeLabel":"string"},"catalog":{"type":"string","description":"Glue Data Catalog name. Almost always \"AwsDataCatalog\" — the default\n catalog for Athena unless the customer registered a federated catalog.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.2.athenaTable.catalog","typeLabel":"string"},"database":{"type":"string","description":"Glue database (the namespace users typically filter on).","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.2.athenaTable.database","typeLabel":"string"},"table":{"type":"string","description":"Glue table or view name.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.2.athenaTable.table","typeLabel":"string"}},"title":"athena_table","required":["instance","catalog","database","table"],"additionalProperties":false,"description":"Amazon Athena (Glue) table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.2.athenaTable","typeLabel":"athena_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.2.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.2","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["bigqueryTable"],"properties":{"bigqueryTable":{"type":"object","properties":{"project":{"type":"string","description":"BigQuery project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.3.bigqueryTable.project","typeLabel":"string"},"dataset":{"type":"string","description":"BigQuery dataset id","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.3.bigqueryTable.dataset","typeLabel":"string"},"table":{"type":"string","description":"BigQuery table name","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.3.bigqueryTable.table","typeLabel":"string"}},"title":"bigquery_table","required":["project","dataset","table"],"additionalProperties":false,"description":"BigQuery table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.3.bigqueryTable","typeLabel":"bigquery_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.3.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.3","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["clickhouseTable"],"properties":{"clickhouseTable":{"type":"object","properties":{"host":{"type":"string","description":"Clickhouse hostname without port","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.4.clickhouseTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Clickhouse database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.4.clickhouseTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Clickhouse table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.4.clickhouseTable.table","typeLabel":"string"}},"title":"clickhouse_table","required":["host","schema","table"],"additionalProperties":false,"description":"Clickhouse table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.4.clickhouseTable","typeLabel":"clickhouse_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.4.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.4","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["custom"],"properties":{"custom":{"type":"object","properties":{"id":{"type":"string","description":"Id that identifies the custom entity\n The Id should be unique within the custom entity Identifier.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.5.custom.id","typeLabel":"string"}},"title":"custom","required":["id"],"additionalProperties":false,"description":"Custom identifier to be used with all custom created entities","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.5.custom","typeLabel":"custom · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.5.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.5","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["databricksTable"],"properties":{"databricksTable":{"type":"object","properties":{"workspace":{"type":"string","description":"URL of Databricks workspace","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.6.databricksTable.workspace","typeLabel":"string"},"catalog":{"type":"string","description":"Databricks catalog","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.6.databricksTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Databricks schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.6.databricksTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Databricks table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.6.databricksTable.table","typeLabel":"string"}},"title":"databricks_table","required":["workspace","catalog","schema","table"],"additionalProperties":false,"description":"Databricks table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.6.databricksTable","typeLabel":"databricks_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.6.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.6","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["dataproduct"],"properties":{"dataproduct":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Dataproduct id that identifies the Dataproduct","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.7.dataproduct.id","typeLabel":"string\u003cuuid>"}},"title":"dataproduct","required":["id"],"additionalProperties":false,"description":"Dataproduct identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.7.dataproduct","typeLabel":"dataproduct · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.7.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.7","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["db2Table"],"properties":{"db2Table":{"type":"object","properties":{"host":{"type":"string","description":"Host name of the Db2 server","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.8.db2Table.host","typeLabel":"string"},"database":{"type":"string","description":"Database name or alias, as in `CONNECT TO \u003cdatabase>`","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.8.db2Table.database","typeLabel":"string"},"schema":{"type":"string","description":"Db2 schema (e.g. \"DB2INST1\")","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.8.db2Table.schema","typeLabel":"string"},"table":{"type":"string","description":"Db2 table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.8.db2Table.table","typeLabel":"string"}},"title":"db2_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"IBM Db2 LUW table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.8.db2Table","typeLabel":"db2_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.8.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.8","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["dbtCloudNode"],"properties":{"dbtCloudNode":{"type":"object","properties":{"projectId":{"type":"string","description":"Your dbt Cloud project id","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.9.dbtCloudNode.projectId","typeLabel":"string"},"nodeId":{"type":"string","description":"Dbt node_id that identifies one of dbt DAG nodes (model, test, etc)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.9.dbtCloudNode.nodeId","typeLabel":"string"},"accountId":{"type":"string","description":"Your dbt Cloud account id","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.9.dbtCloudNode.accountId","typeLabel":"string"}},"title":"dbt_cloud_node","required":["projectId","nodeId"],"additionalProperties":false,"description":"Dbt node that identifies one of dbt DAG nodes (model, test, etc) in dbt Cloud project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.9.dbtCloudNode","typeLabel":"dbt_cloud_node · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.9.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.9","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["dbtCoreNode"],"properties":{"dbtCoreNode":{"type":"object","properties":{"integrationId":{"type":"string","description":"Opaque identifier of the dbt Core project. Usually the Coalesce Quality\n integration id (a UUID), but may also be the dbt project name from\n manifest.json when the integration is configured to identify assets by\n project name. Treat it as an opaque string, not a UUID.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.10.dbtCoreNode.integrationId","typeLabel":"string"},"nodeId":{"type":"string","description":"Dbt node_id that identifies one of dbt DAG nodes (model, test, etc)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.10.dbtCoreNode.nodeId","typeLabel":"string"}},"title":"dbt_core_node","required":["integrationId","nodeId"],"additionalProperties":false,"description":"Dbt node that identifies one of dbt DAG nodes (model, test, etc) in dbt Core project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.10.dbtCoreNode","typeLabel":"dbt_core_node · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.10.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.10","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["fabricTable"],"properties":{"fabricTable":{"type":"object","properties":{"instance":{"type":"string","description":"Workspace SQL analytics endpoint host, e.g.\n \"\u003cworkspace-id>.datawarehouse.fabric.microsoft.com\".","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.11.fabricTable.instance","typeLabel":"string"},"database":{"type":"string","description":"Fabric warehouse / lakehouse (database).","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.11.fabricTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Schema within the database.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.11.fabricTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Table or view name.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.11.fabricTable.table","typeLabel":"string"},"workspaceId":{"type":"string","description":"Fabric workspace GUID, decoded from the endpoint host in `instance`.\n Optional and informational: the table is addressed by\n instance/database/schema/table, so leave it empty if you don't have it —\n it does not affect how the identifier resolves.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.11.fabricTable.workspaceId","typeLabel":"string"},"tenantId":{"type":"string","description":"Entra (Azure AD) tenant GUID, decoded from the endpoint host in `instance`.\n Optional and informational, like workspace_id.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.11.fabricTable.tenantId","typeLabel":"string"}},"title":"fabric_table","required":["instance","database","schema","table"],"additionalProperties":false,"description":"Microsoft Fabric table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.11.fabricTable","typeLabel":"fabric_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.11.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.11","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["monitor"],"properties":{"monitor":{"type":"object","properties":{"monitoredId":{"$circularRef":"9aa48dcc-3dc1-40e9-bf59-0a21c9499772","description":"Identifier of the monitored entity","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.12.monitor.monitoredId","typeLabel":"any"},"monitorId":{"type":"string","description":"Identifier of the monitor","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.12.monitor.monitorId","typeLabel":"string"},"segment":{"oneOf":[{"type":"string","description":"Optional monitor segmentation identifier","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.12.monitor.segment.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional monitor segmentation identifier","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.12.monitor.segment.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.12.monitor.segment","typeLabel":"string | null"},"integrationId":{"oneOf":[{"type":"string","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.12.monitor.integrationId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.12.monitor.integrationId.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.12.monitor.integrationId","typeLabel":"string | null"}},"title":"monitor","required":["monitoredId","monitorId"],"additionalProperties":false,"description":"Monitor identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.12.monitor","typeLabel":"monitor · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.12.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.12","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["mssqlTable"],"properties":{"mssqlTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the SQL Server instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.13.mssqlTable.host","typeLabel":"string"},"database":{"type":"string","description":"SQL Server database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.13.mssqlTable.database","typeLabel":"string"},"schema":{"type":"string","description":"SQL Server schema (e.g. \"dbo\")","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.13.mssqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"SQL Server table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.13.mssqlTable.table","typeLabel":"string"}},"title":"mssql_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"SQL Server table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.13.mssqlTable","typeLabel":"mssql_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.13.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.13","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["mysqlTable"],"properties":{"mysqlTable":{"type":"object","properties":{"host":{"type":"string","description":"Mysql hostname without port","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.14.mysqlTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Mysql database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.14.mysqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Mysql table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.14.mysqlTable.table","typeLabel":"string"}},"title":"mysql_table","required":["host","schema","table"],"additionalProperties":false,"description":"Mysql table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.14.mysqlTable","typeLabel":"mysql_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.14.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.14","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["oracleTable"],"properties":{"oracleTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the Oracle instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.15.oracleTable.host","typeLabel":"string"},"serviceName":{"type":"string","description":"Oracle service name (PDB)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.15.oracleTable.serviceName","typeLabel":"string"},"schema":{"type":"string","description":"Oracle schema (= owning user)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.15.oracleTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Oracle table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.15.oracleTable.table","typeLabel":"string"}},"title":"oracle_table","required":["host","serviceName","schema","table"],"additionalProperties":false,"description":"Oracle table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.15.oracleTable","typeLabel":"oracle_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.15.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.15","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["postgresTable"],"properties":{"postgresTable":{"type":"object","properties":{"host":{"type":"string","description":"Postgres hostname without port","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.16.postgresTable.host","typeLabel":"string"},"database":{"type":"string","description":"Postgres database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.16.postgresTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Postgres schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.16.postgresTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Postgres table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.16.postgresTable.table","typeLabel":"string"}},"title":"postgres_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"Postgres table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.16.postgresTable","typeLabel":"postgres_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.16.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.16","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["redshiftTable"],"properties":{"redshiftTable":{"type":"object","properties":{"database":{"type":"string","description":"Redshift database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.17.redshiftTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Redshift schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.17.redshiftTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Redshift table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.17.redshiftTable.table","typeLabel":"string"},"cluster":{"type":"string","description":"Required. Host of the Redshift endpoint, as in the connection, for example\n `my-cluster.abc123.eu-west-1.redshift.amazonaws.com`. A port suffix is\n accepted and ignored. The bare cluster name (`my-cluster`) is not enough,\n because one name can exist in more than one account or region. A response\n returns the host in its normalized form, which is also accepted on input.\n\n The rule below also refuses an empty value. It is not `required`, because\n `required` stops the other rules and its error does not say what to send.\nredshift_table.cluster.full_host // cluster must be the full host of the Redshift endpoint from the connection, for example my-cluster.abc123.eu-west-1.redshift.amazonaws.com\n","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.17.redshiftTable.cluster","typeLabel":"string"}},"title":"redshift_table","required":["database","schema","table"],"additionalProperties":false,"description":"Redshift table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.17.redshiftTable","typeLabel":"redshift_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.17.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.17","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["savedView"],"properties":{"savedView":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Saved view id (client-supplied UUID) that identifies the saved view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.18.savedView.id","typeLabel":"string\u003cuuid>"}},"title":"saved_view","required":["id"],"additionalProperties":false,"description":"Saved view identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.18.savedView","typeLabel":"saved_view · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.18.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.18","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["snowflakeTable"],"properties":{"snowflakeTable":{"type":"object","properties":{"account":{"type":"string","description":"Snowflake account","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.19.snowflakeTable.account","typeLabel":"string"},"database":{"type":"string","description":"Snowflake database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.19.snowflakeTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Snowflake schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.19.snowflakeTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Snowflake table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.19.snowflakeTable.table","typeLabel":"string"}},"title":"snowflake_table","required":["account","database","schema","table"],"additionalProperties":false,"description":"Snowflake table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.19.snowflakeTable","typeLabel":"snowflake_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.19.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.19","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["sqlMeshAudit"],"properties":{"sqlMeshAudit":{"type":"object","properties":{"integrationId":{"type":"string","format":"uuid","description":"Coalesce Quality integration_id that identifies the dbt Core project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.20.sqlMeshAudit.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.20.sqlMeshAudit.fqn","typeLabel":"string"},"auditId":{"type":"string","description":"Identifier of the audit","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.20.sqlMeshAudit.auditId","typeLabel":"string"}},"title":"sql_mesh_audit","required":["integrationId","fqn","auditId"],"additionalProperties":false,"description":"SQLMesh Audit identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.20.sqlMeshAudit","typeLabel":"sql_mesh_audit · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.20.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.20","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["sqlMeshModel"],"properties":{"sqlMeshModel":{"type":"object","properties":{"integrationId":{"type":"string","format":"uuid","description":"Coalesce Quality integration_id that identifies the dbt Core project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.21.sqlMeshModel.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.21.sqlMeshModel.fqn","typeLabel":"string"}},"title":"sql_mesh_model","required":["integrationId","fqn"],"additionalProperties":false,"description":"SQLMesh Model identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.21.sqlMeshModel","typeLabel":"sql_mesh_model · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.21.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.21","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["synqPath"],"properties":{"synqPath":{"type":"object","properties":{"path":{"type":"string","description":"Coalesce Quality path that identifies the Coalesce Quality entity, needs to be one of supported paths","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.22.synqPath.path","typeLabel":"string"}},"title":"synq_path","required":["path"],"additionalProperties":false,"description":"SynqPath identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.22.synqPath","typeLabel":"synq_path · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.22.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.22","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["trinoTable"],"properties":{"trinoTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the Trino instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.23.trinoTable.host","typeLabel":"string"},"catalog":{"type":"string","description":"Trino catalog","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.23.trinoTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Trino schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.23.trinoTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Trino table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.23.trinoTable.table","typeLabel":"string"}},"title":"trino_table","required":["host","catalog","schema","table"],"additionalProperties":false,"description":"Trino table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.23.trinoTable","typeLabel":"trino_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.23.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId.oneOf.23","typeLabel":"entity_id · object"}],"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.entityId","typeLabel":"entity_id · object"},"changeId":{"type":"string","title":"change_id","description":"Internal identifier of the change event.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.changeId","typeLabel":"string"},"changeDetectedAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"Timestamp when the change was detected by Coalesce Quality.","title":"change_detected_at","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.changeDetectedAt","typeLabel":"string\u003cdate-time>"},"gitCommit":{"type":"object","properties":{"hash":{"type":"string","description":"Hash of the Git commit.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.hash","typeLabel":"string"},"author":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Git user.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.author.name","typeLabel":"string"},"email":{"type":"string","description":"Email address of the Git user.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.author.email","typeLabel":"string"},"createdAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"Timestamp when the signature was created.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.author.createdAt","typeLabel":"string\u003cdate-time>"}},"title":"Signature","additionalProperties":false,"description":"Author information of the Git commit.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.author","typeLabel":"Signature · object"},"committer":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Git user.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.committer.name","typeLabel":"string"},"email":{"type":"string","description":"Email address of the Git user.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.committer.email","typeLabel":"string"},"createdAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"Timestamp when the signature was created.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.committer.createdAt","typeLabel":"string\u003cdate-time>"}},"title":"Signature","additionalProperties":false,"description":"Committer information of the Git commit.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.committer","typeLabel":"Signature · object"},"message":{"type":"string","description":"Commit message describing the changes.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.message","typeLabel":"string"},"shortMessage":{"type":"string","description":"First non-empty line of the message","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.shortMessage","typeLabel":"string"},"fileChangeStats":{"type":"object","additionalProperties":{"type":"object","properties":{"additions":{"type":"integer","format":"int32","description":"Number of lines added to the file.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.fileChangeStats.additionalProperties.additions","typeLabel":"integer\u003cint32>"},"deletions":{"type":"integer","format":"int32","description":"Number of lines removed from the file.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.fileChangeStats.additionalProperties.deletions","typeLabel":"integer\u003cint32>"}},"title":"value","additionalProperties":false,"description":"ChangeStats contains statistics about changes made to a single file.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.fileChangeStats.additionalProperties","typeLabel":"value · object"},"description":"Statistics about changes made to each modified file.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.fileChangeStats","typeLabel":"object"},"changedFilePaths":{"type":"array","items":{"type":"string","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.changedFilePaths.items.[INDEX]","typeLabel":"string"},"description":"All file paths changed in this commit (complete list).\n For commits with many files, this may be a large array.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.changedFilePaths","typeLabel":"string[]"},"relatedChangedFilePaths":{"type":"array","items":{"type":"string","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.relatedChangedFilePaths.items.[INDEX]","typeLabel":"string"},"description":"File paths that directly affect the queried entity (filtered subset of changed_file_paths).\n When querying changes for a specific entity (e.g., dbt model \"customers\"), this contains\n only the files that directly impact that entity (e.g., \"models/customers.sql\", \"models/staging/stg_customers.sql\").\n Empty when retrieving a change by change_id directly (not scoped to a specific entity).\n Empty when it's impossible to determine entity-specific file mappings.\n Example: If a commit changes 50 files but only 2 affect your queried dbt model, this contains those 2 files.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.relatedChangedFilePaths","typeLabel":"string[]"},"branchName":{"oneOf":[{"type":"string","description":"Name of the branch associated with the commit, if any.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.branchName.oneOf.0","typeLabel":"string"},{"type":"null","description":"Name of the branch associated with the commit, if any.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.branchName.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.branchName","typeLabel":"string | null"},"cloneUrl":{"type":"string","description":"URL of the Git repository where the commit was made.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.cloneUrl","typeLabel":"string"},"webCommitUrl":{"oneOf":[{"type":"string","description":"URL to e.g. Github which opens the Commit","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.webCommitUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"URL to e.g. Github which opens the Commit","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.webCommitUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.webCommitUrl","typeLabel":"string | null"},"directoryChanges":{"type":"array","items":{"type":"object","properties":{"directoryPath":{"type":"string","description":"Path of the directory.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.directoryChanges.items.[INDEX].directoryPath","typeLabel":"string"},"filesChanged":{"type":"integer","format":"int32","description":"Number of files changed in this directory (excluding subdirectories).","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.directoryChanges.items.[INDEX].filesChanged","typeLabel":"integer\u003cint32>"},"totalLinesAdded":{"type":"integer","format":"int32","description":"Total lines added in this directory (excluding subdirectories).","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.directoryChanges.items.[INDEX].totalLinesAdded","typeLabel":"integer\u003cint32>"},"totalLinesRemoved":{"type":"integer","format":"int32","description":"Total lines removed in this directory (excluding subdirectories).","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.directoryChanges.items.[INDEX].totalLinesRemoved","typeLabel":"integer\u003cint32>"},"subdirs":{"type":"array","items":{"$circularRef":"88900c54-2675-41ec-96ca-c22b2459a7ed"},"description":"Subdirectory summaries.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.directoryChanges.items.[INDEX].subdirs","typeLabel":"array"},"topFiles":{"type":"array","items":{"type":"object","properties":{"filePath":{"type":"string","description":"Path of the file relative to the directory.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.directoryChanges.items.[INDEX].topFiles.items.[INDEX].filePath","typeLabel":"string"},"linesAdded":{"type":"integer","format":"int32","description":"Number of lines added.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.directoryChanges.items.[INDEX].topFiles.items.[INDEX].linesAdded","typeLabel":"integer\u003cint32>"},"linesRemoved":{"type":"integer","format":"int32","description":"Number of lines removed.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.directoryChanges.items.[INDEX].topFiles.items.[INDEX].linesRemoved","typeLabel":"integer\u003cint32>"}},"title":"TopFileChange","additionalProperties":false,"description":"TopFileChange represents a significant file change within a directory.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.directoryChanges.items.[INDEX].topFiles.items.[INDEX]","typeLabel":"TopFileChange · object"},"description":"Top 3-5 most significant file changes in this directory.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.directoryChanges.items.[INDEX].topFiles","typeLabel":"TopFileChange · object[]"}},"title":"DirectoryChangeSummary","additionalProperties":false,"description":"DirectoryChangeSummary provides hierarchical directory-level statistics.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.directoryChanges.items.[INDEX]","typeLabel":"DirectoryChangeSummary · object"},"description":"Hierarchical directory summaries showing where changes occurred.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.directoryChanges","typeLabel":"DirectoryChangeSummary · object[]"},"changesByFileType":{"type":"object","additionalProperties":{"type":"object","properties":{"fileExtension":{"type":"string","description":"File extension (e.g., \".sql\", \".py\", \".yml\").","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.changesByFileType.additionalProperties.fileExtension","typeLabel":"string"},"filesCount":{"type":"integer","format":"int32","description":"Number of files with this extension that were changed.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.changesByFileType.additionalProperties.filesCount","typeLabel":"integer\u003cint32>"},"totalLinesAdded":{"type":"integer","format":"int32","description":"Total lines added across all files of this type.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.changesByFileType.additionalProperties.totalLinesAdded","typeLabel":"integer\u003cint32>"},"totalLinesRemoved":{"type":"integer","format":"int32","description":"Total lines removed across all files of this type.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.changesByFileType.additionalProperties.totalLinesRemoved","typeLabel":"integer\u003cint32>"},"exampleFiles":{"type":"array","items":{"type":"string","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.changesByFileType.additionalProperties.exampleFiles.items.[INDEX]","typeLabel":"string"},"description":"Example file paths (up to 5) showing where these changes occurred.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.changesByFileType.additionalProperties.exampleFiles","typeLabel":"string[]"},"commonDirectories":{"type":"array","items":{"type":"string","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.changesByFileType.additionalProperties.commonDirectories.items.[INDEX]","typeLabel":"string"},"description":"Common directories where files of this type were modified.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.changesByFileType.additionalProperties.commonDirectories","typeLabel":"string[]"}},"title":"value","additionalProperties":false,"description":"FileTypeChangeSummary aggregates changes by file type/extension.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.changesByFileType.additionalProperties","typeLabel":"value · object"},"description":"Aggregated statistics by file type/extension.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.changesByFileType","typeLabel":"object"},"statistics":{"oneOf":[{"type":"object","properties":{"totalFiles":{"type":"integer","format":"int32","description":"Total number of files changed.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.statistics.oneOf.0.totalFiles","typeLabel":"integer\u003cint32>"},"totalLinesAdded":{"type":"integer","format":"int32","description":"Total lines added across all files.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.statistics.oneOf.0.totalLinesAdded","typeLabel":"integer\u003cint32>"},"totalLinesRemoved":{"type":"integer","format":"int32","description":"Total lines removed across all files.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.statistics.oneOf.0.totalLinesRemoved","typeLabel":"integer\u003cint32>"},"distribution":{"type":"object","properties":{"filesWithSmallChanges":{"type":"integer","format":"int32","description":"Files with fewer than 10 lines changed.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.statistics.oneOf.0.distribution.filesWithSmallChanges","typeLabel":"integer\u003cint32>"},"filesWithMediumChanges":{"type":"integer","format":"int32","description":"Files with 10-100 lines changed.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.statistics.oneOf.0.distribution.filesWithMediumChanges","typeLabel":"integer\u003cint32>"},"filesWithLargeChanges":{"type":"integer","format":"int32","description":"Files with more than 100 lines changed.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.statistics.oneOf.0.distribution.filesWithLargeChanges","typeLabel":"integer\u003cint32>"},"filesAdded":{"type":"integer","format":"int32","description":"Files that were newly added.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.statistics.oneOf.0.distribution.filesAdded","typeLabel":"integer\u003cint32>"},"filesModified":{"type":"integer","format":"int32","description":"Files that were modified.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.statistics.oneOf.0.distribution.filesModified","typeLabel":"integer\u003cint32>"},"filesDeleted":{"type":"integer","format":"int32","description":"Files that were deleted.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.statistics.oneOf.0.distribution.filesDeleted","typeLabel":"integer\u003cint32>"}},"title":"FileChangeDistribution","additionalProperties":false,"description":"Distribution of changes by magnitude.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.statistics.oneOf.0.distribution","typeLabel":"FileChangeDistribution · object"},"topChanges":{"type":"array","items":{"type":"object","properties":{"filePath":{"type":"string","description":"Path of the file.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.statistics.oneOf.0.topChanges.items.[INDEX].filePath","typeLabel":"string"},"linesAdded":{"type":"integer","format":"int32","description":"Lines added.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.statistics.oneOf.0.topChanges.items.[INDEX].linesAdded","typeLabel":"integer\u003cint32>"},"linesRemoved":{"type":"integer","format":"int32","description":"Lines removed.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.statistics.oneOf.0.topChanges.items.[INDEX].linesRemoved","typeLabel":"integer\u003cint32>"},"totalLinesChanged":{"type":"integer","format":"int32","description":"Total lines changed (added + removed).","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.statistics.oneOf.0.topChanges.items.[INDEX].totalLinesChanged","typeLabel":"integer\u003cint32>"}},"title":"TopChange","additionalProperties":false,"description":"TopChange represents one of the most significant file changes.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.statistics.oneOf.0.topChanges.items.[INDEX]","typeLabel":"TopChange · object"},"description":"Top 10 files by total lines changed.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.statistics.oneOf.0.topChanges","typeLabel":"TopChange · object[]"}},"title":"ChangeStatistics","additionalProperties":false,"description":"Overall statistical summary of the commit.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.statistics.oneOf.0","typeLabel":"ChangeStatistics · object"},{"type":"null","properties":{"totalFiles":{"type":"integer","format":"int32","description":"Total number of files changed."},"totalLinesAdded":{"type":"integer","format":"int32","description":"Total lines added across all files."},"totalLinesRemoved":{"type":"integer","format":"int32","description":"Total lines removed across all files."},"distribution":{"type":"object","properties":{"filesWithSmallChanges":{"type":"integer","format":"int32","description":"Files with fewer than 10 lines changed."},"filesWithMediumChanges":{"type":"integer","format":"int32","description":"Files with 10-100 lines changed."},"filesWithLargeChanges":{"type":"integer","format":"int32","description":"Files with more than 100 lines changed."},"filesAdded":{"type":"integer","format":"int32","description":"Files that were newly added."},"filesModified":{"type":"integer","format":"int32","description":"Files that were modified."},"filesDeleted":{"type":"integer","format":"int32","description":"Files that were deleted."}},"title":"FileChangeDistribution","additionalProperties":false,"description":"Distribution of changes by magnitude."},"topChanges":{"type":"array","items":{"type":"object","properties":{"filePath":{"type":"string","description":"Path of the file."},"linesAdded":{"type":"integer","format":"int32","description":"Lines added."},"linesRemoved":{"type":"integer","format":"int32","description":"Lines removed."},"totalLinesChanged":{"type":"integer","format":"int32","description":"Total lines changed (added + removed)."}},"title":"TopChange","additionalProperties":false,"description":"TopChange represents one of the most significant file changes."},"description":"Top 10 files by total lines changed."}},"title":"ChangeStatistics","additionalProperties":false,"description":"Overall statistical summary of the commit.","uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.statistics.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit.statistics","typeLabel":"ChangeStatistics · object | null"}},"title":"git_commit","additionalProperties":false,"description":"GitCommitChange represents a change detected in a Git repository.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.gitCommit","typeLabel":"git_commit · object"},"entitySynqPath":{"oneOf":[{"type":"string","title":"entity_synq_path","description":"Coalesce Quality path representing entity on which the change was detected when available,","uniqueKey":"changes.items.[INDEX].oneOf.0.entitySynqPath.oneOf.0","typeLabel":"string"},{"type":"null","title":"entity_synq_path","description":"Coalesce Quality path representing entity on which the change was detected when available,","uniqueKey":"changes.items.[INDEX].oneOf.0.entitySynqPath.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.items.[INDEX].oneOf.0.entitySynqPath","typeLabel":"string | null"},"affectedEntities":{"type":"array","items":{"oneOf":[{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["airflowDag"],"properties":{"airflowDag":{"type":"object","properties":{"integrationId":{"type":"string","description":"Coalesce Quality integration_id that identifies the Airflow instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.0.airflowDag.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.0.airflowDag.dagId","typeLabel":"string"}},"title":"airflow_dag","required":["integrationId","dagId"],"additionalProperties":false,"description":"Airflow DAG identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.0.airflowDag","typeLabel":"airflow_dag · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.0.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.0","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["airflowTask"],"properties":{"airflowTask":{"type":"object","properties":{"integrationId":{"type":"string","description":"Coalesce Quality integration_id that identifies the Airflow instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.1.airflowTask.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.1.airflowTask.dagId","typeLabel":"string"},"taskId":{"type":"string","description":"Airflow task_id that identifies the task within the DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.1.airflowTask.taskId","typeLabel":"string"}},"title":"airflow_task","required":["integrationId","dagId","taskId"],"additionalProperties":false,"description":"Airflow task identifier within a given DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.1.airflowTask","typeLabel":"airflow_task · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.1.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.1","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["athenaTable"],"properties":{"athenaTable":{"type":"object","properties":{"instance":{"type":"string","description":"AWS account and region the Athena workgroup runs in, formatted as\n \"\u003caccount-id>.\u003cregion>\" (e.g. \"123456789012.eu-west-1\"). Auto-derived\n from sts:GetCallerIdentity at integration setup time.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.2.athenaTable.instance","typeLabel":"string"},"catalog":{"type":"string","description":"Glue Data Catalog name. Almost always \"AwsDataCatalog\" — the default\n catalog for Athena unless the customer registered a federated catalog.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.2.athenaTable.catalog","typeLabel":"string"},"database":{"type":"string","description":"Glue database (the namespace users typically filter on).","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.2.athenaTable.database","typeLabel":"string"},"table":{"type":"string","description":"Glue table or view name.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.2.athenaTable.table","typeLabel":"string"}},"title":"athena_table","required":["instance","catalog","database","table"],"additionalProperties":false,"description":"Amazon Athena (Glue) table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.2.athenaTable","typeLabel":"athena_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.2.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.2","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["bigqueryTable"],"properties":{"bigqueryTable":{"type":"object","properties":{"project":{"type":"string","description":"BigQuery project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.3.bigqueryTable.project","typeLabel":"string"},"dataset":{"type":"string","description":"BigQuery dataset id","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.3.bigqueryTable.dataset","typeLabel":"string"},"table":{"type":"string","description":"BigQuery table name","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.3.bigqueryTable.table","typeLabel":"string"}},"title":"bigquery_table","required":["project","dataset","table"],"additionalProperties":false,"description":"BigQuery table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.3.bigqueryTable","typeLabel":"bigquery_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.3.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.3","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["clickhouseTable"],"properties":{"clickhouseTable":{"type":"object","properties":{"host":{"type":"string","description":"Clickhouse hostname without port","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.4.clickhouseTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Clickhouse database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.4.clickhouseTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Clickhouse table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.4.clickhouseTable.table","typeLabel":"string"}},"title":"clickhouse_table","required":["host","schema","table"],"additionalProperties":false,"description":"Clickhouse table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.4.clickhouseTable","typeLabel":"clickhouse_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.4.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.4","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["custom"],"properties":{"custom":{"type":"object","properties":{"id":{"type":"string","description":"Id that identifies the custom entity\n The Id should be unique within the custom entity Identifier.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.5.custom.id","typeLabel":"string"}},"title":"custom","required":["id"],"additionalProperties":false,"description":"Custom identifier to be used with all custom created entities","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.5.custom","typeLabel":"custom · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.5.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.5","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["databricksTable"],"properties":{"databricksTable":{"type":"object","properties":{"workspace":{"type":"string","description":"URL of Databricks workspace","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.6.databricksTable.workspace","typeLabel":"string"},"catalog":{"type":"string","description":"Databricks catalog","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.6.databricksTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Databricks schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.6.databricksTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Databricks table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.6.databricksTable.table","typeLabel":"string"}},"title":"databricks_table","required":["workspace","catalog","schema","table"],"additionalProperties":false,"description":"Databricks table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.6.databricksTable","typeLabel":"databricks_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.6.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.6","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["dataproduct"],"properties":{"dataproduct":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Dataproduct id that identifies the Dataproduct","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.7.dataproduct.id","typeLabel":"string\u003cuuid>"}},"title":"dataproduct","required":["id"],"additionalProperties":false,"description":"Dataproduct identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.7.dataproduct","typeLabel":"dataproduct · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.7.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.7","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["db2Table"],"properties":{"db2Table":{"type":"object","properties":{"host":{"type":"string","description":"Host name of the Db2 server","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.8.db2Table.host","typeLabel":"string"},"database":{"type":"string","description":"Database name or alias, as in `CONNECT TO \u003cdatabase>`","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.8.db2Table.database","typeLabel":"string"},"schema":{"type":"string","description":"Db2 schema (e.g. \"DB2INST1\")","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.8.db2Table.schema","typeLabel":"string"},"table":{"type":"string","description":"Db2 table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.8.db2Table.table","typeLabel":"string"}},"title":"db2_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"IBM Db2 LUW table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.8.db2Table","typeLabel":"db2_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.8.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.8","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["dbtCloudNode"],"properties":{"dbtCloudNode":{"type":"object","properties":{"projectId":{"type":"string","description":"Your dbt Cloud project id","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.9.dbtCloudNode.projectId","typeLabel":"string"},"nodeId":{"type":"string","description":"Dbt node_id that identifies one of dbt DAG nodes (model, test, etc)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.9.dbtCloudNode.nodeId","typeLabel":"string"},"accountId":{"type":"string","description":"Your dbt Cloud account id","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.9.dbtCloudNode.accountId","typeLabel":"string"}},"title":"dbt_cloud_node","required":["projectId","nodeId"],"additionalProperties":false,"description":"Dbt node that identifies one of dbt DAG nodes (model, test, etc) in dbt Cloud project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.9.dbtCloudNode","typeLabel":"dbt_cloud_node · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.9.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.9","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["dbtCoreNode"],"properties":{"dbtCoreNode":{"type":"object","properties":{"integrationId":{"type":"string","description":"Opaque identifier of the dbt Core project. Usually the Coalesce Quality\n integration id (a UUID), but may also be the dbt project name from\n manifest.json when the integration is configured to identify assets by\n project name. Treat it as an opaque string, not a UUID.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.10.dbtCoreNode.integrationId","typeLabel":"string"},"nodeId":{"type":"string","description":"Dbt node_id that identifies one of dbt DAG nodes (model, test, etc)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.10.dbtCoreNode.nodeId","typeLabel":"string"}},"title":"dbt_core_node","required":["integrationId","nodeId"],"additionalProperties":false,"description":"Dbt node that identifies one of dbt DAG nodes (model, test, etc) in dbt Core project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.10.dbtCoreNode","typeLabel":"dbt_core_node · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.10.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.10","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["fabricTable"],"properties":{"fabricTable":{"type":"object","properties":{"instance":{"type":"string","description":"Workspace SQL analytics endpoint host, e.g.\n \"\u003cworkspace-id>.datawarehouse.fabric.microsoft.com\".","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.11.fabricTable.instance","typeLabel":"string"},"database":{"type":"string","description":"Fabric warehouse / lakehouse (database).","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.11.fabricTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Schema within the database.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.11.fabricTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Table or view name.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.11.fabricTable.table","typeLabel":"string"},"workspaceId":{"type":"string","description":"Fabric workspace GUID, decoded from the endpoint host in `instance`.\n Optional and informational: the table is addressed by\n instance/database/schema/table, so leave it empty if you don't have it —\n it does not affect how the identifier resolves.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.11.fabricTable.workspaceId","typeLabel":"string"},"tenantId":{"type":"string","description":"Entra (Azure AD) tenant GUID, decoded from the endpoint host in `instance`.\n Optional and informational, like workspace_id.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.11.fabricTable.tenantId","typeLabel":"string"}},"title":"fabric_table","required":["instance","database","schema","table"],"additionalProperties":false,"description":"Microsoft Fabric table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.11.fabricTable","typeLabel":"fabric_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.11.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.11","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["monitor"],"properties":{"monitor":{"type":"object","properties":{"monitoredId":{"$circularRef":"9aa48dcc-3dc1-40e9-bf59-0a21c9499772","description":"Identifier of the monitored entity","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.12.monitor.monitoredId","typeLabel":"any"},"monitorId":{"type":"string","description":"Identifier of the monitor","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.12.monitor.monitorId","typeLabel":"string"},"segment":{"oneOf":[{"type":"string","description":"Optional monitor segmentation identifier","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.12.monitor.segment.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional monitor segmentation identifier","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.12.monitor.segment.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.12.monitor.segment","typeLabel":"string | null"},"integrationId":{"oneOf":[{"type":"string","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.12.monitor.integrationId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.12.monitor.integrationId.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.12.monitor.integrationId","typeLabel":"string | null"}},"title":"monitor","required":["monitoredId","monitorId"],"additionalProperties":false,"description":"Monitor identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.12.monitor","typeLabel":"monitor · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.12.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.12","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["mssqlTable"],"properties":{"mssqlTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the SQL Server instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.13.mssqlTable.host","typeLabel":"string"},"database":{"type":"string","description":"SQL Server database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.13.mssqlTable.database","typeLabel":"string"},"schema":{"type":"string","description":"SQL Server schema (e.g. \"dbo\")","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.13.mssqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"SQL Server table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.13.mssqlTable.table","typeLabel":"string"}},"title":"mssql_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"SQL Server table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.13.mssqlTable","typeLabel":"mssql_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.13.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.13","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["mysqlTable"],"properties":{"mysqlTable":{"type":"object","properties":{"host":{"type":"string","description":"Mysql hostname without port","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.14.mysqlTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Mysql database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.14.mysqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Mysql table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.14.mysqlTable.table","typeLabel":"string"}},"title":"mysql_table","required":["host","schema","table"],"additionalProperties":false,"description":"Mysql table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.14.mysqlTable","typeLabel":"mysql_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.14.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.14","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["oracleTable"],"properties":{"oracleTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the Oracle instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.15.oracleTable.host","typeLabel":"string"},"serviceName":{"type":"string","description":"Oracle service name (PDB)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.15.oracleTable.serviceName","typeLabel":"string"},"schema":{"type":"string","description":"Oracle schema (= owning user)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.15.oracleTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Oracle table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.15.oracleTable.table","typeLabel":"string"}},"title":"oracle_table","required":["host","serviceName","schema","table"],"additionalProperties":false,"description":"Oracle table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.15.oracleTable","typeLabel":"oracle_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.15.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.15","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["postgresTable"],"properties":{"postgresTable":{"type":"object","properties":{"host":{"type":"string","description":"Postgres hostname without port","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.16.postgresTable.host","typeLabel":"string"},"database":{"type":"string","description":"Postgres database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.16.postgresTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Postgres schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.16.postgresTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Postgres table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.16.postgresTable.table","typeLabel":"string"}},"title":"postgres_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"Postgres table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.16.postgresTable","typeLabel":"postgres_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.16.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.16","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["redshiftTable"],"properties":{"redshiftTable":{"type":"object","properties":{"database":{"type":"string","description":"Redshift database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.17.redshiftTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Redshift schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.17.redshiftTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Redshift table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.17.redshiftTable.table","typeLabel":"string"},"cluster":{"type":"string","description":"Required. Host of the Redshift endpoint, as in the connection, for example\n `my-cluster.abc123.eu-west-1.redshift.amazonaws.com`. A port suffix is\n accepted and ignored. The bare cluster name (`my-cluster`) is not enough,\n because one name can exist in more than one account or region. A response\n returns the host in its normalized form, which is also accepted on input.\n\n The rule below also refuses an empty value. It is not `required`, because\n `required` stops the other rules and its error does not say what to send.\nredshift_table.cluster.full_host // cluster must be the full host of the Redshift endpoint from the connection, for example my-cluster.abc123.eu-west-1.redshift.amazonaws.com\n","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.17.redshiftTable.cluster","typeLabel":"string"}},"title":"redshift_table","required":["database","schema","table"],"additionalProperties":false,"description":"Redshift table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.17.redshiftTable","typeLabel":"redshift_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.17.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.17","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["savedView"],"properties":{"savedView":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Saved view id (client-supplied UUID) that identifies the saved view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.18.savedView.id","typeLabel":"string\u003cuuid>"}},"title":"saved_view","required":["id"],"additionalProperties":false,"description":"Saved view identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.18.savedView","typeLabel":"saved_view · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.18.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.18","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["snowflakeTable"],"properties":{"snowflakeTable":{"type":"object","properties":{"account":{"type":"string","description":"Snowflake account","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.19.snowflakeTable.account","typeLabel":"string"},"database":{"type":"string","description":"Snowflake database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.19.snowflakeTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Snowflake schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.19.snowflakeTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Snowflake table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.19.snowflakeTable.table","typeLabel":"string"}},"title":"snowflake_table","required":["account","database","schema","table"],"additionalProperties":false,"description":"Snowflake table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.19.snowflakeTable","typeLabel":"snowflake_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.19.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.19","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["sqlMeshAudit"],"properties":{"sqlMeshAudit":{"type":"object","properties":{"integrationId":{"type":"string","format":"uuid","description":"Coalesce Quality integration_id that identifies the dbt Core project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.20.sqlMeshAudit.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.20.sqlMeshAudit.fqn","typeLabel":"string"},"auditId":{"type":"string","description":"Identifier of the audit","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.20.sqlMeshAudit.auditId","typeLabel":"string"}},"title":"sql_mesh_audit","required":["integrationId","fqn","auditId"],"additionalProperties":false,"description":"SQLMesh Audit identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.20.sqlMeshAudit","typeLabel":"sql_mesh_audit · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.20.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.20","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["sqlMeshModel"],"properties":{"sqlMeshModel":{"type":"object","properties":{"integrationId":{"type":"string","format":"uuid","description":"Coalesce Quality integration_id that identifies the dbt Core project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.21.sqlMeshModel.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.21.sqlMeshModel.fqn","typeLabel":"string"}},"title":"sql_mesh_model","required":["integrationId","fqn"],"additionalProperties":false,"description":"SQLMesh Model identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.21.sqlMeshModel","typeLabel":"sql_mesh_model · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.21.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.21","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["synqPath"],"properties":{"synqPath":{"type":"object","properties":{"path":{"type":"string","description":"Coalesce Quality path that identifies the Coalesce Quality entity, needs to be one of supported paths","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.22.synqPath.path","typeLabel":"string"}},"title":"synq_path","required":["path"],"additionalProperties":false,"description":"SynqPath identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.22.synqPath","typeLabel":"synq_path · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.22.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.22","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["trinoTable"],"properties":{"trinoTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the Trino instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.23.trinoTable.host","typeLabel":"string"},"catalog":{"type":"string","description":"Trino catalog","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.23.trinoTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Trino schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.23.trinoTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Trino table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.23.trinoTable.table","typeLabel":"string"}},"title":"trino_table","required":["host","catalog","schema","table"],"additionalProperties":false,"description":"Trino table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.23.trinoTable","typeLabel":"trino_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.23.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX].oneOf.23","typeLabel":"Identifier · object"}],"uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities.items.[INDEX]","typeLabel":"Identifier · object"},"title":"affected_entities","description":"Identifiers of entities directly affected by this change.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntities","typeLabel":"Identifier · object[]"},"affectedEntitiesSynqPaths":{"type":"array","items":{"type":"string","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntitiesSynqPaths.items.[INDEX]","typeLabel":"string"},"title":"affected_entities_synq_paths","description":"Coalesce Quality paths of entities directly affected by this change.","uniqueKey":"changes.items.[INDEX].oneOf.0.affectedEntitiesSynqPaths","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.0","typeLabel":"EntityChange · object"},{"type":"object","title":"EntityChange","description":"EntityChange represents a change detected in an entity within the system.\n It tracks modifications to entities like Git commits, SQL definitions, and database schemas.","required":["entityId","changeId","changeDetectedAt","schema"],"properties":{"entityId":{"oneOf":[{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["airflowDag"],"properties":{"airflowDag":{"type":"object","properties":{"integrationId":{"type":"string","description":"Coalesce Quality integration_id that identifies the Airflow instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.0.airflowDag.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.0.airflowDag.dagId","typeLabel":"string"}},"title":"airflow_dag","required":["integrationId","dagId"],"additionalProperties":false,"description":"Airflow DAG identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.0.airflowDag","typeLabel":"airflow_dag · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.0.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.0","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["airflowTask"],"properties":{"airflowTask":{"type":"object","properties":{"integrationId":{"type":"string","description":"Coalesce Quality integration_id that identifies the Airflow instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.1.airflowTask.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.1.airflowTask.dagId","typeLabel":"string"},"taskId":{"type":"string","description":"Airflow task_id that identifies the task within the DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.1.airflowTask.taskId","typeLabel":"string"}},"title":"airflow_task","required":["integrationId","dagId","taskId"],"additionalProperties":false,"description":"Airflow task identifier within a given DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.1.airflowTask","typeLabel":"airflow_task · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.1.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.1","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["athenaTable"],"properties":{"athenaTable":{"type":"object","properties":{"instance":{"type":"string","description":"AWS account and region the Athena workgroup runs in, formatted as\n \"\u003caccount-id>.\u003cregion>\" (e.g. \"123456789012.eu-west-1\"). Auto-derived\n from sts:GetCallerIdentity at integration setup time.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.2.athenaTable.instance","typeLabel":"string"},"catalog":{"type":"string","description":"Glue Data Catalog name. Almost always \"AwsDataCatalog\" — the default\n catalog for Athena unless the customer registered a federated catalog.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.2.athenaTable.catalog","typeLabel":"string"},"database":{"type":"string","description":"Glue database (the namespace users typically filter on).","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.2.athenaTable.database","typeLabel":"string"},"table":{"type":"string","description":"Glue table or view name.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.2.athenaTable.table","typeLabel":"string"}},"title":"athena_table","required":["instance","catalog","database","table"],"additionalProperties":false,"description":"Amazon Athena (Glue) table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.2.athenaTable","typeLabel":"athena_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.2.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.2","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["bigqueryTable"],"properties":{"bigqueryTable":{"type":"object","properties":{"project":{"type":"string","description":"BigQuery project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.3.bigqueryTable.project","typeLabel":"string"},"dataset":{"type":"string","description":"BigQuery dataset id","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.3.bigqueryTable.dataset","typeLabel":"string"},"table":{"type":"string","description":"BigQuery table name","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.3.bigqueryTable.table","typeLabel":"string"}},"title":"bigquery_table","required":["project","dataset","table"],"additionalProperties":false,"description":"BigQuery table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.3.bigqueryTable","typeLabel":"bigquery_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.3.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.3","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["clickhouseTable"],"properties":{"clickhouseTable":{"type":"object","properties":{"host":{"type":"string","description":"Clickhouse hostname without port","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.4.clickhouseTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Clickhouse database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.4.clickhouseTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Clickhouse table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.4.clickhouseTable.table","typeLabel":"string"}},"title":"clickhouse_table","required":["host","schema","table"],"additionalProperties":false,"description":"Clickhouse table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.4.clickhouseTable","typeLabel":"clickhouse_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.4.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.4","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["custom"],"properties":{"custom":{"type":"object","properties":{"id":{"type":"string","description":"Id that identifies the custom entity\n The Id should be unique within the custom entity Identifier.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.5.custom.id","typeLabel":"string"}},"title":"custom","required":["id"],"additionalProperties":false,"description":"Custom identifier to be used with all custom created entities","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.5.custom","typeLabel":"custom · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.5.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.5","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["databricksTable"],"properties":{"databricksTable":{"type":"object","properties":{"workspace":{"type":"string","description":"URL of Databricks workspace","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.6.databricksTable.workspace","typeLabel":"string"},"catalog":{"type":"string","description":"Databricks catalog","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.6.databricksTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Databricks schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.6.databricksTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Databricks table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.6.databricksTable.table","typeLabel":"string"}},"title":"databricks_table","required":["workspace","catalog","schema","table"],"additionalProperties":false,"description":"Databricks table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.6.databricksTable","typeLabel":"databricks_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.6.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.6","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["dataproduct"],"properties":{"dataproduct":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Dataproduct id that identifies the Dataproduct","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.7.dataproduct.id","typeLabel":"string\u003cuuid>"}},"title":"dataproduct","required":["id"],"additionalProperties":false,"description":"Dataproduct identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.7.dataproduct","typeLabel":"dataproduct · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.7.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.7","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["db2Table"],"properties":{"db2Table":{"type":"object","properties":{"host":{"type":"string","description":"Host name of the Db2 server","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.8.db2Table.host","typeLabel":"string"},"database":{"type":"string","description":"Database name or alias, as in `CONNECT TO \u003cdatabase>`","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.8.db2Table.database","typeLabel":"string"},"schema":{"type":"string","description":"Db2 schema (e.g. \"DB2INST1\")","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.8.db2Table.schema","typeLabel":"string"},"table":{"type":"string","description":"Db2 table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.8.db2Table.table","typeLabel":"string"}},"title":"db2_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"IBM Db2 LUW table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.8.db2Table","typeLabel":"db2_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.8.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.8","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["dbtCloudNode"],"properties":{"dbtCloudNode":{"type":"object","properties":{"projectId":{"type":"string","description":"Your dbt Cloud project id","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.9.dbtCloudNode.projectId","typeLabel":"string"},"nodeId":{"type":"string","description":"Dbt node_id that identifies one of dbt DAG nodes (model, test, etc)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.9.dbtCloudNode.nodeId","typeLabel":"string"},"accountId":{"type":"string","description":"Your dbt Cloud account id","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.9.dbtCloudNode.accountId","typeLabel":"string"}},"title":"dbt_cloud_node","required":["projectId","nodeId"],"additionalProperties":false,"description":"Dbt node that identifies one of dbt DAG nodes (model, test, etc) in dbt Cloud project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.9.dbtCloudNode","typeLabel":"dbt_cloud_node · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.9.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.9","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["dbtCoreNode"],"properties":{"dbtCoreNode":{"type":"object","properties":{"integrationId":{"type":"string","description":"Opaque identifier of the dbt Core project. Usually the Coalesce Quality\n integration id (a UUID), but may also be the dbt project name from\n manifest.json when the integration is configured to identify assets by\n project name. Treat it as an opaque string, not a UUID.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.10.dbtCoreNode.integrationId","typeLabel":"string"},"nodeId":{"type":"string","description":"Dbt node_id that identifies one of dbt DAG nodes (model, test, etc)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.10.dbtCoreNode.nodeId","typeLabel":"string"}},"title":"dbt_core_node","required":["integrationId","nodeId"],"additionalProperties":false,"description":"Dbt node that identifies one of dbt DAG nodes (model, test, etc) in dbt Core project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.10.dbtCoreNode","typeLabel":"dbt_core_node · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.10.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.10","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["fabricTable"],"properties":{"fabricTable":{"type":"object","properties":{"instance":{"type":"string","description":"Workspace SQL analytics endpoint host, e.g.\n \"\u003cworkspace-id>.datawarehouse.fabric.microsoft.com\".","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.11.fabricTable.instance","typeLabel":"string"},"database":{"type":"string","description":"Fabric warehouse / lakehouse (database).","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.11.fabricTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Schema within the database.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.11.fabricTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Table or view name.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.11.fabricTable.table","typeLabel":"string"},"workspaceId":{"type":"string","description":"Fabric workspace GUID, decoded from the endpoint host in `instance`.\n Optional and informational: the table is addressed by\n instance/database/schema/table, so leave it empty if you don't have it —\n it does not affect how the identifier resolves.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.11.fabricTable.workspaceId","typeLabel":"string"},"tenantId":{"type":"string","description":"Entra (Azure AD) tenant GUID, decoded from the endpoint host in `instance`.\n Optional and informational, like workspace_id.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.11.fabricTable.tenantId","typeLabel":"string"}},"title":"fabric_table","required":["instance","database","schema","table"],"additionalProperties":false,"description":"Microsoft Fabric table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.11.fabricTable","typeLabel":"fabric_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.11.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.11","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["monitor"],"properties":{"monitor":{"type":"object","properties":{"monitoredId":{"$circularRef":"9aa48dcc-3dc1-40e9-bf59-0a21c9499772","description":"Identifier of the monitored entity","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.12.monitor.monitoredId","typeLabel":"any"},"monitorId":{"type":"string","description":"Identifier of the monitor","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.12.monitor.monitorId","typeLabel":"string"},"segment":{"oneOf":[{"type":"string","description":"Optional monitor segmentation identifier","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.12.monitor.segment.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional monitor segmentation identifier","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.12.monitor.segment.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.12.monitor.segment","typeLabel":"string | null"},"integrationId":{"oneOf":[{"type":"string","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.12.monitor.integrationId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.12.monitor.integrationId.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.12.monitor.integrationId","typeLabel":"string | null"}},"title":"monitor","required":["monitoredId","monitorId"],"additionalProperties":false,"description":"Monitor identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.12.monitor","typeLabel":"monitor · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.12.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.12","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["mssqlTable"],"properties":{"mssqlTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the SQL Server instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.13.mssqlTable.host","typeLabel":"string"},"database":{"type":"string","description":"SQL Server database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.13.mssqlTable.database","typeLabel":"string"},"schema":{"type":"string","description":"SQL Server schema (e.g. \"dbo\")","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.13.mssqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"SQL Server table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.13.mssqlTable.table","typeLabel":"string"}},"title":"mssql_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"SQL Server table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.13.mssqlTable","typeLabel":"mssql_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.13.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.13","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["mysqlTable"],"properties":{"mysqlTable":{"type":"object","properties":{"host":{"type":"string","description":"Mysql hostname without port","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.14.mysqlTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Mysql database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.14.mysqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Mysql table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.14.mysqlTable.table","typeLabel":"string"}},"title":"mysql_table","required":["host","schema","table"],"additionalProperties":false,"description":"Mysql table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.14.mysqlTable","typeLabel":"mysql_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.14.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.14","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["oracleTable"],"properties":{"oracleTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the Oracle instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.15.oracleTable.host","typeLabel":"string"},"serviceName":{"type":"string","description":"Oracle service name (PDB)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.15.oracleTable.serviceName","typeLabel":"string"},"schema":{"type":"string","description":"Oracle schema (= owning user)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.15.oracleTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Oracle table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.15.oracleTable.table","typeLabel":"string"}},"title":"oracle_table","required":["host","serviceName","schema","table"],"additionalProperties":false,"description":"Oracle table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.15.oracleTable","typeLabel":"oracle_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.15.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.15","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["postgresTable"],"properties":{"postgresTable":{"type":"object","properties":{"host":{"type":"string","description":"Postgres hostname without port","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.16.postgresTable.host","typeLabel":"string"},"database":{"type":"string","description":"Postgres database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.16.postgresTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Postgres schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.16.postgresTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Postgres table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.16.postgresTable.table","typeLabel":"string"}},"title":"postgres_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"Postgres table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.16.postgresTable","typeLabel":"postgres_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.16.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.16","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["redshiftTable"],"properties":{"redshiftTable":{"type":"object","properties":{"database":{"type":"string","description":"Redshift database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.17.redshiftTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Redshift schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.17.redshiftTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Redshift table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.17.redshiftTable.table","typeLabel":"string"},"cluster":{"type":"string","description":"Required. Host of the Redshift endpoint, as in the connection, for example\n `my-cluster.abc123.eu-west-1.redshift.amazonaws.com`. A port suffix is\n accepted and ignored. The bare cluster name (`my-cluster`) is not enough,\n because one name can exist in more than one account or region. A response\n returns the host in its normalized form, which is also accepted on input.\n\n The rule below also refuses an empty value. It is not `required`, because\n `required` stops the other rules and its error does not say what to send.\nredshift_table.cluster.full_host // cluster must be the full host of the Redshift endpoint from the connection, for example my-cluster.abc123.eu-west-1.redshift.amazonaws.com\n","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.17.redshiftTable.cluster","typeLabel":"string"}},"title":"redshift_table","required":["database","schema","table"],"additionalProperties":false,"description":"Redshift table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.17.redshiftTable","typeLabel":"redshift_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.17.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.17","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["savedView"],"properties":{"savedView":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Saved view id (client-supplied UUID) that identifies the saved view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.18.savedView.id","typeLabel":"string\u003cuuid>"}},"title":"saved_view","required":["id"],"additionalProperties":false,"description":"Saved view identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.18.savedView","typeLabel":"saved_view · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.18.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.18","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["snowflakeTable"],"properties":{"snowflakeTable":{"type":"object","properties":{"account":{"type":"string","description":"Snowflake account","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.19.snowflakeTable.account","typeLabel":"string"},"database":{"type":"string","description":"Snowflake database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.19.snowflakeTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Snowflake schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.19.snowflakeTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Snowflake table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.19.snowflakeTable.table","typeLabel":"string"}},"title":"snowflake_table","required":["account","database","schema","table"],"additionalProperties":false,"description":"Snowflake table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.19.snowflakeTable","typeLabel":"snowflake_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.19.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.19","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["sqlMeshAudit"],"properties":{"sqlMeshAudit":{"type":"object","properties":{"integrationId":{"type":"string","format":"uuid","description":"Coalesce Quality integration_id that identifies the dbt Core project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.20.sqlMeshAudit.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.20.sqlMeshAudit.fqn","typeLabel":"string"},"auditId":{"type":"string","description":"Identifier of the audit","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.20.sqlMeshAudit.auditId","typeLabel":"string"}},"title":"sql_mesh_audit","required":["integrationId","fqn","auditId"],"additionalProperties":false,"description":"SQLMesh Audit identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.20.sqlMeshAudit","typeLabel":"sql_mesh_audit · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.20.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.20","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["sqlMeshModel"],"properties":{"sqlMeshModel":{"type":"object","properties":{"integrationId":{"type":"string","format":"uuid","description":"Coalesce Quality integration_id that identifies the dbt Core project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.21.sqlMeshModel.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.21.sqlMeshModel.fqn","typeLabel":"string"}},"title":"sql_mesh_model","required":["integrationId","fqn"],"additionalProperties":false,"description":"SQLMesh Model identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.21.sqlMeshModel","typeLabel":"sql_mesh_model · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.21.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.21","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["synqPath"],"properties":{"synqPath":{"type":"object","properties":{"path":{"type":"string","description":"Coalesce Quality path that identifies the Coalesce Quality entity, needs to be one of supported paths","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.22.synqPath.path","typeLabel":"string"}},"title":"synq_path","required":["path"],"additionalProperties":false,"description":"SynqPath identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.22.synqPath","typeLabel":"synq_path · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.22.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.22","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["trinoTable"],"properties":{"trinoTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the Trino instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.23.trinoTable.host","typeLabel":"string"},"catalog":{"type":"string","description":"Trino catalog","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.23.trinoTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Trino schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.23.trinoTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Trino table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.23.trinoTable.table","typeLabel":"string"}},"title":"trino_table","required":["host","catalog","schema","table"],"additionalProperties":false,"description":"Trino table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.23.trinoTable","typeLabel":"trino_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.23.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId.oneOf.23","typeLabel":"entity_id · object"}],"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.entityId","typeLabel":"entity_id · object"},"changeId":{"type":"string","title":"change_id","description":"Internal identifier of the change event.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.changeId","typeLabel":"string"},"changeDetectedAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"Timestamp when the change was detected by Coalesce Quality.","title":"change_detected_at","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.changeDetectedAt","typeLabel":"string\u003cdate-time>"},"schema":{"type":"object","properties":{"columnChanges":{"type":"array","items":{"oneOf":[{"type":"object","title":"column_addition","description":"SchemaColumnChange represents a specific change to a column in the schema.","required":["columnAddition"],"properties":{"columnAddition":{"type":"object","properties":{"columnId":{"type":"string","description":"Identifier of the new column. See ColumnRemovalChangeType.column_id.","uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.0.columnAddition.columnId","typeLabel":"string"},"nativeType":{"type":"string","description":"Data type of the new column.","uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.0.columnAddition.nativeType","typeLabel":"string"},"ordinalPosition":{"type":"integer","format":"int32","description":"Position where the column was added in the schema.","uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.0.columnAddition.ordinalPosition","typeLabel":"integer\u003cint32>"},"humanName":{"type":"string","description":"Name of the column as it appears in the source system. See ColumnRemovalChangeType.human_name.","uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.0.columnAddition.humanName","typeLabel":"string"}},"title":"column_addition","additionalProperties":false,"description":"ColumnAdditionChangeType represents the addition of a new column to the schema.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.0.columnAddition","typeLabel":"column_addition · object"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.0","typeLabel":"column_addition · object"},{"type":"object","title":"column_native_type","description":"SchemaColumnChange represents a specific change to a column in the schema.","required":["columnNativeType"],"properties":{"columnNativeType":{"type":"object","properties":{"columnId":{"type":"string","description":"Identifier of the modified column. See ColumnRemovalChangeType.column_id.","uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.1.columnNativeType.columnId","typeLabel":"string"},"previousNativeType":{"type":"string","description":"Previous data type of the column.","uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.1.columnNativeType.previousNativeType","typeLabel":"string"},"currentNativeType":{"type":"string","description":"New data type of the column.","uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.1.columnNativeType.currentNativeType","typeLabel":"string"},"humanName":{"type":"string","description":"Name of the column as it appears in the source system. See ColumnRemovalChangeType.human_name.","uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.1.columnNativeType.humanName","typeLabel":"string"},"ordinalPosition":{"type":"integer","format":"int32","description":"Position of the changed column in the current version of the schema.","uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.1.columnNativeType.ordinalPosition","typeLabel":"integer\u003cint32>"}},"title":"column_native_type","additionalProperties":false,"description":"ColumnNativeTypeChangeType represents a change in a column's data type.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.1.columnNativeType","typeLabel":"column_native_type · object"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.1","typeLabel":"column_native_type · object"},{"type":"object","title":"column_nullability","description":"SchemaColumnChange represents a specific change to a column in the schema.","required":["columnNullability"],"properties":{"columnNullability":{"type":"object","properties":{"columnId":{"type":"string","description":"Identifier of the modified column. See ColumnRemovalChangeType.column_id.","uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.2.columnNullability.columnId","typeLabel":"string"},"previousIsNullable":{"type":"boolean","description":"True when the column accepted NULL in the previous version, false when it was NOT NULL.","uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.2.columnNullability.previousIsNullable","typeLabel":"boolean"},"currentIsNullable":{"type":"boolean","description":"True when the column accepts NULL in the current version, false when it is NOT NULL.","uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.2.columnNullability.currentIsNullable","typeLabel":"boolean"},"humanName":{"type":"string","description":"Name of the column as it appears in the source system. See ColumnRemovalChangeType.human_name.","uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.2.columnNullability.humanName","typeLabel":"string"},"ordinalPosition":{"type":"integer","format":"int32","description":"Position of the changed column in the current version of the schema.","uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.2.columnNullability.ordinalPosition","typeLabel":"integer\u003cint32>"}},"title":"column_nullability","additionalProperties":false,"description":"ColumnNullabilityChangeType represents a change in whether a column accepts NULL. Reported only\n where both versions of the schema state the column's nullability.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.2.columnNullability","typeLabel":"column_nullability · object"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.2","typeLabel":"column_nullability · object"},{"type":"object","title":"column_removal","description":"SchemaColumnChange represents a specific change to a column in the schema.","required":["columnRemoval"],"properties":{"columnRemoval":{"type":"object","properties":{"columnId":{"type":"string","description":"Identifier of the removed column. Normalized to lower case with special characters stripped, so\n several columns of one schema can share it.","uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.3.columnRemoval.columnId","typeLabel":"string"},"nativeType":{"type":"string","description":"Native data type of the removed column.","uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.3.columnRemoval.nativeType","typeLabel":"string"},"ordinalPosition":{"type":"integer","format":"int32","description":"Original position of the column in the schema.","uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.3.columnRemoval.ordinalPosition","typeLabel":"integer\u003cint32>"},"humanName":{"type":"string","description":"Name of the column as it appears in the source system, which is what distinguishes two columns\n sharing a column_id. Empty when the source system reported no distinct name, and on changes\n recorded before this field existed.","uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.3.columnRemoval.humanName","typeLabel":"string"}},"title":"column_removal","additionalProperties":false,"description":"ColumnRemovalChangeType represents the removal of a column from the schema.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.3.columnRemoval","typeLabel":"column_removal · object"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX].oneOf.3","typeLabel":"column_removal · object"}],"uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges.items.[INDEX]","typeLabel":"column_addition · object | column_native_type · object | column_nullability · object | column_removal · object"},"description":"List of changes made to individual columns in the schema.","uniqueKey":"changes.items.[INDEX].oneOf.1.schema.columnChanges","typeLabel":"(column_addition · object | column_native_type · object | column_nullability · object | column_removal · object)[]"}},"title":"schema","additionalProperties":false,"description":"SchemaChange represents a change detected in a database schema.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.schema","typeLabel":"schema · object"},"entitySynqPath":{"oneOf":[{"type":"string","title":"entity_synq_path","description":"Coalesce Quality path representing entity on which the change was detected when available,","uniqueKey":"changes.items.[INDEX].oneOf.1.entitySynqPath.oneOf.0","typeLabel":"string"},{"type":"null","title":"entity_synq_path","description":"Coalesce Quality path representing entity on which the change was detected when available,","uniqueKey":"changes.items.[INDEX].oneOf.1.entitySynqPath.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.items.[INDEX].oneOf.1.entitySynqPath","typeLabel":"string | null"},"affectedEntities":{"type":"array","items":{"oneOf":[{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["airflowDag"],"properties":{"airflowDag":{"type":"object","properties":{"integrationId":{"type":"string","description":"Coalesce Quality integration_id that identifies the Airflow instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.0.airflowDag.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.0.airflowDag.dagId","typeLabel":"string"}},"title":"airflow_dag","required":["integrationId","dagId"],"additionalProperties":false,"description":"Airflow DAG identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.0.airflowDag","typeLabel":"airflow_dag · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.0.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.0","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["airflowTask"],"properties":{"airflowTask":{"type":"object","properties":{"integrationId":{"type":"string","description":"Coalesce Quality integration_id that identifies the Airflow instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.1.airflowTask.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.1.airflowTask.dagId","typeLabel":"string"},"taskId":{"type":"string","description":"Airflow task_id that identifies the task within the DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.1.airflowTask.taskId","typeLabel":"string"}},"title":"airflow_task","required":["integrationId","dagId","taskId"],"additionalProperties":false,"description":"Airflow task identifier within a given DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.1.airflowTask","typeLabel":"airflow_task · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.1.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.1","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["athenaTable"],"properties":{"athenaTable":{"type":"object","properties":{"instance":{"type":"string","description":"AWS account and region the Athena workgroup runs in, formatted as\n \"\u003caccount-id>.\u003cregion>\" (e.g. \"123456789012.eu-west-1\"). Auto-derived\n from sts:GetCallerIdentity at integration setup time.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.2.athenaTable.instance","typeLabel":"string"},"catalog":{"type":"string","description":"Glue Data Catalog name. Almost always \"AwsDataCatalog\" — the default\n catalog for Athena unless the customer registered a federated catalog.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.2.athenaTable.catalog","typeLabel":"string"},"database":{"type":"string","description":"Glue database (the namespace users typically filter on).","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.2.athenaTable.database","typeLabel":"string"},"table":{"type":"string","description":"Glue table or view name.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.2.athenaTable.table","typeLabel":"string"}},"title":"athena_table","required":["instance","catalog","database","table"],"additionalProperties":false,"description":"Amazon Athena (Glue) table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.2.athenaTable","typeLabel":"athena_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.2.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.2","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["bigqueryTable"],"properties":{"bigqueryTable":{"type":"object","properties":{"project":{"type":"string","description":"BigQuery project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.3.bigqueryTable.project","typeLabel":"string"},"dataset":{"type":"string","description":"BigQuery dataset id","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.3.bigqueryTable.dataset","typeLabel":"string"},"table":{"type":"string","description":"BigQuery table name","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.3.bigqueryTable.table","typeLabel":"string"}},"title":"bigquery_table","required":["project","dataset","table"],"additionalProperties":false,"description":"BigQuery table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.3.bigqueryTable","typeLabel":"bigquery_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.3.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.3","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["clickhouseTable"],"properties":{"clickhouseTable":{"type":"object","properties":{"host":{"type":"string","description":"Clickhouse hostname without port","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.4.clickhouseTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Clickhouse database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.4.clickhouseTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Clickhouse table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.4.clickhouseTable.table","typeLabel":"string"}},"title":"clickhouse_table","required":["host","schema","table"],"additionalProperties":false,"description":"Clickhouse table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.4.clickhouseTable","typeLabel":"clickhouse_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.4.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.4","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["custom"],"properties":{"custom":{"type":"object","properties":{"id":{"type":"string","description":"Id that identifies the custom entity\n The Id should be unique within the custom entity Identifier.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.5.custom.id","typeLabel":"string"}},"title":"custom","required":["id"],"additionalProperties":false,"description":"Custom identifier to be used with all custom created entities","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.5.custom","typeLabel":"custom · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.5.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.5","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["databricksTable"],"properties":{"databricksTable":{"type":"object","properties":{"workspace":{"type":"string","description":"URL of Databricks workspace","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.6.databricksTable.workspace","typeLabel":"string"},"catalog":{"type":"string","description":"Databricks catalog","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.6.databricksTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Databricks schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.6.databricksTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Databricks table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.6.databricksTable.table","typeLabel":"string"}},"title":"databricks_table","required":["workspace","catalog","schema","table"],"additionalProperties":false,"description":"Databricks table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.6.databricksTable","typeLabel":"databricks_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.6.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.6","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["dataproduct"],"properties":{"dataproduct":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Dataproduct id that identifies the Dataproduct","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.7.dataproduct.id","typeLabel":"string\u003cuuid>"}},"title":"dataproduct","required":["id"],"additionalProperties":false,"description":"Dataproduct identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.7.dataproduct","typeLabel":"dataproduct · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.7.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.7","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["db2Table"],"properties":{"db2Table":{"type":"object","properties":{"host":{"type":"string","description":"Host name of the Db2 server","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.8.db2Table.host","typeLabel":"string"},"database":{"type":"string","description":"Database name or alias, as in `CONNECT TO \u003cdatabase>`","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.8.db2Table.database","typeLabel":"string"},"schema":{"type":"string","description":"Db2 schema (e.g. \"DB2INST1\")","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.8.db2Table.schema","typeLabel":"string"},"table":{"type":"string","description":"Db2 table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.8.db2Table.table","typeLabel":"string"}},"title":"db2_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"IBM Db2 LUW table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.8.db2Table","typeLabel":"db2_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.8.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.8","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["dbtCloudNode"],"properties":{"dbtCloudNode":{"type":"object","properties":{"projectId":{"type":"string","description":"Your dbt Cloud project id","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.9.dbtCloudNode.projectId","typeLabel":"string"},"nodeId":{"type":"string","description":"Dbt node_id that identifies one of dbt DAG nodes (model, test, etc)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.9.dbtCloudNode.nodeId","typeLabel":"string"},"accountId":{"type":"string","description":"Your dbt Cloud account id","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.9.dbtCloudNode.accountId","typeLabel":"string"}},"title":"dbt_cloud_node","required":["projectId","nodeId"],"additionalProperties":false,"description":"Dbt node that identifies one of dbt DAG nodes (model, test, etc) in dbt Cloud project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.9.dbtCloudNode","typeLabel":"dbt_cloud_node · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.9.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.9","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["dbtCoreNode"],"properties":{"dbtCoreNode":{"type":"object","properties":{"integrationId":{"type":"string","description":"Opaque identifier of the dbt Core project. Usually the Coalesce Quality\n integration id (a UUID), but may also be the dbt project name from\n manifest.json when the integration is configured to identify assets by\n project name. Treat it as an opaque string, not a UUID.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.10.dbtCoreNode.integrationId","typeLabel":"string"},"nodeId":{"type":"string","description":"Dbt node_id that identifies one of dbt DAG nodes (model, test, etc)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.10.dbtCoreNode.nodeId","typeLabel":"string"}},"title":"dbt_core_node","required":["integrationId","nodeId"],"additionalProperties":false,"description":"Dbt node that identifies one of dbt DAG nodes (model, test, etc) in dbt Core project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.10.dbtCoreNode","typeLabel":"dbt_core_node · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.10.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.10","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["fabricTable"],"properties":{"fabricTable":{"type":"object","properties":{"instance":{"type":"string","description":"Workspace SQL analytics endpoint host, e.g.\n \"\u003cworkspace-id>.datawarehouse.fabric.microsoft.com\".","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.11.fabricTable.instance","typeLabel":"string"},"database":{"type":"string","description":"Fabric warehouse / lakehouse (database).","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.11.fabricTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Schema within the database.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.11.fabricTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Table or view name.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.11.fabricTable.table","typeLabel":"string"},"workspaceId":{"type":"string","description":"Fabric workspace GUID, decoded from the endpoint host in `instance`.\n Optional and informational: the table is addressed by\n instance/database/schema/table, so leave it empty if you don't have it —\n it does not affect how the identifier resolves.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.11.fabricTable.workspaceId","typeLabel":"string"},"tenantId":{"type":"string","description":"Entra (Azure AD) tenant GUID, decoded from the endpoint host in `instance`.\n Optional and informational, like workspace_id.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.11.fabricTable.tenantId","typeLabel":"string"}},"title":"fabric_table","required":["instance","database","schema","table"],"additionalProperties":false,"description":"Microsoft Fabric table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.11.fabricTable","typeLabel":"fabric_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.11.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.11","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["monitor"],"properties":{"monitor":{"type":"object","properties":{"monitoredId":{"$circularRef":"9aa48dcc-3dc1-40e9-bf59-0a21c9499772","description":"Identifier of the monitored entity","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.12.monitor.monitoredId","typeLabel":"any"},"monitorId":{"type":"string","description":"Identifier of the monitor","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.12.monitor.monitorId","typeLabel":"string"},"segment":{"oneOf":[{"type":"string","description":"Optional monitor segmentation identifier","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.12.monitor.segment.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional monitor segmentation identifier","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.12.monitor.segment.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.12.monitor.segment","typeLabel":"string | null"},"integrationId":{"oneOf":[{"type":"string","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.12.monitor.integrationId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.12.monitor.integrationId.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.12.monitor.integrationId","typeLabel":"string | null"}},"title":"monitor","required":["monitoredId","monitorId"],"additionalProperties":false,"description":"Monitor identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.12.monitor","typeLabel":"monitor · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.12.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.12","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["mssqlTable"],"properties":{"mssqlTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the SQL Server instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.13.mssqlTable.host","typeLabel":"string"},"database":{"type":"string","description":"SQL Server database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.13.mssqlTable.database","typeLabel":"string"},"schema":{"type":"string","description":"SQL Server schema (e.g. \"dbo\")","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.13.mssqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"SQL Server table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.13.mssqlTable.table","typeLabel":"string"}},"title":"mssql_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"SQL Server table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.13.mssqlTable","typeLabel":"mssql_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.13.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.13","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["mysqlTable"],"properties":{"mysqlTable":{"type":"object","properties":{"host":{"type":"string","description":"Mysql hostname without port","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.14.mysqlTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Mysql database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.14.mysqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Mysql table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.14.mysqlTable.table","typeLabel":"string"}},"title":"mysql_table","required":["host","schema","table"],"additionalProperties":false,"description":"Mysql table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.14.mysqlTable","typeLabel":"mysql_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.14.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.14","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["oracleTable"],"properties":{"oracleTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the Oracle instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.15.oracleTable.host","typeLabel":"string"},"serviceName":{"type":"string","description":"Oracle service name (PDB)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.15.oracleTable.serviceName","typeLabel":"string"},"schema":{"type":"string","description":"Oracle schema (= owning user)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.15.oracleTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Oracle table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.15.oracleTable.table","typeLabel":"string"}},"title":"oracle_table","required":["host","serviceName","schema","table"],"additionalProperties":false,"description":"Oracle table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.15.oracleTable","typeLabel":"oracle_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.15.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.15","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["postgresTable"],"properties":{"postgresTable":{"type":"object","properties":{"host":{"type":"string","description":"Postgres hostname without port","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.16.postgresTable.host","typeLabel":"string"},"database":{"type":"string","description":"Postgres database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.16.postgresTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Postgres schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.16.postgresTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Postgres table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.16.postgresTable.table","typeLabel":"string"}},"title":"postgres_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"Postgres table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.16.postgresTable","typeLabel":"postgres_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.16.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.16","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["redshiftTable"],"properties":{"redshiftTable":{"type":"object","properties":{"database":{"type":"string","description":"Redshift database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.17.redshiftTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Redshift schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.17.redshiftTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Redshift table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.17.redshiftTable.table","typeLabel":"string"},"cluster":{"type":"string","description":"Required. Host of the Redshift endpoint, as in the connection, for example\n `my-cluster.abc123.eu-west-1.redshift.amazonaws.com`. A port suffix is\n accepted and ignored. The bare cluster name (`my-cluster`) is not enough,\n because one name can exist in more than one account or region. A response\n returns the host in its normalized form, which is also accepted on input.\n\n The rule below also refuses an empty value. It is not `required`, because\n `required` stops the other rules and its error does not say what to send.\nredshift_table.cluster.full_host // cluster must be the full host of the Redshift endpoint from the connection, for example my-cluster.abc123.eu-west-1.redshift.amazonaws.com\n","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.17.redshiftTable.cluster","typeLabel":"string"}},"title":"redshift_table","required":["database","schema","table"],"additionalProperties":false,"description":"Redshift table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.17.redshiftTable","typeLabel":"redshift_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.17.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.17","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["savedView"],"properties":{"savedView":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Saved view id (client-supplied UUID) that identifies the saved view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.18.savedView.id","typeLabel":"string\u003cuuid>"}},"title":"saved_view","required":["id"],"additionalProperties":false,"description":"Saved view identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.18.savedView","typeLabel":"saved_view · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.18.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.18","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["snowflakeTable"],"properties":{"snowflakeTable":{"type":"object","properties":{"account":{"type":"string","description":"Snowflake account","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.19.snowflakeTable.account","typeLabel":"string"},"database":{"type":"string","description":"Snowflake database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.19.snowflakeTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Snowflake schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.19.snowflakeTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Snowflake table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.19.snowflakeTable.table","typeLabel":"string"}},"title":"snowflake_table","required":["account","database","schema","table"],"additionalProperties":false,"description":"Snowflake table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.19.snowflakeTable","typeLabel":"snowflake_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.19.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.19","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["sqlMeshAudit"],"properties":{"sqlMeshAudit":{"type":"object","properties":{"integrationId":{"type":"string","format":"uuid","description":"Coalesce Quality integration_id that identifies the dbt Core project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.20.sqlMeshAudit.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.20.sqlMeshAudit.fqn","typeLabel":"string"},"auditId":{"type":"string","description":"Identifier of the audit","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.20.sqlMeshAudit.auditId","typeLabel":"string"}},"title":"sql_mesh_audit","required":["integrationId","fqn","auditId"],"additionalProperties":false,"description":"SQLMesh Audit identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.20.sqlMeshAudit","typeLabel":"sql_mesh_audit · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.20.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.20","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["sqlMeshModel"],"properties":{"sqlMeshModel":{"type":"object","properties":{"integrationId":{"type":"string","format":"uuid","description":"Coalesce Quality integration_id that identifies the dbt Core project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.21.sqlMeshModel.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.21.sqlMeshModel.fqn","typeLabel":"string"}},"title":"sql_mesh_model","required":["integrationId","fqn"],"additionalProperties":false,"description":"SQLMesh Model identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.21.sqlMeshModel","typeLabel":"sql_mesh_model · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.21.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.21","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["synqPath"],"properties":{"synqPath":{"type":"object","properties":{"path":{"type":"string","description":"Coalesce Quality path that identifies the Coalesce Quality entity, needs to be one of supported paths","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.22.synqPath.path","typeLabel":"string"}},"title":"synq_path","required":["path"],"additionalProperties":false,"description":"SynqPath identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.22.synqPath","typeLabel":"synq_path · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.22.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.22","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["trinoTable"],"properties":{"trinoTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the Trino instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.23.trinoTable.host","typeLabel":"string"},"catalog":{"type":"string","description":"Trino catalog","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.23.trinoTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Trino schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.23.trinoTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Trino table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.23.trinoTable.table","typeLabel":"string"}},"title":"trino_table","required":["host","catalog","schema","table"],"additionalProperties":false,"description":"Trino table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.23.trinoTable","typeLabel":"trino_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.23.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX].oneOf.23","typeLabel":"Identifier · object"}],"uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities.items.[INDEX]","typeLabel":"Identifier · object"},"title":"affected_entities","description":"Identifiers of entities directly affected by this change.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntities","typeLabel":"Identifier · object[]"},"affectedEntitiesSynqPaths":{"type":"array","items":{"type":"string","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntitiesSynqPaths.items.[INDEX]","typeLabel":"string"},"title":"affected_entities_synq_paths","description":"Coalesce Quality paths of entities directly affected by this change.","uniqueKey":"changes.items.[INDEX].oneOf.1.affectedEntitiesSynqPaths","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.1","typeLabel":"EntityChange · object"},{"type":"object","title":"EntityChange","description":"EntityChange represents a change detected in an entity within the system.\n It tracks modifications to entities like Git commits, SQL definitions, and database schemas.","required":["entityId","changeId","changeDetectedAt","sqlDefinition"],"properties":{"entityId":{"oneOf":[{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["airflowDag"],"properties":{"airflowDag":{"type":"object","properties":{"integrationId":{"type":"string","description":"Coalesce Quality integration_id that identifies the Airflow instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.0.airflowDag.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.0.airflowDag.dagId","typeLabel":"string"}},"title":"airflow_dag","required":["integrationId","dagId"],"additionalProperties":false,"description":"Airflow DAG identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.0.airflowDag","typeLabel":"airflow_dag · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.0.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.0","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["airflowTask"],"properties":{"airflowTask":{"type":"object","properties":{"integrationId":{"type":"string","description":"Coalesce Quality integration_id that identifies the Airflow instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.1.airflowTask.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.1.airflowTask.dagId","typeLabel":"string"},"taskId":{"type":"string","description":"Airflow task_id that identifies the task within the DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.1.airflowTask.taskId","typeLabel":"string"}},"title":"airflow_task","required":["integrationId","dagId","taskId"],"additionalProperties":false,"description":"Airflow task identifier within a given DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.1.airflowTask","typeLabel":"airflow_task · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.1.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.1","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["athenaTable"],"properties":{"athenaTable":{"type":"object","properties":{"instance":{"type":"string","description":"AWS account and region the Athena workgroup runs in, formatted as\n \"\u003caccount-id>.\u003cregion>\" (e.g. \"123456789012.eu-west-1\"). Auto-derived\n from sts:GetCallerIdentity at integration setup time.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.2.athenaTable.instance","typeLabel":"string"},"catalog":{"type":"string","description":"Glue Data Catalog name. Almost always \"AwsDataCatalog\" — the default\n catalog for Athena unless the customer registered a federated catalog.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.2.athenaTable.catalog","typeLabel":"string"},"database":{"type":"string","description":"Glue database (the namespace users typically filter on).","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.2.athenaTable.database","typeLabel":"string"},"table":{"type":"string","description":"Glue table or view name.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.2.athenaTable.table","typeLabel":"string"}},"title":"athena_table","required":["instance","catalog","database","table"],"additionalProperties":false,"description":"Amazon Athena (Glue) table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.2.athenaTable","typeLabel":"athena_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.2.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.2","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["bigqueryTable"],"properties":{"bigqueryTable":{"type":"object","properties":{"project":{"type":"string","description":"BigQuery project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.3.bigqueryTable.project","typeLabel":"string"},"dataset":{"type":"string","description":"BigQuery dataset id","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.3.bigqueryTable.dataset","typeLabel":"string"},"table":{"type":"string","description":"BigQuery table name","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.3.bigqueryTable.table","typeLabel":"string"}},"title":"bigquery_table","required":["project","dataset","table"],"additionalProperties":false,"description":"BigQuery table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.3.bigqueryTable","typeLabel":"bigquery_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.3.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.3","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["clickhouseTable"],"properties":{"clickhouseTable":{"type":"object","properties":{"host":{"type":"string","description":"Clickhouse hostname without port","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.4.clickhouseTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Clickhouse database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.4.clickhouseTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Clickhouse table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.4.clickhouseTable.table","typeLabel":"string"}},"title":"clickhouse_table","required":["host","schema","table"],"additionalProperties":false,"description":"Clickhouse table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.4.clickhouseTable","typeLabel":"clickhouse_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.4.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.4","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["custom"],"properties":{"custom":{"type":"object","properties":{"id":{"type":"string","description":"Id that identifies the custom entity\n The Id should be unique within the custom entity Identifier.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.5.custom.id","typeLabel":"string"}},"title":"custom","required":["id"],"additionalProperties":false,"description":"Custom identifier to be used with all custom created entities","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.5.custom","typeLabel":"custom · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.5.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.5","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["databricksTable"],"properties":{"databricksTable":{"type":"object","properties":{"workspace":{"type":"string","description":"URL of Databricks workspace","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.6.databricksTable.workspace","typeLabel":"string"},"catalog":{"type":"string","description":"Databricks catalog","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.6.databricksTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Databricks schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.6.databricksTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Databricks table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.6.databricksTable.table","typeLabel":"string"}},"title":"databricks_table","required":["workspace","catalog","schema","table"],"additionalProperties":false,"description":"Databricks table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.6.databricksTable","typeLabel":"databricks_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.6.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.6","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["dataproduct"],"properties":{"dataproduct":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Dataproduct id that identifies the Dataproduct","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.7.dataproduct.id","typeLabel":"string\u003cuuid>"}},"title":"dataproduct","required":["id"],"additionalProperties":false,"description":"Dataproduct identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.7.dataproduct","typeLabel":"dataproduct · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.7.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.7","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["db2Table"],"properties":{"db2Table":{"type":"object","properties":{"host":{"type":"string","description":"Host name of the Db2 server","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.8.db2Table.host","typeLabel":"string"},"database":{"type":"string","description":"Database name or alias, as in `CONNECT TO \u003cdatabase>`","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.8.db2Table.database","typeLabel":"string"},"schema":{"type":"string","description":"Db2 schema (e.g. \"DB2INST1\")","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.8.db2Table.schema","typeLabel":"string"},"table":{"type":"string","description":"Db2 table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.8.db2Table.table","typeLabel":"string"}},"title":"db2_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"IBM Db2 LUW table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.8.db2Table","typeLabel":"db2_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.8.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.8","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["dbtCloudNode"],"properties":{"dbtCloudNode":{"type":"object","properties":{"projectId":{"type":"string","description":"Your dbt Cloud project id","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.9.dbtCloudNode.projectId","typeLabel":"string"},"nodeId":{"type":"string","description":"Dbt node_id that identifies one of dbt DAG nodes (model, test, etc)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.9.dbtCloudNode.nodeId","typeLabel":"string"},"accountId":{"type":"string","description":"Your dbt Cloud account id","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.9.dbtCloudNode.accountId","typeLabel":"string"}},"title":"dbt_cloud_node","required":["projectId","nodeId"],"additionalProperties":false,"description":"Dbt node that identifies one of dbt DAG nodes (model, test, etc) in dbt Cloud project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.9.dbtCloudNode","typeLabel":"dbt_cloud_node · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.9.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.9","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["dbtCoreNode"],"properties":{"dbtCoreNode":{"type":"object","properties":{"integrationId":{"type":"string","description":"Opaque identifier of the dbt Core project. Usually the Coalesce Quality\n integration id (a UUID), but may also be the dbt project name from\n manifest.json when the integration is configured to identify assets by\n project name. Treat it as an opaque string, not a UUID.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.10.dbtCoreNode.integrationId","typeLabel":"string"},"nodeId":{"type":"string","description":"Dbt node_id that identifies one of dbt DAG nodes (model, test, etc)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.10.dbtCoreNode.nodeId","typeLabel":"string"}},"title":"dbt_core_node","required":["integrationId","nodeId"],"additionalProperties":false,"description":"Dbt node that identifies one of dbt DAG nodes (model, test, etc) in dbt Core project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.10.dbtCoreNode","typeLabel":"dbt_core_node · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.10.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.10","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["fabricTable"],"properties":{"fabricTable":{"type":"object","properties":{"instance":{"type":"string","description":"Workspace SQL analytics endpoint host, e.g.\n \"\u003cworkspace-id>.datawarehouse.fabric.microsoft.com\".","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.11.fabricTable.instance","typeLabel":"string"},"database":{"type":"string","description":"Fabric warehouse / lakehouse (database).","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.11.fabricTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Schema within the database.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.11.fabricTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Table or view name.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.11.fabricTable.table","typeLabel":"string"},"workspaceId":{"type":"string","description":"Fabric workspace GUID, decoded from the endpoint host in `instance`.\n Optional and informational: the table is addressed by\n instance/database/schema/table, so leave it empty if you don't have it —\n it does not affect how the identifier resolves.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.11.fabricTable.workspaceId","typeLabel":"string"},"tenantId":{"type":"string","description":"Entra (Azure AD) tenant GUID, decoded from the endpoint host in `instance`.\n Optional and informational, like workspace_id.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.11.fabricTable.tenantId","typeLabel":"string"}},"title":"fabric_table","required":["instance","database","schema","table"],"additionalProperties":false,"description":"Microsoft Fabric table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.11.fabricTable","typeLabel":"fabric_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.11.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.11","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["monitor"],"properties":{"monitor":{"type":"object","properties":{"monitoredId":{"$circularRef":"9aa48dcc-3dc1-40e9-bf59-0a21c9499772","description":"Identifier of the monitored entity","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.12.monitor.monitoredId","typeLabel":"any"},"monitorId":{"type":"string","description":"Identifier of the monitor","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.12.monitor.monitorId","typeLabel":"string"},"segment":{"oneOf":[{"type":"string","description":"Optional monitor segmentation identifier","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.12.monitor.segment.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional monitor segmentation identifier","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.12.monitor.segment.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.12.monitor.segment","typeLabel":"string | null"},"integrationId":{"oneOf":[{"type":"string","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.12.monitor.integrationId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.12.monitor.integrationId.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.12.monitor.integrationId","typeLabel":"string | null"}},"title":"monitor","required":["monitoredId","monitorId"],"additionalProperties":false,"description":"Monitor identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.12.monitor","typeLabel":"monitor · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.12.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.12","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["mssqlTable"],"properties":{"mssqlTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the SQL Server instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.13.mssqlTable.host","typeLabel":"string"},"database":{"type":"string","description":"SQL Server database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.13.mssqlTable.database","typeLabel":"string"},"schema":{"type":"string","description":"SQL Server schema (e.g. \"dbo\")","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.13.mssqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"SQL Server table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.13.mssqlTable.table","typeLabel":"string"}},"title":"mssql_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"SQL Server table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.13.mssqlTable","typeLabel":"mssql_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.13.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.13","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["mysqlTable"],"properties":{"mysqlTable":{"type":"object","properties":{"host":{"type":"string","description":"Mysql hostname without port","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.14.mysqlTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Mysql database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.14.mysqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Mysql table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.14.mysqlTable.table","typeLabel":"string"}},"title":"mysql_table","required":["host","schema","table"],"additionalProperties":false,"description":"Mysql table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.14.mysqlTable","typeLabel":"mysql_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.14.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.14","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["oracleTable"],"properties":{"oracleTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the Oracle instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.15.oracleTable.host","typeLabel":"string"},"serviceName":{"type":"string","description":"Oracle service name (PDB)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.15.oracleTable.serviceName","typeLabel":"string"},"schema":{"type":"string","description":"Oracle schema (= owning user)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.15.oracleTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Oracle table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.15.oracleTable.table","typeLabel":"string"}},"title":"oracle_table","required":["host","serviceName","schema","table"],"additionalProperties":false,"description":"Oracle table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.15.oracleTable","typeLabel":"oracle_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.15.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.15","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["postgresTable"],"properties":{"postgresTable":{"type":"object","properties":{"host":{"type":"string","description":"Postgres hostname without port","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.16.postgresTable.host","typeLabel":"string"},"database":{"type":"string","description":"Postgres database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.16.postgresTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Postgres schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.16.postgresTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Postgres table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.16.postgresTable.table","typeLabel":"string"}},"title":"postgres_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"Postgres table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.16.postgresTable","typeLabel":"postgres_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.16.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.16","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["redshiftTable"],"properties":{"redshiftTable":{"type":"object","properties":{"database":{"type":"string","description":"Redshift database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.17.redshiftTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Redshift schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.17.redshiftTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Redshift table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.17.redshiftTable.table","typeLabel":"string"},"cluster":{"type":"string","description":"Required. Host of the Redshift endpoint, as in the connection, for example\n `my-cluster.abc123.eu-west-1.redshift.amazonaws.com`. A port suffix is\n accepted and ignored. The bare cluster name (`my-cluster`) is not enough,\n because one name can exist in more than one account or region. A response\n returns the host in its normalized form, which is also accepted on input.\n\n The rule below also refuses an empty value. It is not `required`, because\n `required` stops the other rules and its error does not say what to send.\nredshift_table.cluster.full_host // cluster must be the full host of the Redshift endpoint from the connection, for example my-cluster.abc123.eu-west-1.redshift.amazonaws.com\n","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.17.redshiftTable.cluster","typeLabel":"string"}},"title":"redshift_table","required":["database","schema","table"],"additionalProperties":false,"description":"Redshift table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.17.redshiftTable","typeLabel":"redshift_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.17.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.17","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["savedView"],"properties":{"savedView":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Saved view id (client-supplied UUID) that identifies the saved view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.18.savedView.id","typeLabel":"string\u003cuuid>"}},"title":"saved_view","required":["id"],"additionalProperties":false,"description":"Saved view identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.18.savedView","typeLabel":"saved_view · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.18.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.18","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["snowflakeTable"],"properties":{"snowflakeTable":{"type":"object","properties":{"account":{"type":"string","description":"Snowflake account","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.19.snowflakeTable.account","typeLabel":"string"},"database":{"type":"string","description":"Snowflake database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.19.snowflakeTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Snowflake schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.19.snowflakeTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Snowflake table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.19.snowflakeTable.table","typeLabel":"string"}},"title":"snowflake_table","required":["account","database","schema","table"],"additionalProperties":false,"description":"Snowflake table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.19.snowflakeTable","typeLabel":"snowflake_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.19.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.19","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["sqlMeshAudit"],"properties":{"sqlMeshAudit":{"type":"object","properties":{"integrationId":{"type":"string","format":"uuid","description":"Coalesce Quality integration_id that identifies the dbt Core project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.20.sqlMeshAudit.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.20.sqlMeshAudit.fqn","typeLabel":"string"},"auditId":{"type":"string","description":"Identifier of the audit","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.20.sqlMeshAudit.auditId","typeLabel":"string"}},"title":"sql_mesh_audit","required":["integrationId","fqn","auditId"],"additionalProperties":false,"description":"SQLMesh Audit identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.20.sqlMeshAudit","typeLabel":"sql_mesh_audit · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.20.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.20","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["sqlMeshModel"],"properties":{"sqlMeshModel":{"type":"object","properties":{"integrationId":{"type":"string","format":"uuid","description":"Coalesce Quality integration_id that identifies the dbt Core project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.21.sqlMeshModel.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.21.sqlMeshModel.fqn","typeLabel":"string"}},"title":"sql_mesh_model","required":["integrationId","fqn"],"additionalProperties":false,"description":"SQLMesh Model identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.21.sqlMeshModel","typeLabel":"sql_mesh_model · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.21.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.21","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["synqPath"],"properties":{"synqPath":{"type":"object","properties":{"path":{"type":"string","description":"Coalesce Quality path that identifies the Coalesce Quality entity, needs to be one of supported paths","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.22.synqPath.path","typeLabel":"string"}},"title":"synq_path","required":["path"],"additionalProperties":false,"description":"SynqPath identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.22.synqPath","typeLabel":"synq_path · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.22.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.22","typeLabel":"entity_id · object"},{"type":"object","title":"entity_id","description":"Identifier of the entity on which the change was detected when available.","required":["trinoTable"],"properties":{"trinoTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the Trino instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.23.trinoTable.host","typeLabel":"string"},"catalog":{"type":"string","description":"Trino catalog","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.23.trinoTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Trino schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.23.trinoTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Trino table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.23.trinoTable.table","typeLabel":"string"}},"title":"trino_table","required":["host","catalog","schema","table"],"additionalProperties":false,"description":"Trino table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.23.trinoTable","typeLabel":"trino_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.23.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId.oneOf.23","typeLabel":"entity_id · object"}],"isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.entityId","typeLabel":"entity_id · object"},"changeId":{"type":"string","title":"change_id","description":"Internal identifier of the change event.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.changeId","typeLabel":"string"},"changeDetectedAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"Timestamp when the change was detected by Coalesce Quality.","title":"change_detected_at","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.changeDetectedAt","typeLabel":"string\u003cdate-time>"},"sqlDefinition":{"type":"object","properties":{"previousSql":{"type":"string","description":"Previous version of the SQL definition.","uniqueKey":"changes.items.[INDEX].oneOf.2.sqlDefinition.previousSql","typeLabel":"string"},"previousSqlStateAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"Timestamp when the previous SQL state was valid.","uniqueKey":"changes.items.[INDEX].oneOf.2.sqlDefinition.previousSqlStateAt","typeLabel":"string\u003cdate-time>"},"currentSql":{"type":"string","description":"Current version of the SQL definition.","uniqueKey":"changes.items.[INDEX].oneOf.2.sqlDefinition.currentSql","typeLabel":"string"},"currentSqlStateAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"Timestamp when the current SQL state became valid.","uniqueKey":"changes.items.[INDEX].oneOf.2.sqlDefinition.currentSqlStateAt","typeLabel":"string\u003cdate-time>"},"sqlDiff":{"type":"string","description":"Diff showing the changes between previous and current SQL.","uniqueKey":"changes.items.[INDEX].oneOf.2.sqlDefinition.sqlDiff","typeLabel":"string"}},"title":"sql_definition","additionalProperties":false,"description":"SqlDefinitionChange represents a change detected in a SQL definition.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.sqlDefinition","typeLabel":"sql_definition · object"},"entitySynqPath":{"oneOf":[{"type":"string","title":"entity_synq_path","description":"Coalesce Quality path representing entity on which the change was detected when available,","uniqueKey":"changes.items.[INDEX].oneOf.2.entitySynqPath.oneOf.0","typeLabel":"string"},{"type":"null","title":"entity_synq_path","description":"Coalesce Quality path representing entity on which the change was detected when available,","uniqueKey":"changes.items.[INDEX].oneOf.2.entitySynqPath.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.items.[INDEX].oneOf.2.entitySynqPath","typeLabel":"string | null"},"affectedEntities":{"type":"array","items":{"oneOf":[{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["airflowDag"],"properties":{"airflowDag":{"type":"object","properties":{"integrationId":{"type":"string","description":"Coalesce Quality integration_id that identifies the Airflow instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.0.airflowDag.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.0.airflowDag.dagId","typeLabel":"string"}},"title":"airflow_dag","required":["integrationId","dagId"],"additionalProperties":false,"description":"Airflow DAG identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.0.airflowDag","typeLabel":"airflow_dag · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.0.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.0","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["airflowTask"],"properties":{"airflowTask":{"type":"object","properties":{"integrationId":{"type":"string","description":"Coalesce Quality integration_id that identifies the Airflow instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.1.airflowTask.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.1.airflowTask.dagId","typeLabel":"string"},"taskId":{"type":"string","description":"Airflow task_id that identifies the task within the DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.1.airflowTask.taskId","typeLabel":"string"}},"title":"airflow_task","required":["integrationId","dagId","taskId"],"additionalProperties":false,"description":"Airflow task identifier within a given DAG","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.1.airflowTask","typeLabel":"airflow_task · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.1.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.1","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["athenaTable"],"properties":{"athenaTable":{"type":"object","properties":{"instance":{"type":"string","description":"AWS account and region the Athena workgroup runs in, formatted as\n \"\u003caccount-id>.\u003cregion>\" (e.g. \"123456789012.eu-west-1\"). Auto-derived\n from sts:GetCallerIdentity at integration setup time.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.2.athenaTable.instance","typeLabel":"string"},"catalog":{"type":"string","description":"Glue Data Catalog name. Almost always \"AwsDataCatalog\" — the default\n catalog for Athena unless the customer registered a federated catalog.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.2.athenaTable.catalog","typeLabel":"string"},"database":{"type":"string","description":"Glue database (the namespace users typically filter on).","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.2.athenaTable.database","typeLabel":"string"},"table":{"type":"string","description":"Glue table or view name.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.2.athenaTable.table","typeLabel":"string"}},"title":"athena_table","required":["instance","catalog","database","table"],"additionalProperties":false,"description":"Amazon Athena (Glue) table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.2.athenaTable","typeLabel":"athena_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.2.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.2","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["bigqueryTable"],"properties":{"bigqueryTable":{"type":"object","properties":{"project":{"type":"string","description":"BigQuery project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.3.bigqueryTable.project","typeLabel":"string"},"dataset":{"type":"string","description":"BigQuery dataset id","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.3.bigqueryTable.dataset","typeLabel":"string"},"table":{"type":"string","description":"BigQuery table name","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.3.bigqueryTable.table","typeLabel":"string"}},"title":"bigquery_table","required":["project","dataset","table"],"additionalProperties":false,"description":"BigQuery table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.3.bigqueryTable","typeLabel":"bigquery_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.3.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.3","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["clickhouseTable"],"properties":{"clickhouseTable":{"type":"object","properties":{"host":{"type":"string","description":"Clickhouse hostname without port","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.4.clickhouseTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Clickhouse database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.4.clickhouseTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Clickhouse table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.4.clickhouseTable.table","typeLabel":"string"}},"title":"clickhouse_table","required":["host","schema","table"],"additionalProperties":false,"description":"Clickhouse table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.4.clickhouseTable","typeLabel":"clickhouse_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.4.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.4","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["custom"],"properties":{"custom":{"type":"object","properties":{"id":{"type":"string","description":"Id that identifies the custom entity\n The Id should be unique within the custom entity Identifier.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.5.custom.id","typeLabel":"string"}},"title":"custom","required":["id"],"additionalProperties":false,"description":"Custom identifier to be used with all custom created entities","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.5.custom","typeLabel":"custom · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.5.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.5","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["databricksTable"],"properties":{"databricksTable":{"type":"object","properties":{"workspace":{"type":"string","description":"URL of Databricks workspace","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.6.databricksTable.workspace","typeLabel":"string"},"catalog":{"type":"string","description":"Databricks catalog","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.6.databricksTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Databricks schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.6.databricksTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Databricks table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.6.databricksTable.table","typeLabel":"string"}},"title":"databricks_table","required":["workspace","catalog","schema","table"],"additionalProperties":false,"description":"Databricks table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.6.databricksTable","typeLabel":"databricks_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.6.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.6","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["dataproduct"],"properties":{"dataproduct":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Dataproduct id that identifies the Dataproduct","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.7.dataproduct.id","typeLabel":"string\u003cuuid>"}},"title":"dataproduct","required":["id"],"additionalProperties":false,"description":"Dataproduct identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.7.dataproduct","typeLabel":"dataproduct · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.7.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.7","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["db2Table"],"properties":{"db2Table":{"type":"object","properties":{"host":{"type":"string","description":"Host name of the Db2 server","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.8.db2Table.host","typeLabel":"string"},"database":{"type":"string","description":"Database name or alias, as in `CONNECT TO \u003cdatabase>`","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.8.db2Table.database","typeLabel":"string"},"schema":{"type":"string","description":"Db2 schema (e.g. \"DB2INST1\")","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.8.db2Table.schema","typeLabel":"string"},"table":{"type":"string","description":"Db2 table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.8.db2Table.table","typeLabel":"string"}},"title":"db2_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"IBM Db2 LUW table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.8.db2Table","typeLabel":"db2_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.8.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.8","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["dbtCloudNode"],"properties":{"dbtCloudNode":{"type":"object","properties":{"projectId":{"type":"string","description":"Your dbt Cloud project id","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.9.dbtCloudNode.projectId","typeLabel":"string"},"nodeId":{"type":"string","description":"Dbt node_id that identifies one of dbt DAG nodes (model, test, etc)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.9.dbtCloudNode.nodeId","typeLabel":"string"},"accountId":{"type":"string","description":"Your dbt Cloud account id","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.9.dbtCloudNode.accountId","typeLabel":"string"}},"title":"dbt_cloud_node","required":["projectId","nodeId"],"additionalProperties":false,"description":"Dbt node that identifies one of dbt DAG nodes (model, test, etc) in dbt Cloud project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.9.dbtCloudNode","typeLabel":"dbt_cloud_node · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.9.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.9","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["dbtCoreNode"],"properties":{"dbtCoreNode":{"type":"object","properties":{"integrationId":{"type":"string","description":"Opaque identifier of the dbt Core project. Usually the Coalesce Quality\n integration id (a UUID), but may also be the dbt project name from\n manifest.json when the integration is configured to identify assets by\n project name. Treat it as an opaque string, not a UUID.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.10.dbtCoreNode.integrationId","typeLabel":"string"},"nodeId":{"type":"string","description":"Dbt node_id that identifies one of dbt DAG nodes (model, test, etc)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.10.dbtCoreNode.nodeId","typeLabel":"string"}},"title":"dbt_core_node","required":["integrationId","nodeId"],"additionalProperties":false,"description":"Dbt node that identifies one of dbt DAG nodes (model, test, etc) in dbt Core project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.10.dbtCoreNode","typeLabel":"dbt_core_node · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.10.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.10","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["fabricTable"],"properties":{"fabricTable":{"type":"object","properties":{"instance":{"type":"string","description":"Workspace SQL analytics endpoint host, e.g.\n \"\u003cworkspace-id>.datawarehouse.fabric.microsoft.com\".","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.11.fabricTable.instance","typeLabel":"string"},"database":{"type":"string","description":"Fabric warehouse / lakehouse (database).","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.11.fabricTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Schema within the database.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.11.fabricTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Table or view name.","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.11.fabricTable.table","typeLabel":"string"},"workspaceId":{"type":"string","description":"Fabric workspace GUID, decoded from the endpoint host in `instance`.\n Optional and informational: the table is addressed by\n instance/database/schema/table, so leave it empty if you don't have it —\n it does not affect how the identifier resolves.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.11.fabricTable.workspaceId","typeLabel":"string"},"tenantId":{"type":"string","description":"Entra (Azure AD) tenant GUID, decoded from the endpoint host in `instance`.\n Optional and informational, like workspace_id.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.11.fabricTable.tenantId","typeLabel":"string"}},"title":"fabric_table","required":["instance","database","schema","table"],"additionalProperties":false,"description":"Microsoft Fabric table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.11.fabricTable","typeLabel":"fabric_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.11.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.11","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["monitor"],"properties":{"monitor":{"type":"object","properties":{"monitoredId":{"$circularRef":"9aa48dcc-3dc1-40e9-bf59-0a21c9499772","description":"Identifier of the monitored entity","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.12.monitor.monitoredId","typeLabel":"any"},"monitorId":{"type":"string","description":"Identifier of the monitor","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.12.monitor.monitorId","typeLabel":"string"},"segment":{"oneOf":[{"type":"string","description":"Optional monitor segmentation identifier","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.12.monitor.segment.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional monitor segmentation identifier","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.12.monitor.segment.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.12.monitor.segment","typeLabel":"string | null"},"integrationId":{"oneOf":[{"type":"string","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.12.monitor.integrationId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.12.monitor.integrationId.oneOf.1","typeLabel":"null"}],"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.12.monitor.integrationId","typeLabel":"string | null"}},"title":"monitor","required":["monitoredId","monitorId"],"additionalProperties":false,"description":"Monitor identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.12.monitor","typeLabel":"monitor · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.12.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.12","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["mssqlTable"],"properties":{"mssqlTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the SQL Server instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.13.mssqlTable.host","typeLabel":"string"},"database":{"type":"string","description":"SQL Server database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.13.mssqlTable.database","typeLabel":"string"},"schema":{"type":"string","description":"SQL Server schema (e.g. \"dbo\")","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.13.mssqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"SQL Server table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.13.mssqlTable.table","typeLabel":"string"}},"title":"mssql_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"SQL Server table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.13.mssqlTable","typeLabel":"mssql_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.13.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.13","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["mysqlTable"],"properties":{"mysqlTable":{"type":"object","properties":{"host":{"type":"string","description":"Mysql hostname without port","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.14.mysqlTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Mysql database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.14.mysqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Mysql table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.14.mysqlTable.table","typeLabel":"string"}},"title":"mysql_table","required":["host","schema","table"],"additionalProperties":false,"description":"Mysql table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.14.mysqlTable","typeLabel":"mysql_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.14.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.14","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["oracleTable"],"properties":{"oracleTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the Oracle instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.15.oracleTable.host","typeLabel":"string"},"serviceName":{"type":"string","description":"Oracle service name (PDB)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.15.oracleTable.serviceName","typeLabel":"string"},"schema":{"type":"string","description":"Oracle schema (= owning user)","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.15.oracleTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Oracle table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.15.oracleTable.table","typeLabel":"string"}},"title":"oracle_table","required":["host","serviceName","schema","table"],"additionalProperties":false,"description":"Oracle table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.15.oracleTable","typeLabel":"oracle_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.15.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.15","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["postgresTable"],"properties":{"postgresTable":{"type":"object","properties":{"host":{"type":"string","description":"Postgres hostname without port","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.16.postgresTable.host","typeLabel":"string"},"database":{"type":"string","description":"Postgres database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.16.postgresTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Postgres schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.16.postgresTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Postgres table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.16.postgresTable.table","typeLabel":"string"}},"title":"postgres_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"Postgres table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.16.postgresTable","typeLabel":"postgres_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.16.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.16","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["redshiftTable"],"properties":{"redshiftTable":{"type":"object","properties":{"database":{"type":"string","description":"Redshift database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.17.redshiftTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Redshift schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.17.redshiftTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Redshift table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.17.redshiftTable.table","typeLabel":"string"},"cluster":{"type":"string","description":"Required. Host of the Redshift endpoint, as in the connection, for example\n `my-cluster.abc123.eu-west-1.redshift.amazonaws.com`. A port suffix is\n accepted and ignored. The bare cluster name (`my-cluster`) is not enough,\n because one name can exist in more than one account or region. A response\n returns the host in its normalized form, which is also accepted on input.\n\n The rule below also refuses an empty value. It is not `required`, because\n `required` stops the other rules and its error does not say what to send.\nredshift_table.cluster.full_host // cluster must be the full host of the Redshift endpoint from the connection, for example my-cluster.abc123.eu-west-1.redshift.amazonaws.com\n","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.17.redshiftTable.cluster","typeLabel":"string"}},"title":"redshift_table","required":["database","schema","table"],"additionalProperties":false,"description":"Redshift table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.17.redshiftTable","typeLabel":"redshift_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.17.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.17","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["savedView"],"properties":{"savedView":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Saved view id (client-supplied UUID) that identifies the saved view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.18.savedView.id","typeLabel":"string\u003cuuid>"}},"title":"saved_view","required":["id"],"additionalProperties":false,"description":"Saved view identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.18.savedView","typeLabel":"saved_view · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.18.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.18","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["snowflakeTable"],"properties":{"snowflakeTable":{"type":"object","properties":{"account":{"type":"string","description":"Snowflake account","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.19.snowflakeTable.account","typeLabel":"string"},"database":{"type":"string","description":"Snowflake database","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.19.snowflakeTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Snowflake schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.19.snowflakeTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Snowflake table","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.19.snowflakeTable.table","typeLabel":"string"}},"title":"snowflake_table","required":["account","database","schema","table"],"additionalProperties":false,"description":"Snowflake table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.19.snowflakeTable","typeLabel":"snowflake_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.19.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.19","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["sqlMeshAudit"],"properties":{"sqlMeshAudit":{"type":"object","properties":{"integrationId":{"type":"string","format":"uuid","description":"Coalesce Quality integration_id that identifies the dbt Core project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.20.sqlMeshAudit.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.20.sqlMeshAudit.fqn","typeLabel":"string"},"auditId":{"type":"string","description":"Identifier of the audit","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.20.sqlMeshAudit.auditId","typeLabel":"string"}},"title":"sql_mesh_audit","required":["integrationId","fqn","auditId"],"additionalProperties":false,"description":"SQLMesh Audit identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.20.sqlMeshAudit","typeLabel":"sql_mesh_audit · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.20.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.20","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["sqlMeshModel"],"properties":{"sqlMeshModel":{"type":"object","properties":{"integrationId":{"type":"string","format":"uuid","description":"Coalesce Quality integration_id that identifies the dbt Core project","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.21.sqlMeshModel.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.21.sqlMeshModel.fqn","typeLabel":"string"}},"title":"sql_mesh_model","required":["integrationId","fqn"],"additionalProperties":false,"description":"SQLMesh Model identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.21.sqlMeshModel","typeLabel":"sql_mesh_model · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.21.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.21","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["synqPath"],"properties":{"synqPath":{"type":"object","properties":{"path":{"type":"string","description":"Coalesce Quality path that identifies the Coalesce Quality entity, needs to be one of supported paths","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.22.synqPath.path","typeLabel":"string"}},"title":"synq_path","required":["path"],"additionalProperties":false,"description":"SynqPath identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.22.synqPath","typeLabel":"synq_path · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.22.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.22","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["trinoTable"],"properties":{"trinoTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the Trino instance","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.23.trinoTable.host","typeLabel":"string"},"catalog":{"type":"string","description":"Trino catalog","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.23.trinoTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Trino schema","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.23.trinoTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Trino table or view","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.23.trinoTable.table","typeLabel":"string"}},"title":"trino_table","required":["host","catalog","schema","table"],"additionalProperties":false,"description":"Trino table identifier","isRequired":true,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.23.trinoTable","typeLabel":"trino_table · object"},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.23.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX].oneOf.23","typeLabel":"Identifier · object"}],"uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities.items.[INDEX]","typeLabel":"Identifier · object"},"title":"affected_entities","description":"Identifiers of entities directly affected by this change.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntities","typeLabel":"Identifier · object[]"},"affectedEntitiesSynqPaths":{"type":"array","items":{"type":"string","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntitiesSynqPaths.items.[INDEX]","typeLabel":"string"},"title":"affected_entities_synq_paths","description":"Coalesce Quality paths of entities directly affected by this change.","uniqueKey":"changes.items.[INDEX].oneOf.2.affectedEntitiesSynqPaths","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"changes.items.[INDEX].oneOf.2","typeLabel":"EntityChange · object"}],"uniqueKey":"changes.items.[INDEX]","typeLabel":"EntityChange · object"},"description":"List of recent changes to the state of entity. Changes are returned from newest to oldest.\n Each change includes:\n - The type of change (git commit, schema change, SQL definition change)\n - When the change occurred\n - Details specific to the type of change\n - Metadata about who made the change","uniqueKey":"changes","typeLabel":"EntityChange · object[]"},"pageInfo":{"oneOf":[{"type":"object","properties":{"totalCount":{"type":"integer","format":"int32","description":"Total number of items matching the request. May not be available for cursor-based pagination\n where the total is unknown or expensive to compute.\n Deprecated: most of the APIs which require pagination don't know the total count.","deprecated":true,"uniqueKey":"pageInfo.oneOf.0.totalCount","typeLabel":"integer\u003cint32>"},"count":{"type":"integer","format":"int32","description":"Number of items returned in this response.","uniqueKey":"pageInfo.oneOf.0.count","typeLabel":"integer\u003cint32>"},"lastId":{"type":"string","description":"Opaque cursor token for fetching the next page of results. Pass this value as the cursor\n in the next Pagination request to continue pagination. Empty if there are no more pages.","uniqueKey":"pageInfo.oneOf.0.lastId","typeLabel":"string"}},"title":"PageInfo","additionalProperties":false,"description":"Pagination information for navigating through results.","uniqueKey":"pageInfo.oneOf.0","typeLabel":"PageInfo · object"},{"type":"null","properties":{"totalCount":{"type":"integer","format":"int32","description":"Total number of items matching the request. May not be available for cursor-based pagination\n where the total is unknown or expensive to compute.\n Deprecated: most of the APIs which require pagination don't know the total count.","deprecated":true},"count":{"type":"integer","format":"int32","description":"Number of items returned in this response."},"lastId":{"type":"string","description":"Opaque cursor token for fetching the next page of results. Pass this value as the cursor\n in the next Pagination request to continue pagination. Empty if there are no more pages."}},"title":"PageInfo","additionalProperties":false,"description":"Pagination information for navigating through results.","uniqueKey":"pageInfo.oneOf.1","typeLabel":"null"}],"uniqueKey":"pageInfo","typeLabel":"PageInfo · object | null"}},"title":"ListResponse","additionalProperties":false,"description":"ListResponse contains the list of changes made to the requested entity.","uniqueKey":"","typeLabel":"ListResponse · object"},"examples":{"Example":{"title":"Example","value":{"changes":[{"entityId":{"airflowDag":{"integrationId":"\u003cstring>","dagId":"\u003cstring>"},"entityId":"\u003cstring>"},"changeId":"\u003cstring>","changeDetectedAt":"2023-01-15T01:30:15.01Z","gitCommit":{"hash":"\u003cstring>","author":{"name":"\u003cstring>","email":"\u003cstring>","createdAt":"2023-01-15T01:30:15.01Z"},"committer":{"name":"\u003cstring>","email":"\u003cstring>","createdAt":"2023-01-15T01:30:15.01Z"},"message":"\u003cstring>","shortMessage":"\u003cstring>","fileChangeStats":{},"changedFilePaths":["\u003cstring>"],"relatedChangedFilePaths":["\u003cstring>"],"branchName":"\u003cstring>","cloneUrl":"\u003cstring>","webCommitUrl":"\u003cstring>","directoryChanges":[{"directoryPath":"\u003cstring>","filesChanged":123,"totalLinesAdded":123,"totalLinesRemoved":123,"subdirs":"\u003carray>","topFiles":[{"filePath":"\u003cstring>","linesAdded":123,"linesRemoved":123}]}],"changesByFileType":{},"statistics":{"totalFiles":123,"totalLinesAdded":123,"totalLinesRemoved":123,"distribution":{"filesWithSmallChanges":123,"filesWithMediumChanges":123,"filesWithLargeChanges":123,"filesAdded":123,"filesModified":123,"filesDeleted":123},"topChanges":[{"filePath":"\u003cstring>","linesAdded":123,"linesRemoved":123,"totalLinesChanged":123}]}},"entitySynqPath":"\u003cstring>","affectedEntities":[{"airflowDag":{"integrationId":"\u003cstring>","dagId":"\u003cstring>"},"entityId":"\u003cstring>"}],"affectedEntitiesSynqPaths":["\u003cstring>"]}],"pageInfo":{"totalCount":123,"count":123,"lastId":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"85f48775-9ef8-48fb-a7f7-5dbc785cd09f":{"bearerAuth":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"82cf4404-d9d3-43bb-9fb0-2f40a78dde7b":{"url":"https://developer.synq.io"},"aa6da49a-b0c5-4d36-8910-d2ed76885994":{"url":"https://api.us.synq.io"},"c9d25553-4913-481a-b29f-92bb1f2b1ce2":{"url":"https://api.au.synq.io"}},"schemas":{"9aa48dcc-3dc1-40e9-bf59-0a21c9499772":{"oneOf":[{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["airflowDag"],"properties":{"airflowDag":{"type":"object","properties":{"integrationId":{"type":"string","description":"Coalesce Quality integration_id that identifies the Airflow instance","isRequired":true},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true}},"title":"airflow_dag","required":["integrationId","dagId"],"additionalProperties":false,"description":"Airflow DAG identifier","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["airflowTask"],"properties":{"airflowTask":{"type":"object","properties":{"integrationId":{"type":"string","description":"Coalesce Quality integration_id that identifies the Airflow instance","isRequired":true},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true},"taskId":{"type":"string","description":"Airflow task_id that identifies the task within the DAG","isRequired":true}},"title":"airflow_task","required":["integrationId","dagId","taskId"],"additionalProperties":false,"description":"Airflow task identifier within a given DAG","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["athenaTable"],"properties":{"athenaTable":{"type":"object","properties":{"instance":{"type":"string","description":"AWS account and region the Athena workgroup runs in, formatted as\n \"\u003caccount-id>.\u003cregion>\" (e.g. \"123456789012.eu-west-1\"). Auto-derived\n from sts:GetCallerIdentity at integration setup time.","isRequired":true},"catalog":{"type":"string","description":"Glue Data Catalog name. Almost always \"AwsDataCatalog\" — the default\n catalog for Athena unless the customer registered a federated catalog.","isRequired":true},"database":{"type":"string","description":"Glue database (the namespace users typically filter on).","isRequired":true},"table":{"type":"string","description":"Glue table or view name.","isRequired":true}},"title":"athena_table","required":["instance","catalog","database","table"],"additionalProperties":false,"description":"Amazon Athena (Glue) table identifier","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["bigqueryTable"],"properties":{"bigqueryTable":{"type":"object","properties":{"project":{"type":"string","description":"BigQuery project","isRequired":true},"dataset":{"type":"string","description":"BigQuery dataset id","isRequired":true},"table":{"type":"string","description":"BigQuery table name","isRequired":true}},"title":"bigquery_table","required":["project","dataset","table"],"additionalProperties":false,"description":"BigQuery table identifier","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["clickhouseTable"],"properties":{"clickhouseTable":{"type":"object","properties":{"host":{"type":"string","description":"Clickhouse hostname without port","isRequired":true},"schema":{"type":"string","description":"Clickhouse database","isRequired":true},"table":{"type":"string","description":"Clickhouse table","isRequired":true}},"title":"clickhouse_table","required":["host","schema","table"],"additionalProperties":false,"description":"Clickhouse table identifier","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["custom"],"properties":{"custom":{"type":"object","properties":{"id":{"type":"string","description":"Id that identifies the custom entity\n The Id should be unique within the custom entity Identifier.","isRequired":true}},"title":"custom","required":["id"],"additionalProperties":false,"description":"Custom identifier to be used with all custom created entities","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["databricksTable"],"properties":{"databricksTable":{"type":"object","properties":{"workspace":{"type":"string","description":"URL of Databricks workspace","isRequired":true},"catalog":{"type":"string","description":"Databricks catalog","isRequired":true},"schema":{"type":"string","description":"Databricks schema","isRequired":true},"table":{"type":"string","description":"Databricks table or view","isRequired":true}},"title":"databricks_table","required":["workspace","catalog","schema","table"],"additionalProperties":false,"description":"Databricks table identifier","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["dataproduct"],"properties":{"dataproduct":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Dataproduct id that identifies the Dataproduct","isRequired":true}},"title":"dataproduct","required":["id"],"additionalProperties":false,"description":"Dataproduct identifier","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["db2Table"],"properties":{"db2Table":{"type":"object","properties":{"host":{"type":"string","description":"Host name of the Db2 server","isRequired":true},"database":{"type":"string","description":"Database name or alias, as in `CONNECT TO \u003cdatabase>`","isRequired":true},"schema":{"type":"string","description":"Db2 schema (e.g. \"DB2INST1\")","isRequired":true},"table":{"type":"string","description":"Db2 table or view","isRequired":true}},"title":"db2_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"IBM Db2 LUW table identifier","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["dbtCloudNode"],"properties":{"dbtCloudNode":{"type":"object","properties":{"projectId":{"type":"string","description":"Your dbt Cloud project id","isRequired":true},"nodeId":{"type":"string","description":"Dbt node_id that identifies one of dbt DAG nodes (model, test, etc)","isRequired":true},"accountId":{"type":"string","description":"Your dbt Cloud account id"}},"title":"dbt_cloud_node","required":["projectId","nodeId"],"additionalProperties":false,"description":"Dbt node that identifies one of dbt DAG nodes (model, test, etc) in dbt Cloud project","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["dbtCoreNode"],"properties":{"dbtCoreNode":{"type":"object","properties":{"integrationId":{"type":"string","description":"Opaque identifier of the dbt Core project. Usually the Coalesce Quality\n integration id (a UUID), but may also be the dbt project name from\n manifest.json when the integration is configured to identify assets by\n project name. Treat it as an opaque string, not a UUID.","isRequired":true},"nodeId":{"type":"string","description":"Dbt node_id that identifies one of dbt DAG nodes (model, test, etc)","isRequired":true}},"title":"dbt_core_node","required":["integrationId","nodeId"],"additionalProperties":false,"description":"Dbt node that identifies one of dbt DAG nodes (model, test, etc) in dbt Core project","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["fabricTable"],"properties":{"fabricTable":{"type":"object","properties":{"instance":{"type":"string","description":"Workspace SQL analytics endpoint host, e.g.\n \"\u003cworkspace-id>.datawarehouse.fabric.microsoft.com\".","isRequired":true},"database":{"type":"string","description":"Fabric warehouse / lakehouse (database).","isRequired":true},"schema":{"type":"string","description":"Schema within the database.","isRequired":true},"table":{"type":"string","description":"Table or view name.","isRequired":true},"workspaceId":{"type":"string","description":"Fabric workspace GUID, decoded from the endpoint host in `instance`.\n Optional and informational: the table is addressed by\n instance/database/schema/table, so leave it empty if you don't have it —\n it does not affect how the identifier resolves."},"tenantId":{"type":"string","description":"Entra (Azure AD) tenant GUID, decoded from the endpoint host in `instance`.\n Optional and informational, like workspace_id."}},"title":"fabric_table","required":["instance","database","schema","table"],"additionalProperties":false,"description":"Microsoft Fabric table identifier","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["monitor"],"properties":{"monitor":{"type":"object","properties":{"monitoredId":{"$circularRef":"9aa48dcc-3dc1-40e9-bf59-0a21c9499772","description":"Identifier of the monitored entity","isRequired":true},"monitorId":{"type":"string","description":"Identifier of the monitor","isRequired":true},"segment":{"oneOf":[{"type":"string","description":"Optional monitor segmentation identifier"},{"type":"null","description":"Optional monitor segmentation identifier"}]},"integrationId":{"oneOf":[{"type":"string","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true},{"type":"null","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true}]}},"title":"monitor","required":["monitoredId","monitorId"],"additionalProperties":false,"description":"Monitor identifier","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["mssqlTable"],"properties":{"mssqlTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the SQL Server instance","isRequired":true},"database":{"type":"string","description":"SQL Server database","isRequired":true},"schema":{"type":"string","description":"SQL Server schema (e.g. \"dbo\")","isRequired":true},"table":{"type":"string","description":"SQL Server table or view","isRequired":true}},"title":"mssql_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"SQL Server table identifier","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["mysqlTable"],"properties":{"mysqlTable":{"type":"object","properties":{"host":{"type":"string","description":"Mysql hostname without port","isRequired":true},"schema":{"type":"string","description":"Mysql database","isRequired":true},"table":{"type":"string","description":"Mysql table","isRequired":true}},"title":"mysql_table","required":["host","schema","table"],"additionalProperties":false,"description":"Mysql table identifier","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["oracleTable"],"properties":{"oracleTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the Oracle instance","isRequired":true},"serviceName":{"type":"string","description":"Oracle service name (PDB)","isRequired":true},"schema":{"type":"string","description":"Oracle schema (= owning user)","isRequired":true},"table":{"type":"string","description":"Oracle table or view","isRequired":true}},"title":"oracle_table","required":["host","serviceName","schema","table"],"additionalProperties":false,"description":"Oracle table identifier","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["postgresTable"],"properties":{"postgresTable":{"type":"object","properties":{"host":{"type":"string","description":"Postgres hostname without port","isRequired":true},"database":{"type":"string","description":"Postgres database","isRequired":true},"schema":{"type":"string","description":"Postgres schema","isRequired":true},"table":{"type":"string","description":"Postgres table","isRequired":true}},"title":"postgres_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"Postgres table identifier","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["redshiftTable"],"properties":{"redshiftTable":{"type":"object","properties":{"database":{"type":"string","description":"Redshift database","isRequired":true},"schema":{"type":"string","description":"Redshift schema","isRequired":true},"table":{"type":"string","description":"Redshift table","isRequired":true},"cluster":{"type":"string","description":"Required. Host of the Redshift endpoint, as in the connection, for example\n `my-cluster.abc123.eu-west-1.redshift.amazonaws.com`. A port suffix is\n accepted and ignored. The bare cluster name (`my-cluster`) is not enough,\n because one name can exist in more than one account or region. A response\n returns the host in its normalized form, which is also accepted on input.\n\n The rule below also refuses an empty value. It is not `required`, because\n `required` stops the other rules and its error does not say what to send.\nredshift_table.cluster.full_host // cluster must be the full host of the Redshift endpoint from the connection, for example my-cluster.abc123.eu-west-1.redshift.amazonaws.com\n"}},"title":"redshift_table","required":["database","schema","table"],"additionalProperties":false,"description":"Redshift table identifier","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["savedView"],"properties":{"savedView":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Saved view id (client-supplied UUID) that identifies the saved view","isRequired":true}},"title":"saved_view","required":["id"],"additionalProperties":false,"description":"Saved view identifier","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["snowflakeTable"],"properties":{"snowflakeTable":{"type":"object","properties":{"account":{"type":"string","description":"Snowflake account","isRequired":true},"database":{"type":"string","description":"Snowflake database","isRequired":true},"schema":{"type":"string","description":"Snowflake schema","isRequired":true},"table":{"type":"string","description":"Snowflake table","isRequired":true}},"title":"snowflake_table","required":["account","database","schema","table"],"additionalProperties":false,"description":"Snowflake table identifier","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["sqlMeshAudit"],"properties":{"sqlMeshAudit":{"type":"object","properties":{"integrationId":{"type":"string","format":"uuid","description":"Coalesce Quality integration_id that identifies the dbt Core project","isRequired":true},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true},"auditId":{"type":"string","description":"Identifier of the audit","isRequired":true}},"title":"sql_mesh_audit","required":["integrationId","fqn","auditId"],"additionalProperties":false,"description":"SQLMesh Audit identifier","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["sqlMeshModel"],"properties":{"sqlMeshModel":{"type":"object","properties":{"integrationId":{"type":"string","format":"uuid","description":"Coalesce Quality integration_id that identifies the dbt Core project","isRequired":true},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true}},"title":"sql_mesh_model","required":["integrationId","fqn"],"additionalProperties":false,"description":"SQLMesh Model identifier","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["synqPath"],"properties":{"synqPath":{"type":"object","properties":{"path":{"type":"string","description":"Coalesce Quality path that identifies the Coalesce Quality entity, needs to be one of supported paths","isRequired":true}},"title":"synq_path","required":["path"],"additionalProperties":false,"description":"SynqPath identifier","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false},{"type":"object","title":"Identifier","description":"Identifier is a unique reference to an entity in Coalesce Quality system. Entity identifiers\n are designed to closely mimic identifiers used by data platforms and tools. To construct\n an identifier, you need to know the kind of the entity and the ids that you would normally\n use to identify it in the data platform or tool. For example, to identify a table in BigQuery,\n you would need to know the project, dataset, and table names.\n\n Every identifier the API RETURNS also carries `entity_id`, the entity's opaque\n id. Read it when you just need to name the entity again — it is one string for\n every platform, where the structured variants below only cover the platforms\n that have one.","required":["trinoTable"],"properties":{"trinoTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the Trino instance","isRequired":true},"catalog":{"type":"string","description":"Trino catalog","isRequired":true},"schema":{"type":"string","description":"Trino schema","isRequired":true},"table":{"type":"string","description":"Trino table or view","isRequired":true}},"title":"trino_table","required":["host","catalog","schema","table"],"additionalProperties":false,"description":"Trino table identifier","isRequired":true},"entityId":{"type":"string","title":"entity_id","maxLength":1024,"description":"Opaque id of the entity, set on every identifier the API returns. Round-trip\n it verbatim; the format is not part of this contract and may change, and it\n is never constructed by hand.\n\n OUTPUT ONLY. On a request this field is ignored — the structured variant is\n what resolves. That is what lets you hand an identifier straight back\n unchanged, or edit its structured fields, without the two disagreeing about\n which entity you meant. To name an entity BY opaque id on a request, set the\n `synq_path` variant to that id: it carries exactly this string, and it is\n also how an entity whose platform has no structured variant is named."}},"additionalProperties":false}]},"88900c54-2675-41ec-96ca-c22b2459a7ed":{"type":"object","properties":{"directoryPath":{"type":"string","description":"Path of the directory."},"filesChanged":{"type":"integer","format":"int32","description":"Number of files changed in this directory (excluding subdirectories)."},"totalLinesAdded":{"type":"integer","format":"int32","description":"Total lines added in this directory (excluding subdirectories)."},"totalLinesRemoved":{"type":"integer","format":"int32","description":"Total lines removed in this directory (excluding subdirectories)."},"subdirs":{"type":"array","items":{"$circularRef":"88900c54-2675-41ec-96ca-c22b2459a7ed"},"description":"Subdirectory summaries."},"topFiles":{"type":"array","items":{"type":"object","properties":{"filePath":{"type":"string","description":"Path of the file relative to the directory."},"linesAdded":{"type":"integer","format":"int32","description":"Number of lines added."},"linesRemoved":{"type":"integer","format":"int32","description":"Number of lines removed."}},"title":"TopFileChange","additionalProperties":false,"description":"TopFileChange represents a significant file change within a directory."},"description":"Top 3-5 most significant file changes in this directory."}},"title":"DirectoryChangeSummary","additionalProperties":false,"description":"DirectoryChangeSummary provides hierarchical directory-level statistics."}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"synq-15","siteName":"Coalesce Quality Documentation","title":"List - Coalesce Quality Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-06T12:49:16.205Z","originalFileLocation":"api-reference/synqentitieschangesv1changesservice/list.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Retrieves the complete change history for specified entities. Returns all change types (git commits, schema changes, SQL changes) in chronological order (newest first). Changes include lineage context showing upstream_distance when changes affect dependencies.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Coalesce Quality Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/synq-15/B7wGMZU-A3ADVMov/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/synq-15/B7wGMZU-A3ADVMov/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/synq-15/B7wGMZU-A3ADVMov/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/synq-15/B7wGMZU-A3ADVMov/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/synq-15/B7wGMZU-A3ADVMov/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/synq-15/B7wGMZU-A3ADVMov/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/synq-15/B7wGMZU-A3ADVMov/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/synq-15/B7wGMZU-A3ADVMov/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/synq-15/B7wGMZU-A3ADVMov/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"List - Coalesce Quality Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Retrieves the complete change history for specified entities. Returns all change types (git commits, schema changes, SQL changes) in chronological order (newest first). Changes include lineage context showing upstream_distance when changes affect dependencies.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Coalesce Quality Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.synq.io/api-reference/synqentitieschangesv1changesservice/list\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://synq-15.mintlify.site/_mintlify/api/og/v2?division=synq.entities.changes.v1.ChangesService\u0026amp;title=List\u0026amp;description=Retrieves+the+complete+change+history+for+specified+entities.%0A+Returns+all+change+types+%28git+commits%2C+schema+changes%2C+SQL+changes%29+in+chronological+order+%28newes\u0026amp;theme=c4b0b33f9bac9b90d2a12108\u0026amp;signature=e01dac035f9e11c40b17aca74f1fb409802290b0dd00b399fda32974572de887\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"List - Coalesce Quality Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Retrieves the complete change history for specified entities. Returns all change types (git commits, schema changes, SQL changes) in chronological order (newest first). Changes include lineage context showing upstream_distance when changes affect dependencies.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://synq-15.mintlify.site/_mintlify/api/og/v2?division=synq.entities.changes.v1.ChangesService\u0026amp;title=List\u0026amp;description=Retrieves+the+complete+change+history+for+specified+entities.%0A+Returns+all+change+types+%28git+commits%2C+schema+changes%2C+SQL+changes%29+in+chronological+order+%28newes\u0026amp;theme=c4b0b33f9bac9b90d2a12108\u0026amp;signature=e01dac035f9e11c40b17aca74f1fb409802290b0dd00b399fda32974572de887\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/synq-15/B7wGMZU-A3ADVMov/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Coalesce Quality Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#135594\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.synq.io/api-reference/synqentitieschangesv1changesservice/list\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/synqentitieschangesv1changesservice/list.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.synq.io/#organization\",\"name\":\"Coalesce Quality Documentation\",\"url\":\"https://docs.synq.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/synq-15/VrNXC6Gv5xCECUGd/logo/coalesce-quality-logo.svg?fit=max\u0026auto=format\u0026n=VrNXC6Gv5xCECUGd\u0026q=85\u0026s=4ad60b616ed815902c710f413d59cf63\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.synq.io#website\",\"name\":\"Coalesce Quality Documentation\",\"url\":\"https://docs.synq.io\",\"publisher\":{\"@id\":\"https://docs.synq.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.synq.io/api-reference/synqentitieschangesv1changesservice/list#webpage\",\"url\":\"https://docs.synq.io/api-reference/synqentitieschangesv1changesservice/list\",\"name\":\"List\",\"description\":\"Retrieves the complete change history for specified entities. Returns all change types (git commits, schema changes, SQL changes) in chronological order (newest first). Changes include lineage context showing upstream_distance when changes affect dependencies.\",\"dateModified\":\"2026-11-06T12:49:16.205Z\",\"isPartOf\":{\"@id\":\"https://docs.synq.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.synq.io/api-reference/synqentitieschangesv1changesservice/list#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.synq.io/api-reference/synqentitieschangesv1changesservice/list#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Developer API\",\"item\":\"https://docs.synq.io/api-reference/getting-started\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"REST API\",\"item\":\"https://docs.synq.io/api-reference/synqagentreconv1yamlservice/parseyaml\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"List\",\"item\":\"https://docs.synq.io/api-reference/synqentitieschangesv1changesservice/list\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.synq.io/api-reference/synqentitieschangesv1changesservice/list#apireference\",\"headline\":\"List\",\"name\":\"List\",\"description\":\"Retrieves the complete change history for specified entities. Returns all change types (git commits, schema changes, SQL changes) in chronological order (newest first). Changes include lineage context showing upstream_distance when changes affect dependencies.\",\"url\":\"https://docs.synq.io/api-reference/synqentitieschangesv1changesservice/list\",\"mainEntityOfPage\":{\"@id\":\"https://docs.synq.io/api-reference/synqentitieschangesv1changesservice/list#webpage\"},\"dateModified\":\"2026-11-06T12:49:16.205Z\",\"publisher\":{\"@id\":\"https://docs.synq.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.synq.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Coalesce Quality Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Coalesce Quality Documentation","nav":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://coalesce.io/resources/"},{"anchor":"Changelog","icon":"rocket","href":"https://synq.io/changelog"}]},"anchors":[{"anchor":"Documentation","icon":"book-open","groups":[{"group":"Get Started","pages":[{"title":"Introduction","href":"/introduction"},{"title":"Command-line tools","href":"/cli"}]},{"group":"Alerts","pages":[{"title":"Alerts overview","href":"/alerts/alert-overview"},{"title":"Setting up alerts","href":"/alerts/setting-up-alerts"},{"title":"Tagging owners","href":"/alerts/tagging-owners"},{"title":"Routing alerts","href":"/alerts/routing-alerts"},{"title":"Business alerts","href":"/alerts/business-alerts"},{"title":"Writing alert templates","href":"/alerts/templates"}]},{"group":"Monitors","pages":[{"title":"Monitors overview","href":"/monitors/monitors-overview"},{"title":"Setting up monitors","href":"/monitors/setting-up-monitors"},{"title":"Setting up deployment rules","href":"/monitors/deployment-rules"},{"title":"Configuring monitor sensitivity","href":"/monitors/monitor-sensitivity"},{"title":"Monitor feedback","href":"/monitors/monitor-feedback"},{"title":"Muting monitors","href":"/monitors/muting-monitors"},{"title":"Defining monitors in code","href":"/monitors/monitors-as-code"},{"title":"Agent workflow","href":"/monitors/agent-workflow"},{"title":"Monitors CLI reference","href":"/monitors/cli"},{"title":"SQL Tests","href":"/monitors/sql-tests"},{"title":"Running checks from your pipeline","href":"/monitors/on-demand-checks"},{"title":"Working with time dimensions and scheduling for monitors","href":"/monitors/time-dimensions"},{"title":"What monitoring costs in your warehouse","href":"/monitors/warehouse-cost"}]},{"group":"Monitors Types","pages":[{"title":"Table stats monitor","href":"/monitor-types/table-stats-monitor"},{"title":"Volume monitor","href":"/monitor-types/volume-monitor"},{"title":"Freshness monitor","href":"/monitor-types/freshness-monitor"},{"title":"Custom SQL monitor","href":"/monitor-types/custom-sql-monitor"},{"title":"Field stats monitor","href":"/monitor-types/fieldstats"},{"title":"Schema monitor","href":"/monitor-types/schema-monitor"}]},{"group":"Reconciliations","pages":[{"title":"Reconciliation overview","href":"/reconciliation/overview"},{"title":"Getting started","href":"/reconciliation/getting-started"},{"title":"Concepts and vocabulary","href":"/reconciliation/concepts"},{"title":"Authoring suites","href":"/reconciliation/authoring-suites"},{"title":"Comparison modes","href":"/reconciliation/comparison-modes"},{"title":"Time windows and cutoffs","href":"/reconciliation/time-windows-and-cutoffs"},{"title":"Running locally","href":"/reconciliation/running-locally"},{"title":"Workspace suites","href":"/reconciliation/workspace-suites"},{"title":"Investigating results","href":"/reconciliation/investigating-results"},{"title":"CI/CD and automation","href":"/reconciliation/cicd-and-automation"},{"title":"How comparison works","href":"/reconciliation/how-comparison-works"},{"title":"Agent workflow","href":"/reconciliation/agent-workflow"},{"title":"Reconciliation CLI reference","href":"/reconciliation/cli"}]},{"group":"Data Products","pages":[{"title":"Data products overview","href":"/data-products/data-products-overview"},{"title":"Creating a data product","href":"/data-products/creating-a-data-product"},{"title":"BI Status Badge","href":"/data-products/bi-badge"}]},{"group":"Scout AI","pages":[{"title":"Scout overview","href":"/scout/scout"},{"title":"Setting up and configuring Scout","href":"/scout/setting-up-scout"},{"title":"Scout on-premise setup","href":"/scout/on-premise"},{"title":"MCP","href":"/scout/mcp"},{"title":"Agent workflow","href":"/scout/agent-workflow"},{"title":"Scout CLI reference","href":"/scout/cli"}]},{"group":"Ownership","pages":[{"title":"Ownership overview","href":"/ownership/ownership-overview"},{"title":"Creating an owner","href":"/ownership/creating-an-owner"},{"title":"Domains","href":"/ownership/domains"}]},{"group":"Incidents","pages":[{"title":"Incidents overview","href":"/incidents/incident-overview"}]},{"group":"Analytics","pages":[{"title":"Analytics overview","href":"/analytics/analytics-overview"},{"title":"How metrics are calculated","href":"/analytics/how-metrics-are-calculated"},{"title":"Check categories","href":"/analytics/check-categories"}]},{"group":"Query activity","pages":[{"title":"Query activity","href":"/query-activity/overview"}]},{"group":"Lineage","pages":[{"title":"Lineage overview","href":"/lineage/lineage"},{"title":"Column-level lineage","href":"/lineage/column-level-lineage"}]},{"group":"BI Integrations","pages":[{"title":"Looker","href":"/bi-integrations/looker"},{"title":"Tableau","href":"/bi-integrations/tableau"},{"title":"Omni","href":"/bi-integrations/omni"}]},{"group":"Data Warehouse Integrations","pages":[{"title":"BigQuery","href":"/dw-integrations/bigquery"},{"title":"ClickHouse","href":"/dw-integrations/clickhouse"},{"title":"Databricks","href":"/dw-integrations/databricks"},{"title":"Microsoft Fabric","href":"/dw-integrations/fabric"},{"title":"Redshift","href":"/dw-integrations/redshift"},{"title":"Snowflake","href":"/dw-integrations/snowflake"},{"title":"Trino","href":"/dw-integrations/trino"},{"title":"DWH Agent","href":"/dw-integrations/agent"},{"title":"MotherDuck","href":"/dw-integrations/motherduck"}]},{"group":"Transactional databases","pages":[{"title":"Postgres","href":"/transactional-databases/postgres"},{"title":"MySQL","href":"/transactional-databases/mysql"},{"title":"Microsoft SQL Server","href":"/transactional-databases/mssql"},{"title":"Oracle","href":"/transactional-databases/oracle"},{"title":"IBM Db2","href":"/transactional-databases/db2"}]},{"group":"Code Integrations","pages":[{"title":"Code Integration Requirements","href":"/code-integrations/overview"},{"title":"GitHub Integration","href":"/code-integrations/github"},{"title":"GitLab Integration","href":"/code-integrations/gitlab"},{"title":"Bitbucket Integration","href":"/code-integrations/bitbucket"},{"title":"Azure DevOps Integration","href":"/code-integrations/azure-devops"},{"title":"Other Git Providers","href":"/code-integrations/ssh-git"}]},{"group":"dbt Integrations","pages":[{"title":"dbt Core","href":"/dbt-integrations/dbt-core"},{"title":"dbt Cloud","href":"/dbt-integrations/dbt-cloud"},{"title":"Coalesce Quality options for dbt","href":"/dbt-integrations/synq-options"}]},{"group":"SQLMesh Integrations","pages":[{"title":"SQLMesh","href":"/sqlmesh-integrations/sqlmesh"}]},{"group":"Coalesce Integrations","pages":[{"title":"Coalesce Transform","href":"/coalesce-integrations/coalesce-transform"},{"title":"Coalesce Catalog","href":"/coalesce-integrations/coalesce-catalog"}]},{"group":"Orchestration Tool Integrations","pages":[{"title":"Airflow","href":"/orchestration-integrations/airflow"},{"title":"Airflow + dbt Core Linking","href":"/orchestration-integrations/airflow-dbt-core"}]},{"group":"Alerting Integrations","pages":[{"title":"Slack","href":"/alert-integrations/slack"},{"title":"Email","href":"/alert-integrations/email"},{"title":"Microsoft Teams","href":"/alert-integrations/ms-teams"},{"title":"PagerDuty","href":"/alert-integrations/pagerduty"},{"title":"Opsgenie","href":"/alert-integrations/opsgenie"}]},{"group":"Catalogs","pages":[{"title":"Atlan","href":"/catalogs/atlan"}]},{"group":"Google Cloud Integrations","pages":[{"title":"Google Cloud Storage","href":"/gcp-integrations/cloud-storage"},{"title":"Google Cloud Pub/Sub","href":"/gcp-integrations/pubsub"}]},{"group":"Admin","pages":[{"title":"Single Sign-On (SSO)","href":"/admin/sso"},{"title":"Inviting new users","href":"/admin/invite_user"},{"title":"User roles","href":"/admin/user_roles"},{"title":"Monitor Usage","href":"/admin/monitor-usage"}]},{"group":"Security","pages":[{"title":"Security Policy","href":"/security/security"},{"title":"Subprocessors","href":"/security/subprocessors"},{"title":"Data Warehouse Access","href":"/security/dwh-access"},{"title":"Private Connectivity","href":"/security/private-connectivity"},{"title":"IP Whitelist","href":"/security/ip"}]},{"group":"Support","pages":[{"title":"Coalesce Quality Support","href":"/support/support"}]},{"group":"Developer API","pages":[{"title":"Getting Started","href":"/api-reference/getting-started"},{"title":"API Scopes","href":"/api-reference/scopes"},{"group":"REST API","pages":[{"group":"synq.agent.recon.v1.YamlService","pages":[{"title":"ParseYaml","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/agent/recon/v1/yaml/parse","href":"/api-reference/synqagentreconv1yamlservice/parseyaml"},{"title":"RenderYaml","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/agent/recon/v1/yaml/render","href":"/api-reference/synqagentreconv1yamlservice/renderyaml"},{"title":"ValidateSuite","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/agent/recon/v1/yaml/validate","href":"/api-reference/synqagentreconv1yamlservice/validatesuite"}]},{"group":"synq.alerts.services.v1.AlertsService","pages":[{"title":"Update","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /api/alerts/v1","href":"/api-reference/synqalertsservicesv1alertsservice/update"},{"title":"Create","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v1","href":"/api-reference/synqalertsservicesv1alertsservice/create"},{"title":"Delete","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/alerts/v1","href":"/api-reference/synqalertsservicesv1alertsservice/delete"},{"title":"BatchGet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v1/get","href":"/api-reference/synqalertsservicesv1alertsservice/batchget"},{"title":"List","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v1/list","href":"/api-reference/synqalertsservicesv1alertsservice/list"},{"title":"ToggleEnabled","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v1/toggle","href":"/api-reference/synqalertsservicesv1alertsservice/toggleenabled"}]},{"group":"synq.alerts.services.v2.AlertsService","pages":[{"title":"Upsert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /api/alerts/v2","href":"/api-reference/synqalertsservicesv2alertsservice/upsert"},{"title":"Create","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v2","href":"/api-reference/synqalertsservicesv2alertsservice/create"},{"title":"Delete","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/alerts/v2","href":"/api-reference/synqalertsservicesv2alertsservice/delete"},{"title":"BatchGet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v2/get","href":"/api-reference/synqalertsservicesv2alertsservice/batchget"},{"title":"GetIncidentOwnerAlert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/alerts/v2/incident-owner","href":"/api-reference/synqalertsservicesv2alertsservice/getincidentowneralert"},{"title":"ToggleIncidentOwnerAlert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v2/incident-owner","href":"/api-reference/synqalertsservicesv2alertsservice/toggleincidentowneralert"},{"title":"List","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v2/list","href":"/api-reference/synqalertsservicesv2alertsservice/list"},{"title":"Rename","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v2/rename","href":"/api-reference/synqalertsservicesv2alertsservice/rename"},{"title":"UpdateSettings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v2/settings","href":"/api-reference/synqalertsservicesv2alertsservice/updatesettings"},{"title":"UpdateTargets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v2/targets","href":"/api-reference/synqalertsservicesv2alertsservice/updatetargets"},{"title":"UpdateTemplate","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v2/template","href":"/api-reference/synqalertsservicesv2alertsservice/updatetemplate"},{"title":"SendTestAlert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v2/test","href":"/api-reference/synqalertsservicesv2alertsservice/sendtestalert"},{"title":"ToggleEnabled","description":"Enables or disables an existing alert configuration.\n The config can be identified by either ID or FQN.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v2/toggle","href":"/api-reference/synqalertsservicesv2alertsservice/toggleenabled"}]},{"group":"synq.entities.changes.v1.ChangesService","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/changes/v1","href":"/api-reference/synqentitieschangesv1changesservice/list"},{"title":"BatchChange","description":"Get multiple entity changes by their IDs in a single request.\n This is an optimized endpoint for fetching specific changes when you already know their IDs,\n rather than listing changes for an entity.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/changes/v1/by-id","href":"/api-reference/synqentitieschangesv1changesservice/batchchange"}]},{"group":"synq.entities.code.v1.CodeService","pages":[{"title":"ListCode","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/code/v1","href":"/api-reference/synqentitiescodev1codeservice/listcode"}]},{"group":"synq.entities.constraints.v1.TableConstraintsService","pages":[{"title":"GetTableConstraints","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/constraints/v1/table-constraints","href":"/api-reference/synqentitiesconstraintsv1tableconstraintsservice/gettableconstraints"}]},{"group":"synq.entities.coordinates.v1.DatabaseCoordinatesService","pages":[{"title":"BatchIdsByCoordinates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/coordinates/v1/database/by-fqn","href":"/api-reference/synqentitiescoordinatesv1databasecoordinatesservice/batchidsbycoordinates"},{"title":"BatchDatabaseCoordinates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/coordinates/v1/database/by-id","href":"/api-reference/synqentitiescoordinatesv1databasecoordinatesservice/batchdatabasecoordinates"}]},{"group":"synq.datachecks.v1.TriggerService","pages":[{"title":"TriggerDatachecks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datachecks/scheduler/v1/trigger","href":"/api-reference/synqdatachecksv1triggerservice/triggerdatachecks"}]},{"group":"synq.datachecks.sqltests.v1.SqlTestsDeploymentRulesService","pages":[{"title":"ListSqlTestDeploymentRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/datachecks/sql-test-deployment-rules/v1","href":"/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/listsqltestdeploymentrules"},{"title":"BatchDeleteSqlTestDeploymentRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/datachecks/sql-test-deployment-rules/v1/batch","href":"/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/batchdeletesqltestdeploymentrules"},{"title":"BatchDeploySqlTestDeploymentRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datachecks/sql-test-deployment-rules/v1/batch/deployed","href":"/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/batchdeploysqltestdeploymentrules"},{"title":"BatchGetSqlTestDeploymentRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datachecks/sql-test-deployment-rules/v1/by-id","href":"/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/batchgetsqltestdeploymentrules"},{"title":"DeploySqlTestDeploymentRule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datachecks/sql-test-deployment-rules/v1/deployed","href":"/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/deploysqltestdeploymentrule"},{"title":"GetSqlTestDeployOverview","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/datachecks/sql-test-deployment-rules/v1/overview","href":"/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/getsqltestdeployoverview"},{"title":"DeleteSqlTestDeploymentRule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/datachecks/sql-test-deployment-rules/v1/{id}","href":"/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/deletesqltestdeploymentrule"},{"title":"GetSqlTestDeployDeleteOverview","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/datachecks/sql-test-deployment-rules/v1/{id}/deleted","href":"/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/getsqltestdeploydeleteoverview"}]},{"group":"synq.datachecks.sqltests.v1.SqlTestsService","pages":[{"title":"ListSqlTests","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/datachecks/sqltests/v1","href":"/api-reference/synqdatacheckssqltestsv1sqltestsservice/listsqltests"},{"title":"BatchUpsertSqlTests","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datachecks/sqltests/v1","href":"/api-reference/synqdatacheckssqltestsv1sqltestsservice/batchupsertsqltests"},{"title":"BatchDeleteSqlTests","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/datachecks/sqltests/v1","href":"/api-reference/synqdatacheckssqltestsv1sqltestsservice/batchdeletesqltests"},{"title":"BatchGetSqlTests","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datachecks/sqltests/v1/by-id","href":"/api-reference/synqdatacheckssqltestsv1sqltestsservice/batchgetsqltests"}]},{"group":"synq.datachecks.testsuggestions.v1.TestSuggestionsService","pages":[{"title":"BatchGetTestSuggestionsForEntities","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/datachecks/testsuggestions/v1","href":"/api-reference/synqdatacheckstestsuggestionsv1testsuggestionsservice/batchgettestsuggestionsforentities"},{"title":"BatchCreateTestSuggestions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datachecks/testsuggestions/v1","href":"/api-reference/synqdatacheckstestsuggestionsv1testsuggestionsservice/batchcreatetestsuggestions"},{"title":"BatchAcceptTestSuggestions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/datachecks/testsuggestions/v1/accepted","href":"/api-reference/synqdatacheckstestsuggestionsv1testsuggestionsservice/batchaccepttestsuggestions"},{"title":"BatchRejectTestSuggestions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/datachecks/testsuggestions/v1/rejected","href":"/api-reference/synqdatacheckstestsuggestionsv1testsuggestionsservice/batchrejecttestsuggestions"}]},{"group":"synq.dataproducts.v1.DataproductsService","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/dataproducts/v1","href":"/api-reference/synqdataproductsv1dataproductsservice/list"},{"title":"Upsert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/dataproducts/v1","href":"/api-reference/synqdataproductsv1dataproductsservice/upsert"},{"title":"SetDefinition","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/dataproducts/v1/definition","href":"/api-reference/synqdataproductsv1dataproductsservice/setdefinition"},{"title":"UpsertDefinitionPart","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/dataproducts/v1/definition/part","href":"/api-reference/synqdataproductsv1dataproductsservice/upsertdefinitionpart"},{"title":"RemoveDefinitionPart","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/dataproducts/v1/definition/part/delete","href":"/api-reference/synqdataproductsv1dataproductsservice/removedefinitionpart"},{"title":"Delete","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/dataproducts/v1/delete","href":"/api-reference/synqdataproductsv1dataproductsservice/delete"},{"title":"Get","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/dataproducts/v1/get","href":"/api-reference/synqdataproductsv1dataproductsservice/get"}]},{"group":"synq.dataproducts.v2.DataproductsService","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/dataproducts/v2","href":"/api-reference/synqdataproductsv2dataproductsservice/list"},{"title":"Upsert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/dataproducts/v2","href":"/api-reference/synqdataproductsv2dataproductsservice/upsert"},{"title":"BatchGet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/dataproducts/v2/batch-get","href":"/api-reference/synqdataproductsv2dataproductsservice/batchget"},{"title":"Delete","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/dataproducts/v2/delete","href":"/api-reference/synqdataproductsv2dataproductsservice/delete"},{"title":"SetDefinition","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /api/dataproducts/v2/{id}/definition","href":"/api-reference/synqdataproductsv2dataproductsservice/setdefinition"},{"title":"UpsertDefinitionPart","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/dataproducts/v2/{id}/definition/parts","href":"/api-reference/synqdataproductsv2dataproductsservice/upsertdefinitionpart"},{"title":"RemoveDefinitionPart","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/dataproducts/v2/{id}/definition/parts/{part_id}","href":"/api-reference/synqdataproductsv2dataproductsservice/removedefinitionpart"},{"title":"ListMembers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/dataproducts/v2/{id}/members","href":"/api-reference/synqdataproductsv2dataproductsservice/listmembers"}]},{"group":"synq.ingest.dwh.v1.DwhService","pages":[{"title":"IngestTaskResults","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datawarehouse/v1/connection/{connection_id}/task/{task_id}/task-results","href":"/api-reference/synqingestdwhv1dwhservice/ingesttaskresults"},{"title":"IngestLineage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datawarehouse/v1/connection/{connection_id}/upload/{upload_id}/lineage","href":"/api-reference/synqingestdwhv1dwhservice/ingestlineage"},{"title":"IngestObjectInformation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datawarehouse/v1/connection/{connection_id}/upload/{upload_id}/object-information","href":"/api-reference/synqingestdwhv1dwhservice/ingestobjectinformation"},{"title":"IngestObjectMetrics","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datawarehouse/v1/connection/{connection_id}/upload/{upload_id}/object-metrics","href":"/api-reference/synqingestdwhv1dwhservice/ingestobjectmetrics"},{"title":"IngestQueryLogs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datawarehouse/v1/connection/{connection_id}/upload/{upload_id}/query-logs","href":"/api-reference/synqingestdwhv1dwhservice/ingestquerylogs"},{"title":"IngestSchemas","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datawarehouse/v1/connection/{connection_id}/upload/{upload_id}/schemas","href":"/api-reference/synqingestdwhv1dwhservice/ingestschemas"},{"title":"IngestSqlDefinitions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datawarehouse/v1/connection/{connection_id}/upload/{upload_id}/sql-definitions","href":"/api-reference/synqingestdwhv1dwhservice/ingestsqldefinitions"},{"title":"IngestTableConstraints","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datawarehouse/v1/connection/{connection_id}/upload/{upload_id}/table-constraints","href":"/api-reference/synqingestdwhv1dwhservice/ingesttableconstraints"}]},{"group":"synq.deliveries.v1.DeliveriesService","pages":[{"title":"ListDeliveries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/deliveries/v1","href":"/api-reference/synqdeliveriesv1deliveriesservice/listdeliveries"},{"title":"BatchGetDeliveries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/deliveries/v1/by-id","href":"/api-reference/synqdeliveriesv1deliveriesservice/batchgetdeliveries"},{"title":"SummariseDeliveries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/deliveries/v1/summarise","href":"/api-reference/synqdeliveriesv1deliveriesservice/summarisedeliveries"},{"title":"SendTestDelivery","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/deliveries/v1/test","href":"/api-reference/synqdeliveriesv1deliveriesservice/sendtestdelivery"},{"title":"ListAttempts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/deliveries/v1/{delivery_id}/attempts","href":"/api-reference/synqdeliveriesv1deliveriesservice/listattempts"},{"title":"Redeliver","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/deliveries/v1/{delivery_id}/redeliver","href":"/api-reference/synqdeliveriesv1deliveriesservice/redeliver"}]},{"group":"synq.domains.members.v1.DomainMembersService","pages":[{"title":"ListUserDomains","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/domains/members/v1/users/{user_id}/domains","href":"/api-reference/synqdomainsmembersv1domainmembersservice/listuserdomains"},{"title":"SetDefaultUserDomain","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/members/v1/{domain_id}/default-for-user","href":"/api-reference/synqdomainsmembersv1domainmembersservice/setdefaultuserdomain"},{"title":"ListDomainMembers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/domains/members/v1/{domain_id}/members","href":"/api-reference/synqdomainsmembersv1domainmembersservice/listdomainmembers"},{"title":"AddDomainMembers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/members/v1/{domain_id}/members","href":"/api-reference/synqdomainsmembersv1domainmembersservice/adddomainmembers"},{"title":"RemoveDomainMembers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/members/v1/{domain_id}/members/remove","href":"/api-reference/synqdomainsmembersv1domainmembersservice/removedomainmembers"}]},{"group":"synq.domains.v1.DomainsService","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/domains/v1","href":"/api-reference/synqdomainsv1domainsservice/list"},{"title":"Upsert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/v1","href":"/api-reference/synqdomainsv1domainsservice/upsert"},{"title":"BatchGet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/v1/batch-get","href":"/api-reference/synqdomainsv1domainsservice/batchget"},{"title":"Delete","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/v1/delete","href":"/api-reference/synqdomainsv1domainsservice/delete"},{"title":"GetUsage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/domains/v1/usage","href":"/api-reference/synqdomainsv1domainsservice/getusage"},{"title":"SetDefinition","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /api/domains/v1/{domain_id}/definition","href":"/api-reference/synqdomainsv1domainsservice/setdefinition"},{"title":"UpsertDefinitionPart","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/v1/{domain_id}/definition/parts","href":"/api-reference/synqdomainsv1domainsservice/upsertdefinitionpart"},{"title":"RemoveDefinitionPart","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/domains/v1/{domain_id}/definition/parts/{part_id}","href":"/api-reference/synqdomainsv1domainsservice/removedefinitionpart"},{"title":"FetchDomainWithSubDomains","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/domains/v1/{domain_id}/sub-domains","href":"/api-reference/synqdomainsv1domainsservice/fetchdomainwithsubdomains"}]},{"group":"synq.domains.v2.DomainsService","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/domains/v2","href":"/api-reference/synqdomainsv2domainsservice/list"},{"title":"Upsert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/v2","href":"/api-reference/synqdomainsv2domainsservice/upsert"},{"title":"BatchGet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/v2/batch-get","href":"/api-reference/synqdomainsv2domainsservice/batchget"},{"title":"Delete","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/v2/delete","href":"/api-reference/synqdomainsv2domainsservice/delete"},{"title":"GetUsage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/domains/v2/usage","href":"/api-reference/synqdomainsv2domainsservice/getusage"},{"title":"SetDefinition","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /api/domains/v2/{id}/definition","href":"/api-reference/synqdomainsv2domainsservice/setdefinition"},{"title":"UpsertDefinitionPart","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/v2/{id}/definition/parts","href":"/api-reference/synqdomainsv2domainsservice/upsertdefinitionpart"},{"title":"RemoveDefinitionPart","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/domains/v2/{id}/definition/parts/{part_id}","href":"/api-reference/synqdomainsv2domainsservice/removedefinitionpart"},{"title":"ListMembers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/domains/v2/{id}/members","href":"/api-reference/synqdomainsv2domainsservice/listmembers"},{"title":"FetchDomainWithSubDomains","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/domains/v2/{id}/sub-domains","href":"/api-reference/synqdomainsv2domainsservice/fetchdomainwithsubdomains"}]},{"group":"synq.entities.activity.v1alpha.ActivityService","pages":[{"title":"ListActors","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/activity/v1alpha/actor-list","href":"/api-reference/synqentitiesactivityv1alphaactivityservice/listactors"},{"title":"GetActorSummary","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/activity/v1alpha/actor-summary","href":"/api-reference/synqentitiesactivityv1alphaactivityservice/getactorsummary"},{"title":"ListEntityActors","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/activity/v1alpha/actors","href":"/api-reference/synqentitiesactivityv1alphaactivityservice/listentityactors"},{"title":"GetActivityOverview","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/activity/v1alpha/overview","href":"/api-reference/synqentitiesactivityv1alphaactivityservice/getactivityoverview"},{"title":"ListPersonActivity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/activity/v1alpha/person","href":"/api-reference/synqentitiesactivityv1alphaactivityservice/listpersonactivity"},{"title":"BatchGetPopularity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/activity/v1alpha/popularity","href":"/api-reference/synqentitiesactivityv1alphaactivityservice/batchgetpopularity"},{"title":"GetEntityActivitySeries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/activity/v1alpha/series","href":"/api-reference/synqentitiesactivityv1alphaactivityservice/getentityactivityseries"},{"title":"ListAccessSignals","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/activity/v1alpha/signals","href":"/api-reference/synqentitiesactivityv1alphaactivityservice/listaccesssignals"},{"title":"BatchGetEntityUsage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/activity/v1alpha/usage","href":"/api-reference/synqentitiesactivityv1alphaactivityservice/batchgetentityusage"}]},{"group":"synq.entities.annotations.v1.AnnotationsService","pages":[{"title":"ListAnnotations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/entities/annotations/v1","href":"/api-reference/synqentitiesannotationsv1annotationsservice/listannotations"},{"title":"BatchGetEntityAnnotations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/annotations/v1/batchGet","href":"/api-reference/synqentitiesannotationsv1annotationsservice/batchgetentityannotations"}]},{"group":"synq.entities.checks.v1.ChecksCategoriesService","pages":[{"title":"ListCheckCategories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/entities/checks/v1/categories","href":"/api-reference/synqentitieschecksv1checkscategoriesservice/listcheckcategories"},{"title":"DeleteCheckCategories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/checks/v1/categories:delete","href":"/api-reference/synqentitieschecksv1checkscategoriesservice/deletecheckcategories"},{"title":"UpsertCheckCategories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/checks/v1/categories:upsert","href":"/api-reference/synqentitieschecksv1checkscategoriesservice/upsertcheckcategories"}]},{"group":"synq.entities.custom.v1.EntityExecutionsService","pages":[{"title":"UpsertExecution","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/executions/v1","href":"/api-reference/synqentitiescustomv1entityexecutionsservice/upsertexecution"},{"title":"UpsertLogEntry","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/executions/v1/log-entry","href":"/api-reference/synqentitiescustomv1entityexecutionsservice/upsertlogentry"}]},{"group":"synq.entities.custom.v1.ChecksRelationshipsService","pages":[{"title":"UpsertCheckRelationships","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/check-relationships","href":"/api-reference/synqentitiescustomv1checksrelationshipsservice/upsertcheckrelationships"},{"title":"DeleteCheckRelationships","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/entities/custom/v1/check-relationships","href":"/api-reference/synqentitiescustomv1checksrelationshipsservice/deletecheckrelationships"},{"title":"ListCheckRelationships","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/check-relationships/list","href":"/api-reference/synqentitiescustomv1checksrelationshipsservice/listcheckrelationships"}]},{"group":"synq.entities.custom.v1.EntitiesService","pages":[{"title":"ListEntities","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/entities/custom/v1/entities","href":"/api-reference/synqentitiescustomv1entitiesservice/listentities"},{"title":"UpsertEntity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/entities","href":"/api-reference/synqentitiescustomv1entitiesservice/upsertentity"},{"title":"DeleteEntity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/entities/custom/v1/entities","href":"/api-reference/synqentitiescustomv1entitiesservice/deleteentity"}]},{"group":"synq.entities.custom.v1.FeaturesService","pages":[{"title":"UpsertEntityFeature","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/features","href":"/api-reference/synqentitiescustomv1featuresservice/upsertentityfeature"},{"title":"DeleteEntityFeature","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/entities/custom/v1/features","href":"/api-reference/synqentitiescustomv1featuresservice/deleteentityfeature"},{"title":"ListEntityFeatures","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/features/list","href":"/api-reference/synqentitiescustomv1featuresservice/listentityfeatures"}]},{"group":"synq.entities.custom.v1.GroupsService","pages":[{"title":"UpsertEntitiesGroup","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/groups","href":"/api-reference/synqentitiescustomv1groupsservice/upsertentitiesgroup"},{"title":"DeleteEntitiesGroup","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/entities/custom/v1/groups","href":"/api-reference/synqentitiescustomv1groupsservice/deleteentitiesgroup"},{"title":"ListEntityGroups","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/groups/list","href":"/api-reference/synqentitiescustomv1groupsservice/listentitygroups"}]},{"group":"synq.entities.custom.v1.RelationshipsService","pages":[{"title":"UpsertRelationships","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/relationships","href":"/api-reference/synqentitiescustomv1relationshipsservice/upsertrelationships"},{"title":"DeleteRelationships","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/entities/custom/v1/relationships","href":"/api-reference/synqentitiescustomv1relationshipsservice/deleterelationships"},{"title":"ListRelationships","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/relationships/list","href":"/api-reference/synqentitiescustomv1relationshipsservice/listrelationships"}]},{"group":"synq.entities.custom.v1.TypesService","pages":[{"title":"UpsertType","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/types","href":"/api-reference/synqentitiescustomv1typesservice/upserttype"},{"title":"DeleteType","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/entities/custom/v1/types","href":"/api-reference/synqentitiescustomv1typesservice/deletetype"},{"title":"ListTypes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/types/list","href":"/api-reference/synqentitiescustomv1typesservice/listtypes"}]},{"group":"synq.entities.folders.v1.FoldersService","pages":[{"title":"Browse","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/entities/folders/v1/browse","href":"/api-reference/synqentitiesfoldersv1foldersservice/browse"},{"title":"GetFolderOf","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/entities/folders/v1/folder-of","href":"/api-reference/synqentitiesfoldersv1foldersservice/getfolderof"},{"title":"ListMembers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/entities/folders/v1/members","href":"/api-reference/synqentitiesfoldersv1foldersservice/listmembers"}]},{"group":"synq.entities.platformusers.v1alpha.PlatformUsersService","pages":[{"title":"BatchGetPlatformUsers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/platform-users/v1alpha/batch-get","href":"/api-reference/synqentitiesplatformusersv1alphaplatformusersservice/batchgetplatformusers"},{"title":"ListLinkSuggestions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/platform-users/v1alpha/link-suggestions","href":"/api-reference/synqentitiesplatformusersv1alphaplatformusersservice/listlinksuggestions"},{"title":"ListPlatformUsers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/platform-users/v1alpha/list","href":"/api-reference/synqentitiesplatformusersv1alphaplatformusersservice/listplatformusers"}]},{"group":"synq.entities.platformusers.v1alpha.ServiceAccountsService","pages":[{"title":"ApplyServiceAccountChanges","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/service-accounts/v1alpha/apply","href":"/api-reference/synqentitiesplatformusersv1alphaserviceaccountsservice/applyserviceaccountchanges"},{"title":"BatchGetServiceAccounts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/service-accounts/v1alpha/batch-get","href":"/api-reference/synqentitiesplatformusersv1alphaserviceaccountsservice/batchgetserviceaccounts"},{"title":"ListServiceAccounts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/service-accounts/v1alpha/list","href":"/api-reference/synqentitiesplatformusersv1alphaserviceaccountsservice/listserviceaccounts"},{"title":"PlanServiceAccountChanges","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/service-accounts/v1alpha/plan","href":"/api-reference/synqentitiesplatformusersv1alphaserviceaccountsservice/planserviceaccountchanges"},{"title":"ListServiceAccountSuggestions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/service-accounts/v1alpha/suggestions","href":"/api-reference/synqentitiesplatformusersv1alphaserviceaccountsservice/listserviceaccountsuggestions"}]},{"group":"synq.entities.tableinfo.v1alpha.TableInfoService","pages":[{"title":"BatchGetTableInfo","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/table-info/v1alpha/batch-get","href":"/api-reference/synqentitiestableinfov1alphatableinfoservice/batchgettableinfo"}]},{"group":"synq.entities.typedefs.v1.TypeDefsService","pages":[{"title":"ListEntityTraitDefs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/typedefs/v1/entity-traits/list","href":"/api-reference/synqentitiestypedefsv1typedefsservice/listentitytraitdefs"},{"title":"ListEntityTypeDefs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/typedefs/v1/entity-types/list","href":"/api-reference/synqentitiestypedefsv1typedefsservice/listentitytypedefs"},{"title":"ListExecutionTypeDefs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/typedefs/v1/execution-types/list","href":"/api-reference/synqentitiestypedefsv1typedefsservice/listexecutiontypedefs"},{"title":"ListPlatformDefs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/typedefs/v1/platforms/list","href":"/api-reference/synqentitiestypedefsv1typedefsservice/listplatformdefs"}]},{"group":"synq.entities.entities.v1.EntitiesService","pages":[{"title":"ListEntities","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/entities/v1","href":"/api-reference/synqentitiesentitiesv1entitiesservice/listentities"},{"title":"BatchGetEntities","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v1/by-id","href":"/api-reference/synqentitiesentitiesv1entitiesservice/batchgetentities"},{"title":"SearchEntities","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/entities/v1/search","href":"/api-reference/synqentitiesentitiesv1entitiesservice/searchentities"}]},{"group":"synq.entities.checks.v2.ChecksCategoriesService","pages":[{"title":"UpsertCheckCategories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categories","href":"/api-reference/synqentitieschecksv2checkscategoriesservice/upsertcheckcategories"},{"title":"BatchGetCheckCategories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categories/batch-get","href":"/api-reference/synqentitieschecksv2checkscategoriesservice/batchgetcheckcategories"},{"title":"DeleteCheckCategories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categories/delete","href":"/api-reference/synqentitieschecksv2checkscategoriesservice/deletecheckcategories"},{"title":"ListCategorisationFilters","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categories/filters","href":"/api-reference/synqentitieschecksv2checkscategoriesservice/listcategorisationfilters"},{"title":"ListCheckCategories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categories/list","href":"/api-reference/synqentitieschecksv2checkscategoriesservice/listcheckcategories"},{"title":"ListCategories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categories/vocabulary","href":"/api-reference/synqentitieschecksv2checkscategoriesservice/listcategories"}]},{"group":"synq.entities.checks.v2.ChecksCategorisationRulesService","pages":[{"title":"UpsertRule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categorisation-rules","href":"/api-reference/synqentitieschecksv2checkscategorisationrulesservice/upsertrule"},{"title":"BatchGetRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categorisation-rules/batch-get","href":"/api-reference/synqentitieschecksv2checkscategorisationrulesservice/batchgetrules"},{"title":"DeleteRule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categorisation-rules/delete","href":"/api-reference/synqentitieschecksv2checkscategorisationrulesservice/deleterule"},{"title":"ListRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categorisation-rules/list","href":"/api-reference/synqentitieschecksv2checkscategorisationrulesservice/listrules"},{"title":"ListRuleMatches","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categorisation-rules/matches","href":"/api-reference/synqentitieschecksv2checkscategorisationrulesservice/listrulematches"},{"title":"PreviewRule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categorisation-rules/preview","href":"/api-reference/synqentitieschecksv2checkscategorisationrulesservice/previewrule"},{"title":"GetRecategorisationStatus","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categorisation-rules/recategorisation-status","href":"/api-reference/synqentitieschecksv2checkscategorisationrulesservice/getrecategorisationstatus"}]},{"group":"synq.entities.executions.v1.EntityExecutionsService","pages":[{"title":"UpsertExecution","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/executions/v1","href":"/api-reference/synqentitiesexecutionsv1entityexecutionsservice/upsertexecution"},{"title":"UpsertLogEntry","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/executions/v1/log-entry","href":"/api-reference/synqentitiesexecutionsv1entityexecutionsservice/upsertlogentry"}]},{"group":"synq.entities.executions.v2.EntityExecutionsService","pages":[{"title":"BatchGetExecutions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/executions/v2/by-id","href":"/api-reference/synqentitiesexecutionsv2entityexecutionsservice/batchgetexecutions"},{"title":"GetLatestExecutions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/executions/v2/latest","href":"/api-reference/synqentitiesexecutionsv2entityexecutionsservice/getlatestexecutions"},{"title":"ListExecutions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/executions/v2/list","href":"/api-reference/synqentitiesexecutionsv2entityexecutionsservice/listexecutions"},{"title":"GetExecutionsSummary","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/executions/v2/summary","href":"/api-reference/synqentitiesexecutionsv2entityexecutionsservice/getexecutionssummary"}]},{"group":"synq.extensions.atlan.integrations.v1.AtlanIntegrationService","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/extensions/atlan/integrations/v1","href":"/api-reference/synqextensionsatlanintegrationsv1atlanintegrationservice/get"},{"title":"Upsert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/extensions/atlan/integrations/v1","href":"/api-reference/synqextensionsatlanintegrationsv1atlanintegrationservice/upsert"},{"title":"Remove","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/extensions/atlan/integrations/v1","href":"/api-reference/synqextensionsatlanintegrationsv1atlanintegrationservice/remove"},{"title":"Activate","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/extensions/atlan/integrations/v1","href":"/api-reference/synqextensionsatlanintegrationsv1atlanintegrationservice/activate"},{"title":"Ping","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/extensions/atlan/integrations/v1/ping","href":"/api-reference/synqextensionsatlanintegrationsv1atlanintegrationservice/ping"}]},{"group":"synq.extensions.atlan.provider.v1.AtlanProviderService","pages":[{"title":"GetAtlanConnections","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/extensions/atlan/provider/v1/connections","href":"/api-reference/synqextensionsatlanproviderv1atlanproviderservice/getatlanconnections"},{"title":"GetAtlanDataProducts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/extensions/atlan/provider/v1/data-products","href":"/api-reference/synqextensionsatlanproviderv1atlanproviderservice/getatlandataproducts"},{"title":"GetAtlanDomains","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/extensions/atlan/provider/v1/domains","href":"/api-reference/synqextensionsatlanproviderv1atlanproviderservice/getatlandomains"}]},{"group":"synq.extensions.atlan.workflows.v1.AtlanWorkflowService","pages":[{"title":"GetConnectionMappings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/extensions/atlan/workflows/v1/connection-mappings","href":"/api-reference/synqextensionsatlanworkflowsv1atlanworkflowservice/getconnectionmappings"},{"title":"SetConnectionMappings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/extensions/atlan/workflows/v1/connection-mappings","href":"/api-reference/synqextensionsatlanworkflowsv1atlanworkflowservice/setconnectionmappings"},{"title":"RemoveConnectionMappings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/extensions/atlan/workflows/v1/connection-mappings","href":"/api-reference/synqextensionsatlanworkflowsv1atlanworkflowservice/removeconnectionmappings"},{"title":"GetDomainMappings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/extensions/atlan/workflows/v1/domain-mappings","href":"/api-reference/synqextensionsatlanworkflowsv1atlanworkflowservice/getdomainmappings"},{"title":"GetMappingToggles","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/extensions/atlan/workflows/v1/mappings/toggle","href":"/api-reference/synqextensionsatlanworkflowsv1atlanworkflowservice/getmappingtoggles"},{"title":"SetMappingToggles","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/extensions/atlan/workflows/v1/mappings/toggle","href":"/api-reference/synqextensionsatlanworkflowsv1atlanworkflowservice/setmappingtoggles"},{"title":"GetProductMappings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/extensions/atlan/workflows/v1/product-mappings","href":"/api-reference/synqextensionsatlanworkflowsv1atlanworkflowservice/getproductmappings"},{"title":"FetchRuns","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/extensions/atlan/workflows/v1/runs","href":"/api-reference/synqextensionsatlanworkflowsv1atlanworkflowservice/fetchruns"},{"title":"Synchronize","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/extensions/atlan/workflows/v1/synchronize","href":"/api-reference/synqextensionsatlanworkflowsv1atlanworkflowservice/synchronize"}]},{"group":"synq.agent.sre.v1.FeatureRequestService","pages":[{"title":"SubmitFeatureRequest","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/feature-request/v1/submit","href":"/api-reference/synqagentsrev1featurerequestservice/submitfeaturerequest"}]},{"group":"synq.git.commits.v1.CommitsService","pages":[{"title":"GetDiffByChangeId","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/git/v1/change/{change_id}","href":"/api-reference/synqgitcommitsv1commitsservice/getdiffbychangeid"},{"title":"GetDiffByCommit","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/git/v1/commit/{commit_sha}","href":"/api-reference/synqgitcommitsv1commitsservice/getdiffbycommit"}]},{"group":"synq.auth.iam.v1.IamService","pages":[{"title":"Iam","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/iam/v1","href":"/api-reference/synqauthiamv1iamservice/iam"}]},{"group":"synq.entities.impact.v1.ImpactService","pages":[{"title":"GetImpact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/impact/v1","href":"/api-reference/synqentitiesimpactv1impactservice/getimpact"}]},{"group":"synq.incidents.v1.IncidentsService","pages":[{"title":"ListIncidents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/incidents/v1","href":"/api-reference/synqincidentsv1incidentsservice/listincidents"},{"title":"CreateIncident","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/incidents/v1","href":"/api-reference/synqincidentsv1incidentsservice/createincident"},{"title":"BatchGetIncidents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/incidents/v1/by-id","href":"/api-reference/synqincidentsv1incidentsservice/batchgetincidents"},{"title":"AssignIncidentOwner","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/incidents/v1/{incident_id}/assign-owner","href":"/api-reference/synqincidentsv1incidentsservice/assignincidentowner"},{"title":"CancelIncident","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/incidents/v1/{incident_id}/cancel","href":"/api-reference/synqincidentsv1incidentsservice/cancelincident"},{"title":"CloseIncident","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/incidents/v1/{incident_id}/close","href":"/api-reference/synqincidentsv1incidentsservice/closeincident"},{"title":"PostComment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/incidents/v1/{incident_id}/comment","href":"/api-reference/synqincidentsv1incidentsservice/postcomment"},{"title":"DeleteComment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/incidents/v1/{incident_id}/comment/{comment_id}","href":"/api-reference/synqincidentsv1incidentsservice/deletecomment"},{"title":"AddIssuesToIncident","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/incidents/v1/{incident_id}/issues","href":"/api-reference/synqincidentsv1incidentsservice/addissuestoincident"},{"title":"RemoveIssuesFromIncident","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/incidents/v1/{incident_id}/issues","href":"/api-reference/synqincidentsv1incidentsservice/removeissuesfromincident"},{"title":"MergeIncidents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/incidents/v1/{incident_id}/merge","href":"/api-reference/synqincidentsv1incidentsservice/mergeincidents"},{"title":"RenameIncident","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/incidents/v1/{incident_id}/rename","href":"/api-reference/synqincidentsv1incidentsservice/renameincident"},{"title":"SplitIncident","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/incidents/v1/{incident_id}/split","href":"/api-reference/synqincidentsv1incidentsservice/splitincident"},{"title":"UpdateIncidentState","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/incidents/v1/{incident_id}/state","href":"/api-reference/synqincidentsv1incidentsservice/updateincidentstate"}]},{"group":"synq.ingest.airflow.v1.AirflowLogsService","pages":[{"title":"IngestDatahubAspects","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/ingest/airflow/v1/aspects","href":"/api-reference/synqingestairflowv1airflowlogsservice/ingestdatahubaspects"},{"title":"IngestLog","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/ingest/airflow/v1/{dag_id}/{task_id}/{run_id}/logs","href":"/api-reference/synqingestairflowv1airflowlogsservice/ingestlog"}]},{"group":"synq.ingest.cloudwatch.v1.CloudwatchService","pages":[{"title":"IngestCloudwatchLogsData","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/ingest/cloudwatch/v1/{log_group}/{log_stream}","href":"/api-reference/synqingestcloudwatchv1cloudwatchservice/ingestcloudwatchlogsdata"}]},{"group":"synq.ingest.openlineage.v1.OpenlineageService","pages":[{"title":"Ingest","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/ingest/openlineage/v1","href":"/api-reference/synqingestopenlineagev1openlineageservice/ingest"}]},{"group":"synq.integrations.v1.IntegrationsService","pages":[{"title":"ListIntegrations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/integrations/v1","href":"/api-reference/synqintegrationsv1integrationsservice/listintegrations"},{"title":"CreateIntegration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/integrations/v1","href":"/api-reference/synqintegrationsv1integrationsservice/createintegration"},{"title":"BatchGetIntegrations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/integrations/v1/by-id","href":"/api-reference/synqintegrationsv1integrationsservice/batchgetintegrations"},{"title":"UpdateIntegration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /api/integrations/v1/{integration_id}","href":"/api-reference/synqintegrationsv1integrationsservice/updateintegration"},{"title":"DeleteIntegration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/integrations/v1/{integration_id}","href":"/api-reference/synqintegrationsv1integrationsservice/deleteintegration"},{"title":"DisableIntegration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/integrations/v1/{integration_id}/disable","href":"/api-reference/synqintegrationsv1integrationsservice/disableintegration"},{"title":"EnableIntegration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/integrations/v1/{integration_id}/enable","href":"/api-reference/synqintegrationsv1integrationsservice/enableintegration"},{"title":"RefreshIntegration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/integrations/v1/{integration_id}/refresh","href":"/api-reference/synqintegrationsv1integrationsservice/refreshintegration"}]},{"group":"synq.issues.issues.v1.IssuesService","pages":[{"title":"ListIssues","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/issues/v1","href":"/api-reference/synqissuesissuesv1issuesservice/listissues"},{"title":"BatchGetIssues","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/issues/v1/by-id","href":"/api-reference/synqissuesissuesv1issuesservice/batchgetissues"},{"title":"PostComment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/issues/v1/{issue_id}/comment","href":"/api-reference/synqissuesissuesv1issuesservice/postcomment"},{"title":"MarkExpected","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/issues/v1/{issue_id}/mark-expected","href":"/api-reference/synqissuesissuesv1issuesservice/markexpected"},{"title":"MarkFixed","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/issues/v1/{issue_id}/mark-fixed","href":"/api-reference/synqissuesissuesv1issuesservice/markfixed"},{"title":"MarkInvestigating","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/issues/v1/{issue_id}/mark-investigating","href":"/api-reference/synqissuesissuesv1issuesservice/markinvestigating"},{"title":"MarkNoActionNeeded","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/issues/v1/{issue_id}/mark-no-action-needed","href":"/api-reference/synqissuesissuesv1issuesservice/marknoactionneeded"}]},{"group":"synq.issues.v2.IssuesService","pages":[{"title":"ListIssues","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/issues/v2","href":"/api-reference/synqissuesv2issuesservice/listissues"},{"title":"BatchGetIssues","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/issues/v2/by-id","href":"/api-reference/synqissuesv2issuesservice/batchgetissues"},{"title":"ClearStatus","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/issues/v2/{issue_id}/clear-status","href":"/api-reference/synqissuesv2issuesservice/clearstatus"},{"title":"PostComment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/issues/v2/{issue_id}/comment","href":"/api-reference/synqissuesv2issuesservice/postcomment"},{"title":"DeleteComment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/issues/v2/{issue_id}/comment/{comment_id}","href":"/api-reference/synqissuesv2issuesservice/deletecomment"},{"title":"MarkExpected","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/issues/v2/{issue_id}/mark-expected","href":"/api-reference/synqissuesv2issuesservice/markexpected"},{"title":"MarkFixed","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/issues/v2/{issue_id}/mark-fixed","href":"/api-reference/synqissuesv2issuesservice/markfixed"},{"title":"MarkInvestigating","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/issues/v2/{issue_id}/mark-investigating","href":"/api-reference/synqissuesv2issuesservice/markinvestigating"},{"title":"MarkNoActionNeeded","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/issues/v2/{issue_id}/mark-no-action-needed","href":"/api-reference/synqissuesv2issuesservice/marknoactionneeded"}]},{"group":"synq.knowledge.v1alpha.KnowledgeService","pages":[{"title":"BatchGetEntityKnowledge","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/knowledge/v1alpha/entities/by-id","href":"/api-reference/synqknowledgev1alphaknowledgeservice/batchgetentityknowledge"},{"title":"ListKnowledgePages","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/knowledge/v1alpha/pages","href":"/api-reference/synqknowledgev1alphaknowledgeservice/listknowledgepages"},{"title":"BatchGetKnowledgePages","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/knowledge/v1alpha/pages/by-id","href":"/api-reference/synqknowledgev1alphaknowledgeservice/batchgetknowledgepages"},{"title":"ListKnowledgePageLinks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/knowledge/v1alpha/pages/{page_id}/links","href":"/api-reference/synqknowledgev1alphaknowledgeservice/listknowledgepagelinks"}]},{"group":"synq.entities.lineage.folds.v1alpha.LineageFoldsService","pages":[{"title":"ListFolds","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/lineage/folds/v1alpha","href":"/api-reference/synqentitieslineagefoldsv1alphalineagefoldsservice/listfolds"},{"title":"CreateFold","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/lineage/folds/v1alpha","href":"/api-reference/synqentitieslineagefoldsv1alphalineagefoldsservice/createfold"},{"title":"BatchGetFolds","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/lineage/folds/v1alpha/batch-get","href":"/api-reference/synqentitieslineagefoldsv1alphalineagefoldsservice/batchgetfolds"},{"title":"BatchGetFoldNodes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/lineage/folds/v1alpha/nodes/batch-get","href":"/api-reference/synqentitieslineagefoldsv1alphalineagefoldsservice/batchgetfoldnodes"},{"title":"PreviewFold","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/lineage/folds/v1alpha/preview","href":"/api-reference/synqentitieslineagefoldsv1alphalineagefoldsservice/previewfold"},{"title":"DeleteFold","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/lineage/folds/v1alpha/{id}/delete","href":"/api-reference/synqentitieslineagefoldsv1alphalineagefoldsservice/deletefold"},{"title":"SetFoldEnabled","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/lineage/folds/v1alpha/{id}/enabled","href":"/api-reference/synqentitieslineagefoldsv1alphalineagefoldsservice/setfoldenabled"},{"title":"UpdateFoldMatcher","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/lineage/folds/v1alpha/{id}/matcher","href":"/api-reference/synqentitieslineagefoldsv1alphalineagefoldsservice/updatefoldmatcher"},{"title":"RenameFold","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/lineage/folds/v1alpha/{id}/rename","href":"/api-reference/synqentitieslineagefoldsv1alphalineagefoldsservice/renamefold"}]},{"group":"synq.entities.lineage.v1.LineageService","pages":[{"title":"GetLineage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/lineage/v1","href":"/api-reference/synqentitieslineagev1lineageservice/getlineage"}]},{"group":"synq.monitors.automated_monitors.v1.DeploymentRulesService","pages":[{"title":"GetDeployOverview","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/automated/v1/deployment-rule","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/getdeployoverview"},{"title":"DeleteDeploymentRule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/monitors/automated/v1/deployment-rule/{id}","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/deletedeploymentrule"},{"title":"GetDeployDeleteOverview","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/automated/v1/deployment-rule/{id}/deleted","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/getdeploydeleteoverview"},{"title":"ListDeploymentRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/automated/v1/deployment-rules","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/listdeploymentrules"},{"title":"UpsertDeploymentRule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/automated/v1/deployment-rules","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/upsertdeploymentrule"},{"title":"BatchUpdateDeploymentRuleTitle","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/monitors/automated/v1/deployment-rules","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/batchupdatedeploymentruletitle"},{"title":"BatchGetDeploymentRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/automated/v1/deployment-rules/batch","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/batchgetdeploymentrules"},{"title":"BatchUpsertDeploymentRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/automated/v1/deployment-rules/batch","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/batchupsertdeploymentrules"},{"title":"BatchDeleteDeploymentRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/monitors/automated/v1/deployment-rules/batch","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/batchdeletedeploymentrules"},{"title":"BatchDeployDeploymentRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/automated/v1/deployment-rules/batch/deployed","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/batchdeploydeploymentrules"},{"title":"DeployDeploymentRule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/automated/v1/deployment-rules/deployed","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/deploydeploymentrule"},{"title":"ListDeploymentRulesForAsset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/automated/v1/deployment-rules/{asset_path}","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/listdeploymentrulesforasset"}]},{"group":"synq.monitors.custom_monitors.v1.CustomMonitorsService","pages":[{"title":"ListMonitors","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/custom-monitors/v1","href":"/api-reference/synqmonitorscustom_monitorsv1custommonitorsservice/listmonitors"},{"title":"BatchUpdateMonitor","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /api/monitors/custom-monitors/v1","href":"/api-reference/synqmonitorscustom_monitorsv1custommonitorsservice/batchupdatemonitor"},{"title":"BatchCreateMonitor","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/custom-monitors/v1","href":"/api-reference/synqmonitorscustom_monitorsv1custommonitorsservice/batchcreatemonitor"},{"title":"ListConfigsMonitors","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/custom-monitors/v1/by-config","href":"/api-reference/synqmonitorscustom_monitorsv1custommonitorsservice/listconfigsmonitors"},{"title":"ConfigChangesOverview","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/custom-monitors/v1/config-changes","href":"/api-reference/synqmonitorscustom_monitorsv1custommonitorsservice/configchangesoverview"},{"title":"BatchDeleteMonitor","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/custom-monitors/v1/delete","href":"/api-reference/synqmonitorscustom_monitorsv1custommonitorsservice/batchdeletemonitor"},{"title":"BatchUpdateMonitorMode","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/custom-monitors/v1/mode","href":"/api-reference/synqmonitorscustom_monitorsv1custommonitorsservice/batchupdatemonitormode"},{"title":"BatchUpdateMonitorSeverity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/custom-monitors/v1/severity","href":"/api-reference/synqmonitorscustom_monitorsv1custommonitorsservice/batchupdatemonitorseverity"}]},{"group":"synq.monitors.history.v1.HistoryService","pages":[{"title":"History","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/history/v1","href":"/api-reference/synqmonitorshistoryv1historyservice/history"}]},{"group":"synq.monitors.info.v1.MonitorInfoService","pages":[{"title":"MonitorInfo","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/info/v1","href":"/api-reference/synqmonitorsinfov1monitorinfoservice/monitorinfo"}]},{"group":"synq.monitors.predictions.v1.MonitorPredictionsService","pages":[{"title":"GetMonitorPredictions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/predictions/v1","href":"/api-reference/synqmonitorspredictionsv1monitorpredictionsservice/getmonitorpredictions"},{"title":"GetEntityMetrics","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/predictions/v1/entity-metrics","href":"/api-reference/synqmonitorspredictionsv1monitorpredictionsservice/getentitymetrics"},{"title":"BatchGetLatestEntityMetrics","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/predictions/v1/entity-metrics:batchLatest","href":"/api-reference/synqmonitorspredictionsv1monitorpredictionsservice/batchgetlatestentitymetrics"}]},{"group":"synq.monitors.segments.v1.MonitorSegmentsService","pages":[{"title":"ListMonitorSegments","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/segments/v1","href":"/api-reference/synqmonitorssegmentsv1monitorsegmentsservice/listmonitorsegments"},{"title":"BatchUpdateMonitorSegmentLabels","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/segments/v1/labels","href":"/api-reference/synqmonitorssegmentsv1monitorsegmentsservice/batchupdatemonitorsegmentlabels"}]},{"group":"synq.entities.orchestration.v1.OrchestrationService","pages":[{"title":"BatchOrchestration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/orchestration/v1","href":"/api-reference/synqentitiesorchestrationv1orchestrationservice/batchorchestration"}]},{"group":"synq.overlays.v1.OverlaysService","pages":[{"title":"BatchGetEntityOverlays","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/overlays/v1/by-id","href":"/api-reference/synqoverlaysv1overlaysservice/batchgetentityoverlays"},{"title":"ListEntityCoverage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/overlays/v1/coverage","href":"/api-reference/synqoverlaysv1overlaysservice/listentitycoverage"},{"title":"GetCoverageSummary","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/overlays/v1/coverage-summary","href":"/api-reference/synqoverlaysv1overlaysservice/getcoveragesummary"},{"title":"BatchGetOverlayMemberCounts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/overlays/v1/member-counts","href":"/api-reference/synqoverlaysv1overlaysservice/batchgetoverlaymembercounts"}]},{"group":"synq.owners.v1.OwnersService","pages":[{"title":"ListOwners","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/owners/v1","href":"/api-reference/synqownersv1ownersservice/listowners"},{"title":"UpsertOwner","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/owners/v1","href":"/api-reference/synqownersv1ownersservice/upsertowner"},{"title":"BatchGetOwners","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/owners/v1/batch-get","href":"/api-reference/synqownersv1ownersservice/batchgetowners"},{"title":"DeleteOwner","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/owners/v1/delete","href":"/api-reference/synqownersv1ownersservice/deleteowner"},{"title":"BatchGetOwnerships","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/owners/v1/ownerships/batch-get","href":"/api-reference/synqownersv1ownersservice/batchgetownerships"},{"title":"DeleteOwnership","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/owners/v1/ownerships/delete","href":"/api-reference/synqownersv1ownersservice/deleteownership"},{"title":"ListOwnerships","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/owners/v1/{owner_id}/ownerships","href":"/api-reference/synqownersv1ownersservice/listownerships"},{"title":"UpsertOwnership","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/owners/v1/{owner_id}/ownerships","href":"/api-reference/synqownersv1ownersservice/upsertownership"}]},{"group":"synq.platforms.v1.PlatformsService","pages":[{"title":"SetPlatformAuthentication","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/platforms/v1","href":"/api-reference/synqplatformsv1platformsservice/setplatformauthentication"}]},{"group":"synq.queries.v1.QueriesService","pages":[{"title":"DescribeResolverQl","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/queries/v1/describe-resolver-ql","href":"/api-reference/synqqueriesv1queriesservice/describeresolverql"},{"title":"ResolveQuery","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/queries/v1/resolve","href":"/api-reference/synqqueriesv1queriesservice/resolvequery"},{"title":"TranslateResolverQl","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/queries/v1/translate-resolver-ql","href":"/api-reference/synqqueriesv1queriesservice/translateresolverql"}]},{"group":"synq.queries.v1.NLQueryService","pages":[{"title":"GenerateQuery","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/queries/v1/generate","href":"/api-reference/synqqueriesv1nlqueryservice/generatequery"}]},{"group":"synq.recommendations.v1.RecommendationsService","pages":[{"title":"ListRecommendations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/recommendations/v1","href":"/api-reference/synqrecommendationsv1recommendationsservice/listrecommendations"},{"title":"BatchGetRecommendations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/recommendations/v1/by-id","href":"/api-reference/synqrecommendationsv1recommendationsservice/batchgetrecommendations"},{"title":"DismissRecommendation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/recommendations/v1/{recommendation_id}/dismiss","href":"/api-reference/synqrecommendationsv1recommendationsservice/dismissrecommendation"},{"title":"IgnoreRecommendation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/recommendations/v1/{recommendation_id}/ignore","href":"/api-reference/synqrecommendationsv1recommendationsservice/ignorerecommendation"},{"title":"RestoreRecommendation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/recommendations/v1/{recommendation_id}/restore","href":"/api-reference/synqrecommendationsv1recommendationsservice/restorerecommendation"}]},{"group":"synq.agent.recon.v1.SuiteDeploymentService","pages":[{"title":"TriggerDeployment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/recon/v1/deployments/trigger","href":"/api-reference/synqagentreconv1suitedeploymentservice/triggerdeployment"}]},{"group":"synq.entities.resolve.v1.IdentifierResolveService","pages":[{"title":"BatchResolveIdentifiers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/resolve/v1/by-id","href":"/api-reference/synqentitiesresolvev1identifierresolveservice/batchresolveidentifiers"}]},{"group":"synq.savedviews.v1.SavedViewsService","pages":[{"title":"Upsert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/saved-views/v1","href":"/api-reference/synqsavedviewsv1savedviewsservice/upsert"},{"title":"BatchGet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/saved-views/v1/batch-get","href":"/api-reference/synqsavedviewsv1savedviewsservice/batchget"},{"title":"Delete","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/saved-views/v1/delete","href":"/api-reference/synqsavedviewsv1savedviewsservice/delete"},{"title":"List","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/saved-views/v1/list","href":"/api-reference/synqsavedviewsv1savedviewsservice/list"},{"title":"SetPin","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/saved-views/v1/set-pin","href":"/api-reference/synqsavedviewsv1savedviewsservice/setpin"}]},{"group":"synq.schedule.v1.ScheduleService","pages":[{"title":"PreviewSchedules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/schedule/v1/preview","href":"/api-reference/synqschedulev1scheduleservice/previewschedules"}]},{"group":"synq.entities.schemas.v1.SchemaMismatchesService","pages":[{"title":"BatchSchemaMismatches","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/schema-mismatches/v1","href":"/api-reference/synqentitiesschemasv1schemamismatchesservice/batchschemamismatches"}]},{"group":"synq.entities.schemas.v1.SchemasService","pages":[{"title":"GetSchema","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/schema/v1","href":"/api-reference/synqentitiesschemasv1schemasservice/getschema"}]},{"group":"synq.entities.sql_insights.v1.SqlInsightsService","pages":[{"title":"ListSqlConstructs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/sql-insights/v1/constructs","href":"/api-reference/synqentitiessql_insightsv1sqlinsightsservice/listsqlconstructs"},{"title":"BatchSqlDetails","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/sql-insights/v1/details:batch","href":"/api-reference/synqentitiessql_insightsv1sqlinsightsservice/batchsqldetails"},{"title":"ListJoinPatterns","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/sql-insights/v1/join-patterns","href":"/api-reference/synqentitiessql_insightsv1sqlinsightsservice/listjoinpatterns"}]},{"group":"synq.agent.sre.v1.LlmService","pages":[{"title":"Evaluate","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/sre/llm/v1/evaluate","href":"/api-reference/synqagentsrev1llmservice/evaluate"}]},{"group":"synq.entities.status.v1.EntityIncidentsService","pages":[{"title":"BatchGetIncidents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/status/v1/incidents/by-id","href":"/api-reference/synqentitiesstatusv1entityincidentsservice/batchgetincidents"}]},{"group":"synq.entities.status.v1.EntityIssuesService","pages":[{"title":"BatchGetIssuesStatus","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/status/v1/issues/by-id","href":"/api-reference/synqentitiesstatusv1entityissuesservice/batchgetissuesstatus"}]},{"group":"synq.agent.sre.v1.TriageService","pages":[{"title":"BatchLatestConclusions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/triage/v1/conclusions","href":"/api-reference/synqagentsrev1triageservice/batchlatestconclusions"},{"title":"MarkFailed","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/triage/v1/failed","href":"/api-reference/synqagentsrev1triageservice/markfailed"},{"title":"MarkAsInProgress","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/triage/v1/in-progress","href":"/api-reference/synqagentsrev1triageservice/markasinprogress"},{"title":"BatchTriageState","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/triage/v1/states","href":"/api-reference/synqagentsrev1triageservice/batchtriagestate"},{"title":"ListTriageState","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/triage/v1/statuses","href":"/api-reference/synqagentsrev1triageservice/listtriagestate"},{"title":"Conclude","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/triage/v1/{session_id}/conclusion","href":"/api-reference/synqagentsrev1triageservice/conclude"},{"title":"RecordEvidence","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/triage/v1/{session_id}/evidence","href":"/api-reference/synqagentsrev1triageservice/recordevidence"}]},{"group":"synq.users.v1.UsersService","pages":[{"title":"ListUsers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/users/v1","href":"/api-reference/synqusersv1usersservice/listusers"},{"title":"GetUserAliases","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/users/v1/aliases","href":"/api-reference/synqusersv1usersservice/getuseraliases"},{"title":"UpsertUserAliases","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /api/users/v1/aliases","href":"/api-reference/synqusersv1usersservice/upsertuseraliases"},{"title":"DeleteUserAliases","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/users/v1/aliases/delete","href":"/api-reference/synqusersv1usersservice/deleteuseraliases"},{"title":"BatchGetUsers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/users/v1/batch-get","href":"/api-reference/synqusersv1usersservice/batchgetusers"},{"title":"GetByAlias","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/users/v1/by-alias","href":"/api-reference/synqusersv1usersservice/getbyalias"},{"title":"GetByEmail","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/users/v1/by-email","href":"/api-reference/synqusersv1usersservice/getbyemail"},{"title":"GetUserIdentities","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/users/v1/identities","href":"/api-reference/synqusersv1usersservice/getuseridentities"},{"title":"AddUserRole","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/users/v1/roles","href":"/api-reference/synqusersv1usersservice/adduserrole"},{"title":"RemoveUserRole","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/users/v1/roles/remove","href":"/api-reference/synqusersv1usersservice/removeuserrole"}]}]},{"group":"gRPC API","pages":[{"title":"API","href":"/api-reference/api"},{"title":null,"href":"/api-reference/examples"}]},{"group":"Custom Integrations","pages":[{"title":"Custom Integrations","href":"/custom-integrations/overview"},{"title":"Modelling Your Tool","href":"/custom-integrations/modelling"},{"title":"Building an Integration","href":"/custom-integrations/building-an-integration"},{"title":"API Surface","href":"/custom-integrations/api-surface"},{"title":"Agent Workflow","href":"/custom-integrations/agent-workflow"}]},{"group":"Webhooks","pages":[{"title":"Using Webhooks","href":"/api-reference/webhook"},{"title":"Debugging Deliveries","href":"/api-reference/webhook-deliveries"}]}]}]}]},"basePath":"","title":"List - Coalesce Quality Documentation","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-i2a3QZ8E.js","utils-ChLwp8m0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DRktVTDc.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CA2pEs4T.js","snippetPresets-ClQ6XrKD.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Ct_Lv36y.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Cn2PYw9e.js","shallow-rkyymjXQ.js","getApiPlaygroundDisplay-BB9vkXtE.js","CodeSnippet-Bm5RU7m1.js","CodeSnippets-BgU9Deuz.js","Page-BUDYNlhG.js","getPastedJson-BD-6NNum.js","icon-8Z6tud2e.js","MethodPill-Tuzr4g3V.js","DuplicateIcon-0ceWFYhN.js","createIcon-FBXow_ST.js","DynamicMarkdown-CD8713Yy.js","SectionHeading-7zgzQbH-.js","axios-vUo_bRtp.js","Markdown-D7Ofw1oz.js","clsx-eKJ4rcii.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CwjSCXIK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-9EK5IAXV.js"]}