GridGain deployment API

The deployment API from GridGain — 7 operation(s) for deployment.

OpenAPI Specification

gridgain-deployment-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 deployment 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: deployment
paths:
  /management/v1/deployment/cluster/units:
    get:
      tags:
      - deployment
      summary: Get cluster unit statuses
      description: Cluster unit statuses.
      operationId: listClusterStatuses
      parameters:
      - name: statuses
        in: query
        schema:
          type: array
          description: Deployment status filter.
          nullable: true
          items:
            $ref: '#/components/schemas/DeploymentStatus'
      responses:
        '200':
          description: All statuses returned successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UnitStatus'
        '500':
          description: Internal error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
  /management/v1/deployment/cluster/units/{unitId}:
    get:
      tags:
      - deployment
      summary: Get specific cluster unit statuses
      description: Cluster unit statuses by unit.
      operationId: listClusterStatusesByUnit
      parameters:
      - name: unitId
        in: path
        required: true
        schema:
          type: string
          description: The ID of the deployment unit.
      - name: version
        in: query
        schema:
          type: string
          description: Unit version filter.
          nullable: true
      - name: statuses
        in: query
        schema:
          type: array
          description: Deployment status filter.
          nullable: true
          items:
            $ref: '#/components/schemas/DeploymentStatus'
      responses:
        '200':
          description: All statuses returned successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UnitStatus'
        '500':
          description: Internal error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
  /management/v1/deployment/node/units:
    get:
      tags:
      - deployment
      summary: Get node unit statuses
      description: Returns a list of unit statuses per node.
      operationId: listNodeStatuses
      parameters:
      - name: statuses
        in: query
        schema:
          type: array
          description: Deployment status filter.
          nullable: true
          items:
            $ref: '#/components/schemas/DeploymentStatus'
      responses:
        '200':
          description: All statuses were returned successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UnitStatus'
        '500':
          description: Internal error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
  /management/v1/deployment/node/units/structure/{unitId}/{unitVersion}:
    get:
      tags:
      - deployment
      summary: Get unit contents.
      description: Returns a folder representation with unit content.
      operationId: unitContent
      parameters:
      - name: unitId
        in: path
        required: true
        schema:
          type: string
          description: The ID of the deployment unit.
      - name: unitVersion
        in: path
        required: true
        schema:
          type: string
          description: The version of the deployment unit.
      responses:
        '200':
          description: Unit content returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnitFolder'
        '500':
          description: Internal error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
  /management/v1/deployment/node/units/{unitId}:
    get:
      tags:
      - deployment
      summary: Get specific node unit statuses
      description: Returns a list of node unit statuses by unit.
      operationId: listNodeStatusesByUnit
      parameters:
      - name: unitId
        in: path
        required: true
        schema:
          type: string
          description: The ID of the deployment unit.
      - name: version
        in: query
        schema:
          type: string
          description: Unit version filter.
          nullable: true
      - name: statuses
        in: query
        schema:
          type: array
          description: Deployment status filter.
          nullable: true
          items:
            $ref: '#/components/schemas/DeploymentStatus'
      responses:
        '200':
          description: All statuses returned successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UnitStatus'
        '500':
          description: Internal error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
  /management/v1/deployment/units/zip/{unitId}/{unitVersion}:
    post:
      tags:
      - deployment
      summary: Deploy unit with folders structure in zip.
      description: Deploys provided unit in zip file to the cluster with folders structure.
      operationId: deployZipUnit
      parameters:
      - name: unitId
        in: path
        required: true
        schema:
          type: string
          description: The ID of the deployment unit.
      - name: unitVersion
        in: path
        required: true
        schema:
          type: string
          description: The version of the deployment unit.
      - name: deployMode
        in: query
        schema:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/deployMode'
          - description: ALL or MAJORITY.
      - name: initialNodes
        in: query
        schema:
          type: array
          description: List of node identifiers to deploy to.
          nullable: true
          items:
            type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
              - unitContent
              type: object
              properties:
                unitContent:
                  type: array
                  description: The zip file with unit content to deploy.
                  items:
                    type: string
                    format: binary
            encoding: {}
        required: true
      responses:
        '200':
          description: Unit deployed successfully.
          content:
            application/json:
              schema:
                type: boolean
        '409':
          description: Unit with same identifier and version is already deployed.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '400':
          description: Deployment unit with unzip supports only single zip file.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '500':
          description: Internal error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
  /management/v1/deployment/units/{unitId}/{unitVersion}:
    post:
      tags:
      - deployment
      summary: Deploy unit
      description: Deploys provided unit to the cluster.
      operationId: deployUnit
      parameters:
      - name: unitId
        in: path
        required: true
        schema:
          type: string
          description: The ID of the deployment unit.
      - name: unitVersion
        in: path
        required: true
        schema:
          type: string
          description: The version of the deployment unit.
      - name: deployMode
        in: query
        schema:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/deployMode'
          - description: ALL or MAJORITY.
      - name: initialNodes
        in: query
        schema:
          type: array
          description: List of node identifiers to deploy to.
          nullable: true
          items:
            type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
              - unitContent
              type: object
              properties:
                unitContent:
                  type: array
                  description: The code to deploy.
                  items:
                    type: string
                    format: binary
            encoding: {}
        required: true
      responses:
        '200':
          description: Unit deployed successfully.
          content:
            application/json:
              schema:
                type: boolean
        '409':
          description: Unit with same identifier and version is already deployed.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '500':
          description: Internal error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
    delete:
      tags:
      - deployment
      summary: Undeploy unit
      description: Undeploys the unit with provided unitId and unitVersion.
      operationId: undeployUnit
      parameters:
      - name: unitId
        in: path
        required: true
        schema:
          type: string
          description: The ID of the deployment unit.
      - name: unitVersion
        in: path
        required: true
        schema:
          type: string
          description: The version of the deployment unit.
      responses:
        '200':
          description: Unit undeployed successfully.
          content:
            application/json:
              schema:
                type: boolean
        '404':
          description: Unit with provided identifier and version does not exist.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '500':
          description: Internal error.
          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.
    UnitEntry:
      type: object
      description: Unit content entry.
      discriminator:
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/UnitFile'
      - $ref: '#/components/schemas/UnitFolder'
    UnitStatus:
      required:
      - id
      - versionToStatus
      type: object
      properties:
        id:
          type: string
          description: Unit identifier.
        versionToStatus:
          type: array
          description: Map from unit version to unit deployment status.
          items:
            $ref: '#/components/schemas/UnitVersionStatus'
      description: Unit status.
    DeploymentStatus:
      type: string
      description: Status of deployment process.
      enum:
      - UPLOADING
      - DEPLOYED
      - OBSOLETE
      - REMOVING
    UnitFile:
      required:
      - name
      - size
      - type
      type: object
      properties:
        type:
          type: string
          description: Entry type discriminator.
          enum:
          - file
        name:
          type: string
          description: Unit content file name.
        size:
          type: integer
          description: Unit content file size in bytes.
          format: int64
      description: Unit content file.
    UnitFolder:
      required:
      - children
      - name
      - size
      - type
      type: object
      properties:
        type:
          type: string
          description: Entry type discriminator.
          enum:
          - folder
        name:
          type: string
          description: Unit content folder name.
        children:
          type: array
          description: Unit content folder elements.
          items:
            $ref: '#/components/schemas/UnitEntry'
        size:
          type: integer
          description: Total size of folder contents in bytes (computed as sum of all children).
          format: int64
          readOnly: true
      description: Unit content folder.
    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.
    UnitVersionStatus:
      required:
      - status
      - version
      type: object
      properties:
        version:
          type: string
          description: Unit version.
        status:
          allOf:
          - $ref: '#/components/schemas/DeploymentStatus'
          - description: Unit status.
      description: Unit version and status.
    deployMode:
      type: string
      description: Initial set of nodes to deploy.
      enum:
      - MAJORITY
      - ALL
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
    bearerToken:
      type: http
      scheme: bearer