openapi: 3.0.0-RC1
description: ''
version: 0.0.0
title: ''
paths:
  /dock:
    get:
      operationId: dockSearch
      summary: Search Documents
      description: Searches documents in storage
      responses:
        '200':
          description: Status 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchDocumentsResponse'
        '422':
          description: Status 422 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Status 500 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      parameters:
        - name: Content-Type
          in: header
          description: Content Type Header (should always be 'application/json')
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchDocumentsRequest'
  '/dock/{proxy+}':
    head:
      operationId: dockCheck
      summary: Document Existence
      description: Check the existence of a document
      responses:
        '206':
          description: Status 206 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '404':
          description: Status 404 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '500':
          description: Status 500 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      parameters:
        - name: proxy+
          in: path
          description: >-
            The Path of the document you wish to check the existence of. e.g
            accounts/39838/users/username
          required: true
          schema:
            type: string
            pattern: '^(?!/)[-a-z0-9/]+$'
        - name: Content-Type
          in: header
          description: Content Type Header (should always be 'application/json')
          required: false
          schema:
            type: string
      requestBody: {}
    get:
      operationId: dockRetrieve
      summary: Get Document
      description: Gets document by path
      responses:
        '200':
          description: Status 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDocumentResponse'
        '404':
          description: Status 404 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Status 500 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      parameters:
        - name: proxy+
          in: path
          description: >-
            The Path of the document you wish to retrieve. e.g
            accounts/39838/users/username.json
          required: true
          schema:
            type: string
            pattern: '^(?!/)[-a-z0-9/]+$'
        - name: Content-Type
          in: header
          description: Content Type Header (should always be 'application/json')
          required: false
          schema:
            type: string
      requestBody: {}
    put:
      operationId: dockStore
      summary: Store Document
      description: Stores a document by path
      responses:
        '201':
          description: Status 201 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDocumentResponse'
        '422':
          description: Status 422 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Status 500 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      parameters:
        - name: proxy+
          in: path
          description: >-
            The Path of the document you wish to store. e.g
            accounts/39838/users/username
          required: true
          schema:
            type: string
            pattern: '^(?!/)[-a-z0-9/]+$'
        - name: Content-Type
          in: header
          description: Content Type Header (should always be 'application/json')
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutDocumentRequest'
    patch:
      operationId: dockPatch
      summary: Patch Document
      description: Patches a document by path
      responses:
        '201':
          description: Status 201 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDocumentResponse'
        '422':
          description: Status 422 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Status 500 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      parameters:
        - name: proxy+
          in: path
          description: >-
            The Path of the document you wish to patch. e.g
            accounts/39838/users/username
          required: true
          schema:
            type: string
            pattern: '^(?!/)[-a-z0-9/]+$'
        - name: Content-Type
          in: header
          description: Content Type Header (should always be 'application/json')
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchDocumentRequest'
    delete:
      operationId: dockDestroy
      summary: Delete document
      description: Deletes a document
      responses:
        '204':
          description: Status 204 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '404':
          description: Status 404 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '500':
          description: Status 500 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      parameters:
        - name: proxy+
          in: path
          description: >-
            The Path of the document you wish to check the existence of. e.g
            accounts/39838/users/username
          required: true
          schema:
            type: string
            pattern: '^(?!/)[-a-z0-9/]+$'
        - name: Content-Type
          in: header
          description: Content Type Header (should always be 'application/json')
          required: false
          schema:
            type: string
      requestBody: {}
  /batch-get:
    post:
      operationId: dockRetrieveMultiple
      summary: Get Multiple Documents
      description: Gets documents by array of paths
      responses:
        '200':
          description: Status 200 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDocumentsResponse'
        '500':
          description: Status 500 Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      parameters:
        - name: Content-Type
          in: header
          description: Content Type Header (should always be 'application/json')
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetDocumentsRequest'
components:
  schemas:
    ErrorResponse:
      title: JSON API Schema
      description: >-
        This is a schema for responses in the JSON API format. For more, see
        http://jsonapi.org
      type: object
      required:
        - errors
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              id:
                description: >-
                  A unique identifier for this particular occurrence of the
                  problem.
                type: string
              links:
                description: >-
                  A resource object **MAY** contain references to other resource
                  objects ("relationships"). Relationships may be to-one or
                  to-many. Relationships can be specified by including a member
                  in a resource's links object.
                type: object
                properties:
                  self:
                    description: >-
                      A `self` member, whose value is a URL for the relationship
                      itself (a "relationship URL"). This URL allows the client
                      to directly manipulate the relationship. For example, it
                      would allow a client to remove an `author` from an
                      `article` without deleting the people resource itself.
                    type: string
                    format: uri
                  related:
                    description: >-
                      A link **MUST** be represented as either: a string
                      containing the link's URL or a link object.
                    oneOf:
                      - description: A string containing the link's URL.
                        type: string
                        format: uri
                      - type: object
                        required:
                          - href
                        properties:
                          href:
                            description: A string containing the link's URL.
                            type: string
                            format: uri
                          meta:
                            description: >-
                              Non-standard meta-information that can not be
                              represented as an attribute or relationship.
                            type: object
                            additionalProperties: true
                additionalProperties: true
              status:
                description: >-
                  The HTTP status code applicable to this problem, expressed as
                  a string value.
                type: string
              code:
                description: >-
                  An application-specific error code, expressed as a string
                  value.
                type: string
              title:
                description: >-
                  A short, human-readable summary of the problem. It **SHOULD
                  NOT** change from occurrence to occurrence of the problem,
                  except for purposes of localization.
                type: string
              detail:
                description: >-
                  A human-readable explanation specific to this occurrence of
                  the problem.
                type: string
              source:
                type: object
                properties:
                  pointer:
                    description: >-
                      A JSON Pointer [RFC6901] to the associated entity in the
                      request document [e.g. "/data" for a primary data object,
                      or "/data/attributes/title" for a specific attribute].
                    type: string
                  parameter:
                    description: >-
                      A string indicating which query parameter caused the
                      error.
                    type: string
              meta:
                description: >-
                  Non-standard meta-information that can not be represented as
                  an attribute or relationship.
                type: object
                additionalProperties: true
            additionalProperties: false
          uniqueItems: true
        meta:
          description: >-
            Non-standard meta-information that can not be represented as an
            attribute or relationship.
          type: object
          additionalProperties: true
        links:
          description: >-
            A resource object **MAY** contain references to other resource
            objects ("relationships"). Relationships may be to-one or to-many.
            Relationships can be specified by including a member in a resource's
            links object.
          type: object
          properties:
            self:
              description: >-
                A `self` member, whose value is a URL for the relationship
                itself (a "relationship URL"). This URL allows the client to
                directly manipulate the relationship. For example, it would
                allow a client to remove an `author` from an `article` without
                deleting the people resource itself.
              type: string
              format: uri
            related:
              description: >-
                A link **MUST** be represented as either: a string containing
                the link's URL or a link object.
              oneOf:
                - description: A string containing the link's URL.
                  type: string
                  format: uri
                - type: object
                  required:
                    - href
                  properties:
                    href:
                      description: A string containing the link's URL.
                      type: string
                      format: uri
                    meta:
                      description: >-
                        Non-standard meta-information that can not be
                        represented as an attribute or relationship.
                      type: object
                      additionalProperties: true
          additionalProperties: true
      additionalProperties: false
    GetDocumentResponse:
      properties:
        Attributes:
          type: object
          properties:
            Origin:
              description: String to describe the service that created this document
              title: The service of origin
              type: string
            Sovereignty:
              default: global
              title: The Sovereignty schema.
              type: string
              enum:
                - global
                - au
                - eu
                - asia
                - us
            Type:
              description: The type of document that this is
              title: Document Type
              type: string
          required:
            - Origin
            - Sovereignty
            - Type
        Content: {}
        Path:
          description: The path of the document stored
          title: Document Path
          type: string
      required:
        - Path
        - Attributes
        - Content
      type: object
    GetDocumentsRequest:
      items:
        description: An array of document paths to retrieve
        title: Array of Document Paths
        type: string
      minItems: 1
      type: array
    GetDocumentsResponse:
      required:
        - Results
      properties:
        Results:
          type: array
          items:
            type: object
            properties:
              Attributes:
                type: object
                properties:
                  Origin:
                    description: String to describe the service that created this document
                    title: The service of origin
                    type: string
                  Sovereignty:
                    default: global
                    title: The Sovereignty schema.
                    type: string
                    enum:
                      - global
                      - au
                      - eu
                      - asia
                      - us
                  Type:
                    description: The type of document that this is
                    title: Document Type
                    type: string
                required:
                  - Origin
                  - Sovereignty
                  - Type
              Content: {}
              Path:
                description: The path of the document stored
                title: Document Path
                type: string
            required:
              - Path
              - Attributes
              - Content
    PutDocumentRequest:
      properties:
        Attributes:
          type: object
          properties:
            Origin:
              description: String to describe the service that created this document
              title: The service of origin
              type: string
            Sovereignty:
              default: global
              title: The Sovereignty schema.
              type: string
              enum:
                - global
                - au
                - eu
                - asia
                - us
            Type:
              description: The type of document that this is
              title: Document Type
              type: string
          required:
            - Origin
            - Sovereignty
            - Type
        Content: {}
      required:
        - Attributes
        - Content
      type: object
    PatchDocumentRequest:
      title: JSON schema for JSONPatch files
      type: array
      items:
        type: object
        required:
          - op
          - path
        allOf:
          - properties:
              path:
                description: A JSON Pointer path.
                type: string
        oneOf:
          - required:
              - value
            properties:
              op:
                description: The operation to perform.
                type: string
                enum:
                  - add
                  - replace
                  - test
              value:
                description: 'The value to add, replace or test.'
          - properties:
              op:
                description: The operation to perform.
                type: string
                enum:
                  - remove
          - required:
              - from
            properties:
              op:
                description: The operation to perform.
                type: string
                enum:
                  - move
                  - copy
              from:
                description: >-
                  A JSON Pointer path pointing to the location to move/copy
                  from.
                type: string
    SearchDocumentsRequest: {}
    SearchDocumentsResponse: {}
    EmptyResponse:
      title: Empty Schema
      type: object
  securitySchemes: {}
servers: []
info:
  title: Storage V2 Service
  description: The Storage V2 service is Temando's storage platform
  version: 2.0.7
