# ============LICENSE_START=============================================== # Copyright (C) 2023 OpenInfra Foundation Europe. All rights reserved. # ======================================================================== # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============LICENSE_END================================================= # openapi: 3.0.1 info: title: rApp Manager description: The rApp Manager is a lifecycle management service for rApps. It gets the rApp as ASD formatted package and lifecycle manages it based on it instance configuration. license: name: Copyright (C) 2023 OpenInfra Foundation Europe. Licensed under the Apache License. url: http://www.apache.org/licenses/LICENSE-2.0 version: "1.0" servers: - url: / tags: - name: rApp description: API for rApps - name: rApp Instance description: API for rApp Instances paths: /rapps/{rapp_id}: get: tags: - rApp summary: Get specific rApp details operationId: getRapp parameters: - name: rapp_id in: path required: true schema: type: string responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/Rapp' '404': description: Not found put: tags: - rApp summary: Prime/Deprime rApp operationId: primeRapp parameters: - name: rapp_id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/RappPrimeOrder' required: true responses: '200': description: OK '400': description: Bad Request '404': description: Not found '502': description: Bad Gateway post: tags: - rApp summary: Create rApp operationId: createRapp parameters: - name: rapp_id in: path required: true schema: type: string requestBody: content: multipart/form-data: schema: type: object properties: file: type: string format: binary required: true responses: '202': description: Accepted '400': description: Bad Request delete: tags: - rApp summary: Delete rApp operationId: deleteRapp parameters: - name: rapp_id in: path required: true schema: type: string responses: '200': description: OK '400': description: Bad Request '404': description: Not found /rapps/{rapp_id}/instance/{rapp_instance_id}: get: tags: - rApp Instance summary: Get specific rApp instance details operationId: getRappInstance parameters: - name: rapp_id in: path required: true schema: type: string - name: rapp_instance_id in: path required: true schema: type: string format: uuid responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/RappInstance' '404': description: Not found put: tags: - rApp Instance summary: Deploy/Undeploy rApp instance operationId: deployRappInstance parameters: - name: rapp_id in: path required: true schema: type: string - name: rapp_instance_id in: path required: true schema: type: string format: uuid requestBody: content: application/json: schema: $ref: '#/components/schemas/RappInstanceDeployOrder' required: true responses: '200': description: OK '400': description: Bad Request '404': description: Not found '502': description: Bad Gateway delete: tags: - rApp Instance summary: Delete rApp instance operationId: deleteRappInstance parameters: - name: rapp_id in: path required: true schema: type: string - name: rapp_instance_id in: path required: true schema: type: string format: uuid responses: '200': description: OK '404': description: Not found /rapps/{rapp_id}/instance: get: tags: - rApp Instance summary: Get all instances of rApp operationId: getAllRappInstances parameters: - name: rapp_id in: path required: true schema: type: string responses: '200': description: OK content: '*/*': schema: type: object additionalProperties: $ref: '#/components/schemas/RappInstance' '404': description: Not found post: tags: - rApp Instance summary: Create rApp instance operationId: createRappInstance parameters: - name: rapp_id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/RappInstance' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/RappInstance' '404': description: Not found /rapps: get: tags: - rApp summary: Get All rApps operationId: getRapps responses: '200': description: OK content: '*/*': schema: type: array items: $ref: '#/components/schemas/Rapp' components: schemas: RappPrimeOrder: type: object properties: primeOrder: type: string enum: - PRIME - DEPRIME RappInstanceDeployOrder: type: object properties: deployOrder: type: string enum: - DEPLOY - UNDEPLOY ACMResources: type: object properties: compositionDefinitions: type: string compositionInstances: uniqueItems: true type: array items: type: string DMEResources: type: object properties: producerInfoTypes: uniqueItems: true type: array items: type: string consumerInfoTypes: uniqueItems: true type: array items: type: string infoProducers: uniqueItems: true type: array items: type: string infoConsumers: uniqueItems: true type: array items: type: string Rapp: type: object properties: rappId: type: string format: uuid name: type: string state: type: string enum: - COMMISSIONED - PRIMING - PRIMED - DEPRIMING reason: type: string packageLocation: type: string packageName: type: string rappResources: $ref: '#/components/schemas/RappResources' rappInstances: type: object additionalProperties: $ref: '#/components/schemas/RappInstance' compositionId: type: string format: uuid RappACMInstance: type: object properties: instance: type: string acmInstanceId: type: string format: uuid RappDMEInstance: type: object properties: infoTypesProducer: uniqueItems: true type: array items: type: string infoProducer: type: string infoTypeConsumer: type: string infoConsumer: type: string RappInstance: type: object properties: rappInstanceId: type: string format: uuid state: type: string enum: - DEPLOYED - DEPLOYING - UNDEPLOYED - UNDEPLOYING reason: type: string acm: $ref: '#/components/schemas/RappACMInstance' sme: $ref: '#/components/schemas/RappSMEInstance' dme: $ref: '#/components/schemas/RappDMEInstance' RappResources: type: object properties: acm: $ref: '#/components/schemas/ACMResources' sme: $ref: '#/components/schemas/SMEResources' dme: $ref: '#/components/schemas/DMEResources' RappSMEInstance: type: object properties: providerFunction: type: string providerFunctionIds: type: array items: type: string serviceApis: type: string serviceApiIds: type: array items: type: string invokers: type: string invokerIds: type: array items: type: string aefId: type: string apfId: type: string SMEResources: type: object properties: providerFunctions: uniqueItems: true type: array items: type: string serviceApis: uniqueItems: true type: array items: type: string invokers: uniqueItems: true type: array items: type: string