MEC010-2_AppLcm.json 112 KB
Newer Older
      "post": {
        "tags": [
          "app-lcm"
        ],
        "summary": "provide configuration information in AppD to the MEPM-V, intended to configure the MEP to run the application instance.",
        "description": "provide configuration information in AppD to the MEPM-V, intended to configure the MEP to run the application instance.",
        "operationId": "appInstancesConfigPlatformPOST",
        "parameters": [
          {
            "name": "appInstanceId",
            "in": "path",
            "description": "The identifier of the application instance.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The payload body in the request contains the information necessary to provide configuration information in AppD",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "./definitions/MEC010p2_definitions.yaml#/definitions/ConfigPlatformForAppRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "The request was accepted for processing, but it is possible that the processing is not yet completed",
            "headers": {},
            "content": {}
          },
          "400": {
            "description": "Bad Request : used to indicate that incorrect parameters were passed to the request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized :  used when the client did not submit credentials.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden :  operation is not allowed given the current status of the resource.",
            "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.",
            "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.",
            "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",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests : used when a rate limiter has triggered.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "deprecated": false
      },
    }
  },
  "components": {
    "schemas": {
      "AppLcmOpOcc": {
        "title": "AppLcmOpOcc",
        "required": [
          "id",
          "operationState",
          "stateEnteredTime",
          "startTime",
          "lcmOperation",
          "_links"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "'Identifier of the subscription to application LCM operation occurrence notification'"
          },
          "operationState": {
            "$ref": "#/components/schemas/OperationState"
          },
          "stateEnteredTime": {
            "$ref": "#/components/schemas/TimeStamp"
          },
          "startTime": {
            "$ref": "#/components/schemas/TimeStamp"
          },
          "lcmOperation": {
            "$ref": "#/components/schemas/LcmOperation"
          },
          "operationParams": {
            "$ref": "#/components/schemas/OperationParams"
          },
          "isCancelPending": {
            "type": "boolean",
            "description": "If the application LCM operation occurrence operationState is in \"PROCESSING\" state and the operation is being cancelled, this attribute shall be set to true. Otherwise, it shall be set to false."
          },
          "cancelMode": {
            "$ref": "#/components/schemas/CancelMode"
          },
          "_links": {
            "$ref": "#/components/schemas/AppInstanceLcmOpOcc.links"
          }
        },
        "description": "'This data type represents an application lifecycle management operation occurrence'"
      },
      "AppInstanceSubscriptionLinkList": {
        "required": [
          "_links"
        ],
        "properties": {
          "_links": {
            "$ref": "#/components/schemas/AppInstanceSubscriptionLinkList._links"
          }
        }
      },
      "AppInstanceSubscriptionLinkList._links": {
        "required": [
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "type": "string",
            "description": "URI referring to a resource"
          },
          "subscriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AppInstanceSubscriptionLinkList._links.subscriptions"
            }
          }
        }
      },
      "AppInstanceSubscriptionLinkList._links.subscriptions": {
        "type": "object",
        "required": [
          "href",
          "subscriptionType"
        ],
        "properties": {
          "href": {
Elian Kraja's avatar
Elian Kraja committed
            "type": "string",
            "format": "uri"
          },
          "subscriptionType": {
            "$ref": "#/components/schemas/AppInstanceSubscriptionType"
          }
        }
      },
      "AppInstanceSubscriptionType": {
        "type": "string",
        "description": "String representing the type of a subscription.",
        "enum": [
          "AppInstanceStateChangeSubscription",
          "AppLcmOpOccStateChangeSubscription",
          "AppIdentifierCreationSubscription",
          "AppIdentifierDeletionSubscription"
        ]
      },
      "OperationParams": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/InstantiateAppRequest"
          },
          {
            "$ref": "#/components/schemas/OperateAppRequest"
          },
          {
            "$ref": "#/components/schemas/TerminateAppRequest"
          }
        ]
      },
      "CancelMode": {
        "description": "Indicates the intervention action to be taken. GRACEFUL Indicates ongoing resource management operations in the underlying system are allowed to complete execution or time out. FORCED Indicates ongoing resource management operations in the underlying system are to be cancelled without allowing them to complete execution or time out.",
        "type": "string",
        "enum": [
          "GRACEFUL",
          "FORCED"
        ]
      },
      "AppInstIdCreationSubscriptionRequest": {
        "type": "object",
        "required": [
          "subscriptionType",
          "callbackUri"
        ],
        "properties": {
          "subscriptionType": {
            "type": "string"
          },
          "callbackUri": {
Elian Kraja's avatar
Elian Kraja committed
            "type": "string",
            "format": "uri"
          },
          "appInstanceSubscriptionFilter": {
            "$ref": "#/components/schemas/AppInstanceSubscriptionFilter"
          }
        }
      },
      "AppInstIdDeletionSubscriptionRequest": {
        "type": "object",
        "required": [
          "subscriptionType",
          "callbackUri"
        ],
        "properties": {
          "subscriptionType": {
            "type": "string",
            "description": "Shall be set to \"AppIdentifierDeletionSubscription\"."
          },
          "callbackUri": {
Elian Kraja's avatar
Elian Kraja committed
            "type": "string",
            "format": "uri"
          },
          "appInstanceSubscriptionFilter": {
            "$ref": "#/components/schemas/AppInstanceSubscriptionFilter"
          }
        }
      },
      "AppInstIdCreationSubscriptionInfo": {
        "type": "object",
        "required": [
          "id",
          "subscriptionType",
          "callbackUri",
          "_links"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "subscriptionType": {
            "type": "string"
          },
          "callbackUri": {
Elian Kraja's avatar
Elian Kraja committed
            "type": "string",
            "format": "uri"
          },
          "appInstanceSubscriptionFilter": {
            "$ref": "#/components/schemas/AppInstanceSubscriptionFilter"
          },
          "_links": {
            "type": "object",
            "required": [
              "self"
            ],
            "properties": {
              "self": {
                "$ref": "#/components/schemas/LinkType"
              }
            }
          }
        }
      },
      "AppInstIdDeletionSubscriptionInfo": {
        "type": "object",
        "required": [
          "id",
          "subscriptionType",
          "callbackUri",
          "_links"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "subscriptionType": {
            "type": "string",
            "description": "Shall be set to \"AppIdentifierDeletionSubscription\"."
          },
          "callbackUri": {
Elian Kraja's avatar
Elian Kraja committed
            "type": "string",
            "format": "uri"
          },
          "appInstanceSubscriptionFilter": {
            "$ref": "#/components/schemas/AppInstanceSubscriptionFilter"
          },
          "_links": {
            "type": "object",
            "required": [
              "self"
            ],
            "properties": {
              "self": {
                "$ref": "#/components/schemas/LinkType"
              }
            }
          }
        }
      },
      "AppInstanceLcmOpOcc.links": {
        "title": "AppInstanceLcmOpOcc.links",
        "required": [
          "self",
          "appInstance"
        ],
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/LinkType"
          },
          "appInstance": {
            "$ref": "#/components/schemas/LinkType"
        "description": "Links to resources related to this resource."
      },
      "AppLcmOpOccSubscriptionInfo": {
        "title": "AppLcmOpOccSubscriptionInfo",
        "required": [
          "id",
          "subscriptionType",
          "callbackUri",
          "_links"
        ],
        "type": "object",
            "type": "string",
            "description": "Identifier of this subscription resource."
            "const": "AppLcmOpOccStateChange",
            "type": "string",
            "description": "Shall be set to \"AppLcmOpOccStateChangeSubscription\".",
            "examples": [
              "AppLcmOpOccStateChange"
            ]
            "type": "string",
            "description": "The URI of the endpoint for the notification to be sent to."
          "appLcmOpOccSubscriptionFilter": {
            "$ref": "#/components/schemas/AppLcmOpOccSubscriptionFilter",
            "description": "Criteria used to select application LCM operation occurrences on which to send notifications related to this subscription."
          },
          "_links": {
            "$ref": "#/components/schemas/AppLcmOpOccSubscriptionInfo.links"
        },
        "description": "'This data type represents a subscription to notifications of application life cycle management operation occurrence'"
      },
      "AppLcmOpOccSubscriptionInfo.links": {
        "title": "AppLcmOpOccSubscriptionInfo.links",
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/LinkType"
          }
        },
        "description": "Links to resources related to this resource."
      },
      "AppInstSubscriptionInfo": {
        "title": "AppInstSubscriptionInfo",
        "required": [
          "id",
          "subscriptionType",
          "callbackUri",
          "_links"
        ],
        "type": "object",
            "type": "string",
            "description": "'Identifier of the subscription to application instance operational state change notification.'"
            "const": "AppInstanceStateChange",
            "type": "string",
            "description": "Shall be set to \"AppInstanceStateChangeSubscription\".",
            "examples": [
              "AppInstanceStateChangeSubscription"
          "appInstanceState": {
            "type": "string",
            "enum": [
              "NOT_INSTANTIATED",
              "STARTED",
              "STOPPED"
            ]
          },
          "appInstanceSubscriptionFilter": {
            "$ref": "#/components/schemas/AppInstanceSubscriptionFilter"
            "type": "string",
            "description": "The URI of the endpoint for the subscription related 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.'"
      },
      "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 \"AppLcmOpOccStateChangeSubscription\"."
      },
      "AppLcmOpOccSubscriptionFilter": {
        "title": "AppLcmOpOccSubscriptionFilter",
        "type": "object",
        "properties": {
          "appInstanceSubscriptionFilter": {
            "$ref": "#/components/schemas/AppInstanceSubscriptionFilter"
          },
          "notificationTypes": {
            "description": "Match particular notification types. Permitted values AppLcmOpOccNotification.",
            "$ref": "#/components/schemas/NotificationTypes"
          },
          "operationStates": {
            "$ref": "#/components/schemas/OperationStates"
          "operationTypes": {
            "$ref": "#/components/schemas/OperationTypes"
          }
        }
      },
      "NotificationTypes": {
        "title": "NotificationTypes",
        "const": "AppLcmOperationOccurrenceNotification",
        "description": "Match particular notification types.",
        "examples": [
          "AppLcmOperationOccurrenceNotification"
        ]
      },
      "OperationStates": {
        "title": "OperationStates",
        "enum": [
          "STARTING",
          "PROCESSING",
          "COMPLETED",
          "FAILED",
          "FAILED_TEMP"
        ],
        "type": "string",
        "description": "'Type of the LCM operation state represented by this application instance LCM operation occurrence.'",
        "examples": [
          "STARTING"
        "title": "OperationTypes",
        "enum": [
          "INSTANTIATE",
          "OPERATE",
          "TERMINATE"
        ],
        "type": "string",
        "description": "'Type of the LCM operation represented by this application instance LCM operation occurrence.'",
        "examples": [
          "INSTANTIATE"
      "MepInformation": {
        "type": "object",
        "required": [
          "mepId"
        ],
        "properties": {
          "mepId": {
            "type": "string",
            "description": "Deployment-specific identifier of MEC platform."
          },
          "mepName": {
            "type": "string",
            "description": "Human-readable name of MEC platform"
          }
        }
      },
      "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."
          },
          "appPlacementInfo": {
            "description": "Describes the information of selected MEC platform for the application instance to associate",
            "$ref": "#/components/schemas/MepInformation"
      },
      "AppInstSubscriptionRequest": {
        "title": "AppInstSubscriptionRequest",
        "required": [
          "subscriptionType",
          "callbackUri"
        ],
        "type": "object",
        "properties": {
          "subscriptionType": {
            "const": "AppInstanceStateChange",
            "type": "string",
            "description": "Shall be set to \"AppInstanceStateChangeSubscription\".",
            "examples": [
              "AppInstanceStateChange"
            ]
            "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. '"
        "title": "AppsFromProviders",
        "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.'"
        "title": "AppProducts",
        "type": "object",
            "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.'"
        "title": "AppProducts.Versions",
        "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.'"
        "title": "AppInstSelectorType",
        "enum": [
          "VOID",
          "APP_IDENTITY",
          "APP_NAME",
          "APP_D_ID",
          "APP_FROM_PROVIDER"
        ],
        "type": "string",
        "description": "0 = void",
        "examples": [
          "VOID"
        "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"
        "title": "AppInstNotification",
        "required": [
          "_links",
          "appDId",
          "appInstanceId",
          "appPkgId",
          "id",
          "notificationType",
          "subscriptionId",
          "timeStamp"
        ],
        "type": "object",
            "$ref": "#/components/schemas/Links"
            "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."
            "description": "Identifier of the onboarded application package."
            "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."
            "type": "string",
            "description": "Discriminator for the different notification types. Shall be set to \"AppInstanceStateChangeSubscription\" for this notification type."
          },
          "subscriptionId": {
            "type": "string",
            "description": "Identifier of the subscription related to this notification."
          },
          "timeStamp": {
            "$ref": "#/components/schemas/TimeStamp"
          },
          "appInstLocation": {
            "$ref": "#/components/schemas/LocationInformation"
          },
          "appInstanceState": {
            "type": "string",
            "enum": [
              "NOT_INSTANTIATED",
              "STARTED",
              "STOPPED"
            ]
          }
        }
      },
      "LocationInformation": {
        "type": "object",
        "required": [
          "countryCode"
        ],
        "properties": {
          "countryCode": {
            "type": "string"
          },
          "civicAddress": {
            "$ref": "#/components/schemas/LocationInformation.civicAddress"
          },
          "geographicalPosition": {
            "type": "string"
          }
        }
      },
      "LocationInformation.civicAddress": {
        "type": "object",
        "required": [
          "civicAddressElement"
        ],
        "properties": {
          "civicAddressElement": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CivicAddressElement"
            }
        "title": "AppInstanceInfo",
        "required": [
          "id",
          "appDId",
          "appProvider",
          "appName",
          "appSoftVersion",
          "appDVersion",
          "appPkgId",
          "instantiationState",
          "_links"
        ],
        "type": "object",
            "type": "string",
            "description": "Identifier of application instance."
            "type": "string",
            "description": "Name of the application instance."
          },
          "appInstanceDescription": {
            "type": "string",
            "description": "Human-readable description of the application instance to be created."
            "type": "string",
            "description": "Identifier of this MEC application descriptor. This attribute shall be globally unique."
            "type": "string",
            "description": "Provider of the application and of the AppD."
            "type": "string",
            "description": "Name to identify the MEC application."
            "type": "string",
            "description": "Identifies the version of software of the MEC application."
            "type": "string",
            "description": "Identifies the version of the application descriptor."
            "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.'"
        "title": "OperationState",
        "enum": [
          "STARTING",
          "PROCESSING",
          "COMPLETED",
          "FAILED",
          "FAILED_TEMP"
        ],
        "type": "string",
        "description": "Operation state",
        "examples": [
          "STARTING"
        "title": "InstantiationState",
        "enum": [
          "NOT_INSTANTIATED",
          "INSTANTIATED"
        ],
        "type": "string",
        "description": "Instantiation state of the application instance",
        "examples": [
          "NOT_INSTANTIATED"
        "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.'"
        "title": "OperationalState",
        ],
        "type": "string",
        "description": "Operational state is applicable in the instantiation state INSTANTIATED",
        "examples": [
          "STARTED"
        "title": "AppInstanceInfo.links",
        "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."
        "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"
        "title": "AppLcmOpOccNotification",
        "required": [
          "id",
          "notificationType",
          "operationType",
          "operationState",
          "subscriptionId",
          "timeStamp",
          "appLcmOpOccId",
          "appInstanceId",
          "_links"
        ],
        "type": "object",
            "type": "string",
            "description": "''"
            "type": "string",
            "description": "Discriminator for the different notification types. Shall be set to \"AppLcmOpOccStateChangeSubscription\" for this notification type."
          },
          "operationType": {
            "type": "string",
            "description": "Type of the LCM operation represented by this application instance LCM operation occurrence.",
            "enum": [
              "INSTANTIATE",
              "OPERATE",