Ditto BigPeerReplication API

The BigPeerReplication API from Ditto — 2 operation(s) for bigpeerreplication.

OpenAPI Specification

ditto-live-bigpeerreplication-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Ditto HTTP RPC API Keys BigPeerReplication API
  version: 4.0.0
  description: The Ditto HTTP RPC API provides a RESTful interface for interacting with Ditto's distributed data store. It enables you to query, insert, update and delete data across your Ditto network while maintaining strong consistency guarantees.
servers:
- url: '{base_url}/api/v4'
  description: The Ditto Big Peer acts as a central synchronization point and data store in your Ditto network. It coordinates data replication between peers and provides a consistent view of your data.
  variables:
    base_url:
      default: https://YOUR_CLOUD_URL_ENDPOINT
      description: Your Cloud URL Endpoint from the Ditto Portal (Connect via HTTP), prefixed with https:// to form the base URL.
security:
- api_key_or_jwt_token: []
tags:
- name: BigPeerReplication
paths:
  /namespace/{namespace}/bigPeer/{big_peer_name}/app/{app_name}/bigPeerReplication:
    post:
      tags:
      - BigPeerReplication
      summary: Create Replication
      description: Creates a new Big Peer to Big Peer replication for an app.
      operationId: createReplication
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BigPeerReplication'
        required: true
      responses:
        '200':
          description: Big Peer replication successfully created for app
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BigPeerReplication'
        '404':
          description: Big Peer in URI params does not exist
          content:
            application/json:
              examples:
                BigPeerNotFound:
                  summary: big peer not found
  /namespace/{namespace}/bigPeer/{big_peer_name}/app/{app_name}/bigPeerReplication/{replication_name}:
    get:
      tags:
      - BigPeerReplication
      summary: Get Replication
      description: Retrieves details for a specific Big Peer replication.
      operationId: getReplication
      responses:
        '200':
          description: big peer replication successfully retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BigPeerReplication'
        '400':
          description: bad request
          content:
            application/json:
              examples:
                AppNameMismatch:
                  summary: app in big peer replication label doesn't match uri parameter
        '404':
          description: big peer replication not found
          content:
            application/json:
              examples:
                BigPeerReplicationNotFound:
                  summary: big peer replication not found
    put:
      tags:
      - BigPeerReplication
      summary: Update Replication
      description: Updates an existing Big Peer replication's configuration.
      operationId: updateReplication
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateBigPeerReplicationRequest'
        required: true
      responses:
        '200':
          description: Big Peer replication successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BigPeerReplication'
        '400':
          description: bad request
          content:
            application/json:
              examples:
                AppNameMismatch:
                  summary: app in big peer replication label doesn't match uri parameter
        '404':
          description: big peer replication not found
          content:
            application/json:
              examples:
                BigPeerReplicationNotFound:
                  summary: big peer replication not found
    delete:
      tags:
      - BigPeerReplication
      summary: Delete Replication
      description: Deletes a Big Peer replication.
      operationId: deleteReplication
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                default: null
        '400':
          description: bad request
          content:
            application/json:
              examples:
                AppNameMismatch:
                  summary: app name in big peer replication label doesn't match uri parameter
                BigPeerNameMismatch:
                  summary: big peer in app label doesn't match uri parameter
        '404':
          description: big peer replication not found
          content:
            application/json:
              examples:
                BigPeerReplicationNotFound:
                  summary: big peer replication not found
    patch:
      tags:
      - BigPeerReplication
      summary: Update Replication
      description: Updates an existing Big Peer replication's configuration.
      operationId: updateReplication
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateBigPeerReplicationRequest'
        required: true
      responses:
        '200':
          description: Big Peer replication successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BigPeerReplication'
        '400':
          description: bad request
          content:
            application/json:
              examples:
                AppNameMismatch:
                  summary: app in big peer replication label doesn't match uri parameter
        '404':
          description: big peer replication not found
          content:
            application/json:
              examples:
                BigPeerReplicationNotFound:
                  summary: big peer replication not found
components:
  schemas:
    BigPeerReplication:
      type: object
      required:
      - name
      properties:
        connections:
          type:
          - array
          - 'null'
          items:
            type: string
            format: uri
          description: 'A set of connection addresses of other Big Peer instances.


            Each connection address should point to the Big Peer replication server dedicated to the

            same app ID.


            The set is allowed to be empty. In this case, it''s the remote Big Peer''s responsibility to

            initiate the connection.'
          example:
          - big-peer-2.ditto.svc.cluster.local:4040
          uniqueItems: true
        name:
          type: string
          title: Dns1123Label
          description: "RFC 1123 DNS labels used for most Kubernetes resource names.  Some resource types require their names to follow the DNS label standard as defined in [RFC 1123][rfc1123].\n             This means the name must:\n                * contain at most 63 characters * contain only lowercase alphanumeric characters or '-' * start with an alphanumeric character\n                * end with an alphanumeric character\n            [rfc1123]: https://tools.ietf.org/html/rfc1123"
          maxLength: 63
          minLength: 1
          pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
        queriesByCollection:
          type:
          - object
          - 'null'
          description: 'Mapping from collection name to a list of DQL subscriptions queries.

            This contains the data that the Big Peer instance will subscribe to, for the given app, in

            the context of Big Peer replication.

            If empty, this Big Peer instance will not subscribe to any data so no data will be

            replicated to it.'
          additionalProperties:
            type: array
            items:
              type: string
          propertyNames:
            type: string
          example:
            cars:
            - 'true'
    UpdateBigPeerReplicationRequest:
      type: object
      properties:
        connections:
          type:
          - array
          - 'null'
          items:
            type: string
            format: uri
          example:
          - big-peer-2.ditto.svc.cluster.local:4040
          uniqueItems: true
        queriesByCollection:
          type:
          - object
          - 'null'
          additionalProperties:
            type: array
            items:
              type: string
          propertyNames:
            type: string
          example:
            cars:
            - 'true'
  securitySchemes:
    api_key_or_jwt_token:
      type: http
      scheme: bearer
      bearerFormat: API Key or JWT
      description: Authentication using either an API key or JWT token in the Authorization header
externalDocs:
  url: https://docs.ditto.live/http/installation/
  description: For more detailed instructions on how to use this API and the Ditto SDK, please see the documentation.