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.1.1' externalDocs: description: 'ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management, v2.1.1' url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/01002/02.01.01_60/gs_MEC01002v020101p.pdf jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema tags: - name: app-lcm description: App lifecycle management - name: app-lcm-notifications description: App lifecycle management notifications servers: - url: https://localhost/app_lcm/v1 variables: {} paths: /app_instances: post: tags: - 'app-lcm' summary: 'Create an application instance resource' description: Create an application instance resource operationId: appInstancePOST parameters: [] requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/CreateAppInstanceRequest' required: true responses: '201': description: An application instance identifier and the related resource has been created successfully. headers: {} content: application/json: schema: $ref: '#/components/schemas/AppInstanceInfo' '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-lcm' summary: 'Queries information relating to on-boarded application packages in the MEO' description: queries information relating to on-boarded application packages in the MEO operationId: appInstanceGET parameters: - name: filter in: query description: Attribute-based filtering parameters according to ETSI GS MEC 009 style: form explode: true schema: type: string - name: all_fields in: query description: Include all complex attributes in the response. style: form explode: true schema: type: string - name: fields in: query description: Complex attributes of AppPkgInfo to be included into the response style: form explode: true schema: type: string - name: exclude_fields in: query description: Complex attributes of AppPkgInfo to be excluded from the response. style: form explode: true schema: type: string - name: exclude_default in: query description: Indicates to exclude the following complex attributes of AppPkgInfo from the response. style: form explode: true schema: type: string responses: '200': description: Array the representations of zero or more application instances headers: {} content: application/json: schema: type: array items: $ref: '#/components/schemas/AppInstanceInfo' 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_instances/{appInstanceId}: get: tags: - 'app-lcm' summary: 'Retrieves the information of an individual application instance via reading an individual application instance.' description: Retrieves the information of an individual application instance via reading an individual application instance. operationId: appInstanceIdGET parameters: - name: appInstanceId in: path description: Identifier of an individual application instance required: true style: simple schema: type: string responses: '200': description: Contains a representation of the read resource. headers: {} content: application/json: schema: $ref: '#/components/schemas/AppInstanceInfo' '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-lcm' summary: 'Deletes an individual application instance resource.' description: Deletes an individual application instance resource. operationId: appInstanceIdDELETE parameters: - name: appInstanceId in: path description: Identifier of an individual application instance 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' '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-lcm-notifications' summary: 'subscribe to the notification of application instance operational state change' description: subscribe to the notification of application instance operational state change operationId: appLcmSubscriptionsPOST parameters: - name: subscriptionType in: query description: >- "Query parameter to filter on a specific subscription type. Permitted values: • "AppInstanceStateChange" • "AppLcmOpOccStateChange" " required: true style: form explode: true schema: oneOf: - $ref: '#/components/schemas/AppInst.SubscriptionType' - $ref: '#/components/schemas/AppLcmOpOcc.SubscriptionType' requestBody: description: '' content: application/json: schema: oneOf: - $ref: '#/components/schemas/AppInstSubscriptionRequest' - $ref: '#/components/schemas/AppLcmOpOccSubscriptionRequest' contentMediaType: application/json required: true responses: '201': description: a representation of the created SubscriptionInfo. headers: {} content: application/json: schema: oneOf: - $ref: '#/components/schemas/AppInstSubscriptionInfo' - $ref: '#/components/schemas/AppLcmOpOccSubscriptionInfo' 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' callbacks: notification: '{$request.body#/callbackUri}': post: summary: 'Callback POST used to send a notification' description: 'Notification for informing the subscribers about operational state of application instance resources or state changes of an application LCM operation occurrence. It depends on subscription type.' operationId: notificationPOST requestBody: description: Subscription notification required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/AppInstNotification' - $ref: '#/components/schemas/AppLcmOpOccNotification' responses: '204': description: "No content" deprecated: false get: tags: - 'app-lcm-notifications' summary: 'Retrieves the information of multiple subscriptions to notifications related to an application instance.' description: Retrieves the information of multiple subscriptions to notifications related to an application instance. operationId: appLcmSubscriptionsGET parameters: - name: subscriptionType in: query description: 'Permitted values: AppInstanceStateChange or AppLcmOpOccStateChange' style: form explode: true schema: type: string responses: '200': description: List of all subscriptions is returned. headers: {} content: application/json: schema: $ref: '#/components/schemas/SubscriptionLinkList' '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-lcm-notifications' summary: 'Used to represent an individual subscription to notifications about application package changes.' description: Used to represent an individual subscription to notifications about application package changes. operationId: individualSubscriptionGET parameters: - name: subscriptionId in: path description: Represents an individual subscription to notification related to an application instance required: true style: simple schema: type: string - name: subscriptionType in: query description: 'Permitted values: AppInstanceStateChange or AppLcmOpOccStateChange' required: true style: form explode: true schema: type: string responses: '200': description: Representation of the resource. headers: {} content: application/json: schema: oneOf: - $ref: '#/components/schemas/AppInstSubscriptionInfo' - $ref: '#/components/schemas/AppLcmOpOccSubscriptionInfo' 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 delete: tags: - 'app-lcm-notifications' summary: 'Deletes the individual subscription to notifications about application package changes in MEO.' description: Deletes the individual subscription to notifications about application package changes in MEO. operationId: individualSubscriptionDELETE parameters: - name: subscriptionId in: path description: Represents an individual subscription to notification related to an application instance required: true style: simple schema: type: string 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: [] /user_defined_notification: post: tags: - 'app-lcm-notifications' summary: 'Delivers a notification from the application lifecycle management resource to the subscriber.' description: Delivers a notification from the application lifecycle management resource to the subscriber. operationId: appInstNotificationPOST parameters: [] requestBody: description: '' content: application/json: schema: oneOf: - $ref: '#/components/schemas/AppInstNotification' - $ref: '#/components/schemas/AppLcmOpOccNotification' contentMediaType: application/json 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' '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_instances/{appInstanceId}/instantiate: post: tags: - 'app-lcm' summary: 'Deletes the individual subscription to notifications about application package changes in MEO.' description: task of instantiating an application instance. operationId: appLcmInstanciatePOST parameters: - name: appInstanceId in: path description: Identifier of an individual application instance required: true style: simple schema: type: string requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/InstantiateAppRequest' required: true responses: '202': description: accepted for processing, but the processing has not yet 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: [] /app_instances/{appInstanceId}/terminate: post: tags: - 'app-lcm' summary: 'terminate an application instance.' description: terminate an application instance. operationId: appLcmTerminatePOST parameters: - name: appInstanceId in: path description: Identifier of an individual application instance required: true style: simple schema: type: string requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/TerminateAppRequest' required: true responses: '202': description: accepted for processing, but the processing has not yet been completed. headers: {} content: {} '400': 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: [] /app_instances/{appInstanceId}/operate: post: tags: - 'app-lcm' summary: 'change the operational state, i.e. start or stop, of the application instance' description: change the operational state, i.e. start or stop, of the application instance operationId: appLcmOperatePOST parameters: - name: appInstanceId in: path description: Identifier of an individual application instance required: true style: simple schema: type: string requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/OperateAppRequest' required: true responses: '202': description: accepted for processing, but the processing has not yet been completed. headers: {} content: {} '400': 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: [] /app_lcm_op_occs: get: tags: - 'app-lcm' summary: 'retrieves information of operation status about multiple application instance lifecycle management operation occurrences' description: retrieves information of operation status about multiple application instance lifecycle management operation occurrences operationId: appLcmOpOccsGET parameters: - name: filter in: query description: Attribute-based filtering parameters according to ETSI GS MEC 009 style: form explode: true schema: type: string - name: all_fields in: query description: Include all complex attributes in the response. style: form explode: true schema: type: string - name: fields in: query description: Complex attributes of 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: Status information for zero or more application instance lifecycle management operation occurrences was queried successfully headers: {} content: application/json: schema: type: array items: $ref: '#/components/schemas/AppInstanceLcmOpOcc' 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_lcm_op_occs/{appLcmOpOccId}: get: tags: - 'app-lcm' summary: 'reads the status information of an individual application LCM operation occurrence' description: reads the status information of an individual application LCM operation occurrence operationId: appLcmOpOccsbyIdGET parameters: - name: appLcmOpOccId in: path description: Identifies an individual application LCM operation occurrence required: true style: simple schema: type: string responses: '200': description: Information about an application LCM operation occurrence was read successfully headers: {} content: application/json: schema: $ref: '#/components/schemas/AppInstanceLcmOpOcc' '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: [] components: schemas: AppInstanceLcmOpOcc: title: AppInstanceLcmOpOcc required: - id - operationState - stateEnteredTime - startTime - lcmOperation - _links type: object properties: id: type: string description: "'Identifier of the subscription to application LCM operation occurrence notification'" operationState: $ref: '#/components/schemas/OperationState' stateEnteredTime: $ref: '#/components/schemas/TimeStamp' startTime: $ref: '#/components/schemas/TimeStamp' lcmOperation: $ref: '#/components/schemas/LcmOperation' operationParams: $ref: '#/components/schemas/OperationParams' _links: $ref: '#/components/schemas/AppInstanceLcmOpOcc.links' description: "'This data type represents an application lifecycle management operation occurrence'" OperationParams: title: OperationParams enum: - INSTANTIATE - OPERATE - TERMINATE type: string description: "'Input parameters of the LCM operation. This attribute shall be formatted according to the request data type of the related LCM operation.'" examples: - INSTANTIATE AppInstanceLcmOpOcc.links: title: AppInstanceLcmOpOcc.links required: - self - appInstance type: object properties: self: $ref: '#/components/schemas/LinkType' appInstance: $ref: '#/components/schemas/LinkType' description: Links to resources related to this resource. SubscriptionLinkList: title: SubscriptionLinkList required: - _links type: object properties: _links: $ref: '#/components/schemas/SubscriptionLinkList.links' description: "'The data type represents a subscription link list of notification on application lifecycle management. '" SubscriptionLinkList.links: title: SubscriptionLinkList.links required: - self type: object properties: self: $ref: '#/components/schemas/LinkType' subscriptions: type: array items: $ref: '#/components/schemas/SubscriptionLinkList.links.subscriptions' description: '' description: Links to resources related to this resource. SubscriptionLinkList.links.subscriptions: title: SubscriptionLinkList.links.subscriptions required: - href - subscriptionType type: object properties: href: type: string subscriptionType: $ref: '#/components/schemas/SubscriptionType' description: A link list to the subscriptions AppLcmOpOccSubscriptionInfo: title: AppLcmOpOccSubscriptionInfo required: - id - subscriptionType - callbackUri - _links type: object properties: id: type: string description: "''" subscriptionType: const: AppLcmOpOccStateChange type: string description: Shall be set to AppLcmOpOccStateChange. examples: - AppLcmOpOccStateChange callbackUri: type: string description: The URI of the endpoint for the notification to be sent to. _links: $ref: '#/components/schemas/AppLcmOpOccSubscriptionInfo.links' description: "'This data type represents a subscription to notifications of application life cycle management operation occurrence'" AppLcmOpOcc.SubscriptionType: title: AppLcmOpOcc.SubscriptionType const: AppLcmOpOccStateChange type: string description: Shall be set to AppLcmOpOccStateChange. examples: - AppLcmOpOccStateChange AppLcmOpOccSubscriptionInfo.links: title: AppLcmOpOccSubscriptionInfo.links required: - self type: object properties: self: $ref: '#/components/schemas/LinkType' description: Links to resources related to this resource. AppInstSubscriptionInfo: title: AppInstSubscriptionInfo required: - id - subscriptionType - notificationType - callbackUri - _links type: object properties: id: type: string description: "'Identifier of the subscription to application instance operational state change notification.'" subscriptionType: const: AppInstanceStateChange type: string description: Shall be set to AppInstanceStateChange. examples: - AppInstanceStateChange notificationType: $ref: '#/components/schemas/AppInst.NotificationType' callbackUri: type: string description: The URI of the endpoint for the notification to be sent to. _links: $ref: '#/components/schemas/AppInstSubscriptionInfo.links' description: "'The data type represents a subscription to notification of application instance operational state change.'" AppInst.SubscriptionType: title: AppInst.SubscriptionType const: AppInstanceStateChange type: string description: Shall be set to AppInstanceStateChange. examples: - AppInstanceStateChange AppInst.NotificationType: title: AppInst.NotificationType enum: - NOT_INSTANTIATED - STARTED - STOPPED type: string description: Subscribed notification examples: - NOT_INSTANTIATED AppInstSubscriptionInfo.links: title: AppInstSubscriptionInfo.links required: - self type: object properties: self: $ref: '#/components/schemas/LinkType' description: Links to resources related to this resource. AppLcmOpOccSubscriptionRequest: title: AppLcmOpOccSubscriptionRequest required: - callbackUri - subscriptionType type: object properties: appLcmOpOccSubscriptionFilter: $ref: '#/components/schemas/AppLcmOpOccSubscriptionFilter' callbackUri: type: string subscriptionType: type: string description: Shall be set to "AppLcmOpOccStateChange". AppLcmOpOccSubscriptionFilter: title: AppLcmOpOccSubscriptionFilter type: object properties: appInstanceSubscriptionFilter: $ref: '#/components/schemas/AppInstanceSubscriptionFilter' notificationTypes: $ref: '#/components/schemas/NotificationTypes' operationStates: $ref: '#/components/schemas/OperationStates' operationTypes: $ref: '#/components/schemas/OperationTypes' NotificationTypes: title: NotificationTypes const: AppLcmOperationOccurrenceNotification type: string description: Match particular notification types. examples: - AppLcmOperationOccurrenceNotification OperationStates: title: OperationStates enum: - STARTING - PROCESSING - COMPLETED - FAILED type: string description: "'Type of the LCM operation state represented by this application instance LCM operation occurrence.'" examples: - STARTING OperationTypes: title: OperationTypes enum: - INSTANTIATE - OPERATE - TERMINATE type: string description: "'Type of the LCM operation represented by this application instance LCM operation occurrence.'" examples: - INSTANTIATE CreateAppInstanceRequest: title: CreateAppInstanceRequest required: - appDId type: object properties: appDId: type: string description: The application descriptor identifier. It is managed by the application provider to identify the application descriptor in a globally unique way. appInstanceDescription: type: string description: Human-readable description of the application instance to be created. appInstanceName: type: string description: Human-readable name of the application instance to be created. AppInstSubscriptionRequest: title: AppInstSubscriptionRequest required: - subscriptionType - callbackUri type: object properties: subscriptionType: const: AppInstanceStateChange type: string description: Shall be set to AppInstanceStateChange. examples: - AppInstanceStateChange callbackUri: type: string description: The URI of the endpoint for the notification to be sent to. appInstanceState: $ref: '#/components/schemas/AppInstanceState' appInstanceSubscriptionFilter: $ref: '#/components/schemas/AppInstanceSubscriptionFilter' AppInstanceSubscriptionFilter: title: AppInstanceSubscriptionFilter required: - appInstSelectorType type: object properties: appInstSelectorType: $ref: '#/components/schemas/AppInstSelectorType' appInstances: type: array items: type: string description: '' appsFromProviders: type: array items: $ref: '#/components/schemas/AppsFromProviders' description: '' description: "'This data type represents subscription filter criteria to match application instances. '" AppsFromProviders: title: AppsFromProviders required: - appProvider type: object properties: appProvider: type: string description: Provider of the application and of the AppD. appProducts: $ref: '#/components/schemas/AppProducts' description: "'Present only if appInstIdSelector = APP_FROM_PROVIDER. Match existing application instances, or those created in the future whilst the subscription is active, that belong to applications from certain providers.'" AppProducts: title: AppProducts required: - appName type: object properties: appName: type: string description: Name to identify the MEC application. versions: $ref: '#/components/schemas/AppProducts.Versions' description: "'If present, match application instances that belong to application products with certain product names, from one particular provider.'" AppProducts.Versions: title: AppProducts.Versions required: - appSoftVersion type: object properties: appSoftVersion: type: string description: Identifies the version of software of the MEC application. appDVersion: type: array items: type: string description: '' description: "'If present, match application instances that belong to application products with certain versions and a certain product name, from one particular provider.'" AppInstSelectorType: title: AppInstSelectorType enum: - VOID - APP_IDENTITY - APP_NAME - APP_D_ID - APP_FROM_PROVIDER type: string description: 0 = void examples: - VOID AppInstanceState: title: AppInstanceState enum: - NOT_INSTANTIATED - STARTED - STOPPED type: string description: Only send notifications for application instances that are in one of the states listed in this attribute. If this attribute is absent, match all states. examples: - NOT_INSTANTIATED AppInstNotification: title: AppInstNotification required: - _links - appDId - appInstanceId - appPkgId - id - notificationType - subscriptionId - timeStamp type: object properties: _links: $ref: '#/components/schemas/Links' appDId: type: string description: The application descriptor identifier identifies the application package and the application descriptor in a globally unique way. appInstanceId: type: string description: Identifier of application instance. appPkgId: type: string description: Identifier of the onboarded application package. id: type: string description: Identifier of this notification. If a notification is sent multiple times due to multiple subscriptions, the "notificationId" attribute of all these notifications shall have the same value. notificationType: $ref: '#/components/schemas/AppInst.NotificationType' subscriptionId: type: string description: Identifier of the subscription related to this notification. timeStamp: $ref: '#/components/schemas/TimeStamp' AppInstanceInfo: title: AppInstanceInfo required: - id - appDId - appProvider - appName - appSoftVersion - appDVersion - appPkgId - instantiationState - _links type: object properties: id: type: string description: Identifier of application instance. appInstanceName: type: string description: Name of the application instance. appInstanceDescription: type: string description: Human-readable description of the application instance to be created. 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. appSoftVersion: type: string description: Identifies the version of software of the MEC application. appDVersion: type: string description: Identifies the version of the application descriptor. appPkgId: type: string description: Identifier of the onboarded application package. vimConnectionInfo: type: array items: $ref: '#/components/schemas/VimConnectionInfo' description: '' instantiationState: $ref: '#/components/schemas/InstantiationState' instantiatedAppState: $ref: '#/components/schemas/InstantiatedAppState' _links: $ref: '#/components/schemas/AppInstanceInfo.links' description: "'The data type of AppInstanceInfo represents the parameters of instantiated application instance resources.'" OperationState: title: OperationState enum: - STARTING - PROCESSING - COMPLETED - FAILED type: string description: Operation state examples: - STARTING InstantiationState: title: InstantiationState enum: - NOT_INSTANTIATED - INSTANTIATED type: string description: Instantiation state of the application instance examples: - NOT_INSTANTIATED InstantiatedAppState: title: InstantiatedAppState required: - operationalState type: object properties: operationalState: $ref: '#/components/schemas/OperationalState' description: "'Information specific to an instantiated application. This attribute shall be present if the instantiationState attribute value is INSTANTIATED.'" OperationalState: title: OperationalState enum: - STARTED - STOPPED type: string description: Operational state is applicable in the instantiation state INSTANTIATED examples: - STARTED AppInstanceInfo.links: title: AppInstanceInfo.links required: - self type: object properties: self: $ref: '#/components/schemas/LinkType' instantiate: $ref: '#/components/schemas/LinkType' terminate: $ref: '#/components/schemas/LinkType' operate: $ref: '#/components/schemas/LinkType' description: Links to resources related to this resource. LcmOperation: title: LcmOperation enum: - INSTATIATE - OPERATE - TERMINATE type: string description: Type of the actual LCM operation represented by this application instance LCM operation occurrence examples: - INSTATIATE AppLcmOpOccNotification: title: AppLcmOpOccNotification required: - id - notificationType - subscriptionId - timeStamp - appLcmOpOccId - appInstanceId - _links type: object properties: id: type: string description: "''" notificationType: $ref: '#/components/schemas/AppLcmOpOcc.NotificationType' subscriptionId: type: string description: Identifier of the subscription related to this notification. timeStamp: $ref: '#/components/schemas/TimeStamp' appLcmOpOccId: type: string description: Identifier of application lifecycle management operation occurrence. appInstanceId: type: string description: Identifier of application instance. _links: $ref: '#/components/schemas/AppLcmOpOccNotification.links' description: "'This data type represents a notification related to state changes of an application LCM operation occurrence which informs the subscribers'" AppLcmOpOcc.NotificationType: title: AppLcmOpOcc.NotificationType enum: - STARTING - PROCESSING - COMPLETED - FAILED type: string description: Discriminator for the different notification types examples: - STARTING AppLcmOpOccNotification.links: title: AppLcmOpOccNotification.links required: - appInstance - subscription - appLcmOpOcc type: object properties: appInstance: $ref: '#/components/schemas/LinkType' subscription: $ref: '#/components/schemas/LinkType' appLcmOpOcc: $ref: '#/components/schemas/LinkType' description: Links to resources related to this resource. InstantiateAppRequest: title: InstantiateAppRequest required: - selectedMECHostInfo type: object properties: locationConstraints: $ref: '#/components/schemas/LocationConstraints' selectedMECHostInfo: minItems: 1 type: array items: $ref: '#/components/schemas/MECHostInformation' description: Describes the information of selected host for the application instance. See note 2. vimConnectionInfo: minItems: 0 type: array items: $ref: '#/components/schemas/VimConnectionInfo' description: >- Information about VIM connections to be used for managing the resources for the application instance, or refer to external / externally-managed virtual links. This attribute shall only be supported and may be present if application-related resource management in direct mode is applicable. See note 2. virtualComputeDescriptor: type: string description: Ref NFV virtualStorageDescriptor: minItems: 0 type: array items: type: string description: Defines descriptors of virtual storage resources to be used by the application instance to be created. See note 1. LinkType: title: LinkType required: - href type: object properties: href: type: string description: URI referring to a resource LocationConstraints: title: LocationConstraints required: - countryCode type: object properties: countryCode: type: string description: The two-letter ISO 3166 country code in capital letters. civicAddressElement: type: array items: $ref: '#/components/schemas/CivicAddressElement' description: '' description: "'The LocationConstraints data type supports the specification of MEC application requirements related to MEC application deployment location constraints. The location constraints shall be presented as a country code, optionally followed by a civic address based on the format defined by IETF RFC 4776'" CivicAddressElement: title: CivicAddressElement required: - caType - caValue type: object properties: caType: type: integer description: "'Describe the content type of caValue. The value of caType shall comply with section 3.4 of IETF RFC 4776.'" contentEncoding: int32 caValue: type: string description: "'Content of civic address element corresponding to the caType. The format caValue shall comply with section 3.4 of IETF RFC 4776.'" description: "'The civic address.'" MECHostInformation: title: MECHostInformation required: - hostId type: object properties: hostId: type: object 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'" hostName: type: string description: Human-readable name of MEC host. OperateAppRequest: title: OperateAppRequest required: - changeStateTo type: object properties: changeStateTo: $ref: '#/components/schemas/ChangeStateTo' gracefulStopTimeout: type: integer description: The time interval (in seconds) to wait for the application instance to be taken out of service during graceful stop, before stopping the application. See note 1 and note 2. contentEncoding: int32 stopType: $ref: '#/components/schemas/StopType' StopType: title: StopType enum: - FORCEFUL - GRACEFUL type: string description: Signals forceful or graceful stop examples: - FORCEFUL ChangeStateTo: title: ChangeStateTo enum: - STARTED - STOPPED type: string description: The desired operational state examples: - STARTED 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 TerminateAppRequest: title: TerminateAppRequest required: - terminationType type: object properties: gracefulTerminationTimeout: type: integer description: "This attribute is only applicable in case of graceful termination. It defines the time to wait for the application instance to be taken out of service before shutting down the application and releasing the resources. \nThe unit is seconds.\nIf not given and the \"terminationType\" attribute is set to \"GRACEFUL\", it is expected to wait for the successful taking out of service of the application, no matter how long it takes, before shutting down the application and releasing the resources." contentEncoding: int32 terminationType: $ref: '#/components/schemas/TerminationType' 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 TerminationType: title: TerminationType enum: - FORCEFUL - GRACEFUL type: string description: "'Indicates whether forceful or graceful termination is requested.'" examples: - FORCEFUL VimConnectionInfo: title: VimConnectionInfo required: - id - vimType type: object properties: accessInfo: type: object 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'" extra: type: object 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'" id: type: string description: The identifier of the VIM Connection. This identifier is managed by the MEO. interfaceInfo: type: object 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'" vimId: type: string description: The identifier of the VIM instance. This identifier is managed by the MEO.Shall be present to address additional information about the VIM if such information has been configured into the MEPM by means outside the scope of the present document, and should be absent otherwise. vimType: type: string description: Discriminator for the different types of the VIM information.The value of this attribute determines the structure of the "interfaceInfo" and "accessInfo" attributes, based on the type of the VIM.The set of permitted values is expected to change over time as new types or versions of VIMs become available. Links: title: Links required: - subscription type: object properties: subscription: $ref: '#/components/schemas/LinkType' description: Links to resources related to this notification. SubscriptionType: title: SubscriptionType enum: - AppInstanceStateChange - AppLcmOpOccStateChange type: string examples: - AppInstanceStateChange security: - {}