MEC010-2_AppPkgMgmt.yaml 74 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'
jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema
  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'
tags:
- name: app-pkgm
  description: App Package management
- name: app-pkgm-notifications
  description: App Package management notifications
Elian Kraja's avatar
Elian Kraja committed
servers:
- url: https://localhost/app_pkgm/v1
  variables: {}
Elian Kraja's avatar
Elian Kraja committed
paths:
  /app_packages:
    post:
      tags:
      - app-pkgm
      summary:  'Create a resource for on-boarding an application package to a MEO/MEAO'
      description: Create a resource for on-boarding an application package to a MEO/MEAO
Elian Kraja's avatar
Elian Kraja committed
      operationId: app_packagesPOST
      parameters: []
Elian Kraja's avatar
Elian Kraja committed
      requestBody:
        description: Resource to be created
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAppPkg'
        required: true
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '201':
          description: Successful response for resource creation
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppPkgInfo'
                description: The response body shall contain a representation of the application package resource
                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
    get:
      tags:
      - app-pkgm
      summary: Queries information relating to on-boarded application packages in the MEO/MEAO'
      description: queries information relating to on-boarded application packages in the MEO/MEAO
Elian Kraja's avatar
Elian Kraja committed
      operationId: app_packagesGET
      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: Contains a representation of the application package resource
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AppPkgInfo'
                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: []
  
  /onboarded_app_packages:
      post:
        tags:
        - app-pkgm
        summary:  'Create a resource for on-boarding an application package to a MEO/MEAO'
        description: Create a resource for on-boarding an application package to a MEO/MEAO
        operationId: onboarded_app_packagesPOST
        parameters: []
        requestBody:
          description: Resource to be created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAppPkg'
          required: true
        responses:
          '201':
            description: Successful response for resource creation
            headers: {}
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/AppPkgInfo'
                  description: The response body shall contain a representation of the application package resource
                  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
      get:
        tags:
        - app-pkgm
        summary: Queries information relating to on-boarded application packages in the MEO/MEAO'
        description: queries information relating to on-boarded application packages in the MEO/MEAO
        operationId: onboarded_app_packagesGET
        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
        responses:
          '200':
            description: Contains a representation of the application package resource
            headers: {}
            content:
              application/json:
                schema:
                  type: array
                  items:
                    $ref: '#/components/schemas/AppPkgInfo'
                  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: []

Elian Kraja's avatar
Elian Kraja committed
  /app_packages/{appPkgId}:
    get:
      tags:
      - app-pkgm
      summary: 'Queries the information related to individual application package resources'
      description: Queries the information related to individual application package resources
Elian Kraja's avatar
Elian Kraja committed
      operationId: app_packageGET
      parameters:
      - name: appPkgId
        in: path
        description: Identifier of an individual application package resource
        required: true
        style: simple
        schema:
          type: string
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '200':
          description: Contains a representation of the application package resource
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppPkgInfo'
        '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-pkgm
      summary: 'Deletes an individual application package resources in MEO/MEAO'
      description: Deletes an individual application package resources in MEO/MEAO
Elian Kraja's avatar
Elian Kraja committed
      operationId: app_packageDELETE
      parameters:
      - name: appPkgId
        in: path
        description: Identifier of an individual application package resource
        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
Elian Kraja's avatar
Elian Kraja committed
    patch:
      tags:
      - app-pkgm
      summary: 'Updates the operational state of an individual application package resource'
      description: Updates the operational state of an individual application package resources
Elian Kraja's avatar
Elian Kraja committed
      operationId: app_packagePATCH
      parameters:
      - name: appPkgId
        in: path
        description: Identifier of an individual application package resource
        required: true
        style: simple
        schema:
          type: string
Elian Kraja's avatar
Elian Kraja committed
      requestBody:
        description: Parameters for application package information modification.
Elian Kraja's avatar
Elian Kraja committed
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppPkgInfoModifications'
        required: true
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '200':
          description: Shows that the operation has been completed successfully
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppPkgInfoModifications'
        '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: []
  
  /onboarded_app_packages/{appPkgId}:
    get:
      tags:
      - app-pkgm
      summary: 'Queries the information related to individual application package resources'
      description: Queries the information related to individual application package resources
      operationId: onboarded_app_packageGET
      parameters:
      - name: appPkgId
        in: path
        description: Identifier of an individual application package resource
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Contains a representation of the application package resource
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppPkgInfo'
        '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
    delete:
      tags:
      - app-pkgm
      summary: 'Deletes an individual application package resources in MEO/MEAO'
      description: Deletes an individual application package resources in MEO/MEAO
      operationId: onboarded_app_packageDELETE
      parameters:
      - name: appPkgId
        in: path
        description: Identifier of an individual application package resource
        required: true
        style: simple
        schema:
          type: string
      responses:
        '204':
          description: No Content
          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
    patch:
      tags:
      - app-pkgm
      summary: 'Updates the operational state of an individual application package resource'
      description: Updates the operational state of an individual application package resources
      operationId: onboarded_app_packagePATCH
      parameters:
      - name: appPkgId
        in: path
        description: Identifier of an individual application package resource
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: Parameters for application package information modification.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppPkgInfoModifications'
        required: true
      responses:
        '200':
          description: Shows that the operation has been completed successfully
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppPkgInfoModifications'
        '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: []

Elian Kraja's avatar
Elian Kraja committed
  /subscriptions:
    post:
      tags:
      - app-pkgm
      summary: 'Subscribe to notifications about on-boarding an application package'
      description: Subscribe to notifications about on-boarding an application package
Elian Kraja's avatar
Elian Kraja committed
      operationId: subscriptionsPOST
      parameters: []
Elian Kraja's avatar
Elian Kraja committed
      requestBody:
        description: The input parameters of subscribe operation to notifications
Elian Kraja's avatar
Elian Kraja committed
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppPkgSubscription'
        required: true
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '201':
          description: Successful response for created subscription
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppPkgSubscriptionInfo'
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#/subscription.href}':
            post:
              summary: 'Callback POST used to send a notification'
              description: ' The notification is triggered when a new application package is onboarded'
              operationId: notificationPOST
              requestBody:
                description: Subscription notification
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/AppPkgNotification'
                  description: "No content"
                '404':
                  description: "Not found"
Elian Kraja's avatar
Elian Kraja committed
    get:
      tags:
      - app-pkgm
      summary:  'used to retrieve the information of subscriptions to individual application package resource in MEO or MEAO'
      description: used to retrieve the information of subscriptions to individual application package resource in MEO or MEAO package
Elian Kraja's avatar
Elian Kraja committed
      operationId: subscriptionsGET
      parameters: []
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '200':
          description: List of zero or more subscriptions
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppPkgSubscriptionLinkList'
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-pkgm
      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: Identifier of an individual subscription to notifications about application package changes
        required: true
        style: simple
        schema:
          type: string
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '200':
          description: a response body containing a representation of the resource shall be returned.
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppPkgSubscriptionInfo'
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-pkgm
      summary:  'Deletes the individual subscription to notifications about application package changes in MEO or MEAO.'
      description: Deletes the individual subscription to notifications about application package changes in MEO or MEAO.
Elian Kraja's avatar
Elian Kraja committed
      operationId: individualSubscriptionDELETE
      parameters:
      - name: subscriptionId
        in: path
        description: Identifier of an individual subscription to notifications about application package changes
Elian Kraja's avatar
Elian Kraja committed
        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: []
Elian Kraja's avatar
Elian Kraja committed
  /app_packages/{appPkgId}/appd:
    get:
      tags:
      - app-pkgm
      summary:  'Reads the content of the AppD of on-boarded individual application package resources.'
      description: Reads the content of the AppD of on-boarded individual application package resources.
Elian Kraja's avatar
Elian Kraja committed
      operationId: appPkgIdGET
      parameters:
      - name: appPkgId
        in: path
        description: Identifier of an on-boarded individual application package
        required: true
        style: simple
        schema:
          type: string
      - 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: Content of the AppD is returned.
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/AppD'
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: []
Elian Kraja's avatar
Elian Kraja committed
  /onboarded_app_packages/{appDId}/appd:
    get:
      tags:
      - app-pkgm
      summary:  'Reads the content of the AppD of on-boarded individual application package resources.'
      description: Reads the content of the AppD of on-boarded individual application package resources.
Elian Kraja's avatar
Elian Kraja committed
      operationId: appDGET
      parameters:
      - name: appDId
        in: path
        description: Identifier of an application descriptor
        required: true
        style: simple
        schema:
          type: string
      - 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: Content of the AppD is returned.
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/AppD'
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: []
Elian Kraja's avatar
Elian Kraja committed
  /app_packages/{appPkgId}/package_content:
    get:
      tags:
      - app-pkgm
      summary:  'Fetch the onboarded application package content identified by appPkgId or appDId.'
      description: Fetch the onboarded application package content identified by appPkgId or appDId.
Elian Kraja's avatar
Elian Kraja committed
      operationId: appPkgGET
      parameters:
      - name: appPkgId
        in: path
        description: Identifier of an on-boarded individual application package
        required: true
        style: simple
        schema:
          type: string
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '200':
          description: The payload body shall contain a copy of the file representing the AppD or a ZIP file that contains the file or multiple files representing the AppD.
          headers: {}
          content:
              application/zip: {}
Elian Kraja's avatar
Elian Kraja committed
        '206':
          description: On success, if the MEO or MEAO supports range requests, a single consecutive byte range from the content of the application package file shall be returned.
          headers: {}
          content:
              application/zip: {}
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
    put:
      tags:
      - app-pkgm
      summary:  'Uploads the content of application package.'
      description: Uploads the content of application package.
Elian Kraja's avatar
Elian Kraja committed
      operationId: appPkgPUT
      parameters:
      - name: appPkgId
        in: path
        description: Identifier of an on-boarded individual application package
        required: true
        style: simple
        schema:
          type: string
Elian Kraja's avatar
Elian Kraja committed
      requestBody:
        description: ''
Elian Kraja's avatar
Elian Kraja committed
        content:
        required: false
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '202':
          description: The application package has been accepted for uploading, but the processing has not been completed.
          headers: {}
          content: {}
Elian Kraja's avatar
Elian Kraja committed
        '400':
          $ref: '#/components/responses/400'
        '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
  /onboarded_app_packages/{appDId}/package_content:
    get:
      tags:
      - app-pkgm
      summary:  'Fetch the onboarded application package content identified by appPkgId or appDId.'
      description: Fetch the onboarded application package content identified by appPkgId or appDId.
Elian Kraja's avatar
Elian Kraja committed
      operationId: appDIdGET
      parameters:
      - name: appDId
        in: path
        description: Identifier of an application descriptor
        required: true
        style: simple
        schema:
          type: string
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '200':
          description: The payload body shall contain a copy of the file representing the AppD or a ZIP file that contains the file or multiple files representing the AppD.
          headers: {}
          content: {}
Elian Kraja's avatar
Elian Kraja committed
        '206':
          description: On success, if the MEO or MEAO supports range requests, a single consecutive byte range from the content of the application package file shall be returned.
          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'
          $ref: '#/components/responses/404'
          $ref: '#/components/responses/406'
          $ref: '#/components/responses/429'
      deprecated: false
    put:
      tags:
      - app-pkgm
      summary:  'Fetch the onboarded application package content identified by appPkgId or appDId.'
      description: Uploads the content of application package.
      operationId: appDIdPUT
      parameters:
      - name: appDId
        in: path
        description: Identifier of an application descriptor
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
        required: false
      responses:
        '202':
          description: The application package has been accepted for uploading, but the processing has not been completed.
          headers: {}
          content: {}
        '400':
          $ref: '#/components/responses/400'
          $ref: '#/components/responses/401'
          $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: []
###############################################################################
# Notification endpoint AppPkgNotification                                    #
###############################################################################
  /user_defined_notification:
    post:
Elian Kraja's avatar
Elian Kraja committed
      tags:
      - app-pkgm-notifications
      summary: 'Registers a notification endpoint to notify application package operations'
      description: Registers a notification endpoint to notify application package operations
      operationId: app_pkg_notificationPOST
      parameters: []
Elian Kraja's avatar
Elian Kraja committed
      requestBody:
        description: Notification endpoint to be created
Elian Kraja's avatar
Elian Kraja committed
        content:
          application/json:
Elian Kraja's avatar
Elian Kraja committed
            schema:
              $ref: '#/components/schemas/AppPkgNotification'
        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'
        '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
components:
  schemas:
    AppD:
      title: AppD
      required:
      - appDId
      - appDVersion
      - appDescription
      - appName
      - appProvider
      - appSoftVersion
      - mecVersion
      - swImageDescriptor
      - virtualComputeDescriptor
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        appDId:
          type: string
          description: Identifier of this MEC application descriptor. This attribute shall be globally unique. See note 1.
Elian Kraja's avatar
Elian Kraja committed
        appDNSRule:
          type: array
            $ref: './definitions/MEC010p2_definitions.yaml#/definitions/DNSRuleDescriptor'
          description: Describes DNS rules the MEC application requires.
        logicalNode:
          type: array
          items: 
            $ref: '#/components/schemas/LogicalNodeRequirements'
          description: |
            The logical node requirements. See note 6 and note 7.
            NOTE 6: If the AppD includes virtualComputeDesc, then logicalNode and requestedAdditionalCapabilites shall not be present.
            NOTE 7: This attribute reflects the ETSI NFV interpretation of the cloud native workloads.
        requestAdditionalCapabilities:
          type: array
          items: 
            $ref: '#/components/schemas/RequestedAdditionalCapabilityData'
          description: |
            Specifies requirements for additional capabilities. These can be for a range of purposes. One example is acceleration related capabilities. See note 6 and note 7.
            NOTE 6: If the AppD includes virtualComputeDesc, then logicalNode and requestedAdditionalCapabilites shall not be present.
            NOTE 7: This attribute reflects the ETSI NFV interpretation of the cloud native workloads.
        mcioConstraintParams:
          $ref: '#/components/schemas/McioConstraintParams'
Elian Kraja's avatar
Elian Kraja committed
        appDVersion:
          type: string
          description: Identifies the version of the application descriptor.
Elian Kraja's avatar
Elian Kraja committed
        appDescription:
          type: string