openapi: 3.1.0 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' contact: name: ETSI Forge url: https://forge.etsi.org/rep/mec/gs010-2-app-pkg-lcm-api email: cti_support@etsi.org version: '2.2.1' jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema externalDocs: description: 'ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management, v2.2.1' url: 'https://www.etsi.org/deliver/etsi_gs/MEC/001_099/01002/02.02.01_60/gs_MEC01002v020201p.pdf' tags: - name: app-pkgm description: App Package management - name: app-pkgm-notifications description: App Package management notifications servers: - url: https://localhost/app_pkgm/v1 variables: {} 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 operationId: 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': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' 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: 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': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' 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': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' 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': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] /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: 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': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' 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: 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': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' 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: 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': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '409': description: 'Conflict : The operation cannot be executed currently, due to a conflict with the state of the resource' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' 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': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' 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': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' 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': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '409': description: 'Conflict : The operation cannot be executed currently, due to a conflict with the state of the resource' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] /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 operationId: subscriptionsPOST parameters: [] requestBody: description: The input parameters of subscribe operation to notifications content: application/json: schema: $ref: '#/components/schemas/AppPkgSubscription' required: true responses: '201': description: Successful response for created subscription headers: {} content: application/json: schema: $ref: '#/components/schemas/AppPkgSubscriptionInfo' '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' 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' responses: '204': description: "No content" 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 operationId: subscriptionsGET parameters: [] responses: '200': description: List of zero or more subscriptions headers: {} content: application/json: schema: $ref: '#/components/schemas/AppPkgSubscriptionLinkList' '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] /subscriptions/{subscriptionId}: 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. 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 responses: '200': description: a response body containing a representation of the resource shall be returned. headers: {} content: application/json: schema: $ref: '#/components/schemas/AppPkgSubscriptionInfo' '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false 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. operationId: individualSubscriptionDELETE parameters: - name: subscriptionId in: path description: Identifier of an individual subscription to notifications about application package changes required: true style: simple schema: type: string responses: '204': description: No Content headers: {} content: {} '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] /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. 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 responses: '200': description: Content of the AppD is returned. headers: {} content: text/plain: schema: $ref: '#/components/schemas/AppD' application/zip: {} '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] /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. 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 responses: '200': description: Content of the AppD is returned. headers: {} content: text/plain: schema: $ref: '#/components/schemas/AppD' application/zip: {} '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] /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. operationId: appPkgGET parameters: - name: appPkgId in: path description: Identifier of an on-boarded individual application package required: true style: simple schema: type: string 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: {} '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: {} '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '416': description: Range Not Satisfiable . headers: {} content: {} '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false put: tags: - app-pkgm summary: 'Uploads the content of application package.' description: Uploads the content of application package. operationId: appPkgPUT parameters: - name: appPkgId in: path description: Identifier of an on-boarded individual application package required: true style: simple schema: type: string requestBody: description: '' content: application/zip: {} required: false responses: '202': description: The application package has been accepted for uploading, but the processing has not been completed. headers: {} content: {} '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '409': description: 'Conflict : The operation cannot be executed currently, due to a conflict with the state of the resource' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] /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. operationId: appDIdGET parameters: - name: appDId in: path description: Identifier of an application descriptor required: true style: simple schema: type: string 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: {} '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: {} '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '416': description: Range Not Satisfiable . headers: {} content: {} '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' 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: application/zip: {} required: false responses: '202': description: The application package has been accepted for uploading, but the processing has not been completed. headers: {} content: {} '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '409': description: 'Conflict : The operation cannot be executed currently, due to a conflict with the state of the resource' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] ############################################################################### # Notification endpoint AppPkgNotification # ############################################################################### /user_defined_notification: post: 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: [] requestBody: description: Notification endpoint to be created content: application/json: schema: $ref: '#/components/schemas/AppPkgNotification' required: true responses: '204': description: No Content headers: {} content: {} '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] components: schemas: AppD: title: AppD required: - appDId - appDVersion - appDescription - appName - appProvider - appSoftVersion - mecVersion - swImageDescriptor - virtualComputeDescriptor type: object properties: appDId: type: string description: Identifier of this MEC application descriptor. This attribute shall be globally unique. See note 1. appDNSRule: type: array items: $ref: './MEC010p2_v221_definitions.yaml#/definitions/DNSRuleDescriptor' description: Describes DNS rules the MEC application requires. appDVersion: type: string description: Identifies the version of the application descriptor. appDescription: type: string description: Human readable description of the MEC application. appExtCpd: type: array items: $ref: '#/components/schemas/AppExternalCpd' description: Describes external interface(s) exposed by this MEC application. appFeatureOptional: type: array items: $ref: './MEC010p2_v221_definitions.yaml#/definitions/FeatureDependency' description: Describes features a MEC application may use if available. appFeatureRequired: type: array items: $ref: './MEC010p2_v221_definitions.yaml#/definitions/FeatureDependency' description: Describes features a MEC application requires to run. appInfoName: type: string description: Human readable name for the MEC application. appLatency: $ref: './MEC010p2_v221_definitions.yaml#/definitions/LatencyDescriptor' appName: type: string description: Name to identify the MEC application. appProvider: type: string description: Provider of the application and of the AppD. appServiceOptional: type: array items: $ref: './MEC010p2_v221_definitions.yaml#/definitions/ServiceDependency' description: Describes services a MEC application may use if available. appServiceProduced: type: array items: $ref: './MEC010p2_v221_definitions.yaml#/definitions/ServiceDescriptor' description: Describes services a MEC application is able to produce to the platform or other MEC applications. Only relevant for service-producing apps. appServiceRequired: type: array items: $ref: './MEC010p2_v221_definitions.yaml#/definitions/ServiceDependency' description: Describes services a MEC application requires to run. appSoftVersion: type: string description: Identifies the version of software of the MEC application. appTrafficRule: type: array items: $ref: './MEC010p2_v221_definitions.yaml#/definitions/TrafficRuleDescriptor' description: Describes traffic rules the MEC application requires. changeAppInstanceStateOpConfig: type: string description: NFV mecVersion: type: array items: type: string description: Identifies version(s) of MEC system compatible with the MEC application described in this version of the AppD. The value shall be formatted as comma-separated list of strings. Each entry shall have the format .. where , and are decimal numbers representing the version of the present document. Whitespace between list entries shall be trimmed before validation. swImageDescriptor: type: string description: Describes the descriptors of the software image to be used by the virtualisation container used to realize this MEC application. terminateAppInstanceOpConfig: type: string description: NFV transportDependencies: type: array items: $ref: './MEC010p2_v221_definitions.yaml#/definitions/TransportDependency' description: Transports, if any, that this application requires to be provided by the platform. These transports will be used by the application to deliver services provided by this application. Only relevant for service-producing apps. See note 2. virtualComputeDescriptor: description: Describes CPU and memory requirements, as well as optional additional requirements, such as disk and acceleration related capabilities, of the virtualisation container used to realize this MEC application. type: object virtualStorageDescriptor: type: array items: type: string description: Defines descriptors of virtual storage resources to be used by the MEC application. userContextTransferCapability: $ref: './MEC010p2_v221_definitions.yaml#/definitions/UserContextTransferCapability' appNetworkPolicy: $ref: './MEC010p2_v221_definitions.yaml#/definitions/AppNetworkPolicy' AppExternalCpd: title: AppExternalCpd required: - inherited_attributes type: object properties: inherited_attributes: type: object description: All attributes inherited from Cpd. virtualNetworkInterfaceRequirements: type: array items: type: string description: Specifies requirements on a virtual network interface realizing the CPs instantiated from this CPD. AppPkgInfo: title: AppPkgInfo required: - id - appDId - appName - appSoftwareVersion - appDVersion - checksum - softwareImages - onboardingState - operationalState - usageState - mecInfo - _links type: object properties: id: type: string description: Identifier of the onboarded application package. appDId: type: string description: Identifier of this MEC application descriptor. This attribute shall be globally unique. appProvider: type: string description: Provider of the application and of the AppD. appName: type: string description: Name to identify the MEC application. appSoftwareVersion: type: string description: Software version of the application. This is updated when there is any change to the software in the onboarded application package. appDVersion: type: string description: Identifies the version of the application descriptor. checksum: $ref: '#/components/schemas/Checksum' signingCertificate: type: string description: The singleton signing certificate if it is included as a file in the AppD archive. softwareImages: type: object description: Information of application software image in application package. Type is TBD additionalArtifacts: type: object description: Additional information of application package artifacts that are not application software images. Type is TBD onboardingState: $ref: '#/components/schemas/OnboardingState' operationalState: $ref: '#/components/schemas/AppPkg.OperationalState' usageState: $ref: '#/components/schemas/UsageState' mecInfo: type: array description: The MEC version that compatible with this application. This information is copied from the AppD. items: type: string onBoardingFailureDetails: description: Failure details of current onboarding procedure $ref: '#/components/schemas/ProblemDetails' userDefinedData: $ref: '#/components/schemas/KeyValuePairs' description: "'This data type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key-value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259'" _links: $ref: '#/components/schemas/AppPkgInfo.links' description: "'The data type AppPkgInfo represents the parameters for an application package resource'" AppPkgInfoModifications: title: AppPkgInfoModifications required: - operationState type: object properties: operationState: $ref: '#/components/schemas/OperationState' description: "'The data type represents the operational state for an application package resource'" AppPkg.OperationalState: title: AppPkg.OperationalState enum: - ENABLED - DISABLED type: string description: 'Operational state of the onboarded application package: •ENABLED: the application package can be used for instantiation of new application instances. •DISABLED: the application package cannot be used for further application instantiation requests.' examples: - ENABLED OnboardingState: title: OnboardingState enum: - CREATED - UPLOADING - PROCESSING - ONBOARDED type: string description: Onboarding state of application package examples: - CREATED UsageState: title: UsageState enum: - IN_USE - NOT_IN_USE type: string description: Usage state of the onboarded instance of the application package examples: - IN_USE AppPkgInfo.links: title: AppPkgInfo.links required: - self - appD - appPkgContent type: object properties: self: $ref: '#/components/schemas/LinkType' appD: $ref: '#/components/schemas/LinkType' appPkgContent: $ref: '#/components/schemas/LinkType' vnfPkgInfo: $ref: '#/components/schemas/LinkType' description: Links to resources related to this resource. AppPkgNotification: title: AppPkgNotification required: - id - notificationType - subscriptionId - timeStamp - appPkgId - appDId - operationalState - _links type: object properties: id: type: string description: "''" notificationType: $ref: '#/components/schemas/AppPkg.NotificationType' subscriptionId: type: string description: Identifier of the subscription related to this notification. timeStamp: $ref: '#/components/schemas/TimeStamp' appPkgId: type: string description: Identifier of the onboarded application package. appDId: type: string description: Identifier of this MEC application descriptor. This attribute shall be globally unique. operationalState: $ref: '#/components/schemas/OperationalState' _links: $ref: '#/components/schemas/AppPkgNotification.links' description: "'This data type represents an application package management notification for informing the subscribers about onboarding application package resources. The notification is triggered when a new application package is onboarded'" AppPkg.NotificationType: title: AppPkg.NotificationType enum: - AppPackageOnBoarded - AppPacakgeEnabled - AppPacakgeDisabled - AppPackageDeleted type: string description: Discriminator for the different notification types examples: - AppPackageOnBoarded AppPkgNotification.links: title: AppPkgNotification.links required: - subscription type: object properties: subscription: $ref: '#/components/schemas/LinkType' description: Links to resources related to this resource. AppPkgSubscriptionInfo: title: AppPkgSubscriptionInfo required: - id - subscriptionType - callbackUri - _links type: object properties: id: type: string description: Identifier of the subscription to application package notification. subscriptionType: description: Type of subscription. $ref: '#/components/schemas/AppPkgSubscriptionType' callbackUri: type: string description: The URI of the endpoint for the notification to be sent to. _links: $ref: '#/components/schemas/AppPkgSubscriptionInfo.links' description: "'The data type represents a subscription to notification of application package management for the onboarding, or operational state change of application package'" AppPkgSubscriptionType: title: AppPkgSubscriptionType enum: - AppPackageOnBoardingSubscription - AppPackageChangeSubscription - AppPackageDeletionSubscription type: string description: type of a subscription. examples: - AppPackageOnBoardingSubscription AppPkgSubscriptionInfo.links: title: AppPkgSubscriptionInfo.links required: - self type: object properties: self: $ref: '#/components/schemas/LinkType' description: Links to resources related to this resource. AppPkgSubscriptionLinkList: title: AppPkgSubscriptionLinkList required: - _links type: object properties: _links: $ref: '#/components/schemas/AppPkgSubscriptionLinkList.links' description: "'The data type represents a subscription link list of notification on application package management'" AppPkgSubscriptionLinkList.links: title: AppPkgSubscriptionLinkList.links required: - self type: object properties: self: $ref: '#/components/schemas/LinkType' subscriptions: type: array items: $ref: '#/components/schemas/Subscriptions.AppPkgSubscription' description: '' description: Links to resources related to this resource. Subscriptions.AppPkgSubscription: title: Subscriptions.AppPkgSubscription required: - href - subscriptionType type: object properties: href: type: string description: The URI referring to the subscription. subscriptionType: $ref: '#/components/schemas/AppPkgSubscriptionType' description: "'The data type represents the input parameters of \"subscription operation\" to notification of application package management for the onboarding, or operational state change of application package.'" AppPkgSubscription: title: AppPkgSubscription required: - callbackUri - subscriptionType type: object properties: callbackUri: type: string description: The URI of the endpoint for the notification to be sent to. subscriptionType: $ref: '#/components/schemas/AppPkgSubscriptionType' appPkgFilter: type: array items: $ref: '#/components/schemas/AppPkgFilter' description: The attribute-based filter is to filter application packages on which the query applies description: "'The data type represents the input parameters of \"subscription operation\" to notification of application package management for the onboarding, or operational state change of application package.'" AppPkgFilter: title: AppPkgFilter type: object properties: appPkgInfoId: type: string description: Match the application package identifier which is allocated by the MEO. The attributes "appPkgInfoId ", and "appDId" are alternatives to reference particular application package in a filter. appDId: type: string description: Match the application descriptor identifier which is allocated by the application provider. The attributes "appPkgInfoId ", and "appDId" are alternatives to reference particular application package in a filter. appProvider: type: string description: Match the provider's name of the onboarded application. appName: type: string description: Match the name of the onboarded application. appSoftwareVersion: type: string description: Match the software version of the application package. appDVersion: type: string description: Match the version of the application descriptor. operationalState: type: string description: Match particular operational state of the application package. May be present if the "subscriptionType" attribute contains the value "AppPackageChangeSubscription", and shall be absent otherwise. enum: - ENABLED - DISABLED usageState: type: string description: Match particular usage state of the application package. May be present if the "subscriptionType" attribute contains the value "AppPackageChangeSubscription", and shall be absent otherwise. enum: - N_USE - NOT_IN_USE Checksum: title: Checksum required: - algorithm - hash type: object properties: algorithm: type: string description: Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004. For example, SHA-256, SHA-512. hash: type: string description: "'String 1 The hexadecimal value of the checksum'" CreateAppPkg: title: CreateAppPkg required: - appPkgName - appPkgPath - appPkgVersion - checksum type: object properties: appPkgName: type: string description: Name of the application package to be onboarded. appPkgPath: type: uri appPkgVersion: type: string description: >- Version of the application package to be onboarded.The appPkgName with appPkgVersion can be used to uniquely identify the application package. appProvider: type: string description: The provider's name of the application package to be onboarded. checksum: $ref: '#/components/schemas/Checksum' userDefinedData: $ref: '#/components/schemas/KeyValuePairs' description: "'This data type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key-value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259'" KeyValuePairs: type: object additionalProperties: type: object LinkType: title: LinkType required: - href type: object properties: href: type: string description: URI referring to a resource ProblemDetails: title: ProblemDetails type: object properties: detail: type: string description: A human-readable explanation specific to this occurrence of the problem instance: type: string description: A URI reference that identifies the specific occurrence of the problem status: type: integer description: The HTTP status code for this occurrence of the problem contentEncoding: int32 title: type: string description: A short, human-readable summary of the problem type type: type: string description: A URI reference according to IETF RFC 3986 that identifies the problem type TimeStamp: title: TimeStamp required: - nanoSeconds - seconds type: object properties: nanoSeconds: type: integer description: The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC. contentEncoding: int32 seconds: type: integer description: The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC. contentEncoding: int32 OperationalState: title: OperationalState enum: - DISABLED - ENABLED type: string examples: - DISABLED OperationState: title: OperationState enum: - DISABLED - ENABLED type: string examples: - DISABLED security: - {}