MEC010-2_AppLcm.yaml 89.5 KB
Newer Older
openapi: 3.1.0
Elian Kraja's avatar
Elian Kraja committed
info:
  title: 'ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management'
  description: 'ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management described using OpenAPI.'
  license:
    name: BSD-3-Clause
    url: 'https://forge.etsi.org/legal-matters'
Elian Kraja's avatar
Elian Kraja committed
  contact:
Elian Kraja's avatar
Elian Kraja committed
    url: https://forge.etsi.org/rep/mec/gs010-2-app-pkg-lcm-api
    email: cti_support@etsi.org
  version: '3.0.1'
  description: 'ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management, v3.0.1'
  url: 'https://www.etsi.org/deliver/etsi_gs/MEC/001_099/01002/03.00.01_60/gs_MEC01002v030001p.pdf'
jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema
tags:
- name: app-lcm
  description: App lifecycle management
- name: app-lcm-notifications
  description: App lifecycle management notifications
Elian Kraja's avatar
Elian Kraja committed
servers:
- url: https://localhost/app_lcm/v1
  variables: {}
Elian Kraja's avatar
Elian Kraja committed
paths:
  /app_instances:
Elian Kraja's avatar
Elian Kraja committed
    post:
      tags:
      - 'app-lcm'
      summary:  'Create an application instance resource'
      description: Create an application instance resource
Elian Kraja's avatar
Elian Kraja committed
      operationId: appInstancePOST
      parameters: []
Elian Kraja's avatar
Elian Kraja committed
      requestBody:
        description: ''
Elian Kraja's avatar
Elian Kraja committed
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAppInstanceRequest'
        required: true
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '201':
          description: An application instance identifier and the related resource has been created successfully.
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
Elian Kraja's avatar
Elian Kraja committed
              schema:
                $ref: '#/components/schemas/AppInstanceInfo'
Elian Kraja's avatar
Elian Kraja committed
        '400':
          $ref: '#/components/responses/400'
Elian Kraja's avatar
Elian Kraja committed
        '401':
          $ref: '#/components/responses/401'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          $ref: '#/components/responses/403'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          $ref: '#/components/responses/404'
Elian Kraja's avatar
Elian Kraja committed
        '406':
          $ref: '#/components/responses/406'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          $ref: '#/components/responses/429'
      deprecated: false
Elian Kraja's avatar
Elian Kraja committed
    get:
      tags:
      - 'app-lcm'
      summary: 'Queries information relating to on-boarded application packages in the MEO'
      description: queries information relating to on-boarded application packages in the MEO
Elian Kraja's avatar
Elian Kraja committed
      operationId: appInstanceGET
      parameters:
      - name: filter
        in: query
        description: Attribute-based filtering parameters according to ETSI GS MEC 009
        style: form
        explode: true
        schema:
          type: string
      - name: all_fields
        in: query
        description: Include all complex attributes in the response.
        style: form
        explode: true
        schema:
          type: string
      - name: fields
        in: query
        description: Complex attributes of AppPkgInfo to be included into the response
        style: form
        explode: true
        schema:
          type: string
      - name: exclude_fields
        in: query
        description: Complex attributes of AppPkgInfo to be excluded from the response.
        style: form
        explode: true
        schema:
          type: string
      - name: exclude_default
        in: query
        description: Indicates to exclude the following complex attributes of AppPkgInfo from the response.
        style: form
        explode: true
        schema:
          type: string
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '200':
          description: Array the representations of zero or more application instances
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AppInstanceInfo'
                description: ''
                contentMediaType: application/json
Elian Kraja's avatar
Elian Kraja committed
        '400':
          $ref: '#/components/responses/400'
Elian Kraja's avatar
Elian Kraja committed
        '401':
          $ref: '#/components/responses/401'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          $ref: '#/components/responses/403'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          $ref: '#/components/responses/404'
Elian Kraja's avatar
Elian Kraja committed
        '406':
          $ref: '#/components/responses/406'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          $ref: '#/components/responses/429'
      deprecated: false
    parameters: []
  /app_instances/{appInstanceId}:
Elian Kraja's avatar
Elian Kraja committed
    get:
      tags:
      - 'app-lcm'
      summary:  'Retrieves the information of an individual application instance via reading an individual application instance.'
      description: Retrieves the information of an individual application instance via reading an individual application instance.
Elian Kraja's avatar
Elian Kraja committed
      operationId: appInstanceIdGET
      parameters:
      - name: appInstanceId
        in: path
        description: Identifier of an individual application instance
        required: true
        style: simple
        schema:
          type: string
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '200':
          description: Contains a representation of the read resource.
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppInstanceInfo'
        '400':
          $ref: '#/components/responses/400'
Elian Kraja's avatar
Elian Kraja committed
        '401':
          $ref: '#/components/responses/401'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          $ref: '#/components/responses/403'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          $ref: '#/components/responses/404'
Elian Kraja's avatar
Elian Kraja committed
        '406':
          $ref: '#/components/responses/406'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          $ref: '#/components/responses/429'
      deprecated: false
Elian Kraja's avatar
Elian Kraja committed
    delete:
      tags:
      - 'app-lcm'
      summary: 'Deletes an  individual application instance resource.'
      description: Deletes an  individual application instance resource.
Elian Kraja's avatar
Elian Kraja committed
      operationId: appInstanceIdDELETE
      parameters:
      - name: appInstanceId
        in: path
        description: Identifier of an individual application instance
        required: true
        style: simple
        schema:
          type: string
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '204':
          description: No Content
          headers: {}
          content: {}
Elian Kraja's avatar
Elian Kraja committed
        '400':
          $ref: '#/components/responses/400'
Elian Kraja's avatar
Elian Kraja committed
        '401':
          $ref: '#/components/responses/401'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          $ref: '#/components/responses/403'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          $ref: '#/components/responses/404'
Elian Kraja's avatar
Elian Kraja committed
        '406':
          $ref: '#/components/responses/406'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          $ref: '#/components/responses/429'
      deprecated: false
    parameters: []
  /subscriptions:
Elian Kraja's avatar
Elian Kraja committed
    post:
      tags:
      - 'app-lcm-notifications'
      summary:  'subscribe to the notification of application instance related change'
      description: subscribe to the notification of application instance related change
Elian Kraja's avatar
Elian Kraja committed
      operationId: appLcmSubscriptionsPOST
      requestBody:
        description: ''
Elian Kraja's avatar
Elian Kraja committed
        content:
          application/json:
            schema:
              oneOf:
Umair Zafar's avatar
Umair Zafar committed
                - $ref: '#/components/schemas/AppInstSubscriptionRequest'
                - $ref: '#/components/schemas/AppLcmOpOccSubscriptionRequest'
                - $ref: '#/components/schemas/AppInstIdCreationSubscriptionRequest'
                - $ref: '#/components/schemas/AppInstIdDeletionSubscriptionRequest'
              contentMediaType: application/json
        required: true
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '201':
          description: a representation of the created SubscriptionInfo.
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            application/json:
              schema:
Umair Zafar's avatar
Umair Zafar committed
                  - $ref: '#/components/schemas/AppInstSubscriptionInfo'
                  - $ref: '#/components/schemas/AppLcmOpOccSubscriptionInfo'
                  - $ref: '#/components/schemas/AppInstIdCreationSubscriptionInfo'
                  - $ref: '#/components/schemas/AppInstIdDeletionSubscriptionInfo'
                contentMediaType: application/json
Elian Kraja's avatar
Elian Kraja committed
        '400':
          $ref: '#/components/responses/400'
Elian Kraja's avatar
Elian Kraja committed
        '401':
          $ref: '#/components/responses/401'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          $ref: '#/components/responses/403'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          $ref: '#/components/responses/404'
Elian Kraja's avatar
Elian Kraja committed
        '406':
          $ref: '#/components/responses/406'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          $ref: '#/components/responses/429'
      callbacks:
        notification:
          '{$request.body#/callbackUri}':
            post:
              summary: 'Callback POST used to send a notification'
              description: 'Notification for informing the subscribers about operational state of application instance resources or state changes of an application LCM operation occurrence. It depends on subscription type.'
              operationId: notificationPOST
              requestBody:
                description: Subscription notification
                required: true
                content:
                  application/json:
                    schema:
                      oneOf:
Umair Zafar's avatar
Umair Zafar committed
                        - $ref: '#/components/schemas/AppInstNotification'
                        - $ref: '#/components/schemas/AppLcmOpOccNotification'        
              responses:
                '204':
                  description: "No content"
Elian Kraja's avatar
Elian Kraja committed
                '404':
                  description: "Not found"
      deprecated: false
Elian Kraja's avatar
Elian Kraja committed
    get:
      tags:
      - 'app-lcm-notifications'
      summary: 'Retrieves the information of multiple subscriptions to notifications related to an application instance.'
      description: Retrieves the information of multiple subscriptions to notifications related to an application instance.
Elian Kraja's avatar
Elian Kraja committed
      operationId: appLcmSubscriptionsGET
      parameters:
      - name: subscriptionType
        in: query
        description: Query parameter to filter on a specific subscription type.
        style: form
        explode: true
        schema:
          $ref: '#/components/schemas/AppInstanceSubscriptionType'
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '200':
          description: List of all subscriptions is returned.
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppInstanceSubscriptionLinkList'
Elian Kraja's avatar
Elian Kraja committed
        '400':
          $ref: '#/components/responses/400'
Elian Kraja's avatar
Elian Kraja committed
        '401':
          $ref: '#/components/responses/401'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          $ref: '#/components/responses/403'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          $ref: '#/components/responses/404'
Elian Kraja's avatar
Elian Kraja committed
        '406':
          $ref: '#/components/responses/406'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          $ref: '#/components/responses/429'
      deprecated: false
    parameters: []
  /subscriptions/{subscriptionId}:
Elian Kraja's avatar
Elian Kraja committed
    get:
      tags:
      - 'app-lcm-notifications'
      summary: 'Used to represent an individual subscription to notifications about application package changes.'
      description: Used to represent an individual subscription to notifications about application package changes.
Elian Kraja's avatar
Elian Kraja committed
      operationId: individualSubscriptionGET
      parameters:
      - name: subscriptionId
        in: path
        description: Represents an individual subscription to notification related to an application instance
        required: true
        style: simple
        schema:
          type: string
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '200':
          description: Representation of the resource.
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            application/json:
              schema:
                oneOf:
Umair Zafar's avatar
Umair Zafar committed
                  - $ref: '#/components/schemas/AppInstSubscriptionInfo'
                  - $ref: '#/components/schemas/AppLcmOpOccSubscriptionInfo'
                  - $ref: '#/components/schemas/AppInstIdCreationSubscriptionInfo'
                  - $ref: '#/components/schemas/AppInstIdDeletionSubscriptionInfo'
                contentMediaType: application/json
Elian Kraja's avatar
Elian Kraja committed
        '400':
          $ref: '#/components/responses/400'
Elian Kraja's avatar
Elian Kraja committed
        '401':
          $ref: '#/components/responses/401'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          $ref: '#/components/responses/403'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          $ref: '#/components/responses/404'
Elian Kraja's avatar
Elian Kraja committed
        '406':
          $ref: '#/components/responses/406'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          $ref: '#/components/responses/429'
      deprecated: false
Elian Kraja's avatar
Elian Kraja committed
    delete:
      tags:
      - 'app-lcm-notifications'
      summary: 'Deletes the individual subscription to notifications about application package changes in MEO.'
      description: Deletes the individual subscription to notifications about application package changes in MEO.
Elian Kraja's avatar
Elian Kraja committed
      operationId: individualSubscriptionDELETE
      parameters:
      - name: subscriptionId
        in: path
        description: Represents an individual subscription to notification related to an application instance
        required: true
        style: simple
        schema:
          type: string
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '204':
          description: No Content
          headers: {}
          content: {}
        '400':
          $ref: '#/components/responses/400'
Elian Kraja's avatar
Elian Kraja committed
        '401':
          $ref: '#/components/responses/401'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          $ref: '#/components/responses/403'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          $ref: '#/components/responses/429'
      deprecated: false
    parameters: []
  /user_defined_notification:
Elian Kraja's avatar
Elian Kraja committed
      tags:
      - 'app-lcm-notifications'
      summary:  'Delivers a notification from the application lifecycle management resource to the subscriber.'
      description: Delivers a notification from the application lifecycle management resource to the subscriber.
Elian Kraja's avatar
Elian Kraja committed
      operationId: appInstNotificationPOST
      parameters: []
Elian Kraja's avatar
Elian Kraja committed
      requestBody:
        description: ''
Elian Kraja's avatar
Elian Kraja committed
        content:
          application/json:
            schema:
              oneOf:
Umair Zafar's avatar
Umair Zafar committed
                - $ref: '#/components/schemas/AppInstNotification'
                - $ref: '#/components/schemas/AppLcmOpOccNotification'
                - $ref: '#/components/schemas/AppInstanceIdentifierCreationNotification'
                - $ref: '#/components/schemas/AppInstanceIdentifierDeletionNotification'
              contentMediaType: application/json
        required: true
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '204':
          description: No Content
          headers: {}
          content: {}
        '400':
          $ref: '#/components/responses/400'
Elian Kraja's avatar
Elian Kraja committed
        '401':
          $ref: '#/components/responses/401'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          $ref: '#/components/responses/403'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          $ref: '#/components/responses/404'
Elian Kraja's avatar
Elian Kraja committed
        '406':
          $ref: '#/components/responses/406'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          $ref: '#/components/responses/429'
      deprecated: false
    parameters: []
Elian Kraja's avatar
Elian Kraja committed
  /app_instances/{appInstanceId}/instantiate:
    post:
      tags:
      - 'app-lcm'
      summary: 'Deletes the individual subscription to notifications about application package changes in MEO.'
      description: task of instantiating an application instance.
Elian Kraja's avatar
Elian Kraja committed
      operationId: appLcmInstanciatePOST
      parameters:
      - name: appInstanceId
        in: path
        description: Identifier of an individual application instance
Elian Kraja's avatar
Elian Kraja committed
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
Elian Kraja's avatar
Elian Kraja committed
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InstantiateAppRequest'
        required: true
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '202':
          description: accepted for processing, but the processing has not yet been completed.
          headers: {}
          content: {}
Elian Kraja's avatar
Elian Kraja committed
        '400':
          $ref: '#/components/responses/400'
Elian Kraja's avatar
Elian Kraja committed
        '401':
          $ref: '#/components/responses/401'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          $ref: '#/components/responses/403'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          $ref: '#/components/responses/404'
Elian Kraja's avatar
Elian Kraja committed
        '406':
          $ref: '#/components/responses/406'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          $ref: '#/components/responses/429'
      deprecated: false
    parameters: []
  
  ## Resources of application lifecycle management on Mm1

  /app_instances/{appInstanceId}/terminate:
    post:
      tags:
      - 'app-lcm'
      summary: 'terminate an application instance.'
      description: terminate an application instance.
      operationId: appLcmTerminatePOST
      parameters:
      - name: appInstanceId
        in: path
        description: Identifier of an individual application instance
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TerminateAppRequest'
        required: true
      responses:
        '202':
          description: accepted for processing, but the processing has not yet been completed.
          headers: {}
          content: {}
        '400':
          $ref: '#/components/responses/400'
          $ref: '#/components/responses/401'
          $ref: '#/components/responses/403'
          $ref: '#/components/responses/404'
          $ref: '#/components/responses/406'
          $ref: '#/components/responses/429'
      deprecated: false
    parameters: []
  /app_instances/{appInstanceId}/operate:
    post:
      tags:
      - 'app-lcm'
      summary: 'change the operational state, i.e. start or stop, of the application instance'
      description: change the operational state, i.e. start or stop, of the application instance
      operationId: appLcmOperatePOST
      parameters:
      - name: appInstanceId
        in: path
        description: Identifier of an individual application instance
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OperateAppRequest'
        required: true
      responses:
        '202':
          description: accepted for processing, but the processing has not yet been completed.
          headers: {}
          content: {}
        '400':
          $ref: '#/components/responses/400'
          $ref: '#/components/responses/401'
          $ref: '#/components/responses/403'
          $ref: '#/components/responses/404'
          $ref: '#/components/responses/406'
          $ref: '#/components/responses/429'
      deprecated: false
    parameters: []
  /app_lcm_op_occs:
    get:
      tags:
      - 'app-lcm'
      summary: 'retrieves information of operation status about multiple application instance lifecycle management operation occurrences'
      description: retrieves information of operation status about multiple application instance lifecycle management operation occurrences
      operationId: appLcmOpOccsGET
      parameters:
      - name: filter
        in: query
        description: Attribute-based filtering parameters according to ETSI GS MEC 009
        style: form
        explode: true
        schema:
          type: string
      - name: all_fields
        in: query
        description: Include all complex attributes in the response.
        style: form
        explode: true
        schema:
          type: string
      - name: fields
        in: query
        description: Complex attributes of AppLcmOpOcc to be excluded from the response.
        style: form
        explode: true
        schema:
          type: string
      - name: exclude_fields
        in: query
        description: Complex attributes of AppLcmOpOcc to be excluded from the response.
        style: form
        explode: true
        schema:
          type: string
      - name: exclude_default
        in: query
        description: Indicates to exclude the following complex attributes of AppLcmOpOcc from the response.
        style: form
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: Status information for zero or more application instance lifecycle management operation occurrences was queried successfully
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AppLcmOpOcc'
                description: ''
                contentMediaType: application/json
        '400':
          $ref: '#/components/responses/400'
          $ref: '#/components/responses/401'
          $ref: '#/components/responses/403'
          $ref: '#/components/responses/404'
          $ref: '#/components/responses/406'
          $ref: '#/components/responses/429'
      deprecated: false
    parameters: []
  /app_lcm_op_occs/{appLcmOpOccId}:
    get:
      tags:
      - 'app-lcm'
      summary:  'reads the status information of an individual application LCM operation occurrence'
      description: reads the status information of an individual application LCM operation occurrence
      operationId: appLcmOpOccsbyIdGET
      parameters:
      - name: appLcmOpOccId
        in: path
        description: Identifies an individual application LCM operation occurrence
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Information about an application LCM operation occurrence was read successfully
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppLcmOpOcc'
        '400':
          $ref: '#/components/responses/400'
          $ref: '#/components/responses/401'
          $ref: '#/components/responses/403'
          $ref: '#/components/responses/404'
          $ref: '#/components/responses/406'
          $ref: '#/components/responses/429'
      deprecated: false
    parameters: []
  /app_lcm_op_occs/{appLcmOpOccId}/cancel:
    post:
      tags:
      - 'app-lcm'
      summary: 'cancel an ongoing application lifecycle operation whose related "Individual application LCM operation occurrence" resource is in "PROCESSING" state.'
      description: cancel an ongoing application lifecycle operation whose related "Individual application LCM operation occurrence" resource is in "PROCESSING" state.
      operationId: appLcmCancelPOST
      parameters:
      - name: appLcmOpOccId
        in: path
        description: Identifies an individual application LCM operation occurrence
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelMode'
        required: true
      responses:
        '202':
          description: The request was accepted for processing, but it is possible that the processing is not yet completed.
          headers: {}
          content: {}
        '400':
          $ref: '#/components/responses/400'
          $ref: '#/components/responses/401'
          $ref: '#/components/responses/403'
          $ref: '#/components/responses/404'
          $ref: '#/components/responses/406'
          $ref: '#/components/responses/429'
      deprecated: false
    parameters: []
  /app_lcm_op_occs/{appLcmOpOccId}/fail:
    post:
      tags:
      - 'app-lcm'
      summary: marks an application lifecycle management operation occurrence as "finally failed"
      description: marks an application lifecycle management operation occurrence as "finally failed"
      operationId: appLcmFailPOST
      parameters:
      - name: appLcmOpOccId
        in: path
        description: Identifies an individual application LCM operation occurrence
        required: true
        style: simple
        schema:
          type: string
      responses:
        '202':
          description: Shall be returned when the state of the application lifecycle management operation occurrence has been changed successfully
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppLcmOpOcc'
        '400':
          $ref: '#/components/responses/400'
          $ref: '#/components/responses/401'
          $ref: '#/components/responses/403'
          $ref: '#/components/responses/404'
          $ref: '#/components/responses/406'
          $ref: '#/components/responses/429'
      deprecated: false
    parameters: []
  /app_lcm_op_occs/{appLcmOpOccId}/retry:
    post:
      tags:
      - 'app-lcm'
      summary: initiate retrying an application lifecycle operation that has experience a temporary failure
      description: initiate retrying an application lifecycle operation that has experience a temporary failure
      operationId: appLcmRetryPOST
      parameters:
      - name: appLcmOpOccId
        in: path
        description: Identifies an individual application LCM operation occurrence
        required: true
        style: simple
        schema:
          type: string
      responses:
        '202':
          description: The request was accepted for processing, but it is possible that the processing is not yet completed
          headers: {}
          content: {}
        '400':
          $ref: '#/components/responses/400'
          $ref: '#/components/responses/401'
          $ref: '#/components/responses/403'
          $ref: '#/components/responses/404'
          $ref: '#/components/responses/406'
          $ref: '#/components/responses/429'
      deprecated: false
    parameters: []


## Resources of MEPM's application lifecycle management on Mm3
  /app_instances/{appInstanceId}/configure_platform_for_app:
    post:
      tags:
      - 'app-lcm'
      summary: provide configuration information in AppD to the MEPM-V, intended to configure the MEP to run the application instance.
      description: provide configuration information in AppD to the MEPM-V, intended to configure the MEP to run the application instance.
      operationId: appInstancesConfigPlatformPOST
      parameters:
      - name: appInstanceId
        in: path
        description: The identifier of the application instance.
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: The message content in the request contains the information necessary to provide configuration information in AppD
              $ref: './definitions/MEC010p2_definitions.yaml#/definitions/ConfigPlatformForAppRequest'
      responses:
        '202':
          description: The request was accepted for processing, but it is possible that the processing is not yet completed
          headers: {}
          content: {}
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
          $ref: '#/components/responses/429'

components:
  schemas:
    AppLcmOpOcc:
      title: AppLcmOpOcc
      required:
        - id
        - operationState
        - stateEnteredTime
        - startTime
        - lcmOperation
        - _links
      type: object
      properties:
        id:
          type: string
          description: "'Identifier of the subscription to application LCM operation occurrence notification'"
        operationState:
          $ref: '#/components/schemas/OperationState'
        stateEnteredTime:
          $ref: '#/components/schemas/TimeStamp'
        startTime:
          $ref: '#/components/schemas/TimeStamp'
        lcmOperation:
          $ref: '#/components/schemas/LcmOperation'
        operationParams:
          $ref: '#/components/schemas/OperationParams'
        isCancelPending:
          type: boolean
          description: If the application LCM operation occurrence operationState is in "PROCESSING" state and the operation is being cancelled, this attribute shall be set to true. Otherwise, it shall be set to false.
        cancelMode:
          $ref: '#/components/schemas/CancelMode'

        _links:
          $ref: '#/components/schemas/AppInstanceLcmOpOcc.links'
      description: "'This data type represents an application lifecycle management operation occurrence'"
    
    AppInstanceSubscriptionLinkList:
      required:
        - _links
      properties:
        _links:
          $ref: '#/components/schemas/AppInstanceSubscriptionLinkList._links'

    AppInstanceSubscriptionLinkList._links:
      required:
        - self
      type: object
      properties:
          self:
            type: string
            description: URI referring to a resource
          subscriptions:
            type: array
            items:
              $ref: '#/components/schemas/AppInstanceSubscriptionLinkList._links.subscriptions'

    AppInstanceSubscriptionLinkList._links.subscriptions:
      type: object
      required:
        - href
        - subscriptionType
      properties:
            href:
Elian Kraja's avatar
Elian Kraja committed
              type: string
              format: uri
            subscriptionType:
              $ref: '#/components/schemas/AppInstanceSubscriptionType'


    AppInstanceSubscriptionType:
Elian Kraja's avatar
Elian Kraja committed
      type: string
      description: String representing the type of a subscription.
      enum:
          - AppInstanceStateChangeSubscription
          - AppLcmOpOccStateChangeSubscription
          - AppIdentifierCreationSubscription
          - AppIdentifierDeletionSubscription

    OperationParams:
      oneOf:
        - $ref: '#/components/schemas/InstantiateAppRequest'
        - $ref: '#/components/schemas/OperateAppRequest'
        - $ref: '#/components/schemas/TerminateAppRequest'

    CancelMode:
      description: Indicates the intervention action to be taken. GRACEFUL Indicates ongoing resource management operations in the underlying system are allowed to complete execution or time out. FORCED Indicates ongoing resource management operations in the underlying system are to be cancelled without allowing them to complete execution or time out.
      type: string
      enum:
        - GRACEFUL
        - FORCED

    AppInstIdCreationSubscriptionRequest:
      type: object
      required:
        - subscriptionType
        - callbackUri
      properties:
        subscriptionType:
          type: string
        callbackUri:
Elian Kraja's avatar
Elian Kraja committed
          type: string
          format: uri
        appInstanceSubscriptionFilter:
          $ref: '#/components/schemas/AppInstanceSubscriptionFilter'

    AppInstIdDeletionSubscriptionRequest:
      type: object
      required:
        - subscriptionType
        - callbackUri
      properties:
        subscriptionType:
          type: string
          description: Shall be set to "AppIdentifierDeletionSubscription".
        callbackUri:
Elian Kraja's avatar
Elian Kraja committed
          type: string
          format: uri
        appInstanceSubscriptionFilter:
          $ref: '#/components/schemas/AppInstanceSubscriptionFilter'

    AppInstIdCreationSubscriptionInfo:
      type: object
      required:
        - id
        - subscriptionType
        - callbackUri
        - _links
      properties:
        id:
          type: string
        subscriptionType:
          type: string
        callbackUri:
Elian Kraja's avatar
Elian Kraja committed
          type: string
          format: uri
        appInstanceSubscriptionFilter:
          $ref: '#/components/schemas/AppInstanceSubscriptionFilter'
        _links:
          type: object
          required:
            - self
          properties:
            self:
              $ref: '#/components/schemas/LinkType'

    AppInstIdDeletionSubscriptionInfo:
      type: object
      required:
        - id
        - subscriptionType
        - callbackUri
        - _links
      properties:
        id:
          type: string
        subscriptionType:
          type: string
          description: Shall be set to "AppIdentifierDeletionSubscription".
        callbackUri:
Elian Kraja's avatar
Elian Kraja committed
          type: string
          format: uri
        appInstanceSubscriptionFilter:
          $ref: '#/components/schemas/AppInstanceSubscriptionFilter'
        _links:
          type: object
          required:
            - self
          properties:
            self:
              $ref: '#/components/schemas/LinkType'

    AppInstanceLcmOpOcc.links:
      title: AppInstanceLcmOpOcc.links
      required:
        - self
        - appInstance
      type: object
      properties:
        self:
          $ref: '#/components/schemas/LinkType'
        appInstance:
          $ref: '#/components/schemas/LinkType'
      description: Links to resources related to this resource.


    AppLcmOpOccSubscriptionInfo:
      title: AppLcmOpOccSubscriptionInfo
      required:
        - id
        - subscriptionType
        - callbackUri
        - _links
      type: object
      properties:
        id:
          type: string
          description: Identifier of this subscription resource.
        subscriptionType: