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