--- /dev/null
+# ============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