SqlTestDeploymentRule dynamically deploys SQL test templates onto every table
or view its selection matches, keeping them in sync as tables and columns
change. Use it instead of authoring one SqlTest per table when the same set
of checks should apply to many tables (e.g. "not_null(email) on every table
that has an email column").
SqlTestDeploymentRule
SqlTestDeploymentRule
SqlTestDeploymentRule
SqlTestDeploymentRule
Show child attributes
Response
200 - application/json
Success
The response is of type DeploySqlTestDeploymentRuleResponse · object.
{"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":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"global.css","content":".dark img[src^=\"/images/\"]{background:white;border-radius:0.5rem;padding:4px}"}],"page":{"pagePath":"api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/deploysqltestdeploymentrule","slug":"/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/deploysqltestdeploymentrule","pageMetadata":{"title":"DeploySqlTestDeploymentRule","description":"Deploy (create or update) a SqlTestDeploymentRule and immediately sync tests\n onto its current match set.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datachecks/sql-test-deployment-rules/v1/deployed","href":"/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/deploysqltestdeploymentrule","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: \"Deploy (create or update) a SqlTestDeploymentRule and immediately sync tests\\nonto its current match set.\"\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":"DeploySqlTestDeploymentRule","description":"Deploy (create or update) a SqlTestDeploymentRule and immediately sync tests\n onto its current match set.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datachecks/sql-test-deployment-rules/v1/deployed","href":"/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/deploysqltestdeploymentrule","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/synq-15/7fe5b7dda612017d/region.js"],"openApiReferenceData":{"operation":{"tags":["synq.datachecks.sqltests.v1.SqlTestsDeploymentRulesService"],"summary":"DeploySqlTestDeploymentRule","description":"Deploy (create or update) a SqlTestDeploymentRule and immediately sync tests\n onto its current match set.","operationId":"synq.datachecks.sqltests.v1.SqlTestsDeploymentRulesService.DeploySqlTestDeploymentRule","requestBody":"46df3a45-ee99-4d4f-99bb-4bf5f6b378ce","responses":{"200":"7c9ae804-8a0a-4e5b-9a90-479739b63de2"},"method":"post","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/datachecks/sql-test-deployment-rules/v1/deployed","baseUrlOptions":["https://developer.synq.io","https://api.us.synq.io","https://api.au.synq.io"],"title":"DeploySqlTestDeploymentRule","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"deploymentRule":{"oneOf":[{"type":"object","title":"SqlTestDeploymentRule","description":"SqlTestDeploymentRule dynamically deploys SQL test templates onto every table\n or view its selection matches, keeping them in sync as tables and columns\n change. Use it instead of authoring one SqlTest per table when the same set\n of checks should apply to many tables (e.g. \"not_null(email) on every table\n that has an email column\").","required":["exclusiveQueryConfig"],"properties":{"exclusiveQueryConfig":{"type":"object","properties":{"query":{"type":"object","properties":{"parts":{"type":"array","items":{"oneOf":[{"type":"object","title":"entity_ids","required":["entityIds"],"properties":{"entityIds":{"type":"object","properties":{"entityIds":{"type":"array","items":{"type":"string","maxLength":1024,"minLength":1,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.0.entityIds.entityIds.items.[INDEX]","typeLabel":"string"},"description":"The entities to select. An id may not be blank.\n\n An empty list selects no entities, exactly as an empty `identifier_list`\n does. Be deliberate about it, because it is not the same as leaving the part\n out: a part that selects nothing still counts, so it empties an AND, adds\n nothing to an OR, and removes nothing from an EXCEPT. If what you mean is\n \"do not restrict on specific entities\", omit the part instead of sending it\n empty.\n\n Ids may be up to 1024 characters — the same limit as `Identifier.entity_id`,\n where you read them from, so any id the API returned is accepted here.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.0.entityIds.entityIds","typeLabel":"string[]"}},"title":"entity_ids","additionalProperties":false,"description":"Deploy monitors on specific entities, named by the ids the API returned\n for them. Read back as `identifier_list`, with each id on the identifier\n it names.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.0.entityIds","typeLabel":"entity_ids · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.0","typeLabel":"entity_ids · object"},{"type":"object","title":"identifier_list","required":["identifierList"],"properties":{"identifierList":{"type":"object","properties":{"identifiers":{"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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.0.airflowDag.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.0.airflowDag.dagId","typeLabel":"string"}},"title":"airflow_dag","required":["integrationId","dagId"],"additionalProperties":false,"description":"Airflow DAG identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.0.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.1.airflowTask.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.1.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.2.athenaTable.catalog","typeLabel":"string"},"database":{"type":"string","description":"Glue database (the namespace users typically filter on).","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.2.athenaTable.database","typeLabel":"string"},"table":{"type":"string","description":"Glue table or view name.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.2.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.3.bigqueryTable.project","typeLabel":"string"},"dataset":{"type":"string","description":"BigQuery dataset id","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.3.bigqueryTable.dataset","typeLabel":"string"},"table":{"type":"string","description":"BigQuery table name","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.3.bigqueryTable.table","typeLabel":"string"}},"title":"bigquery_table","required":["project","dataset","table"],"additionalProperties":false,"description":"BigQuery table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.3.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.4.clickhouseTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Clickhouse database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.4.clickhouseTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Clickhouse table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.4.clickhouseTable.table","typeLabel":"string"}},"title":"clickhouse_table","required":["host","schema","table"],"additionalProperties":false,"description":"Clickhouse table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.4.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.5.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.6.databricksTable.workspace","typeLabel":"string"},"catalog":{"type":"string","description":"Databricks catalog","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.6.databricksTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Databricks schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.6.databricksTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Databricks table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.6.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.7.dataproduct.id","typeLabel":"string\u003cuuid>"}},"title":"dataproduct","required":["id"],"additionalProperties":false,"description":"Dataproduct identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.7.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.8.db2Table.host","typeLabel":"string"},"database":{"type":"string","description":"Database name or alias, as in `CONNECT TO \u003cdatabase>`","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.8.db2Table.database","typeLabel":"string"},"schema":{"type":"string","description":"Db2 schema (e.g. \"DB2INST1\")","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.8.db2Table.schema","typeLabel":"string"},"table":{"type":"string","description":"Db2 table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.8.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.9.dbtCloudNode.nodeId","typeLabel":"string"},"accountId":{"type":"string","description":"Your dbt Cloud account id","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.9.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.10.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.11.fabricTable.instance","typeLabel":"string"},"database":{"type":"string","description":"Fabric warehouse / lakehouse (database).","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.11.fabricTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Schema within the database.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.11.fabricTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Table or view name.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.11.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.monitoredId","typeLabel":"any"},"monitorId":{"type":"string","description":"Identifier of the monitor","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.monitorId","typeLabel":"string"},"segment":{"oneOf":[{"type":"string","description":"Optional monitor segmentation identifier","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.segment.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional monitor segmentation identifier","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.segment.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.integrationId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.integrationId.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.integrationId","typeLabel":"string | null"}},"title":"monitor","required":["monitoredId","monitorId"],"additionalProperties":false,"description":"Monitor identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.13.mssqlTable.host","typeLabel":"string"},"database":{"type":"string","description":"SQL Server database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.13.mssqlTable.database","typeLabel":"string"},"schema":{"type":"string","description":"SQL Server schema (e.g. \"dbo\")","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.13.mssqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"SQL Server table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.13.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.14.mysqlTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Mysql database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.14.mysqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Mysql table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.14.mysqlTable.table","typeLabel":"string"}},"title":"mysql_table","required":["host","schema","table"],"additionalProperties":false,"description":"Mysql table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.14.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.15.oracleTable.host","typeLabel":"string"},"serviceName":{"type":"string","description":"Oracle service name (PDB)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.15.oracleTable.serviceName","typeLabel":"string"},"schema":{"type":"string","description":"Oracle schema (= owning user)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.15.oracleTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Oracle table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.15.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.16.postgresTable.host","typeLabel":"string"},"database":{"type":"string","description":"Postgres database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.16.postgresTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Postgres schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.16.postgresTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Postgres table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.16.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.17.redshiftTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Redshift schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.17.redshiftTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Redshift table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.17.redshiftTable.cluster","typeLabel":"string"}},"title":"redshift_table","required":["database","schema","table"],"additionalProperties":false,"description":"Redshift table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.17.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.18.savedView.id","typeLabel":"string\u003cuuid>"}},"title":"saved_view","required":["id"],"additionalProperties":false,"description":"Saved view identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.18.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.19.snowflakeTable.account","typeLabel":"string"},"database":{"type":"string","description":"Snowflake database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.19.snowflakeTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Snowflake schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.19.snowflakeTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Snowflake table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.19.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.20.sqlMeshAudit.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.20.sqlMeshAudit.fqn","typeLabel":"string"},"auditId":{"type":"string","description":"Identifier of the audit","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.20.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.21.sqlMeshModel.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.21.sqlMeshModel.fqn","typeLabel":"string"}},"title":"sql_mesh_model","required":["integrationId","fqn"],"additionalProperties":false,"description":"SQLMesh Model identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.21.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.22.synqPath.path","typeLabel":"string"}},"title":"synq_path","required":["path"],"additionalProperties":false,"description":"SynqPath identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.22.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.23.trinoTable.host","typeLabel":"string"},"catalog":{"type":"string","description":"Trino catalog","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.23.trinoTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Trino schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.23.trinoTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Trino table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.23.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.23","typeLabel":"Identifier · object"}],"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX]","typeLabel":"Identifier · object"},"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers","typeLabel":"Identifier · object[]"}},"title":"identifier_list","additionalProperties":false,"description":"Resolves to entities matching any of the given identifiers.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1.identifierList","typeLabel":"identifier_list · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.1","typeLabel":"identifier_list · object"},{"type":"object","title":"in_folder","required":["inFolder"],"properties":{"inFolder":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.path.items.[INDEX]","typeLabel":"string"},"description":"Opaque folder identifiers (a folder's own entity id). `folders` is the\n structured, human-authorable alternative. When `path` is the only source\n set and `deep` is unset, `deep` defaults to true for back-compat with\n queries authored before `deep` existed.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.path","typeLabel":"string[]"},"folders":{"type":"array","items":{"type":"object","properties":{"rootEntityId":{"type":"string","description":"Opaque id of the entity the folder hierarchy hangs under — an integration\n root or container (for example a warehouse instance, a database, or a\n transformation project). Take it verbatim from `FolderRef.root_entity_id`\n of a folder you already read, or from an entity id returned elsewhere.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folders.items.[INDEX].rootEntityId","typeLabel":"string"},"folders":{"type":"array","items":{"type":"string","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folders.items.[INDEX].folders.items.[INDEX]","typeLabel":"string"},"description":"Ordered folder names from the root down to this folder (root first, leaf\n last), for example [\"staging\", \"sales\"]. Empty means the ref points at the\n root entity itself. Folder names are kept as separate segments (not joined\n with \"/\") because some platforms allow \"/\" inside a single folder name.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folders.items.[INDEX].folders","typeLabel":"string[]"}},"title":"FolderRef","additionalProperties":false,"description":"FolderRef is the human-friendly, structured address of a folder: the entity it\n hangs under (`root_entity_id`) plus the ordered folder names from that root\n down to the folder (`folders`).\n\n It is the stable way to name a folder across responses. Prefer it over the\n opaque folder entity id when you want to log, display, or reconstruct a\n location — the segments are the same names a user sees in the catalog, and\n they survive changes to the underlying id encoding.\n\n A `FolderRef` with an empty `folders` list names the root entity itself (a\n top-level integration or container the hierarchy hangs from).\n\n This type lives in `synq.entities.v1` (rather than a folder-specific package)\n so it can be shared by both the folders navigation API and the query API\n without an import cycle.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folders.items.[INDEX]","typeLabel":"FolderRef · object"},"description":"Structured, human-authorable folder addresses (root entity + folder-name\n segments). Take a `FolderRef` verbatim from a folder returned by the folders\n navigation API, or build one from names you can see in the catalog.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folders","typeLabel":"FolderRef · object[]"},"folderOf":{"type":"object","properties":{"entityIds":{"type":"array","items":{"type":"string","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.entityIds.items.[INDEX]","typeLabel":"string"},"description":"Simplified source: the assets named directly by opaque entity id. Use this\n for the common \"same folder as these specific assets\" case; equivalent to an\n input_query that lists the same ids.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.entityIds","typeLabel":"string[]"},"inputQuery":{"type":"object","properties":{"parts":{"type":"array","items":{"oneOf":[{"type":"object","title":"entity_ids","required":["entityIds"],"properties":{"entityIds":{"type":"object","properties":{"entityIds":{"type":"array","items":{"type":"string","maxLength":1024,"minLength":1,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.0.entityIds.entityIds.items.[INDEX]","typeLabel":"string"},"description":"The entities to select. An id may not be blank.\n\n An empty list selects no entities, exactly as an empty `identifier_list`\n does. Be deliberate about it, because it is not the same as leaving the part\n out: a part that selects nothing still counts, so it empties an AND, adds\n nothing to an OR, and removes nothing from an EXCEPT. If what you mean is\n \"do not restrict on specific entities\", omit the part instead of sending it\n empty.\n\n Ids may be up to 1024 characters — the same limit as `Identifier.entity_id`,\n where you read them from, so any id the API returned is accepted here.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.0.entityIds.entityIds","typeLabel":"string[]"}},"title":"entity_ids","additionalProperties":false,"description":"Pin specific entities by the ids the API returned for them. Read back as\n `identifier_list`, with each id on the identifier it names.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.0.entityIds","typeLabel":"entity_ids · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.0","typeLabel":"entity_ids · object"},{"type":"object","title":"identifier_list","required":["identifierList"],"properties":{"identifierList":{"type":"object","properties":{"identifiers":{"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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.0.airflowDag.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.0.airflowDag.dagId","typeLabel":"string"}},"title":"airflow_dag","required":["integrationId","dagId"],"additionalProperties":false,"description":"Airflow DAG identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.0.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.1.airflowTask.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.1.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.2.athenaTable.catalog","typeLabel":"string"},"database":{"type":"string","description":"Glue database (the namespace users typically filter on).","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.2.athenaTable.database","typeLabel":"string"},"table":{"type":"string","description":"Glue table or view name.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.2.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.3.bigqueryTable.project","typeLabel":"string"},"dataset":{"type":"string","description":"BigQuery dataset id","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.3.bigqueryTable.dataset","typeLabel":"string"},"table":{"type":"string","description":"BigQuery table name","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.3.bigqueryTable.table","typeLabel":"string"}},"title":"bigquery_table","required":["project","dataset","table"],"additionalProperties":false,"description":"BigQuery table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.3.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.4.clickhouseTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Clickhouse database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.4.clickhouseTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Clickhouse table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.4.clickhouseTable.table","typeLabel":"string"}},"title":"clickhouse_table","required":["host","schema","table"],"additionalProperties":false,"description":"Clickhouse table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.4.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.5.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.6.databricksTable.workspace","typeLabel":"string"},"catalog":{"type":"string","description":"Databricks catalog","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.6.databricksTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Databricks schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.6.databricksTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Databricks table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.6.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.7.dataproduct.id","typeLabel":"string\u003cuuid>"}},"title":"dataproduct","required":["id"],"additionalProperties":false,"description":"Dataproduct identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.7.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.8.db2Table.host","typeLabel":"string"},"database":{"type":"string","description":"Database name or alias, as in `CONNECT TO \u003cdatabase>`","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.8.db2Table.database","typeLabel":"string"},"schema":{"type":"string","description":"Db2 schema (e.g. \"DB2INST1\")","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.8.db2Table.schema","typeLabel":"string"},"table":{"type":"string","description":"Db2 table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.8.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.9.dbtCloudNode.nodeId","typeLabel":"string"},"accountId":{"type":"string","description":"Your dbt Cloud account id","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.9.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.10.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.11.fabricTable.instance","typeLabel":"string"},"database":{"type":"string","description":"Fabric warehouse / lakehouse (database).","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.11.fabricTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Schema within the database.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.11.fabricTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Table or view name.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.11.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.monitoredId","typeLabel":"any"},"monitorId":{"type":"string","description":"Identifier of the monitor","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.monitorId","typeLabel":"string"},"segment":{"oneOf":[{"type":"string","description":"Optional monitor segmentation identifier","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.segment.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional monitor segmentation identifier","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.segment.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.integrationId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.integrationId.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.integrationId","typeLabel":"string | null"}},"title":"monitor","required":["monitoredId","monitorId"],"additionalProperties":false,"description":"Monitor identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.13.mssqlTable.host","typeLabel":"string"},"database":{"type":"string","description":"SQL Server database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.13.mssqlTable.database","typeLabel":"string"},"schema":{"type":"string","description":"SQL Server schema (e.g. \"dbo\")","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.13.mssqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"SQL Server table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.13.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.14.mysqlTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Mysql database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.14.mysqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Mysql table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.14.mysqlTable.table","typeLabel":"string"}},"title":"mysql_table","required":["host","schema","table"],"additionalProperties":false,"description":"Mysql table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.14.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.15.oracleTable.host","typeLabel":"string"},"serviceName":{"type":"string","description":"Oracle service name (PDB)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.15.oracleTable.serviceName","typeLabel":"string"},"schema":{"type":"string","description":"Oracle schema (= owning user)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.15.oracleTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Oracle table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.15.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.16.postgresTable.host","typeLabel":"string"},"database":{"type":"string","description":"Postgres database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.16.postgresTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Postgres schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.16.postgresTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Postgres table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.16.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.17.redshiftTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Redshift schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.17.redshiftTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Redshift table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.17.redshiftTable.cluster","typeLabel":"string"}},"title":"redshift_table","required":["database","schema","table"],"additionalProperties":false,"description":"Redshift table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.17.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.18.savedView.id","typeLabel":"string\u003cuuid>"}},"title":"saved_view","required":["id"],"additionalProperties":false,"description":"Saved view identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.18.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.19.snowflakeTable.account","typeLabel":"string"},"database":{"type":"string","description":"Snowflake database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.19.snowflakeTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Snowflake schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.19.snowflakeTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Snowflake table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.19.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.20.sqlMeshAudit.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.20.sqlMeshAudit.fqn","typeLabel":"string"},"auditId":{"type":"string","description":"Identifier of the audit","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.20.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.21.sqlMeshModel.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.21.sqlMeshModel.fqn","typeLabel":"string"}},"title":"sql_mesh_model","required":["integrationId","fqn"],"additionalProperties":false,"description":"SQLMesh Model identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.21.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.22.synqPath.path","typeLabel":"string"}},"title":"synq_path","required":["path"],"additionalProperties":false,"description":"SynqPath identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.22.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.23.trinoTable.host","typeLabel":"string"},"catalog":{"type":"string","description":"Trino catalog","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.23.trinoTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Trino schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.23.trinoTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Trino table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.23.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.23","typeLabel":"Identifier · object"}],"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX]","typeLabel":"Identifier · object"},"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers","typeLabel":"Identifier · object[]"}},"title":"identifier_list","additionalProperties":false,"description":"Resolves to entities matching any of the given identifiers.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList","typeLabel":"identifier_list · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1","typeLabel":"identifier_list · object"},{"type":"object","title":"identities_of","required":["identitiesOf"],"properties":{"identitiesOf":{"type":"object","properties":{"inputQuery":{"$circularRef":"5b88d704-2a2e-4c1a-837b-99543d863e65","description":"The assets whose identities to resolve. Required.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.2.identitiesOf.inputQuery","typeLabel":"any"},"limitToTypes":{"type":"array","items":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.2.identitiesOf.limitToTypes.items.[INDEX].oneOf.0.custom","typeLabel":"integer\u003cint32>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.2.identitiesOf.limitToTypes.items.[INDEX].oneOf.0","typeLabel":"custom · object"},{"type":"object","title":"default","required":["default"],"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.2.identitiesOf.limitToTypes.items.[INDEX].oneOf.1.default","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.2.identitiesOf.limitToTypes.items.[INDEX].oneOf.1","typeLabel":"default · object"}],"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.2.identitiesOf.limitToTypes.items.[INDEX]","typeLabel":"custom · object | default · object"},"description":"Restrict the result to these types. When empty, only the other members of\n each identity group are returned. When set, an input asset that already has\n one of these types is returned as well.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.2.identitiesOf.limitToTypes","typeLabel":"(custom · object | default · object)[]"}},"title":"identities_of","required":["inputQuery"],"additionalProperties":false,"description":"Resolves to the identities of whatever the inner query matches.\n\n The same real-world table is often described by several assets — a\n transformation model and the warehouse table it materialises into are one\n asset with several representations. Those representations form an identity\n group. IdentitiesOf takes the assets matched by `input_query` and returns\n their identity groups, so a selection made in one platform's terms also\n covers the equivalent assets in every other platform.\n\n The typical use is subtraction: \"this warehouse database, except whatever my\n transformation tool already owns\" is an EXCEPT whose removal clause is an\n IdentitiesOf over the transformation models. Without it the two selections\n overlap on every materialised table.\nidentities_of.input_query_selects_something // identities_of requires an input_query with at least one part\n","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.2.identitiesOf","typeLabel":"identities_of · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.2","typeLabel":"identities_of · object"},{"type":"object","title":"in_data_platform","required":["inDataPlatform"],"properties":{"inDataPlatform":{"type":"object","properties":{"identifier":{"oneOf":[{"type":"object","title":"athena","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["athena"],"properties":{"athena":{"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 by Coalesce Quality from sts:GetCallerIdentity at integration setup time.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.0.athena.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":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.0.athena.catalog","typeLabel":"string"}},"title":"athena","required":["instance","catalog"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.0.athena","typeLabel":"athena · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.0","typeLabel":"athena · object"},{"type":"object","title":"bigquery","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["bigquery"],"properties":{"bigquery":{"type":"object","properties":{"project":{"type":"string","description":"BigQuery project","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.1.bigquery.project","typeLabel":"string"}},"title":"bigquery","required":["project"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.1.bigquery","typeLabel":"bigquery · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.1","typeLabel":"bigquery · object"},{"type":"object","title":"clickhouse","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["clickhouse"],"properties":{"clickhouse":{"type":"object","properties":{"host":{"type":"string","description":"Clickhouse host inclusive of port","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.2.clickhouse.host","typeLabel":"string"},"schema":{"type":"string","description":"Clickhouse database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.2.clickhouse.schema","typeLabel":"string"}},"title":"clickhouse","required":["host","schema"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.2.clickhouse","typeLabel":"clickhouse · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.2","typeLabel":"clickhouse · object"},{"type":"object","title":"databricks","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["databricks"],"properties":{"databricks":{"type":"object","properties":{"workspace":{"type":"string","description":"URL of the databricks workspace","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.3.databricks.workspace","typeLabel":"string"}},"title":"databricks","required":["workspace"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.3.databricks","typeLabel":"databricks · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.3","typeLabel":"databricks · object"},{"type":"object","title":"db2","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["db2"],"properties":{"db2":{"type":"object","properties":{"host":{"type":"string","description":"Host name of the Db2 server","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.4.db2.host","typeLabel":"string"},"database":{"type":"string","description":"Database name or alias, as in `CONNECT TO \u003cdatabase>`","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.4.db2.database","typeLabel":"string"}},"title":"db2","required":["host","database"],"additionalProperties":false,"description":"IBM Db2 for Linux, UNIX and Windows. An integration connects to one\n database, so host and database together identify it.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.4.db2","typeLabel":"db2 · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.4","typeLabel":"db2 · object"},{"type":"object","title":"dbt_cloud","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["dbtCloud"],"properties":{"dbtCloud":{"type":"object","properties":{"apiEndpoint":{"type":"string","description":"API endpoint for Dbt Cloud","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.5.dbtCloud.apiEndpoint","typeLabel":"string"},"accountId":{"type":"string","description":"Account ID","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.5.dbtCloud.accountId","typeLabel":"string"},"projectId":{"type":"string","description":"Project ID","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.5.dbtCloud.projectId","typeLabel":"string"}},"title":"dbt_cloud","required":["apiEndpoint","accountId","projectId"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.5.dbtCloud","typeLabel":"dbt_cloud · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.5","typeLabel":"dbt_cloud · object"},{"type":"object","title":"duckdb","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["duckdb"],"properties":{"duckdb":{"type":"object","properties":{"motherduckAccount":{"type":"string","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.6.duckdb.motherduckAccount","typeLabel":"string"}},"title":"duckdb","additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.6.duckdb","typeLabel":"duckdb · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.6","typeLabel":"duckdb · object"},{"type":"object","title":"fabric","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["fabric"],"properties":{"fabric":{"type":"object","properties":{"instance":{"type":"string","description":"Workspace SQL analytics endpoint host, e.g.\n \"\u003cworkspace-id>.datawarehouse.fabric.microsoft.com\". Identifies the Fabric\n workspace the integration connects to. Fabric is workspace-scoped with\n cross-database queries, so the workspace host alone identifies the platform\n (like Databricks' workspace URL); a specific warehouse/table is addressed by\n FabricTableIdentifier.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.7.fabric.instance","typeLabel":"string"},"workspaceId":{"type":"string","description":"Fabric workspace GUID — the identifier used by the Fabric REST API for\n workspace-scoped resources. The Fabric endpoint host in `instance` encodes\n the tenant and workspace GUIDs; this is the decoded workspace GUID, provided\n so you don't have to decode it yourself. `instance` remains the identifying\n value. Optional: empty when the host isn't a standard Fabric endpoint.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.7.fabric.workspaceId","typeLabel":"string"},"tenantId":{"type":"string","description":"Entra (Azure AD) tenant GUID, decoded from the endpoint host in `instance`\n alongside workspace_id. Optional: empty when the host isn't a standard\n Fabric endpoint.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.7.fabric.tenantId","typeLabel":"string"}},"title":"fabric","required":["instance"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.7.fabric","typeLabel":"fabric · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.7","typeLabel":"fabric · object"},{"type":"object","title":"mssql","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["mssql"],"properties":{"mssql":{"type":"object","properties":{"host":{"type":"string","description":"SQL Server host","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.8.mssql.host","typeLabel":"string"},"database":{"type":"string","description":"Database name","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.8.mssql.database","typeLabel":"string"}},"title":"mssql","required":["host","database"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.8.mssql","typeLabel":"mssql · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.8","typeLabel":"mssql · object"},{"type":"object","title":"mysql","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["mysql"],"properties":{"mysql":{"type":"object","properties":{"host":{"type":"string","description":"Mysql host inclusive of port","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.9.mysql.host","typeLabel":"string"}},"title":"mysql","required":["host"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.9.mysql","typeLabel":"mysql · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.9","typeLabel":"mysql · object"},{"type":"object","title":"oracle","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["oracle"],"properties":{"oracle":{"type":"object","properties":{"host":{"type":"string","description":"Oracle host","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.10.oracle.host","typeLabel":"string"},"serviceName":{"type":"string","description":"Oracle service name (PDB)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.10.oracle.serviceName","typeLabel":"string"}},"title":"oracle","required":["host","serviceName"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.10.oracle","typeLabel":"oracle · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.10","typeLabel":"oracle · object"},{"type":"object","title":"postgres","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["postgres"],"properties":{"postgres":{"type":"object","properties":{"host":{"type":"string","description":"Postgres host inclusive of port","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.11.postgres.host","typeLabel":"string"},"database":{"type":"string","description":"Postgres database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.11.postgres.database","typeLabel":"string"}},"title":"postgres","required":["host","database"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.11.postgres","typeLabel":"postgres · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.11","typeLabel":"postgres · object"},{"type":"object","title":"redshift","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["redshift"],"properties":{"redshift":{"type":"object","properties":{"cluster":{"type":"string","description":"Redshift cluster","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.12.redshift.cluster","typeLabel":"string"},"database":{"type":"string","description":"Redshift database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.12.redshift.database","typeLabel":"string"}},"title":"redshift","required":["cluster","database"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.12.redshift","typeLabel":"redshift · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.12","typeLabel":"redshift · object"},{"type":"object","title":"snowflake","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["snowflake"],"properties":{"snowflake":{"type":"object","properties":{"account":{"type":"string","description":"Snowflake account","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.13.snowflake.account","typeLabel":"string"},"database":{"type":"string","description":"Snowflake database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.13.snowflake.database","typeLabel":"string"}},"title":"snowflake","required":["account","database"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.13.snowflake","typeLabel":"snowflake · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.13","typeLabel":"snowflake · object"},{"type":"object","title":"sql_mesh","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["sqlMesh"],"properties":{"sqlMesh":{"type":"object","properties":{"defaultDatabaseInstance":{"type":"string","description":"Default database instance for SQL Mesh","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.14.sqlMesh.defaultDatabaseInstance","typeLabel":"string"}},"title":"sql_mesh","required":["defaultDatabaseInstance"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.14.sqlMesh","typeLabel":"sql_mesh · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.14","typeLabel":"sql_mesh · object"},{"type":"object","title":"synq_integration_id","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["synqIntegrationId"],"properties":{"synqIntegrationId":{"type":"string","title":"synq_integration_id","description":"Coalesce Quality integration ID maps to the created integration on the Coalesce Quality platform.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.15.synqIntegrationId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.15","typeLabel":"synq_integration_id · object"},{"type":"object","title":"trino","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["trino"],"properties":{"trino":{"type":"object","properties":{"coordinator":{"type":"string","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.16.trino.coordinator","typeLabel":"string"}},"title":"trino","additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.16.trino","typeLabel":"trino · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.16","typeLabel":"trino · object"},{"type":"object","title":"unknown","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["unknown"],"properties":{"unknown":{"type":"object","title":"unknown","additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.17.unknown","typeLabel":"unknown · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.17","typeLabel":"unknown · object"}],"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier","typeLabel":"athena · object | bigquery · object | clickhouse · object | databricks · object | db2 · object | dbt_cloud · object | duckdb · object | fabric · object | mssql · object | mysql · object | oracle · object | postgres · object | redshift · object | snowflake · object | sql_mesh · object | synq_integration_id · object | trino · object | unknown · object"}},"title":"in_data_platform","additionalProperties":false,"description":"Resolves to all entities that belong to the given data platform.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform","typeLabel":"in_data_platform · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3","typeLabel":"in_data_platform · object"},{"type":"object","title":"in_dataproduct","required":["inDataproduct"],"properties":{"inDataproduct":{"type":"object","properties":{"identifier":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Dataproduct id that identifies the Dataproduct","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.4.inDataproduct.identifier.id","typeLabel":"string\u003cuuid>"}},"title":"DataproductIdentifier","required":["id"],"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.4.inDataproduct.identifier","typeLabel":"DataproductIdentifier · object"}},"title":"in_dataproduct","additionalProperties":false,"description":"Resolves to all the assets that belong to the given data product.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.4.inDataproduct","typeLabel":"in_dataproduct · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.4","typeLabel":"in_dataproduct · object"},{"type":"object","title":"in_domain","required":["inDomain"],"properties":{"inDomain":{"type":"object","properties":{"domainId":{"type":"string","format":"uuid","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.5.inDomain.domainId","typeLabel":"string\u003cuuid>"}},"title":"in_domain","additionalProperties":false,"description":"Resolves to all entities in the given data domain.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.5.inDomain","typeLabel":"in_domain · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.5","typeLabel":"in_domain · object"},{"type":"object","title":"in_folder","required":["inFolder"],"properties":{"inFolder":{"oneOf":[{"$circularRef":"c79c7116-4afc-4517-9fe8-67fe693cd4e1","title":"in_folder","isRequired":true}],"isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.6.inFolder","typeLabel":"any"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.6","typeLabel":"in_folder · object"},{"type":"object","title":"query","required":["query"],"properties":{"query":{"$circularRef":"5b88d704-2a2e-4c1a-837b-99543d863e65","title":"query","description":"Nested sub-query, enabling recursive composition of filters and operands.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.7.query","typeLabel":"any"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.7","typeLabel":"query · object"},{"type":"object","title":"unsupported","required":["unsupported"],"properties":{"unsupported":{"type":"object","properties":{"queryJson":{"type":"string","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.8.unsupported.queryJson","typeLabel":"string"}},"title":"unsupported","additionalProperties":false,"description":"Read-only. Represents internal query types that cannot be expressed in the public API.\n Do not construct these directly — they are returned when translating from internal queries.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.8.unsupported","typeLabel":"unsupported · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.8","typeLabel":"unsupported · object"},{"type":"object","title":"with_annotation","required":["withAnnotation"],"properties":{"withAnnotation":{"type":"object","properties":{"name":{"type":"string","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.9.withAnnotation.name","typeLabel":"string"},"acceptedValue":{"oneOf":[{"type":"string","deprecated":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.9.withAnnotation.acceptedValue.oneOf.0","typeLabel":"string"},{"type":"null","deprecated":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.9.withAnnotation.acceptedValue.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.9.withAnnotation.acceptedValue","typeLabel":"string | null"},"acceptedValues":{"type":"array","items":{"type":"string","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.9.withAnnotation.acceptedValues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.9.withAnnotation.acceptedValues","typeLabel":"string[]"}},"title":"with_annotation","additionalProperties":false,"description":"Resolves to all entities that contain the annotation with at least one of the provided accepted values.\n In case of no given accepted values, all entities that carry the given annotation are returned.\n The name and the values match case-insensitively.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.9.withAnnotation","typeLabel":"with_annotation · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.9","typeLabel":"with_annotation · object"},{"type":"object","title":"with_data_platform_type","required":["withDataPlatformType"],"properties":{"withDataPlatformType":{"type":"object","properties":{"types":{"type":"array","items":{"type":"string","title":"DataPlatformType","enum":["DATA_PLATFORM_TYPE_UNSPECIFIED","DATA_PLATFORM_TYPE_BIGQUERY","DATA_PLATFORM_TYPE_LOOKER","DATA_PLATFORM_TYPE_DBT","DATA_PLATFORM_TYPE_DBT_CLOUD","DATA_PLATFORM_TYPE_DBT_SELF_HOSTED","DATA_PLATFORM_TYPE_SNOWFLAKE","DATA_PLATFORM_TYPE_GCP","DATA_PLATFORM_TYPE_GIT","DATA_PLATFORM_TYPE_GITHUB","DATA_PLATFORM_TYPE_REDSHIFT","DATA_PLATFORM_TYPE_TABLEAU","DATA_PLATFORM_TYPE_AIRFLOW","DATA_PLATFORM_TYPE_CLICKHOUSE","DATA_PLATFORM_TYPE_POSTGRES","DATA_PLATFORM_TYPE_MYSQL","DATA_PLATFORM_TYPE_DATABRICKS","DATA_PLATFORM_TYPE_SQLMESH","DATA_PLATFORM_TYPE_DUCKDB","DATA_PLATFORM_TYPE_TRINO","DATA_PLATFORM_TYPE_ATLAN","DATA_PLATFORM_TYPE_COALESCE","DATA_PLATFORM_TYPE_CASTORDOC","DATA_PLATFORM_TYPE_FIVETRAN","DATA_PLATFORM_TYPE_DAGSTER","DATA_PLATFORM_TYPE_AIRBYTE","DATA_PLATFORM_TYPE_STITCH","DATA_PLATFORM_TYPE_SNOWPLOW","DATA_PLATFORM_TYPE_POWERBI","DATA_PLATFORM_TYPE_THOUGHTSPOT","DATA_PLATFORM_TYPE_SIGMA","DATA_PLATFORM_TYPE_DOMO","DATA_PLATFORM_TYPE_MSSQL","DATA_PLATFORM_TYPE_ORACLE","DATA_PLATFORM_TYPE_ATHENA","DATA_PLATFORM_TYPE_FABRIC","DATA_PLATFORM_TYPE_DB2","DATA_PLATFORM_TYPE_LOOKER_STUDIO","DATA_PLATFORM_TYPE_HEX","DATA_PLATFORM_TYPE_OMNI","DATA_PLATFORM_TYPE_METABASE","DATA_PLATFORM_TYPE_GOOGLE_SHEETS","DATA_PLATFORM_TYPE_GRAFANA","DATA_PLATFORM_TYPE_STREAMLIT","DATA_PLATFORM_TYPE_ASTRATO","DATA_PLATFORM_TYPE_SNOWFLAKE_CORTEX","DATA_PLATFORM_TYPE_SNOWFLAKE_INTELLIGENCE","DATA_PLATFORM_TYPE_CUBE","DATA_PLATFORM_TYPE_CENSUS","DATA_PLATFORM_TYPE_HIGHTOUCH","DATA_PLATFORM_TYPE_WORKATO","DATA_PLATFORM_TYPE_ESTUARY","DATA_PLATFORM_TYPE_DLT","DATA_PLATFORM_TYPE_TERRAFORM","DATA_PLATFORM_TYPE_HEVO","DATA_PLATFORM_TYPE_DATASTREAM","DATA_PLATFORM_TYPE_QLIK","DATA_PLATFORM_TYPE_SALESFORCE","DATA_PLATFORM_TYPE_SYNQ"],"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.10.withDataPlatformType.types.items.[INDEX]","typeLabel":"enum\u003cstring>"},"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.10.withDataPlatformType.types","typeLabel":"enum\u003cstring>[]"}},"title":"with_data_platform_type","additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.10.withDataPlatformType","typeLabel":"with_data_platform_type · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.10","typeLabel":"with_data_platform_type · object"},{"type":"object","title":"with_default_visible_types","required":["withDefaultVisibleTypes"],"properties":{"withDefaultVisibleTypes":{"type":"object","title":"with_default_visible_types","additionalProperties":false,"description":"Resolves to every asset of a type the catalog shows by default — the\n \"everything\" starting set.\n\n Use it as the base of a subtraction, e.g. an EXCEPT query whose first part is\n WithDefaultVisibleTypes and whose second part is what to leave out. On its own\n it selects the whole catalog, so it is rarely useful as the only part of a\n query.\n\n \"Default visible\" excludes the supporting asset types the catalog hides unless\n asked for (columns, tests, and similar), so this is not literally every entity.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.11.withDefaultVisibleTypes","typeLabel":"with_default_visible_types · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.11","typeLabel":"with_default_visible_types · object"},{"type":"object","title":"with_name_search","required":["withNameSearch"],"properties":{"withNameSearch":{"type":"object","properties":{"searchQuery":{"type":"string","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.12.withNameSearch.searchQuery","typeLabel":"string"}},"title":"with_name_search","additionalProperties":false,"description":"Resolves to all entities matching the given name search.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.12.withNameSearch","typeLabel":"with_name_search · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.12","typeLabel":"with_name_search · object"},{"type":"object","title":"with_type","required":["withType"],"properties":{"withType":{"type":"object","properties":{"type":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"deprecated":true,"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.type.oneOf.0.custom","typeLabel":"integer\u003cint32>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.type.oneOf.0","typeLabel":"custom · object"},{"type":"object","title":"default","required":["default"],"deprecated":true,"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.type.oneOf.1.default","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.type.oneOf.1","typeLabel":"default · object"}],"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.type","typeLabel":"custom · object | default · object"},"types":{"type":"array","items":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.types.items.[INDEX].oneOf.0.custom","typeLabel":"integer\u003cint32>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.types.items.[INDEX].oneOf.0","typeLabel":"custom · object"},{"type":"object","title":"default","required":["default"],"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.types.items.[INDEX].oneOf.1.default","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.types.items.[INDEX].oneOf.1","typeLabel":"default · object"}],"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.types.items.[INDEX]","typeLabel":"custom · object | default · object"},"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.types","typeLabel":"(custom · object | default · object)[]"},"traits":{"type":"array","items":{"type":"string","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.traits.items.[INDEX]","typeLabel":"string"},"description":"Traits to select by, instead of — or alongside — naming types.\n\n A trait is a property a type has, so `is_monitorable` means \"everything a\n monitor can run on\" without listing the forty-odd types that satisfy it\n today. The list it stands for is worked out each time the selection runs,\n so a selection saved this way covers a new platform's tables as soon as we\n support them, and you never have to revisit it.\n\n Entities carrying any of the traits match. When `types` is also set the two\n narrow each other: the entity must be one of the named types AND carry one\n of the traits.\n\n Accepted values, and what each one means, come from the selection-query\n grammar the API publishes (`describe_resolver_ql`, or the query editor's\n reference). A name that is not in it selects nothing rather than being\n ignored, so a typo narrows the result to empty instead of widening it —\n check a trait against the grammar before storing a selection. In a query\n written as text this is `with_type(traits=\"is_monitorable\")`, and there a\n name outside the grammar is rejected outright.\n\n A trait may also be a type alias, spelled `alias:\u003cname>` where `\u003cname>` is\n one of the aliases the grammar lists among the entity types, e.g.\n `alias:table`. It selects every type the alias stands for, worked out each\n time the selection runs like any other trait. A selection written as\n `with_type(\"table\")` is stored this way and reads back with\n `traits: [\"alias:table\"]`; writing that back keeps the same selection. In a\n query written as text an alias is always `with_type(\"table\")`, never\n `traits=\"alias:table\"`.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.traits","typeLabel":"string[]"}},"title":"with_type","additionalProperties":false,"description":"Resolves to all the entities that have the provided type, or carry one of the\n provided traits.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType","typeLabel":"with_type · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13","typeLabel":"with_type · object"}],"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX]","typeLabel":"entity_ids · object | identifier_list · object | identities_of · object | in_data_platform · object | in_dataproduct · object | in_domain · object | in_folder · object | query · object | unsupported · object | with_annotation · object | with_data_platform_type · object | with_default_visible_types · object | with_name_search · object | with_type · object"},"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts","typeLabel":"(entity_ids · object | identifier_list · object | identities_of · object | in_data_platform · object | in_dataproduct · object | in_domain · object | in_folder · object | query · object | unsupported · object | with_annotation · object | with_data_platform_type · object | with_default_visible_types · object | with_name_search · object | with_type · object)[]"},"operand":{"type":"string","title":"QueryOperand","enum":["QUERY_OPERAND_UNSPECIFIED","QUERY_OPERAND_AND","QUERY_OPERAND_OR","QUERY_OPERAND_EXCEPT","QUERY_OPERAND_UPSTREAM","QUERY_OPERAND_DOWNSTREAM"],"description":"Defaults to AND if not specified.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.operand","typeLabel":"enum\u003cstring>"}},"title":"Query","additionalProperties":false,"description":"General source: resolve the folder(s) of whatever assets this query matches\n (e.g. a name or type filter). Use when the assets can't be listed up front.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery","typeLabel":"Query · object"},"includeAllAncestors":{"type":"boolean","description":"When false (default): only each asset's immediate parent folder. When true:\n every ancestor folder up the hierarchy, so `InFolder` then also matches\n assets in those ancestor folders.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.includeAllAncestors","typeLabel":"boolean"}},"title":"FolderOf","additionalProperties":false,"description":"Resolve the folders to search from a set of assets, rather than naming them.\n Selects everything in the folder(s) that contain those assets.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf","typeLabel":"FolderOf · object"},"deep":{"oneOf":[{"type":"boolean","description":"When false or unset, matches only the direct members of the folder(s). When\n true, matches the entire recursive subtree (members of subfolders too).\n\n Exception: when only the legacy `path` source is set and `deep` is unset,\n it defaults to true (preserves the behaviour of queries authored before this\n flag existed). With `folders` or `folder_of`, unset means false (shallow).","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.deep.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"When false or unset, matches only the direct members of the folder(s). When\n true, matches the entire recursive subtree (members of subfolders too).\n\n Exception: when only the legacy `path` source is set and `deep` is unset,\n it defaults to true (preserves the behaviour of queries authored before this\n flag existed). With `folders` or `folder_of`, unset means false (shallow).","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.deep.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.deep","typeLabel":"boolean | null"}},"title":"in_folder","additionalProperties":false,"description":"synq.queries.v1.InDataPlatform in_data_platform = 5;","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2.inFolder","typeLabel":"in_folder · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.2","typeLabel":"in_folder · object"},{"type":"object","title":"query","required":["query"],"properties":{"query":{"oneOf":[{"$circularRef":"eb47fa5a-82ed-44fd-8b72-4d20a1d798fe","title":"query","isRequired":true}],"isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.3.query","typeLabel":"any"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.3","typeLabel":"query · object"},{"type":"object","title":"unsupported","required":["unsupported"],"properties":{"unsupported":{"type":"object","properties":{"queryJson":{"type":"string","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.4.unsupported.queryJson","typeLabel":"string"}},"title":"unsupported","additionalProperties":false,"description":"Collects all the parts of the query that are currently unsupported in translation.\n These represent an internal structure that are not yet completely available on the API.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.4.unsupported","typeLabel":"unsupported · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.4","typeLabel":"unsupported · object"},{"type":"object","title":"with_annotation","required":["withAnnotation"],"properties":{"withAnnotation":{"type":"object","properties":{"name":{"type":"string","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.5.withAnnotation.name","typeLabel":"string"},"acceptedValue":{"oneOf":[{"type":"string","deprecated":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.5.withAnnotation.acceptedValue.oneOf.0","typeLabel":"string"},{"type":"null","deprecated":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.5.withAnnotation.acceptedValue.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.5.withAnnotation.acceptedValue","typeLabel":"string | null"},"acceptedValues":{"type":"array","items":{"type":"string","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.5.withAnnotation.acceptedValues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.5.withAnnotation.acceptedValues","typeLabel":"string[]"}},"title":"with_annotation","additionalProperties":false,"description":"Resolves to all entities that contain the annotation with at least one of the provided accepted values.\n In case of no given accepted values, all entities that carry the given annotation are returned.\n The name and the values match case-insensitively.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.5.withAnnotation","typeLabel":"with_annotation · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.5","typeLabel":"with_annotation · object"},{"type":"object","title":"with_name_search","required":["withNameSearch"],"properties":{"withNameSearch":{"type":"object","properties":{"searchQuery":{"type":"string","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.6.withNameSearch.searchQuery","typeLabel":"string"}},"title":"with_name_search","additionalProperties":false,"description":"Resolves to all entities matching the given name search.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.6.withNameSearch","typeLabel":"with_name_search · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.6","typeLabel":"with_name_search · object"},{"type":"object","title":"with_type","required":["withType"],"properties":{"withType":{"type":"object","properties":{"type":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"deprecated":true,"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.7.withType.type.oneOf.0.custom","typeLabel":"integer\u003cint32>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.7.withType.type.oneOf.0","typeLabel":"custom · object"},{"type":"object","title":"default","required":["default"],"deprecated":true,"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.7.withType.type.oneOf.1.default","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.7.withType.type.oneOf.1","typeLabel":"default · object"}],"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.7.withType.type","typeLabel":"custom · object | default · object"},"types":{"type":"array","items":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.7.withType.types.items.[INDEX].oneOf.0.custom","typeLabel":"integer\u003cint32>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.7.withType.types.items.[INDEX].oneOf.0","typeLabel":"custom · object"},{"type":"object","title":"default","required":["default"],"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.7.withType.types.items.[INDEX].oneOf.1.default","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.7.withType.types.items.[INDEX].oneOf.1","typeLabel":"default · object"}],"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.7.withType.types.items.[INDEX]","typeLabel":"custom · object | default · object"},"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.7.withType.types","typeLabel":"(custom · object | default · object)[]"},"traits":{"type":"array","items":{"type":"string","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.7.withType.traits.items.[INDEX]","typeLabel":"string"},"description":"Traits to select by, instead of — or alongside — naming types.\n\n A trait is a property a type has, so `is_monitorable` means \"everything a\n monitor can run on\" without listing the forty-odd types that satisfy it\n today. The list it stands for is worked out each time the selection runs,\n so a selection saved this way covers a new platform's tables as soon as we\n support them, and you never have to revisit it.\n\n Entities carrying any of the traits match. When `types` is also set the two\n narrow each other: the entity must be one of the named types AND carry one\n of the traits.\n\n Accepted values, and what each one means, come from the selection-query\n grammar the API publishes (`describe_resolver_ql`, or the query editor's\n reference). A name that is not in it selects nothing rather than being\n ignored, so a typo narrows the result to empty instead of widening it —\n check a trait against the grammar before storing a selection. In a query\n written as text this is `with_type(traits=\"is_monitorable\")`, and there a\n name outside the grammar is rejected outright.\n\n A trait may also be a type alias, spelled `alias:\u003cname>` where `\u003cname>` is\n one of the aliases the grammar lists among the entity types, e.g.\n `alias:table`. It selects every type the alias stands for, worked out each\n time the selection runs like any other trait. A selection written as\n `with_type(\"table\")` is stored this way and reads back with\n `traits: [\"alias:table\"]`; writing that back keeps the same selection. In a\n query written as text an alias is always `with_type(\"table\")`, never\n `traits=\"alias:table\"`.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.7.withType.traits","typeLabel":"string[]"}},"title":"with_type","additionalProperties":false,"description":"Resolves to all the entities that have the provided type, or carry one of the\n provided traits.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.7.withType","typeLabel":"with_type · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX].oneOf.7","typeLabel":"with_type · object"}],"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts.items.[INDEX]","typeLabel":"entity_ids · object | identifier_list · object | in_folder · object | query · object | unsupported · object | with_annotation · object | with_name_search · object | with_type · object"},"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.parts","typeLabel":"(entity_ids · object | identifier_list · object | in_folder · object | query · object | unsupported · object | with_annotation · object | with_name_search · object | with_type · object)[]"},"operand":{"type":"string","title":"QueryOperand","enum":["QUERY_OPERAND_UNSPECIFIED","QUERY_OPERAND_AND","QUERY_OPERAND_OR","QUERY_OPERAND_EXCEPT","QUERY_OPERAND_UPSTREAM","QUERY_OPERAND_DOWNSTREAM"],"description":"QueryOperand defines how multiple QueryParts within a Query are combined.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query.operand","typeLabel":"enum\u003cstring>"}},"title":"EntitySelectionQuery","additionalProperties":false,"description":"Structured selection of tables and views this rule exclusively owns.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.query","typeLabel":"EntitySelectionQuery · object"},"resolverQl":{"type":"string","description":"ResolverQL selection string for the exclusion set. Same semantics as\n SqlTestsQueryConfig.resolver_ql: when set on write it takes precedence over\n `query` and is stored compiled; on read it carries the canonical rendering\n of the stored selection, equal to `rendered_resolver_ql`. `query` is always\n populated.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.resolverQl","typeLabel":"string"},"renderedResolverQl":{"type":"string","description":"Canonical ResolverQL rendering of the exclusion selection. OUTPUT ONLY,\n populated for every rule, ignored on write.","uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig.renderedResolverQl","typeLabel":"string"}},"title":"exclusive_query_config","additionalProperties":false,"description":"Deploys tests onto every match of a query; this rule exclusively owns the\n match set.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.0.exclusiveQueryConfig","typeLabel":"exclusive_query_config · object"},"id":{"type":"string","title":"id","format":"uuid","description":"Unique identifier for this rule.","uniqueKey":"deploymentRule.oneOf.0.id","typeLabel":"string\u003cuuid>"},"title":{"type":"string","title":"title","maxLength":100,"minLength":1,"description":"Human friendly name for this rule.","uniqueKey":"deploymentRule.oneOf.0.title","typeLabel":"string"},"source":{"type":"string","title":"source","enum":["SOURCE_APP","SOURCE_API"],"uniqueKey":"deploymentRule.oneOf.0.source","typeLabel":"enum\u003cstring>"},"configId":{"oneOf":[{"type":"string","title":"config_id","description":"Config ID this rule was authored from, when deployed via configuration as\n code. Unset for rules authored directly through this API.\n\n On a write this field is only ever set, never unset: omitting it keeps the\n stored value, so a full-replace update cannot detach the rule from the\n config that owns it. An empty string is a real config id — the one a deploy\n that declares no namespace uses — so sending it attaches the rule to that\n config rather than clearing the field. No value detaches a rule; recreating\n it is the only way to hand it back to the app.","uniqueKey":"deploymentRule.oneOf.0.configId.oneOf.0","typeLabel":"string"},{"type":"null","title":"config_id","description":"Config ID this rule was authored from, when deployed via configuration as\n code. Unset for rules authored directly through this API.\n\n On a write this field is only ever set, never unset: omitting it keeps the\n stored value, so a full-replace update cannot detach the rule from the\n config that owns it. An empty string is a real config id — the one a deploy\n that declares no namespace uses — so sending it attaches the rule to that\n config rather than clearing the field. No value detaches a rule; recreating\n it is the only way to hand it back to the app.","uniqueKey":"deploymentRule.oneOf.0.configId.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.0.configId","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.0","typeLabel":"SqlTestDeploymentRule · object"},{"type":"object","title":"SqlTestDeploymentRule","description":"SqlTestDeploymentRule dynamically deploys SQL test templates onto every table\n or view its selection matches, keeping them in sync as tables and columns\n change. Use it instead of authoring one SqlTest per table when the same set\n of checks should apply to many tables (e.g. \"not_null(email) on every table\n that has an email column\").","required":["exclusiveStaticConfig"],"properties":{"exclusiveStaticConfig":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Coalesce Quality path of the table or view this rule exclusively owns.","uniqueKey":"deploymentRule.oneOf.1.exclusiveStaticConfig.path","typeLabel":"string"}},"title":"exclusive_static_config","additionalProperties":false,"description":"Exclusively owns a single fixed table or view.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.1.exclusiveStaticConfig","typeLabel":"exclusive_static_config · object"},"id":{"type":"string","title":"id","format":"uuid","description":"Unique identifier for this rule.","uniqueKey":"deploymentRule.oneOf.1.id","typeLabel":"string\u003cuuid>"},"title":{"type":"string","title":"title","maxLength":100,"minLength":1,"description":"Human friendly name for this rule.","uniqueKey":"deploymentRule.oneOf.1.title","typeLabel":"string"},"source":{"type":"string","title":"source","enum":["SOURCE_APP","SOURCE_API"],"uniqueKey":"deploymentRule.oneOf.1.source","typeLabel":"enum\u003cstring>"},"configId":{"oneOf":[{"type":"string","title":"config_id","description":"Config ID this rule was authored from, when deployed via configuration as\n code. Unset for rules authored directly through this API.\n\n On a write this field is only ever set, never unset: omitting it keeps the\n stored value, so a full-replace update cannot detach the rule from the\n config that owns it. An empty string is a real config id — the one a deploy\n that declares no namespace uses — so sending it attaches the rule to that\n config rather than clearing the field. No value detaches a rule; recreating\n it is the only way to hand it back to the app.","uniqueKey":"deploymentRule.oneOf.1.configId.oneOf.0","typeLabel":"string"},{"type":"null","title":"config_id","description":"Config ID this rule was authored from, when deployed via configuration as\n code. Unset for rules authored directly through this API.\n\n On a write this field is only ever set, never unset: omitting it keeps the\n stored value, so a full-replace update cannot detach the rule from the\n config that owns it. An empty string is a real config id — the one a deploy\n that declares no namespace uses — so sending it attaches the rule to that\n config rather than clearing the field. No value detaches a rule; recreating\n it is the only way to hand it back to the app.","uniqueKey":"deploymentRule.oneOf.1.configId.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.1.configId","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.1","typeLabel":"SqlTestDeploymentRule · object"},{"type":"object","title":"SqlTestDeploymentRule","description":"SqlTestDeploymentRule dynamically deploys SQL test templates onto every table\n or view its selection matches, keeping them in sync as tables and columns\n change. Use it instead of authoring one SqlTest per table when the same set\n of checks should apply to many tables (e.g. \"not_null(email) on every table\n that has an email column\").","required":["queryConfig"],"properties":{"queryConfig":{"type":"object","properties":{"query":{"type":"object","properties":{"parts":{"type":"array","items":{"oneOf":[{"type":"object","title":"entity_ids","required":["entityIds"],"properties":{"entityIds":{"type":"object","properties":{"entityIds":{"type":"array","items":{"type":"string","maxLength":1024,"minLength":1,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.0.entityIds.entityIds.items.[INDEX]","typeLabel":"string"},"description":"The entities to select. An id may not be blank.\n\n An empty list selects no entities, exactly as an empty `identifier_list`\n does. Be deliberate about it, because it is not the same as leaving the part\n out: a part that selects nothing still counts, so it empties an AND, adds\n nothing to an OR, and removes nothing from an EXCEPT. If what you mean is\n \"do not restrict on specific entities\", omit the part instead of sending it\n empty.\n\n Ids may be up to 1024 characters — the same limit as `Identifier.entity_id`,\n where you read them from, so any id the API returned is accepted here.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.0.entityIds.entityIds","typeLabel":"string[]"}},"title":"entity_ids","additionalProperties":false,"description":"Deploy monitors on specific entities, named by the ids the API returned\n for them. Read back as `identifier_list`, with each id on the identifier\n it names.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.0.entityIds","typeLabel":"entity_ids · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.0","typeLabel":"entity_ids · object"},{"type":"object","title":"identifier_list","required":["identifierList"],"properties":{"identifierList":{"type":"object","properties":{"identifiers":{"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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.0.airflowDag.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.0.airflowDag.dagId","typeLabel":"string"}},"title":"airflow_dag","required":["integrationId","dagId"],"additionalProperties":false,"description":"Airflow DAG identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.0.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.1.airflowTask.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.1.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.2.athenaTable.catalog","typeLabel":"string"},"database":{"type":"string","description":"Glue database (the namespace users typically filter on).","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.2.athenaTable.database","typeLabel":"string"},"table":{"type":"string","description":"Glue table or view name.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.2.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.3.bigqueryTable.project","typeLabel":"string"},"dataset":{"type":"string","description":"BigQuery dataset id","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.3.bigqueryTable.dataset","typeLabel":"string"},"table":{"type":"string","description":"BigQuery table name","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.3.bigqueryTable.table","typeLabel":"string"}},"title":"bigquery_table","required":["project","dataset","table"],"additionalProperties":false,"description":"BigQuery table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.3.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.4.clickhouseTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Clickhouse database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.4.clickhouseTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Clickhouse table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.4.clickhouseTable.table","typeLabel":"string"}},"title":"clickhouse_table","required":["host","schema","table"],"additionalProperties":false,"description":"Clickhouse table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.4.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.5.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.6.databricksTable.workspace","typeLabel":"string"},"catalog":{"type":"string","description":"Databricks catalog","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.6.databricksTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Databricks schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.6.databricksTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Databricks table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.6.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.7.dataproduct.id","typeLabel":"string\u003cuuid>"}},"title":"dataproduct","required":["id"],"additionalProperties":false,"description":"Dataproduct identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.7.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.8.db2Table.host","typeLabel":"string"},"database":{"type":"string","description":"Database name or alias, as in `CONNECT TO \u003cdatabase>`","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.8.db2Table.database","typeLabel":"string"},"schema":{"type":"string","description":"Db2 schema (e.g. \"DB2INST1\")","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.8.db2Table.schema","typeLabel":"string"},"table":{"type":"string","description":"Db2 table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.8.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.9.dbtCloudNode.nodeId","typeLabel":"string"},"accountId":{"type":"string","description":"Your dbt Cloud account id","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.9.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.10.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.11.fabricTable.instance","typeLabel":"string"},"database":{"type":"string","description":"Fabric warehouse / lakehouse (database).","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.11.fabricTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Schema within the database.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.11.fabricTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Table or view name.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.11.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.monitoredId","typeLabel":"any"},"monitorId":{"type":"string","description":"Identifier of the monitor","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.monitorId","typeLabel":"string"},"segment":{"oneOf":[{"type":"string","description":"Optional monitor segmentation identifier","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.segment.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional monitor segmentation identifier","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.segment.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.integrationId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.integrationId.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.integrationId","typeLabel":"string | null"}},"title":"monitor","required":["monitoredId","monitorId"],"additionalProperties":false,"description":"Monitor identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.13.mssqlTable.host","typeLabel":"string"},"database":{"type":"string","description":"SQL Server database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.13.mssqlTable.database","typeLabel":"string"},"schema":{"type":"string","description":"SQL Server schema (e.g. \"dbo\")","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.13.mssqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"SQL Server table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.13.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.14.mysqlTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Mysql database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.14.mysqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Mysql table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.14.mysqlTable.table","typeLabel":"string"}},"title":"mysql_table","required":["host","schema","table"],"additionalProperties":false,"description":"Mysql table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.14.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.15.oracleTable.host","typeLabel":"string"},"serviceName":{"type":"string","description":"Oracle service name (PDB)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.15.oracleTable.serviceName","typeLabel":"string"},"schema":{"type":"string","description":"Oracle schema (= owning user)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.15.oracleTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Oracle table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.15.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.16.postgresTable.host","typeLabel":"string"},"database":{"type":"string","description":"Postgres database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.16.postgresTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Postgres schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.16.postgresTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Postgres table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.16.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.17.redshiftTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Redshift schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.17.redshiftTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Redshift table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.17.redshiftTable.cluster","typeLabel":"string"}},"title":"redshift_table","required":["database","schema","table"],"additionalProperties":false,"description":"Redshift table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.17.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.18.savedView.id","typeLabel":"string\u003cuuid>"}},"title":"saved_view","required":["id"],"additionalProperties":false,"description":"Saved view identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.18.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.19.snowflakeTable.account","typeLabel":"string"},"database":{"type":"string","description":"Snowflake database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.19.snowflakeTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Snowflake schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.19.snowflakeTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Snowflake table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.19.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.20.sqlMeshAudit.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.20.sqlMeshAudit.fqn","typeLabel":"string"},"auditId":{"type":"string","description":"Identifier of the audit","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.20.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.21.sqlMeshModel.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.21.sqlMeshModel.fqn","typeLabel":"string"}},"title":"sql_mesh_model","required":["integrationId","fqn"],"additionalProperties":false,"description":"SQLMesh Model identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.21.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.22.synqPath.path","typeLabel":"string"}},"title":"synq_path","required":["path"],"additionalProperties":false,"description":"SynqPath identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.22.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.23.trinoTable.host","typeLabel":"string"},"catalog":{"type":"string","description":"Trino catalog","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.23.trinoTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Trino schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.23.trinoTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Trino table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.23.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.23","typeLabel":"Identifier · object"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX]","typeLabel":"Identifier · object"},"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList.identifiers","typeLabel":"Identifier · object[]"}},"title":"identifier_list","additionalProperties":false,"description":"Resolves to entities matching any of the given identifiers.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1.identifierList","typeLabel":"identifier_list · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.1","typeLabel":"identifier_list · object"},{"type":"object","title":"in_folder","required":["inFolder"],"properties":{"inFolder":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.path.items.[INDEX]","typeLabel":"string"},"description":"Opaque folder identifiers (a folder's own entity id). `folders` is the\n structured, human-authorable alternative. When `path` is the only source\n set and `deep` is unset, `deep` defaults to true for back-compat with\n queries authored before `deep` existed.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.path","typeLabel":"string[]"},"folders":{"type":"array","items":{"type":"object","properties":{"rootEntityId":{"type":"string","description":"Opaque id of the entity the folder hierarchy hangs under — an integration\n root or container (for example a warehouse instance, a database, or a\n transformation project). Take it verbatim from `FolderRef.root_entity_id`\n of a folder you already read, or from an entity id returned elsewhere.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folders.items.[INDEX].rootEntityId","typeLabel":"string"},"folders":{"type":"array","items":{"type":"string","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folders.items.[INDEX].folders.items.[INDEX]","typeLabel":"string"},"description":"Ordered folder names from the root down to this folder (root first, leaf\n last), for example [\"staging\", \"sales\"]. Empty means the ref points at the\n root entity itself. Folder names are kept as separate segments (not joined\n with \"/\") because some platforms allow \"/\" inside a single folder name.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folders.items.[INDEX].folders","typeLabel":"string[]"}},"title":"FolderRef","additionalProperties":false,"description":"FolderRef is the human-friendly, structured address of a folder: the entity it\n hangs under (`root_entity_id`) plus the ordered folder names from that root\n down to the folder (`folders`).\n\n It is the stable way to name a folder across responses. Prefer it over the\n opaque folder entity id when you want to log, display, or reconstruct a\n location — the segments are the same names a user sees in the catalog, and\n they survive changes to the underlying id encoding.\n\n A `FolderRef` with an empty `folders` list names the root entity itself (a\n top-level integration or container the hierarchy hangs from).\n\n This type lives in `synq.entities.v1` (rather than a folder-specific package)\n so it can be shared by both the folders navigation API and the query API\n without an import cycle.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folders.items.[INDEX]","typeLabel":"FolderRef · object"},"description":"Structured, human-authorable folder addresses (root entity + folder-name\n segments). Take a `FolderRef` verbatim from a folder returned by the folders\n navigation API, or build one from names you can see in the catalog.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folders","typeLabel":"FolderRef · object[]"},"folderOf":{"type":"object","properties":{"entityIds":{"type":"array","items":{"type":"string","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.entityIds.items.[INDEX]","typeLabel":"string"},"description":"Simplified source: the assets named directly by opaque entity id. Use this\n for the common \"same folder as these specific assets\" case; equivalent to an\n input_query that lists the same ids.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.entityIds","typeLabel":"string[]"},"inputQuery":{"type":"object","properties":{"parts":{"type":"array","items":{"oneOf":[{"type":"object","title":"entity_ids","required":["entityIds"],"properties":{"entityIds":{"type":"object","properties":{"entityIds":{"type":"array","items":{"type":"string","maxLength":1024,"minLength":1,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.0.entityIds.entityIds.items.[INDEX]","typeLabel":"string"},"description":"The entities to select. An id may not be blank.\n\n An empty list selects no entities, exactly as an empty `identifier_list`\n does. Be deliberate about it, because it is not the same as leaving the part\n out: a part that selects nothing still counts, so it empties an AND, adds\n nothing to an OR, and removes nothing from an EXCEPT. If what you mean is\n \"do not restrict on specific entities\", omit the part instead of sending it\n empty.\n\n Ids may be up to 1024 characters — the same limit as `Identifier.entity_id`,\n where you read them from, so any id the API returned is accepted here.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.0.entityIds.entityIds","typeLabel":"string[]"}},"title":"entity_ids","additionalProperties":false,"description":"Pin specific entities by the ids the API returned for them. Read back as\n `identifier_list`, with each id on the identifier it names.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.0.entityIds","typeLabel":"entity_ids · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.0","typeLabel":"entity_ids · object"},{"type":"object","title":"identifier_list","required":["identifierList"],"properties":{"identifierList":{"type":"object","properties":{"identifiers":{"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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.0.airflowDag.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.0.airflowDag.dagId","typeLabel":"string"}},"title":"airflow_dag","required":["integrationId","dagId"],"additionalProperties":false,"description":"Airflow DAG identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.0.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.1.airflowTask.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.1.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.2.athenaTable.catalog","typeLabel":"string"},"database":{"type":"string","description":"Glue database (the namespace users typically filter on).","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.2.athenaTable.database","typeLabel":"string"},"table":{"type":"string","description":"Glue table or view name.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.2.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.3.bigqueryTable.project","typeLabel":"string"},"dataset":{"type":"string","description":"BigQuery dataset id","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.3.bigqueryTable.dataset","typeLabel":"string"},"table":{"type":"string","description":"BigQuery table name","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.3.bigqueryTable.table","typeLabel":"string"}},"title":"bigquery_table","required":["project","dataset","table"],"additionalProperties":false,"description":"BigQuery table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.3.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.4.clickhouseTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Clickhouse database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.4.clickhouseTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Clickhouse table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.4.clickhouseTable.table","typeLabel":"string"}},"title":"clickhouse_table","required":["host","schema","table"],"additionalProperties":false,"description":"Clickhouse table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.4.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.5.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.6.databricksTable.workspace","typeLabel":"string"},"catalog":{"type":"string","description":"Databricks catalog","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.6.databricksTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Databricks schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.6.databricksTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Databricks table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.6.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.7.dataproduct.id","typeLabel":"string\u003cuuid>"}},"title":"dataproduct","required":["id"],"additionalProperties":false,"description":"Dataproduct identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.7.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.8.db2Table.host","typeLabel":"string"},"database":{"type":"string","description":"Database name or alias, as in `CONNECT TO \u003cdatabase>`","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.8.db2Table.database","typeLabel":"string"},"schema":{"type":"string","description":"Db2 schema (e.g. \"DB2INST1\")","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.8.db2Table.schema","typeLabel":"string"},"table":{"type":"string","description":"Db2 table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.8.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.9.dbtCloudNode.nodeId","typeLabel":"string"},"accountId":{"type":"string","description":"Your dbt Cloud account id","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.9.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.10.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.11.fabricTable.instance","typeLabel":"string"},"database":{"type":"string","description":"Fabric warehouse / lakehouse (database).","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.11.fabricTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Schema within the database.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.11.fabricTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Table or view name.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.11.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.monitoredId","typeLabel":"any"},"monitorId":{"type":"string","description":"Identifier of the monitor","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.monitorId","typeLabel":"string"},"segment":{"oneOf":[{"type":"string","description":"Optional monitor segmentation identifier","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.segment.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional monitor segmentation identifier","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.segment.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.integrationId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.integrationId.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.monitor.integrationId","typeLabel":"string | null"}},"title":"monitor","required":["monitoredId","monitorId"],"additionalProperties":false,"description":"Monitor identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.12.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.13.mssqlTable.host","typeLabel":"string"},"database":{"type":"string","description":"SQL Server database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.13.mssqlTable.database","typeLabel":"string"},"schema":{"type":"string","description":"SQL Server schema (e.g. \"dbo\")","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.13.mssqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"SQL Server table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.13.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.14.mysqlTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Mysql database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.14.mysqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Mysql table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.14.mysqlTable.table","typeLabel":"string"}},"title":"mysql_table","required":["host","schema","table"],"additionalProperties":false,"description":"Mysql table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.14.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.15.oracleTable.host","typeLabel":"string"},"serviceName":{"type":"string","description":"Oracle service name (PDB)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.15.oracleTable.serviceName","typeLabel":"string"},"schema":{"type":"string","description":"Oracle schema (= owning user)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.15.oracleTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Oracle table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.15.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.16.postgresTable.host","typeLabel":"string"},"database":{"type":"string","description":"Postgres database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.16.postgresTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Postgres schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.16.postgresTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Postgres table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.16.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.17.redshiftTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Redshift schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.17.redshiftTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Redshift table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.17.redshiftTable.cluster","typeLabel":"string"}},"title":"redshift_table","required":["database","schema","table"],"additionalProperties":false,"description":"Redshift table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.17.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.18.savedView.id","typeLabel":"string\u003cuuid>"}},"title":"saved_view","required":["id"],"additionalProperties":false,"description":"Saved view identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.18.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.19.snowflakeTable.account","typeLabel":"string"},"database":{"type":"string","description":"Snowflake database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.19.snowflakeTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Snowflake schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.19.snowflakeTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Snowflake table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.19.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.20.sqlMeshAudit.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.20.sqlMeshAudit.fqn","typeLabel":"string"},"auditId":{"type":"string","description":"Identifier of the audit","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.20.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.21.sqlMeshModel.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.21.sqlMeshModel.fqn","typeLabel":"string"}},"title":"sql_mesh_model","required":["integrationId","fqn"],"additionalProperties":false,"description":"SQLMesh Model identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.21.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.22.synqPath.path","typeLabel":"string"}},"title":"synq_path","required":["path"],"additionalProperties":false,"description":"SynqPath identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.22.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.23.trinoTable.host","typeLabel":"string"},"catalog":{"type":"string","description":"Trino catalog","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.23.trinoTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Trino schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.23.trinoTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Trino table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.23.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX].oneOf.23","typeLabel":"Identifier · object"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers.items.[INDEX]","typeLabel":"Identifier · object"},"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList.identifiers","typeLabel":"Identifier · object[]"}},"title":"identifier_list","additionalProperties":false,"description":"Resolves to entities matching any of the given identifiers.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1.identifierList","typeLabel":"identifier_list · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.1","typeLabel":"identifier_list · object"},{"type":"object","title":"identities_of","required":["identitiesOf"],"properties":{"identitiesOf":{"type":"object","properties":{"inputQuery":{"$circularRef":"5b88d704-2a2e-4c1a-837b-99543d863e65","description":"The assets whose identities to resolve. Required.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.2.identitiesOf.inputQuery","typeLabel":"any"},"limitToTypes":{"type":"array","items":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.2.identitiesOf.limitToTypes.items.[INDEX].oneOf.0.custom","typeLabel":"integer\u003cint32>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.2.identitiesOf.limitToTypes.items.[INDEX].oneOf.0","typeLabel":"custom · object"},{"type":"object","title":"default","required":["default"],"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.2.identitiesOf.limitToTypes.items.[INDEX].oneOf.1.default","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.2.identitiesOf.limitToTypes.items.[INDEX].oneOf.1","typeLabel":"default · object"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.2.identitiesOf.limitToTypes.items.[INDEX]","typeLabel":"custom · object | default · object"},"description":"Restrict the result to these types. When empty, only the other members of\n each identity group are returned. When set, an input asset that already has\n one of these types is returned as well.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.2.identitiesOf.limitToTypes","typeLabel":"(custom · object | default · object)[]"}},"title":"identities_of","required":["inputQuery"],"additionalProperties":false,"description":"Resolves to the identities of whatever the inner query matches.\n\n The same real-world table is often described by several assets — a\n transformation model and the warehouse table it materialises into are one\n asset with several representations. Those representations form an identity\n group. IdentitiesOf takes the assets matched by `input_query` and returns\n their identity groups, so a selection made in one platform's terms also\n covers the equivalent assets in every other platform.\n\n The typical use is subtraction: \"this warehouse database, except whatever my\n transformation tool already owns\" is an EXCEPT whose removal clause is an\n IdentitiesOf over the transformation models. Without it the two selections\n overlap on every materialised table.\nidentities_of.input_query_selects_something // identities_of requires an input_query with at least one part\n","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.2.identitiesOf","typeLabel":"identities_of · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.2","typeLabel":"identities_of · object"},{"type":"object","title":"in_data_platform","required":["inDataPlatform"],"properties":{"inDataPlatform":{"type":"object","properties":{"identifier":{"oneOf":[{"type":"object","title":"athena","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["athena"],"properties":{"athena":{"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 by Coalesce Quality from sts:GetCallerIdentity at integration setup time.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.0.athena.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":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.0.athena.catalog","typeLabel":"string"}},"title":"athena","required":["instance","catalog"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.0.athena","typeLabel":"athena · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.0","typeLabel":"athena · object"},{"type":"object","title":"bigquery","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["bigquery"],"properties":{"bigquery":{"type":"object","properties":{"project":{"type":"string","description":"BigQuery project","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.1.bigquery.project","typeLabel":"string"}},"title":"bigquery","required":["project"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.1.bigquery","typeLabel":"bigquery · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.1","typeLabel":"bigquery · object"},{"type":"object","title":"clickhouse","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["clickhouse"],"properties":{"clickhouse":{"type":"object","properties":{"host":{"type":"string","description":"Clickhouse host inclusive of port","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.2.clickhouse.host","typeLabel":"string"},"schema":{"type":"string","description":"Clickhouse database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.2.clickhouse.schema","typeLabel":"string"}},"title":"clickhouse","required":["host","schema"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.2.clickhouse","typeLabel":"clickhouse · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.2","typeLabel":"clickhouse · object"},{"type":"object","title":"databricks","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["databricks"],"properties":{"databricks":{"type":"object","properties":{"workspace":{"type":"string","description":"URL of the databricks workspace","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.3.databricks.workspace","typeLabel":"string"}},"title":"databricks","required":["workspace"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.3.databricks","typeLabel":"databricks · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.3","typeLabel":"databricks · object"},{"type":"object","title":"db2","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["db2"],"properties":{"db2":{"type":"object","properties":{"host":{"type":"string","description":"Host name of the Db2 server","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.4.db2.host","typeLabel":"string"},"database":{"type":"string","description":"Database name or alias, as in `CONNECT TO \u003cdatabase>`","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.4.db2.database","typeLabel":"string"}},"title":"db2","required":["host","database"],"additionalProperties":false,"description":"IBM Db2 for Linux, UNIX and Windows. An integration connects to one\n database, so host and database together identify it.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.4.db2","typeLabel":"db2 · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.4","typeLabel":"db2 · object"},{"type":"object","title":"dbt_cloud","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["dbtCloud"],"properties":{"dbtCloud":{"type":"object","properties":{"apiEndpoint":{"type":"string","description":"API endpoint for Dbt Cloud","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.5.dbtCloud.apiEndpoint","typeLabel":"string"},"accountId":{"type":"string","description":"Account ID","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.5.dbtCloud.accountId","typeLabel":"string"},"projectId":{"type":"string","description":"Project ID","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.5.dbtCloud.projectId","typeLabel":"string"}},"title":"dbt_cloud","required":["apiEndpoint","accountId","projectId"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.5.dbtCloud","typeLabel":"dbt_cloud · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.5","typeLabel":"dbt_cloud · object"},{"type":"object","title":"duckdb","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["duckdb"],"properties":{"duckdb":{"type":"object","properties":{"motherduckAccount":{"type":"string","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.6.duckdb.motherduckAccount","typeLabel":"string"}},"title":"duckdb","additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.6.duckdb","typeLabel":"duckdb · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.6","typeLabel":"duckdb · object"},{"type":"object","title":"fabric","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["fabric"],"properties":{"fabric":{"type":"object","properties":{"instance":{"type":"string","description":"Workspace SQL analytics endpoint host, e.g.\n \"\u003cworkspace-id>.datawarehouse.fabric.microsoft.com\". Identifies the Fabric\n workspace the integration connects to. Fabric is workspace-scoped with\n cross-database queries, so the workspace host alone identifies the platform\n (like Databricks' workspace URL); a specific warehouse/table is addressed by\n FabricTableIdentifier.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.7.fabric.instance","typeLabel":"string"},"workspaceId":{"type":"string","description":"Fabric workspace GUID — the identifier used by the Fabric REST API for\n workspace-scoped resources. The Fabric endpoint host in `instance` encodes\n the tenant and workspace GUIDs; this is the decoded workspace GUID, provided\n so you don't have to decode it yourself. `instance` remains the identifying\n value. Optional: empty when the host isn't a standard Fabric endpoint.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.7.fabric.workspaceId","typeLabel":"string"},"tenantId":{"type":"string","description":"Entra (Azure AD) tenant GUID, decoded from the endpoint host in `instance`\n alongside workspace_id. Optional: empty when the host isn't a standard\n Fabric endpoint.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.7.fabric.tenantId","typeLabel":"string"}},"title":"fabric","required":["instance"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.7.fabric","typeLabel":"fabric · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.7","typeLabel":"fabric · object"},{"type":"object","title":"mssql","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["mssql"],"properties":{"mssql":{"type":"object","properties":{"host":{"type":"string","description":"SQL Server host","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.8.mssql.host","typeLabel":"string"},"database":{"type":"string","description":"Database name","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.8.mssql.database","typeLabel":"string"}},"title":"mssql","required":["host","database"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.8.mssql","typeLabel":"mssql · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.8","typeLabel":"mssql · object"},{"type":"object","title":"mysql","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["mysql"],"properties":{"mysql":{"type":"object","properties":{"host":{"type":"string","description":"Mysql host inclusive of port","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.9.mysql.host","typeLabel":"string"}},"title":"mysql","required":["host"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.9.mysql","typeLabel":"mysql · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.9","typeLabel":"mysql · object"},{"type":"object","title":"oracle","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["oracle"],"properties":{"oracle":{"type":"object","properties":{"host":{"type":"string","description":"Oracle host","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.10.oracle.host","typeLabel":"string"},"serviceName":{"type":"string","description":"Oracle service name (PDB)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.10.oracle.serviceName","typeLabel":"string"}},"title":"oracle","required":["host","serviceName"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.10.oracle","typeLabel":"oracle · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.10","typeLabel":"oracle · object"},{"type":"object","title":"postgres","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["postgres"],"properties":{"postgres":{"type":"object","properties":{"host":{"type":"string","description":"Postgres host inclusive of port","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.11.postgres.host","typeLabel":"string"},"database":{"type":"string","description":"Postgres database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.11.postgres.database","typeLabel":"string"}},"title":"postgres","required":["host","database"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.11.postgres","typeLabel":"postgres · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.11","typeLabel":"postgres · object"},{"type":"object","title":"redshift","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["redshift"],"properties":{"redshift":{"type":"object","properties":{"cluster":{"type":"string","description":"Redshift cluster","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.12.redshift.cluster","typeLabel":"string"},"database":{"type":"string","description":"Redshift database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.12.redshift.database","typeLabel":"string"}},"title":"redshift","required":["cluster","database"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.12.redshift","typeLabel":"redshift · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.12","typeLabel":"redshift · object"},{"type":"object","title":"snowflake","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["snowflake"],"properties":{"snowflake":{"type":"object","properties":{"account":{"type":"string","description":"Snowflake account","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.13.snowflake.account","typeLabel":"string"},"database":{"type":"string","description":"Snowflake database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.13.snowflake.database","typeLabel":"string"}},"title":"snowflake","required":["account","database"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.13.snowflake","typeLabel":"snowflake · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.13","typeLabel":"snowflake · object"},{"type":"object","title":"sql_mesh","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["sqlMesh"],"properties":{"sqlMesh":{"type":"object","properties":{"defaultDatabaseInstance":{"type":"string","description":"Default database instance for SQL Mesh","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.14.sqlMesh.defaultDatabaseInstance","typeLabel":"string"}},"title":"sql_mesh","required":["defaultDatabaseInstance"],"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.14.sqlMesh","typeLabel":"sql_mesh · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.14","typeLabel":"sql_mesh · object"},{"type":"object","title":"synq_integration_id","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["synqIntegrationId"],"properties":{"synqIntegrationId":{"type":"string","title":"synq_integration_id","description":"Coalesce Quality integration ID maps to the created integration on the Coalesce Quality platform.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.15.synqIntegrationId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.15","typeLabel":"synq_integration_id · object"},{"type":"object","title":"trino","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["trino"],"properties":{"trino":{"type":"object","properties":{"coordinator":{"type":"string","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.16.trino.coordinator","typeLabel":"string"}},"title":"trino","additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.16.trino","typeLabel":"trino · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.16","typeLabel":"trino · object"},{"type":"object","title":"unknown","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["unknown"],"properties":{"unknown":{"type":"object","title":"unknown","additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.17.unknown","typeLabel":"unknown · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier.oneOf.17","typeLabel":"unknown · object"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform.identifier","typeLabel":"athena · object | bigquery · object | clickhouse · object | databricks · object | db2 · object | dbt_cloud · object | duckdb · object | fabric · object | mssql · object | mysql · object | oracle · object | postgres · object | redshift · object | snowflake · object | sql_mesh · object | synq_integration_id · object | trino · object | unknown · object"}},"title":"in_data_platform","additionalProperties":false,"description":"Resolves to all entities that belong to the given data platform.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3.inDataPlatform","typeLabel":"in_data_platform · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.3","typeLabel":"in_data_platform · object"},{"type":"object","title":"in_dataproduct","required":["inDataproduct"],"properties":{"inDataproduct":{"type":"object","properties":{"identifier":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Dataproduct id that identifies the Dataproduct","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.4.inDataproduct.identifier.id","typeLabel":"string\u003cuuid>"}},"title":"DataproductIdentifier","required":["id"],"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.4.inDataproduct.identifier","typeLabel":"DataproductIdentifier · object"}},"title":"in_dataproduct","additionalProperties":false,"description":"Resolves to all the assets that belong to the given data product.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.4.inDataproduct","typeLabel":"in_dataproduct · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.4","typeLabel":"in_dataproduct · object"},{"type":"object","title":"in_domain","required":["inDomain"],"properties":{"inDomain":{"type":"object","properties":{"domainId":{"type":"string","format":"uuid","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.5.inDomain.domainId","typeLabel":"string\u003cuuid>"}},"title":"in_domain","additionalProperties":false,"description":"Resolves to all entities in the given data domain.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.5.inDomain","typeLabel":"in_domain · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.5","typeLabel":"in_domain · object"},{"type":"object","title":"in_folder","required":["inFolder"],"properties":{"inFolder":{"oneOf":[{"$circularRef":"c79c7116-4afc-4517-9fe8-67fe693cd4e1","title":"in_folder","isRequired":true}],"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.6.inFolder","typeLabel":"any"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.6","typeLabel":"in_folder · object"},{"type":"object","title":"query","required":["query"],"properties":{"query":{"$circularRef":"5b88d704-2a2e-4c1a-837b-99543d863e65","title":"query","description":"Nested sub-query, enabling recursive composition of filters and operands.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.7.query","typeLabel":"any"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.7","typeLabel":"query · object"},{"type":"object","title":"unsupported","required":["unsupported"],"properties":{"unsupported":{"type":"object","properties":{"queryJson":{"type":"string","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.8.unsupported.queryJson","typeLabel":"string"}},"title":"unsupported","additionalProperties":false,"description":"Read-only. Represents internal query types that cannot be expressed in the public API.\n Do not construct these directly — they are returned when translating from internal queries.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.8.unsupported","typeLabel":"unsupported · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.8","typeLabel":"unsupported · object"},{"type":"object","title":"with_annotation","required":["withAnnotation"],"properties":{"withAnnotation":{"type":"object","properties":{"name":{"type":"string","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.9.withAnnotation.name","typeLabel":"string"},"acceptedValue":{"oneOf":[{"type":"string","deprecated":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.9.withAnnotation.acceptedValue.oneOf.0","typeLabel":"string"},{"type":"null","deprecated":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.9.withAnnotation.acceptedValue.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.9.withAnnotation.acceptedValue","typeLabel":"string | null"},"acceptedValues":{"type":"array","items":{"type":"string","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.9.withAnnotation.acceptedValues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.9.withAnnotation.acceptedValues","typeLabel":"string[]"}},"title":"with_annotation","additionalProperties":false,"description":"Resolves to all entities that contain the annotation with at least one of the provided accepted values.\n In case of no given accepted values, all entities that carry the given annotation are returned.\n The name and the values match case-insensitively.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.9.withAnnotation","typeLabel":"with_annotation · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.9","typeLabel":"with_annotation · object"},{"type":"object","title":"with_data_platform_type","required":["withDataPlatformType"],"properties":{"withDataPlatformType":{"type":"object","properties":{"types":{"type":"array","items":{"type":"string","title":"DataPlatformType","enum":["DATA_PLATFORM_TYPE_UNSPECIFIED","DATA_PLATFORM_TYPE_BIGQUERY","DATA_PLATFORM_TYPE_LOOKER","DATA_PLATFORM_TYPE_DBT","DATA_PLATFORM_TYPE_DBT_CLOUD","DATA_PLATFORM_TYPE_DBT_SELF_HOSTED","DATA_PLATFORM_TYPE_SNOWFLAKE","DATA_PLATFORM_TYPE_GCP","DATA_PLATFORM_TYPE_GIT","DATA_PLATFORM_TYPE_GITHUB","DATA_PLATFORM_TYPE_REDSHIFT","DATA_PLATFORM_TYPE_TABLEAU","DATA_PLATFORM_TYPE_AIRFLOW","DATA_PLATFORM_TYPE_CLICKHOUSE","DATA_PLATFORM_TYPE_POSTGRES","DATA_PLATFORM_TYPE_MYSQL","DATA_PLATFORM_TYPE_DATABRICKS","DATA_PLATFORM_TYPE_SQLMESH","DATA_PLATFORM_TYPE_DUCKDB","DATA_PLATFORM_TYPE_TRINO","DATA_PLATFORM_TYPE_ATLAN","DATA_PLATFORM_TYPE_COALESCE","DATA_PLATFORM_TYPE_CASTORDOC","DATA_PLATFORM_TYPE_FIVETRAN","DATA_PLATFORM_TYPE_DAGSTER","DATA_PLATFORM_TYPE_AIRBYTE","DATA_PLATFORM_TYPE_STITCH","DATA_PLATFORM_TYPE_SNOWPLOW","DATA_PLATFORM_TYPE_POWERBI","DATA_PLATFORM_TYPE_THOUGHTSPOT","DATA_PLATFORM_TYPE_SIGMA","DATA_PLATFORM_TYPE_DOMO","DATA_PLATFORM_TYPE_MSSQL","DATA_PLATFORM_TYPE_ORACLE","DATA_PLATFORM_TYPE_ATHENA","DATA_PLATFORM_TYPE_FABRIC","DATA_PLATFORM_TYPE_DB2","DATA_PLATFORM_TYPE_LOOKER_STUDIO","DATA_PLATFORM_TYPE_HEX","DATA_PLATFORM_TYPE_OMNI","DATA_PLATFORM_TYPE_METABASE","DATA_PLATFORM_TYPE_GOOGLE_SHEETS","DATA_PLATFORM_TYPE_GRAFANA","DATA_PLATFORM_TYPE_STREAMLIT","DATA_PLATFORM_TYPE_ASTRATO","DATA_PLATFORM_TYPE_SNOWFLAKE_CORTEX","DATA_PLATFORM_TYPE_SNOWFLAKE_INTELLIGENCE","DATA_PLATFORM_TYPE_CUBE","DATA_PLATFORM_TYPE_CENSUS","DATA_PLATFORM_TYPE_HIGHTOUCH","DATA_PLATFORM_TYPE_WORKATO","DATA_PLATFORM_TYPE_ESTUARY","DATA_PLATFORM_TYPE_DLT","DATA_PLATFORM_TYPE_TERRAFORM","DATA_PLATFORM_TYPE_HEVO","DATA_PLATFORM_TYPE_DATASTREAM","DATA_PLATFORM_TYPE_QLIK","DATA_PLATFORM_TYPE_SALESFORCE","DATA_PLATFORM_TYPE_SYNQ"],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.10.withDataPlatformType.types.items.[INDEX]","typeLabel":"enum\u003cstring>"},"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.10.withDataPlatformType.types","typeLabel":"enum\u003cstring>[]"}},"title":"with_data_platform_type","additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.10.withDataPlatformType","typeLabel":"with_data_platform_type · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.10","typeLabel":"with_data_platform_type · object"},{"type":"object","title":"with_default_visible_types","required":["withDefaultVisibleTypes"],"properties":{"withDefaultVisibleTypes":{"type":"object","title":"with_default_visible_types","additionalProperties":false,"description":"Resolves to every asset of a type the catalog shows by default — the\n \"everything\" starting set.\n\n Use it as the base of a subtraction, e.g. an EXCEPT query whose first part is\n WithDefaultVisibleTypes and whose second part is what to leave out. On its own\n it selects the whole catalog, so it is rarely useful as the only part of a\n query.\n\n \"Default visible\" excludes the supporting asset types the catalog hides unless\n asked for (columns, tests, and similar), so this is not literally every entity.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.11.withDefaultVisibleTypes","typeLabel":"with_default_visible_types · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.11","typeLabel":"with_default_visible_types · object"},{"type":"object","title":"with_name_search","required":["withNameSearch"],"properties":{"withNameSearch":{"type":"object","properties":{"searchQuery":{"type":"string","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.12.withNameSearch.searchQuery","typeLabel":"string"}},"title":"with_name_search","additionalProperties":false,"description":"Resolves to all entities matching the given name search.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.12.withNameSearch","typeLabel":"with_name_search · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.12","typeLabel":"with_name_search · object"},{"type":"object","title":"with_type","required":["withType"],"properties":{"withType":{"type":"object","properties":{"type":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"deprecated":true,"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.type.oneOf.0.custom","typeLabel":"integer\u003cint32>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.type.oneOf.0","typeLabel":"custom · object"},{"type":"object","title":"default","required":["default"],"deprecated":true,"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.type.oneOf.1.default","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.type.oneOf.1","typeLabel":"default · object"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.type","typeLabel":"custom · object | default · object"},"types":{"type":"array","items":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.types.items.[INDEX].oneOf.0.custom","typeLabel":"integer\u003cint32>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.types.items.[INDEX].oneOf.0","typeLabel":"custom · object"},{"type":"object","title":"default","required":["default"],"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.types.items.[INDEX].oneOf.1.default","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.types.items.[INDEX].oneOf.1","typeLabel":"default · object"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.types.items.[INDEX]","typeLabel":"custom · object | default · object"},"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.types","typeLabel":"(custom · object | default · object)[]"},"traits":{"type":"array","items":{"type":"string","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.traits.items.[INDEX]","typeLabel":"string"},"description":"Traits to select by, instead of — or alongside — naming types.\n\n A trait is a property a type has, so `is_monitorable` means \"everything a\n monitor can run on\" without listing the forty-odd types that satisfy it\n today. The list it stands for is worked out each time the selection runs,\n so a selection saved this way covers a new platform's tables as soon as we\n support them, and you never have to revisit it.\n\n Entities carrying any of the traits match. When `types` is also set the two\n narrow each other: the entity must be one of the named types AND carry one\n of the traits.\n\n Accepted values, and what each one means, come from the selection-query\n grammar the API publishes (`describe_resolver_ql`, or the query editor's\n reference). A name that is not in it selects nothing rather than being\n ignored, so a typo narrows the result to empty instead of widening it —\n check a trait against the grammar before storing a selection. In a query\n written as text this is `with_type(traits=\"is_monitorable\")`, and there a\n name outside the grammar is rejected outright.\n\n A trait may also be a type alias, spelled `alias:\u003cname>` where `\u003cname>` is\n one of the aliases the grammar lists among the entity types, e.g.\n `alias:table`. It selects every type the alias stands for, worked out each\n time the selection runs like any other trait. A selection written as\n `with_type(\"table\")` is stored this way and reads back with\n `traits: [\"alias:table\"]`; writing that back keeps the same selection. In a\n query written as text an alias is always `with_type(\"table\")`, never\n `traits=\"alias:table\"`.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType.traits","typeLabel":"string[]"}},"title":"with_type","additionalProperties":false,"description":"Resolves to all the entities that have the provided type, or carry one of the\n provided traits.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13.withType","typeLabel":"with_type · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX].oneOf.13","typeLabel":"with_type · object"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts.items.[INDEX]","typeLabel":"entity_ids · object | identifier_list · object | identities_of · object | in_data_platform · object | in_dataproduct · object | in_domain · object | in_folder · object | query · object | unsupported · object | with_annotation · object | with_data_platform_type · object | with_default_visible_types · object | with_name_search · object | with_type · object"},"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.parts","typeLabel":"(entity_ids · object | identifier_list · object | identities_of · object | in_data_platform · object | in_dataproduct · object | in_domain · object | in_folder · object | query · object | unsupported · object | with_annotation · object | with_data_platform_type · object | with_default_visible_types · object | with_name_search · object | with_type · object)[]"},"operand":{"type":"string","title":"QueryOperand","enum":["QUERY_OPERAND_UNSPECIFIED","QUERY_OPERAND_AND","QUERY_OPERAND_OR","QUERY_OPERAND_EXCEPT","QUERY_OPERAND_UPSTREAM","QUERY_OPERAND_DOWNSTREAM"],"description":"Defaults to AND if not specified.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery.operand","typeLabel":"enum\u003cstring>"}},"title":"Query","additionalProperties":false,"description":"General source: resolve the folder(s) of whatever assets this query matches\n (e.g. a name or type filter). Use when the assets can't be listed up front.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.inputQuery","typeLabel":"Query · object"},"includeAllAncestors":{"type":"boolean","description":"When false (default): only each asset's immediate parent folder. When true:\n every ancestor folder up the hierarchy, so `InFolder` then also matches\n assets in those ancestor folders.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf.includeAllAncestors","typeLabel":"boolean"}},"title":"FolderOf","additionalProperties":false,"description":"Resolve the folders to search from a set of assets, rather than naming them.\n Selects everything in the folder(s) that contain those assets.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.folderOf","typeLabel":"FolderOf · object"},"deep":{"oneOf":[{"type":"boolean","description":"When false or unset, matches only the direct members of the folder(s). When\n true, matches the entire recursive subtree (members of subfolders too).\n\n Exception: when only the legacy `path` source is set and `deep` is unset,\n it defaults to true (preserves the behaviour of queries authored before this\n flag existed). With `folders` or `folder_of`, unset means false (shallow).","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.deep.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"When false or unset, matches only the direct members of the folder(s). When\n true, matches the entire recursive subtree (members of subfolders too).\n\n Exception: when only the legacy `path` source is set and `deep` is unset,\n it defaults to true (preserves the behaviour of queries authored before this\n flag existed). With `folders` or `folder_of`, unset means false (shallow).","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.deep.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder.deep","typeLabel":"boolean | null"}},"title":"in_folder","additionalProperties":false,"description":"synq.queries.v1.InDataPlatform in_data_platform = 5;","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2.inFolder","typeLabel":"in_folder · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.2","typeLabel":"in_folder · object"},{"type":"object","title":"query","required":["query"],"properties":{"query":{"oneOf":[{"$circularRef":"eb47fa5a-82ed-44fd-8b72-4d20a1d798fe","title":"query","isRequired":true}],"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.3.query","typeLabel":"any"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.3","typeLabel":"query · object"},{"type":"object","title":"unsupported","required":["unsupported"],"properties":{"unsupported":{"type":"object","properties":{"queryJson":{"type":"string","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.4.unsupported.queryJson","typeLabel":"string"}},"title":"unsupported","additionalProperties":false,"description":"Collects all the parts of the query that are currently unsupported in translation.\n These represent an internal structure that are not yet completely available on the API.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.4.unsupported","typeLabel":"unsupported · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.4","typeLabel":"unsupported · object"},{"type":"object","title":"with_annotation","required":["withAnnotation"],"properties":{"withAnnotation":{"type":"object","properties":{"name":{"type":"string","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.5.withAnnotation.name","typeLabel":"string"},"acceptedValue":{"oneOf":[{"type":"string","deprecated":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.5.withAnnotation.acceptedValue.oneOf.0","typeLabel":"string"},{"type":"null","deprecated":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.5.withAnnotation.acceptedValue.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.5.withAnnotation.acceptedValue","typeLabel":"string | null"},"acceptedValues":{"type":"array","items":{"type":"string","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.5.withAnnotation.acceptedValues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.5.withAnnotation.acceptedValues","typeLabel":"string[]"}},"title":"with_annotation","additionalProperties":false,"description":"Resolves to all entities that contain the annotation with at least one of the provided accepted values.\n In case of no given accepted values, all entities that carry the given annotation are returned.\n The name and the values match case-insensitively.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.5.withAnnotation","typeLabel":"with_annotation · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.5","typeLabel":"with_annotation · object"},{"type":"object","title":"with_name_search","required":["withNameSearch"],"properties":{"withNameSearch":{"type":"object","properties":{"searchQuery":{"type":"string","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.6.withNameSearch.searchQuery","typeLabel":"string"}},"title":"with_name_search","additionalProperties":false,"description":"Resolves to all entities matching the given name search.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.6.withNameSearch","typeLabel":"with_name_search · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.6","typeLabel":"with_name_search · object"},{"type":"object","title":"with_type","required":["withType"],"properties":{"withType":{"type":"object","properties":{"type":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"deprecated":true,"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.7.withType.type.oneOf.0.custom","typeLabel":"integer\u003cint32>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.7.withType.type.oneOf.0","typeLabel":"custom · object"},{"type":"object","title":"default","required":["default"],"deprecated":true,"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.7.withType.type.oneOf.1.default","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.7.withType.type.oneOf.1","typeLabel":"default · object"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.7.withType.type","typeLabel":"custom · object | default · object"},"types":{"type":"array","items":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.7.withType.types.items.[INDEX].oneOf.0.custom","typeLabel":"integer\u003cint32>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.7.withType.types.items.[INDEX].oneOf.0","typeLabel":"custom · object"},{"type":"object","title":"default","required":["default"],"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.7.withType.types.items.[INDEX].oneOf.1.default","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.7.withType.types.items.[INDEX].oneOf.1","typeLabel":"default · object"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.7.withType.types.items.[INDEX]","typeLabel":"custom · object | default · object"},"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.7.withType.types","typeLabel":"(custom · object | default · object)[]"},"traits":{"type":"array","items":{"type":"string","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.7.withType.traits.items.[INDEX]","typeLabel":"string"},"description":"Traits to select by, instead of — or alongside — naming types.\n\n A trait is a property a type has, so `is_monitorable` means \"everything a\n monitor can run on\" without listing the forty-odd types that satisfy it\n today. The list it stands for is worked out each time the selection runs,\n so a selection saved this way covers a new platform's tables as soon as we\n support them, and you never have to revisit it.\n\n Entities carrying any of the traits match. When `types` is also set the two\n narrow each other: the entity must be one of the named types AND carry one\n of the traits.\n\n Accepted values, and what each one means, come from the selection-query\n grammar the API publishes (`describe_resolver_ql`, or the query editor's\n reference). A name that is not in it selects nothing rather than being\n ignored, so a typo narrows the result to empty instead of widening it —\n check a trait against the grammar before storing a selection. In a query\n written as text this is `with_type(traits=\"is_monitorable\")`, and there a\n name outside the grammar is rejected outright.\n\n A trait may also be a type alias, spelled `alias:\u003cname>` where `\u003cname>` is\n one of the aliases the grammar lists among the entity types, e.g.\n `alias:table`. It selects every type the alias stands for, worked out each\n time the selection runs like any other trait. A selection written as\n `with_type(\"table\")` is stored this way and reads back with\n `traits: [\"alias:table\"]`; writing that back keeps the same selection. In a\n query written as text an alias is always `with_type(\"table\")`, never\n `traits=\"alias:table\"`.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.7.withType.traits","typeLabel":"string[]"}},"title":"with_type","additionalProperties":false,"description":"Resolves to all the entities that have the provided type, or carry one of the\n provided traits.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.7.withType","typeLabel":"with_type · object"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX].oneOf.7","typeLabel":"with_type · object"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts.items.[INDEX]","typeLabel":"entity_ids · object | identifier_list · object | in_folder · object | query · object | unsupported · object | with_annotation · object | with_name_search · object | with_type · object"},"uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.parts","typeLabel":"(entity_ids · object | identifier_list · object | in_folder · object | query · object | unsupported · object | with_annotation · object | with_name_search · object | with_type · object)[]"},"operand":{"type":"string","title":"QueryOperand","enum":["QUERY_OPERAND_UNSPECIFIED","QUERY_OPERAND_AND","QUERY_OPERAND_OR","QUERY_OPERAND_EXCEPT","QUERY_OPERAND_UPSTREAM","QUERY_OPERAND_DOWNSTREAM"],"description":"QueryOperand defines how multiple QueryParts within a Query are combined.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query.operand","typeLabel":"enum\u003cstring>"}},"title":"EntitySelectionQuery","additionalProperties":false,"description":"Structured selection of tables and views to deploy tests onto.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.query","typeLabel":"EntitySelectionQuery · object"},"resolverQl":{"type":"string","description":"ResolverQL selection string — an advanced, more expressive alternative to\n `query`. ResolverQL is a superset of the structured `query`: use it for\n selections `query` cannot express (e.g. lineage walks, column predicates).\n When set (non-empty) on write, `resolver_ql` is the source of truth and the\n structured `query` is ignored. The selection is compiled when it is written\n and stored in that form, so the text itself is not kept: two spellings of the\n same selection store the same rule, and a type alias such as \"table\" is\n expanded to the types it names at the time of the write. On read this field\n carries the canonical rendering of the stored selection, equal to\n `rendered_resolver_ql`, whichever way the rule was written, and is empty when\n the selection has no ResolverQL representation. Writing a read response back\n unchanged stores the same selection. `query` is always populated.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.resolverQl","typeLabel":"string"},"renderedResolverQl":{"type":"string","description":"Canonical ResolverQL rendering of this rule's selection, populated for every\n rule regardless of how it was authored. OUTPUT ONLY — it is ignored on\n write; set `resolver_ql` to author a selection in ResolverQL. Compare\n selections by this field rather than by the text a rule was written with,\n which may be spelled differently.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.renderedResolverQl","typeLabel":"string"},"tests":{"type":"array","items":{"oneOf":[{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["acceptedValuesTest"],"properties":{"acceptedValuesTest":{"type":"object","properties":{"columnName":{"type":"string","description":"Name of the column to validate","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.columnName","typeLabel":"string"},"acceptedValues":{"type":"array","items":{"oneOf":[{"type":"object","title":"SqlValue","description":"Represents a value that can be either a literal (to be quoted in SQL) or a SQL expression (to be used as plain text).","required":["stringLiteral"],"properties":{"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.acceptedValues.items.[INDEX].oneOf.0.stringLiteral","typeLabel":"string"},"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.acceptedValues.items.[INDEX].oneOf.0.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.acceptedValues.items.[INDEX].oneOf.0","typeLabel":"SqlValue · object"},{"type":"object","title":"SqlValue","description":"Represents a value that can be either a literal (to be quoted in SQL) or a SQL expression (to be used as plain text).","required":["expression"],"properties":{"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.acceptedValues.items.[INDEX].oneOf.1.expression","typeLabel":"string"},"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.acceptedValues.items.[INDEX].oneOf.1.stringLiteral","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.acceptedValues.items.[INDEX].oneOf.1","typeLabel":"SqlValue · object"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.acceptedValues.items.[INDEX]","typeLabel":"SqlValue · object"},"minItems":1,"description":"List of allowed values for the column","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.acceptedValues","typeLabel":"SqlValue · object[]"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.selectColumns","typeLabel":"string[]"}},"title":"accepted_values_test","required":["columnName"],"additionalProperties":false,"description":"Validates that column values are within an allowed set (e.g., status in ['active', 'inactive', 'pending'])","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest","typeLabel":"accepted_values_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.0.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.0.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.0.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.0","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["businessQueryTest"],"properties":{"businessQueryTest":{"type":"object","properties":{"sqlQuery":{"type":"string","description":"Full SELECT statement. Result rows are reported as failures.\n\n Format: a single SELECT (CTEs allowed); no semicolon. May read any tables\n the integration has access to. The engine wraps it as\n `WITH raw_query AS (\u003csql_query>) SELECT * FROM raw_query`.\n\n Use this when the failure set requires GROUP BY, JOINs, window functions,\n or other shape that a per-row predicate (BusinessRuleTest) cannot express.\n\n Example:\n SELECT customer_id, SUM(amount) AS total\n FROM orders WHERE status = 'paid'\n GROUP BY customer_id HAVING SUM(amount) \u003c 0\n\n Template.identifier still anchors the test to a primary table for\n ownership, alerts, and UI grouping.\n\n Placeholder: `{{ table }}` is substituted with the anchor table's fully\n qualified name, quoted for the warehouse — the matched table when the test\n is deployed by a deployment rule, which is how one query covers every table\n the rule matches instead of being copied onto each of them. It is the only\n supported placeholder; any other `{{ name }}` token is rejected.\n\n Note: this test does not expose a `select_columns` option. The author\n controls the SELECT shape directly in `sql_query`.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.1.businessQueryTest.sqlQuery","typeLabel":"string"}},"title":"business_query_test","required":["sqlQuery"],"additionalProperties":false,"description":"Full SELECT whose result rows are reported as failures; supports\n GROUP BY, JOINs, etc.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.1.businessQueryTest","typeLabel":"business_query_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.1.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.1.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.1.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.1","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["businessRuleTest"],"properties":{"businessRuleTest":{"type":"object","properties":{"sqlExpression":{"type":"string","description":"Boolean SQL predicate evaluated per row of the anchor table\n (Template.identifier); rows where the predicate is TRUE are reported as\n failures.\n\n Format: a single boolean expression — no SELECT, WITH, or semicolons.\n References columns on the anchor table. The engine executes it as\n `SELECT * FROM \u003canchor_table> WHERE \u003csql_expression>`.\n\n Example: \"total_amount != subtotal + tax\" reports rows where totals\n disagree. Use BusinessQueryTest for SELECT / GROUP BY / multi-table logic.\n\n Placeholder: `{{ table }}` is substituted with the anchor table's fully\n qualified name, quoted for the warehouse — the matched table when the test\n is deployed by a deployment rule. It is the only supported placeholder;\n any other `{{ name }}` token is rejected. It renders a table name, so it\n belongs where a table name goes — the FROM clause of a subquery of your own:\n \"total > (SELECT max(total) FROM {{ table }})\".\n\n It is not a column qualifier. The generated FROM clause carries no alias, and\n on BigQuery the fully qualified name is a single quoted identifier, so\n \"{{ table }}.id\" does not resolve. To name the anchor's columns, use\n BusinessQueryTest, where you write the FROM clause and can alias it.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.2.businessRuleTest.sqlExpression","typeLabel":"string"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.2.businessRuleTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.2.businessRuleTest.selectColumns","typeLabel":"string[]"}},"title":"business_rule_test","required":["sqlExpression"],"additionalProperties":false,"description":"Per-row boolean predicate; rows matching are reported as failures\n (e.g., total_amount != subtotal + tax)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.2.businessRuleTest","typeLabel":"business_rule_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.2.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.2.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.2.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.2","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["emptyTest"],"properties":{"emptyTest":{"type":"object","properties":{"columnNames":{"type":"array","items":{"type":"string","minItems":1,"uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.3.emptyTest.columnNames.items.[INDEX]","typeLabel":"string"},"minItems":1,"uniqueItems":true,"description":"List of column names to check for empty values","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.3.emptyTest.columnNames","typeLabel":"string[]"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.3.emptyTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.3.emptyTest.selectColumns","typeLabel":"string[]"}},"title":"empty_test","additionalProperties":false,"description":"Checks if specified columns contain empty values (e.g., description field can be empty)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.3.emptyTest","typeLabel":"empty_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.3.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.3.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.3.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.3","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["freshnessTest"],"properties":{"freshnessTest":{"type":"object","properties":{"timePartitionColumnName":{"type":"string","description":"Name of the timestamp column used for freshness check","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.4.freshnessTest.timePartitionColumnName","typeLabel":"string"},"timeWindowSeconds":{"oneOf":[{"type":"integer","format":"int64","description":"Time window for freshness check (in seconds)","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.4.freshnessTest.timeWindowSeconds.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","format":"int64","description":"Time window for freshness check (in seconds)","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.4.freshnessTest.timeWindowSeconds.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.4.freshnessTest.timeWindowSeconds","typeLabel":"integer\u003cint64> | string\u003cint64>"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.4.freshnessTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.4.freshnessTest.selectColumns","typeLabel":"string[]"}},"title":"freshness_test","required":["timePartitionColumnName"],"additionalProperties":false,"description":"Checks if data is up-to-date based on a time column (e.g., latest event_timestamp within 24h)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.4.freshnessTest","typeLabel":"freshness_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.4.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.4.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.4.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.4","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["maxValueTest"],"properties":{"maxValueTest":{"type":"object","properties":{"columnName":{"type":"string","description":"Name of the numeric column to validate","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.5.maxValueTest.columnName","typeLabel":"string"},"maxValue":{"oneOf":[{"type":"object","title":"SqlValue","description":"Maximum allowed value (inclusive)","required":["stringLiteral"],"properties":{"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.5.maxValueTest.maxValue.oneOf.0.stringLiteral","typeLabel":"string"},"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.5.maxValueTest.maxValue.oneOf.0.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.5.maxValueTest.maxValue.oneOf.0","typeLabel":"SqlValue · object"},{"type":"object","title":"SqlValue","description":"Maximum allowed value (inclusive)","required":["expression"],"properties":{"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.5.maxValueTest.maxValue.oneOf.1.expression","typeLabel":"string"},"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.5.maxValueTest.maxValue.oneOf.1.stringLiteral","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.5.maxValueTest.maxValue.oneOf.1","typeLabel":"SqlValue · object"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.5.maxValueTest.maxValue","typeLabel":"SqlValue · object"},"strictly":{"type":"boolean","description":"If true, the maximum value is exclusive","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.5.maxValueTest.strictly","typeLabel":"boolean"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.5.maxValueTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.5.maxValueTest.selectColumns","typeLabel":"string[]"}},"title":"max_value_test","required":["columnName"],"additionalProperties":false,"description":"Validates numeric values are less than or equal to a maximum value (e.g., price \u003c= 1000)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.5.maxValueTest","typeLabel":"max_value_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.5.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.5.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.5.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.5","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["minMaxTest"],"properties":{"minMaxTest":{"type":"object","properties":{"columnName":{"type":"string","description":"Name of the numeric column to validate","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.minMaxTest.columnName","typeLabel":"string"},"minValue":{"oneOf":[{"type":"object","title":"SqlValue","description":"Minimum allowed value (inclusive)","required":["stringLiteral"],"properties":{"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.minMaxTest.minValue.oneOf.0.stringLiteral","typeLabel":"string"},"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.minMaxTest.minValue.oneOf.0.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.minMaxTest.minValue.oneOf.0","typeLabel":"SqlValue · object"},{"type":"object","title":"SqlValue","description":"Minimum allowed value (inclusive)","required":["expression"],"properties":{"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.minMaxTest.minValue.oneOf.1.expression","typeLabel":"string"},"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.minMaxTest.minValue.oneOf.1.stringLiteral","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.minMaxTest.minValue.oneOf.1","typeLabel":"SqlValue · object"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.minMaxTest.minValue","typeLabel":"SqlValue · object"},"maxValue":{"oneOf":[{"type":"object","title":"SqlValue","description":"Maximum allowed value (inclusive)","required":["stringLiteral"],"properties":{"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.minMaxTest.maxValue.oneOf.0.stringLiteral","typeLabel":"string"},"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.minMaxTest.maxValue.oneOf.0.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.minMaxTest.maxValue.oneOf.0","typeLabel":"SqlValue · object"},{"type":"object","title":"SqlValue","description":"Maximum allowed value (inclusive)","required":["expression"],"properties":{"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.minMaxTest.maxValue.oneOf.1.expression","typeLabel":"string"},"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.minMaxTest.maxValue.oneOf.1.stringLiteral","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.minMaxTest.maxValue.oneOf.1","typeLabel":"SqlValue · object"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.minMaxTest.maxValue","typeLabel":"SqlValue · object"},"strictly":{"type":"boolean","description":"If true, bounds are exclusive","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.minMaxTest.strictly","typeLabel":"boolean"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.minMaxTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.minMaxTest.selectColumns","typeLabel":"string[]"}},"title":"min_max_test","required":["columnName"],"additionalProperties":false,"description":"Validates numeric values are within specified range (e.g., price between 0 and 1000)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.minMaxTest","typeLabel":"min_max_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.6","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["minValueTest"],"properties":{"minValueTest":{"type":"object","properties":{"columnName":{"type":"string","description":"Name of the numeric column to validate","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.7.minValueTest.columnName","typeLabel":"string"},"minValue":{"oneOf":[{"type":"object","title":"SqlValue","description":"Minimum allowed value (inclusive)","required":["stringLiteral"],"properties":{"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.7.minValueTest.minValue.oneOf.0.stringLiteral","typeLabel":"string"},"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.7.minValueTest.minValue.oneOf.0.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.7.minValueTest.minValue.oneOf.0","typeLabel":"SqlValue · object"},{"type":"object","title":"SqlValue","description":"Minimum allowed value (inclusive)","required":["expression"],"properties":{"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.7.minValueTest.minValue.oneOf.1.expression","typeLabel":"string"},"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.7.minValueTest.minValue.oneOf.1.stringLiteral","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.7.minValueTest.minValue.oneOf.1","typeLabel":"SqlValue · object"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.7.minValueTest.minValue","typeLabel":"SqlValue · object"},"strictly":{"type":"boolean","description":"If true, the minimum value is exclusive","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.7.minValueTest.strictly","typeLabel":"boolean"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.7.minValueTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.7.minValueTest.selectColumns","typeLabel":"string[]"}},"title":"min_value_test","required":["columnName"],"additionalProperties":false,"description":"Validates numeric values are greater than or equal to a minimum value (e.g., price >= 0)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.7.minValueTest","typeLabel":"min_value_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.7.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.7.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.7.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.7","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["notNullTest"],"properties":{"notNullTest":{"type":"object","properties":{"columnNames":{"type":"array","items":{"type":"string","minItems":1,"uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.8.notNullTest.columnNames.items.[INDEX]","typeLabel":"string"},"minItems":1,"uniqueItems":true,"description":"List of column names to check for NULL values","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.8.notNullTest.columnNames","typeLabel":"string[]"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.8.notNullTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.8.notNullTest.selectColumns","typeLabel":"string[]"}},"title":"not_null_test","additionalProperties":false,"description":"Checks if specified columns contain no NULL values (e.g., user_id should never be null)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.8.notNullTest","typeLabel":"not_null_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.8.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.8.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.8.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.8","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["rejectedValuesTest"],"properties":{"rejectedValuesTest":{"type":"object","properties":{"columnName":{"type":"string","description":"Name of the column to validate","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.columnName","typeLabel":"string"},"rejectedValues":{"type":"array","items":{"oneOf":[{"type":"object","title":"SqlValue","description":"Represents a value that can be either a literal (to be quoted in SQL) or a SQL expression (to be used as plain text).","required":["stringLiteral"],"properties":{"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.rejectedValues.items.[INDEX].oneOf.0.stringLiteral","typeLabel":"string"},"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.rejectedValues.items.[INDEX].oneOf.0.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.rejectedValues.items.[INDEX].oneOf.0","typeLabel":"SqlValue · object"},{"type":"object","title":"SqlValue","description":"Represents a value that can be either a literal (to be quoted in SQL) or a SQL expression (to be used as plain text).","required":["expression"],"properties":{"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.rejectedValues.items.[INDEX].oneOf.1.expression","typeLabel":"string"},"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.rejectedValues.items.[INDEX].oneOf.1.stringLiteral","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.rejectedValues.items.[INDEX].oneOf.1","typeLabel":"SqlValue · object"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.rejectedValues.items.[INDEX]","typeLabel":"SqlValue · object"},"minItems":1,"description":"List of disallowed values for the column","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.rejectedValues","typeLabel":"SqlValue · object[]"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.selectColumns","typeLabel":"string[]"}},"title":"rejected_values_test","required":["columnName"],"additionalProperties":false,"description":"Validates that column values are not in a forbidden set (e.g., country not in ['UNKNOWN', 'TEST'])","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest","typeLabel":"rejected_values_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.9.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.9.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.9.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.9","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["relationshipsTest"],"properties":{"relationshipsTest":{"type":"object","properties":{"references":{"type":"array","items":{"type":"object","properties":{"entity":{"oneOf":[{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["airflowDag"],"properties":{"airflowDag":{"type":"object","properties":{"integrationId":{"type":"string","description":"Coalesce Quality integration_id that identifies the Airflow instance","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.0.airflowDag.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.0.airflowDag.dagId","typeLabel":"string"}},"title":"airflow_dag","required":["integrationId","dagId"],"additionalProperties":false,"description":"Airflow DAG identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.0.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.0","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["airflowTask"],"properties":{"airflowTask":{"type":"object","properties":{"integrationId":{"type":"string","description":"Coalesce Quality integration_id that identifies the Airflow instance","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.1.airflowTask.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.1.airflowTask.dagId","typeLabel":"string"},"taskId":{"type":"string","description":"Airflow task_id that identifies the task within the DAG","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.1.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.1","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.2.athenaTable.catalog","typeLabel":"string"},"database":{"type":"string","description":"Glue database (the namespace users typically filter on).","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.2.athenaTable.database","typeLabel":"string"},"table":{"type":"string","description":"Glue table or view name.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.2.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.2","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["bigqueryTable"],"properties":{"bigqueryTable":{"type":"object","properties":{"project":{"type":"string","description":"BigQuery project","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.3.bigqueryTable.project","typeLabel":"string"},"dataset":{"type":"string","description":"BigQuery dataset id","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.3.bigqueryTable.dataset","typeLabel":"string"},"table":{"type":"string","description":"BigQuery table name","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.3.bigqueryTable.table","typeLabel":"string"}},"title":"bigquery_table","required":["project","dataset","table"],"additionalProperties":false,"description":"BigQuery table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.3.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.3","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["clickhouseTable"],"properties":{"clickhouseTable":{"type":"object","properties":{"host":{"type":"string","description":"Clickhouse hostname without port","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.4.clickhouseTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Clickhouse database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.4.clickhouseTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Clickhouse table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.4.clickhouseTable.table","typeLabel":"string"}},"title":"clickhouse_table","required":["host","schema","table"],"additionalProperties":false,"description":"Clickhouse table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.4.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.4","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.5.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.5","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["databricksTable"],"properties":{"databricksTable":{"type":"object","properties":{"workspace":{"type":"string","description":"URL of Databricks workspace","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.6.databricksTable.workspace","typeLabel":"string"},"catalog":{"type":"string","description":"Databricks catalog","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.6.databricksTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Databricks schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.6.databricksTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Databricks table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.6.databricksTable.table","typeLabel":"string"}},"title":"databricks_table","required":["workspace","catalog","schema","table"],"additionalProperties":false,"description":"Databricks table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.6.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.6","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["dataproduct"],"properties":{"dataproduct":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Dataproduct id that identifies the Dataproduct","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.7.dataproduct.id","typeLabel":"string\u003cuuid>"}},"title":"dataproduct","required":["id"],"additionalProperties":false,"description":"Dataproduct identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.7.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.7","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["db2Table"],"properties":{"db2Table":{"type":"object","properties":{"host":{"type":"string","description":"Host name of the Db2 server","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.8.db2Table.host","typeLabel":"string"},"database":{"type":"string","description":"Database name or alias, as in `CONNECT TO \u003cdatabase>`","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.8.db2Table.database","typeLabel":"string"},"schema":{"type":"string","description":"Db2 schema (e.g. \"DB2INST1\")","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.8.db2Table.schema","typeLabel":"string"},"table":{"type":"string","description":"Db2 table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.8.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.8","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["dbtCloudNode"],"properties":{"dbtCloudNode":{"type":"object","properties":{"projectId":{"type":"string","description":"Your dbt Cloud project id","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.9.dbtCloudNode.nodeId","typeLabel":"string"},"accountId":{"type":"string","description":"Your dbt Cloud account id","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.9.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.9","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.10.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.10","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.11.fabricTable.instance","typeLabel":"string"},"database":{"type":"string","description":"Fabric warehouse / lakehouse (database).","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.11.fabricTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Schema within the database.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.11.fabricTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Table or view name.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.11.fabricTable.tenantId","typeLabel":"string"}},"title":"fabric_table","required":["instance","database","schema","table"],"additionalProperties":false,"description":"Microsoft Fabric table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.11.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.11","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["monitor"],"properties":{"monitor":{"type":"object","properties":{"monitoredId":{"$circularRef":"9aa48dcc-3dc1-40e9-bf59-0a21c9499772","description":"Identifier of the monitored entity","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.12.monitor.monitoredId","typeLabel":"any"},"monitorId":{"type":"string","description":"Identifier of the monitor","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.12.monitor.monitorId","typeLabel":"string"},"segment":{"oneOf":[{"type":"string","description":"Optional monitor segmentation identifier","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.12.monitor.segment.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional monitor segmentation identifier","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.12.monitor.segment.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.12.monitor.segment","typeLabel":"string | null"},"integrationId":{"oneOf":[{"type":"string","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.12.monitor.integrationId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.12.monitor.integrationId.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.12.monitor.integrationId","typeLabel":"string | null"}},"title":"monitor","required":["monitoredId","monitorId"],"additionalProperties":false,"description":"Monitor identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.12.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.12","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["mssqlTable"],"properties":{"mssqlTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the SQL Server instance","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.13.mssqlTable.host","typeLabel":"string"},"database":{"type":"string","description":"SQL Server database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.13.mssqlTable.database","typeLabel":"string"},"schema":{"type":"string","description":"SQL Server schema (e.g. \"dbo\")","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.13.mssqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"SQL Server table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.13.mssqlTable.table","typeLabel":"string"}},"title":"mssql_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"SQL Server table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.13.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.13","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["mysqlTable"],"properties":{"mysqlTable":{"type":"object","properties":{"host":{"type":"string","description":"Mysql hostname without port","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.14.mysqlTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Mysql database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.14.mysqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Mysql table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.14.mysqlTable.table","typeLabel":"string"}},"title":"mysql_table","required":["host","schema","table"],"additionalProperties":false,"description":"Mysql table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.14.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.14","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["oracleTable"],"properties":{"oracleTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the Oracle instance","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.15.oracleTable.host","typeLabel":"string"},"serviceName":{"type":"string","description":"Oracle service name (PDB)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.15.oracleTable.serviceName","typeLabel":"string"},"schema":{"type":"string","description":"Oracle schema (= owning user)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.15.oracleTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Oracle table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.15.oracleTable.table","typeLabel":"string"}},"title":"oracle_table","required":["host","serviceName","schema","table"],"additionalProperties":false,"description":"Oracle table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.15.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.15","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["postgresTable"],"properties":{"postgresTable":{"type":"object","properties":{"host":{"type":"string","description":"Postgres hostname without port","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.16.postgresTable.host","typeLabel":"string"},"database":{"type":"string","description":"Postgres database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.16.postgresTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Postgres schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.16.postgresTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Postgres table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.16.postgresTable.table","typeLabel":"string"}},"title":"postgres_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"Postgres table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.16.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.16","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["redshiftTable"],"properties":{"redshiftTable":{"type":"object","properties":{"database":{"type":"string","description":"Redshift database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.17.redshiftTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Redshift schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.17.redshiftTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Redshift table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.17.redshiftTable.cluster","typeLabel":"string"}},"title":"redshift_table","required":["database","schema","table"],"additionalProperties":false,"description":"Redshift table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.17.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.17","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.18.savedView.id","typeLabel":"string\u003cuuid>"}},"title":"saved_view","required":["id"],"additionalProperties":false,"description":"Saved view identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.18.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.18","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["snowflakeTable"],"properties":{"snowflakeTable":{"type":"object","properties":{"account":{"type":"string","description":"Snowflake account","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.19.snowflakeTable.account","typeLabel":"string"},"database":{"type":"string","description":"Snowflake database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.19.snowflakeTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Snowflake schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.19.snowflakeTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Snowflake table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.19.snowflakeTable.table","typeLabel":"string"}},"title":"snowflake_table","required":["account","database","schema","table"],"additionalProperties":false,"description":"Snowflake table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.19.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.19","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.20.sqlMeshAudit.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.20.sqlMeshAudit.fqn","typeLabel":"string"},"auditId":{"type":"string","description":"Identifier of the audit","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.20.sqlMeshAudit.auditId","typeLabel":"string"}},"title":"sql_mesh_audit","required":["integrationId","fqn","auditId"],"additionalProperties":false,"description":"SQLMesh Audit identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.20.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.20","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.21.sqlMeshModel.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.21.sqlMeshModel.fqn","typeLabel":"string"}},"title":"sql_mesh_model","required":["integrationId","fqn"],"additionalProperties":false,"description":"SQLMesh Model identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.21.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.21","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.22.synqPath.path","typeLabel":"string"}},"title":"synq_path","required":["path"],"additionalProperties":false,"description":"SynqPath identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.22.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.22","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["trinoTable"],"properties":{"trinoTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the Trino instance","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.23.trinoTable.host","typeLabel":"string"},"catalog":{"type":"string","description":"Trino catalog","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.23.trinoTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Trino schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.23.trinoTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Trino table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.23.trinoTable.table","typeLabel":"string"}},"title":"trino_table","required":["host","catalog","schema","table"],"additionalProperties":false,"description":"Trino table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.23.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.23","typeLabel":"Identifier · object"}],"isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity","typeLabel":"Identifier · object"},"columns":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string","description":"Column name in the source table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].columns.items.[INDEX].source","typeLabel":"string"},"reference":{"type":"string","description":"Column name in the reference table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].columns.items.[INDEX].reference","typeLabel":"string"}},"title":"RelationshipColumn","required":["source","reference"],"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].columns.items.[INDEX]","typeLabel":"RelationshipColumn · object"},"minItems":1,"description":"Column mappings between source and reference tables","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].columns","typeLabel":"RelationshipColumn · object[]"}},"title":"RelationshipReference","required":["entity"],"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX]","typeLabel":"RelationshipReference · object"},"minItems":1,"description":"List of reference table relationships to check","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references","typeLabel":"RelationshipReference · object[]"},"ignoreNulls":{"type":"boolean","description":"If true, source rows where all join columns are NULL are excluded from results","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.ignoreNulls","typeLabel":"boolean"},"timePartitionColumn":{"type":"string","description":"Column name used to filter source rows by time (e.g., \"created_at\")","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.timePartitionColumn","typeLabel":"string"},"timeWindowSeconds":{"oneOf":[{"type":"integer","format":"int64","description":"Time window in seconds - only check source rows within this window","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.timeWindowSeconds.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","format":"int64","description":"Time window in seconds - only check source rows within this window","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.timeWindowSeconds.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.timeWindowSeconds","typeLabel":"integer\u003cint64> | string\u003cint64>"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.selectColumns","typeLabel":"string[]"}},"title":"relationships_test","additionalProperties":false,"description":"Validates referential integrity between source and reference tables","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.relationshipsTest","typeLabel":"relationships_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.10","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["relativeTimeTest"],"properties":{"relativeTimeTest":{"type":"object","properties":{"columnName":{"type":"string","description":"Name of the first time column to compare","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.11.relativeTimeTest.columnName","typeLabel":"string"},"relativeColumnName":{"type":"string","description":"Name of the second time column that should be later than the first","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.11.relativeTimeTest.relativeColumnName","typeLabel":"string"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.11.relativeTimeTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.11.relativeTimeTest.selectColumns","typeLabel":"string[]"}},"title":"relative_time_test","required":["columnName","relativeColumnName"],"additionalProperties":false,"description":"Compares time-based columns for logical order (e.g., start_date before end_date)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.11.relativeTimeTest","typeLabel":"relative_time_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.11.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.11.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.11.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.11","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["uniqueTest"],"properties":{"uniqueTest":{"type":"object","properties":{"columnNames":{"type":"array","items":{"type":"string","minItems":1,"uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.12.uniqueTest.columnNames.items.[INDEX]","typeLabel":"string"},"minItems":1,"uniqueItems":true,"description":"List of columns that should form a unique combination","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.12.uniqueTest.columnNames","typeLabel":"string[]"},"timePartitionColumnName":{"type":"string","description":"If provided, the check will be applied to the time window of the time partition column\n If not provided, the check will be applied to all rows","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.12.uniqueTest.timePartitionColumnName","typeLabel":"string"},"timeWindowSeconds":{"oneOf":[{"type":"integer","format":"int64","description":"Time window for uniqueness check (in seconds)","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.12.uniqueTest.timeWindowSeconds.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","format":"int64","description":"Time window for uniqueness check (in seconds)","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.12.uniqueTest.timeWindowSeconds.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.12.uniqueTest.timeWindowSeconds","typeLabel":"integer\u003cint64> | string\u003cint64>"}},"title":"unique_test","additionalProperties":false,"description":"Ensures specified columns form a unique key combination (e.g., order_id is unique)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.12.uniqueTest","typeLabel":"unique_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.12.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.12.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.12.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX].oneOf.12","typeLabel":"RuleTest · object"}],"uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests.items.[INDEX]","typeLabel":"RuleTest · object"},"minItems":1,"description":"Tests deployed onto every table or view this rule's selection matches.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.tests","typeLabel":"RuleTest · object[]"},"recurrenceRule":{"type":"string","description":"[Recurrence rule](https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html)\n for the execution schedule applied to every test this rule deploys. Empty\n means on-demand — deployed tests are never scheduled to run automatically.\n When set, it must carry an inline `DTSTART:` naming the first occurrence, e.g.\n \"DTSTART:20260101T000000Z\\nRRULE:FREQ=DAILY\".","uniqueKey":"deploymentRule.oneOf.2.queryConfig.recurrenceRule","typeLabel":"string"},"timezone":{"type":"string","description":"IANA timezone name (e.g., \"Europe/Prague\", \"America/New_York\") used to\n interpret recurrence_rule. Empty defaults to UTC.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.timezone","typeLabel":"string"},"severity":{"type":"string","title":"Severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"not":{"enum":[0]},"description":"Severity applied to every test this rule deploys, unless a RuleTest\n overrides it. Required — must be set to a value other than unspecified.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.severity","typeLabel":"enum\u003cstring>"},"saveFailures":{"type":"boolean","description":"Applied to every test this rule deploys. Toggles saving of failure runs.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.saveFailures","typeLabel":"boolean"},"keepRemovedTests":{"type":"boolean","description":"When a previously matched table or view stops matching this rule's\n selection, its deployed tests are deleted by default. Set true to keep\n them as-is instead — they remain rule-managed but are no longer resynced.","uniqueKey":"deploymentRule.oneOf.2.queryConfig.keepRemovedTests","typeLabel":"boolean"}},"title":"query_config","additionalProperties":false,"description":"Deploys tests onto every match of a query; the match set is resynced\n over time.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.2.queryConfig","typeLabel":"query_config · object"},"id":{"type":"string","title":"id","format":"uuid","description":"Unique identifier for this rule.","uniqueKey":"deploymentRule.oneOf.2.id","typeLabel":"string\u003cuuid>"},"title":{"type":"string","title":"title","maxLength":100,"minLength":1,"description":"Human friendly name for this rule.","uniqueKey":"deploymentRule.oneOf.2.title","typeLabel":"string"},"source":{"type":"string","title":"source","enum":["SOURCE_APP","SOURCE_API"],"uniqueKey":"deploymentRule.oneOf.2.source","typeLabel":"enum\u003cstring>"},"configId":{"oneOf":[{"type":"string","title":"config_id","description":"Config ID this rule was authored from, when deployed via configuration as\n code. Unset for rules authored directly through this API.\n\n On a write this field is only ever set, never unset: omitting it keeps the\n stored value, so a full-replace update cannot detach the rule from the\n config that owns it. An empty string is a real config id — the one a deploy\n that declares no namespace uses — so sending it attaches the rule to that\n config rather than clearing the field. No value detaches a rule; recreating\n it is the only way to hand it back to the app.","uniqueKey":"deploymentRule.oneOf.2.configId.oneOf.0","typeLabel":"string"},{"type":"null","title":"config_id","description":"Config ID this rule was authored from, when deployed via configuration as\n code. Unset for rules authored directly through this API.\n\n On a write this field is only ever set, never unset: omitting it keeps the\n stored value, so a full-replace update cannot detach the rule from the\n config that owns it. An empty string is a real config id — the one a deploy\n that declares no namespace uses — so sending it attaches the rule to that\n config rather than clearing the field. No value detaches a rule; recreating\n it is the only way to hand it back to the app.","uniqueKey":"deploymentRule.oneOf.2.configId.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.2.configId","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.2","typeLabel":"SqlTestDeploymentRule · object"},{"type":"object","title":"SqlTestDeploymentRule","description":"SqlTestDeploymentRule dynamically deploys SQL test templates onto every table\n or view its selection matches, keeping them in sync as tables and columns\n change. Use it instead of authoring one SqlTest per table when the same set\n of checks should apply to many tables (e.g. \"not_null(email) on every table\n that has an email column\").","required":["staticConfig"],"properties":{"staticConfig":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Coalesce Quality path of the table or view this rule deploys tests onto.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.path","typeLabel":"string"},"tests":{"type":"array","items":{"oneOf":[{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["acceptedValuesTest"],"properties":{"acceptedValuesTest":{"type":"object","properties":{"columnName":{"type":"string","description":"Name of the column to validate","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.columnName","typeLabel":"string"},"acceptedValues":{"type":"array","items":{"oneOf":[{"type":"object","title":"SqlValue","description":"Represents a value that can be either a literal (to be quoted in SQL) or a SQL expression (to be used as plain text).","required":["stringLiteral"],"properties":{"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.acceptedValues.items.[INDEX].oneOf.0.stringLiteral","typeLabel":"string"},"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.acceptedValues.items.[INDEX].oneOf.0.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.acceptedValues.items.[INDEX].oneOf.0","typeLabel":"SqlValue · object"},{"type":"object","title":"SqlValue","description":"Represents a value that can be either a literal (to be quoted in SQL) or a SQL expression (to be used as plain text).","required":["expression"],"properties":{"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.acceptedValues.items.[INDEX].oneOf.1.expression","typeLabel":"string"},"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.acceptedValues.items.[INDEX].oneOf.1.stringLiteral","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.acceptedValues.items.[INDEX].oneOf.1","typeLabel":"SqlValue · object"}],"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.acceptedValues.items.[INDEX]","typeLabel":"SqlValue · object"},"minItems":1,"description":"List of allowed values for the column","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.acceptedValues","typeLabel":"SqlValue · object[]"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest.selectColumns","typeLabel":"string[]"}},"title":"accepted_values_test","required":["columnName"],"additionalProperties":false,"description":"Validates that column values are within an allowed set (e.g., status in ['active', 'inactive', 'pending'])","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.0.acceptedValuesTest","typeLabel":"accepted_values_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.0.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.0.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.0.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.0","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["businessQueryTest"],"properties":{"businessQueryTest":{"type":"object","properties":{"sqlQuery":{"type":"string","description":"Full SELECT statement. Result rows are reported as failures.\n\n Format: a single SELECT (CTEs allowed); no semicolon. May read any tables\n the integration has access to. The engine wraps it as\n `WITH raw_query AS (\u003csql_query>) SELECT * FROM raw_query`.\n\n Use this when the failure set requires GROUP BY, JOINs, window functions,\n or other shape that a per-row predicate (BusinessRuleTest) cannot express.\n\n Example:\n SELECT customer_id, SUM(amount) AS total\n FROM orders WHERE status = 'paid'\n GROUP BY customer_id HAVING SUM(amount) \u003c 0\n\n Template.identifier still anchors the test to a primary table for\n ownership, alerts, and UI grouping.\n\n Placeholder: `{{ table }}` is substituted with the anchor table's fully\n qualified name, quoted for the warehouse — the matched table when the test\n is deployed by a deployment rule, which is how one query covers every table\n the rule matches instead of being copied onto each of them. It is the only\n supported placeholder; any other `{{ name }}` token is rejected.\n\n Note: this test does not expose a `select_columns` option. The author\n controls the SELECT shape directly in `sql_query`.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.1.businessQueryTest.sqlQuery","typeLabel":"string"}},"title":"business_query_test","required":["sqlQuery"],"additionalProperties":false,"description":"Full SELECT whose result rows are reported as failures; supports\n GROUP BY, JOINs, etc.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.1.businessQueryTest","typeLabel":"business_query_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.1.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.1.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.1.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.1","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["businessRuleTest"],"properties":{"businessRuleTest":{"type":"object","properties":{"sqlExpression":{"type":"string","description":"Boolean SQL predicate evaluated per row of the anchor table\n (Template.identifier); rows where the predicate is TRUE are reported as\n failures.\n\n Format: a single boolean expression — no SELECT, WITH, or semicolons.\n References columns on the anchor table. The engine executes it as\n `SELECT * FROM \u003canchor_table> WHERE \u003csql_expression>`.\n\n Example: \"total_amount != subtotal + tax\" reports rows where totals\n disagree. Use BusinessQueryTest for SELECT / GROUP BY / multi-table logic.\n\n Placeholder: `{{ table }}` is substituted with the anchor table's fully\n qualified name, quoted for the warehouse — the matched table when the test\n is deployed by a deployment rule. It is the only supported placeholder;\n any other `{{ name }}` token is rejected. It renders a table name, so it\n belongs where a table name goes — the FROM clause of a subquery of your own:\n \"total > (SELECT max(total) FROM {{ table }})\".\n\n It is not a column qualifier. The generated FROM clause carries no alias, and\n on BigQuery the fully qualified name is a single quoted identifier, so\n \"{{ table }}.id\" does not resolve. To name the anchor's columns, use\n BusinessQueryTest, where you write the FROM clause and can alias it.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.2.businessRuleTest.sqlExpression","typeLabel":"string"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.2.businessRuleTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.2.businessRuleTest.selectColumns","typeLabel":"string[]"}},"title":"business_rule_test","required":["sqlExpression"],"additionalProperties":false,"description":"Per-row boolean predicate; rows matching are reported as failures\n (e.g., total_amount != subtotal + tax)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.2.businessRuleTest","typeLabel":"business_rule_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.2.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.2.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.2.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.2","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["emptyTest"],"properties":{"emptyTest":{"type":"object","properties":{"columnNames":{"type":"array","items":{"type":"string","minItems":1,"uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.3.emptyTest.columnNames.items.[INDEX]","typeLabel":"string"},"minItems":1,"uniqueItems":true,"description":"List of column names to check for empty values","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.3.emptyTest.columnNames","typeLabel":"string[]"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.3.emptyTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.3.emptyTest.selectColumns","typeLabel":"string[]"}},"title":"empty_test","additionalProperties":false,"description":"Checks if specified columns contain empty values (e.g., description field can be empty)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.3.emptyTest","typeLabel":"empty_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.3.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.3.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.3.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.3","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["freshnessTest"],"properties":{"freshnessTest":{"type":"object","properties":{"timePartitionColumnName":{"type":"string","description":"Name of the timestamp column used for freshness check","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.4.freshnessTest.timePartitionColumnName","typeLabel":"string"},"timeWindowSeconds":{"oneOf":[{"type":"integer","format":"int64","description":"Time window for freshness check (in seconds)","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.4.freshnessTest.timeWindowSeconds.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","format":"int64","description":"Time window for freshness check (in seconds)","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.4.freshnessTest.timeWindowSeconds.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.4.freshnessTest.timeWindowSeconds","typeLabel":"integer\u003cint64> | string\u003cint64>"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.4.freshnessTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.4.freshnessTest.selectColumns","typeLabel":"string[]"}},"title":"freshness_test","required":["timePartitionColumnName"],"additionalProperties":false,"description":"Checks if data is up-to-date based on a time column (e.g., latest event_timestamp within 24h)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.4.freshnessTest","typeLabel":"freshness_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.4.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.4.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.4.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.4","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["maxValueTest"],"properties":{"maxValueTest":{"type":"object","properties":{"columnName":{"type":"string","description":"Name of the numeric column to validate","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.5.maxValueTest.columnName","typeLabel":"string"},"maxValue":{"oneOf":[{"type":"object","title":"SqlValue","description":"Maximum allowed value (inclusive)","required":["stringLiteral"],"properties":{"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.5.maxValueTest.maxValue.oneOf.0.stringLiteral","typeLabel":"string"},"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.5.maxValueTest.maxValue.oneOf.0.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.5.maxValueTest.maxValue.oneOf.0","typeLabel":"SqlValue · object"},{"type":"object","title":"SqlValue","description":"Maximum allowed value (inclusive)","required":["expression"],"properties":{"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.5.maxValueTest.maxValue.oneOf.1.expression","typeLabel":"string"},"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.5.maxValueTest.maxValue.oneOf.1.stringLiteral","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.5.maxValueTest.maxValue.oneOf.1","typeLabel":"SqlValue · object"}],"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.5.maxValueTest.maxValue","typeLabel":"SqlValue · object"},"strictly":{"type":"boolean","description":"If true, the maximum value is exclusive","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.5.maxValueTest.strictly","typeLabel":"boolean"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.5.maxValueTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.5.maxValueTest.selectColumns","typeLabel":"string[]"}},"title":"max_value_test","required":["columnName"],"additionalProperties":false,"description":"Validates numeric values are less than or equal to a maximum value (e.g., price \u003c= 1000)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.5.maxValueTest","typeLabel":"max_value_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.5.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.5.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.5.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.5","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["minMaxTest"],"properties":{"minMaxTest":{"type":"object","properties":{"columnName":{"type":"string","description":"Name of the numeric column to validate","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.minMaxTest.columnName","typeLabel":"string"},"minValue":{"oneOf":[{"type":"object","title":"SqlValue","description":"Minimum allowed value (inclusive)","required":["stringLiteral"],"properties":{"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.minMaxTest.minValue.oneOf.0.stringLiteral","typeLabel":"string"},"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.minMaxTest.minValue.oneOf.0.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.minMaxTest.minValue.oneOf.0","typeLabel":"SqlValue · object"},{"type":"object","title":"SqlValue","description":"Minimum allowed value (inclusive)","required":["expression"],"properties":{"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.minMaxTest.minValue.oneOf.1.expression","typeLabel":"string"},"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.minMaxTest.minValue.oneOf.1.stringLiteral","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.minMaxTest.minValue.oneOf.1","typeLabel":"SqlValue · object"}],"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.minMaxTest.minValue","typeLabel":"SqlValue · object"},"maxValue":{"oneOf":[{"type":"object","title":"SqlValue","description":"Maximum allowed value (inclusive)","required":["stringLiteral"],"properties":{"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.minMaxTest.maxValue.oneOf.0.stringLiteral","typeLabel":"string"},"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.minMaxTest.maxValue.oneOf.0.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.minMaxTest.maxValue.oneOf.0","typeLabel":"SqlValue · object"},{"type":"object","title":"SqlValue","description":"Maximum allowed value (inclusive)","required":["expression"],"properties":{"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.minMaxTest.maxValue.oneOf.1.expression","typeLabel":"string"},"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.minMaxTest.maxValue.oneOf.1.stringLiteral","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.minMaxTest.maxValue.oneOf.1","typeLabel":"SqlValue · object"}],"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.minMaxTest.maxValue","typeLabel":"SqlValue · object"},"strictly":{"type":"boolean","description":"If true, bounds are exclusive","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.minMaxTest.strictly","typeLabel":"boolean"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.minMaxTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.minMaxTest.selectColumns","typeLabel":"string[]"}},"title":"min_max_test","required":["columnName"],"additionalProperties":false,"description":"Validates numeric values are within specified range (e.g., price between 0 and 1000)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.minMaxTest","typeLabel":"min_max_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.6","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["minValueTest"],"properties":{"minValueTest":{"type":"object","properties":{"columnName":{"type":"string","description":"Name of the numeric column to validate","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.7.minValueTest.columnName","typeLabel":"string"},"minValue":{"oneOf":[{"type":"object","title":"SqlValue","description":"Minimum allowed value (inclusive)","required":["stringLiteral"],"properties":{"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.7.minValueTest.minValue.oneOf.0.stringLiteral","typeLabel":"string"},"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.7.minValueTest.minValue.oneOf.0.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.7.minValueTest.minValue.oneOf.0","typeLabel":"SqlValue · object"},{"type":"object","title":"SqlValue","description":"Minimum allowed value (inclusive)","required":["expression"],"properties":{"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.7.minValueTest.minValue.oneOf.1.expression","typeLabel":"string"},"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.7.minValueTest.minValue.oneOf.1.stringLiteral","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.7.minValueTest.minValue.oneOf.1","typeLabel":"SqlValue · object"}],"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.7.minValueTest.minValue","typeLabel":"SqlValue · object"},"strictly":{"type":"boolean","description":"If true, the minimum value is exclusive","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.7.minValueTest.strictly","typeLabel":"boolean"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.7.minValueTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.7.minValueTest.selectColumns","typeLabel":"string[]"}},"title":"min_value_test","required":["columnName"],"additionalProperties":false,"description":"Validates numeric values are greater than or equal to a minimum value (e.g., price >= 0)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.7.minValueTest","typeLabel":"min_value_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.7.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.7.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.7.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.7","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["notNullTest"],"properties":{"notNullTest":{"type":"object","properties":{"columnNames":{"type":"array","items":{"type":"string","minItems":1,"uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.8.notNullTest.columnNames.items.[INDEX]","typeLabel":"string"},"minItems":1,"uniqueItems":true,"description":"List of column names to check for NULL values","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.8.notNullTest.columnNames","typeLabel":"string[]"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.8.notNullTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.8.notNullTest.selectColumns","typeLabel":"string[]"}},"title":"not_null_test","additionalProperties":false,"description":"Checks if specified columns contain no NULL values (e.g., user_id should never be null)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.8.notNullTest","typeLabel":"not_null_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.8.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.8.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.8.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.8","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["rejectedValuesTest"],"properties":{"rejectedValuesTest":{"type":"object","properties":{"columnName":{"type":"string","description":"Name of the column to validate","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.columnName","typeLabel":"string"},"rejectedValues":{"type":"array","items":{"oneOf":[{"type":"object","title":"SqlValue","description":"Represents a value that can be either a literal (to be quoted in SQL) or a SQL expression (to be used as plain text).","required":["stringLiteral"],"properties":{"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.rejectedValues.items.[INDEX].oneOf.0.stringLiteral","typeLabel":"string"},"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.rejectedValues.items.[INDEX].oneOf.0.expression","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.rejectedValues.items.[INDEX].oneOf.0","typeLabel":"SqlValue · object"},{"type":"object","title":"SqlValue","description":"Represents a value that can be either a literal (to be quoted in SQL) or a SQL expression (to be used as plain text).","required":["expression"],"properties":{"expression":{"type":"string","description":"SQL expression, numbers to be used as plain text (e.g., NOW(), COUNT(*), true, 1.1)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.rejectedValues.items.[INDEX].oneOf.1.expression","typeLabel":"string"},"stringLiteral":{"type":"string","description":"Literal value that should be quoted in SQL (e.g., '2025-05-12', 'active')","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.rejectedValues.items.[INDEX].oneOf.1.stringLiteral","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.rejectedValues.items.[INDEX].oneOf.1","typeLabel":"SqlValue · object"}],"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.rejectedValues.items.[INDEX]","typeLabel":"SqlValue · object"},"minItems":1,"description":"List of disallowed values for the column","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.rejectedValues","typeLabel":"SqlValue · object[]"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest.selectColumns","typeLabel":"string[]"}},"title":"rejected_values_test","required":["columnName"],"additionalProperties":false,"description":"Validates that column values are not in a forbidden set (e.g., country not in ['UNKNOWN', 'TEST'])","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.9.rejectedValuesTest","typeLabel":"rejected_values_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.9.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.9.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.9.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.9","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["relationshipsTest"],"properties":{"relationshipsTest":{"type":"object","properties":{"references":{"type":"array","items":{"type":"object","properties":{"entity":{"oneOf":[{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["airflowDag"],"properties":{"airflowDag":{"type":"object","properties":{"integrationId":{"type":"string","description":"Coalesce Quality integration_id that identifies the Airflow instance","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.0.airflowDag.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.0.airflowDag.dagId","typeLabel":"string"}},"title":"airflow_dag","required":["integrationId","dagId"],"additionalProperties":false,"description":"Airflow DAG identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.0.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.0","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["airflowTask"],"properties":{"airflowTask":{"type":"object","properties":{"integrationId":{"type":"string","description":"Coalesce Quality integration_id that identifies the Airflow instance","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.1.airflowTask.integrationId","typeLabel":"string"},"dagId":{"type":"string","description":"Airflow dag_id that identifies the DAG","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.1.airflowTask.dagId","typeLabel":"string"},"taskId":{"type":"string","description":"Airflow task_id that identifies the task within the DAG","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.1.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.1","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.2.athenaTable.catalog","typeLabel":"string"},"database":{"type":"string","description":"Glue database (the namespace users typically filter on).","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.2.athenaTable.database","typeLabel":"string"},"table":{"type":"string","description":"Glue table or view name.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.2.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.2","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["bigqueryTable"],"properties":{"bigqueryTable":{"type":"object","properties":{"project":{"type":"string","description":"BigQuery project","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.3.bigqueryTable.project","typeLabel":"string"},"dataset":{"type":"string","description":"BigQuery dataset id","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.3.bigqueryTable.dataset","typeLabel":"string"},"table":{"type":"string","description":"BigQuery table name","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.3.bigqueryTable.table","typeLabel":"string"}},"title":"bigquery_table","required":["project","dataset","table"],"additionalProperties":false,"description":"BigQuery table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.3.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.3","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["clickhouseTable"],"properties":{"clickhouseTable":{"type":"object","properties":{"host":{"type":"string","description":"Clickhouse hostname without port","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.4.clickhouseTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Clickhouse database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.4.clickhouseTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Clickhouse table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.4.clickhouseTable.table","typeLabel":"string"}},"title":"clickhouse_table","required":["host","schema","table"],"additionalProperties":false,"description":"Clickhouse table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.4.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.4","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.5.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.5","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["databricksTable"],"properties":{"databricksTable":{"type":"object","properties":{"workspace":{"type":"string","description":"URL of Databricks workspace","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.6.databricksTable.workspace","typeLabel":"string"},"catalog":{"type":"string","description":"Databricks catalog","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.6.databricksTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Databricks schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.6.databricksTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Databricks table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.6.databricksTable.table","typeLabel":"string"}},"title":"databricks_table","required":["workspace","catalog","schema","table"],"additionalProperties":false,"description":"Databricks table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.6.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.6","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["dataproduct"],"properties":{"dataproduct":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Dataproduct id that identifies the Dataproduct","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.7.dataproduct.id","typeLabel":"string\u003cuuid>"}},"title":"dataproduct","required":["id"],"additionalProperties":false,"description":"Dataproduct identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.7.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.7","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["db2Table"],"properties":{"db2Table":{"type":"object","properties":{"host":{"type":"string","description":"Host name of the Db2 server","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.8.db2Table.host","typeLabel":"string"},"database":{"type":"string","description":"Database name or alias, as in `CONNECT TO \u003cdatabase>`","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.8.db2Table.database","typeLabel":"string"},"schema":{"type":"string","description":"Db2 schema (e.g. \"DB2INST1\")","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.8.db2Table.schema","typeLabel":"string"},"table":{"type":"string","description":"Db2 table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.8.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.8","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["dbtCloudNode"],"properties":{"dbtCloudNode":{"type":"object","properties":{"projectId":{"type":"string","description":"Your dbt Cloud project id","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.9.dbtCloudNode.nodeId","typeLabel":"string"},"accountId":{"type":"string","description":"Your dbt Cloud account id","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.9.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.9","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.10.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.10","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.11.fabricTable.instance","typeLabel":"string"},"database":{"type":"string","description":"Fabric warehouse / lakehouse (database).","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.11.fabricTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Schema within the database.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.11.fabricTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Table or view name.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.11.fabricTable.tenantId","typeLabel":"string"}},"title":"fabric_table","required":["instance","database","schema","table"],"additionalProperties":false,"description":"Microsoft Fabric table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.11.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.11","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["monitor"],"properties":{"monitor":{"type":"object","properties":{"monitoredId":{"$circularRef":"9aa48dcc-3dc1-40e9-bf59-0a21c9499772","description":"Identifier of the monitored entity","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.12.monitor.monitoredId","typeLabel":"any"},"monitorId":{"type":"string","description":"Identifier of the monitor","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.12.monitor.monitorId","typeLabel":"string"},"segment":{"oneOf":[{"type":"string","description":"Optional monitor segmentation identifier","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.12.monitor.segment.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional monitor segmentation identifier","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.12.monitor.segment.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.12.monitor.segment","typeLabel":"string | null"},"integrationId":{"oneOf":[{"type":"string","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.12.monitor.integrationId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Coalesce Quality integration_id of the monitored identifier","deprecated":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.12.monitor.integrationId.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.12.monitor.integrationId","typeLabel":"string | null"}},"title":"monitor","required":["monitoredId","monitorId"],"additionalProperties":false,"description":"Monitor identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.12.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.12","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["mssqlTable"],"properties":{"mssqlTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the SQL Server instance","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.13.mssqlTable.host","typeLabel":"string"},"database":{"type":"string","description":"SQL Server database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.13.mssqlTable.database","typeLabel":"string"},"schema":{"type":"string","description":"SQL Server schema (e.g. \"dbo\")","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.13.mssqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"SQL Server table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.13.mssqlTable.table","typeLabel":"string"}},"title":"mssql_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"SQL Server table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.13.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.13","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["mysqlTable"],"properties":{"mysqlTable":{"type":"object","properties":{"host":{"type":"string","description":"Mysql hostname without port","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.14.mysqlTable.host","typeLabel":"string"},"schema":{"type":"string","description":"Mysql database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.14.mysqlTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Mysql table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.14.mysqlTable.table","typeLabel":"string"}},"title":"mysql_table","required":["host","schema","table"],"additionalProperties":false,"description":"Mysql table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.14.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.14","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["oracleTable"],"properties":{"oracleTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the Oracle instance","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.15.oracleTable.host","typeLabel":"string"},"serviceName":{"type":"string","description":"Oracle service name (PDB)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.15.oracleTable.serviceName","typeLabel":"string"},"schema":{"type":"string","description":"Oracle schema (= owning user)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.15.oracleTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Oracle table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.15.oracleTable.table","typeLabel":"string"}},"title":"oracle_table","required":["host","serviceName","schema","table"],"additionalProperties":false,"description":"Oracle table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.15.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.15","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["postgresTable"],"properties":{"postgresTable":{"type":"object","properties":{"host":{"type":"string","description":"Postgres hostname without port","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.16.postgresTable.host","typeLabel":"string"},"database":{"type":"string","description":"Postgres database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.16.postgresTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Postgres schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.16.postgresTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Postgres table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.16.postgresTable.table","typeLabel":"string"}},"title":"postgres_table","required":["host","database","schema","table"],"additionalProperties":false,"description":"Postgres table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.16.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.16","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["redshiftTable"],"properties":{"redshiftTable":{"type":"object","properties":{"database":{"type":"string","description":"Redshift database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.17.redshiftTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Redshift schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.17.redshiftTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Redshift table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.17.redshiftTable.cluster","typeLabel":"string"}},"title":"redshift_table","required":["database","schema","table"],"additionalProperties":false,"description":"Redshift table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.17.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.17","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.18.savedView.id","typeLabel":"string\u003cuuid>"}},"title":"saved_view","required":["id"],"additionalProperties":false,"description":"Saved view identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.18.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.18","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["snowflakeTable"],"properties":{"snowflakeTable":{"type":"object","properties":{"account":{"type":"string","description":"Snowflake account","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.19.snowflakeTable.account","typeLabel":"string"},"database":{"type":"string","description":"Snowflake database","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.19.snowflakeTable.database","typeLabel":"string"},"schema":{"type":"string","description":"Snowflake schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.19.snowflakeTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Snowflake table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.19.snowflakeTable.table","typeLabel":"string"}},"title":"snowflake_table","required":["account","database","schema","table"],"additionalProperties":false,"description":"Snowflake table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.19.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.19","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.20.sqlMeshAudit.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.20.sqlMeshAudit.fqn","typeLabel":"string"},"auditId":{"type":"string","description":"Identifier of the audit","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.20.sqlMeshAudit.auditId","typeLabel":"string"}},"title":"sql_mesh_audit","required":["integrationId","fqn","auditId"],"additionalProperties":false,"description":"SQLMesh Audit identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.20.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.20","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.21.sqlMeshModel.integrationId","typeLabel":"string\u003cuuid>"},"fqn":{"type":"string","description":"SQLMesh model fully qualified name","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.21.sqlMeshModel.fqn","typeLabel":"string"}},"title":"sql_mesh_model","required":["integrationId","fqn"],"additionalProperties":false,"description":"SQLMesh Model identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.21.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.21","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.22.synqPath.path","typeLabel":"string"}},"title":"synq_path","required":["path"],"additionalProperties":false,"description":"SynqPath identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.22.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.22","typeLabel":"Identifier · object"},{"type":"object","title":"Identifier","description":"The reference entity (table to check foreign keys against)","required":["trinoTable"],"properties":{"trinoTable":{"type":"object","properties":{"host":{"type":"string","description":"Hostname of the Trino instance","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.23.trinoTable.host","typeLabel":"string"},"catalog":{"type":"string","description":"Trino catalog","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.23.trinoTable.catalog","typeLabel":"string"},"schema":{"type":"string","description":"Trino schema","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.23.trinoTable.schema","typeLabel":"string"},"table":{"type":"string","description":"Trino table or view","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.23.trinoTable.table","typeLabel":"string"}},"title":"trino_table","required":["host","catalog","schema","table"],"additionalProperties":false,"description":"Trino table identifier","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.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":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.23.entityId","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity.oneOf.23","typeLabel":"Identifier · object"}],"isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].entity","typeLabel":"Identifier · object"},"columns":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string","description":"Column name in the source table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].columns.items.[INDEX].source","typeLabel":"string"},"reference":{"type":"string","description":"Column name in the reference table","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].columns.items.[INDEX].reference","typeLabel":"string"}},"title":"RelationshipColumn","required":["source","reference"],"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].columns.items.[INDEX]","typeLabel":"RelationshipColumn · object"},"minItems":1,"description":"Column mappings between source and reference tables","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX].columns","typeLabel":"RelationshipColumn · object[]"}},"title":"RelationshipReference","required":["entity"],"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references.items.[INDEX]","typeLabel":"RelationshipReference · object"},"minItems":1,"description":"List of reference table relationships to check","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.references","typeLabel":"RelationshipReference · object[]"},"ignoreNulls":{"type":"boolean","description":"If true, source rows where all join columns are NULL are excluded from results","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.ignoreNulls","typeLabel":"boolean"},"timePartitionColumn":{"type":"string","description":"Column name used to filter source rows by time (e.g., \"created_at\")","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.timePartitionColumn","typeLabel":"string"},"timeWindowSeconds":{"oneOf":[{"type":"integer","format":"int64","description":"Time window in seconds - only check source rows within this window","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.timeWindowSeconds.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","format":"int64","description":"Time window in seconds - only check source rows within this window","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.timeWindowSeconds.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.timeWindowSeconds","typeLabel":"integer\u003cint64> | string\u003cint64>"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest.selectColumns","typeLabel":"string[]"}},"title":"relationships_test","additionalProperties":false,"description":"Validates referential integrity between source and reference tables","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.relationshipsTest","typeLabel":"relationships_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.10","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["relativeTimeTest"],"properties":{"relativeTimeTest":{"type":"object","properties":{"columnName":{"type":"string","description":"Name of the first time column to compare","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.11.relativeTimeTest.columnName","typeLabel":"string"},"relativeColumnName":{"type":"string","description":"Name of the second time column that should be later than the first","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.11.relativeTimeTest.relativeColumnName","typeLabel":"string"},"selectColumns":{"type":"array","items":{"type":"string","uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.11.relativeTimeTest.selectColumns.items.[INDEX]","typeLabel":"string"},"uniqueItems":true,"description":"Optional list of columns to include in the SELECT clause of the generated SQL.\n When empty (default), SELECT * is used — all columns are returned.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.11.relativeTimeTest.selectColumns","typeLabel":"string[]"}},"title":"relative_time_test","required":["columnName","relativeColumnName"],"additionalProperties":false,"description":"Compares time-based columns for logical order (e.g., start_date before end_date)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.11.relativeTimeTest","typeLabel":"relative_time_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.11.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.11.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.11.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.11","typeLabel":"RuleTest · object"},{"type":"object","title":"RuleTest","description":"RuleTest is a SQL test template deployed by a SqlTestDeploymentRule onto every\n table or view the rule's selection matches. It carries the same test kinds as\n SqlTest.template, but — unlike Template — has no anchor entity: the anchor is\n whichever table or view the rule matched, filled in separately for each\n deployed test.\nrule_test.name_required_for_business_tests // name is required when business_rule_test or business_query_test is set\n","required":["uniqueTest"],"properties":{"uniqueTest":{"type":"object","properties":{"columnNames":{"type":"array","items":{"type":"string","minItems":1,"uniqueItems":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.12.uniqueTest.columnNames.items.[INDEX]","typeLabel":"string"},"minItems":1,"uniqueItems":true,"description":"List of columns that should form a unique combination","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.12.uniqueTest.columnNames","typeLabel":"string[]"},"timePartitionColumnName":{"type":"string","description":"If provided, the check will be applied to the time window of the time partition column\n If not provided, the check will be applied to all rows","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.12.uniqueTest.timePartitionColumnName","typeLabel":"string"},"timeWindowSeconds":{"oneOf":[{"type":"integer","format":"int64","description":"Time window for uniqueness check (in seconds)","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.12.uniqueTest.timeWindowSeconds.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","format":"int64","description":"Time window for uniqueness check (in seconds)","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.12.uniqueTest.timeWindowSeconds.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.12.uniqueTest.timeWindowSeconds","typeLabel":"integer\u003cint64> | string\u003cint64>"}},"title":"unique_test","additionalProperties":false,"description":"Ensures specified columns form a unique key combination (e.g., order_id is unique)","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.12.uniqueTest","typeLabel":"unique_test · object"},"name":{"type":"string","title":"name","description":"Human friendly name for this test. Required (non-empty) for business_rule_test\n and business_query_test — for those two kinds, name is the test's identity key\n across rule redeployments, so a renamed test is treated as a different test.\n Optional for every other kind: leave it unset and a name is generated.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.12.name","typeLabel":"string"},"description":{"type":"string","title":"description","description":"Description of purpose and motivation, copied onto every test this rule deploys.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.12.description","typeLabel":"string"},"severity":{"type":"string","title":"severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"description":"Overrides the rule's config-level severity for this test only. Leave unset to\n use the config-level severity.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.12.severity","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX].oneOf.12","typeLabel":"RuleTest · object"}],"uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests.items.[INDEX]","typeLabel":"RuleTest · object"},"minItems":1,"description":"Tests deployed onto the table or view at `path`.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.tests","typeLabel":"RuleTest · object[]"},"recurrenceRule":{"type":"string","description":"[Recurrence rule](https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html)\n for the execution schedule applied to every test this rule deploys. Empty\n means on-demand. When set, it must carry an inline `DTSTART:` naming the first\n occurrence, e.g. \"DTSTART:20260101T000000Z\\nRRULE:FREQ=DAILY\".","uniqueKey":"deploymentRule.oneOf.3.staticConfig.recurrenceRule","typeLabel":"string"},"timezone":{"type":"string","description":"IANA timezone name used to interpret recurrence_rule. Empty defaults to UTC.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.timezone","typeLabel":"string"},"severity":{"type":"string","title":"Severity","enum":["SEVERITY_UNSPECIFIED","SEVERITY_WARNING","SEVERITY_ERROR","SEVERITY_INFO"],"not":{"enum":[0]},"description":"Severity applied to every test this rule deploys, unless a RuleTest\n overrides it. Required — must be set to a value other than unspecified.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.severity","typeLabel":"enum\u003cstring>"},"saveFailures":{"type":"boolean","description":"Applied to every test this rule deploys. Toggles saving of failure runs.","uniqueKey":"deploymentRule.oneOf.3.staticConfig.saveFailures","typeLabel":"boolean"}},"title":"static_config","additionalProperties":false,"description":"Deploys tests onto a single fixed table or view.","isRequired":true,"uniqueKey":"deploymentRule.oneOf.3.staticConfig","typeLabel":"static_config · object"},"id":{"type":"string","title":"id","format":"uuid","description":"Unique identifier for this rule.","uniqueKey":"deploymentRule.oneOf.3.id","typeLabel":"string\u003cuuid>"},"title":{"type":"string","title":"title","maxLength":100,"minLength":1,"description":"Human friendly name for this rule.","uniqueKey":"deploymentRule.oneOf.3.title","typeLabel":"string"},"source":{"type":"string","title":"source","enum":["SOURCE_APP","SOURCE_API"],"uniqueKey":"deploymentRule.oneOf.3.source","typeLabel":"enum\u003cstring>"},"configId":{"oneOf":[{"type":"string","title":"config_id","description":"Config ID this rule was authored from, when deployed via configuration as\n code. Unset for rules authored directly through this API.\n\n On a write this field is only ever set, never unset: omitting it keeps the\n stored value, so a full-replace update cannot detach the rule from the\n config that owns it. An empty string is a real config id — the one a deploy\n that declares no namespace uses — so sending it attaches the rule to that\n config rather than clearing the field. No value detaches a rule; recreating\n it is the only way to hand it back to the app.","uniqueKey":"deploymentRule.oneOf.3.configId.oneOf.0","typeLabel":"string"},{"type":"null","title":"config_id","description":"Config ID this rule was authored from, when deployed via configuration as\n code. Unset for rules authored directly through this API.\n\n On a write this field is only ever set, never unset: omitting it keeps the\n stored value, so a full-replace update cannot detach the rule from the\n config that owns it. An empty string is a real config id — the one a deploy\n that declares no namespace uses — so sending it attaches the rule to that\n config rather than clearing the field. No value detaches a rule; recreating\n it is the only way to hand it back to the app.","uniqueKey":"deploymentRule.oneOf.3.configId.oneOf.1","typeLabel":"null"}],"uniqueKey":"deploymentRule.oneOf.3.configId","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"deploymentRule.oneOf.3","typeLabel":"SqlTestDeploymentRule · object"}],"uniqueKey":"deploymentRule","typeLabel":"SqlTestDeploymentRule · object"}},"title":"DeploySqlTestDeploymentRuleRequest","additionalProperties":false,"uniqueKey":"","typeLabel":"DeploySqlTestDeploymentRuleRequest · object"},"examples":{"Example":{"title":"Example","value":{"deploymentRule":{"exclusiveQueryConfig":{"query":{"parts":[{"entityIds":{"entityIds":["\u003cstring>"]}}]},"resolverQl":"\u003cstring>","renderedResolverQl":"\u003cstring>"},"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","title":"\u003cstring>","configId":"\u003cstring>"}}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"7c9ae804-8a0a-4e5b-9a90-479739b63de2":{"description":"Success","content":{"application/json":{"schema":{"type":"object","title":"DeploySqlTestDeploymentRuleResponse","additionalProperties":false,"uniqueKey":"","typeLabel":"DeploySqlTestDeploymentRuleResponse · object"},"examples":{"Example":{"title":"Example","value":{}}},"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}]},"5b88d704-2a2e-4c1a-837b-99543d863e65":{"type":"object","properties":{"parts":{"type":"array","items":{"oneOf":[{"type":"object","title":"entity_ids","required":["entityIds"],"properties":{"entityIds":{"type":"object","properties":{"entityIds":{"type":"array","items":{"type":"string","maxLength":1024,"minLength":1},"description":"The entities to select. An id may not be blank.\n\n An empty list selects no entities, exactly as an empty `identifier_list`\n does. Be deliberate about it, because it is not the same as leaving the part\n out: a part that selects nothing still counts, so it empties an AND, adds\n nothing to an OR, and removes nothing from an EXCEPT. If what you mean is\n \"do not restrict on specific entities\", omit the part instead of sending it\n empty.\n\n Ids may be up to 1024 characters — the same limit as `Identifier.entity_id`,\n where you read them from, so any id the API returned is accepted here."}},"title":"entity_ids","additionalProperties":false,"description":"Pin specific entities by the ids the API returned for them. Read back as\n `identifier_list`, with each id on the identifier it names.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"identifier_list","required":["identifierList"],"properties":{"identifierList":{"type":"object","properties":{"identifiers":{"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},"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}]}}},"title":"identifier_list","additionalProperties":false,"description":"Resolves to entities matching any of the given identifiers.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"identities_of","required":["identitiesOf"],"properties":{"identitiesOf":{"type":"object","properties":{"inputQuery":{"$circularRef":"5b88d704-2a2e-4c1a-837b-99543d863e65","description":"The assets whose identities to resolve. Required.","isRequired":true},"limitToTypes":{"type":"array","items":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true}},"additionalProperties":false},{"type":"object","title":"default","required":["default"],"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true}},"additionalProperties":false}]},"description":"Restrict the result to these types. When empty, only the other members of\n each identity group are returned. When set, an input asset that already has\n one of these types is returned as well."}},"title":"identities_of","required":["inputQuery"],"additionalProperties":false,"description":"Resolves to the identities of whatever the inner query matches.\n\n The same real-world table is often described by several assets — a\n transformation model and the warehouse table it materialises into are one\n asset with several representations. Those representations form an identity\n group. IdentitiesOf takes the assets matched by `input_query` and returns\n their identity groups, so a selection made in one platform's terms also\n covers the equivalent assets in every other platform.\n\n The typical use is subtraction: \"this warehouse database, except whatever my\n transformation tool already owns\" is an EXCEPT whose removal clause is an\n IdentitiesOf over the transformation models. Without it the two selections\n overlap on every materialised table.\nidentities_of.input_query_selects_something // identities_of requires an input_query with at least one part\n","isRequired":true}},"additionalProperties":false},{"type":"object","title":"in_data_platform","required":["inDataPlatform"],"properties":{"inDataPlatform":{"type":"object","properties":{"identifier":{"oneOf":[{"type":"object","title":"athena","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["athena"],"properties":{"athena":{"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 by Coalesce Quality 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}},"title":"athena","required":["instance","catalog"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"bigquery","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["bigquery"],"properties":{"bigquery":{"type":"object","properties":{"project":{"type":"string","description":"BigQuery project","isRequired":true}},"title":"bigquery","required":["project"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"clickhouse","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["clickhouse"],"properties":{"clickhouse":{"type":"object","properties":{"host":{"type":"string","description":"Clickhouse host inclusive of port","isRequired":true},"schema":{"type":"string","description":"Clickhouse database","isRequired":true}},"title":"clickhouse","required":["host","schema"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"databricks","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["databricks"],"properties":{"databricks":{"type":"object","properties":{"workspace":{"type":"string","description":"URL of the databricks workspace","isRequired":true}},"title":"databricks","required":["workspace"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"db2","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["db2"],"properties":{"db2":{"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}},"title":"db2","required":["host","database"],"additionalProperties":false,"description":"IBM Db2 for Linux, UNIX and Windows. An integration connects to one\n database, so host and database together identify it.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"dbt_cloud","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["dbtCloud"],"properties":{"dbtCloud":{"type":"object","properties":{"apiEndpoint":{"type":"string","description":"API endpoint for Dbt Cloud","isRequired":true},"accountId":{"type":"string","description":"Account ID","isRequired":true},"projectId":{"type":"string","description":"Project ID","isRequired":true}},"title":"dbt_cloud","required":["apiEndpoint","accountId","projectId"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"duckdb","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["duckdb"],"properties":{"duckdb":{"type":"object","properties":{"motherduckAccount":{"type":"string"}},"title":"duckdb","additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"fabric","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["fabric"],"properties":{"fabric":{"type":"object","properties":{"instance":{"type":"string","description":"Workspace SQL analytics endpoint host, e.g.\n \"\u003cworkspace-id>.datawarehouse.fabric.microsoft.com\". Identifies the Fabric\n workspace the integration connects to. Fabric is workspace-scoped with\n cross-database queries, so the workspace host alone identifies the platform\n (like Databricks' workspace URL); a specific warehouse/table is addressed by\n FabricTableIdentifier.","isRequired":true},"workspaceId":{"type":"string","description":"Fabric workspace GUID — the identifier used by the Fabric REST API for\n workspace-scoped resources. The Fabric endpoint host in `instance` encodes\n the tenant and workspace GUIDs; this is the decoded workspace GUID, provided\n so you don't have to decode it yourself. `instance` remains the identifying\n value. Optional: empty when the host isn't a standard Fabric endpoint."},"tenantId":{"type":"string","description":"Entra (Azure AD) tenant GUID, decoded from the endpoint host in `instance`\n alongside workspace_id. Optional: empty when the host isn't a standard\n Fabric endpoint."}},"title":"fabric","required":["instance"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"mssql","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["mssql"],"properties":{"mssql":{"type":"object","properties":{"host":{"type":"string","description":"SQL Server host","isRequired":true},"database":{"type":"string","description":"Database name","isRequired":true}},"title":"mssql","required":["host","database"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"mysql","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["mysql"],"properties":{"mysql":{"type":"object","properties":{"host":{"type":"string","description":"Mysql host inclusive of port","isRequired":true}},"title":"mysql","required":["host"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"oracle","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["oracle"],"properties":{"oracle":{"type":"object","properties":{"host":{"type":"string","description":"Oracle host","isRequired":true},"serviceName":{"type":"string","description":"Oracle service name (PDB)","isRequired":true}},"title":"oracle","required":["host","serviceName"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"postgres","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["postgres"],"properties":{"postgres":{"type":"object","properties":{"host":{"type":"string","description":"Postgres host inclusive of port","isRequired":true},"database":{"type":"string","description":"Postgres database","isRequired":true}},"title":"postgres","required":["host","database"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"redshift","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["redshift"],"properties":{"redshift":{"type":"object","properties":{"cluster":{"type":"string","description":"Redshift cluster","isRequired":true},"database":{"type":"string","description":"Redshift database","isRequired":true}},"title":"redshift","required":["cluster","database"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"snowflake","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["snowflake"],"properties":{"snowflake":{"type":"object","properties":{"account":{"type":"string","description":"Snowflake account","isRequired":true},"database":{"type":"string","description":"Snowflake database","isRequired":true}},"title":"snowflake","required":["account","database"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"sql_mesh","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["sqlMesh"],"properties":{"sqlMesh":{"type":"object","properties":{"defaultDatabaseInstance":{"type":"string","description":"Default database instance for SQL Mesh","isRequired":true}},"title":"sql_mesh","required":["defaultDatabaseInstance"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"synq_integration_id","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["synqIntegrationId"],"properties":{"synqIntegrationId":{"type":"string","title":"synq_integration_id","description":"Coalesce Quality integration ID maps to the created integration on the Coalesce Quality platform.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"trino","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["trino"],"properties":{"trino":{"type":"object","properties":{"coordinator":{"type":"string"}},"title":"trino","additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"unknown","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["unknown"],"properties":{"unknown":{"type":"object","title":"unknown","additionalProperties":false,"isRequired":true}},"additionalProperties":false}]}},"title":"in_data_platform","additionalProperties":false,"description":"Resolves to all entities that belong to the given data platform.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"in_dataproduct","required":["inDataproduct"],"properties":{"inDataproduct":{"type":"object","properties":{"identifier":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Dataproduct id that identifies the Dataproduct","isRequired":true}},"title":"DataproductIdentifier","required":["id"],"additionalProperties":false}},"title":"in_dataproduct","additionalProperties":false,"description":"Resolves to all the assets that belong to the given data product.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"in_domain","required":["inDomain"],"properties":{"inDomain":{"type":"object","properties":{"domainId":{"type":"string","format":"uuid"}},"title":"in_domain","additionalProperties":false,"description":"Resolves to all entities in the given data domain.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"in_folder","required":["inFolder"],"properties":{"inFolder":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string"},"description":"Opaque folder identifiers (a folder's own entity id). `folders` is the\n structured, human-authorable alternative. When `path` is the only source\n set and `deep` is unset, `deep` defaults to true for back-compat with\n queries authored before `deep` existed."},"folders":{"type":"array","items":{"type":"object","properties":{"rootEntityId":{"type":"string","description":"Opaque id of the entity the folder hierarchy hangs under — an integration\n root or container (for example a warehouse instance, a database, or a\n transformation project). Take it verbatim from `FolderRef.root_entity_id`\n of a folder you already read, or from an entity id returned elsewhere."},"folders":{"type":"array","items":{"type":"string"},"description":"Ordered folder names from the root down to this folder (root first, leaf\n last), for example [\"staging\", \"sales\"]. Empty means the ref points at the\n root entity itself. Folder names are kept as separate segments (not joined\n with \"/\") because some platforms allow \"/\" inside a single folder name."}},"title":"FolderRef","additionalProperties":false,"description":"FolderRef is the human-friendly, structured address of a folder: the entity it\n hangs under (`root_entity_id`) plus the ordered folder names from that root\n down to the folder (`folders`).\n\n It is the stable way to name a folder across responses. Prefer it over the\n opaque folder entity id when you want to log, display, or reconstruct a\n location — the segments are the same names a user sees in the catalog, and\n they survive changes to the underlying id encoding.\n\n A `FolderRef` with an empty `folders` list names the root entity itself (a\n top-level integration or container the hierarchy hangs from).\n\n This type lives in `synq.entities.v1` (rather than a folder-specific package)\n so it can be shared by both the folders navigation API and the query API\n without an import cycle."},"description":"Structured, human-authorable folder addresses (root entity + folder-name\n segments). Take a `FolderRef` verbatim from a folder returned by the folders\n navigation API, or build one from names you can see in the catalog."},"folderOf":{"type":"object","properties":{"entityIds":{"type":"array","items":{"type":"string"},"description":"Simplified source: the assets named directly by opaque entity id. Use this\n for the common \"same folder as these specific assets\" case; equivalent to an\n input_query that lists the same ids."},"inputQuery":{"$circularRef":"5b88d704-2a2e-4c1a-837b-99543d863e65","description":"General source: resolve the folder(s) of whatever assets this query matches\n (e.g. a name or type filter). Use when the assets can't be listed up front."},"includeAllAncestors":{"type":"boolean","description":"When false (default): only each asset's immediate parent folder. When true:\n every ancestor folder up the hierarchy, so `InFolder` then also matches\n assets in those ancestor folders."}},"title":"FolderOf","additionalProperties":false,"description":"Resolve the folders to search from a set of assets, rather than naming them.\n Selects everything in the folder(s) that contain those assets."},"deep":{"oneOf":[{"type":"boolean","description":"When false or unset, matches only the direct members of the folder(s). When\n true, matches the entire recursive subtree (members of subfolders too).\n\n Exception: when only the legacy `path` source is set and `deep` is unset,\n it defaults to true (preserves the behaviour of queries authored before this\n flag existed). With `folders` or `folder_of`, unset means false (shallow)."},{"type":"null","description":"When false or unset, matches only the direct members of the folder(s). When\n true, matches the entire recursive subtree (members of subfolders too).\n\n Exception: when only the legacy `path` source is set and `deep` is unset,\n it defaults to true (preserves the behaviour of queries authored before this\n flag existed). With `folders` or `folder_of`, unset means false (shallow)."}]}},"title":"in_folder","additionalProperties":false,"description":"Resolves to entities located in one or more folders.\n\n Give the folders exactly one way (they are mutually exclusive; if more than\n one is set, `folders` wins, then `folder_of`, then `path`):\n - `folders` — the preferred, human-authorable form: name each folder by\n its root entity plus its ordered folder-name segments. No\n opaque ids required.\n - `folder_of` — \"the same folder(s) as these assets\": resolves the folder(s)\n containing the assets matched by an inner query, then matches\n everything in them. Lets you select siblings without naming a\n folder.\n - `path` — legacy opaque folder identifiers. Kept for back-compat;\n prefer `folders`. Discover a folder's structured address\n with the folders navigation API instead of hand-writing an id.\n\n `deep` controls recursion (see its field comment).\n\n InFolder lives here rather than in query_parts.proto because FolderOf nests a\n full Query, which would make query_parts.proto import query.proto and form a\n proto file import cycle.\nin_folder.exactly_one_source // set exactly one of path, folders, or folder_of\n","isRequired":true}},"additionalProperties":false},{"type":"object","title":"query","required":["query"],"properties":{"query":{"$circularRef":"5b88d704-2a2e-4c1a-837b-99543d863e65","title":"query","description":"Nested sub-query, enabling recursive composition of filters and operands.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"unsupported","required":["unsupported"],"properties":{"unsupported":{"type":"object","properties":{"queryJson":{"type":"string"}},"title":"unsupported","additionalProperties":false,"description":"Read-only. Represents internal query types that cannot be expressed in the public API.\n Do not construct these directly — they are returned when translating from internal queries.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"with_annotation","required":["withAnnotation"],"properties":{"withAnnotation":{"type":"object","properties":{"name":{"type":"string"},"acceptedValue":{"oneOf":[{"type":"string","deprecated":true},{"type":"null","deprecated":true}]},"acceptedValues":{"type":"array","items":{"type":"string"}}},"title":"with_annotation","additionalProperties":false,"description":"Resolves to all entities that contain the annotation with at least one of the provided accepted values.\n In case of no given accepted values, all entities that carry the given annotation are returned.\n The name and the values match case-insensitively.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"with_data_platform_type","required":["withDataPlatformType"],"properties":{"withDataPlatformType":{"type":"object","properties":{"types":{"type":"array","items":{"type":"string","title":"DataPlatformType","enum":["DATA_PLATFORM_TYPE_UNSPECIFIED","DATA_PLATFORM_TYPE_BIGQUERY","DATA_PLATFORM_TYPE_LOOKER","DATA_PLATFORM_TYPE_DBT","DATA_PLATFORM_TYPE_DBT_CLOUD","DATA_PLATFORM_TYPE_DBT_SELF_HOSTED","DATA_PLATFORM_TYPE_SNOWFLAKE","DATA_PLATFORM_TYPE_GCP","DATA_PLATFORM_TYPE_GIT","DATA_PLATFORM_TYPE_GITHUB","DATA_PLATFORM_TYPE_REDSHIFT","DATA_PLATFORM_TYPE_TABLEAU","DATA_PLATFORM_TYPE_AIRFLOW","DATA_PLATFORM_TYPE_CLICKHOUSE","DATA_PLATFORM_TYPE_POSTGRES","DATA_PLATFORM_TYPE_MYSQL","DATA_PLATFORM_TYPE_DATABRICKS","DATA_PLATFORM_TYPE_SQLMESH","DATA_PLATFORM_TYPE_DUCKDB","DATA_PLATFORM_TYPE_TRINO","DATA_PLATFORM_TYPE_ATLAN","DATA_PLATFORM_TYPE_COALESCE","DATA_PLATFORM_TYPE_CASTORDOC","DATA_PLATFORM_TYPE_FIVETRAN","DATA_PLATFORM_TYPE_DAGSTER","DATA_PLATFORM_TYPE_AIRBYTE","DATA_PLATFORM_TYPE_STITCH","DATA_PLATFORM_TYPE_SNOWPLOW","DATA_PLATFORM_TYPE_POWERBI","DATA_PLATFORM_TYPE_THOUGHTSPOT","DATA_PLATFORM_TYPE_SIGMA","DATA_PLATFORM_TYPE_DOMO","DATA_PLATFORM_TYPE_MSSQL","DATA_PLATFORM_TYPE_ORACLE","DATA_PLATFORM_TYPE_ATHENA","DATA_PLATFORM_TYPE_FABRIC","DATA_PLATFORM_TYPE_DB2","DATA_PLATFORM_TYPE_LOOKER_STUDIO","DATA_PLATFORM_TYPE_HEX","DATA_PLATFORM_TYPE_OMNI","DATA_PLATFORM_TYPE_METABASE","DATA_PLATFORM_TYPE_GOOGLE_SHEETS","DATA_PLATFORM_TYPE_GRAFANA","DATA_PLATFORM_TYPE_STREAMLIT","DATA_PLATFORM_TYPE_ASTRATO","DATA_PLATFORM_TYPE_SNOWFLAKE_CORTEX","DATA_PLATFORM_TYPE_SNOWFLAKE_INTELLIGENCE","DATA_PLATFORM_TYPE_CUBE","DATA_PLATFORM_TYPE_CENSUS","DATA_PLATFORM_TYPE_HIGHTOUCH","DATA_PLATFORM_TYPE_WORKATO","DATA_PLATFORM_TYPE_ESTUARY","DATA_PLATFORM_TYPE_DLT","DATA_PLATFORM_TYPE_TERRAFORM","DATA_PLATFORM_TYPE_HEVO","DATA_PLATFORM_TYPE_DATASTREAM","DATA_PLATFORM_TYPE_QLIK","DATA_PLATFORM_TYPE_SALESFORCE","DATA_PLATFORM_TYPE_SYNQ"]}}},"title":"with_data_platform_type","additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"with_default_visible_types","required":["withDefaultVisibleTypes"],"properties":{"withDefaultVisibleTypes":{"type":"object","title":"with_default_visible_types","additionalProperties":false,"description":"Resolves to every asset of a type the catalog shows by default — the\n \"everything\" starting set.\n\n Use it as the base of a subtraction, e.g. an EXCEPT query whose first part is\n WithDefaultVisibleTypes and whose second part is what to leave out. On its own\n it selects the whole catalog, so it is rarely useful as the only part of a\n query.\n\n \"Default visible\" excludes the supporting asset types the catalog hides unless\n asked for (columns, tests, and similar), so this is not literally every entity.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"with_name_search","required":["withNameSearch"],"properties":{"withNameSearch":{"type":"object","properties":{"searchQuery":{"type":"string"}},"title":"with_name_search","additionalProperties":false,"description":"Resolves to all entities matching the given name search.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"with_type","required":["withType"],"properties":{"withType":{"type":"object","properties":{"type":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"deprecated":true,"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true}},"additionalProperties":false},{"type":"object","title":"default","required":["default"],"deprecated":true,"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true}},"additionalProperties":false}]},"types":{"type":"array","items":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true}},"additionalProperties":false},{"type":"object","title":"default","required":["default"],"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true}},"additionalProperties":false}]}},"traits":{"type":"array","items":{"type":"string"},"description":"Traits to select by, instead of — or alongside — naming types.\n\n A trait is a property a type has, so `is_monitorable` means \"everything a\n monitor can run on\" without listing the forty-odd types that satisfy it\n today. The list it stands for is worked out each time the selection runs,\n so a selection saved this way covers a new platform's tables as soon as we\n support them, and you never have to revisit it.\n\n Entities carrying any of the traits match. When `types` is also set the two\n narrow each other: the entity must be one of the named types AND carry one\n of the traits.\n\n Accepted values, and what each one means, come from the selection-query\n grammar the API publishes (`describe_resolver_ql`, or the query editor's\n reference). A name that is not in it selects nothing rather than being\n ignored, so a typo narrows the result to empty instead of widening it —\n check a trait against the grammar before storing a selection. In a query\n written as text this is `with_type(traits=\"is_monitorable\")`, and there a\n name outside the grammar is rejected outright.\n\n A trait may also be a type alias, spelled `alias:\u003cname>` where `\u003cname>` is\n one of the aliases the grammar lists among the entity types, e.g.\n `alias:table`. It selects every type the alias stands for, worked out each\n time the selection runs like any other trait. A selection written as\n `with_type(\"table\")` is stored this way and reads back with\n `traits: [\"alias:table\"]`; writing that back keeps the same selection. In a\n query written as text an alias is always `with_type(\"table\")`, never\n `traits=\"alias:table\"`."}},"title":"with_type","additionalProperties":false,"description":"Resolves to all the entities that have the provided type, or carry one of the\n provided traits.","isRequired":true}},"additionalProperties":false}]}},"operand":{"type":"string","title":"QueryOperand","enum":["QUERY_OPERAND_UNSPECIFIED","QUERY_OPERAND_AND","QUERY_OPERAND_OR","QUERY_OPERAND_EXCEPT","QUERY_OPERAND_UPSTREAM","QUERY_OPERAND_DOWNSTREAM"],"description":"Defaults to AND if not specified."}},"title":"Query","additionalProperties":false,"description":"Query is a structured query that can be used to find entities in the system.\n It consists of multiple parts, each representing a different filter or sub-query.\n The parts are combined using the operand to form the final result:\n - AND (default): returns only entities matching ALL parts (intersection).\n - OR: returns entities matching ANY part (union).\n - EXCEPT: requires exactly 2 parts — returns entities from part[0] that are NOT in part[1].\n - UPSTREAM: returns entities that are upstream (dependencies) of the entities matched by the parts.\n - DOWNSTREAM: returns entities that are downstream (dependents) of the entities matched by the parts.\n\n Queries can be nested by using a Query as a QueryPart, enabling complex compositions\n like \"upstream of all Snowflake tables\".\nquery.except_parts_select_something // each QUERY_OPERAND_EXCEPT part must select something\nquery.except_requires_two_parts // QUERY_OPERAND_EXCEPT requires exactly 2 parts\n"},"c79c7116-4afc-4517-9fe8-67fe693cd4e1":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string"},"description":"Opaque folder identifiers (a folder's own entity id). `folders` is the\n structured, human-authorable alternative. When `path` is the only source\n set and `deep` is unset, `deep` defaults to true for back-compat with\n queries authored before `deep` existed."},"folders":{"type":"array","items":{"type":"object","properties":{"rootEntityId":{"type":"string","description":"Opaque id of the entity the folder hierarchy hangs under — an integration\n root or container (for example a warehouse instance, a database, or a\n transformation project). Take it verbatim from `FolderRef.root_entity_id`\n of a folder you already read, or from an entity id returned elsewhere."},"folders":{"type":"array","items":{"type":"string"},"description":"Ordered folder names from the root down to this folder (root first, leaf\n last), for example [\"staging\", \"sales\"]. Empty means the ref points at the\n root entity itself. Folder names are kept as separate segments (not joined\n with \"/\") because some platforms allow \"/\" inside a single folder name."}},"title":"FolderRef","additionalProperties":false,"description":"FolderRef is the human-friendly, structured address of a folder: the entity it\n hangs under (`root_entity_id`) plus the ordered folder names from that root\n down to the folder (`folders`).\n\n It is the stable way to name a folder across responses. Prefer it over the\n opaque folder entity id when you want to log, display, or reconstruct a\n location — the segments are the same names a user sees in the catalog, and\n they survive changes to the underlying id encoding.\n\n A `FolderRef` with an empty `folders` list names the root entity itself (a\n top-level integration or container the hierarchy hangs from).\n\n This type lives in `synq.entities.v1` (rather than a folder-specific package)\n so it can be shared by both the folders navigation API and the query API\n without an import cycle."},"description":"Structured, human-authorable folder addresses (root entity + folder-name\n segments). Take a `FolderRef` verbatim from a folder returned by the folders\n navigation API, or build one from names you can see in the catalog."},"folderOf":{"type":"object","properties":{"entityIds":{"type":"array","items":{"type":"string"},"description":"Simplified source: the assets named directly by opaque entity id. Use this\n for the common \"same folder as these specific assets\" case; equivalent to an\n input_query that lists the same ids."},"inputQuery":{"type":"object","properties":{"parts":{"type":"array","items":{"oneOf":[{"type":"object","title":"entity_ids","required":["entityIds"],"properties":{"entityIds":{"type":"object","properties":{"entityIds":{"type":"array","items":{"type":"string","maxLength":1024,"minLength":1},"description":"The entities to select. An id may not be blank.\n\n An empty list selects no entities, exactly as an empty `identifier_list`\n does. Be deliberate about it, because it is not the same as leaving the part\n out: a part that selects nothing still counts, so it empties an AND, adds\n nothing to an OR, and removes nothing from an EXCEPT. If what you mean is\n \"do not restrict on specific entities\", omit the part instead of sending it\n empty.\n\n Ids may be up to 1024 characters — the same limit as `Identifier.entity_id`,\n where you read them from, so any id the API returned is accepted here."}},"title":"entity_ids","additionalProperties":false,"description":"Pin specific entities by the ids the API returned for them. Read back as\n `identifier_list`, with each id on the identifier it names.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"identifier_list","required":["identifierList"],"properties":{"identifierList":{"type":"object","properties":{"identifiers":{"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},"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}]}}},"title":"identifier_list","additionalProperties":false,"description":"Resolves to entities matching any of the given identifiers.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"identities_of","required":["identitiesOf"],"properties":{"identitiesOf":{"type":"object","properties":{"inputQuery":{"$circularRef":"5b88d704-2a2e-4c1a-837b-99543d863e65","description":"The assets whose identities to resolve. Required.","isRequired":true},"limitToTypes":{"type":"array","items":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true}},"additionalProperties":false},{"type":"object","title":"default","required":["default"],"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true}},"additionalProperties":false}]},"description":"Restrict the result to these types. When empty, only the other members of\n each identity group are returned. When set, an input asset that already has\n one of these types is returned as well."}},"title":"identities_of","required":["inputQuery"],"additionalProperties":false,"description":"Resolves to the identities of whatever the inner query matches.\n\n The same real-world table is often described by several assets — a\n transformation model and the warehouse table it materialises into are one\n asset with several representations. Those representations form an identity\n group. IdentitiesOf takes the assets matched by `input_query` and returns\n their identity groups, so a selection made in one platform's terms also\n covers the equivalent assets in every other platform.\n\n The typical use is subtraction: \"this warehouse database, except whatever my\n transformation tool already owns\" is an EXCEPT whose removal clause is an\n IdentitiesOf over the transformation models. Without it the two selections\n overlap on every materialised table.\nidentities_of.input_query_selects_something // identities_of requires an input_query with at least one part\n","isRequired":true}},"additionalProperties":false},{"type":"object","title":"in_data_platform","required":["inDataPlatform"],"properties":{"inDataPlatform":{"type":"object","properties":{"identifier":{"oneOf":[{"type":"object","title":"athena","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["athena"],"properties":{"athena":{"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 by Coalesce Quality 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}},"title":"athena","required":["instance","catalog"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"bigquery","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["bigquery"],"properties":{"bigquery":{"type":"object","properties":{"project":{"type":"string","description":"BigQuery project","isRequired":true}},"title":"bigquery","required":["project"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"clickhouse","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["clickhouse"],"properties":{"clickhouse":{"type":"object","properties":{"host":{"type":"string","description":"Clickhouse host inclusive of port","isRequired":true},"schema":{"type":"string","description":"Clickhouse database","isRequired":true}},"title":"clickhouse","required":["host","schema"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"databricks","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["databricks"],"properties":{"databricks":{"type":"object","properties":{"workspace":{"type":"string","description":"URL of the databricks workspace","isRequired":true}},"title":"databricks","required":["workspace"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"db2","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["db2"],"properties":{"db2":{"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}},"title":"db2","required":["host","database"],"additionalProperties":false,"description":"IBM Db2 for Linux, UNIX and Windows. An integration connects to one\n database, so host and database together identify it.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"dbt_cloud","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["dbtCloud"],"properties":{"dbtCloud":{"type":"object","properties":{"apiEndpoint":{"type":"string","description":"API endpoint for Dbt Cloud","isRequired":true},"accountId":{"type":"string","description":"Account ID","isRequired":true},"projectId":{"type":"string","description":"Project ID","isRequired":true}},"title":"dbt_cloud","required":["apiEndpoint","accountId","projectId"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"duckdb","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["duckdb"],"properties":{"duckdb":{"type":"object","properties":{"motherduckAccount":{"type":"string"}},"title":"duckdb","additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"fabric","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["fabric"],"properties":{"fabric":{"type":"object","properties":{"instance":{"type":"string","description":"Workspace SQL analytics endpoint host, e.g.\n \"\u003cworkspace-id>.datawarehouse.fabric.microsoft.com\". Identifies the Fabric\n workspace the integration connects to. Fabric is workspace-scoped with\n cross-database queries, so the workspace host alone identifies the platform\n (like Databricks' workspace URL); a specific warehouse/table is addressed by\n FabricTableIdentifier.","isRequired":true},"workspaceId":{"type":"string","description":"Fabric workspace GUID — the identifier used by the Fabric REST API for\n workspace-scoped resources. The Fabric endpoint host in `instance` encodes\n the tenant and workspace GUIDs; this is the decoded workspace GUID, provided\n so you don't have to decode it yourself. `instance` remains the identifying\n value. Optional: empty when the host isn't a standard Fabric endpoint."},"tenantId":{"type":"string","description":"Entra (Azure AD) tenant GUID, decoded from the endpoint host in `instance`\n alongside workspace_id. Optional: empty when the host isn't a standard\n Fabric endpoint."}},"title":"fabric","required":["instance"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"mssql","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["mssql"],"properties":{"mssql":{"type":"object","properties":{"host":{"type":"string","description":"SQL Server host","isRequired":true},"database":{"type":"string","description":"Database name","isRequired":true}},"title":"mssql","required":["host","database"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"mysql","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["mysql"],"properties":{"mysql":{"type":"object","properties":{"host":{"type":"string","description":"Mysql host inclusive of port","isRequired":true}},"title":"mysql","required":["host"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"oracle","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["oracle"],"properties":{"oracle":{"type":"object","properties":{"host":{"type":"string","description":"Oracle host","isRequired":true},"serviceName":{"type":"string","description":"Oracle service name (PDB)","isRequired":true}},"title":"oracle","required":["host","serviceName"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"postgres","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["postgres"],"properties":{"postgres":{"type":"object","properties":{"host":{"type":"string","description":"Postgres host inclusive of port","isRequired":true},"database":{"type":"string","description":"Postgres database","isRequired":true}},"title":"postgres","required":["host","database"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"redshift","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["redshift"],"properties":{"redshift":{"type":"object","properties":{"cluster":{"type":"string","description":"Redshift cluster","isRequired":true},"database":{"type":"string","description":"Redshift database","isRequired":true}},"title":"redshift","required":["cluster","database"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"snowflake","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["snowflake"],"properties":{"snowflake":{"type":"object","properties":{"account":{"type":"string","description":"Snowflake account","isRequired":true},"database":{"type":"string","description":"Snowflake database","isRequired":true}},"title":"snowflake","required":["account","database"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"sql_mesh","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["sqlMesh"],"properties":{"sqlMesh":{"type":"object","properties":{"defaultDatabaseInstance":{"type":"string","description":"Default database instance for SQL Mesh","isRequired":true}},"title":"sql_mesh","required":["defaultDatabaseInstance"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"synq_integration_id","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["synqIntegrationId"],"properties":{"synqIntegrationId":{"type":"string","title":"synq_integration_id","description":"Coalesce Quality integration ID maps to the created integration on the Coalesce Quality platform.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"trino","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["trino"],"properties":{"trino":{"type":"object","properties":{"coordinator":{"type":"string"}},"title":"trino","additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"unknown","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["unknown"],"properties":{"unknown":{"type":"object","title":"unknown","additionalProperties":false,"isRequired":true}},"additionalProperties":false}]}},"title":"in_data_platform","additionalProperties":false,"description":"Resolves to all entities that belong to the given data platform.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"in_dataproduct","required":["inDataproduct"],"properties":{"inDataproduct":{"type":"object","properties":{"identifier":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Dataproduct id that identifies the Dataproduct","isRequired":true}},"title":"DataproductIdentifier","required":["id"],"additionalProperties":false}},"title":"in_dataproduct","additionalProperties":false,"description":"Resolves to all the assets that belong to the given data product.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"in_domain","required":["inDomain"],"properties":{"inDomain":{"type":"object","properties":{"domainId":{"type":"string","format":"uuid"}},"title":"in_domain","additionalProperties":false,"description":"Resolves to all entities in the given data domain.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"in_folder","required":["inFolder"],"properties":{"inFolder":{"oneOf":[{"title":"in_folder","isRequired":true}],"isRequired":true}},"additionalProperties":false},{"type":"object","title":"query","required":["query"],"properties":{"query":{"$circularRef":"5b88d704-2a2e-4c1a-837b-99543d863e65","title":"query","description":"Nested sub-query, enabling recursive composition of filters and operands.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"unsupported","required":["unsupported"],"properties":{"unsupported":{"type":"object","properties":{"queryJson":{"type":"string"}},"title":"unsupported","additionalProperties":false,"description":"Read-only. Represents internal query types that cannot be expressed in the public API.\n Do not construct these directly — they are returned when translating from internal queries.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"with_annotation","required":["withAnnotation"],"properties":{"withAnnotation":{"type":"object","properties":{"name":{"type":"string"},"acceptedValue":{"oneOf":[{"type":"string","deprecated":true},{"type":"null","deprecated":true}]},"acceptedValues":{"type":"array","items":{"type":"string"}}},"title":"with_annotation","additionalProperties":false,"description":"Resolves to all entities that contain the annotation with at least one of the provided accepted values.\n In case of no given accepted values, all entities that carry the given annotation are returned.\n The name and the values match case-insensitively.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"with_data_platform_type","required":["withDataPlatformType"],"properties":{"withDataPlatformType":{"type":"object","properties":{"types":{"type":"array","items":{"type":"string","title":"DataPlatformType","enum":["DATA_PLATFORM_TYPE_UNSPECIFIED","DATA_PLATFORM_TYPE_BIGQUERY","DATA_PLATFORM_TYPE_LOOKER","DATA_PLATFORM_TYPE_DBT","DATA_PLATFORM_TYPE_DBT_CLOUD","DATA_PLATFORM_TYPE_DBT_SELF_HOSTED","DATA_PLATFORM_TYPE_SNOWFLAKE","DATA_PLATFORM_TYPE_GCP","DATA_PLATFORM_TYPE_GIT","DATA_PLATFORM_TYPE_GITHUB","DATA_PLATFORM_TYPE_REDSHIFT","DATA_PLATFORM_TYPE_TABLEAU","DATA_PLATFORM_TYPE_AIRFLOW","DATA_PLATFORM_TYPE_CLICKHOUSE","DATA_PLATFORM_TYPE_POSTGRES","DATA_PLATFORM_TYPE_MYSQL","DATA_PLATFORM_TYPE_DATABRICKS","DATA_PLATFORM_TYPE_SQLMESH","DATA_PLATFORM_TYPE_DUCKDB","DATA_PLATFORM_TYPE_TRINO","DATA_PLATFORM_TYPE_ATLAN","DATA_PLATFORM_TYPE_COALESCE","DATA_PLATFORM_TYPE_CASTORDOC","DATA_PLATFORM_TYPE_FIVETRAN","DATA_PLATFORM_TYPE_DAGSTER","DATA_PLATFORM_TYPE_AIRBYTE","DATA_PLATFORM_TYPE_STITCH","DATA_PLATFORM_TYPE_SNOWPLOW","DATA_PLATFORM_TYPE_POWERBI","DATA_PLATFORM_TYPE_THOUGHTSPOT","DATA_PLATFORM_TYPE_SIGMA","DATA_PLATFORM_TYPE_DOMO","DATA_PLATFORM_TYPE_MSSQL","DATA_PLATFORM_TYPE_ORACLE","DATA_PLATFORM_TYPE_ATHENA","DATA_PLATFORM_TYPE_FABRIC","DATA_PLATFORM_TYPE_DB2","DATA_PLATFORM_TYPE_LOOKER_STUDIO","DATA_PLATFORM_TYPE_HEX","DATA_PLATFORM_TYPE_OMNI","DATA_PLATFORM_TYPE_METABASE","DATA_PLATFORM_TYPE_GOOGLE_SHEETS","DATA_PLATFORM_TYPE_GRAFANA","DATA_PLATFORM_TYPE_STREAMLIT","DATA_PLATFORM_TYPE_ASTRATO","DATA_PLATFORM_TYPE_SNOWFLAKE_CORTEX","DATA_PLATFORM_TYPE_SNOWFLAKE_INTELLIGENCE","DATA_PLATFORM_TYPE_CUBE","DATA_PLATFORM_TYPE_CENSUS","DATA_PLATFORM_TYPE_HIGHTOUCH","DATA_PLATFORM_TYPE_WORKATO","DATA_PLATFORM_TYPE_ESTUARY","DATA_PLATFORM_TYPE_DLT","DATA_PLATFORM_TYPE_TERRAFORM","DATA_PLATFORM_TYPE_HEVO","DATA_PLATFORM_TYPE_DATASTREAM","DATA_PLATFORM_TYPE_QLIK","DATA_PLATFORM_TYPE_SALESFORCE","DATA_PLATFORM_TYPE_SYNQ"]}}},"title":"with_data_platform_type","additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"with_default_visible_types","required":["withDefaultVisibleTypes"],"properties":{"withDefaultVisibleTypes":{"type":"object","title":"with_default_visible_types","additionalProperties":false,"description":"Resolves to every asset of a type the catalog shows by default — the\n \"everything\" starting set.\n\n Use it as the base of a subtraction, e.g. an EXCEPT query whose first part is\n WithDefaultVisibleTypes and whose second part is what to leave out. On its own\n it selects the whole catalog, so it is rarely useful as the only part of a\n query.\n\n \"Default visible\" excludes the supporting asset types the catalog hides unless\n asked for (columns, tests, and similar), so this is not literally every entity.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"with_name_search","required":["withNameSearch"],"properties":{"withNameSearch":{"type":"object","properties":{"searchQuery":{"type":"string"}},"title":"with_name_search","additionalProperties":false,"description":"Resolves to all entities matching the given name search.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"with_type","required":["withType"],"properties":{"withType":{"type":"object","properties":{"type":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"deprecated":true,"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true}},"additionalProperties":false},{"type":"object","title":"default","required":["default"],"deprecated":true,"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true}},"additionalProperties":false}]},"types":{"type":"array","items":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true}},"additionalProperties":false},{"type":"object","title":"default","required":["default"],"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true}},"additionalProperties":false}]}},"traits":{"type":"array","items":{"type":"string"},"description":"Traits to select by, instead of — or alongside — naming types.\n\n A trait is a property a type has, so `is_monitorable` means \"everything a\n monitor can run on\" without listing the forty-odd types that satisfy it\n today. The list it stands for is worked out each time the selection runs,\n so a selection saved this way covers a new platform's tables as soon as we\n support them, and you never have to revisit it.\n\n Entities carrying any of the traits match. When `types` is also set the two\n narrow each other: the entity must be one of the named types AND carry one\n of the traits.\n\n Accepted values, and what each one means, come from the selection-query\n grammar the API publishes (`describe_resolver_ql`, or the query editor's\n reference). A name that is not in it selects nothing rather than being\n ignored, so a typo narrows the result to empty instead of widening it —\n check a trait against the grammar before storing a selection. In a query\n written as text this is `with_type(traits=\"is_monitorable\")`, and there a\n name outside the grammar is rejected outright.\n\n A trait may also be a type alias, spelled `alias:\u003cname>` where `\u003cname>` is\n one of the aliases the grammar lists among the entity types, e.g.\n `alias:table`. It selects every type the alias stands for, worked out each\n time the selection runs like any other trait. A selection written as\n `with_type(\"table\")` is stored this way and reads back with\n `traits: [\"alias:table\"]`; writing that back keeps the same selection. In a\n query written as text an alias is always `with_type(\"table\")`, never\n `traits=\"alias:table\"`."}},"title":"with_type","additionalProperties":false,"description":"Resolves to all the entities that have the provided type, or carry one of the\n provided traits.","isRequired":true}},"additionalProperties":false}]}},"operand":{"type":"string","title":"QueryOperand","enum":["QUERY_OPERAND_UNSPECIFIED","QUERY_OPERAND_AND","QUERY_OPERAND_OR","QUERY_OPERAND_EXCEPT","QUERY_OPERAND_UPSTREAM","QUERY_OPERAND_DOWNSTREAM"],"description":"Defaults to AND if not specified."}},"title":"Query","additionalProperties":false,"description":"General source: resolve the folder(s) of whatever assets this query matches\n (e.g. a name or type filter). Use when the assets can't be listed up front."},"includeAllAncestors":{"type":"boolean","description":"When false (default): only each asset's immediate parent folder. When true:\n every ancestor folder up the hierarchy, so `InFolder` then also matches\n assets in those ancestor folders."}},"title":"FolderOf","additionalProperties":false,"description":"Resolve the folders to search from a set of assets, rather than naming them.\n Selects everything in the folder(s) that contain those assets."},"deep":{"oneOf":[{"type":"boolean","description":"When false or unset, matches only the direct members of the folder(s). When\n true, matches the entire recursive subtree (members of subfolders too).\n\n Exception: when only the legacy `path` source is set and `deep` is unset,\n it defaults to true (preserves the behaviour of queries authored before this\n flag existed). With `folders` or `folder_of`, unset means false (shallow)."},{"type":"null","description":"When false or unset, matches only the direct members of the folder(s). When\n true, matches the entire recursive subtree (members of subfolders too).\n\n Exception: when only the legacy `path` source is set and `deep` is unset,\n it defaults to true (preserves the behaviour of queries authored before this\n flag existed). With `folders` or `folder_of`, unset means false (shallow)."}]}},"title":"InFolder","additionalProperties":false,"description":"Resolves to entities located in one or more folders.\n\n Give the folders exactly one way (they are mutually exclusive; if more than\n one is set, `folders` wins, then `folder_of`, then `path`):\n - `folders` — the preferred, human-authorable form: name each folder by\n its root entity plus its ordered folder-name segments. No\n opaque ids required.\n - `folder_of` — \"the same folder(s) as these assets\": resolves the folder(s)\n containing the assets matched by an inner query, then matches\n everything in them. Lets you select siblings without naming a\n folder.\n - `path` — legacy opaque folder identifiers. Kept for back-compat;\n prefer `folders`. Discover a folder's structured address\n with the folders navigation API instead of hand-writing an id.\n\n `deep` controls recursion (see its field comment).\n\n InFolder lives here rather than in query_parts.proto because FolderOf nests a\n full Query, which would make query_parts.proto import query.proto and form a\n proto file import cycle.\nin_folder.exactly_one_source // set exactly one of path, folders, or folder_of\n"},"eb47fa5a-82ed-44fd-8b72-4d20a1d798fe":{"type":"object","properties":{"parts":{"type":"array","items":{"oneOf":[{"type":"object","title":"entity_ids","required":["entityIds"],"properties":{"entityIds":{"type":"object","properties":{"entityIds":{"type":"array","items":{"type":"string","maxLength":1024,"minLength":1},"description":"The entities to select. An id may not be blank.\n\n An empty list selects no entities, exactly as an empty `identifier_list`\n does. Be deliberate about it, because it is not the same as leaving the part\n out: a part that selects nothing still counts, so it empties an AND, adds\n nothing to an OR, and removes nothing from an EXCEPT. If what you mean is\n \"do not restrict on specific entities\", omit the part instead of sending it\n empty.\n\n Ids may be up to 1024 characters — the same limit as `Identifier.entity_id`,\n where you read them from, so any id the API returned is accepted here."}},"title":"entity_ids","additionalProperties":false,"description":"Deploy monitors on specific entities, named by the ids the API returned\n for them. Read back as `identifier_list`, with each id on the identifier\n it names.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"identifier_list","required":["identifierList"],"properties":{"identifierList":{"type":"object","properties":{"identifiers":{"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},"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}]}}},"title":"identifier_list","additionalProperties":false,"description":"Resolves to entities matching any of the given identifiers.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"in_folder","required":["inFolder"],"properties":{"inFolder":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string"},"description":"Opaque folder identifiers (a folder's own entity id). `folders` is the\n structured, human-authorable alternative. When `path` is the only source\n set and `deep` is unset, `deep` defaults to true for back-compat with\n queries authored before `deep` existed."},"folders":{"type":"array","items":{"type":"object","properties":{"rootEntityId":{"type":"string","description":"Opaque id of the entity the folder hierarchy hangs under — an integration\n root or container (for example a warehouse instance, a database, or a\n transformation project). Take it verbatim from `FolderRef.root_entity_id`\n of a folder you already read, or from an entity id returned elsewhere."},"folders":{"type":"array","items":{"type":"string"},"description":"Ordered folder names from the root down to this folder (root first, leaf\n last), for example [\"staging\", \"sales\"]. Empty means the ref points at the\n root entity itself. Folder names are kept as separate segments (not joined\n with \"/\") because some platforms allow \"/\" inside a single folder name."}},"title":"FolderRef","additionalProperties":false,"description":"FolderRef is the human-friendly, structured address of a folder: the entity it\n hangs under (`root_entity_id`) plus the ordered folder names from that root\n down to the folder (`folders`).\n\n It is the stable way to name a folder across responses. Prefer it over the\n opaque folder entity id when you want to log, display, or reconstruct a\n location — the segments are the same names a user sees in the catalog, and\n they survive changes to the underlying id encoding.\n\n A `FolderRef` with an empty `folders` list names the root entity itself (a\n top-level integration or container the hierarchy hangs from).\n\n This type lives in `synq.entities.v1` (rather than a folder-specific package)\n so it can be shared by both the folders navigation API and the query API\n without an import cycle."},"description":"Structured, human-authorable folder addresses (root entity + folder-name\n segments). Take a `FolderRef` verbatim from a folder returned by the folders\n navigation API, or build one from names you can see in the catalog."},"folderOf":{"type":"object","properties":{"entityIds":{"type":"array","items":{"type":"string"},"description":"Simplified source: the assets named directly by opaque entity id. Use this\n for the common \"same folder as these specific assets\" case; equivalent to an\n input_query that lists the same ids."},"inputQuery":{"type":"object","properties":{"parts":{"type":"array","items":{"oneOf":[{"type":"object","title":"entity_ids","required":["entityIds"],"properties":{"entityIds":{"type":"object","properties":{"entityIds":{"type":"array","items":{"type":"string","maxLength":1024,"minLength":1},"description":"The entities to select. An id may not be blank.\n\n An empty list selects no entities, exactly as an empty `identifier_list`\n does. Be deliberate about it, because it is not the same as leaving the part\n out: a part that selects nothing still counts, so it empties an AND, adds\n nothing to an OR, and removes nothing from an EXCEPT. If what you mean is\n \"do not restrict on specific entities\", omit the part instead of sending it\n empty.\n\n Ids may be up to 1024 characters — the same limit as `Identifier.entity_id`,\n where you read them from, so any id the API returned is accepted here."}},"title":"entity_ids","additionalProperties":false,"description":"Pin specific entities by the ids the API returned for them. Read back as\n `identifier_list`, with each id on the identifier it names.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"identifier_list","required":["identifierList"],"properties":{"identifierList":{"type":"object","properties":{"identifiers":{"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},"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":{"type":"any"},"integrationId":{"type":"any"}},"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}]}}},"title":"identifier_list","additionalProperties":false,"description":"Resolves to entities matching any of the given identifiers.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"identities_of","required":["identitiesOf"],"properties":{"identitiesOf":{"type":"object","properties":{"inputQuery":{"$circularRef":"5b88d704-2a2e-4c1a-837b-99543d863e65","description":"The assets whose identities to resolve. Required.","isRequired":true},"limitToTypes":{"type":"array","items":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true}},"additionalProperties":false},{"type":"object","title":"default","required":["default"],"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true}},"additionalProperties":false}]},"description":"Restrict the result to these types. When empty, only the other members of\n each identity group are returned. When set, an input asset that already has\n one of these types is returned as well."}},"title":"identities_of","required":["inputQuery"],"additionalProperties":false,"description":"Resolves to the identities of whatever the inner query matches.\n\n The same real-world table is often described by several assets — a\n transformation model and the warehouse table it materialises into are one\n asset with several representations. Those representations form an identity\n group. IdentitiesOf takes the assets matched by `input_query` and returns\n their identity groups, so a selection made in one platform's terms also\n covers the equivalent assets in every other platform.\n\n The typical use is subtraction: \"this warehouse database, except whatever my\n transformation tool already owns\" is an EXCEPT whose removal clause is an\n IdentitiesOf over the transformation models. Without it the two selections\n overlap on every materialised table.\nidentities_of.input_query_selects_something // identities_of requires an input_query with at least one part\n","isRequired":true}},"additionalProperties":false},{"type":"object","title":"in_data_platform","required":["inDataPlatform"],"properties":{"inDataPlatform":{"type":"object","properties":{"identifier":{"oneOf":[{"type":"object","title":"athena","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["athena"],"properties":{"athena":{"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 by Coalesce Quality 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}},"title":"athena","required":["instance","catalog"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"bigquery","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["bigquery"],"properties":{"bigquery":{"type":"object","properties":{"project":{"type":"string","description":"BigQuery project","isRequired":true}},"title":"bigquery","required":["project"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"clickhouse","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["clickhouse"],"properties":{"clickhouse":{"type":"object","properties":{"host":{"type":"string","description":"Clickhouse host inclusive of port","isRequired":true},"schema":{"type":"string","description":"Clickhouse database","isRequired":true}},"title":"clickhouse","required":["host","schema"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"databricks","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["databricks"],"properties":{"databricks":{"type":"object","properties":{"workspace":{"type":"string","description":"URL of the databricks workspace","isRequired":true}},"title":"databricks","required":["workspace"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"db2","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["db2"],"properties":{"db2":{"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}},"title":"db2","required":["host","database"],"additionalProperties":false,"description":"IBM Db2 for Linux, UNIX and Windows. An integration connects to one\n database, so host and database together identify it.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"dbt_cloud","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["dbtCloud"],"properties":{"dbtCloud":{"type":"object","properties":{"apiEndpoint":{"type":"string","description":"API endpoint for Dbt Cloud","isRequired":true},"accountId":{"type":"string","description":"Account ID","isRequired":true},"projectId":{"type":"string","description":"Project ID","isRequired":true}},"title":"dbt_cloud","required":["apiEndpoint","accountId","projectId"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"duckdb","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["duckdb"],"properties":{"duckdb":{"type":"object","properties":{"motherduckAccount":{"type":"string"}},"title":"duckdb","additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"fabric","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["fabric"],"properties":{"fabric":{"type":"object","properties":{"instance":{"type":"string","description":"Workspace SQL analytics endpoint host, e.g.\n \"\u003cworkspace-id>.datawarehouse.fabric.microsoft.com\". Identifies the Fabric\n workspace the integration connects to. Fabric is workspace-scoped with\n cross-database queries, so the workspace host alone identifies the platform\n (like Databricks' workspace URL); a specific warehouse/table is addressed by\n FabricTableIdentifier.","isRequired":true},"workspaceId":{"type":"string","description":"Fabric workspace GUID — the identifier used by the Fabric REST API for\n workspace-scoped resources. The Fabric endpoint host in `instance` encodes\n the tenant and workspace GUIDs; this is the decoded workspace GUID, provided\n so you don't have to decode it yourself. `instance` remains the identifying\n value. Optional: empty when the host isn't a standard Fabric endpoint."},"tenantId":{"type":"string","description":"Entra (Azure AD) tenant GUID, decoded from the endpoint host in `instance`\n alongside workspace_id. Optional: empty when the host isn't a standard\n Fabric endpoint."}},"title":"fabric","required":["instance"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"mssql","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["mssql"],"properties":{"mssql":{"type":"object","properties":{"host":{"type":"string","description":"SQL Server host","isRequired":true},"database":{"type":"string","description":"Database name","isRequired":true}},"title":"mssql","required":["host","database"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"mysql","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["mysql"],"properties":{"mysql":{"type":"object","properties":{"host":{"type":"string","description":"Mysql host inclusive of port","isRequired":true}},"title":"mysql","required":["host"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"oracle","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["oracle"],"properties":{"oracle":{"type":"object","properties":{"host":{"type":"string","description":"Oracle host","isRequired":true},"serviceName":{"type":"string","description":"Oracle service name (PDB)","isRequired":true}},"title":"oracle","required":["host","serviceName"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"postgres","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["postgres"],"properties":{"postgres":{"type":"object","properties":{"host":{"type":"string","description":"Postgres host inclusive of port","isRequired":true},"database":{"type":"string","description":"Postgres database","isRequired":true}},"title":"postgres","required":["host","database"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"redshift","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["redshift"],"properties":{"redshift":{"type":"object","properties":{"cluster":{"type":"string","description":"Redshift cluster","isRequired":true},"database":{"type":"string","description":"Redshift database","isRequired":true}},"title":"redshift","required":["cluster","database"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"snowflake","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["snowflake"],"properties":{"snowflake":{"type":"object","properties":{"account":{"type":"string","description":"Snowflake account","isRequired":true},"database":{"type":"string","description":"Snowflake database","isRequired":true}},"title":"snowflake","required":["account","database"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"sql_mesh","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["sqlMesh"],"properties":{"sqlMesh":{"type":"object","properties":{"defaultDatabaseInstance":{"type":"string","description":"Default database instance for SQL Mesh","isRequired":true}},"title":"sql_mesh","required":["defaultDatabaseInstance"],"additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"synq_integration_id","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["synqIntegrationId"],"properties":{"synqIntegrationId":{"type":"string","title":"synq_integration_id","description":"Coalesce Quality integration ID maps to the created integration on the Coalesce Quality platform.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"trino","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["trino"],"properties":{"trino":{"type":"object","properties":{"coordinator":{"type":"string"}},"title":"trino","additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"unknown","description":"DataPlatformIdentifier is a unique reference to a data platform integrated with Coalesce Quality.","required":["unknown"],"properties":{"unknown":{"type":"object","title":"unknown","additionalProperties":false,"isRequired":true}},"additionalProperties":false}]}},"title":"in_data_platform","additionalProperties":false,"description":"Resolves to all entities that belong to the given data platform.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"in_dataproduct","required":["inDataproduct"],"properties":{"inDataproduct":{"type":"object","properties":{"identifier":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Dataproduct id that identifies the Dataproduct","isRequired":true}},"title":"DataproductIdentifier","required":["id"],"additionalProperties":false}},"title":"in_dataproduct","additionalProperties":false,"description":"Resolves to all the assets that belong to the given data product.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"in_domain","required":["inDomain"],"properties":{"inDomain":{"type":"object","properties":{"domainId":{"type":"string","format":"uuid"}},"title":"in_domain","additionalProperties":false,"description":"Resolves to all entities in the given data domain.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"in_folder","required":["inFolder"],"properties":{"inFolder":{"oneOf":[{"title":"in_folder","isRequired":true}],"isRequired":true}},"additionalProperties":false},{"type":"object","title":"query","required":["query"],"properties":{"query":{"$circularRef":"5b88d704-2a2e-4c1a-837b-99543d863e65","title":"query","description":"Nested sub-query, enabling recursive composition of filters and operands.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"unsupported","required":["unsupported"],"properties":{"unsupported":{"type":"object","properties":{"queryJson":{"type":"string"}},"title":"unsupported","additionalProperties":false,"description":"Read-only. Represents internal query types that cannot be expressed in the public API.\n Do not construct these directly — they are returned when translating from internal queries.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"with_annotation","required":["withAnnotation"],"properties":{"withAnnotation":{"type":"object","properties":{"name":{"type":"string"},"acceptedValue":{"oneOf":[{"type":"string","deprecated":true},{"type":"null","deprecated":true}]},"acceptedValues":{"type":"array","items":{"type":"string"}}},"title":"with_annotation","additionalProperties":false,"description":"Resolves to all entities that contain the annotation with at least one of the provided accepted values.\n In case of no given accepted values, all entities that carry the given annotation are returned.\n The name and the values match case-insensitively.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"with_data_platform_type","required":["withDataPlatformType"],"properties":{"withDataPlatformType":{"type":"object","properties":{"types":{"type":"array","items":{"type":"string","title":"DataPlatformType","enum":["DATA_PLATFORM_TYPE_UNSPECIFIED","DATA_PLATFORM_TYPE_BIGQUERY","DATA_PLATFORM_TYPE_LOOKER","DATA_PLATFORM_TYPE_DBT","DATA_PLATFORM_TYPE_DBT_CLOUD","DATA_PLATFORM_TYPE_DBT_SELF_HOSTED","DATA_PLATFORM_TYPE_SNOWFLAKE","DATA_PLATFORM_TYPE_GCP","DATA_PLATFORM_TYPE_GIT","DATA_PLATFORM_TYPE_GITHUB","DATA_PLATFORM_TYPE_REDSHIFT","DATA_PLATFORM_TYPE_TABLEAU","DATA_PLATFORM_TYPE_AIRFLOW","DATA_PLATFORM_TYPE_CLICKHOUSE","DATA_PLATFORM_TYPE_POSTGRES","DATA_PLATFORM_TYPE_MYSQL","DATA_PLATFORM_TYPE_DATABRICKS","DATA_PLATFORM_TYPE_SQLMESH","DATA_PLATFORM_TYPE_DUCKDB","DATA_PLATFORM_TYPE_TRINO","DATA_PLATFORM_TYPE_ATLAN","DATA_PLATFORM_TYPE_COALESCE","DATA_PLATFORM_TYPE_CASTORDOC","DATA_PLATFORM_TYPE_FIVETRAN","DATA_PLATFORM_TYPE_DAGSTER","DATA_PLATFORM_TYPE_AIRBYTE","DATA_PLATFORM_TYPE_STITCH","DATA_PLATFORM_TYPE_SNOWPLOW","DATA_PLATFORM_TYPE_POWERBI","DATA_PLATFORM_TYPE_THOUGHTSPOT","DATA_PLATFORM_TYPE_SIGMA","DATA_PLATFORM_TYPE_DOMO","DATA_PLATFORM_TYPE_MSSQL","DATA_PLATFORM_TYPE_ORACLE","DATA_PLATFORM_TYPE_ATHENA","DATA_PLATFORM_TYPE_FABRIC","DATA_PLATFORM_TYPE_DB2","DATA_PLATFORM_TYPE_LOOKER_STUDIO","DATA_PLATFORM_TYPE_HEX","DATA_PLATFORM_TYPE_OMNI","DATA_PLATFORM_TYPE_METABASE","DATA_PLATFORM_TYPE_GOOGLE_SHEETS","DATA_PLATFORM_TYPE_GRAFANA","DATA_PLATFORM_TYPE_STREAMLIT","DATA_PLATFORM_TYPE_ASTRATO","DATA_PLATFORM_TYPE_SNOWFLAKE_CORTEX","DATA_PLATFORM_TYPE_SNOWFLAKE_INTELLIGENCE","DATA_PLATFORM_TYPE_CUBE","DATA_PLATFORM_TYPE_CENSUS","DATA_PLATFORM_TYPE_HIGHTOUCH","DATA_PLATFORM_TYPE_WORKATO","DATA_PLATFORM_TYPE_ESTUARY","DATA_PLATFORM_TYPE_DLT","DATA_PLATFORM_TYPE_TERRAFORM","DATA_PLATFORM_TYPE_HEVO","DATA_PLATFORM_TYPE_DATASTREAM","DATA_PLATFORM_TYPE_QLIK","DATA_PLATFORM_TYPE_SALESFORCE","DATA_PLATFORM_TYPE_SYNQ"]}}},"title":"with_data_platform_type","additionalProperties":false,"isRequired":true}},"additionalProperties":false},{"type":"object","title":"with_default_visible_types","required":["withDefaultVisibleTypes"],"properties":{"withDefaultVisibleTypes":{"type":"object","title":"with_default_visible_types","additionalProperties":false,"description":"Resolves to every asset of a type the catalog shows by default — the\n \"everything\" starting set.\n\n Use it as the base of a subtraction, e.g. an EXCEPT query whose first part is\n WithDefaultVisibleTypes and whose second part is what to leave out. On its own\n it selects the whole catalog, so it is rarely useful as the only part of a\n query.\n\n \"Default visible\" excludes the supporting asset types the catalog hides unless\n asked for (columns, tests, and similar), so this is not literally every entity.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"with_name_search","required":["withNameSearch"],"properties":{"withNameSearch":{"type":"object","properties":{"searchQuery":{"type":"string"}},"title":"with_name_search","additionalProperties":false,"description":"Resolves to all entities matching the given name search.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"with_type","required":["withType"],"properties":{"withType":{"type":"object","properties":{"type":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"deprecated":true,"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true}},"additionalProperties":false},{"type":"object","title":"default","required":["default"],"deprecated":true,"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true}},"additionalProperties":false}]},"types":{"type":"array","items":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true}},"additionalProperties":false},{"type":"object","title":"default","required":["default"],"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true}},"additionalProperties":false}]}},"traits":{"type":"array","items":{"type":"string"},"description":"Traits to select by, instead of — or alongside — naming types.\n\n A trait is a property a type has, so `is_monitorable` means \"everything a\n monitor can run on\" without listing the forty-odd types that satisfy it\n today. The list it stands for is worked out each time the selection runs,\n so a selection saved this way covers a new platform's tables as soon as we\n support them, and you never have to revisit it.\n\n Entities carrying any of the traits match. When `types` is also set the two\n narrow each other: the entity must be one of the named types AND carry one\n of the traits.\n\n Accepted values, and what each one means, come from the selection-query\n grammar the API publishes (`describe_resolver_ql`, or the query editor's\n reference). A name that is not in it selects nothing rather than being\n ignored, so a typo narrows the result to empty instead of widening it —\n check a trait against the grammar before storing a selection. In a query\n written as text this is `with_type(traits=\"is_monitorable\")`, and there a\n name outside the grammar is rejected outright.\n\n A trait may also be a type alias, spelled `alias:\u003cname>` where `\u003cname>` is\n one of the aliases the grammar lists among the entity types, e.g.\n `alias:table`. It selects every type the alias stands for, worked out each\n time the selection runs like any other trait. A selection written as\n `with_type(\"table\")` is stored this way and reads back with\n `traits: [\"alias:table\"]`; writing that back keeps the same selection. In a\n query written as text an alias is always `with_type(\"table\")`, never\n `traits=\"alias:table\"`."}},"title":"with_type","additionalProperties":false,"description":"Resolves to all the entities that have the provided type, or carry one of the\n provided traits.","isRequired":true}},"additionalProperties":false}]}},"operand":{"type":"string","title":"QueryOperand","enum":["QUERY_OPERAND_UNSPECIFIED","QUERY_OPERAND_AND","QUERY_OPERAND_OR","QUERY_OPERAND_EXCEPT","QUERY_OPERAND_UPSTREAM","QUERY_OPERAND_DOWNSTREAM"],"description":"Defaults to AND if not specified."}},"title":"Query","additionalProperties":false,"description":"General source: resolve the folder(s) of whatever assets this query matches\n (e.g. a name or type filter). Use when the assets can't be listed up front."},"includeAllAncestors":{"type":"boolean","description":"When false (default): only each asset's immediate parent folder. When true:\n every ancestor folder up the hierarchy, so `InFolder` then also matches\n assets in those ancestor folders."}},"title":"FolderOf","additionalProperties":false,"description":"Resolve the folders to search from a set of assets, rather than naming them.\n Selects everything in the folder(s) that contain those assets."},"deep":{"oneOf":[{"type":"boolean","description":"When false or unset, matches only the direct members of the folder(s). When\n true, matches the entire recursive subtree (members of subfolders too).\n\n Exception: when only the legacy `path` source is set and `deep` is unset,\n it defaults to true (preserves the behaviour of queries authored before this\n flag existed). With `folders` or `folder_of`, unset means false (shallow)."},{"type":"null","description":"When false or unset, matches only the direct members of the folder(s). When\n true, matches the entire recursive subtree (members of subfolders too).\n\n Exception: when only the legacy `path` source is set and `deep` is unset,\n it defaults to true (preserves the behaviour of queries authored before this\n flag existed). With `folders` or `folder_of`, unset means false (shallow)."}]}},"title":"in_folder","additionalProperties":false,"description":"synq.queries.v1.InDataPlatform in_data_platform = 5;","isRequired":true}},"additionalProperties":false},{"type":"object","title":"query","required":["query"],"properties":{"query":{"oneOf":[{"title":"query","isRequired":true}],"isRequired":true}},"additionalProperties":false},{"type":"object","title":"unsupported","required":["unsupported"],"properties":{"unsupported":{"type":"object","properties":{"queryJson":{"type":"string"}},"title":"unsupported","additionalProperties":false,"description":"Collects all the parts of the query that are currently unsupported in translation.\n These represent an internal structure that are not yet completely available on the API.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"with_annotation","required":["withAnnotation"],"properties":{"withAnnotation":{"type":"object","properties":{"name":{"type":"string"},"acceptedValue":{"oneOf":[{"type":"string","deprecated":true},{"type":"null","deprecated":true}]},"acceptedValues":{"type":"array","items":{"type":"string"}}},"title":"with_annotation","additionalProperties":false,"description":"Resolves to all entities that contain the annotation with at least one of the provided accepted values.\n In case of no given accepted values, all entities that carry the given annotation are returned.\n The name and the values match case-insensitively.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"with_name_search","required":["withNameSearch"],"properties":{"withNameSearch":{"type":"object","properties":{"searchQuery":{"type":"string"}},"title":"with_name_search","additionalProperties":false,"description":"Resolves to all entities matching the given name search.","isRequired":true}},"additionalProperties":false},{"type":"object","title":"with_type","required":["withType"],"properties":{"withType":{"type":"object","properties":{"type":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"deprecated":true,"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true}},"additionalProperties":false},{"type":"object","title":"default","required":["default"],"deprecated":true,"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true}},"additionalProperties":false}]},"types":{"type":"array","items":{"oneOf":[{"type":"object","title":"custom","required":["custom"],"properties":{"custom":{"type":"integer","title":"custom","format":"int32","description":"Custom types as defined through synq.entities.custom.v1.TypesService","isRequired":true}},"additionalProperties":false},{"type":"object","title":"default","required":["default"],"properties":{"default":{"type":"string","title":"default","enum":["ENTITY_TYPE_UNSPECIFIED","ENTITY_TYPE_BQ_TABLE","ENTITY_TYPE_BQ_VIEW","ENTITY_TYPE_BQ_PROCEDURE","ENTITY_TYPE_BQ_FUNCTION","ENTITY_TYPE_LOOKER_LOOK","ENTITY_TYPE_LOOKER_EXPLORE","ENTITY_TYPE_LOOKER_VIEW","ENTITY_TYPE_LOOKER_DASHBOARD","ENTITY_TYPE_LOOKER_INSTANCE","ENTITY_TYPE_DBT_MODEL","ENTITY_TYPE_DBT_TEST","ENTITY_TYPE_DBT_SOURCE","ENTITY_TYPE_DBT_PROJECT","ENTITY_TYPE_DBT_METRIC","ENTITY_TYPE_DBT_SNAPSHOT","ENTITY_TYPE_DBT_SEED","ENTITY_TYPE_DBT_ANALYSIS","ENTITY_TYPE_DBT_EXPOSURE","ENTITY_TYPE_DBT_GROUP","ENTITY_TYPE_DBT_SEMANTIC_MODEL","ENTITY_TYPE_DBT_CLOUD_PROJECT","ENTITY_TYPE_DBT_CLOUD_JOB","ENTITY_TYPE_SNOWFLAKE_TABLE","ENTITY_TYPE_SNOWFLAKE_VIEW","ENTITY_TYPE_SNOWFLAKE_STREAM","ENTITY_TYPE_SNOWFLAKE_DYNAMIC_TABLE","ENTITY_TYPE_SNOWFLAKE_TASK","ENTITY_TYPE_SNOWFLAKE_EXTERNAL_TABLE","ENTITY_TYPE_SNOWFLAKE_MATERIALIZED_VIEW","ENTITY_TYPE_SNOWFLAKE_PROCEDURE","ENTITY_TYPE_SNOWFLAKE_FUNCTION","ENTITY_TYPE_SNOWFLAKE_SEMANTIC_VIEW","ENTITY_TYPE_SNOWFLAKE_STAGE","ENTITY_TYPE_SNOWFLAKE_STREAMLIT","ENTITY_TYPE_SNOWFLAKE_NOTEBOOK","ENTITY_TYPE_SNOWFLAKE_WAREHOUSE","ENTITY_TYPE_SNOWFLAKE_PIPE","ENTITY_TYPE_SNOWFLAKE_CORTEX_SEARCH_SERVICE","ENTITY_TYPE_REDSHIFT_TABLE","ENTITY_TYPE_REDSHIFT_VIEW","ENTITY_TYPE_REDSHIFT_PROCEDURE","ENTITY_TYPE_REDSHIFT_FUNCTION","ENTITY_TYPE_TABLEAU_EMBEDDED","ENTITY_TYPE_TABLEAU_PUBLISHED","ENTITY_TYPE_TABLEAU_CUSTOM_SQL","ENTITY_TYPE_TABLEAU_TABLE","ENTITY_TYPE_TABLEAU_SHEET","ENTITY_TYPE_TABLEAU_DASHBOARD","ENTITY_TYPE_TABLEAU_WORKBOOK","ENTITY_TYPE_TABLEAU_SITE","ENTITY_TYPE_AIRFLOW_DAG","ENTITY_TYPE_AIRFLOW_TASK","ENTITY_TYPE_CLICKHOUSE_TABLE","ENTITY_TYPE_CLICKHOUSE_VIEW","ENTITY_TYPE_ANOMALY_MONITOR","ENTITY_TYPE_ANOMALY_MONITOR_SEGMENT","ENTITY_TYPE_SQLTEST_TEST","ENTITY_TYPE_RECON_SUITE","ENTITY_TYPE_RECON_CASE","ENTITY_TYPE_LINEAGE_FOLD","ENTITY_TYPE_POSTGRES_TABLE","ENTITY_TYPE_POSTGRES_VIEW","ENTITY_TYPE_MYSQL_TABLE","ENTITY_TYPE_MYSQL_VIEW","ENTITY_TYPE_DATABRICKS_WAREHOUSE","ENTITY_TYPE_DATABRICKS_TABLE","ENTITY_TYPE_DATABRICKS_VIEW","ENTITY_TYPE_DATABRICKS_JOB","ENTITY_TYPE_DATABRICKS_JOB_TASK","ENTITY_TYPE_DATABRICKS_NOTEBOOK","ENTITY_TYPE_DATABRICKS_QUERY","ENTITY_TYPE_DATABRICKS_DASHBOARD","ENTITY_TYPE_DATABRICKS_METRIC_VIEW","ENTITY_TYPE_DATABRICKS_APP","ENTITY_TYPE_SQLMESH_PROJECT","ENTITY_TYPE_SQLMESH_SQL_MODEL","ENTITY_TYPE_SQLMESH_PYTHON_MODEL","ENTITY_TYPE_SQLMESH_EXTERNAL","ENTITY_TYPE_SQLMESH_SEED","ENTITY_TYPE_SQLMESH_AUDIT","ENTITY_TYPE_SQLMESH_UNIT_TEST","ENTITY_TYPE_SQLMESH_ENVIRONMENT","ENTITY_TYPE_SQLMESH_SNAPSHOT","ENTITY_TYPE_DUCKDB_TABLE","ENTITY_TYPE_DUCKDB_VIEW","ENTITY_TYPE_TRINO_TABLE","ENTITY_TYPE_TRINO_VIEW","ENTITY_TYPE_ATLAN_ASSET","ENTITY_TYPE_ATLAN_INTEGRATION","ENTITY_TYPE_COALESCE_PROJECT","ENTITY_TYPE_COALESCE_ENVIRONMENT","ENTITY_TYPE_COALESCE_NODE","ENTITY_TYPE_COALESCE_NODE_TEST","ENTITY_TYPE_COALESCE_JOB","ENTITY_TYPE_CASTORDOC_TABLE","ENTITY_TYPE_CASTORDOC_DASHBOARD","ENTITY_TYPE_CASTORDOC_VIEW","ENTITY_TYPE_CASTORDOC_TILE","ENTITY_TYPE_CASTORDOC_VIZ_MODEL","ENTITY_TYPE_POWERBI_REPORT","ENTITY_TYPE_POWERBI_TILE","ENTITY_TYPE_POWERBI_DATASET","ENTITY_TYPE_POWERBI_DASHBOARD","ENTITY_TYPE_POWERBI_TENANT","ENTITY_TYPE_THOUGHTSPOT_LIVEBOARD","ENTITY_TYPE_THOUGHTSPOT_WORKSHEET","ENTITY_TYPE_SIGMA_WORKBOOK","ENTITY_TYPE_SIGMA_DATA_MODEL","ENTITY_TYPE_SIGMA_ORGANIZATION","ENTITY_TYPE_DOMO_PAGE","ENTITY_TYPE_DOMO_DATASET","ENTITY_TYPE_MSSQL_TABLE","ENTITY_TYPE_MSSQL_VIEW","ENTITY_TYPE_MSSQL_PROCEDURE","ENTITY_TYPE_MSSQL_FUNCTION","ENTITY_TYPE_ORACLE_TABLE","ENTITY_TYPE_ORACLE_VIEW","ENTITY_TYPE_ORACLE_PROCEDURE","ENTITY_TYPE_ORACLE_FUNCTION","ENTITY_TYPE_ATHENA_TABLE","ENTITY_TYPE_ATHENA_VIEW","ENTITY_TYPE_FABRIC_TABLE","ENTITY_TYPE_FABRIC_VIEW","ENTITY_TYPE_FABRIC_PROCEDURE","ENTITY_TYPE_FABRIC_FUNCTION","ENTITY_TYPE_DB2_TABLE","ENTITY_TYPE_DB2_VIEW","ENTITY_TYPE_DB2_PROCEDURE","ENTITY_TYPE_DB2_FUNCTION","ENTITY_TYPE_LOOKER_STUDIO_CUSTOMER","ENTITY_TYPE_LOOKER_STUDIO_REPORT","ENTITY_TYPE_LOOKER_STUDIO_DATA_SOURCE","ENTITY_TYPE_CUSTOM_ENTITY_GENERIC","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN","ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX"],"description":"Default Coalesce Quality types","isRequired":true}},"additionalProperties":false}]}},"traits":{"type":"array","items":{"type":"string"},"description":"Traits to select by, instead of — or alongside — naming types.\n\n A trait is a property a type has, so `is_monitorable` means \"everything a\n monitor can run on\" without listing the forty-odd types that satisfy it\n today. The list it stands for is worked out each time the selection runs,\n so a selection saved this way covers a new platform's tables as soon as we\n support them, and you never have to revisit it.\n\n Entities carrying any of the traits match. When `types` is also set the two\n narrow each other: the entity must be one of the named types AND carry one\n of the traits.\n\n Accepted values, and what each one means, come from the selection-query\n grammar the API publishes (`describe_resolver_ql`, or the query editor's\n reference). A name that is not in it selects nothing rather than being\n ignored, so a typo narrows the result to empty instead of widening it —\n check a trait against the grammar before storing a selection. In a query\n written as text this is `with_type(traits=\"is_monitorable\")`, and there a\n name outside the grammar is rejected outright.\n\n A trait may also be a type alias, spelled `alias:\u003cname>` where `\u003cname>` is\n one of the aliases the grammar lists among the entity types, e.g.\n `alias:table`. It selects every type the alias stands for, worked out each\n time the selection runs like any other trait. A selection written as\n `with_type(\"table\")` is stored this way and reads back with\n `traits: [\"alias:table\"]`; writing that back keeps the same selection. In a\n query written as text an alias is always `with_type(\"table\")`, never\n `traits=\"alias:table\"`."}},"title":"with_type","additionalProperties":false,"description":"Resolves to all the entities that have the provided type, or carry one of the\n provided traits.","isRequired":true}},"additionalProperties":false}]}},"operand":{"type":"string","title":"QueryOperand","enum":["QUERY_OPERAND_UNSPECIFIED","QUERY_OPERAND_AND","QUERY_OPERAND_OR","QUERY_OPERAND_EXCEPT","QUERY_OPERAND_UPSTREAM","QUERY_OPERAND_DOWNSTREAM"],"description":"QueryOperand defines how multiple QueryParts within a Query are combined."}},"title":"EntitySelectionQuery","additionalProperties":false,"description":"entity_selection_query.except_parts_select_something // each QUERY_OPERAND_EXCEPT part must select something\nentity_selection_query.except_requires_two_parts // QUERY_OPERAND_EXCEPT requires exactly 2 parts\n"}},"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":"DeploySqlTestDeploymentRule - Coalesce Quality Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-06T12:49:16.369Z","originalFileLocation":"api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/deploysqltestdeploymentrule.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=\"Deploy (create or update) a SqlTestDeploymentRule and immediately sync tests onto its current match set.\">\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=\"DeploySqlTestDeploymentRule - Coalesce Quality Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Deploy (create or update) a SqlTestDeploymentRule and immediately sync tests onto its current match set.\">\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/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/deploysqltestdeploymentrule\">\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.datachecks.sqltests.v1.SqlTestsDeploymentRulesService\u0026amp;title=DeploySqlTestDeploymentRule\u0026amp;description=Deploy+%28create+or+update%29+a+SqlTestDeploymentRule+and+immediately+sync+tests%0A+onto+its+current+match+set.\u0026amp;theme=c4b0b33f9bac9b90d2a12108\u0026amp;signature=e6f26a4744f022b288fe94332e67136b895d67aa26a14cde4cd9d043cc4b489e\">\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=\"DeploySqlTestDeploymentRule - Coalesce Quality Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Deploy (create or update) a SqlTestDeploymentRule and immediately sync tests onto its current match set.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://synq-15.mintlify.site/_mintlify/api/og/v2?division=synq.datachecks.sqltests.v1.SqlTestsDeploymentRulesService\u0026amp;title=DeploySqlTestDeploymentRule\u0026amp;description=Deploy+%28create+or+update%29+a+SqlTestDeploymentRule+and+immediately+sync+tests%0A+onto+its+current+match+set.\u0026amp;theme=c4b0b33f9bac9b90d2a12108\u0026amp;signature=e6f26a4744f022b288fe94332e67136b895d67aa26a14cde4cd9d043cc4b489e\">\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/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/deploysqltestdeploymentrule\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/deploysqltestdeploymentrule.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/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/deploysqltestdeploymentrule#webpage\",\"url\":\"https://docs.synq.io/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/deploysqltestdeploymentrule\",\"name\":\"DeploySqlTestDeploymentRule\",\"description\":\"Deploy (create or update) a SqlTestDeploymentRule and immediately sync tests onto its current match set.\",\"dateModified\":\"2026-11-06T12:49:16.369Z\",\"isPartOf\":{\"@id\":\"https://docs.synq.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.synq.io/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/deploysqltestdeploymentrule#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.synq.io/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/deploysqltestdeploymentrule#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\":\"synq.datachecks.sqltests.v1.SqlTestsDeploymentRulesService\",\"item\":\"https://docs.synq.io/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/listsqltestdeploymentrules\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"DeploySqlTestDeploymentRule\",\"item\":\"https://docs.synq.io/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/deploysqltestdeploymentrule\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.synq.io/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/deploysqltestdeploymentrule#apireference\",\"headline\":\"DeploySqlTestDeploymentRule\",\"name\":\"DeploySqlTestDeploymentRule\",\"description\":\"Deploy (create or update) a SqlTestDeploymentRule and immediately sync tests onto its current match set.\",\"url\":\"https://docs.synq.io/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/deploysqltestdeploymentrule\",\"mainEntityOfPage\":{\"@id\":\"https://docs.synq.io/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/deploysqltestdeploymentrule#webpage\"},\"dateModified\":\"2026-11-06T12:49:16.369Z\",\"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","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","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","description":null,"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","description":"Preview the effect of deploying a rule (which have not yet been saved), without\n deploying it.","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":"DeploySqlTestDeploymentRule - 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"]}