Upgrade App Manager to version 0.1.5
[portal/ric-dashboard.git] / app-mgr-client / src / main / resources / xapp_manager_rest_api_v0_1_5.yaml
diff --git a/app-mgr-client/src/main/resources/xapp_manager_rest_api_v0_1_5.yaml b/app-mgr-client/src/main/resources/xapp_manager_rest_api_v0_1_5.yaml
new file mode 100644 (file)
index 0000000..eb89359
--- /dev/null
@@ -0,0 +1,596 @@
+# ========================LICENSE_START=================================
+# O-RAN-SC
+#
+# Copyright (C) 2019 AT&T Intellectual Property and Nokia
+#
+# 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===================================
+swagger: '2.0'
+info:
+  description: This is a draft API for RIC appmgr
+  version: 0.1.5
+  title: RIC appmgr
+  license:
+    name: Apache 2.0
+    url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
+host: hostname
+basePath: /ric/v1
+schemes:
+  - http
+paths:
+  /health/alive :
+    get :
+      summary     : Health check of xApp Manager - Liveness probe
+      tags        : 
+        - health
+      operationId : getHealthAlive
+      responses   :
+        '200' :
+          description : Status of xApp Manager is ok
+  /health/ready :
+    get :
+      summary     : Readiness check of xApp Manager - Readiness probe
+      tags        : 
+        - health
+      operationId : getHealthReady
+      responses   :
+        '200':
+          description : xApp Manager is ready for service
+        '503':
+          description: xApp Manager is not ready for service
+  /xapps:
+    post:
+      summary: Deploy a xapp
+      tags:
+        - xapp
+      operationId: deployXapp
+      consumes:
+        - application/json
+      produces:
+        - application/json
+      parameters:
+        - name: xAppInfo
+          in: body
+          description: xApp information
+          schema:
+            type: object
+            required:
+              - name
+            properties:
+              name:
+                type: string
+                description: Name of the xApp.
+                example: xapp-dummy
+              configName:
+                type: string
+                description: Name of the xApp configmap. Overrides the value given in Helm chart value file.
+                example: xapp-dummy-configmap
+              namespace:
+                type: string
+                description: Name of the namespace to which xApp is deployed. Overrides the value given in Helm chart value file.
+                example: ricxapps
+              serviceName:
+                type: string
+                description: Name of the service xApp is providing. Overrides the value given in Helm chart value file.
+                example: xapp-dummy-service
+              imageRepo:
+                type: string
+                description: Name of the docker repository xApp is located. Overrides the value given in Helm chart value file.
+                example: xapprepo
+              hostname:
+                type: string
+                description: Hostname for the pod. Used by messaging library. Overrides the value given in Helm chart value file.
+                example: xapp-dummy
+      responses:
+        '201':
+          description: xApp successfully created
+          schema:
+            $ref: '#/definitions/Xapp'
+        '400':
+          description: Invalid input
+        '500':
+          description: Internal error
+    get:
+      summary: Returns the status of all xapps
+      tags:
+        - xapp
+      operationId: getAllXapps
+      produces:
+        - application/json
+      responses:
+        '200':
+          description: successful query of xApps
+          schema:
+            $ref: '#/definitions/AllDeployedXapps'
+        '500':
+          description: Internal error
+  '/xapps/list':
+    get:
+      summary: Returns the list of all deployable xapps
+      tags:
+        - xapp
+      operationId: listAllXapps
+      produces:
+        - application/json
+      responses:
+        '200':
+          description: successful list of deployable xApps
+          schema:
+            $ref: '#/definitions/AllDeployableXapps'
+        '500':
+          description: Internal error
+  '/xapps/{xAppName}':
+    get:
+      summary: Returns the status of a given xapp
+      tags:
+        - xapp
+      operationId: getXappByName
+      produces:
+        - application/json
+      parameters:
+        - name: xAppName
+          in: path
+          description: Name of xApp
+          required: true
+          type: string
+      responses:
+        '200':
+          description: successful operation
+          schema:
+            $ref: '#/definitions/Xapp'
+        '400':
+          description: Invalid ID supplied
+        '404':
+          description: Xapp not found
+        '500':
+          description: Internal error
+    delete:
+      summary: Undeploy an existing xapp
+      tags:
+        - xapp
+      operationId: undeployXapp
+      parameters:
+        - name: xAppName
+          in: path
+          description: Xapp to be undeployed
+          required: true
+          type: string
+      responses:
+        '204':
+          description: Successful deletion of xApp
+        '400':
+          description: Invalid xApp name supplied
+        '500':
+          description: Internal error
+  '/xapps/{xAppName}/instances/{xAppInstanceName}':
+    get:
+      summary: Returns the status of a given xapp
+      tags:
+        - xapp
+      operationId: getXappInstanceByName
+      produces:
+        - application/json
+      parameters:
+        - name: xAppName
+          in: path
+          description: Name of xApp
+          required: true
+          type: string
+        - name: xAppInstanceName
+          in: path
+          description: Name of xApp instance to get information
+          required: true
+          type: string
+      responses:
+        '200':
+          description: successful operation
+          schema:
+            $ref: '#/definitions/XappInstance'
+        '400':
+          description: Invalid name supplied
+        '404':
+          description: Xapp not found
+        '500':
+          description: Internal error
+  /config:
+    post:
+      summary: Create xApp config
+      tags:
+        - xapp
+      operationId: createXappConfig
+      consumes:
+        - application/json
+      produces:
+        - application/json
+      parameters:
+        - name: XAppConfig
+          in: body
+          description: xApp config
+          schema:
+            $ref: '#/definitions/XAppConfig'
+      responses:
+        '201':
+          description: xApp config successfully created
+          schema:
+            $ref: '#/definitions/XAppConfig'
+        '400':
+          description: Invalid input
+        '422':
+          description: Validation of configuration failed
+        '500':
+          description: Internal error
+    put:
+      summary: Modify xApp config
+      tags:
+        - xapp
+      operationId: ModifyXappConfig
+      consumes:
+        - application/json
+      produces:
+        - application/json
+      parameters:
+        - name: XAppConfig
+          in: body
+          description: xApp config
+          schema:
+            $ref: '#/definitions/XAppConfig'
+      responses:
+        '200':
+          description: xApp config successfully modified
+          schema:
+            $ref: '#/definitions/XAppConfig'
+        '400':
+          description: Invalid input
+        '422':
+          description: Validation of configuration failed
+        '500':
+          description: Internal error
+    get:
+      summary: Returns the configuration of all xapps
+      tags:
+        - xapp
+      operationId: getAllXappConfig
+      produces:
+        - application/json
+      responses:
+        '200':
+          description: successful query of xApp config
+          schema:
+            $ref: '#/definitions/AllXappConfig'
+        '500':
+          description: Internal error
+    delete:
+      summary: Delete xApp configuration
+      tags:
+        - xapp
+      operationId: deleteXappConfig
+      parameters:
+        - name: ConfigMetadata
+          in: body
+          description: xApp configuration information
+          schema:
+            $ref: '#/definitions/ConfigMetadata'
+      responses:
+        '204':
+          description: Successful deletion of xApp
+        '400':
+          description: Invalid parameters supplied
+        '500':
+          description: Internal error
+  /subscriptions:
+    post:
+      summary: Subscribe event
+      tags:
+        - xapp
+        - subscriptions
+      operationId: addSubscription
+      consumes:
+        - application/json
+      produces:
+        - application/json
+      parameters:
+        - name: subscriptionRequest
+          in: body
+          description: New subscription
+          required: true
+          schema:
+            $ref: '#/definitions/subscriptionRequest'
+      responses:
+        '200':
+          description: Subscription successful
+          schema:
+            $ref: '#/definitions/subscriptionResponse'
+        '400':
+          description: Invalid input
+    get:
+      summary: Returns all subscriptions
+      tags:
+        - xapp
+        - subscriptions
+      operationId: getSubscriptions
+      produces:
+        - application/json
+      responses:
+        '200':
+          description: successful query of subscriptions
+          schema:
+            $ref: '#/definitions/allSubscriptions'
+  '/subscriptions/{subscriptionId}':
+    get:
+      summary: Returns the information of subscription
+      tags:
+        - xapp
+        - subscriptions
+      operationId: getSubscriptionById
+      produces:
+        - application/json
+      parameters:
+        - name: subscriptionId
+          in: path
+          description: ID of subscription
+          required: true
+          type: string
+      responses:
+        '200':
+          description: successful operation
+          schema:
+            $ref: '#/definitions/subscription'
+        '400':
+          description: Invalid ID supplied
+        '404':
+          description: Subscription not found
+    put:
+      summary: Modify event subscription
+      tags:
+        - xapp
+        - subscriptions
+      operationId: modifySubscription
+      consumes:
+        - application/json
+      produces:
+        - application/json
+      parameters:
+        - name: subscriptionId
+          in: path
+          description: ID of subscription
+          required: true
+          type: string
+        - in: body
+          name: subscriptionRequest
+          description: Modified subscription
+          required: true
+          schema:
+            $ref: '#/definitions/subscriptionRequest'
+      responses:
+        '200':
+          description: Subscription modification successful
+          schema:
+            $ref: '#/definitions/subscriptionResponse'
+        '400':
+          description: Invalid input
+    delete:
+      summary: Unsubscribe event
+      tags:
+        - xapp
+        - subscriptions
+      description: ''
+      operationId: deleteSubscription
+      parameters:
+        - name: subscriptionId
+          in: path
+          description: ID of subscription
+          required: true
+          type: string
+      responses:
+        '204':
+          description: Successful deletion of subscription
+        '400':
+          description: Invalid subscription supplied
+definitions:
+  AllDeployableXapps:
+    type: array
+    items:
+      type: string
+      example: "xapp-dummy"
+  AllDeployedXapps:
+    type: array
+    items:
+      $ref: '#/definitions/Xapp'
+  Xapp:
+    type: object
+    required:
+      - name
+    properties:
+      name:
+        type: string
+        example: xapp-dummy
+      status:
+        type: string
+        description: xapp status in the RIC
+        enum:
+          - unknown
+          - deployed
+          - deleted
+          - superseded
+          - failed
+          - deleting
+      version:
+        type: string
+        example: 1.2.3
+      instances:
+        type: array
+        items:
+          $ref: '#/definitions/XappInstance'
+  XappInstance:
+    type: object
+    required:
+      - name
+    properties:
+      name:
+        type: string
+        example: xapp-dummy-6cd577d9-4v255
+      status:
+        type: string
+        description: xapp instance status
+        enum:
+          - pending
+          - running
+          - succeeded
+          - failed
+          - unknown
+          - completed
+          - crashLoopBackOff
+      ip:
+        type: string
+        example: 192.168.0.1
+      port:
+        type: integer
+        example: 32300
+      txMessages:
+        type: array
+        items:
+          type: string
+          example: ControlIndication
+      rxMessages:
+        type: array
+        items:
+          type: string
+          example: LoadIndication
+  ConfigMetadata:
+    type: object
+    required:
+      - name
+      - configName
+      - namespace
+    properties:
+      name:
+        type: string
+        description: Name of the xApp
+        example: xapp-dummy
+      configName:
+        type: string
+        description: Name of the config map
+        example: xapp-dummy-config-map
+      namespace:
+        type: string
+        description: Name of the namespace
+        example: ricxapp
+  XAppConfig:
+    type: object
+    required:
+      - metadata
+      - descriptor
+      - config
+    properties:
+      metadata:
+        $ref: '#/definitions/ConfigMetadata'
+      descriptor:
+        type: object
+        description: Schema of configuration in JSON format
+      config:
+        type: object
+        description: Configuration in JSON format
+  AllXappConfig:
+    type: array
+    items:
+      $ref: '#/definitions/XAppConfig'
+  subscriptionRequest:
+    type: object
+    required:
+      - targetUrl
+      - eventType
+      - maxRetries
+      - retryTimer
+    properties:
+      targetUrl:
+        type: string
+        example: 'http://localhost:11111/apps/webhook/'
+      eventType:
+        type: string
+        description: Event which is subscribed
+        enum:
+          - created
+          - deleted
+          - all
+      maxRetries:
+        type: integer
+        description: Maximum number of retries
+        example: 11
+      retryTimer:
+        type: integer
+        description: Time in seconds to wait before next retry
+        example: 22
+  subscriptionResponse:
+    type: object
+    properties:
+      id:
+        type: string
+        example: 1ILBltYYzEGzWRrVPZKmuUmhwcc
+      version:
+        type: integer
+        example: 2
+      eventType:
+        type: string
+        description: Event which is subscribed
+        enum:
+          - created
+          - deleted
+          - updated
+          - all
+  allSubscriptions:
+    type: array
+    items:
+      $ref: '#/definitions/subscription'
+  subscription:
+    type: object
+    properties:
+      id:
+        type: string
+        example: 1ILBltYYzEGzWRrVPZKmuUmhwcc
+      targetUrl:
+        type: string
+        example: 'http://localhost:11111/apps/webhook/'
+      eventType:
+        type: string
+        description: Event which is subscribed
+        enum:
+          - created
+          - deleted
+          - updated
+          - all
+      maxRetries:
+        type: integer
+        description: Maximum number of retries
+        example: 11
+      retryTimer:
+        type: integer
+        description: Time in seconds to wait before next retry
+        example: 22
+  subscriptionNotification:
+    type: object
+    properties:
+      id:
+        type: string
+        example: 1ILBltYYzEGzWRrVPZKmuUmhwcc
+      version:
+        type: integer
+        example: 2
+      eventType:
+        type: string
+        description: Event to be notified
+        enum:
+          - created
+          - deleted
+          - updated
+      xApps:
+        $ref: '#/definitions/AllDeployedXapps'