Select Star databases API

The databases API from Select Star — 3 operation(s) for databases.

OpenAPI Specification

select-star-databases-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Select Star Metadata bi databases API
  version: 1.0.0
  x-role-system:
    description: This API uses role-based access control
    roles:
      admin: Full access to all operations
      data_manager: Can modify data and configurations
      user: Read-only access to most resources
  description: API for interacting with the Select Star system
  termsOfService: https://www.selectstar.com/terms-of-service
  contact:
    email: support@selectstar.com
  license:
    name: All Rights Reserved
tags:
- name: databases
paths:
  /v1/databases/:
    get:
      operationId: databases_list
      description: 'Lists databases within an organization


        **Required Role:** Viewer or higher'
      parameters:
      - name: active
        required: false
        in: query
        description: A flag to hide deactivated objects.
        schema:
          type: string
      - name: collections
        required: false
        in: query
        description: A comma separated list of collection guids, for to filter the collection items from
        schema:
          type: string
          pattern: ^(cn)_(?P<guid>[23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{22})$
      - name: datasources
        required: false
        in: query
        description: A comma separated list of data source guids to filter for items within those data sources.
        schema:
          type: string
          pattern: ^(ds)_(?P<guid>[23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{22})$
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: search_collections
        required: false
        in: query
        description: Search for an asset using a collection name
        schema:
          type: string
      - name: search_name
        required: false
        in: query
        description: Search for databases given a database name (goes upto data source name)
        schema:
          type: string
      - name: updated_on
        required: false
        in: query
        description: "Filter objects by updated_on. May specify __gt, __gte, __lt or __lte.\n\n API call to: \n\n ENDPOINT/updated_on__gt=2021-08-04T15:12:40&updated_on__lt=2021-08-23 \n\n will result with objects updated_on after  August 4th 2021 at 15:12:40, but before August 23rd 2021. \n\n. If you want to include lower or upper bound of the range use __gte or __lte respectively."
        schema:
          type: string
      tags:
      - databases
      security:
      - JWTAuthentication: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDatabaseList'
          description: ''
      x-role-requirements: Viewer or higher
  /v1/databases/{guid}/:
    get:
      operationId: databases_retrieve
      description: 'Retrieve a single Database object


        **Required Role:** Viewer or higher'
      parameters:
      - in: path
        name: guid
        schema:
          type: string
          pattern: ^([a-zA-z]{2}_[a-zA-Z0-9]{22})|me|default|([a-zA-z]{2}_[a-zA-Z0-9]{22}).personal$
        required: true
      tags:
      - databases
      security:
      - JWTAuthentication: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Database'
          description: ''
      x-role-requirements: Viewer or higher
  /v1/databases/owners/:
    patch:
      operationId: databases_owners_partial_update
      description: 'Update database owners


        **Required Role:** Data Manager or higher'
      tags:
      - databases
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedDatabaseOwnersBulkEditRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedDatabaseOwnersBulkEditRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedDatabaseOwnersBulkEditRequest'
      security:
      - JWTAuthentication: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatabaseOwnersBulkEdit'
          description: ''
      x-role-requirements: Data Manager or higher
components:
  schemas:
    DatabaseSerializer.GuidReferenceField.technical_owner:
      anyOf:
      - $ref: '#/components/schemas/DSUserName'
      - $ref: '#/components/schemas/Team'
      - $ref: '#/components/schemas/UserLite'
      discriminator:
        propertyName: object_type
        mapping:
          dsuser: '#/components/schemas/DSUserName'
          team: '#/components/schemas/Team'
          user: '#/components/schemas/UserLite'
    TypeB32Enum:
      enum:
      - status
      - dbt
      type: string
      description: '* `status` - status

        * `dbt` - dbt'
    DashboardSerializer.GuidReferenceField.business_owner:
      anyOf:
      - $ref: '#/components/schemas/DSUserName'
      - $ref: '#/components/schemas/Team'
      - $ref: '#/components/schemas/UserLite'
      discriminator:
        propertyName: object_type
        mapping:
          dsuser: '#/components/schemas/DSUserName'
          team: '#/components/schemas/Team'
          user: '#/components/schemas/UserLite'
    DatabaseOwnersBulkEdit:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ListSerializer.GuidReferenceField.'
        business_owner:
          allOf:
          - $ref: '#/components/schemas/DatabaseOwnersBulkEditSerializer.GuidReferenceField.business_owner'
          nullable: true
        technical_owner:
          allOf:
          - $ref: '#/components/schemas/DatabaseOwnersBulkEditSerializer.GuidReferenceField.technical_owner'
          nullable: true
        updated_rows:
          type: integer
          readOnly: true
      required:
      - items
      - updated_rows
    DatabaseSerializer.GuidReferenceField.business_owner:
      anyOf:
      - $ref: '#/components/schemas/DSUserName'
      - $ref: '#/components/schemas/Team'
      - $ref: '#/components/schemas/UserLite'
      discriminator:
        propertyName: object_type
        mapping:
          dsuser: '#/components/schemas/DSUserName'
          team: '#/components/schemas/Team'
          user: '#/components/schemas/UserLite'
    PatchedDatabaseOwnersBulkEditRequest:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ListSerializer.GuidReferenceField.Request'
        business_owner:
          allOf:
          - $ref: '#/components/schemas/DatabaseOwnersBulkEditSerializer.GuidReferenceField.business_ownerRequest'
          nullable: true
        technical_owner:
          allOf:
          - $ref: '#/components/schemas/DatabaseOwnersBulkEditSerializer.GuidReferenceField.technical_ownerRequest'
          nullable: true
    DatabaseOwnersBulkEditSerializer.GuidReferenceField.business_owner:
      anyOf:
      - $ref: '#/components/schemas/DSUserName'
      - $ref: '#/components/schemas/Team'
      - $ref: '#/components/schemas/UserLite'
      discriminator:
        propertyName: object_type
        mapping:
          dsuser: '#/components/schemas/DSUserName'
          team: '#/components/schemas/Team'
          user: '#/components/schemas/UserLite'
    BaseMetadata:
      type: object
      properties:
        object_type:
          type: string
          readOnly: true
        guid:
          type: string
          readOnly: true
        name:
          type: string
          nullable: true
          readOnly: true
        breadcrumbs:
          type: array
          items:
            $ref: '#/components/schemas/Breadcrumb'
          readOnly: true
      required:
      - breadcrumbs
      - guid
      - name
      - object_type
    ListSerializer.GuidReferenceField.:
      $ref: '#/components/schemas/Dashboard'
    TaggedItemsLite:
      type: object
      description: Serializer without suggestion source
      properties:
        item:
          $ref: '#/components/schemas/TaggedItemsLiteSerializer.GuidReferenceField.item'
        guid:
          type: string
          readOnly: true
        tag:
          $ref: '#/components/schemas/TagLite'
        kind:
          type: string
        suggested_source_kind:
          type: string
      required:
      - guid
      - item
      - kind
      - suggested_source_kind
      - tag
    Breadcrumb:
      type: object
      properties:
        guid:
          type: string
          maxLength: 25
        target_guid:
          type: string
          maxLength: 256
        target_name:
          type: string
          readOnly: true
        target_object_type:
          type: string
        target_data_type:
          type: string
        target_data_source_guid:
          type: string
          nullable: true
          readOnly: true
        target_data_source_type:
          allOf:
          - $ref: '#/components/schemas/TargetDataSourceTypeEnum'
          nullable: true
        ordinal:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Ordering of breadcrumb within the table
      required:
      - target_data_source_guid
      - target_data_type
      - target_guid
      - target_name
      - target_object_type
    DescriptionSourceEnum:
      enum:
      - user
      - ingestion
      - ai
      - public_docs
      - lineage
      - downstream_lineage
      - upstream_lineage
      - similarity
      - unknown
      type: string
      description: '* `user` - User

        * `ingestion` - Ingestion

        * `ai` - Ai

        * `public_docs` - Public Docs

        * `lineage` - Lineage

        * `downstream_lineage` - Downstream Lineage

        * `upstream_lineage` - Upstream Lineage

        * `similarity` - Similarity

        * `unknown` - Unknown'
    UserSetting:
      type: object
      properties:
        enable_email_notifications:
          type: boolean
          description: Whether this user wants an email notification or not
        enable_slack_notifications:
          type: boolean
          description: Whether this user wants a slack notification or not
        enable_notifications_for_schema_changes:
          type: boolean
          description: Whether this user wants a slack notification for schema changes or not
        enable_notifications_for_metadata_changes:
          type: boolean
          description: Whether this user wants a slack notification for metadata changes or not
        enable_discussions_notifications:
          type: boolean
          description: Whether this user wants a notification for new discussions or not
        enable_favorites_notifications_for_schema_changes:
          type: boolean
          description: Whether this user wants a schema change notification for favorited items or not
        enable_favorites_notifications_for_metadata_changes:
          type: boolean
          description: Whether this user wants a metadata change notification for favorited items or not
        enable_favorites_notifications_for_discussions:
          type: boolean
          description: Whether this user wants a discussion notification for favorited items or not
        default_database_table_column_order:
          allOf:
          - $ref: '#/components/schemas/DefaultDatabaseTableColumnOrderEnum'
          description: 'Database table column order. There are several different ways to order columns


            * `popularity` - popularity

            * `column_ordinal_position` - column_ordinal_position

            * `alphabetical` - alphabetical'
        default_table_dashboard_tab:
          allOf:
          - $ref: '#/components/schemas/DefaultTableDashboardTabEnum'
          description: 'Default tab for table / dashboard page


            * `overview` - overview

            * `columns_charts` - columns_charts'
    DatabaseOwnersBulkEditSerializer.GuidReferenceField.technical_owner:
      anyOf:
      - $ref: '#/components/schemas/DSUserName'
      - $ref: '#/components/schemas/Team'
      - $ref: '#/components/schemas/UserLite'
      discriminator:
        propertyName: object_type
        mapping:
          dsuser: '#/components/schemas/DSUserName'
          team: '#/components/schemas/Team'
          user: '#/components/schemas/UserLite'
    ListSerializer.GuidReferenceField.Request:
      type: string
      description: GUID
    DatabaseOwnersBulkEditSerializer.GuidReferenceField.business_ownerRequest:
      type: string
      description: GUID
    TargetDataSourceTypeEnum:
      enum:
      - airflow
      - aws_s3
      - bigquery
      - data_studio
      - databricks
      - db_agent
      - db2
      - dbt
      - fivetran
      - glue
      - hex
      - looker
      - metabase
      - mode
      - monte_carlo
      - mssql
      - mysql
      - omni
      - openlineage
      - oracle
      - periscope
      - postgres
      - power_bi
      - quicksight
      - redshift
      - salesforce
      - salesforce_crma
      - sigma
      - snowflake
      - tableau
      - thoughtspot
      - trial
      - trial_redshift
      type: string
      description: '* `airflow` - Airflow

        * `aws_s3` - AWS S3

        * `bigquery` - BigQuery

        * `data_studio` - Looker Studio

        * `databricks` - Databricks

        * `db_agent` - DB Agent

        * `db2` - DB2

        * `dbt` - dbt

        * `fivetran` - Fivetran

        * `glue` - Glue

        * `hex` - Hex

        * `looker` - Looker

        * `metabase` - Metabase

        * `mode` - Mode

        * `monte_carlo` - Monte Carlo

        * `mssql` - MS SQL

        * `mysql` - MySQL

        * `omni` - Omni BI

        * `openlineage` - Open Lineage

        * `oracle` - Oracle

        * `periscope` - Periscope

        * `postgres` - PostgreSQL

        * `power_bi` - Power BI

        * `quicksight` - QuickSight

        * `redshift` - Redshift

        * `salesforce` - Salesforce

        * `salesforce_crma` - Salesforce Analytics

        * `sigma` - Sigma

        * `snowflake` - Snowflake

        * `tableau` - Tableau

        * `thoughtspot` - ThoughtSpot

        * `trial` - Trial

        * `trial_redshift` - Trial Redshift'
    TaggedItemsLiteWithSourceSerializer.GuidReferenceField.suggestion_source_object:
      anyOf:
      - $ref: '#/components/schemas/PiiRule'
      - $ref: '#/components/schemas/TaggedItemsLite'
      discriminator:
        propertyName: object_type
        mapping:
          piirule: '#/components/schemas/PiiRule'
          taggeditems: '#/components/schemas/TaggedItemsLite'
    DatabasePopularity:
      type: object
      properties:
        timeframe:
          type: integer
          readOnly: true
          default: 90
        user_count:
          type: integer
          readOnly: true
        service_query_count:
          type: integer
          readOnly: true
        popularity:
          type: integer
          readOnly: true
          description: Popularity score for this object from 0-100
        query_count:
          type: integer
      required:
      - popularity
      - query_count
      - service_query_count
      - timeframe
      - user_count
    DefaultTableDashboardTabEnum:
      enum:
      - overview
      - columns_charts
      type: string
      description: '* `overview` - overview

        * `columns_charts` - columns_charts'
    UserLite:
      type: object
      properties:
        guid:
          type: string
          readOnly: true
        first_name:
          type: string
          readOnly: true
        last_name:
          type: string
          readOnly: true
        team:
          allOf:
          - $ref: '#/components/schemas/TeamShortcut'
          readOnly: true
        email:
          type: string
          format: email
          readOnly: true
          title: Email address
        avatar:
          type: string
          format: uri
          readOnly: true
          nullable: true
        is_active:
          type: boolean
          readOnly: true
      required:
      - avatar
      - email
      - first_name
      - guid
      - is_active
      - last_name
      - team
    CollectionLite:
      type: object
      properties:
        guid:
          type: string
          readOnly: true
        name:
          type: string
          readOnly: true
        icon:
          type: string
          readOnly: true
        data_types:
          allOf:
          - $ref: '#/components/schemas/BaseType'
          readOnly: true
        breadcrumbs:
          type: array
          items:
            $ref: '#/components/schemas/Breadcrumb'
          readOnly: true
        emoji:
          type: string
          readOnly: true
          nullable: true
          description: Unicode representation of the selected emoji
        color_scheme:
          type: string
          readOnly: true
          nullable: true
          description: Color scheme selected by the user for the icon
        linked_from:
          type: array
          items:
            type: string
          readOnly: true
          description: Tags having a link to this collection
      required:
      - breadcrumbs
      - color_scheme
      - data_types
      - emoji
      - guid
      - icon
      - linked_from
      - name
    DSUserName:
      type: object
      properties:
        guid:
          type: string
          maxLength: 25
        display_name:
          type: string
          nullable: true
          description: The username field for the user used by the datasource
          maxLength: 100
        name:
          type: string
          maxLength: 100
        data_source:
          $ref: '#/components/schemas/DataSourceInfo'
      required:
      - data_source
      - name
    TaggedItemsLiteSerializer.GuidReferenceField.item:
      $ref: '#/components/schemas/BaseMetadata'
    QueryError:
      type: object
      properties:
        event_on:
          type: string
          format: date-time
          description: When an event in 'History' was created. Each event is linked to a query in Looker.
        message:
          type: string
          description: General information about the query, often around error reporting or the current status
        source:
          type: string
          description: The source of a query, such as a saved Look, Explore, scheduled task, API, etc
        issuer_source:
          type: string
          description: The source of a query, bucketed. Buckets are the API, users themselves, or automated system activities (PDTs & schedules)
        count:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          description: The count of error occurrences
        dashboard_user:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          description: The count of distinct users that have run dashboard queries
      required:
      - count
      - dashboard_user
      - event_on
      - issuer_source
      - message
      - source
    PiiRule:
      type: object
      properties:
        guid:
          type: string
          maxLength: 25
        name:
          type: string
          description: PII Rule name display name
          maxLength: 50
        type:
          allOf:
          - $ref: '#/components/schemas/PIIType'
          description: 'The type of PII this represents


            * `address` - address

            * `banking` - banking

            * `birthdate` - birthdate

            * `document` - document

            * `email` - email

            * `face_photo` - face_photo

            * `gender` - gender

            * `marital_status` - marital_status

            * `nationality` - nationality

            * `online_account` - online_account

            * `online_address` - online_address

            * `password` - password

            * `person` - person

            * `phone` - phone

            * `salary` - salary

            * `ssn` - ssn

            * `username` - username'
        regex:
          type: string
          description: The PII Rule
        created_by:
          allOf:
          - $ref: '#/components/schemas/UserLite'
          readOnly: true
        active:
          type: boolean
        item_count:
          type: integer
          readOnly: true
      required:
      - created_by
      - item_count
      - name
      - regex
      - type
    Type6b6Enum:
      enum:
      - airflow
      - aws_s3
      - bigquery
      - data_studio
      - databricks
      - db_agent
      - db2
      - dbt
      - fivetran
      - glue
      - hex
      - looker
      - metabase
      - mode
      - monte_carlo
      - mssql
      - mysql
      - omni
      - openlineage
      - oracle
      - periscope
      - postgres
      - power_bi
      - quicksight
      - redshift
      - salesforce
      - salesforce_crma
      - sigma
      - snowflake
      - tableau
      - thoughtspot
      - trial
      - trial_redshift
      type: string
      description: '* `airflow` - Airflow

        * `aws_s3` - AWS S3

        * `bigquery` - BigQuery

        * `data_studio` - Looker Studio

        * `databricks` - Databricks

        * `db_agent` - DB Agent

        * `db2` - DB2

        * `dbt` - dbt

        * `fivetran` - Fivetran

        * `glue` - Glue

        * `hex` - Hex

        * `looker` - Looker

        * `metabase` - Metabase

        * `mode` - Mode

        * `monte_carlo` - Monte Carlo

        * `mssql` - MS SQL

        * `mysql` - MySQL

        * `omni` - Omni BI

        * `openlineage` - Open Lineage

        * `oracle` - Oracle

        * `periscope` - Periscope

        * `postgres` - PostgreSQL

        * `power_bi` - Power BI

        * `quicksight` - QuickSight

        * `redshift` - Redshift

        * `salesforce` - Salesforce

        * `salesforce_crma` - Salesforce Analytics

        * `sigma` - Sigma

        * `snowflake` - Snowflake

        * `tableau` - Tableau

        * `thoughtspot` - ThoughtSpot

        * `trial` - Trial

        * `trial_redshift` - Trial Redshift'
    TagLite:
      type: object
      properties:
        guid:
          type: string
          maxLength: 25
        type:
          $ref: '#/components/schemas/TypeB32Enum'
        name:
          type: string
          readOnly: true
          description: Tag display name
        icon:
          type: string
          readOnly: true
          description: Icon identifier (for status tags)
        color:
          type: string
          readOnly: true
          description: 'Tag color (for category tags). Allowed formats: ''#ffeedd'' and ''#ffeeddcc'' (RGB/ARGB hexadecimal)'
          deprecated: true
        visible:
          type: boolean
          readOnly: true
        links_to:
          type: string
          nullable: true
        breadcrumbs:
          type: array
          items:
            $ref: '#/components/schemas/Breadcrumb'
          readOnly: true
      required:
      - breadcrumbs
      - color
      - icon
      - name
      - type
      - visible
    Dashboard:
      type: object
      description: 'Adds support for reading a description from metadata

        that support modifying description'
      properties:
        guid:
          type: string
          maxLength: 25
        bifolder:
          $ref: '#/components/schemas/BIFolder'
        name:
          type: string
          nullable: true
        data_type:
          type: string
          readOnly: true
        description:
          type: string
          nullable: true
          description: Active description
        search_name:
          type: string
          readOnly: true
        description_source:
          allOf:
          - $ref: '#/components/schemas/DescriptionSourceEnum'
          nullable: true
        user_description:
          type: string
          nullable: true
          description: User description
        user_description_author:
          allOf:
          - $ref: '#/components/schemas/UserLite'
          readOnly: true
        ingested_description:
          type: string
          nullable: true
          description: Unmodified description from the data source
        ai_description:
          type: string
          nullable: true
          description: AI-generated description
        richtext_description:
          type: string
          nullable: true
          description: Richtext formatted description. Can be in Slatejs or Draftjs format.
        dashboard_created_at:
          type: string
          format: date-time
          nullable: true
          description: The creation date ingested from API
        dashboard_updated_at:
          type: string
          format: date-time
          nullable: true
          description: The updation date ingested from API
        last_successful_run:
          type: string
          format: date-time
          nullable: true
          description: The last date where the dashboard was successfully run at
        was_last_run_successful:
          type: boolean
          nullable: true
          description: Was the last run to this dashboard successful at the time we ingested?
        last_run_at:
          type: string
          format: date-time
          nullable: true
          description: The last date where the dashboard was attempted to run at
        query_count:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        chart_count:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        runs_count:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        view_count:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        dsuser_created_by:
          $ref: '#/components/schemas/DSUser'
        top_dsuser:
          $ref: '#/components/schemas/DSUser'
        dsuser_owned_by:
          $ref: '#/components/schemas/DSUser'
        business_owner:
          $ref: '#/components/schemas/DashboardSerializer.GuidReferenceField.business_owner'
        technical_owner:
          $ref: '#/components/schemas/DashboardSerializer.GuidReferenceField.technical_owner'
        url:
          type: string
          readOnly: true
          nullable: true
          description: 'The full url of the report obtained from the links field. '
        popularity:
          allOf:
          - $ref: '#/components/schemas/DashboardPopularity'
          readOnly: true
        query_errors:
          type: array
          items:
            $ref: '#/components/schemas/QueryError'
        tagged_items:
          type: array
          items:
            $ref: '#/components/schemas/TaggedItemsLiteWithSource'
          readOnly: true
        size:
          type: integer
          maximum: 9223372036854775807
          minimum: -9223372036854775808
          format: int64
          nullable: true
          description: Size of dashboard objects in bytes
        full_path:
          type: string
          nullable: true
          description: The cached full path of the dashboard folder
        is_hidden:
          type: boolean
          readOnly: true
        downstream_objects_counts:
          allOf:
          - $ref: '#/components/schemas/RelatedObjectsCounts'
          readOnly: true
        upstream_objects_counts:
          allOf:
          - $ref: '#/components/schemas/RelatedObjectsCounts'
          readOnly: true
        source_tables_count:
          type: integer
          default: 0
        last_query_error:
          $ref: '#/components/schemas/QueryError'
        breadcrumbs:
          type: array
          items:
            $ref: '#/components/schemas/Breadcrumb'
          readOnly: true
        data_types:
          allOf:
          - $ref: '#/components/schemas/BaseType'
          readOnly: true
        raw_sql:
          type: string
          nullable: true
        last_viewed_at:
          type: string
          format: date
        collections:
          type: array
          items:
            $ref: '#/components/schemas/CollectionLite'
          readOnly: true
      required:
      - bifolder
      - breadcrumbs
      - collections
      - data_type
      - data_types
      - downstream_objects_counts
      - is_hidden
      - popularity
      - search_name
      - tagged_items
      - upstream_objects_counts
      - url
      - user_description_author
    BaseType:
      type: object
      description: 'Base Serializer to inject the following `type` information:

        - Object Type: Model Name of the Object: Table, Dashboard, ReportQuery

        - Data Source Type: snowflake, databricks etc.

        - Data Type: Additional type like tile, visual, card etc.'
      properties:
        object_type:
          type: string
          nullable: true
          readOnly: true
        data_source_type:
          type: string
          nullable: true
          readOnly: true
        data_type:
          type: string
          nullable: true
          readOnly: true
        external_database_type:
          type: string
          nullable: true
          readOnly: true
      required:
      - data_source_type
      - data_type
      - external_database_type
      - object_type
    DataSourceInfo:
      type: object
      properties:
        guid:
          type: string
          maxLength: 25
        type:
          $ref: '#/components/schemas/Type6b6Enum'
        name:
          type: string
          maxLength: 100
        last_ingested_on:
          type: string
          format: date-time
          nullable: true
      required:
      - name
      - type
    User:
      type: object
      properties:
        guid:
          type: string
          readOnly: true
        first_name:
          type: string
        last_name:
          type: string
        email:
          type: string
          format: email
          pattern: ''
          description: Email address of the user. Only corporate email addresses are allowed.
        avatar:
          type: string
          format: uri
          readOnly: true
          nullable: true
        team:
          allOf:
          - $ref: '#/components/schemas/TeamShortcut'
          readOnly: true
        last_login:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        last_activity:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        is_invitation_pending:
          readOnly: true
        is_active:
          type: boolean
          readOnly: true
        is_verified:
          type: boolean
          readOnly: true
          description: Whether the user has verified email or not
        is_agreed_to_terms:
          type: boolean
        settings:
          $ref: '#/components/schemas/UserSetting'
        created_on:
          type: string
          format: date-time
          readOnly: true
      required:
      - avatar
      - created_on
      - email
      - first_name
      - guid
      - is_active
      - is_agreed_to_terms
      - is_invitation_pending
      - is_verified
      - last_activity
      - last_login
      - last_name
      - team
    DefaultDatabaseTableColumnOrderEnum:
      enum:
      - popularity
      - column_ordinal_position
      - alphabetical
      type: string
      description: '* `popularity` - popularity

        * `column_ordinal_position` - column_ordinal_position

        * `alphabetical` - alphabetical'
    DSUser:
      type: object
      properties:
        guid:
          type: string
          readOnly: true
        data_source:
          $ref: '#/components/schemas/DataSourceInfo'
        user:
          allOf:
          - $ref: '#/components/schemas/User'
          nullable: true
        name:
          type: string
          readOnly: true
        display_name:
          type: string
          readOnly: true
          nullable: true
          description: The username field for the user used by the datasource
        email:
          type: string


# --- truncated at 32 KB (43 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/select-star/refs/heads/main/openapi/select-star-databases-api-openapi.yml