Bigeye Join Service API

The JoinService API from Bigeye — 3 operation(s) for joinservice.

OpenAPI Specification

bigeye-joinservice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Observability Join Service API
  version: version not set
servers:
- url: https://app.bigeye.com
security:
- basicAuth: []
- Personal_API_Key: []
tags:
- name: JoinService
paths:
  /api/v1/joins:
    post:
      operationId: JoinService_CreateJoin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/generatedCreateOrUpdateJoinRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/generatedCreateOrUpdateJoinResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      summary: Create join
      tags:
      - JoinService
  /api/v1/joins/{joinId}:
    delete:
      operationId: JoinService_DeleteJoin
      parameters:
      - in: path
        name: joinId
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/generatedEmpty'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      summary: Delete join
      tags:
      - JoinService
    get:
      operationId: JoinService_GetJoin
      parameters:
      - in: path
        name: joinId
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/generatedJoin'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      summary: Get join
      tags:
      - JoinService
    put:
      operationId: JoinService_UpdateJoin
      parameters:
      - in: path
        name: joinId
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/generatedCreateOrUpdateJoinRequestWrapper'
        required: true
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/generatedCreateOrUpdateJoinResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      summary: Update join
      tags:
      - JoinService
  /api/v1/joins/fetch:
    post:
      operationId: JoinService_GetJoins
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/generatedGetJoinsRequest'
        required: true
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/generatedGetJoinsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
      summary: Get joins
      tags:
      - JoinService
components:
  schemas:
    generatedEmpty:
      type: object
    generatedTag:
      properties:
        colorHex:
          title: 'color_hex includes a # prefix (e.g. “#181818” is correct, “181818” is incorrect)'
          type: string
        createdAt:
          format: int64
          type: string
        id:
          format: int32
          type: integer
        name:
          type: string
        updatedAt:
          format: int64
          type: string
        workspaceId:
          format: int32
          type: integer
      title: Tags
      type: object
    generatedSortDirection:
      default: SORT_DIRECTION_UNSPECIFIED
      enum:
      - SORT_DIRECTION_UNSPECIFIED
      - SORT_DIRECTION_ASCENDING
      - SORT_DIRECTION_DESCENDING
      title: Unspecified will default to ASCENDING
      type: string
    generatedJoinSortField:
      default: JOIN_SORT_FIELD_UNSPECIFIED
      enum:
      - JOIN_SORT_FIELD_UNSPECIFIED
      - JOIN_SORT_FIELD_LEFT_TABLE
      - JOIN_SORT_FIELD_RIGHT_TABLE
      - JOIN_SORT_FIELD_KEYS
      type: string
    generatedJoin:
      properties:
        entityInfo:
          $ref: '#/components/schemas/generatedEntityInfo'
        id:
          format: int32
          type: integer
        keyColumns:
          items:
            $ref: '#/components/schemas/generatedJoinColumnPairing'
          type: array
        leftFilter:
          $ref: '#/components/schemas/generatedJoinTableFilter'
        leftTable:
          $ref: '#/components/schemas/generatedTable'
        rightFilter:
          $ref: '#/components/schemas/generatedJoinTableFilter'
        rightTable:
          $ref: '#/components/schemas/generatedTable'
      type: object
    generatedSchema:
      description: '*

        Representation of a schema in a warehouse.'
      properties:
        dataNodeId:
          format: int32
          type: integer
        databaseType:
          $ref: '#/components/schemas/generatedWarehouseType'
        id:
          format: int32
          type: integer
        indexByTable:
          type: boolean
        isFavorite:
          type: boolean
        isVirtual:
          type: boolean
        latestMetricTimeValue:
          format: int64
          type: string
        logicalSizeBytes:
          format: int64
          type: string
        name:
          type: string
        numQueriesLatestPeriod:
          format: int32
          type: integer
        popularityScore:
          format: double
          type: number
        schemaChangeInfo:
          $ref: '#/components/schemas/generatedSchemaChangeInfo'
        sizeLastUpdatedAtMillis:
          format: int64
          type: string
        tags:
          items:
            $ref: '#/components/schemas/generatedTag'
          type: array
        warehouseId:
          format: int32
          type: integer
        warehouseName:
          type: string
      type: object
    generatedTimeInterval:
      properties:
        intervalType:
          $ref: '#/components/schemas/generatedTimeIntervalType'
        intervalValue:
          format: int32
          type: integer
      type: object
    generatedTimeIntervalType:
      default: UNDEFINED_TIME_INTERVAL_TYPE
      enum:
      - UNDEFINED_TIME_INTERVAL_TYPE
      - HOURS_TIME_INTERVAL_TYPE
      - MINUTES_TIME_INTERVAL_TYPE
      - SECONDS_TIME_INTERVAL_TYPE
      - DAYS_TIME_INTERVAL_TYPE
      - WEEKDAYS_TIME_INTERVAL_TYPE
      - MARKET_DAYS_TIME_INTERVAL_TYPE
      - MONTHS_TIME_INTERVAL_TYPE
      - WEEKS_TIME_INTERVAL_TYPE
      - YEARS_TIME_INTERVAL_TYPE
      type: string
    generatedJoinColumnIdPairing:
      properties:
        leftColumnId:
          format: int32
          type: integer
        rightColumnId:
          format: int32
          type: integer
      type: object
    generatedTable:
      description: '*

        Representation of a table in a warehouse.'
      properties:
        columns:
          items:
            $ref: '#/components/schemas/generatedTableColumn'
          type: array
        dataNodeId:
          format: int32
          type: integer
        databaseName:
          type: string
        id:
          format: int32
          type: integer
        isFavorite:
          type: boolean
        latestMetricTimeValue:
          format: int64
          type: string
        logicalSizeBytes:
          format: int64
          type: string
        metricTimeColumn:
          $ref: '#/components/schemas/generatedTableColumn'
        name:
          type: string
        numQueriesLatestPeriod:
          format: int32
          type: integer
        popularityScore:
          format: double
          type: number
        requiresPartitionFilter:
          type: boolean
        schema:
          $ref: '#/components/schemas/generatedSchema'
        schemaChangeInfo:
          $ref: '#/components/schemas/generatedSchemaChangeInfo'
        schemaId:
          format: int32
          type: integer
        schemaName:
          type: string
        sizeLastUpdatedAtMillis:
          format: int64
          type: string
        tableType:
          $ref: '#/components/schemas/generatedTableType'
        tags:
          items:
            $ref: '#/components/schemas/generatedTag'
          type: array
        usesAgent:
          type: boolean
        warehouseId:
          format: int32
          type: integer
        warehouseName:
          type: string
        warehouseVendor:
          $ref: '#/components/schemas/generatedWarehouseType'
      type: object
    generatedCreateOrUpdateJoinResponse:
      properties:
        join:
          $ref: '#/components/schemas/generatedJoin'
      type: object
    generatedPaginationInfo:
      properties:
        firstSortDistinctValues:
          format: int64
          type: string
        nextCursor:
          type: string
        noNumRecords:
          type: boolean
        numRecords:
          format: int32
          type: integer
        prevCursor:
          type: string
      type: object
    generatedTableColumn:
      description: '*

        Representation of a column in a table.'
      properties:
        canBeMetricTime:
          type: boolean
        dataNodeId:
          format: int32
          type: integer
        extendedType:
          type: string
        fullType:
          type: string
        id:
          format: int32
          type: integer
        isFavorite:
          type: boolean
        isKeyInJoin:
          type: boolean
        isMetricTime:
          type: boolean
        isNullable:
          type: boolean
        isPartitionField:
          type: boolean
        name:
          type: string
        parentColumnId:
          format: int32
          type: integer
        schemaChangeInfo:
          $ref: '#/components/schemas/generatedSchemaChangeInfo'
        tags:
          items:
            $ref: '#/components/schemas/generatedTag'
          type: array
        type:
          type: string
      type: object
    protobufAny:
      properties:
        typeUrl:
          type: string
        value:
          format: byte
          type: string
      type: object
    generatedEntityInfo:
      properties:
        createdBy:
          format: int32
          type: integer
        createdEpochSeconds:
          format: int64
          type: string
        updatedBy:
          format: int32
          type: integer
        updatedEpochSeconds:
          format: int64
          type: string
      type: object
    generatedCreateOrUpdateJoinRequestWrapper:
      properties:
        joinId:
          format: int32
          type: integer
        request:
          $ref: '#/components/schemas/generatedCreateOrUpdateJoinRequest'
      type: object
    generatedGetJoinsResponse:
      properties:
        joins:
          items:
            $ref: '#/components/schemas/generatedJoin'
          type: array
        paginationInfo:
          $ref: '#/components/schemas/generatedPaginationInfo'
      type: object
    generatedCreateOrUpdateJoinRequest:
      properties:
        keyColumns:
          items:
            $ref: '#/components/schemas/generatedJoinColumnIdPairing'
          type: array
        leftFilter:
          $ref: '#/components/schemas/generatedJoinTableFilter'
        leftTableId:
          format: int32
          type: integer
        rightFilter:
          $ref: '#/components/schemas/generatedJoinTableFilter'
        rightTableId:
          format: int32
          type: integer
      type: object
    generatedJoinSortOption:
      properties:
        sortDirection:
          $ref: '#/components/schemas/generatedSortDirection'
        sortField:
          $ref: '#/components/schemas/generatedJoinSortField'
      type: object
    generatedJoinTableFilter:
      properties:
        rctFilter:
          $ref: '#/components/schemas/generatedRowCreationTimeFilter'
        whereClause:
          type: string
      type: object
    generatedSchemaChangeInfo:
      properties:
        initialSchemaScanAt:
          format: int64
          type: string
        lastSchemaChangeAt:
          format: int64
          type: string
        mostRecentSchemaScanAt:
          format: int64
          type: string
      type: object
    generatedGetJoinsRequest:
      properties:
        columnId:
          format: int32
          type: integer
        pageCursor:
          type: string
        pageSize:
          format: int32
          type: integer
        schemaId:
          format: int32
          type: integer
        search:
          type: string
        sortOption:
          items:
            $ref: '#/components/schemas/generatedJoinSortOption'
          type: array
        sourceId:
          format: int32
          type: integer
        tableId:
          format: int32
          type: integer
      type: object
    generatedWarehouseType:
      default: DATABASE_TYPE_UNSPECIFIED
      enum:
      - DATABASE_TYPE_UNSPECIFIED
      - DATABASE_TYPE_AWS_ATHENA
      - DATABASE_TYPE_BIGQUERY
      - DATABASE_TYPE_DATABRICKS
      - DATABASE_TYPE_MYSQL
      - DATABASE_TYPE_ORACLE
      - DATABASE_TYPE_POSTGRES
      - DATABASE_TYPE_PRESTO
      - DATABASE_TYPE_REDSHIFT
      - DATABASE_TYPE_SAP_HANA
      - DATABASE_TYPE_SNOWFLAKE
      - DATABASE_TYPE_SQL_SERVER
      - DATABASE_TYPE_SYNAPSE
      - DATABASE_TYPE_ROCKSET
      - DATABASE_TYPE_VERTICA
      - DATABASE_TYPE_AVATICA
      - DATABASE_TYPE_DB2
      - DATABASE_TYPE_TERADATA
      - DATABASE_TYPE_NETEZZA
      - DATABASE_TYPE_SALESFORCE
      type: string
    generatedIdAndDisplayName:
      properties:
        displayName:
          type: string
        id:
          format: int32
          type: integer
      type: object
    generatedJoinColumnPairing:
      properties:
        entityInfo:
          $ref: '#/components/schemas/generatedEntityInfo'
        id:
          format: int32
          type: integer
        leftColumn:
          $ref: '#/components/schemas/generatedTableColumn'
        rightColumn:
          $ref: '#/components/schemas/generatedTableColumn'
      type: object
    runtimeError:
      properties:
        code:
          format: int32
          type: integer
        details:
          items:
            $ref: '#/components/schemas/protobufAny'
          type: array
        error:
          type: string
        message:
          type: string
      type: object
    generatedTableType:
      default: TABLE_TYPE_UNSPECIFIED
      enum:
      - TABLE_TYPE_UNSPECIFIED
      - TABLE_TYPE_TABLE
      - TABLE_TYPE_VIEW
      - TABLE_TYPE_VIRTUAL
      - TABLE_TYPE_CUSTOM_RULE
      type: string
    generatedRowCreationTimeFilter:
      properties:
        lookback:
          $ref: '#/components/schemas/generatedTimeInterval'
        rctColumn:
          $ref: '#/components/schemas/generatedIdAndDisplayName'
      type: object
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
    Agent_API_Key:
      description: Add 'apikey ' to the beginning of your api key
      in: header
      name: Authorization
      type: apiKey
    Personal_API_Key:
      description: Add 'apikey ' to the beginning of your api key
      in: header
      name: Authorization
      type: apiKey