GridGain snapshotManagement API

The snapshotManagement API from GridGain — 6 operation(s) for snapshotmanagement.

OpenAPI Specification

gridgain-snapshotmanagement-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  x-logo:
    url: https://www.gridgain.com/assets/web/images/gridgain-logo-2021.svg
    backgroundColor: '#FFFFFF'
    altText: Example logo
  title: GridGain REST module authentication snapshotManagement API
  contact:
    email: user@ignite.apache.org
  license:
    name: Apache 2.0
    url: https://ignite.apache.org
  version: 9.1.22
servers:
- url: http://localhost:10300
  description: Default GridGain 9 management API
- url: http://localhost:8080/ignite
  description: GridGain 8 / Ignite REST API
security:
- bearerToken: []
- basicAuth: []
tags:
- name: snapshotManagement
paths:
  /management/v1/snapshot/create:
    post:
      tags:
      - snapshotManagement
      summary: Create snapshot
      description: Creates a new snapshot.
      operationId: create
      requestBody:
        description: configuration for the snapshot.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCommand'
        required: true
      responses:
        '200':
          description: Snapshot has been started.
          content:
            application/json:
              schema:
                type: string
                format: uuid
        '500':
          description: Internal error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '400':
          description: Incorrect configuration.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '404':
          description: Tables were not found.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
  /management/v1/snapshot/delete:
    post:
      tags:
      - snapshotManagement
      summary: Delete snapshot
      description: Deletes a snapshot.
      operationId: delete
      requestBody:
        description: Delete command configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteCommand'
        required: true
      responses:
        '200':
          description: Snapshot deletion has been started.
          content:
            application/json:
              schema:
                type: string
                format: uuid
        '500':
          description: Internal error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '400':
          description: Incorrect configuration.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '404':
          description: Snapshot was not found.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
  /management/v1/snapshot/list:
    get:
      tags:
      - snapshotManagement
      summary: Returns a list of snapshots.
      description: Returns a list of snapshots.
      operationId: getList
      parameters:
      - name: source
        in: query
        description: Snapshot path name specified in the configuration, `null` means use all paths from the configuration.
        schema:
          type: string
          nullable: true
      - name: showNodeNames
        in: query
        description: Whether to show node names or only their numbers in the response.
        required: true
        schema:
          type: boolean
      - name: showTableNames
        in: query
        description: Whether to show table or only their numbers names in the response.
        required: true
        schema:
          type: boolean
      - name: showSourceUri
        in: query
        description: Whether to show snapshot path URI in the response.
        required: true
        schema:
          type: boolean
      responses:
        '200':
          description: List of snapshots has been retrieved.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SnapshotListItem'
        '400':
          description: Incorrect configuration.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '404':
          description: Snapshot source was not found.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '500':
          description: Internal error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
  /management/v1/snapshot/operations:
    get:
      tags:
      - snapshotManagement
      summary: Get all snapshot operations
      description: Returns all snapshot operations.
      operationId: getOperations
      responses:
        '200':
          description: Operations retrieved.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SnapshotOperation'
        '500':
          description: Internal error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
  /management/v1/snapshot/operations/{operationId}:
    get:
      tags:
      - snapshotManagement
      summary: Get operation by ID
      description: Returns operation by its ID.
      operationId: getOperationById
      parameters:
      - name: operationId
        in: path
        description: ID of the operation.
        required: true
        schema:
          type: string
          format: uuid
      - name: allNodes
        in: query
        description: if operation status for every node should be retrieved.
        required: true
        schema:
          type: boolean
      responses:
        '200':
          description: Operation retrieved.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SnapshotOperation'
        '400':
          description: Incorrect configuration.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '404':
          description: Snapshot operation was not found.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '500':
          description: Internal error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
  /management/v1/snapshot/restore:
    post:
      tags:
      - snapshotManagement
      summary: Restore snapshot
      description: Restores a snapshot.
      operationId: restore
      requestBody:
        description: Restore command configuration.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RestoreCommand'
        required: true
      responses:
        '200':
          description: Snapshot restoration has been started.
          content:
            application/json:
              schema:
                type: string
                format: uuid
        '500':
          description: Internal error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '400':
          description: Incorrect configuration.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '404':
          description: Snapshot meta file was not found.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
components:
  schemas:
    InvalidParam:
      type: object
      properties:
        name:
          type: string
          description: Parameter name.
        reason:
          type: string
          description: The issue with the parameter.
      description: Information about invalid request parameter.
    SnapshotOperation:
      required:
      - operation
      - operationId
      - startTimeEpochMilli
      - status
      type: object
      properties:
        operationId:
          type: string
          description: ID of the operation.
          format: uuid
        status:
          allOf:
          - $ref: '#/components/schemas/SnapshotStatus'
          - description: Status of the operation.
        operation:
          allOf:
          - $ref: '#/components/schemas/SnapshotOperationType'
          - description: Type of the operation.
        startTimeEpochMilli:
          type: integer
          description: Time at which operation started in milliseconds since Unix Epoch format.
          format: int64
        timestampEpochMilli:
          type: integer
          description: Point in time that corresponds to the system state the snapshot reflects, in milliseconds since Unix Epoch
          format: int64
        targetSnapshotId:
          type: string
          description: Target snapshot ID, for restore operations
          format: uuid
          nullable: true
        parentSnapshotId:
          type: string
          description: Parent Snapshot ID, for create operations
          format: uuid
          nullable: true
        tableNames:
          type: array
          description: Target table names. If both this and structureNames are empty, it means that all tables were used.
          items:
            type: string
        structureNames:
          type: array
          description: Target structure names. If both this and tablesNames are empty, it means that all structures were used.
          items:
            type: string
        description:
          type: string
          description: Description of the operation.
          nullable: true
        nodeName:
          type: string
          description: Name of the node.
          nullable: true
        rowsSaved:
          type: integer
          description: Number of rows saved.
          format: int64
          nullable: true
        uri:
          type: string
          description: The base URI used in the snapshot operation.
          format: uri
        pathType:
          allOf:
          - $ref: '#/components/schemas/PathType'
          - description: The path type used in the snapshot operation (LOCAL or REMOTE).
        force:
          type: boolean
          description: If force flag was used.
      description: Snapshot operation info.
    SnapshotOperationType:
      type: string
      description: Type of the operation.
      enum:
      - CREATE
      - RESTORE
      - DELETE
    DeleteCommand:
      type: object
      properties:
        snapshotId:
          type: string
          description: ID of the snapshot to delete
          format: uuid
      description: Snapshot restoration configuration.
    SnapshotStatus:
      type: string
      description: Status of the operation.
      enum:
      - PREPARED
      - STARTED
      - COMPLETED
      - DELETED
      - FAILED
    CreateCommand:
      type: object
      properties:
        snapshotType:
          allOf:
          - $ref: '#/components/schemas/SnapshotType'
          - description: Type of the snapshot, FULL or INCREMENTAL.
        tableNames:
          type: array
          description: Set of fully-qualified table names that will be parts of the snapshot. If both this and structureNames are empty, all tables will be snapshotted.
          items:
            type: string
        structureNames:
          type: array
          description: Set of fully-qualified structure names that will be parts of the snapshot. If both this and tableNames are empty, all structures will be snapshotted.
          items:
            type: string
        timestampEpochMilli:
          type: integer
          description: Time for which the Snapshot should be taken in milliseconds since Unix Epoch format. If null, current time will be used
          format: int64
        destination:
          type: string
          description: The name of the snapshot path to the snapshot; null to use the default path.
        encryptionProvider:
          type: string
          description: The encryption provider name.
      description: Snapshot creation configuration.
    SnapshotType:
      type: string
      description: Type of the snapshot, FULL or INCREMENTAL.
      enum:
      - NOT_SPECIFIED
      - FULL
      - INCREMENTAL
    Problem:
      type: object
      properties:
        title:
          type: string
          description: Short summary of the issue.
        status:
          type: integer
          description: Returned HTTP status code.
          format: int32
        code:
          type: string
          description: Ignite 3 error code.
        type:
          type: string
          description: URI to documentation regarding the issue.
        detail:
          type: string
          description: Extended explanation of the issue.
        node:
          type: string
          description: Name of the node the issue happened on.
        traceId:
          type: string
          description: Unique issue identifier. This identifier can be used to find logs related to the issue.
          format: uuid
        invalidParams:
          type: array
          description: A list of parameters that did not pass validation and the reason for it.
          items:
            $ref: '#/components/schemas/InvalidParam'
      description: Extended description of the problem with the request.
    SnapshotListItem:
      required:
      - creationTime
      - id
      - type
      - uriName
      - uriType
      type: object
      properties:
        id:
          type: string
          description: Snapshot ID.
          format: uuid
        parentId:
          type: string
          description: Parent snapshot ID.
          format: uuid
          nullable: true
        type:
          allOf:
          - $ref: '#/components/schemas/SnapshotType'
          - description: Snapshot type.
        creationTime:
          type: integer
          description: Point in time at which the snapshot was created in milliseconds.
          format: int64
        uriName:
          type: string
          description: Snapshot path name specified in the configuration.
        uriType:
          allOf:
          - $ref: '#/components/schemas/PathType'
          - description: Snapshot path type specified in the configuration.
        uri:
          type: string
          description: Snapshot path URI specified in the configuration.
          nullable: true
        targetNodeSize:
          type: integer
          description: Number of nodes for which a snapshot was created.
          format: int32
          nullable: true
        actualNodeSize:
          type: integer
          description: Number of nodes on which the snapshot is present.
          format: int32
          nullable: true
        targetNodeNames:
          type: array
          description: Names of the nodes for which the snapshot was created.
          nullable: true
          items:
            type: string
        actualNodeNames:
          type: array
          description: Names of the nodes on which the snapshot is present.
          nullable: true
          items:
            type: string
        tableNumber:
          type: integer
          description: Number of tables that are present in the snapshot.
          format: int32
          nullable: true
        tableNames:
          type: array
          description: Names of the tables that are present in the snapshot.
          nullable: true
          items:
            type: string
      description: Snapshot list command item.
    RestoreCommand:
      type: object
      properties:
        snapshotId:
          type: string
          description: ID of the snapshot to restore
          format: uuid
        tableNames:
          type: array
          description: Set of fully-qualified table names to restore. If both this and structureNames are empty, restores all tables from the snapshot.
          items:
            type: string
        structureNames:
          type: array
          description: Set of fully-qualified structure names to restore. If both this and tableNames are empty, restores all structures from the snapshot.
          items:
            type: string
        source:
          type: string
          description: The name of the snapshot path to restore the snapshot from; null to use the default path.
        decryptionProvider:
          type: string
          description: The decription provider name.
        force:
          type: boolean
          description: If set to false, operation will fail if there are existing structures that would be overwritten by the restore.
      description: Snapshot restoration configuration.
    PathType:
      type: string
      description: The path type used in the snapshot operation (LOCAL or REMOTE).
      enum:
      - LOCAL
      - REMOTE
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
    bearerToken:
      type: http
      scheme: bearer