> ## Documentation Index
> Fetch the complete documentation index at: https://docs.synq.io/llms.txt
> Use this file to discover all available pages before exploring further.

# BatchGetOwnerships

> Fetch multiple ownerships by id (across owners). Ids that do not exist (or,
 unless `include_deleted` is set, are deleted) are omitted.



## OpenAPI

````yaml /api-reference/openapi.yaml post /api/owners/v1/ownerships/batch-get
openapi: 3.1.0
info:
  version: '1.0'
  title: SYNQ
servers:
  - url: https://developer.synq.io
  - url: https://api.us.synq.io
security:
  - bearerAuth: []
tags:
  - name: synq.schedule.v1.ScheduleService
    description: ScheduleService provides schedule evaluation utilities.
  - name: synq.platforms.v1.PlatformsService
    description: PlatformsService is a service for managing Platforms and Integrations.
  - name: synq.git.commits.v1.CommitsService
  - name: synq.owners.v1.OwnersService
    description: |-
      OwnersService manages owners and their ownerships — the "alert routing as
       code" surface. An owner is a named responsible party with notification
       channels (contacts); an ownership assigns a set of assets to an owner and
       configures the alerts routed to it. Owner is the resource, ownership its
       sub-resource: an ownership is meaningless without its owner, and deleting an
       owner deletes its ownerships.

       Ids are opaque UUIDs supplied by the caller, which makes writes idempotent (a
       retried create converges instead of duplicating). Mutable fields are optional
       on the Upsert calls: a set field is written, an omitted field is left
       unchanged. Pass the `etag` you last read to guard against overwriting a
       concurrent edit.
  - name: synq.queries.v1.NLQueryService
    description: >-
      NLQueryService generates structured Query protos from natural language
      descriptions using an LLM.
  - name: synq.integrations.v1.IntegrationsService
    description: |-
      IntegrationsService manages connections from Coalesce Quality to your data
       systems (warehouses, databases, and transformation tools).

       Concurrency: every integration carries an opaque `etag`. Read it from
       `GetIntegration` / `ListIntegrations`, then pass it back on
       `UpdateIntegration` / `DeleteIntegration` to ensure you modify the version you
       last saw. A stale etag is rejected with ABORTED (HTTP 409). Omit
       the etag for last-write-wins.

       Quota: each workspace has a limit on the number of integrations. Creating
       beyond the limit is rejected with RESOURCE_EXHAUSTED.

       Secrets: credential fields (passwords, tokens, keys) are write-only. They are
       masked (returned empty) on every read. On update, omit a secret to keep it,
       send a new value to rotate it, or send an explicit empty string to clear it
       (where the field is `optional`).
  - name: synq.auth.iam.v1.IamService
  - name: synq.extensions.atlan.provider.v1.AtlanProviderService
  - name: synq.extensions.atlan.workflows.v1.AtlanWorkflowService
  - name: synq.extensions.atlan.integrations.v1.AtlanIntegrationService
  - name: synq.issues.v2.IssuesService
    description: IssuesService is a service for managing Issues.
  - name: synq.issues.issues.v1.IssuesService
    description: IssuesService is a service for managing Issues.
  - name: synq.alerts.services.v1.AlertsService
    description: AlertsService provides operations for managing alert configurations.
  - name: synq.agent.recon.v1.SuiteDeploymentService
    description: |-
      SuiteDeploymentService is the platform plane of reconciliation.

       SuiteConfigService is the developer/authoring sandbox (edit, version, run
       ad-hoc with your own credentials — preview-only, no Entity, no Run, no
       Issue). A deployment is what SYNQ actually runs on the workspace's behalf:
       a frozen snapshot of a suite config, mapped to workspace-level SYNQ
       integrations, optionally scheduled or triggerable by API.

       Identity: every deployment has a stable deployment_id (UUIDv7) assigned on
       first promote. It survives re-promotes, schedule/mapping changes, and
       pause/resume. Downstream AssetCommand / RunCommand publication keys off
       deployment_id so Entity identity does not fragment on promote churn.
  - name: synq.agent.recon.v1.YamlService
    description: >-
      YamlService provides stateless conversion between YAML config format and
      proto.
       This is useful for UI editors that need to display/edit suite configs as YAML.
  - name: synq.agent.sre.v1.LlmService
    description: Service for evaluating LLM requests and producing structured output.
  - name: synq.agent.sre.v1.TriageService
    description: >-
      Service for managing issue triage operations, allowing LLM agents to
      conclude investigations
       and record evidence during the triage process.
  - name: synq.agent.sre.v1.FeatureRequestService
    description: >-
      FeatureRequestService allows MCP clients to submit feature requests when
      users encounter
       missing capabilities. This is a last-resort service — it should only be used when no
       existing tool can fulfill the user's request.
  - name: synq.datachecks.v1.TriggerService
    description: TriggerService provides synchronous execution of datachecks on entities.
  - name: synq.datachecks.testsuggestions.v1.TestSuggestionsService
  - name: synq.entities.executions.v2.EntityExecutionsService
    description: >-
      EntityExecutionsService provides read-only access to entity execution
      history.
       This service allows customers to retrieve information about all executions that happened on their entities,
       including execution status, timing, and messages.

       Use cases:
       - Retrieve execution history for specific entities
       - Filter executions by time range, status, or execution type
       - Get aggregated summaries of execution activity
       - Track execution trends and patterns
  - name: synq.datachecks.sqltests.v1.SqlTestsService
    description: SqlTestsService is a service for managing SqlTests.
  - name: synq.monitors.info.v1.MonitorInfoService
  - name: synq.monitors.automated_monitors.v1.DeploymentRulesService
  - name: synq.monitors.history.v1.HistoryService
  - name: synq.monitors.custom_monitors.v1.CustomMonitorsService
  - name: synq.monitors.predictions.v1.MonitorPredictionsService
    description: Access to anomaly detection model predictions and raw metric timeseries.
  - name: synq.entities.resolve.v1.IdentifierResolveService
    description: >-
      IdentifierResolveService resolves identifiers to their Coalesce Quality
      paths and identities.
  - name: synq.entities.coordinates.v1.DatabaseCoordinatesService
    description: >-
      DatabaseCoordinatesService is a service for getting database coordinates
      of Entities.
  - name: synq.entities.lineage.v1.LineageService
    description: |-
      LineageService allows you to fetch:
       * Entity level lineage from a starting point of one or more entities.
       * Column Level lineage from a starting point of multiple columns of a single entity.
  - name: synq.entities.impact.v1.ImpactService
  - name: synq.entities.annotations.v1.AnnotationsService
    description: >-
      AnnotationsService provides operations for managing and querying entity
      annotations.
       Annotations are key-value pairs that can be attached to entities for categorization and filtering.
  - name: synq.entities.changes.v1.ChangesService
    description: >-
      ChangesService provides functionality to track and retrieve all types of
      changes to data entities.

       This unified service returns ALL change types for an entity:
       - Git commits: Changes to code files (dbt models, SQL files) tracked in version control
       - Schema changes: Database schema modifications (columns added/removed/changed)
       - SQL definition changes: View/materialized view definition updates detected by Coalesce Quality

       Changes are returned with structured metadata including:
       - For git commits: structured statistics (directories, file types, top changes)
       - For schema changes: detailed column-level diffs
       - For SQL changes: before/after SQL definitions

       Use cases:
       - "What changed in the last week for table X?" → Returns git commits, schema changes, SQL changes
       - "Show me all commits affecting this dbt model" → Returns git commits with lineage context
       - "What schema changes happened to this table?" → Returns schema changes detected by Coalesce Quality
  - name: synq.entities.status.v1.EntityIssuesService
    description: EntityIssuesService is the service which retrieves entity issues status.
  - name: synq.entities.status.v1.EntityIncidentsService
    description: EntityIncidentsService is the service which retrieves entity status.
  - name: synq.entities.orchestration.v1.OrchestrationService
    description: >-
      OrchestrationService provides information about orchestration
      relationships between entities.
       This includes relationships between Airflow tasks and transformation models (dbt, SQLMesh),
       as well as task-to-task dependencies.
  - name: synq.entities.checks.v1.ChecksCategoriesService
    description: |-
      ChecksCategoriesService lets workspace admins set explicit category
       overrides on individual checks. An explicit category is the
       authoritative category for a check — it takes precedence over the
       categories computed by the workspace's categorisation rules.

       It is a public API so customers can manage check categories
       programmatically; the same service is also mounted on the internal
       API. The workspace and the acting identity are always taken from the
       request context, never from the payload.
  - name: synq.entities.custom.v1.TypesService
    description: TypesService is a service for managing custom entity types.
  - name: synq.entities.custom.v1.EntityExecutionsService
  - name: synq.entities.custom.v1.EntitiesService
    description: >-
      custom.EntitiesService is a service for managing custom entities. Entities
      can represent
       various data platform concepts such as services, consumers, applications or data pipelines
       that are not natively available in Coalesce Quality.

       Entities are identified by a unique identifier and can be created, updated, read and deleted.
  - name: synq.entities.custom.v1.FeaturesService
  - name: synq.entities.custom.v1.GroupsService
    description: >-
      It eliminates the need to keep state on client side to remember which
      assets were already created
       and which should be deleted. The server will keep track of the current state of the group and client
       can always send the intended new state. The server will calculate the diff and entities that are
       no longer present in the group will be removed.

       Example:
       1. group has entities A, B, C at time t1
       2. client sends group with entities B, C, D at time t2
       3. server will remove entity A from the system and update the current state of the group to B, C, D

       The service is designed to be idempotent and can be called multiple times with the same state without
       causing any side effects.
  - name: synq.entities.custom.v1.RelationshipsService
    description: >-
      RelationshipsService allow management of relationships between entities.
      Relationships can
       be created, updated, and deleted between 2 custom entities, or between a custom entity and Coalesce Quality native entity.enum
       There is no option to create relationships between 2 Coalesce Quality native entities (dbt model, BI dashboard, etc.).
  - name: synq.entities.custom.v1.ChecksRelationshipsService
  - name: synq.entities.entities.v1.EntitiesService
    description: EntitiesService is a service for retriving any entity.
  - name: synq.entities.executions.v1.EntityExecutionsService
    description: 'Deprecated: Use [synq.entities.custom.v1.EntityExecutionsService] instead'
  - name: synq.entities.sql_insights.v1.SqlInsightsService
    description: >-
      SqlInsightsService exposes analytical information about the SQL used
      across a
       workspace's entities. It answers questions such as "which SQL constructs are
       used in my warehouse, and how often" and "what SQL constructs does this
       specific entity use", without requiring the caller to re-parse any SQL.
  - name: synq.entities.schemas.v1.SchemaMismatchesService
    description: >-
      SchemaMismatchesService provides access to schema drift information
      between
       data platform tables and their definitions (e.g., dbt models).
  - name: synq.entities.schemas.v1.SchemasService
    description: EntitiesService is a service for retriving any entity.
  - name: synq.entities.code.v1.CodeService
    description: >-
      CodeService is a service for retrieving code associated with entities in
      the system.
       It provides functionality to access and manage code artifacts such as SQL queries,
       Python scripts, dbt models, and other code configurations that are part of Coalesce Quality entities.
  - name: synq.entities.constraints.v1.TableConstraintsService
    description: >-
      TableConstraintsService provides access to table constraint and index
      information.
  - name: synq.ingest.dwh.v1.DwhService
  - name: synq.ingest.openlineage.v1.OpenlineageService
  - name: synq.ingest.cloudwatch.v1.CloudwatchService
  - name: synq.ingest.airflow.v1.AirflowLogsService
  - name: synq.savedviews.v1.SavedViewsService
    description: >-
      SavedViewsService manages saved views — named, reusable selections over
      your
       entities (and other surfaces) with display configuration, sharing and
       per-user pinning.

       A saved view is owned by the user who created it. It can be kept private,
       shared with the whole workspace, or granted to specific users. Reads return,
       for the calling user, how each view relates to them (mine / shared / granted)
       and what they are allowed to do with it. Workspace administrators can manage
       any view in the workspace.
  - name: synq.dataproducts.v2.DataproductsService
    description: |-
      DataproductsService manages data products — named, owned groupings of data
       assets with a membership definition, a priority and an optional folder.

       Ids are opaque UUIDs supplied by the caller, which makes writes idempotent
       (a retried create converges instead of duplicating). Mutable fields are
       optional on Upsert: a field that is set is written, a field that is omitted is
       left unchanged. Pass the `etag` you last read to guard against overwriting a
       concurrent edit.

       A data product is a leaf in the reference graph — its definition may not
       reference another data product or domain — so membership resolution always
       terminates.
  - name: synq.dataproducts.v1.DataproductsService
    description: DataproductsService can be used to manage data products.
  - name: synq.incidents.v1.IncidentsService
    description: IncidentsService is a service for managing Incidents.
paths:
  /api/owners/v1/ownerships/batch-get:
    post:
      tags:
        - synq.owners.v1.OwnersService
      summary: BatchGetOwnerships
      description: >-
        Fetch multiple ownerships by id (across owners). Ids that do not exist
        (or,
         unless `include_deleted` is set, are deleted) are omitted.
      operationId: synq.owners.v1.OwnersService.BatchGetOwnerships
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/synq.owners.v1.BatchGetOwnershipsRequest'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/synq.owners.v1.BatchGetOwnershipsResponse'
components:
  schemas:
    synq.owners.v1.BatchGetOwnershipsRequest:
      type: object
      properties:
        ids:
          type: array
          items:
            type: string
            format: uuid
            maxItems: 200
            minItems: 1
            uniqueItems: true
          maxItems: 200
          minItems: 1
          uniqueItems: true
          description: Ownership ids to fetch (1–200, unique).
        includeDeleted:
          type: boolean
          description: Include soft-deleted ownerships.
      title: BatchGetOwnershipsRequest
      additionalProperties: false
    synq.owners.v1.BatchGetOwnershipsResponse:
      type: object
      properties:
        ownerships:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/synq.owners.v1.Ownership'
            title: value
          description: >-
            Ownerships keyed by id. Ids that do not exist (or are deleted,
            unless
             requested) are absent.
      title: BatchGetOwnershipsResponse
      additionalProperties: false
    synq.owners.v1.Ownership:
      type: object
      properties:
        id:
          type: string
          description: >-
            Opaque id of the ownership (a UUID) supplied by the caller on
            create, which
             makes UpsertOwnership idempotent. This is the same value the alerts API
             reports as the ownership reference on an alert attributed to this owner.
        ownerId:
          type: string
          description: >-
            Id of the Owner this ownership belongs to (the owner's `id`, a
            UUID).
        selection:
          $ref: '#/components/schemas/synq.owners.v1.OwnershipSelection'
          description: Which assets this ownership covers.
        alert:
          $ref: '#/components/schemas/synq.owners.v1.AlertConfig'
          description: How alerts fire for the covered assets.
        etag:
          type: string
          description: >-
            Entity tag for optimistic concurrency: pass it back on
            UpsertOwnership /
             DeleteOwnership to guard against overwriting a concurrent change. Form:
             `W/"<id>-<version>"`. Opaque — do not parse.
        createdBy:
          $ref: '#/components/schemas/synq.issues.actor.v1.Actor'
          description: Who created the ownership. Output-only.
        updatedBy:
          $ref: '#/components/schemas/synq.issues.actor.v1.Actor'
          description: Who last edited the ownership. Output-only.
        createdAt:
          $ref: '#/components/schemas/google.protobuf.Timestamp'
          description: When the ownership was created. Output-only.
        deletedAt:
          $ref: '#/components/schemas/google.protobuf.Timestamp'
          description: When the ownership was soft-deleted, if it has been. Output-only.
          nullable: true
      title: Ownership
      additionalProperties: false
      description: |-
        An ownership assigns a set of data assets to an owner and configures the
         alerts routed to that owner about those assets. In the app this is the
         owner's "Owned assets". One owner can hold many ownerships; deleting the
         owner deletes all of its ownerships.
    synq.owners.v1.OwnershipSelection:
      type: object
      oneOf:
        - properties:
            dataproductId:
              type: string
              title: dataproduct_id
              format: uuid
              description: >-
                All assets belonging to a single data product, referenced by its
                opaque
                 id (the `id` returned by the data products API). The data product must
                 exist in the workspace at write time.
          title: dataproduct_id
          required:
            - dataproductId
        - properties:
            query:
              $ref: '#/components/schemas/synq.owners.v1.OwnershipQuery'
              title: query
              description: >-
                Assets matched by a query. Covers both a custom "asset group"
                and the
                 "all assets" case (a match-all query). Unlike a data product definition
                 (which must be a leaf), an ownership query MAY reference data products
                 and domains — routing alerts for everything in a data product/domain is
                 a first-class use.
          title: query
          required:
            - query
      additionalProperties: false
      description: The set of assets an ownership covers.
    synq.owners.v1.AlertConfig:
      type: object
      properties:
        severities:
          type: array
          items:
            $ref: '#/components/schemas/synq.v1.Severity'
          uniqueItems: true
          description: >-
            Failure severities that fire an alert (Warning / Error / Fatal).
            Empty
             means no severity is selected and the ownership routes no failure alerts.
        notifyUpstream:
          type: boolean
          description: >-
            Also alert on issues in the upstream dependencies of the covered
            assets.
        ongoing:
          $ref: '#/components/schemas/synq.alerts.v1.OngoingAlertsStrategy'
          description: >-
            How repeat notifications for a still-open issue are handled: no
            repeats
             (Disabled), a scheduled digest (Schedule — a daily digest in the app), or
             one on every failed run (Stream). Leave unset for no ongoing notifications.
        allowSqlTestAuditLink:
          type: boolean
          description: Include a link to the SQL test audit report in notifications.
        isDisabled:
          type: boolean
          description: >-
            When true this ownership's alerts are turned off while the
            assignment
             itself stays in place.
      title: AlertConfig
      additionalProperties: false
      description: >-
        How alerts fire for the assets an ownership covers. Deliberately mirrors
        the
         settings on the public alerts API (`synq.alerts.v1`) so alerting behaviour
         reads the same across SYNQ.
    synq.issues.actor.v1.Actor:
      type: object
      allOf:
        - properties:
            name:
              type: string
              title: name
              minLength: 1
            via:
              $ref: '#/components/schemas/synq.issues.actor.v1.Actor.Via'
              title: via
        - oneOf:
            - properties:
                email:
                  $ref: '#/components/schemas/synq.issues.actor.v1.EmailUser'
                  title: email
              title: email
              required:
                - email
            - properties:
                pagerduty:
                  $ref: '#/components/schemas/synq.issues.actor.v1.PagerdutyUser'
                  title: pagerduty
              title: pagerduty
              required:
                - pagerduty
            - properties:
                slack:
                  $ref: '#/components/schemas/synq.issues.actor.v1.SlackUser'
                  title: slack
              title: slack
              required:
                - slack
      title: Actor
      required:
        - name
      additionalProperties: false
      description: |-
        Actor identifies who performed a write — set by the calling client and
         carried end-to-end through the public API into stored audit trails (issue
         status changes, comments, incident assignments) and rendered downstream
         (e.g. Slack/MSTeams/email alerts).

         Producers should populate:
           1. `name` — human-readable display label, derived from
              `synq.auth.iam.v1.IamResponse.user_name` when available, falling back
              to `user_email`. Avoid generic placeholders ("MCP", "API"); readers
              treat those as "no identity resolved" and fall back to impersonal copy.
           2. `user` — the strongest identifier the caller can prove. For human
              callers, set `email` from `IamResponse.user_email` so the server can
              resolve the caller back to a workspace user.
           3. `via` — entry-point label for the channel through which the request
              arrived (e.g. VIA_MCP for the MCP server), regardless of who the
              caller is.
    google.protobuf.Timestamp:
      type: string
      examples:
        - '2023-01-15T01:30:15.01Z'
        - '2024-12-25T12:00:00Z'
      format: date-time
      description: >-
        A Timestamp represents a point in time independent of any time zone or
        local
         calendar, encoded as a count of seconds and fractions of seconds at
         nanosecond resolution. The count is relative to an epoch at UTC midnight on
         January 1, 1970, in the proleptic Gregorian calendar which extends the
         Gregorian calendar backwards to year one.

         All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
         second table is needed for interpretation, using a [24-hour linear
         smear](https://developers.google.com/time/smear).

         The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
         restricting to that range, we ensure that we can convert to and from [RFC
         3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.

         # Examples

         Example 1: Compute Timestamp from POSIX `time()`.

             Timestamp timestamp;
             timestamp.set_seconds(time(NULL));
             timestamp.set_nanos(0);

         Example 2: Compute Timestamp from POSIX `gettimeofday()`.

             struct timeval tv;
             gettimeofday(&tv, NULL);

             Timestamp timestamp;
             timestamp.set_seconds(tv.tv_sec);
             timestamp.set_nanos(tv.tv_usec * 1000);

         Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.

             FILETIME ft;
             GetSystemTimeAsFileTime(&ft);
             UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;

             // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
             // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
             Timestamp timestamp;
             timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
             timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));

         Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.

             long millis = System.currentTimeMillis();

             Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
                 .setNanos((int) ((millis % 1000) * 1000000)).build();


         Example 5: Compute Timestamp from Java `Instant.now()`.

             Instant now = Instant.now();

             Timestamp timestamp =
                 Timestamp.newBuilder().setSeconds(now.getEpochSecond())
                     .setNanos(now.getNano()).build();


         Example 6: Compute Timestamp from current time in Python.

             timestamp = Timestamp()
             timestamp.GetCurrentTime()

         # JSON Mapping

         In JSON format, the Timestamp type is encoded as a string in the
         [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
         format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
         where {year} is always expressed using four digits while {month}, {day},
         {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
         seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
         are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
         is required. A proto3 JSON serializer should always use UTC (as indicated by
         "Z") when printing the Timestamp type and a proto3 JSON parser should be
         able to accept both UTC and other timezones (as indicated by an offset).

         For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
         01:30 UTC on January 15, 2017.

         In JavaScript, one can convert a Date object to this format using the
         standard
         [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
         method. In Python, a standard `datetime.datetime` object can be converted
         to this format using
         [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
         the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
         the Joda Time's [`ISODateTimeFormat.dateTime()`](
         http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
         ) to obtain a formatter capable of generating timestamps in this format.
    synq.owners.v1.OwnershipQuery:
      type: object
      properties:
        name:
          type: string
          maxLength: 500
          description: >-
            Human-readable name of the asset group (shown as "Asset group
            name").
        resolverQl:
          type: string
          maxLength: 20000
          description: WRITE (option A). The query in resolver query language.
        renderedResolverQl:
          type: string
          description: >-
            READ, output-only. The stored query rendered back to canonical
            resolver
             query language. Deterministically derived; does not preserve original
             hand-typed formatting or comments.
        publicQuery:
          $ref: '#/components/schemas/synq.queries.v1.Query'
          description: >-
            WRITE (option B) and READ. On write, the structured query to store
            (used
             when `resolver_ql` is empty). On read, a best-effort structured
             representation of the stored query.
      title: OwnershipQuery
      additionalProperties: false
      description: >
        A named asset selection behind an ownership, expressed for the public
        API.
         Uses the same write/read bridge as saved views and data products.

         On write, provide the query in ONE of two forms:
           - `public_query` — a structured query (the same shape used elsewhere for
             asset selection), convenient to build from a filter UI; or
           - `resolver_ql` — the resolver query language, a compact text form that is
             the canonical way to author selections as code.
         When both are set, `resolver_ql` wins. The server compiles and stores the
         query canonically; the raw text is not preserved verbatim.

         On read, the server returns `rendered_resolver_ql` (the stored query rendered
         back to canonical resolver query language) and, best-effort, `public_query`
         (the structured representation). `resolver_ql` is not echoed back — read
         `rendered_resolver_ql`.
        ownership_query.nonempty // resolver_ql or public_query is required
    synq.v1.Severity:
      type: string
      title: Severity
      enum:
        - SEVERITY_UNSPECIFIED
        - SEVERITY_WARN
        - SEVERITY_ERROR
        - SEVERITY_FATAL
    synq.alerts.v1.OngoingAlertsStrategy:
      type: object
      oneOf:
        - properties:
            disabled:
              $ref: >-
                #/components/schemas/synq.alerts.v1.OngoingAlertsStrategy.Disabled
              title: disabled
          title: disabled
          required:
            - disabled
        - properties:
            schedule:
              $ref: >-
                #/components/schemas/synq.alerts.v1.OngoingAlertsStrategy.Schedule
              title: schedule
          title: schedule
          required:
            - schedule
        - properties:
            stream:
              $ref: '#/components/schemas/synq.alerts.v1.OngoingAlertsStrategy.Stream'
              title: stream
          title: stream
          required:
            - stream
      additionalProperties: false
      description: |-
        OngoingAlertsStrategy defines how to handle ongoing/repeated alerts.
         This prevents alert spam by controlling notification frequency.
    synq.issues.actor.v1.Actor.Via:
      type: string
      title: Via
      enum:
        - VIA_UNSPECIFIED
        - VIA_API
        - VIA_MCP
        - VIA_SLACK
        - VIA_PAGERDUTY
    synq.issues.actor.v1.EmailUser:
      type: object
      properties:
        userEmail:
          type: string
          minLength: 1
          format: email
      title: EmailUser
      required:
        - userEmail
      additionalProperties: false
    synq.issues.actor.v1.PagerdutyUser:
      type: object
      properties:
        userId:
          type: string
          minLength: 1
      title: PagerdutyUser
      required:
        - userId
      additionalProperties: false
    synq.issues.actor.v1.SlackUser:
      type: object
      properties:
        userId:
          type: string
          minLength: 1
      title: SlackUser
      required:
        - userId
      additionalProperties: false
    synq.queries.v1.Query:
      type: object
      properties:
        parts:
          type: array
          items:
            $ref: '#/components/schemas/synq.queries.v1.Query.QueryPart'
        operand:
          $ref: '#/components/schemas/synq.queries.v1.QueryOperand'
          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.
         It consists of multiple parts, each representing a different filter or sub-query.
         The parts are combined using the operand to form the final result:
           - AND (default): returns only entities matching ALL parts (intersection).
           - OR: returns entities matching ANY part (union).
           - EXCEPT: requires exactly 2 parts — returns entities from part[0] that are NOT in part[1].
           - UPSTREAM: returns entities that are upstream (dependencies) of the entities matched by the parts.
           - DOWNSTREAM: returns entities that are downstream (dependents) of the entities matched by the parts.

         Queries can be nested by using a Query as a QueryPart, enabling complex compositions
         like "upstream of all Snowflake tables".
        query.except_requires_two_parts // QUERY_OPERAND_EXCEPT requires exactly
        2 parts
    synq.alerts.v1.OngoingAlertsStrategy.Disabled:
      type: object
      title: Disabled
      additionalProperties: false
      description: >-
        Disabled strategy - no ongoing alerts will be sent after the initial
        alert. No configuration needed - alerts are simply disabled after the
        first one.
    synq.alerts.v1.OngoingAlertsStrategy.Schedule:
      type: object
      properties:
        cron:
          type: string
          minLength: 1
          description: |-
            Cron expression defining when ongoing alerts should be sent.
             Must be a valid cron expression (e.g., "0 9 * * MON" for every Monday at 9 AM).
      title: Schedule
      additionalProperties: false
      description: Schedule strategy - alerts are sent on a scheduled basis.
    synq.alerts.v1.OngoingAlertsStrategy.Stream:
      type: object
      title: Stream
      additionalProperties: false
      description: >-
        Stream strategy - alerts are sent continuously as issues persist. No
        configuration needed - alerts stream continuously.
    synq.queries.v1.Query.QueryPart:
      type: object
      oneOf:
        - properties:
            identifierList:
              $ref: '#/components/schemas/synq.queries.v1.IdentifierList'
              title: identifier_list
          title: identifier_list
          required:
            - identifierList
        - properties:
            inDataPlatform:
              $ref: '#/components/schemas/synq.queries.v1.InDataPlatform'
              title: in_data_platform
          title: in_data_platform
          required:
            - inDataPlatform
        - properties:
            inDataproduct:
              $ref: '#/components/schemas/synq.queries.v1.InDataproduct'
              title: in_dataproduct
          title: in_dataproduct
          required:
            - inDataproduct
        - properties:
            inDomain:
              $ref: '#/components/schemas/synq.queries.v1.InDomain'
              title: in_domain
          title: in_domain
          required:
            - inDomain
        - properties:
            inFolder:
              $ref: '#/components/schemas/synq.queries.v1.InFolder'
              title: in_folder
          title: in_folder
          required:
            - inFolder
        - properties:
            query:
              $ref: '#/components/schemas/synq.queries.v1.Query'
              title: query
              description: >-
                Nested sub-query, enabling recursive composition of filters and
                operands.
          title: query
          required:
            - query
        - properties:
            unsupported:
              $ref: '#/components/schemas/synq.queries.v1.Unsupported'
              title: unsupported
              description: >-
                Read-only. Represents internal query types that cannot be
                expressed in the public API.
                 Do not construct these directly — they are returned when translating from internal queries.
          title: unsupported
          required:
            - unsupported
        - properties:
            withAnnotation:
              $ref: '#/components/schemas/synq.queries.v1.WithAnnotation'
              title: with_annotation
          title: with_annotation
          required:
            - withAnnotation
        - properties:
            withDataPlatformType:
              $ref: '#/components/schemas/synq.queries.v1.WithDataPlatformType'
              title: with_data_platform_type
          title: with_data_platform_type
          required:
            - withDataPlatformType
        - properties:
            withNameSearch:
              $ref: '#/components/schemas/synq.queries.v1.WithNameSearch'
              title: with_name_search
          title: with_name_search
          required:
            - withNameSearch
        - properties:
            withType:
              $ref: '#/components/schemas/synq.queries.v1.WithType'
              title: with_type
          title: with_type
          required:
            - withType
      additionalProperties: false
    synq.queries.v1.QueryOperand:
      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.
    synq.queries.v1.IdentifierList:
      type: object
      properties:
        identifiers:
          type: array
          items:
            $ref: '#/components/schemas/synq.entities.v1.Identifier'
      title: IdentifierList
      additionalProperties: false
      description: Resolves to entities matching any of the given identifiers.
    synq.queries.v1.InDataPlatform:
      type: object
      properties:
        identifier:
          $ref: '#/components/schemas/synq.platforms.v1.DataPlatformIdentifier'
      title: InDataPlatform
      additionalProperties: false
      description: Resolves to all entities that belong to the given data platform.
    synq.queries.v1.InDataproduct:
      type: object
      properties:
        identifier:
          $ref: '#/components/schemas/synq.entities.v1.DataproductIdentifier'
      title: InDataproduct
      additionalProperties: false
      description: Resolves to all the assets that belong to the given data product.
    synq.queries.v1.InDomain:
      type: object
      properties:
        domainId:
          type: string
          format: uuid
      title: InDomain
      additionalProperties: false
      description: Resolves to all entities in the given data domain.
    synq.queries.v1.InFolder:
      type: object
      properties:
        path:
          type: array
          items:
            type: string
      title: InFolder
      additionalProperties: false
      description: Resolves to all entities belonging to the given folder structure.
    synq.queries.v1.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.
         These represent an internal structure that are not yet completely available on the API.
    synq.queries.v1.WithAnnotation:
      type: object
      properties:
        name:
          type: string
        acceptedValue:
          type: string
          nullable: true
          deprecated: true
        acceptedValues:
          type: array
          items:
            type: string
      title: WithAnnotation
      additionalProperties: false
      description: >-
        Resolves to all entities that contain the annotation with at least one
        of the provided accepted values.
         In case of no given accepted values, all entities that carry the given annotation are returned.
    synq.queries.v1.WithDataPlatformType:
      type: object
      properties:
        types:
          type: array
          items:
            $ref: '#/components/schemas/synq.platforms.v1.DataPlatformType'
      title: WithDataPlatformType
      additionalProperties: false
    synq.queries.v1.WithNameSearch:
      type: object
      properties:
        searchQuery:
          type: string
      title: WithNameSearch
      additionalProperties: false
      description: Resolves to all entities matching the given name search.
    synq.queries.v1.WithType:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/synq.queries.v1.WithType.Type'
          deprecated: true
        types:
          type: array
          items:
            $ref: '#/components/schemas/synq.queries.v1.WithType.Type'
      title: WithType
      additionalProperties: false
      description: Resolves to all the entities that have the provided type.
    synq.entities.v1.Identifier:
      type: object
      oneOf:
        - properties:
            airflowDag:
              $ref: '#/components/schemas/synq.entities.v1.AirflowDagIdentifier'
              title: airflow_dag
              description: Airflow DAG identifier
          title: airflow_dag
          required:
            - airflowDag
        - properties:
            airflowTask:
              $ref: '#/components/schemas/synq.entities.v1.AirflowTaskIdentifier'
              title: airflow_task
              description: Airflow task identifier within a given DAG
          title: airflow_task
          required:
            - airflowTask
        - properties:
            athenaTable:
              $ref: '#/components/schemas/synq.entities.v1.AthenaTableIdentifier'
              title: athena_table
              description: Amazon Athena (Glue) table identifier
          title: athena_table
          required:
            - athenaTable
        - properties:
            bigqueryTable:
              $ref: '#/components/schemas/synq.entities.v1.BigqueryTableIdentifier'
              title: bigquery_table
              description: BigQuery table identifier
          title: bigquery_table
          required:
            - bigqueryTable
        - properties:
            clickhouseTable:
              $ref: '#/components/schemas/synq.entities.v1.ClickhouseTableIdentifier'
              title: clickhouse_table
              description: Clickhouse table identifier
          title: clickhouse_table
          required:
            - clickhouseTable
        - properties:
            custom:
              $ref: '#/components/schemas/synq.entities.v1.CustomIdentifier'
              title: custom
              description: Custom identifier to be used with all custom created entities
          title: custom
          required:
            - custom
        - properties:
            databricksTable:
              $ref: '#/components/schemas/synq.entities.v1.DatabricksTableIdentifier'
              title: databricks_table
              description: Databricks table identifier
          title: databricks_table
          required:
            - databricksTable
        - properties:
            dataproduct:
              $ref: '#/components/schemas/synq.entities.v1.DataproductIdentifier'
              title: dataproduct
              description: Dataproduct identifier
          title: dataproduct
          required:
            - dataproduct
        - properties:
            dbtCloudNode:
              $ref: '#/components/schemas/synq.entities.v1.DbtCloudNodeIdentifier'
              title: dbt_cloud_node
              description: >-
                Dbt node that identifies one of dbt DAG nodes (model, test, etc)
                in dbt Cloud project
          title: dbt_cloud_node
          required:
            - dbtCloudNode
        - properties:
            dbtCoreNode:
              $ref: '#/components/schemas/synq.entities.v1.DbtCoreNodeIdentifier'
              title: dbt_core_node
              description: >-
                Dbt node that identifies one of dbt DAG nodes (model, test, etc)
                in dbt Core project
          title: dbt_core_node
          required:
            - dbtCoreNode
        - properties:
            fabricTable:
              $ref: '#/components/schemas/synq.entities.v1.FabricTableIdentifier'
              title: fabric_table
              description: Microsoft Fabric table identifier
          title: fabric_table
          required:
            - fabricTable
        - properties:
            monitor:
              $ref: '#/components/schemas/synq.entities.v1.MonitorIdentifier'
              title: monitor
              description: Monitor identifier
          title: monitor
          required:
            - monitor
        - properties:
            mssqlTable:
              $ref: '#/components/schemas/synq.entities.v1.MssqlTableIdentifier'
              title: mssql_table
              description: SQL Server table identifier
          title: mssql_table
          required:
            - mssqlTable
        - properties:
            mysqlTable:
              $ref: '#/components/schemas/synq.entities.v1.MysqlTableIdentifier'
              title: mysql_table
              description: Mysql table identifier
          title: mysql_table
          required:
            - mysqlTable
        - properties:
            oracleTable:
              $ref: '#/components/schemas/synq.entities.v1.OracleTableIdentifier'
              title: oracle_table
              description: Oracle table identifier
          title: oracle_table
          required:
            - oracleTable
        - properties:
            postgresTable:
              $ref: '#/components/schemas/synq.entities.v1.PostgresTableIdentifier'
              title: postgres_table
              description: Postgres table identifier
          title: postgres_table
          required:
            - postgresTable
        - properties:
            redshiftTable:
              $ref: '#/components/schemas/synq.entities.v1.RedshiftTableIdentifier'
              title: redshift_table
              description: Redshift table identifier
          title: redshift_table
          required:
            - redshiftTable
        - properties:
            savedView:
              $ref: '#/components/schemas/synq.entities.v1.SavedViewIdentifier'
              title: saved_view
              description: Saved view identifier
          title: saved_view
          required:
            - savedView
        - properties:
            snowflakeTable:
              $ref: '#/components/schemas/synq.entities.v1.SnowflakeTableIdentifier'
              title: snowflake_table
              description: Snowflake table identifier
          title: snowflake_table
          required:
            - snowflakeTable
        - properties:
            sqlMeshAudit:
              $ref: '#/components/schemas/synq.entities.v1.SqlMeshAuditIdentifier'
              title: sql_mesh_audit
              description: SQLMesh Audit identifier
          title: sql_mesh_audit
          required:
            - sqlMeshAudit
        - properties:
            sqlMeshModel:
              $ref: '#/components/schemas/synq.entities.v1.SqlMeshModelIdentifier'
              title: sql_mesh_model
              description: SQLMesh Model identifier
          title: sql_mesh_model
          required:
            - sqlMeshModel
        - properties:
            synqPath:
              $ref: '#/components/schemas/synq.entities.v1.SynqPathIdentifier'
              title: synq_path
              description: SynqPath identifier
          title: synq_path
          required:
            - synqPath
        - properties:
            trinoTable:
              $ref: '#/components/schemas/synq.entities.v1.TrinoTableIdentifier'
              title: trino_table
              description: Trino table identifier
          title: trino_table
          required:
            - trinoTable
      additionalProperties: false
      description: >-
        Identifier is a unique reference to an entity in Coalesce Quality
        system. Entity identifiers
         are designed to closely mimic identifiers used by data platforms and tools. To construct
         an identifier, you need to know the kind of the entity and the ids that you would normally
         use to identify it in the data platform or tool. For example, to identify a table in BigQuery,
         you would need to know the project, dataset, and table names.
    synq.platforms.v1.DataPlatformIdentifier:
      type: object
      oneOf:
        - properties:
            athena:
              $ref: '#/components/schemas/synq.platforms.v1.AthenaIdentifier'
              title: athena
          title: athena
          required:
            - athena
        - properties:
            bigquery:
              $ref: '#/components/schemas/synq.platforms.v1.BigqueryIdentifier'
              title: bigquery
          title: bigquery
          required:
            - bigquery
        - properties:
            clickhouse:
              $ref: '#/components/schemas/synq.platforms.v1.ClickhouseIdentifier'
              title: clickhouse
          title: clickhouse
          required:
            - clickhouse
        - properties:
            databricks:
              $ref: '#/components/schemas/synq.platforms.v1.DatabricksIdentifier'
              title: databricks
          title: databricks
          required:
            - databricks
        - properties:
            dbtCloud:
              $ref: '#/components/schemas/synq.platforms.v1.DbtCloudIdentifier'
              title: dbt_cloud
          title: dbt_cloud
          required:
            - dbtCloud
        - properties:
            duckdb:
              $ref: '#/components/schemas/synq.platforms.v1.DuckDbIdentifier'
              title: duckdb
          title: duckdb
          required:
            - duckdb
        - properties:
            fabric:
              $ref: '#/components/schemas/synq.platforms.v1.FabricIdentifier'
              title: fabric
          title: fabric
          required:
            - fabric
        - properties:
            mssql:
              $ref: '#/components/schemas/synq.platforms.v1.MssqlIdentifier'
              title: mssql
          title: mssql
          required:
            - mssql
        - properties:
            mysql:
              $ref: '#/components/schemas/synq.platforms.v1.MysqlIdentifier'
              title: mysql
          title: mysql
          required:
            - mysql
        - properties:
            oracle:
              $ref: '#/components/schemas/synq.platforms.v1.OracleIdentifier'
              title: oracle
          title: oracle
          required:
            - oracle
        - properties:
            postgres:
              $ref: '#/components/schemas/synq.platforms.v1.PostgresIdentifier'
              title: postgres
          title: postgres
          required:
            - postgres
        - properties:
            redshift:
              $ref: '#/components/schemas/synq.platforms.v1.RedshiftIdentifier'
              title: redshift
          title: redshift
          required:
            - redshift
        - properties:
            snowflake:
              $ref: '#/components/schemas/synq.platforms.v1.SnowflakeIdentifier'
              title: snowflake
          title: snowflake
          required:
            - snowflake
        - properties:
            sqlMesh:
              $ref: '#/components/schemas/synq.platforms.v1.SqlMeshIdentifier'
              title: sql_mesh
          title: sql_mesh
          required:
            - sqlMesh
        - properties:
            synqIntegrationId:
              type: string
              title: synq_integration_id
              description: >-
                Coalesce Quality integration ID maps to the created integration
                on the Coalesce Quality platform.
          title: synq_integration_id
          required:
            - synqIntegrationId
        - properties:
            trino:
              $ref: '#/components/schemas/synq.platforms.v1.TrinoIdentifier'
              title: trino
          title: trino
          required:
            - trino
        - properties:
            unknown:
              $ref: '#/components/schemas/synq.platforms.v1.UnknownDataPlatform'
              title: unknown
          title: unknown
          required:
            - unknown
      additionalProperties: false
      description: >-
        DataPlatformIdentifier is a unique reference to a data platform
        integrated with Coalesce Quality.
    synq.entities.v1.DataproductIdentifier:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Dataproduct id that identifies the Dataproduct
      title: DataproductIdentifier
      required:
        - id
      additionalProperties: false
    synq.platforms.v1.DataPlatformType:
      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_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_SYNQ
    synq.queries.v1.WithType.Type:
      type: object
      oneOf:
        - properties:
            custom:
              type: integer
              title: custom
              format: int32
              description: >-
                Custom types as defined through
                synq.entities.custom.v1.TypesService
          title: custom
          required:
            - custom
        - properties:
            default:
              $ref: '#/components/schemas/synq.entities.v1.EntityType'
              title: default
              description: Default Coalesce Quality types
          title: default
          required:
            - default
      additionalProperties: false
    synq.entities.v1.AirflowDagIdentifier:
      type: object
      properties:
        integrationId:
          type: string
          description: Coalesce Quality integration_id that identifies the Airflow instance
        dagId:
          type: string
          description: Airflow dag_id that identifies the DAG
      title: AirflowDagIdentifier
      required:
        - integrationId
        - dagId
      additionalProperties: false
    synq.entities.v1.AirflowTaskIdentifier:
      type: object
      properties:
        integrationId:
          type: string
          description: Coalesce Quality integration_id that identifies the Airflow instance
        dagId:
          type: string
          description: Airflow dag_id that identifies the DAG
        taskId:
          type: string
          description: Airflow task_id that identifies the task within the DAG
      title: AirflowTaskIdentifier
      required:
        - integrationId
        - dagId
        - taskId
      additionalProperties: false
    synq.entities.v1.AthenaTableIdentifier:
      type: object
      properties:
        instance:
          type: string
          description: |-
            AWS account and region the Athena workgroup runs in, formatted as
             "<account-id>.<region>" (e.g. "123456789012.eu-west-1"). Auto-derived
             from sts:GetCallerIdentity at integration setup time.
        catalog:
          type: string
          description: |-
            Glue Data Catalog name. Almost always "AwsDataCatalog" — the default
             catalog for Athena unless the customer registered a federated catalog.
        database:
          type: string
          description: Glue database (the namespace users typically filter on).
        table:
          type: string
          description: Glue table or view name.
      title: AthenaTableIdentifier
      required:
        - instance
        - catalog
        - database
        - table
      additionalProperties: false
    synq.entities.v1.BigqueryTableIdentifier:
      type: object
      properties:
        project:
          type: string
          description: BigQuery project
        dataset:
          type: string
          description: BigQuery dataset id
        table:
          type: string
          description: BigQuery table name
      title: BigqueryTableIdentifier
      required:
        - project
        - dataset
        - table
      additionalProperties: false
    synq.entities.v1.ClickhouseTableIdentifier:
      type: object
      properties:
        host:
          type: string
          description: Clickhouse hostname without port
        schema:
          type: string
          description: Clickhouse database
        table:
          type: string
          description: Clickhouse table
      title: ClickhouseTableIdentifier
      required:
        - host
        - schema
        - table
      additionalProperties: false
    synq.entities.v1.CustomIdentifier:
      type: object
      properties:
        id:
          type: string
          description: |-
            Id that identifies the custom entity
             The Id should be unique within the custom entity Identifier.
      title: CustomIdentifier
      required:
        - id
      additionalProperties: false
    synq.entities.v1.DatabricksTableIdentifier:
      type: object
      properties:
        workspace:
          type: string
          description: URL of Databricks workspace
        catalog:
          type: string
          description: Databricks catalog
        schema:
          type: string
          description: Databricks schema
        table:
          type: string
          description: Databricks table or view
      title: DatabricksTableIdentifier
      required:
        - workspace
        - catalog
        - schema
        - table
      additionalProperties: false
    synq.entities.v1.DbtCloudNodeIdentifier:
      type: object
      properties:
        projectId:
          type: string
          description: Your dbt Cloud project id
        accountId:
          type: string
          description: Your dbt Cloud account id
        nodeId:
          type: string
          description: Dbt node_id that identifies one of dbt DAG nodes (model, test, etc)
      title: DbtCloudNodeIdentifier
      required:
        - projectId
        - nodeId
      additionalProperties: false
    synq.entities.v1.DbtCoreNodeIdentifier:
      type: object
      properties:
        integrationId:
          type: string
          description: >-
            Opaque identifier of the dbt Core project. Usually the Coalesce
            Quality
             integration id (a UUID), but may also be the dbt project name from
             manifest.json when the integration is configured to identify assets by
             project name. Treat it as an opaque string, not a UUID.
        nodeId:
          type: string
          description: Dbt node_id that identifies one of dbt DAG nodes (model, test, etc)
      title: DbtCoreNodeIdentifier
      required:
        - integrationId
        - nodeId
      additionalProperties: false
    synq.entities.v1.FabricTableIdentifier:
      type: object
      properties:
        instance:
          type: string
          description: |-
            Workspace SQL analytics endpoint host, e.g.
             "<workspace-id>.datawarehouse.fabric.microsoft.com".
        database:
          type: string
          description: Fabric warehouse / lakehouse (database).
        schema:
          type: string
          description: Schema within the database.
        table:
          type: string
          description: Table or view name.
        workspaceId:
          type: string
          description: |-
            Fabric workspace GUID, decoded from the endpoint host in `instance`.
             Optional and informational: the table is addressed by
             instance/database/schema/table, so leave it empty if you don't have it —
             it does not affect how the identifier resolves.
        tenantId:
          type: string
          description: >-
            Entra (Azure AD) tenant GUID, decoded from the endpoint host in
            `instance`.
             Optional and informational, like workspace_id.
      title: FabricTableIdentifier
      required:
        - instance
        - database
        - schema
        - table
      additionalProperties: false
      description: |-
        Microsoft Fabric warehouse/lakehouse table identifier. Fabric is
         workspace-scoped with cross-database three-part [database].[schema].[table]
         T-SQL names.
    synq.entities.v1.MonitorIdentifier:
      type: object
      properties:
        monitoredId:
          $ref: '#/components/schemas/synq.entities.v1.Identifier'
          description: Identifier of the monitored entity
        monitorId:
          type: string
          description: Identifier of the monitor
        segment:
          type: string
          description: Optional monitor segmentation identifier
          nullable: true
        integrationId:
          type: string
          description: Coalesce Quality integration_id of the monitored identifier
          nullable: true
          deprecated: true
      title: MonitorIdentifier
      required:
        - monitoredId
        - monitorId
      additionalProperties: false
    synq.entities.v1.MssqlTableIdentifier:
      type: object
      properties:
        host:
          type: string
          description: Hostname of the SQL Server instance
        database:
          type: string
          description: SQL Server database
        schema:
          type: string
          description: SQL Server schema (e.g. "dbo")
        table:
          type: string
          description: SQL Server table or view
      title: MssqlTableIdentifier
      required:
        - host
        - database
        - schema
        - table
      additionalProperties: false
    synq.entities.v1.MysqlTableIdentifier:
      type: object
      properties:
        host:
          type: string
          description: Mysql hostname without port
        schema:
          type: string
          description: Mysql database
        table:
          type: string
          description: Mysql table
      title: MysqlTableIdentifier
      required:
        - host
        - schema
        - table
      additionalProperties: false
    synq.entities.v1.OracleTableIdentifier:
      type: object
      properties:
        host:
          type: string
          description: Hostname of the Oracle instance
        serviceName:
          type: string
          description: Oracle service name (PDB)
        schema:
          type: string
          description: Oracle schema (= owning user)
        table:
          type: string
          description: Oracle table or view
      title: OracleTableIdentifier
      required:
        - host
        - serviceName
        - schema
        - table
      additionalProperties: false
    synq.entities.v1.PostgresTableIdentifier:
      type: object
      properties:
        host:
          type: string
          description: Postgres hostname without port
        database:
          type: string
          description: Postgres database
        schema:
          type: string
          description: Postgres schema
        table:
          type: string
          description: Postgres table
      title: PostgresTableIdentifier
      required:
        - host
        - database
        - schema
        - table
      additionalProperties: false
    synq.entities.v1.RedshiftTableIdentifier:
      type: object
      properties:
        cluster:
          type: string
          description: Redshift cluster
        database:
          type: string
          description: Redshift database
        schema:
          type: string
          description: Redshift schema
        table:
          type: string
          description: Redshift table
      title: RedshiftTableIdentifier
      required:
        - database
        - schema
        - table
      additionalProperties: false
    synq.entities.v1.SavedViewIdentifier:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Saved view id (client-supplied UUID) that identifies the saved view
      title: SavedViewIdentifier
      required:
        - id
      additionalProperties: false
    synq.entities.v1.SnowflakeTableIdentifier:
      type: object
      properties:
        account:
          type: string
          description: Snowflake account
        database:
          type: string
          description: Snowflake database
        schema:
          type: string
          description: Snowflake schema
        table:
          type: string
          description: Snowflake table
      title: SnowflakeTableIdentifier
      required:
        - account
        - database
        - schema
        - table
      additionalProperties: false
    synq.entities.v1.SqlMeshAuditIdentifier:
      type: object
      properties:
        integrationId:
          type: string
          format: uuid
          description: Coalesce Quality integration_id that identifies the dbt Core project
        fqn:
          type: string
          description: SQLMesh model fully qualified name
        auditId:
          type: string
          description: Identifier of the audit
      title: SqlMeshAuditIdentifier
      required:
        - integrationId
        - fqn
        - auditId
      additionalProperties: false
    synq.entities.v1.SqlMeshModelIdentifier:
      type: object
      properties:
        integrationId:
          type: string
          format: uuid
          description: Coalesce Quality integration_id that identifies the dbt Core project
        fqn:
          type: string
          description: SQLMesh model fully qualified name
      title: SqlMeshModelIdentifier
      required:
        - integrationId
        - fqn
      additionalProperties: false
    synq.entities.v1.SynqPathIdentifier:
      type: object
      properties:
        path:
          type: string
          description: >-
            Coalesce Quality path that identifies the Coalesce Quality entity,
            needs to be one of supported paths
      title: SynqPathIdentifier
      required:
        - path
      additionalProperties: false
    synq.entities.v1.TrinoTableIdentifier:
      type: object
      properties:
        host:
          type: string
          description: Hostname of the Trino instance
        catalog:
          type: string
          description: Trino catalog
        schema:
          type: string
          description: Trino schema
        table:
          type: string
          description: Trino table or view
      title: TrinoTableIdentifier
      required:
        - host
        - catalog
        - schema
        - table
      additionalProperties: false
    synq.platforms.v1.AthenaIdentifier:
      type: object
      properties:
        instance:
          type: string
          description: |-
            AWS account and region the Athena workgroup runs in, formatted as
             "<account-id>.<region>" (e.g. "123456789012.eu-west-1"). Auto-derived
             by SYNQ from sts:GetCallerIdentity at integration setup time.
        catalog:
          type: string
          description: |-
            Glue Data Catalog name. Almost always "AwsDataCatalog" — the default
             catalog for Athena unless the customer registered a federated catalog.
      title: AthenaIdentifier
      required:
        - instance
        - catalog
      additionalProperties: false
    synq.platforms.v1.BigqueryIdentifier:
      type: object
      properties:
        project:
          type: string
          description: BigQuery project
      title: BigqueryIdentifier
      required:
        - project
      additionalProperties: false
    synq.platforms.v1.ClickhouseIdentifier:
      type: object
      properties:
        host:
          type: string
          description: Clickhouse host inclusive of port
        schema:
          type: string
          description: Clickhouse database
      title: ClickhouseIdentifier
      required:
        - host
        - schema
      additionalProperties: false
    synq.platforms.v1.DatabricksIdentifier:
      type: object
      properties:
        workspace:
          type: string
          description: URL of the databricks workspace
      title: DatabricksIdentifier
      required:
        - workspace
      additionalProperties: false
    synq.platforms.v1.DbtCloudIdentifier:
      type: object
      properties:
        apiEndpoint:
          type: string
          description: API endpoint for Dbt Cloud
        accountId:
          type: string
          description: Account ID
        projectId:
          type: string
          description: Project ID
      title: DbtCloudIdentifier
      required:
        - apiEndpoint
        - accountId
        - projectId
      additionalProperties: false
    synq.platforms.v1.DuckDbIdentifier:
      type: object
      properties:
        motherduckAccount:
          type: string
      title: DuckDbIdentifier
      additionalProperties: false
    synq.platforms.v1.FabricIdentifier:
      type: object
      properties:
        instance:
          type: string
          description: |-
            Workspace SQL analytics endpoint host, e.g.
             "<workspace-id>.datawarehouse.fabric.microsoft.com". Identifies the Fabric
             workspace the integration connects to. Fabric is workspace-scoped with
             cross-database queries, so the workspace host alone identifies the platform
             (like Databricks' workspace URL); a specific warehouse/table is addressed by
             FabricTableIdentifier.
        workspaceId:
          type: string
          description: >-
            Fabric workspace GUID — the identifier used by the Fabric REST API
            for
             workspace-scoped resources. The Fabric endpoint host in `instance` encodes
             the tenant and workspace GUIDs; this is the decoded workspace GUID, provided
             so you don't have to decode it yourself. `instance` remains the identifying
             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`
             alongside workspace_id. Optional: empty when the host isn't a standard
             Fabric endpoint.
      title: FabricIdentifier
      required:
        - instance
      additionalProperties: false
    synq.platforms.v1.MssqlIdentifier:
      type: object
      properties:
        host:
          type: string
          description: SQL Server host
        database:
          type: string
          description: Database name
      title: MssqlIdentifier
      required:
        - host
        - database
      additionalProperties: false
    synq.platforms.v1.MysqlIdentifier:
      type: object
      properties:
        host:
          type: string
          description: Mysql host inclusive of port
      title: MysqlIdentifier
      required:
        - host
      additionalProperties: false
    synq.platforms.v1.OracleIdentifier:
      type: object
      properties:
        host:
          type: string
          description: Oracle host
        serviceName:
          type: string
          description: Oracle service name (PDB)
      title: OracleIdentifier
      required:
        - host
        - serviceName
      additionalProperties: false
    synq.platforms.v1.PostgresIdentifier:
      type: object
      properties:
        host:
          type: string
          description: Postgres host inclusive of port
        database:
          type: string
          description: Postgres database
      title: PostgresIdentifier
      required:
        - host
        - database
      additionalProperties: false
    synq.platforms.v1.RedshiftIdentifier:
      type: object
      properties:
        cluster:
          type: string
          description: Redshift cluster
        database:
          type: string
          description: Redshift database
      title: RedshiftIdentifier
      required:
        - cluster
        - database
      additionalProperties: false
    synq.platforms.v1.SnowflakeIdentifier:
      type: object
      properties:
        account:
          type: string
          description: Snowflake account
        database:
          type: string
          description: Snowflake database
      title: SnowflakeIdentifier
      required:
        - account
        - database
      additionalProperties: false
    synq.platforms.v1.SqlMeshIdentifier:
      type: object
      properties:
        defaultDatabaseInstance:
          type: string
          description: Default database instance for SQL Mesh
      title: SqlMeshIdentifier
      required:
        - defaultDatabaseInstance
      additionalProperties: false
    synq.platforms.v1.TrinoIdentifier:
      type: object
      properties:
        coordinator:
          type: string
      title: TrinoIdentifier
      additionalProperties: false
    synq.platforms.v1.UnknownDataPlatform:
      type: object
      title: UnknownDataPlatform
      additionalProperties: false
    synq.entities.v1.EntityType:
      type: string
      title: EntityType
      enum:
        - ENTITY_TYPE_UNSPECIFIED
        - ENTITY_TYPE_BQ_TABLE
        - ENTITY_TYPE_BQ_VIEW
        - ENTITY_TYPE_LOOKER_LOOK
        - ENTITY_TYPE_LOOKER_EXPLORE
        - ENTITY_TYPE_LOOKER_VIEW
        - ENTITY_TYPE_LOOKER_DASHBOARD
        - 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_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_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_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_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_THOUGHTSPOT_LIVEBOARD
        - ENTITY_TYPE_THOUGHTSPOT_WORKSHEET
        - ENTITY_TYPE_SIGMA_WORKBOOK
        - ENTITY_TYPE_SIGMA_DATA_MODEL
        - ENTITY_TYPE_DOMO_PAGE
        - ENTITY_TYPE_DOMO_DATASET
        - ENTITY_TYPE_MSSQL_TABLE
        - ENTITY_TYPE_MSSQL_VIEW
        - ENTITY_TYPE_ORACLE_TABLE
        - ENTITY_TYPE_ORACLE_VIEW
        - ENTITY_TYPE_ATHENA_TABLE
        - ENTITY_TYPE_ATHENA_VIEW
        - ENTITY_TYPE_FABRIC_TABLE
        - ENTITY_TYPE_FABRIC_VIEW
        - ENTITY_TYPE_CUSTOM_ENTITY_GENERIC
        - ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MIN
        - ENTITY_TYPE_CUSTOM_ENTITY_CUSTOM_TYPE_MAX
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````