Select Star data-sources API

The data-sources API from Select Star — 2 operation(s) for data-sources.

OpenAPI Specification

select-star-data-sources-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Select Star Metadata bi data-sources 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: data-sources
paths:
  /v1/data-sources/:
    get:
      operationId: data_sources_list
      description: 'List of the data sources available in authenticated user''s organization (org admin only)


        **Required Role:** Admin (or RBAC policy)'
      parameters:
      - name: meta_types
        required: false
        in: query
        description: A comma separated list of data source meta types to include in the response.
        schema:
          type: string
          enum:
          - bi
          - data_quality
          - dwh
      - 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: 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:
      - data-sources
      security:
      - JWTAuthentication: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDataSourceList'
          description: ''
      x-role-requirements: Admin (or RBAC policy)
  /v1/data-sources/{guid}/:
    get:
      operationId: data_sources_retrieve
      description: 'Retrieve a single data source (org admin only)


        **Required Role:** Admin (or RBAC policy)'
      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:
      - data-sources
      security:
      - JWTAuthentication: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSource'
          description: ''
      x-role-requirements: Admin (or RBAC policy)
components:
  schemas:
    ConnectionStatusEnum:
      enum:
      - OK
      - WA
      - UN
      - ER
      type: string
      description: '* `OK` - Correct

        * `WA` - Warning

        * `UN` - Unknown

        * `ER` - Error'
    DataSource:
      type: object
      properties:
        guid:
          type: string
          readOnly: true
        type:
          $ref: '#/components/schemas/Type6b6Enum'
        name:
          type: string
          maxLength: 100
        keypair:
          $ref: '#/components/schemas/KeyPair'
        last_ingested_on:
          type: string
          format: date-time
          nullable: true
        last_fully_ingested_on:
          type: string
          format: date-time
          readOnly: true
        is_ingesting:
          type: boolean
          readOnly: true
        is_syncing_paused:
          type: boolean
          readOnly: true
        connection_status:
          $ref: '#/components/schemas/ConnectionStatusEnum'
        connection_error_message:
          type: string
          description: Exception message if health check failed
        is_mode_discovery_db_added:
          type: boolean
          readOnly: true
        external_uuid:
          type: string
          nullable: true
          description: UUID used for running aws cloudformation.
          maxLength: 64
        iam_principal:
          type: string
          nullable: true
          description: IAM Principal used for running aws cloudformation.
          maxLength: 64
        cloudformation_url:
          type: object
          additionalProperties:
            type: string
          nullable: true
          readOnly: true
        is_credentials_setup_incomplete:
          type: boolean
          readOnly: true
        processed_through:
          $ref: '#/components/schemas/ProcessedThrough'
        data_types:
          allOf:
          - $ref: '#/components/schemas/BaseType'
          readOnly: true
      required:
      - cloudformation_url
      - data_types
      - guid
      - is_credentials_setup_incomplete
      - is_ingesting
      - is_mode_discovery_db_added
      - is_syncing_paused
      - last_fully_ingested_on
      - name
      - type
    ProcessedThrough:
      type: object
      properties:
        start_time:
          type: array
          items:
            $ref: '#/components/schemas/ProcessedThroughEntry'
      required:
      - start_time
    KeyPair:
      type: object
      properties:
        public_key:
          type: string
          nullable: true
          maxLength: 1000
    PaginatedDataSourceList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/DataSource'
    ProcessedThroughEntry:
      type: object
      properties:
        key:
          type: string
          readOnly: true
        date:
          type: string
          format: date-time
          readOnly: true
      required:
      - date
      - key
    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'
    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
  securitySchemes:
    JWTAuthentication:
      type: http
      scheme: bearer
      bearerFormat: JWT
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"
externalDocs:
  description: Select Star API reference documentation
  url: https://docs.selectstar.com/select-star-api