MEC010-2_AppLcm.yaml 104 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
Muhammad Hamza's avatar
Muhammad Hamza committed
  version: '3.1.1'
Muhammad Hamza's avatar
Muhammad Hamza committed
  description: 'ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management, v3.1.1'
  url: 'https://www.etsi.org/deliver/etsi_gs/MEC/001_099/01002/03.01.01_60/gs_MEC01002v030101p.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: The POST method is used to create an application instance resource.
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: ''
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'
        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'
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'
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'
        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: ''
        '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:
          type: object
          description: Operation state
          $ref: '#/components/schemas/OperationState'
        stateEnteredTime:
          type: object
          description: Date and time when the current state was entered.
          $ref: '#/components/schemas/TimeStamp'
        startTime:
          type: object
          description: Date and time of the start of the operation.
          $ref: '#/components/schemas/TimeStamp'
        lcmOperation:
          type: object
          description: Date and time of the start of the operation.
          $ref: '#/components/schemas/LcmOperation'
        operationParams:
          type: object
          description: Input parameters of the LCM operation. This attribute shall be formatted according to the request data type of the related LCM operation. See note 2.
          $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:
          type: object
          description: The mode of a cancellation.
          $ref: '#/components/schemas/CancelMode'
        _links:
          type: object
          description: Links to resources related to this resource.
          $ref: '#/components/schemas/AppInstanceLcmOpOcc.links'
      description: |
        This data type represents an application lifecycle management operation occurrence
        NOTE 1: Void.
        NOTE 2: This object contains structured data, and shall comply with the provisions of clause 4 of IETF RFC 8259 

    AppInstanceSubscriptionLinkList:
      required:
        - _links
      properties:
        _links:
          type: object
          description: List of hyperlinks related to the resource.
          $ref: '#/components/schemas/AppInstanceSubscriptionLinkList._links'

    AppInstanceSubscriptionLinkList._links:
      required:
        - self
      type: object
      properties:
          self:
            type: string
            description: URI referring to a resource
          subscriptions:
            type: array
            description: A link list to the subscriptions.
            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
              description: The URI referring to the subscription.
            subscriptionType:
              type: object
              description: Type of the subscription.
              $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
          description: Shall be set to "AppIdentifierCreationSubscription".
        callbackUri:
Elian Kraja's avatar
Elian Kraja committed
          type: string
          description: The URI of the endpoint for the subscription related notification to be sent to.
Elian Kraja's avatar
Elian Kraja committed
          format: uri
        appInstanceSubscriptionFilter:
          type: object
          description: Criteria used to filter application instances for which to send notifications related to this subscription. See note.
          $ref: '#/components/schemas/AppInstanceSubscriptionFilter'
      description: |
        NOTE: If present, the value of attribute "appInstSelectorType" in appInstanceSubscriptionFilter can only be set as "APP_D_ID" or "APP_FROM_PROVIDER".

    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
          description: The URI of the endpoint for the subscription related notification to be sent to.
        appInstanceSubscriptionFilter:
          type: object
          description: Criteria used to filter application instances for which to send notifications related to this subscription.
          $ref: '#/components/schemas/AppInstanceSubscriptionFilter'

    AppInstIdCreationSubscriptionInfo:
      type: object
      required:
        - id
        - subscriptionType
        - callbackUri
        - _links
      properties:
        id:
          type: string
          description: Identifier of the subscription to application instance operational state change notification.
        subscriptionType:
          type: string
          description: Shall be set to "AppIdentifierCreationSubscription".
        callbackUri:
Elian Kraja's avatar
Elian Kraja committed
          type: string
          format: uri
          description: The URI of the endpoint for the subscription related notification to be sent to.
        appInstanceSubscriptionFilter:
          type: object
          description: Criteria used to select application instances on which to send notifications related to this subscription.
          $ref: '#/components/schemas/AppInstanceSubscriptionFilter'
        _links:
          type: object
          description: Links to resources related to this resource.
          required:
            - self
          properties:
            self:
              type: object
              description: URI of this resource.
              $ref: '#/components/schemas/LinkType'

    AppInstIdDeletionSubscriptionInfo:
      type: object
      required:
        - id
        - subscriptionType
        - callbackUri
        - _links
      properties:
        id:
          type: string
          description: Identifier of the subscription to application instance operational state change notification.
        subscriptionType:
          type: string
          description: Shall be set to "AppIdentifierDeletionSubscription".
        callbackUri:
Elian Kraja's avatar
Elian Kraja committed
          type: string
          format: uri
          description: The URI of the endpoint for the subscription related notification to be sent to.
        appInstanceSubscriptionFilter:
          $ref: '#/components/schemas/AppInstanceSubscriptionFilter'
        _links: