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

# Query lineage edges

> One row per directed edge between lineage workloads and tables on Snowflake or BigQuery. Direction is expressed by filtering the source or the target side rather than by a parameter. The `*_for_filters` dimensions resolve whichever side of an edge carries the value, and spell Snowflake's database and schema and BigQuery's project and dataset as one pair of names.

Returns one row per combination of the requested dimensions, carrying the requested measures. Each row is keyed by dimension and measure name. `row_count` is the number of rows in `items`: results are not paginated, so an aggregation with more rows than `limit` is cut short at `limit` rather than continued under a `page_token`. Send `X-Team-Id` to evaluate the query as a team you belong to; rows are then limited to what that team's roles reach.

Use this route to walk the Snowflake and BigQuery lineage graph: what reads a table, what builds it, and what feeds a dashboard. A node is an object (`storage`, `view`, `stream` or `stage` on Snowflake, `bigquery_storage` on BigQuery), a workload (for example `dbt`, `query_pattern`, `looker`, `task`, `bigquery_dbt`), or a Tableau `tableau_data_source` or `tableau_workbook` (Snowflake only). An edge goes from source to target. A workload that reads one object and writes another sits on the edge (`edge_*`). A workload that only reads is a target node, and a workload that only writes is a source node. A `*_identifying_metadata_str` value is the node's `key:value` pairs, sorted by key and joined by commas. The graph covers the last 30 complete days and takes no date filter. `sum_spend` is the 30-day dollar cost of the workload queries on the edge. A workload repeats its cost on each of its edges, so do not add `sum_spend` across edges. One request gives one hop. For workload cost use `lineage-workloads`, and for table size use `lineage-tables`. The SELECT app's Lineage page scopes each request to one Snowflake account or one BigQuery `connection_id`, because table names repeat across accounts.



## OpenAPI

````yaml https://api.select.dev/v2/openapi.json post /metrics/lineage-edges/query
openapi: 3.1.0
info:
  title: SELECT API (v2)
  version: 0.1.0
servers:
  - url: https://api.select.dev/v2
    description: SELECT API v2
security: []
tags:
  - name: metrics
    description: >-
      Query cost and usage data across Snowflake, BigQuery, Databricks and
      Tableau. Each route is `POST /v2/metrics/<model>/query` for one semantic
      model. Every route takes the same body shape and returns the same response
      shape. Each route page gives guidance on when to use the route, and worked
      examples.


      ## Body shape


      | Field | Meaning |

      | --- | --- |

      | `measures` | Aggregates to compute, for example `sum_spend`. |

      | `dimensions` | Fields to group by. Each one is returned on every row. |

      | `filter_expression` | An `and`/`or` tree of filters on dimensions,
      applied before aggregation. |

      | `measure_filters` | Filters on measures, applied after aggregation. |

      | `sort` | The order of the rows: `[{"field": "sum_spend", "direction":
      "desc"}]`. |

      | `limit` | The maximum number of rows. Results are not paginated: `limit`
      cuts the result short, and there is no next page. Omit `limit` to get all
      rows. |

      | `aggregate` | Set `false` to list the rows with no grouping. See
      "Listing rows". |


      v2 accepts only `filter_expression`. The body refuses the legacy `filters`
      list.


      ## Filter on dates


      Filter on the `day` field. Use two filters (both bounds are inclusive):


      ```json

      {"operator": "and", "filters": [
        {"field": "day", "operator": ">=", "value": "2026-08-01"},
        {"field": "day", "operator": "<=", "value": "2026-08-31"}], "limit": 1000}
      ```


      Or use one relative filter: `{"field": "day", "operator": "in range",
      "value": "30D"}`. The values are `{N}D` and `{N}M` (the last N days or
      months, today included), `WTD`, `MTD`, `QTD`, `YTD`, and `LMTD` (the whole
      previous calendar month).


      - Do not filter on `hour`, `week`, `month` or `quarter` to bound a range.
      Filter on `day`, and use the coarser fields as dimensions.

      - A timestamp such as `start_time <= "2026-08-31"` compares to midnight
      and drops most of that day. Use `day`, or `start_time < "2026-09-01"`.

      - A snapshot route (for example `snowflake-storage-summary`) describes the
      current state, and a `day` filter does not bound its size and cost fields.
      On routes that join the snapshot to activity, `day` bounds only the
      activity fields. Each route page says which fields these are.


      ## Which measure is cost


      - `sum_spend` (or `spend`, or `cost` on some routes) is the dollar cost in
      the filtered period. Use it for "how much did we spend".

      - `*_annualized` measures extend the spend of the filtered period to a
      year: a `7D` range gives that week's spend times 365 / 7. They are
      projections, not spend.

      - On snapshot routes, `annual_cost`, `*_monthly_cost` and `*_annual_cost`
      are the current rate extended to a month or a year. A date range does not
      bound them.

      - Do not present any of these run-rates as spend in a period.

      - Databricks routes also give DBUs (for example `sum_task_usage`). DBUs
      are not dollars.


      The `spend` route is the consolidated cost of every platform. Use it for
      totals, trends and breakdowns by service. Use a platform route to explain
      what inside the platform caused the cost.


      ## Text values are case-sensitive


      Filter values must match the stored case. A value in the wrong case
      matches no rows, with no error. For example:


      - On `spend`, `connection_type` is `Snowflake`, `Bigquery` or
      `Databricks`, and `"snowflake"` matches nothing.

      - On `search`, `data-freshness` and `workload-metadata-suggestions`,
      `connection_type` is lowercase: `snowflake`, `bigquery`, `databricks`.

      - On `snowflake-workloads`, most `resource_type` values are lowercase keys
      (`query_pattern`, `dbt`), but the AI types are title case (`Cortex
      Analyst`).


      ## Usage groups


      A usage group set divides cost into named groups, such as departments or
      teams. To group by the groups of one set, name the set in `path`:


      ```json

      {"dimensions": [{"field": "usage_group", "path": ["Department"]}],
      "limit": 1000}

      ```


      `path[0]` is the name of the set, not its ID. A plain `"usage_group"`
      dimension groups by every set at once. The same `{"field": ..., "path":
      [...]}` form reads keys of other semi-structured fields, for example
      workload metadata.


      ## Period over period


      Some routes publish `<measure>_previous_period`, `change_<measure>` and
      `percent_change_<measure>`. These measures need one bounded date range on
      `day`, at the top level of `filter_expression`:


      - Use two bounds on `day`, or one `in range` filter. Do not mix the two
      forms.

      - Do not nest the date filter in a sub-expression, and do not bound the
      range with `month` or `quarter`.

      - The previous period is the same number of days, just before the range.
      For `QTD` on 2026-09-28 (2026-07-01 to 2026-09-28, 90 days), the previous
      period is 2026-04-02 to 2026-06-30, not the previous calendar quarter.


      ## Listing rows


      Set `"aggregate": false` and name only `dimensions` to get the rows as
      they are, for example the individual queries that ran longer than ten
      minutes. If the body also names `measures` or `measure_filters`, the route
      aggregates, with no error. Always set a `limit` on a listing.


      ## Default scoping filters


      Some tables hold more than one kind of row, and the SELECT app filters to
      one kind by default. Each route page names these filters. For example:


      - `snowflake-query-patterns`: `{"field": "resource_type", "operator":
      "in", "values": ["query_pattern"]}`. `bigquery-query-patterns` filters
      `workload_type` to `bigquery_query_pattern`, and
      `databricks-query-patterns` filters `resource_type` to
      `databricks_query_pattern`.

      - `snowflake-dbt`: `{"field": "dbt_node_resource_type", "operator": "=",
      "value": "model"}`. Without it, tests, seeds and snapshots rank with
      models. The same filter applies to `bigquery-dbt-queries` and
      `databricks-dbt-queries`.


      ## Teams


      Send `X-Team-Id` to evaluate a query as a team you belong to. The rows are
      then limited to what the team's roles can reach.


      ## Which route answers which question


      | Question | Route |

      | --- | --- |

      | Total spend, spend trend, spend by platform, service or usage group |
      `spend` |

      | Most expensive Snowflake warehouses | `snowflake-workloads` (or
      `snowflake-warehouses` for metering spend) |

      | Warehouse utilization, idle spend, cluster usage |
      `snowflake-warehouses`, `snowflake-warehouse-clusters` |

      | Query latency, spillage and bytes scanned on a warehouse |
      `snowflake-warehouse-query-performance` |

      | Most expensive recurring queries | `snowflake-query-patterns` |

      | Individual queries | `snowflake-queries` |

      | Cost of dbt models, and of dbt runs | `snowflake-dbt`,
      `snowflake-dbt-invocations` |

      | Cost of tasks, stored procedures, dynamic tables | `snowflake-tasks`,
      `snowflake-stored-procedures`, `snowflake-dynamic-tables` |

      | Cost of BI tools (Looker, Mode, Hex, Sigma, Periscope, Tableau) |
      `snowflake-looker`, `snowflake-mode`, `snowflake-hex`, `snowflake-sigma`,
      `snowflake-periscope`, `tableau-queries` |

      | Cost of Fivetran, and of workloads defined by query tags |
      `snowflake-fivetran`, `snowflake-custom-workloads` |

      | Serverless, automatic clustering and Snowpipe cost |
      `snowflake-serverless`, `snowflake-automatic-clustering`,
      `snowflake-snowpipe` |

      | Storage cost in a period | `snowflake-storage`, `bigquery-storage-spend`
      |

      | Largest or unused tables now | `snowflake-storage-summary`,
      `bigquery-storage-summary` |

      | Which workloads read or write a table | `lineage-workloads`,
      `lineage-tables`, `lineage-edges` |

      | BigQuery cost by project, job or query pattern | `bigquery-projects`,
      `bigquery-jobs`, `bigquery-query-patterns` |

      | BigQuery reservations and commitments | `bigquery-reservation-timeline`,
      `bigquery-commitments`, `bigquery-commitment-scopes` |

      | Databricks cost by job, query, SQL warehouse or cluster |
      `databricks-jobs`, `databricks-queries`, `databricks-sql-warehouses`,
      `databricks-clusters` |

      | Savings from SELECT actions | `action-realized-savings` |

      | How current the data is | `data-freshness` |
paths:
  /metrics/lineage-edges/query:
    post:
      tags:
        - metrics
      summary: Query lineage edges
      description: >-
        One row per directed edge between lineage workloads and tables on
        Snowflake or BigQuery. Direction is expressed by filtering the source or
        the target side rather than by a parameter. The `*_for_filters`
        dimensions resolve whichever side of an edge carries the value, and
        spell Snowflake's database and schema and BigQuery's project and dataset
        as one pair of names.


        Returns one row per combination of the requested dimensions, carrying
        the requested measures. Each row is keyed by dimension and measure name.
        `row_count` is the number of rows in `items`: results are not paginated,
        so an aggregation with more rows than `limit` is cut short at `limit`
        rather than continued under a `page_token`. Send `X-Team-Id` to evaluate
        the query as a team you belong to; rows are then limited to what that
        team's roles reach.


        Use this route to walk the Snowflake and BigQuery lineage graph: what
        reads a table, what builds it, and what feeds a dashboard. A node is an
        object (`storage`, `view`, `stream` or `stage` on Snowflake,
        `bigquery_storage` on BigQuery), a workload (for example `dbt`,
        `query_pattern`, `looker`, `task`, `bigquery_dbt`), or a Tableau
        `tableau_data_source` or `tableau_workbook` (Snowflake only). An edge
        goes from source to target. A workload that reads one object and writes
        another sits on the edge (`edge_*`). A workload that only reads is a
        target node, and a workload that only writes is a source node. A
        `*_identifying_metadata_str` value is the node's `key:value` pairs,
        sorted by key and joined by commas. The graph covers the last 30
        complete days and takes no date filter. `sum_spend` is the 30-day dollar
        cost of the workload queries on the edge. A workload repeats its cost on
        each of its edges, so do not add `sum_spend` across edges. One request
        gives one hop. For workload cost use `lineage-workloads`, and for table
        size use `lineage-tables`. The SELECT app's Lineage page scopes each
        request to one Snowflake account or one BigQuery `connection_id`,
        because table names repeat across accounts.
      operationId: query_lineage_edges_route_metrics_lineage_edges_query_post
      parameters:
        - name: x-team-id
          in: header
          required: false
          schema:
            anyOf:
              - type: string
                format: uuid
              - type: 'null'
            description: >-
              Act as this team: rows are limited to what the team's roles reach
              instead of the caller's own. The caller must be a member of the
              team or hold the organization-wide permission the route requires.
            title: X-Team-Id
          description: >-
            Act as this team: rows are limited to what the team's roles reach
            instead of the caller's own. The caller must be a member of the team
            or hold the organization-wide permission the route requires.
        - name: x-tenant-id
          in: header
          required: true
          schema:
            type: string
            description: The organization ID the request is scoped to.
            title: X-Tenant-Id
          description: The organization ID the request is scoped to.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LineageEdgesQuery'
            examples:
              which-workloads-read-a-table-and-what-do-they-cost:
                summary: Which workloads read a table, and what do they cost?
                description: >-
                  - The table is the source: this is its downstream direction.

                  - A read-only workload is the `target_*` node. A workload that
                  writes another table from this one is the `edge_*` workload,
                  and the target is that table.

                  - Snowflake object names are upper case. The value of
                  `source_identifying_metadata_str` must match exactly.

                  - On BigQuery, the table is `bigquery_storage`, and its `_str`
                  value also holds `region`.

                  - `sum_spend` is the 30-day dollars of the workload queries
                  that read this table.
                value:
                  measures:
                    - sum_spend
                  dimensions:
                    - target_resource_type
                    - target_identifying_metadata
                    - edge_resource_type
                    - edge_identifying_metadata
                  filter_expression:
                    operator: and
                    filters:
                      - field: snowflake_account_name
                        operator: '='
                        value: MY_ACCOUNT
                      - field: source_resource_type
                        operator: '='
                        value: storage
                      - field: source_identifying_metadata_str
                        operator: '='
                        value: database_name:ANALYTICS,name:ORDERS,schema_name:PUBLIC
                  sort:
                    - field: sum_spend
                      direction: desc
                  limit: 1000
              which-tables-and-workloads-build-a-table:
                summary: Which tables and workloads build a table?
                description: >-
                  - The table is the target: this is its upstream direction.

                  - A row with a table source and an `edge_*` workload is a
                  workload that reads the source and writes this table.

                  - A row with a table source and a null `edge_resource_type` is
                  an object dependency, for example a view on a table. Its
                  `sum_spend` is null.

                  - A row with a workload source is a workload that writes this
                  table and reads no known table, for example a load from an
                  outside source.
                value:
                  measures:
                    - sum_spend
                  dimensions:
                    - source_resource_type
                    - source_identifying_metadata
                    - edge_resource_type
                    - edge_identifying_metadata
                  filter_expression:
                    operator: and
                    filters:
                      - field: snowflake_account_name
                        operator: '='
                        value: MY_ACCOUNT
                      - field: target_resource_type
                        operator: '='
                        value: storage
                      - field: target_identifying_metadata_str
                        operator: '='
                        value: database_name:ANALYTICS,name:ORDERS,schema_name:PUBLIC
                  sort:
                    - field: sum_spend
                      direction: desc
                  limit: 1000
              which-tables-feed-a-tableau-workbook:
                summary: Which tables feed a Tableau workbook?
                description: >-
                  - The workbook is the target. Its sources are Snowflake tables
                  and Tableau data sources.

                  - Filter one key of the node with `path`. The full `_str`
                  value of a Tableau node holds its owner and project too.

                  - A `tableau_data_source` source has its own upstream tables.
                  Send the same request with that data source as the target.

                  - For a Looker dashboard, use `target_resource_type` `looker`
                  (or `bigquery_looker`) and the path `["dashboard_title"]`.
                value:
                  dimensions:
                    - source_resource_type
                    - source_identifying_metadata
                  filter_expression:
                    operator: and
                    filters:
                      - field: target_resource_type
                        operator: '='
                        value: tableau_workbook
                      - field:
                          field: target_identifying_metadata
                          path:
                            - workbook_name
                        operator: '='
                        value: Revenue Overview
                  limit: 1000
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueryResponse_dict_str__Any__'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '408':
          $ref: '#/components/responses/RequestTimeout'
        '409':
          $ref: '#/components/responses/Conflict'
        '422':
          $ref: '#/components/responses/ValidationFailed'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      security:
        - HTTPBearer: []
components:
  schemas:
    LineageEdgesQuery:
      properties:
        usage_group_sets:
          anyOf:
            - items:
                $ref: '#/components/schemas/UsageGroupSetDefinitionV2'
              type: array
            - type: 'null'
          title: Usage Group Sets
          description: >-
            Categorize against these set definitions instead of the
            organization's saved usage group sets, for evaluating a set before
            saving it. Omit to use the saved sets, which is what every other
            surface reports against.
        measures:
          items:
            anyOf:
              - $ref: >-
                  #/components/schemas/SemiStructuredMeasure_OrgLineageEdgesDimensions_
              - $ref: '#/components/schemas/OrgLineageEdgesMeasures'
          type: array
          title: Measures
          description: Aggregates to compute over the matching rows.
        dimensions:
          items:
            anyOf:
              - $ref: >-
                  #/components/schemas/SemiStructuredDimension_OrgLineageEdgesDimensions_
              - $ref: '#/components/schemas/OrgLineageEdgesDimensions'
          type: array
          title: Dimensions
          description: Columns to group the aggregates by. Each is returned on every row.
        filter_expression:
          anyOf:
            - $ref: >-
                #/components/schemas/FilterExpression_Union_SemiStructuredDimension_OrgLineageEdgesDimensions___OrgLineageEdgesDimensions__
            - type: 'null'
          description: >-
            An `and`/`or` tree of predicates over dimensions, applied before
            aggregation. Omit to match every row the caller can see.
        measure_filters:
          items:
            anyOf:
              - $ref: '#/components/schemas/InFilter_OrgLineageEdgesMeasures_'
              - $ref: >-
                  #/components/schemas/ArrayContainsFilter_OrgLineageEdgesMeasures_
              - $ref: '#/components/schemas/IsFilter_OrgLineageEdgesMeasures_'
              - $ref: '#/components/schemas/LikeFilter_OrgLineageEdgesMeasures_'
              - $ref: '#/components/schemas/MultiLikeFilter_OrgLineageEdgesMeasures_'
              - $ref: '#/components/schemas/EqFilter_OrgLineageEdgesMeasures_'
              - $ref: '#/components/schemas/FilterExpression_OrgLineageEdgesMeasures_'
              - $ref: >-
                  #/components/schemas/InRelativeDateRangeFilter_OrgLineageEdgesMeasures_
          type: array
          title: Measure Filters
          description: Predicates over measures, applied after aggregation.
        sort:
          items:
            $ref: >-
              #/components/schemas/Sort_OrgLineageEdgesMeasures_OrgLineageEdgesDimensions_
          type: array
          title: Sort
          description: Ordering applied to the aggregated rows.
        limit:
          anyOf:
            - type: integer
              minimum: 1
            - type: 'null'
          title: Limit
          description: >-
            Maximum rows to return. Omit for no limit. An aggregation that
            produces more rows than this is silently cut short at the limit.
        return_sql:
          type: boolean
          title: Return Sql
          description: >-
            Return the SQL that produced the rows alongside them, for inspecting
            how a result was computed. Not every query endpoint publishes its
            SQL; where it does not, the field stays null.
          default: false
        pivot:
          anyOf:
            - $ref: '#/components/schemas/PivotConfig'
            - type: 'null'
          description: >-
            Reshape the result so the named dimensions become columns rather
            than rows. Each remaining dimension yields one row, carrying a
            `pivot_data` object keyed by the pivoted dimension values. Every
            name in `pivot.on` must also appear in `dimensions`.
        rollup:
          anyOf:
            - $ref: '#/components/schemas/GroupRollupConfig'
            - type: 'null'
          description: >-
            Return the result as a tree rather than a flat list, grouping the
            named dimensions into one level per tree depth. One request fetches
            the top level; a follow-up naming `rollup.parent_paths` fetches the
            children of the nodes expanded so far, so a deep hierarchy is read a
            level at a time. Every name in `rollup.dimensions` must also appear
            in `dimensions`.
        aggregate:
          type: boolean
          title: Aggregate
          description: >-
            Aggregate the matching rows. Set false to return the underlying rows
            as they are, projecting the requested dimensions with no grouping —
            a listing rather than an aggregation. It is honored only for a
            request that asks for no `measures` and no `measure_filters`, since
            an aggregate has to group to be computable; `limit`, when set,
            bounds the rows returned either way.
          default: true
      additionalProperties: false
      type: object
      title: LineageEdgesQuery
      description: Aggregate edges between lineage workloads and tables.
    QueryResponse_dict_str__Any__:
      properties:
        items:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Items
        page_token:
          anyOf:
            - type: string
            - type: 'null'
          title: Page Token
          description: Opaque cursor for the next page; empty/absent on the last page.
        row_count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Row Count
          description: >-
            Best-effort total for the filtered result set; may be null when
            expensive.
        sql:
          anyOf:
            - type: string
            - type: 'null'
          title: Sql
          description: >-
            The SQL that produced these rows, returned only when the request
            asks for it. Database and schema names are left as placeholders.
            Null when the request did not ask for it, or when this endpoint does
            not publish its SQL.
      type: object
      required:
        - items
      title: QueryResponse[dict[str, Any]]
    UsageGroupSetDefinitionV2:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: >-
            Identifies the set within the request. Result columns are named from
            it, so reuse the id of the saved set being previewed to keep a
            preview's columns comparable with the saved set's; any unused UUID
            works for a set that does not exist yet.
        name:
          type: string
          maxLength: 199
          title: Name
          description: >-
            Name of the set, used as the key categorization results are reported
            under. Must be less than 200 characters.
        team_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Team Id
          description: >-
            Limit the set to the resources this team's roles reach: spend
            outside that scope is reported as `Out of Team Scope` rather than
            matched against the groups. Omit for a set that applies
            organization-wide.
        usage_groups:
          items:
            $ref: '#/components/schemas/UsageGroupDefinitionV2'
          type: array
          title: Usage Groups
          description: The groups to categorize into, in precedence order.
      additionalProperties: false
      type: object
      required:
        - id
        - name
        - usage_groups
      title: UsageGroupSetDefinitionV2
      description: >-
        A usage group set supplied in a request rather than read from storage.


        Groups are evaluated in order and the first matching rule wins, as they
        are

        for a saved set, so the order here is the order that decides a tie.
        Spend

        matching no group is reported as `Uncategorized`.
    SemiStructuredMeasure_OrgLineageEdgesDimensions_:
      properties:
        aggregate_function:
          type: string
          const: array_unique_agg
          title: Aggregate Function
        dimension:
          $ref: >-
            #/components/schemas/SemiStructuredDimension_OrgLineageEdgesDimensions_
      type: object
      required:
        - aggregate_function
        - dimension
      title: SemiStructuredMeasure[OrgLineageEdgesDimensions]
    OrgLineageEdgesMeasures:
      type: string
      enum:
        - sum_spend
    SemiStructuredDimension_OrgLineageEdgesDimensions_:
      properties:
        field:
          $ref: '#/components/schemas/OrgLineageEdgesDimensions'
        path:
          items:
            type: string
          type: array
          title: Path
      type: object
      required:
        - field
        - path
      title: SemiStructuredDimension[OrgLineageEdgesDimensions]
    OrgLineageEdgesDimensions:
      type: string
      enum:
        - bigquery_organization
        - bigquery_billing_export_project
        - bigquery_billing_account
        - connection_id
        - account_metadata
        - connection_type
        - platform_organization
        - platform_instance
        - platform_instance_name
        - snowflake_account_name
        - account_name
        - snowflake_org_name
        - source_identifying_metadata
        - source_identifying_metadata_str
        - source_resource_type
        - target_identifying_metadata
        - target_identifying_metadata_str
        - target_resource_type
        - edge_identifying_metadata
        - edge_identifying_metadata_str
        - edge_resource_type
        - resource_type_for_filters
        - source_database_for_filters
        - source_database_schema_for_filters
        - target_database_for_filters
        - target_database_schema_for_filters
        - dbt_project_name_for_filters
        - dbt_node_resource_type_for_filters
        - dbt_node_name_for_filters
        - query_pattern_type_for_filters
        - usage_group
    FilterExpression_Union_SemiStructuredDimension_OrgLineageEdgesDimensions___OrgLineageEdgesDimensions__:
      properties:
        operator:
          type: string
          enum:
            - and
            - or
          title: Operator
        filters:
          items:
            anyOf:
              - $ref: >-
                  #/components/schemas/FilterExpression_Union_SemiStructuredDimension_OrgLineageEdgesDimensions___OrgLineageEdgesDimensions__
              - $ref: >-
                  #/components/schemas/EqFilter_Union_SemiStructuredDimension_OrgLineageEdgesDimensions___OrgLineageEdgesDimensions__
              - $ref: >-
                  #/components/schemas/InFilter_Union_SemiStructuredDimension_OrgLineageEdgesDimensions___OrgLineageEdgesDimensions__
              - $ref: >-
                  #/components/schemas/ArrayContainsFilter_Union_SemiStructuredDimension_OrgLineageEdgesDimensions___OrgLineageEdgesDimensions__
              - $ref: >-
                  #/components/schemas/IsFilter_Union_SemiStructuredDimension_OrgLineageEdgesDimensions___OrgLineageEdgesDimensions__
              - $ref: >-
                  #/components/schemas/LikeFilter_Union_SemiStructuredDimension_OrgLineageEdgesDimensions___OrgLineageEdgesDimensions__
              - $ref: >-
                  #/components/schemas/MultiLikeFilter_Union_SemiStructuredDimension_OrgLineageEdgesDimensions___OrgLineageEdgesDimensions__
              - $ref: >-
                  #/components/schemas/InRelativeDateRangeFilter_Union_SemiStructuredDimension_OrgLineageEdgesDimensions___OrgLineageEdgesDimensions__
          type: array
          title: Filters
        component_type:
          anyOf:
            - type: string
              const: Resource Filter
            - type: 'null'
          title: Component Type
      type: object
      required:
        - operator
        - filters
      title: >-
        FilterExpression[Union[SemiStructuredDimension[OrgLineageEdgesDimensions],
        OrgLineageEdgesDimensions]]
    InFilter_OrgLineageEdgesMeasures_:
      properties:
        field:
          $ref: '#/components/schemas/OrgLineageEdgesMeasures'
        not:
          type: boolean
          title: Not
          default: false
        values:
          items:
            anyOf:
              - $ref: '#/components/schemas/EqValue'
              - $ref: '#/components/schemas/DictValue'
          type: array
          title: Values
        operator:
          type: string
          enum:
            - in
            - not in
          title: Operator
      type: object
      required:
        - field
        - values
        - operator
      title: InFilter[OrgLineageEdgesMeasures]
    ArrayContainsFilter_OrgLineageEdgesMeasures_:
      properties:
        field:
          $ref: '#/components/schemas/OrgLineageEdgesMeasures'
        not:
          type: boolean
          title: Not
          default: false
        values:
          items:
            anyOf:
              - $ref: '#/components/schemas/EqValue'
              - $ref: '#/components/schemas/DictValue'
          type: array
          title: Values
        operator:
          type: string
          const: array_contains
          title: Operator
      type: object
      required:
        - field
        - values
        - operator
      title: ArrayContainsFilter[OrgLineageEdgesMeasures]
    IsFilter_OrgLineageEdgesMeasures_:
      properties:
        field:
          $ref: '#/components/schemas/OrgLineageEdgesMeasures'
        not:
          type: boolean
          title: Not
          default: false
        value:
          type: 'null'
          title: Value
        operator:
          type: string
          enum:
            - is
            - is not
          title: Operator
      type: object
      required:
        - field
        - operator
      title: IsFilter[OrgLineageEdgesMeasures]
    LikeFilter_OrgLineageEdgesMeasures_:
      properties:
        field:
          $ref: '#/components/schemas/OrgLineageEdgesMeasures'
        not:
          type: boolean
          title: Not
          default: false
        value:
          type: string
          title: Value
        operator:
          type: string
          enum:
            - ilike
            - startswith
            - array_contains_prefix
            - array_contains_substring
          title: Operator
      type: object
      required:
        - field
        - value
        - operator
      title: LikeFilter[OrgLineageEdgesMeasures]
    MultiLikeFilter_OrgLineageEdgesMeasures_:
      properties:
        field:
          $ref: '#/components/schemas/OrgLineageEdgesMeasures'
        not:
          type: boolean
          title: Not
          default: false
        values:
          items:
            type: string
          type: array
          title: Values
        operator:
          type: string
          enum:
            - ilike
            - startswith
          title: Operator
      type: object
      required:
        - field
        - values
        - operator
      title: MultiLikeFilter[OrgLineageEdgesMeasures]
    EqFilter_OrgLineageEdgesMeasures_:
      properties:
        field:
          $ref: '#/components/schemas/OrgLineageEdgesMeasures'
        not:
          type: boolean
          title: Not
          default: false
        value:
          anyOf:
            - $ref: '#/components/schemas/EqValue'
            - $ref: '#/components/schemas/DictValue'
          title: Value
        operator:
          type: string
          enum:
            - '>'
            - '>='
            - <
            - <=
            - '='
            - '!='
          title: Operator
      type: object
      required:
        - field
        - value
        - operator
      title: EqFilter[OrgLineageEdgesMeasures]
    FilterExpression_OrgLineageEdgesMeasures_:
      properties:
        operator:
          type: string
          enum:
            - and
            - or
          title: Operator
        filters:
          items:
            anyOf:
              - $ref: '#/components/schemas/FilterExpression_OrgLineageEdgesMeasures_'
              - $ref: '#/components/schemas/EqFilter_OrgLineageEdgesMeasures_'
              - $ref: '#/components/schemas/InFilter_OrgLineageEdgesMeasures_'
              - $ref: >-
                  #/components/schemas/ArrayContainsFilter_OrgLineageEdgesMeasures_
              - $ref: '#/components/schemas/IsFilter_OrgLineageEdgesMeasures_'
              - $ref: '#/components/schemas/LikeFilter_OrgLineageEdgesMeasures_'
              - $ref: '#/components/schemas/MultiLikeFilter_OrgLineageEdgesMeasures_'
              - $ref: >-
                  #/components/schemas/InRelativeDateRangeFilter_OrgLineageEdgesMeasures_
          type: array
          title: Filters
        component_type:
          anyOf:
            - type: string
              const: Resource Filter
            - type: 'null'
          title: Component Type
      type: object
      required:
        - operator
        - filters
      title: FilterExpression[OrgLineageEdgesMeasures]
    InRelativeDateRangeFilter_OrgLineageEdgesMeasures_:
      properties:
        field:
          $ref: '#/components/schemas/OrgLineageEdgesMeasures'
        not:
          type: boolean
          title: Not
          default: false
        value:
          type: string
          title: Value
        operator:
          type: string
          enum:
            - in range
            - not in range
          title: Operator
      type: object
      required:
        - field
        - value
        - operator
      title: InRelativeDateRangeFilter[OrgLineageEdgesMeasures]
    Sort_OrgLineageEdgesMeasures_OrgLineageEdgesDimensions_:
      properties:
        field:
          anyOf:
            - $ref: >-
                #/components/schemas/SemiStructuredDimension_OrgLineageEdgesDimensions_
            - $ref: '#/components/schemas/OrgLineageEdgesDimensions'
            - $ref: >-
                #/components/schemas/SemiStructuredMeasure_OrgLineageEdgesDimensions_
            - $ref: '#/components/schemas/OrgLineageEdgesMeasures'
          title: Field
        direction:
          type: string
          enum:
            - asc
            - desc
          title: Direction
        column_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Column Key
      type: object
      required:
        - field
        - direction
      title: Sort[OrgLineageEdgesMeasures, OrgLineageEdgesDimensions]
    PivotConfig:
      properties:
        'on':
          items:
            type: string
          type: array
          minItems: 1
          title: 'On'
        limit:
          type: integer
          maximum: 500
          minimum: 1
          title: Limit
          description: Maximum number of pivot columns. Ignored when `keys` is set.
          default: 50
        other:
          type: boolean
          title: Other
          description: >-
            When true, values outside the top-N (or pinned `keys`) are
            aggregated into an overflow bucket under the reserved pivot_data key
            '$__other__'. The sentinel avoids colliding with a real dimension
            value named 'Other'; map it to a display label.
          default: false
        keys:
          anyOf:
            - items:
                type: string
              type: array
              maxItems: 500
              minItems: 1
            - type: 'null'
          title: Keys
          description: >-
            Pinned column keys: when set, results bucket into exactly these
            column keys instead of a computed top-N (`limit` is ignored), so a
            follow-up query can reproduce a prior response's column set. Keys
            use the same JSON-array-string form pivot_data emits (e.g.
            '["wh_1"]'). With `other`, values outside the keys fold into the
            '$__other__' overflow bucket.
        sort:
          anyOf:
            - $ref: '#/components/schemas/PivotSort'
            - type: 'null'
          description: >-
            Orders pivot columns by this `on` dimension; also drives top-N
            column selection instead of the default measure-based selection.
      type: object
      required:
        - 'on'
      title: PivotConfig
      description: Configuration for pivoting query results using OBJECT_AGG.
    GroupRollupConfig:
      properties:
        dimensions:
          items:
            items:
              type: string
            type: array
          type: array
          minItems: 1
          title: Dimensions
        parent_paths:
          anyOf:
            - items:
                items:
                  additionalProperties: true
                  type: object
                type: array
              type: array
            - type: 'null'
          title: Parent Paths
          description: >-
            Expanded parent nodes to fetch children for, scoping each fetch to
            its own subtree instead of an entire depth. Each entry is one node's
            path: an ordered list of segments, where segment i maps every
            dimension name in `dimensions[i]` to that node's value at that
            level. A path's length is the depth of the children being requested
            — e.g. a one-segment path (naming `dimensions[0]`'s dimensions)
            requests that node's depth-1 children. All entries in one request
            must share the same length.
        per_group_limit:
          type: integer
          maximum: 1000
          minimum: 1
          title: Per Group Limit
          description: Top-N children per parent, applied via QUALIFY row_number().
          default: 50
        other:
          type: boolean
          title: Other
          description: >-
            When true, each parent's children beyond the top `per_group_limit`
            are folded into one remainder row per parent, flagged via the
            reserved `__group_other`/`__group_other_count` output columns. Only
            additive measures (plain sums, or percent-of-total windows over a
            sum) are re-aggregated into the remainder row; other measures come
            back null there rather than risk a wrong number. Not supported
            together with `pivot`.
          default: false
      type: object
      required:
        - dimensions
      title: GroupRollupConfig
      description: |-
        Configuration for server-side nested-group rollup.

        Declares an ordered tree hierarchy over a subset of the query's
        dimensions. Each level corresponds to a single tree depth but may bundle
        several dimensions together (e.g. a "table" column that depends on
        ["database_name", "schema_name", "table_name"]). Each depth is rendered
        as an independent, dimension-truncated clone of the query (see
        rollup_query.py) and disambiguated by a reserved `__group_depth` column.
        With `other`, per-parent remainder rows add `__group_depth`'s siblings
        `__group_other`/`__group_other_count`.

        Without `parent_paths`, the request renders depth 0 only (root groups).
        With `parent_paths`, a single child depth is rendered scoped to specific
        already-expanded parent nodes.
    ProblemDetail:
      additionalProperties: true
      description: >-
        RFC 9457-style error payload, served as ``application/problem+json``.


        ``code`` is the stable, machine-readable identifier — consumers branch
        on it,

        never on ``title``. ``type`` stays ``about:blank``: we keep no per-error

        documentation pages. There is no ``instance``/request-id member (we
        don't run

        access logs). See the flat error-code catalogue in §4 of the standards
        doc.
      properties:
        type:
          default: about:blank
          title: Type
          type: string
        title:
          type: string
          title: Title
        status:
          title: Status
          type: integer
        detail:
          title: Detail
          type: string
        code:
          title: Code
          type: string
        retryable:
          title: Retryable
          type: boolean
        details:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          default: null
          title: Details
      required:
        - title
        - status
        - detail
        - code
        - retryable
      title: ProblemDetail
      type: object
    UsageGroupDefinitionV2:
      properties:
        name:
          type: string
          title: Name
        budget:
          anyOf:
            - type: number
            - type: 'null'
          title: Budget
        filter_expression:
          $ref: >-
            #/components/schemas/backend__entities__metrics__base__schemas__filters__FilterExpression_Union_SemiStructuredDimension_SelectOrganizationUsageGroupDimensions___SelectOrganizationUsageGroupDimensions____2
      additionalProperties: false
      type: object
      required:
        - name
        - filter_expression
      title: UsageGroupDefinitionV2
      description: >-
        One usage group inside an inline set definition.


        Carries only what categorization reads — the rule and the name it
        assigns —

        so a caller can describe a group it has not saved. `UsageGroupV2` is the

        stored counterpart, and adds the identity and concurrency fields a
        stored

        resource needs.
    EqFilter_Union_SemiStructuredDimension_OrgLineageEdgesDimensions___OrgLineageEdgesDimensions__:
      properties:
        field:
          anyOf:
            - $ref: >-
                #/components/schemas/SemiStructuredDimension_OrgLineageEdgesDimensions_
            - $ref: '#/components/schemas/OrgLineageEdgesDimensions'
          title: Field
        not:
          type: boolean
          title: Not
          default: false
        value:
          anyOf:
            - $ref: '#/components/schemas/EqValue'
            - $ref: '#/components/schemas/DictValue'
          title: Value
        operator:
          type: string
          enum:
            - '>'
            - '>='
            - <
            - <=
            - '='
            - '!='
          title: Operator
      type: object
      required:
        - field
        - value
        - operator
      title: >-
        EqFilter[Union[SemiStructuredDimension[OrgLineageEdgesDimensions],
        OrgLineageEdgesDimensions]]
    InFilter_Union_SemiStructuredDimension_OrgLineageEdgesDimensions___OrgLineageEdgesDimensions__:
      properties:
        field:
          anyOf:
            - $ref: >-
                #/components/schemas/SemiStructuredDimension_OrgLineageEdgesDimensions_
            - $ref: '#/components/schemas/OrgLineageEdgesDimensions'
          title: Field
        not:
          type: boolean
          title: Not
          default: false
        values:
          items:
            anyOf:
              - $ref: '#/components/schemas/EqValue'
              - $ref: '#/components/schemas/DictValue'
          type: array
          title: Values
        operator:
          type: string
          enum:
            - in
            - not in
          title: Operator
      type: object
      required:
        - field
        - values
        - operator
      title: >-
        InFilter[Union[SemiStructuredDimension[OrgLineageEdgesDimensions],
        OrgLineageEdgesDimensions]]
    ArrayContainsFilter_Union_SemiStructuredDimension_OrgLineageEdgesDimensions___OrgLineageEdgesDimensions__:
      properties:
        field:
          anyOf:
            - $ref: >-
                #/components/schemas/SemiStructuredDimension_OrgLineageEdgesDimensions_
            - $ref: '#/components/schemas/OrgLineageEdgesDimensions'
          title: Field
        not:
          type: boolean
          title: Not
          default: false
        values:
          items:
            anyOf:
              - $ref: '#/components/schemas/EqValue'
              - $ref: '#/components/schemas/DictValue'
          type: array
          title: Values
        operator:
          type: string
          const: array_contains
          title: Operator
      type: object
      required:
        - field
        - values
        - operator
      title: >-
        ArrayContainsFilter[Union[SemiStructuredDimension[OrgLineageEdgesDimensions],
        OrgLineageEdgesDimensions]]
    IsFilter_Union_SemiStructuredDimension_OrgLineageEdgesDimensions___OrgLineageEdgesDimensions__:
      properties:
        field:
          anyOf:
            - $ref: >-
                #/components/schemas/SemiStructuredDimension_OrgLineageEdgesDimensions_
            - $ref: '#/components/schemas/OrgLineageEdgesDimensions'
          title: Field
        not:
          type: boolean
          title: Not
          default: false
        value:
          type: 'null'
          title: Value
        operator:
          type: string
          enum:
            - is
            - is not
          title: Operator
      type: object
      required:
        - field
        - operator
      title: >-
        IsFilter[Union[SemiStructuredDimension[OrgLineageEdgesDimensions],
        OrgLineageEdgesDimensions]]
    LikeFilter_Union_SemiStructuredDimension_OrgLineageEdgesDimensions___OrgLineageEdgesDimensions__:
      properties:
        field:
          anyOf:
            - $ref: >-
                #/components/schemas/SemiStructuredDimension_OrgLineageEdgesDimensions_
            - $ref: '#/components/schemas/OrgLineageEdgesDimensions'
          title: Field
        not:
          type: boolean
          title: Not
          default: false
        value:
          type: string
          title: Value
        operator:
          type: string
          enum:
            - ilike
            - startswith
            - array_contains_prefix
            - array_contains_substring
          title: Operator
      type: object
      required:
        - field
        - value
        - operator
      title: >-
        LikeFilter[Union[SemiStructuredDimension[OrgLineageEdgesDimensions],
        OrgLineageEdgesDimensions]]
    MultiLikeFilter_Union_SemiStructuredDimension_OrgLineageEdgesDimensions___OrgLineageEdgesDimensions__:
      properties:
        field:
          anyOf:
            - $ref: >-
                #/components/schemas/SemiStructuredDimension_OrgLineageEdgesDimensions_
            - $ref: '#/components/schemas/OrgLineageEdgesDimensions'
          title: Field
        not:
          type: boolean
          title: Not
          default: false
        values:
          items:
            type: string
          type: array
          title: Values
        operator:
          type: string
          enum:
            - ilike
            - startswith
          title: Operator
      type: object
      required:
        - field
        - values
        - operator
      title: >-
        MultiLikeFilter[Union[SemiStructuredDimension[OrgLineageEdgesDimensions],
        OrgLineageEdgesDimensions]]
    InRelativeDateRangeFilter_Union_SemiStructuredDimension_OrgLineageEdgesDimensions___OrgLineageEdgesDimensions__:
      properties:
        field:
          anyOf:
            - $ref: >-
                #/components/schemas/SemiStructuredDimension_OrgLineageEdgesDimensions_
            - $ref: '#/components/schemas/OrgLineageEdgesDimensions'
          title: Field
        not:
          type: boolean
          title: Not
          default: false
        value:
          type: string
          title: Value
        operator:
          type: string
          enum:
            - in range
            - not in range
          title: Operator
      type: object
      required:
        - field
        - value
        - operator
      title: >-
        InRelativeDateRangeFilter[Union[SemiStructuredDimension[OrgLineageEdgesDimensions],
        OrgLineageEdgesDimensions]]
    EqValue:
      anyOf:
        - type: integer
        - type: number
        - type: boolean
        - type: string
        - type: string
          format: date
        - type: 'null'
    DictValue:
      additionalProperties:
        anyOf:
          - $ref: '#/components/schemas/EqValue'
          - items:
              $ref: '#/components/schemas/EqValue'
            type: array
      type: object
    PivotSort:
      properties:
        field:
          type: string
          title: Field
        direction:
          type: string
          enum:
            - asc
            - desc
          title: Direction
      type: object
      required:
        - field
        - direction
      title: PivotSort
    backend__entities__metrics__base__schemas__filters__FilterExpression_Union_SemiStructuredDimension_SelectOrganizationUsageGroupDimensions___SelectOrganizationUsageGroupDimensions____2:
      properties:
        operator:
          type: string
          enum:
            - and
            - or
          title: Operator
        filters:
          items:
            anyOf:
              - $ref: >-
                  #/components/schemas/backend__entities__metrics__base__schemas__filters__FilterExpression_Union_SemiStructuredDimension_SelectOrganizationUsageGroupDimensions___SelectOrganizationUsageGroupDimensions____2
              - $ref: >-
                  #/components/schemas/EqFilter_Union_SemiStructuredDimension_SelectOrganizationUsageGroupDimensions___SelectOrganizationUsageGroupDimensions__-Input
              - $ref: >-
                  #/components/schemas/InFilter_Union_SemiStructuredDimension_SelectOrganizationUsageGroupDimensions___SelectOrganizationUsageGroupDimensions__-Input
              - $ref: >-
                  #/components/schemas/ArrayContainsFilter_Union_SemiStructuredDimension_SelectOrganizationUsageGroupDimensions___SelectOrganizationUsageGroupDimensions__-Input
              - $ref: >-
                  #/components/schemas/IsFilter_Union_SemiStructuredDimension_SelectOrganizationUsageGroupDimensions___SelectOrganizationUsageGroupDimensions__-Input
              - $ref: >-
                  #/components/schemas/LikeFilter_Union_SemiStructuredDimension_SelectOrganizationUsageGroupDimensions___SelectOrganizationUsageGroupDimensions__-Input
              - $ref: >-
                  #/components/schemas/MultiLikeFilter_Union_SemiStructuredDimension_SelectOrganizationUsageGroupDimensions___SelectOrganizationUsageGroupDimensions__-Input
              - $ref: >-
                  #/components/schemas/InRelativeDateRangeFilter_Union_SemiStructuredDimension_SelectOrganizationUsageGroupDimensions___SelectOrganizationUsageGroupDimensions__-Input
          type: array
          title: Filters
        component_type:
          anyOf:
            - type: string
              const: Resource Filter
            - type: 'null'
          title: Component Type
      type: object
      required:
        - operator
        - filters
      title: >-
        FilterExpression[Union[SemiStructuredDimension[SelectOrganizationUsageGroupDimensions],
        SelectOrganizationUsageGroupDimensions]]
    EqFilter_Union_SemiStructuredDimension_SelectOrganizationUsageGroupDimensions___SelectOrganizationUsageGroupDimensions__-Input:
      properties:
        field:
          anyOf:
            - $ref: >-
                #/components/schemas/SemiStructuredDimension_SelectOrganizationUsageGroupDimensions_
            - $ref: '#/components/schemas/SelectOrganizationUsageGroupDimensions'
          title: Field
        not:
          type: boolean
          title: Not
          default: false
        value:
          anyOf:
            - $ref: '#/components/schemas/EqValue'
            - $ref: '#/components/schemas/DictValue'
          title: Value
        operator:
          type: string
          enum:
            - '>'
            - '>='
            - <
            - <=
            - '='
            - '!='
          title: Operator
      type: object
      required:
        - field
        - value
        - operator
      title: >-
        EqFilter[Union[SemiStructuredDimension[SelectOrganizationUsageGroupDimensions],
        SelectOrganizationUsageGroupDimensions]]
    InFilter_Union_SemiStructuredDimension_SelectOrganizationUsageGroupDimensions___SelectOrganizationUsageGroupDimensions__-Input:
      properties:
        field:
          anyOf:
            - $ref: >-
                #/components/schemas/SemiStructuredDimension_SelectOrganizationUsageGroupDimensions_
            - $ref: '#/components/schemas/SelectOrganizationUsageGroupDimensions'
          title: Field
        not:
          type: boolean
          title: Not
          default: false
        values:
          items:
            anyOf:
              - $ref: '#/components/schemas/EqValue'
              - $ref: '#/components/schemas/DictValue'
          type: array
          title: Values
        operator:
          type: string
          enum:
            - in
            - not in
          title: Operator
      type: object
      required:
        - field
        - values
        - operator
      title: >-
        InFilter[Union[SemiStructuredDimension[SelectOrganizationUsageGroupDimensions],
        SelectOrganizationUsageGroupDimensions]]
    ArrayContainsFilter_Union_SemiStructuredDimension_SelectOrganizationUsageGroupDimensions___SelectOrganizationUsageGroupDimensions__-Input:
      properties:
        field:
          anyOf:
            - $ref: >-
                #/components/schemas/SemiStructuredDimension_SelectOrganizationUsageGroupDimensions_
            - $ref: '#/components/schemas/SelectOrganizationUsageGroupDimensions'
          title: Field
        not:
          type: boolean
          title: Not
          default: false
        values:
          items:
            anyOf:
              - $ref: '#/components/schemas/EqValue'
              - $ref: '#/components/schemas/DictValue'
          type: array
          title: Values
        operator:
          type: string
          const: array_contains
          title: Operator
      type: object
      required:
        - field
        - values
        - operator
      title: >-
        ArrayContainsFilter[Union[SemiStructuredDimension[SelectOrganizationUsageGroupDimensions],
        SelectOrganizationUsageGroupDimensions]]
    IsFilter_Union_SemiStructuredDimension_SelectOrganizationUsageGroupDimensions___SelectOrganizationUsageGroupDimensions__-Input:
      properties:
        field:
          anyOf:
            - $ref: >-
                #/components/schemas/SemiStructuredDimension_SelectOrganizationUsageGroupDimensions_
            - $ref: '#/components/schemas/SelectOrganizationUsageGroupDimensions'
          title: Field
        not:
          type: boolean
          title: Not
          default: false
        value:
          type: 'null'
          title: Value
        operator:
          type: string
          enum:
            - is
            - is not
          title: Operator
      type: object
      required:
        - field
        - operator
      title: >-
        IsFilter[Union[SemiStructuredDimension[SelectOrganizationUsageGroupDimensions],
        SelectOrganizationUsageGroupDimensions]]
    LikeFilter_Union_SemiStructuredDimension_SelectOrganizationUsageGroupDimensions___SelectOrganizationUsageGroupDimensions__-Input:
      properties:
        field:
          anyOf:
            - $ref: >-
                #/components/schemas/SemiStructuredDimension_SelectOrganizationUsageGroupDimensions_
            - $ref: '#/components/schemas/SelectOrganizationUsageGroupDimensions'
          title: Field
        not:
          type: boolean
          title: Not
          default: false
        value:
          type: string
          title: Value
        operator:
          type: string
          enum:
            - ilike
            - startswith
            - array_contains_prefix
            - array_contains_substring
          title: Operator
      type: object
      required:
        - field
        - value
        - operator
      title: >-
        LikeFilter[Union[SemiStructuredDimension[SelectOrganizationUsageGroupDimensions],
        SelectOrganizationUsageGroupDimensions]]
    MultiLikeFilter_Union_SemiStructuredDimension_SelectOrganizationUsageGroupDimensions___SelectOrganizationUsageGroupDimensions__-Input:
      properties:
        field:
          anyOf:
            - $ref: >-
                #/components/schemas/SemiStructuredDimension_SelectOrganizationUsageGroupDimensions_
            - $ref: '#/components/schemas/SelectOrganizationUsageGroupDimensions'
          title: Field
        not:
          type: boolean
          title: Not
          default: false
        values:
          items:
            type: string
          type: array
          title: Values
        operator:
          type: string
          enum:
            - ilike
            - startswith
          title: Operator
      type: object
      required:
        - field
        - values
        - operator
      title: >-
        MultiLikeFilter[Union[SemiStructuredDimension[SelectOrganizationUsageGroupDimensions],
        SelectOrganizationUsageGroupDimensions]]
    InRelativeDateRangeFilter_Union_SemiStructuredDimension_SelectOrganizationUsageGroupDimensions___SelectOrganizationUsageGroupDimensions__-Input:
      properties:
        field:
          anyOf:
            - $ref: >-
                #/components/schemas/SemiStructuredDimension_SelectOrganizationUsageGroupDimensions_
            - $ref: '#/components/schemas/SelectOrganizationUsageGroupDimensions'
          title: Field
        not:
          type: boolean
          title: Not
          default: false
        value:
          type: string
          title: Value
        operator:
          type: string
          enum:
            - in range
            - not in range
          title: Operator
      type: object
      required:
        - field
        - value
        - operator
      title: >-
        InRelativeDateRangeFilter[Union[SemiStructuredDimension[SelectOrganizationUsageGroupDimensions],
        SelectOrganizationUsageGroupDimensions]]
    SemiStructuredDimension_SelectOrganizationUsageGroupDimensions_:
      properties:
        field:
          $ref: '#/components/schemas/SelectOrganizationUsageGroupDimensions'
        path:
          items:
            type: string
          type: array
          title: Path
      type: object
      required:
        - field
        - path
      title: SemiStructuredDimension[SelectOrganizationUsageGroupDimensions]
    SelectOrganizationUsageGroupDimensions:
      type: string
      enum:
        - bigquery_storage_project
        - bigquery_storage_dataset
        - bigquery_storage_project_dataset
        - bigquery_job_labels_map
        - bigquery_billed_project
        - bigquery_query_project
        - bigquery_source_type
        - connection_id
        - bigquery_reservation_labels_map
        - bigquery_reservation_labels
        - bigquery_organization
        - bigquery_billing_export_project
        - bigquery_billing_account
        - bigquery_reservation_id
        - bigquery_edition
        - bigquery_statement_type
        - bigquery_job_type
        - bigquery_pricing_model
        - bigquery_principal_subject
        - bigquery_priority
        - bigquery_job_id
        - bigquery_query_dialect
        - bigquery_state
        - bigquery_error_reason
        - bigquery_admin_project_id
        - bigquery_query_pattern_id
        - databricks_query_tags_map
        - databricks_pipeline_name
        - databricks_pipeline_tags
        - databricks_pipeline_tags_map
        - databricks_job_name
        - databricks_job_tags
        - databricks_job_tags_map
        - databricks_cluster_id
        - databricks_cluster_name
        - databricks_cluster_tags
        - databricks_cluster_tags_map
        - databricks_warehouse_id
        - databricks_sql_warehouse_name
        - databricks_warehouse_tags
        - databricks_warehouse_tags_map
        - databricks_ai_runtime_workload_id
        - databricks_app_name
        - databricks_base_environment_id
        - databricks_billing_origin_product
        - databricks_budget_policy_id
        - databricks_compute_resource_name
        - databricks_compute_size
        - databricks_data_quality_monitoring_schema_id
        - databricks_data_quality_monitoring_table_id
        - databricks_database_instance_id
        - databricks_genie_agent_id
        - databricks_genie_surface
        - databricks_is_photon
        - databricks_model_serving_endpoint_id
        - databricks_model_serving_endpoint_name
        - databricks_networking_associated_product
        - databricks_networking_client
        - databricks_networking_destination_region
        - databricks_networking_private_endpoint_name
        - databricks_networking_recipient_id
        - databricks_networking_source_region
        - databricks_notebook_path
        - databricks_storage_api_type
        - databricks_usage_type
        - databricks_vector_search_endpoint_id
        - databricks_vector_search_endpoint_name
        - databricks_account_id
        - databricks_workspace_id
        - databricks_workspace_name
        - databricks_compute_type
        - databricks_is_serverless
        - databricks_jobs_tier
        - databricks_sql_tier
        - databricks_dlt_tier
        - databricks_node_type
        - databricks_run_as
        - databricks_created_by
        - databricks_owned_by
        - databricks_sku_name
        - compute_pool_name
        - application_name
        - base_tables_accessed
        - base_schemas_accessed
        - base_databases_accessed
        - base_tables_accessed_csv
        - tables_modified
        - schemas_modified
        - databases_modified
        - tables_modified_csv
        - database_tags
        - database_tags_map
        - object_database_tags
        - object_database_tags_map
        - object_schema_tags
        - object_schema_tags_map
        - object_name_tags
        - object_name_tags_map
        - object_level_tags
        - object_level_tags_map
        - resource_type
        - nice_resource_type
        - identifying_metadata
        - dbt_node_tags
        - dbt_target_database_schema_name
        - dbt_resource_database_schema_name
        - usage_group_metadata
        - snowpipe_database_name
        - snowpipe_database_schema_name
        - snowpipe_fully_qualified_name
        - snowpipe_streaming_database_name
        - snowpipe_streaming_database_schema_name
        - snowpipe_streaming_fully_qualified_name
        - cortex_agent_database_name
        - cortex_agent_database_schema_name
        - cortex_agent_fully_qualified_name
        - task_database_name
        - task_database_schema_name
        - task_fully_qualified_name
        - stored_procedure_database_name
        - stored_procedure_database_schema_name
        - stored_procedure_fully_qualified_name
        - dynamic_table_database_name
        - dynamic_table_database_schema_name
        - dynamic_table_fully_qualified_name
        - warehouse_name
        - warehouse_tags
        - warehouse_tags_map
        - user_name
        - user_tags
        - user_tags_map
        - role_name
        - role_tags
        - role_tags_map
        - database_name
        - schema_name
        - database_schema_name
        - fivetran_database_schema_name
        - custom_workload_app_workload_id
        - query_type
        - snowflake_intelligence_instance
        - snowflake_account_name
        - snowflake_org_name
        - account_name
        - account_locator
        - region
        - service_level
        - managed_by
        - account_name_and_warehouse
        - usage_type
        - account_name_and_usage_type
        - account_metadata
        - connection_type
        - platform_organization
        - platform_instance
        - platform_instance_name
  responses:
    BadRequest:
      description: Bad request
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
    Unauthorized:
      description: Unauthorized
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
      headers:
        WWW-Authenticate:
          description: Authentication challenge for the requested resource.
          required: true
          schema:
            type: string
    Forbidden:
      description: Forbidden
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
    NotFound:
      description: Not found
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
    MethodNotAllowed:
      description: Method not allowed
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
      headers:
        Allow:
          description: HTTP methods supported by the requested resource.
          required: true
          schema:
            type: string
    RequestTimeout:
      description: Request Timeout
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
    Conflict:
      description: Conflict
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
    ValidationFailed:
      description: Validation failed
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
    RateLimited:
      description: Rate limited
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
      headers:
        Retry-After:
          description: Number of seconds to wait before retrying the request.
          required: true
          schema:
            type: integer
            minimum: 0
    InternalError:
      description: Internal error
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
    ServiceUnavailable:
      description: Service unavailable
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
      headers:
        Retry-After:
          description: Number of seconds to wait before retrying the request.
          required: true
          schema:
            type: integer
            minimum: 0
  securitySchemes:
    HTTPBearer:
      type: http
      description: Organization API key (sl_…).
      scheme: bearer

````