openapi: 3.0.0
info:
  title: Unified.to DATASTORE API
  version: "1.0"
  description: One API to Rule Them All
  contact:
    email: hello@unified.to
    url: https://unified.to/contact
  termsOfService: https://unified.to/tos
externalDocs:
  description: API Documentation
  url: https://docs.unified.to
tags:
  - name: unifiedapi
    description: Unified.to API
  - name: datastore
  - name: database
  - name: table
  - name: record
  - name: query
security:
  - jwt: []
servers:
  - url: https://api.unified.to
    description: North American data region
  - url: https://api-eu.unified.to
    description: European data region
  - url: https://api-au.unified.to
    description: Australian data region
components:
  securitySchemes:
    jwt:
      type: apiKey
      name: authorization
      in: header
  requestBodies:
    DatastoreDatabase:
      required: true
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/DatastoreDatabase"
    DatastoreTable:
      required: true
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/DatastoreTable"
    DatastoreRecord:
      required: true
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/DatastoreRecord"
    DatastoreQuery:
      required: true
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/DatastoreQuery"
  schemas:
    DatastoreDatabase:
      type: object
      properties:
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        name:
          type: string
        description:
          type: string
        web_url:
          type: string
        is_active:
          type: boolean
        password:
          type: string
        region:
          type: string
        raw:
          type: object
          additionalProperties: true
    DatastoreDatabases:
      type: array
      items:
        $ref: "#/components/schemas/DatastoreDatabase"
    property_DatastoreField_default_value_selection:
      type: array
      items:
        type: string
    property_DatastoreField_default_value:
      type: object
      properties:
        string:
          type: string
        number:
          type: number
        boolean:
          type: boolean
        date:
          type: string
        selection:
          $ref: "#/components/schemas/property_DatastoreField_default_value_selection"
        is_null:
          type: boolean
    DatastoreField:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        type:
          type: string
          enum:
            - TEXT
            - NUMBER
            - DATE
            - BOOLEAN
            - FILE
            - TEXTAREA
            - SINGLE_SELECT
            - MULTIPLE_SELECT
            - CURRENCY
            - URL
            - EMAIL
            - PHONE
            - LINKED_RECORD
            - RELATION
          x-speakeasy-unknown-values: allow
        original_type:
          type: string
        is_required:
          type: boolean
        is_indexed:
          type: boolean
        is_primary_key:
          type: boolean
        is_unique:
          type: boolean
        is_nullable:
          type: boolean
        max_length:
          type: number
        precision:
          type: number
        scale:
          type: number
        default_value:
          $ref: "#/components/schemas/property_DatastoreField_default_value"
        description:
          type: string
        raw:
          type: object
          additionalProperties: true
      required:
        - name
        - type
        - original_type
    property_DatastoreTable_fields:
      type: array
      items:
        $ref: "#/components/schemas/DatastoreField"
    DatastoreRelationship:
      type: object
      properties:
        name:
          type: string
        field:
          type: string
        table_id:
          type: string
        type:
          type: string
          enum:
            - ONE
            - MANY
          x-speakeasy-unknown-values: allow
      required:
        - name
        - field
        - table_id
        - type
    property_DatastoreTable_relationships:
      type: array
      items:
        $ref: "#/components/schemas/DatastoreRelationship"
    DatastoreTable:
      type: object
      properties:
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        name:
          type: string
        description:
          type: string
        database_id:
          type: string
        fields:
          $ref: "#/components/schemas/property_DatastoreTable_fields"
        relationships:
          $ref: "#/components/schemas/property_DatastoreTable_relationships"
        web_url:
          type: string
        parent_id:
          type: string
        raw:
          type: object
          additionalProperties: true
    DatastoreTables:
      type: array
      items:
        $ref: "#/components/schemas/DatastoreTable"
    property_DatastoreFieldValue_selection:
      type: array
      items:
        type: string
    DatastoreFieldValue:
      type: object
      properties:
        string:
          type: string
        number:
          type: number
        boolean:
          type: boolean
        date:
          type: string
        selection:
          $ref: "#/components/schemas/property_DatastoreFieldValue_selection"
        is_null:
          type: boolean
    property_DatastoreRecord_fields:
      type: object
      additionalProperties:
        $ref: "#/components/schemas/DatastoreFieldValue"
    DatastoreRecord:
      type: object
      properties:
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        database_id:
          type: string
        table_id:
          type: string
        fields:
          $ref: "#/components/schemas/property_DatastoreRecord_fields"
        row_number:
          type: number
        raw:
          type: object
          additionalProperties: true
      required:
        - fields
    DatastoreRecords:
      type: array
      items:
        $ref: "#/components/schemas/DatastoreRecord"
    property_DatastoreQuery_query_select:
      type: array
      items:
        type: string
    property_DatastoreQueryExpand_select:
      type: array
      items:
        type: string
    property_DatastoreFilter_condition_eq_selection:
      type: array
      items:
        type: string
    property_DatastoreFilter_condition_eq:
      type: object
      properties:
        string:
          type: string
        number:
          type: number
        boolean:
          type: boolean
        date:
          type: string
        selection:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_eq_selection"
        is_null:
          type: boolean
    property_DatastoreFilter_condition_neq_selection:
      type: array
      items:
        type: string
    property_DatastoreFilter_condition_neq:
      type: object
      properties:
        string:
          type: string
        number:
          type: number
        boolean:
          type: boolean
        date:
          type: string
        selection:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_neq_selection"
        is_null:
          type: boolean
    property_DatastoreFilter_condition_gt_selection:
      type: array
      items:
        type: string
    property_DatastoreFilter_condition_gt:
      type: object
      properties:
        string:
          type: string
        number:
          type: number
        boolean:
          type: boolean
        date:
          type: string
        selection:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_gt_selection"
        is_null:
          type: boolean
    property_DatastoreFilter_condition_gte_selection:
      type: array
      items:
        type: string
    property_DatastoreFilter_condition_gte:
      type: object
      properties:
        string:
          type: string
        number:
          type: number
        boolean:
          type: boolean
        date:
          type: string
        selection:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_gte_selection"
        is_null:
          type: boolean
    property_DatastoreFilter_condition_lt_selection:
      type: array
      items:
        type: string
    property_DatastoreFilter_condition_lt:
      type: object
      properties:
        string:
          type: string
        number:
          type: number
        boolean:
          type: boolean
        date:
          type: string
        selection:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_lt_selection"
        is_null:
          type: boolean
    property_DatastoreFilter_condition_lte_selection:
      type: array
      items:
        type: string
    property_DatastoreFilter_condition_lte:
      type: object
      properties:
        string:
          type: string
        number:
          type: number
        boolean:
          type: boolean
        date:
          type: string
        selection:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_lte_selection"
        is_null:
          type: boolean
    property_DatastoreFilter_condition_like_selection:
      type: array
      items:
        type: string
    property_DatastoreFilter_condition_like:
      type: object
      properties:
        string:
          type: string
        number:
          type: number
        boolean:
          type: boolean
        date:
          type: string
        selection:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_like_selection"
        is_null:
          type: boolean
    property_DatastoreFilter_condition_ilike_selection:
      type: array
      items:
        type: string
    property_DatastoreFilter_condition_ilike:
      type: object
      properties:
        string:
          type: string
        number:
          type: number
        boolean:
          type: boolean
        date:
          type: string
        selection:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_ilike_selection"
        is_null:
          type: boolean
    property_DatastoreFilter_condition_in:
      type: array
      items:
        $ref: "#/components/schemas/DatastoreFieldValue"
    property_DatastoreFilter_condition_contains_selection:
      type: array
      items:
        type: string
    property_DatastoreFilter_condition_contains:
      type: object
      properties:
        string:
          type: string
        number:
          type: number
        boolean:
          type: boolean
        date:
          type: string
        selection:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_contains_selection"
        is_null:
          type: boolean
    property_DatastoreFilter_condition_not_contains_selection:
      type: array
      items:
        type: string
    property_DatastoreFilter_condition_not_contains:
      type: object
      properties:
        string:
          type: string
        number:
          type: number
        boolean:
          type: boolean
        date:
          type: string
        selection:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_not_contains_selection"
        is_null:
          type: boolean
    property_DatastoreFilter_condition:
      type: object
      properties:
        eq:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_eq"
        neq:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_neq"
        gt:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_gt"
        gte:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_gte"
        lt:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_lt"
        lte:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_lte"
        like:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_like"
        ilike:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_ilike"
        in:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_in"
        contains:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_contains"
        not_contains:
          $ref: "#/components/schemas/property_DatastoreFilter_condition_not_contains"
        is_null:
          type: boolean
        is_not_null:
          type: boolean
    DatastoreFilter:
      type: object
      properties:
        field:
          type: string
        condition:
          $ref: "#/components/schemas/property_DatastoreFilter_condition"
      required:
        - field
        - condition
    property_DatastoreQueryExpand_filter_filters:
      type: array
      items:
        $ref: "#/components/schemas/DatastoreFilter"
    property_DatastoreQueryExpand_filter_and:
      type: array
      items:
        $ref: "#/components/schemas/property_DatastoreQueryExpand_filter"
    property_DatastoreQueryExpand_filter_or:
      type: array
      items:
        $ref: "#/components/schemas/property_DatastoreQueryExpand_filter"
    property_DatastoreQueryExpand_filter:
      type: object
      properties:
        type:
          type: string
          enum:
            - FILTER
            - AND
            - OR
          x-speakeasy-unknown-values: allow
        filters:
          $ref: "#/components/schemas/property_DatastoreQueryExpand_filter_filters"
        and:
          $ref: "#/components/schemas/property_DatastoreQueryExpand_filter_and"
        or:
          $ref: "#/components/schemas/property_DatastoreQueryExpand_filter_or"
      required:
        - type
    property_DatastoreQueryExpand_expand:
      type: object
      additionalProperties:
        $ref: "#/components/schemas/DatastoreQueryExpand"
    DatastoreQueryExpand:
      type: object
      properties:
        select:
          $ref: "#/components/schemas/property_DatastoreQueryExpand_select"
        filter:
          $ref: "#/components/schemas/property_DatastoreQueryExpand_filter"
        limit:
          type: number
        expand:
          $ref: "#/components/schemas/property_DatastoreQueryExpand_expand"
    property_DatastoreQuery_query_expand:
      type: object
      additionalProperties:
        $ref: "#/components/schemas/DatastoreQueryExpand"
    property_DatastoreQuery_query_filter_filters:
      type: array
      items:
        $ref: "#/components/schemas/DatastoreFilter"
    property_DatastoreQuery_query_filter_and:
      type: array
      items:
        $ref: "#/components/schemas/property_DatastoreQuery_query_filter"
    property_DatastoreQuery_query_filter_or:
      type: array
      items:
        $ref: "#/components/schemas/property_DatastoreQuery_query_filter"
    property_DatastoreQuery_query_filter:
      type: object
      properties:
        type:
          type: string
          enum:
            - FILTER
            - AND
            - OR
          x-speakeasy-unknown-values: allow
        filters:
          $ref: "#/components/schemas/property_DatastoreQuery_query_filter_filters"
        and:
          $ref: "#/components/schemas/property_DatastoreQuery_query_filter_and"
        or:
          $ref: "#/components/schemas/property_DatastoreQuery_query_filter_or"
      required:
        - type
    property_DatastoreQuery_query_sort_fields:
      type: array
      items:
        type: string
    property_DatastoreQuery_query_aggregate_sum:
      type: object
      properties:
        field:
          type: string
        alias:
          type: string
      required:
        - field
    property_DatastoreQuery_query_aggregate_avg:
      type: object
      properties:
        field:
          type: string
        alias:
          type: string
      required:
        - field
    property_DatastoreQuery_query_aggregate_min:
      type: object
      properties:
        field:
          type: string
        alias:
          type: string
      required:
        - field
    property_DatastoreQuery_query_aggregate_max:
      type: object
      properties:
        field:
          type: string
        alias:
          type: string
      required:
        - field
    property_DatastoreQuery_query_aggregate_group_by:
      type: array
      items:
        type: string
    property_DatastoreQuery_query_aggregate:
      type: object
      properties:
        count:
          type: boolean
        sum:
          $ref: "#/components/schemas/property_DatastoreQuery_query_aggregate_sum"
        avg:
          $ref: "#/components/schemas/property_DatastoreQuery_query_aggregate_avg"
        min:
          $ref: "#/components/schemas/property_DatastoreQuery_query_aggregate_min"
        max:
          $ref: "#/components/schemas/property_DatastoreQuery_query_aggregate_max"
        group_by:
          $ref: "#/components/schemas/property_DatastoreQuery_query_aggregate_group_by"
    property_DatastoreQuery_query:
      type: object
      properties:
        sql:
          type: string
        select:
          $ref: "#/components/schemas/property_DatastoreQuery_query_select"
        expand:
          $ref: "#/components/schemas/property_DatastoreQuery_query_expand"
        filter:
          $ref: "#/components/schemas/property_DatastoreQuery_query_filter"
        sort_fields:
          $ref: "#/components/schemas/property_DatastoreQuery_query_sort_fields"
        sort_order:
          type: string
          enum:
            - asc
            - desc
          x-speakeasy-unknown-values: allow
        limit:
          type: number
        offset:
          type: number
        aggregate:
          $ref: "#/components/schemas/property_DatastoreQuery_query_aggregate"
        is_count_only:
          type: boolean
    property_DatastoreQuery_response_items:
      type: array
      items:
        $ref: "#/components/schemas/DatastoreRecord"
    property_DatastoreQuery_response_aggregates_sum:
      type: object
      additionalProperties:
        type: number
    property_DatastoreQuery_response_aggregates_avg:
      type: object
      additionalProperties:
        type: number
    property_DatastoreQuery_response_aggregates_min:
      type: object
      additionalProperties:
        type: number
    property_DatastoreQuery_response_aggregates_max:
      type: object
      additionalProperties:
        type: number
    property_DatastoreQuery_response_aggregates_groups_item:
      type: object
      additionalProperties:
        $ref: "#/components/schemas/DatastoreFieldValue"
    property_DatastoreQuery_response_aggregates_groups:
      type: array
      items:
        $ref: "#/components/schemas/property_DatastoreQuery_response_aggregates_groups_item"
    property_DatastoreQuery_response_aggregates:
      type: object
      properties:
        count:
          type: number
        sum:
          $ref: "#/components/schemas/property_DatastoreQuery_response_aggregates_sum"
        avg:
          $ref: "#/components/schemas/property_DatastoreQuery_response_aggregates_avg"
        min:
          $ref: "#/components/schemas/property_DatastoreQuery_response_aggregates_min"
        max:
          $ref: "#/components/schemas/property_DatastoreQuery_response_aggregates_max"
        groups:
          $ref: "#/components/schemas/property_DatastoreQuery_response_aggregates_groups"
    property_DatastoreQuery_response:
      type: object
      properties:
        items:
          $ref: "#/components/schemas/property_DatastoreQuery_response_items"
        aggregates:
          $ref: "#/components/schemas/property_DatastoreQuery_response_aggregates"
        total_count:
          type: number
    DatastoreQuery:
      type: object
      properties:
        table_id:
          type: string
        database_id:
          type: string
        query:
          $ref: "#/components/schemas/property_DatastoreQuery_query"
        response:
          $ref: "#/components/schemas/property_DatastoreQuery_response"
        raw:
          type: object
          additionalProperties: true
paths:
  /datastore/{connection_id}/database:
    post:
      summary: Create a database
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - name
                - description
                - web_url
                - is_active
                - password
                - region
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - datastore
        - database
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DatastoreDatabase"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatastoreDatabase"
          description: Successful
      security:
        - jwt: []
      operationId: createDatastoreDatabase
    get:
      summary: List all databases
      parameters:
        - schema:
            type: number
          name: limit
          in: query
          required: false
        - schema:
            type: number
          name: offset
          in: query
          required: false
        - schema:
            type: string
          name: updated_gte
          in: query
          required: false
          description: Return only results whose updated date is equal or greater to this value (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
        - schema:
            type: string
          name: sort
          in: query
          required: false
        - schema:
            type: string
          name: order
          in: query
          required: false
        - schema:
            type: string
          name: query
          in: query
          required: false
          description: Query string to search. eg. email address or name
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - name
                - description
                - web_url
                - is_active
                - password
                - region
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - datastore
        - database
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatastoreDatabases"
          description: Successful
      security:
        - jwt: []
      operationId: listDatastoreDatabases
  /datastore/{connection_id}/database/{id}:
    get:
      summary: Retrieve a database
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - name
                - description
                - web_url
                - is_active
                - password
                - region
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Database
          name: id
          in: path
          required: true
      tags:
        - datastore
        - database
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatastoreDatabase"
          description: Successful
      security:
        - jwt: []
      operationId: getDatastoreDatabase
    put:
      summary: Update a database
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - name
                - description
                - web_url
                - is_active
                - password
                - region
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Database
          name: id
          in: path
          required: true
      tags:
        - datastore
        - database
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DatastoreDatabase"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatastoreDatabase"
          description: Successful
      security:
        - jwt: []
      operationId: updateDatastoreDatabase
    patch:
      summary: Update a database
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - name
                - description
                - web_url
                - is_active
                - password
                - region
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Database
          name: id
          in: path
          required: true
      tags:
        - datastore
        - database
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DatastoreDatabase"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatastoreDatabase"
          description: Successful
      security:
        - jwt: []
      operationId: patchDatastoreDatabase
    delete:
      summary: Remove a database
      parameters:
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Database
          name: id
          in: path
          required: true
      tags:
        - datastore
        - database
      responses:
        "200":
          description: Successful
        default:
          headers:
            Content-Type:
              required: false
              schema:
                type: string
          content: {}
          description: Successful
      security:
        - jwt: []
      operationId: removeDatastoreDatabase
  /datastore/{connection_id}/table:
    post:
      summary: Create a table
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - name
                - description
                - database_id
                - fields
                - relationships
                - web_url
                - parent_id
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - datastore
        - table
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DatastoreTable"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatastoreTable"
          description: Successful
      security:
        - jwt: []
      operationId: createDatastoreTable
    get:
      summary: List all tables
      parameters:
        - schema:
            type: number
          name: limit
          in: query
          required: false
        - schema:
            type: number
          name: offset
          in: query
          required: false
        - schema:
            type: string
          name: updated_gte
          in: query
          required: false
          description: Return only results whose updated date is equal or greater to this value (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
        - schema:
            type: string
          name: sort
          in: query
          required: false
        - schema:
            type: string
          name: order
          in: query
          required: false
        - schema:
            type: string
          name: query
          in: query
          required: false
          description: Query string to search. eg. email address or name
        - schema:
            type: string
          name: database_id
          in: query
          required: false
          description: The Database ID to filter by
        - schema:
            type: string
          name: parent_id
          in: query
          required: false
          description: The parent ID to filter by
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - name
                - description
                - database_id
                - fields
                - relationships
                - web_url
                - parent_id
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - datastore
        - table
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatastoreTables"
          description: Successful
      security:
        - jwt: []
      operationId: listDatastoreTables
  /datastore/{connection_id}/table/{id}:
    get:
      summary: Retrieve a table
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - name
                - description
                - database_id
                - fields
                - relationships
                - web_url
                - parent_id
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Table
          name: id
          in: path
          required: true
      tags:
        - datastore
        - table
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatastoreTable"
          description: Successful
      security:
        - jwt: []
      operationId: getDatastoreTable
    put:
      summary: Update a table
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - name
                - description
                - database_id
                - fields
                - relationships
                - web_url
                - parent_id
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Table
          name: id
          in: path
          required: true
      tags:
        - datastore
        - table
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DatastoreTable"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatastoreTable"
          description: Successful
      security:
        - jwt: []
      operationId: updateDatastoreTable
    patch:
      summary: Update a table
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - name
                - description
                - database_id
                - fields
                - relationships
                - web_url
                - parent_id
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Table
          name: id
          in: path
          required: true
      tags:
        - datastore
        - table
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DatastoreTable"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatastoreTable"
          description: Successful
      security:
        - jwt: []
      operationId: patchDatastoreTable
    delete:
      summary: Remove a table
      parameters:
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Table
          name: id
          in: path
          required: true
      tags:
        - datastore
        - table
      responses:
        "200":
          description: Successful
        default:
          headers:
            Content-Type:
              required: false
              schema:
                type: string
          content: {}
          description: Successful
      security:
        - jwt: []
      operationId: removeDatastoreTable
  /datastore/{connection_id}/record:
    post:
      summary: Create a record
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - database_id
                - table_id
                - fields
                - row_number
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - datastore
        - record
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DatastoreRecord"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatastoreRecord"
          description: Successful
      security:
        - jwt: []
      operationId: createDatastoreRecord
    get:
      summary: List all records
      parameters:
        - schema:
            type: number
          name: limit
          in: query
          required: false
        - schema:
            type: number
          name: offset
          in: query
          required: false
        - schema:
            type: string
          name: updated_gte
          in: query
          required: false
          description: Return only results whose updated date is equal or greater to this value (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
        - schema:
            type: string
          name: sort
          in: query
          required: false
        - schema:
            type: string
          name: order
          in: query
          required: false
        - schema:
            type: string
          name: query
          in: query
          required: false
          description: Query string to search. eg. email address or name
        - schema:
            type: string
          name: database_id
          in: query
          required: false
          description: The Database ID to filter by
        - schema:
            type: string
          name: table_id
          in: query
          required: false
          description: The Database Table ID to filter by
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - database_id
                - table_id
                - fields
                - row_number
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - datastore
        - record
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatastoreRecords"
          description: Successful
      security:
        - jwt: []
      operationId: listDatastoreRecords
  /datastore/{connection_id}/record/{id}:
    get:
      summary: Retrieve a record
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - database_id
                - table_id
                - fields
                - row_number
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Record
          name: id
          in: path
          required: true
      tags:
        - datastore
        - record
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatastoreRecord"
          description: Successful
      security:
        - jwt: []
      operationId: getDatastoreRecord
    put:
      summary: Update a record
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - database_id
                - table_id
                - fields
                - row_number
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Record
          name: id
          in: path
          required: true
      tags:
        - datastore
        - record
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DatastoreRecord"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatastoreRecord"
          description: Successful
      security:
        - jwt: []
      operationId: updateDatastoreRecord
    patch:
      summary: Update a record
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - database_id
                - table_id
                - fields
                - row_number
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Record
          name: id
          in: path
          required: true
      tags:
        - datastore
        - record
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DatastoreRecord"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatastoreRecord"
          description: Successful
      security:
        - jwt: []
      operationId: patchDatastoreRecord
    delete:
      summary: Remove a record
      parameters:
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Record
          name: id
          in: path
          required: true
      tags:
        - datastore
        - record
      responses:
        "200":
          description: Successful
        default:
          headers:
            Content-Type:
              required: false
              schema:
                type: string
          content: {}
          description: Successful
      security:
        - jwt: []
      operationId: removeDatastoreRecord
  /datastore/{connection_id}/query:
    post:
      summary: Create a query
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - table_id
                - database_id
                - query
                - response
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - datastore
        - query
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DatastoreQuery"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatastoreQuery"
          description: Successful
      security:
        - jwt: []
      operationId: createDatastoreQuery
