MEC010-2_AppLcm.json 126 KB
Newer Older
        "tags": ["app-lcm"],
        "summary": "marks an application lifecycle management operation occurrence as \"finally failed\"",
        "description": "marks an application lifecycle management operation occurrence as \"finally failed\"",
        "operationId": "appLcmFailPOST",
        "parameters": [
          {
            "name": "appLcmOpOccId",
            "in": "path",
            "description": "Identifies an individual application LCM operation occurrence",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
        "responses": {
          "202": {
            "description": "Shall be returned when the state of the application lifecycle management operation occurrence has been changed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AppLcmOpOcc"
                }
              }
            }
            "$ref": "#/components/responses/400"
            "$ref": "#/components/responses/401"
            "$ref": "#/components/responses/403"
            "$ref": "#/components/responses/404"
            "$ref": "#/components/responses/406"
            "$ref": "#/components/responses/429"
          }
        },
        "deprecated": false
      },
    },
    "/app_lcm_op_occs/{appLcmOpOccId}/retry": {
      "post": {
        "tags": ["app-lcm"],
        "summary": "initiate retrying an application lifecycle operation that has experience a temporary failure",
        "description": "initiate retrying an application lifecycle operation that has experience a temporary failure",
        "operationId": "appLcmRetryPOST",
        "parameters": [
          {
            "name": "appLcmOpOccId",
            "in": "path",
            "description": "Identifies an individual application LCM operation occurrence",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "The request was accepted for processing, but it is possible that the processing is not yet completed",
            "headers": {},
            "content": {}
            "$ref": "#/components/responses/400"
            "$ref": "#/components/responses/401"
            "$ref": "#/components/responses/403"
            "$ref": "#/components/responses/404"
            "$ref": "#/components/responses/406"
            "$ref": "#/components/responses/429"
          }
        },
        "deprecated": false
      },
    },
    "/app_instances/{appInstanceId}/configure_platform_for_app": {
      "post": {
        "tags": ["app-lcm"],
        "summary": "provide configuration information in AppD to the MEPM-V, intended to configure the MEP to run the application instance.",
        "description": "provide configuration information in AppD to the MEPM-V, intended to configure the MEP to run the application instance.",
        "operationId": "appInstancesConfigPlatformPOST",
        "parameters": [
          {
            "name": "appInstanceId",
            "in": "path",
            "description": "The identifier of the application instance.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The message content in the request contains the information necessary to provide configuration information in AppD",
          "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": {}
            "$ref": "#/components/responses/400"
            "$ref": "#/components/responses/401"
            "$ref": "#/components/responses/403"
            "$ref": "#/components/responses/404"
            "$ref": "#/components/responses/406"
            "$ref": "#/components/responses/429"
          }
        },
        "deprecated": false
      },
    }
  },
  "components": {
    "schemas": {
      "AppLcmOpOcc": {
        "title": "AppLcmOpOcc",
        "required": [
          "id",
          "operationState",
          "stateEnteredTime",
          "startTime",
          "lcmOperation",
          "_links"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "'Identifier of the subscription to application LCM operation occurrence notification'"
          },
          "operationState": {
            "type": "object",
            "description": "Operation state",
            "$ref": "#/components/schemas/OperationState"
          },
          "stateEnteredTime": {
            "type": "object",
            "description": "Date and time when the current state was entered.",
            "$ref": "#/components/schemas/TimeStamp"
          },
          "startTime": {
            "type": "object",
            "description": "Date and time of the start of the operation.",
            "$ref": "#/components/schemas/TimeStamp"
          },
          "lcmOperation": {
            "type": "object",
            "description": "Date and time of the start of the operation.",
            "$ref": "#/components/schemas/LcmOperation"
          },
          "operationParams": {
            "type": "object",
            "description": "Input parameters of the LCM operation. This attribute shall be formatted according to the request data type of the related LCM operation. See note 2.",
            "$ref": "#/components/schemas/OperationParams"
          },
          "isCancelPending": {
            "type": "boolean",
            "description": "If the application LCM operation occurrence operationState is in \"PROCESSING\" state and the operation is being cancelled, this attribute shall be set to true. Otherwise, it shall be set to false."
          },
          "cancelMode": {
            "type": "object",
            "description": "The mode of a cancellation.",
            "$ref": "#/components/schemas/CancelMode"
          },
          "_links": {
            "type": "object",
            "description": "Links to resources related to this resource.",
            "$ref": "#/components/schemas/AppInstanceLcmOpOcc.links"
          }
        },
        "description": "This data type represents an application lifecycle management operation occurrence\nNOTE 1: Void.\nNOTE 2: This object contains structured data, and shall comply with the provisions of clause 4 of IETF RFC 8259 \n"
      },
      "AppInstanceSubscriptionLinkList": {
        "required": ["_links"],
        "properties": {
          "_links": {
            "type": "object",
            "description": "List of hyperlinks related to the resource.",
            "$ref": "#/components/schemas/AppInstanceSubscriptionLinkList._links"
          }
        }
      },
      "AppInstanceSubscriptionLinkList._links": {
        "required": ["self"],
        "type": "object",
        "properties": {
          "self": {
            "type": "string",
            "description": "URI referring to a resource"
          },
          "subscriptions": {
            "type": "array",
            "description": "A link list to the subscriptions.",
            "items": {
              "$ref": "#/components/schemas/AppInstanceSubscriptionLinkList._links.subscriptions"
            }
          }
        }
      },
      "AppInstanceSubscriptionLinkList._links.subscriptions": {
        "type": "object",
        "required": ["href", "subscriptionType"],
        "properties": {
          "href": {
Elian Kraja's avatar
Elian Kraja committed
            "type": "string",
            "format": "uri",
            "description": "The URI referring to the subscription."
          },
          "subscriptionType": {
            "type": "object",
            "description": "Type of the subscription.",
            "$ref": "#/components/schemas/AppInstanceSubscriptionType"
          }
        }
      },
      "AppInstanceSubscriptionType": {
        "type": "string",
        "description": "String representing the type of a subscription.",
        "enum": [
          "AppInstanceStateChangeSubscription",
          "AppLcmOpOccStateChangeSubscription",
          "AppIdentifierCreationSubscription",
          "AppIdentifierDeletionSubscription"
        ]
      },
      "OperationParams": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/InstantiateAppRequest"
          },
          {
            "$ref": "#/components/schemas/OperateAppRequest"
          },
          {
            "$ref": "#/components/schemas/TerminateAppRequest"
          }
        ]
      },
      "CancelMode": {
        "description": "Indicates the intervention action to be taken. GRACEFUL Indicates ongoing resource management operations in the underlying system are allowed to complete execution or time out. FORCED Indicates ongoing resource management operations in the underlying system are to be cancelled without allowing them to complete execution or time out.",
        "type": "string",
        "enum": ["GRACEFUL", "FORCED"]
      },
      "AppInstIdCreationSubscriptionRequest": {
        "type": "object",
        "required": ["subscriptionType", "callbackUri"],
        "properties": {
          "subscriptionType": {
            "type": "string",
            "description": "Shall be set to \"AppIdentifierCreationSubscription\"."
          },
          "callbackUri": {
Elian Kraja's avatar
Elian Kraja committed
            "type": "string",
            "description": "The URI of the endpoint for the subscription related notification to be sent to.",
Elian Kraja's avatar
Elian Kraja committed
            "format": "uri"
          },
          "appInstanceSubscriptionFilter": {
            "type": "object",
            "description": "Criteria used to filter application instances for which to send notifications related to this subscription. See note.",
            "$ref": "#/components/schemas/AppInstanceSubscriptionFilter"
          }
        },
        "description": "NOTE: If present, the value of attribute \"appInstSelectorType\" in appInstanceSubscriptionFilter can only be set as \"APP_D_ID\" or \"APP_FROM_PROVIDER\".\n"
      },
      "AppInstIdDeletionSubscriptionRequest": {
        "type": "object",
        "required": ["subscriptionType", "callbackUri"],
        "properties": {
          "subscriptionType": {
            "type": "string",
            "description": "Shall be set to \"AppIdentifierDeletionSubscription\"."
          },
          "callbackUri": {
Elian Kraja's avatar
Elian Kraja committed
            "type": "string",
            "format": "uri",
            "description": "The URI of the endpoint for the subscription related notification to be sent to."
          },
          "appInstanceSubscriptionFilter": {
            "type": "object",
            "description": "Criteria used to filter application instances for which to send notifications related to this subscription.",
            "$ref": "#/components/schemas/AppInstanceSubscriptionFilter"
          }
        }
      },
      "AppInstIdCreationSubscriptionInfo": {
        "type": "object",
        "required": ["id", "subscriptionType", "callbackUri", "_links"],
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier of the subscription to application instance operational state change notification."
          },
          "subscriptionType": {
            "type": "string",
            "description": "Shall be set to \"AppIdentifierCreationSubscription\"."
          },
          "callbackUri": {
Elian Kraja's avatar
Elian Kraja committed
            "type": "string",
            "format": "uri",
            "description": "The URI of the endpoint for the subscription related notification to be sent to."
          },
          "appInstanceSubscriptionFilter": {
            "type": "object",
            "description": "Criteria used to select application instances on which to send notifications related to this subscription.",
            "$ref": "#/components/schemas/AppInstanceSubscriptionFilter"
          },
          "_links": {
            "type": "object",
            "description": "Links to resources related to this resource.",
            "required": ["self"],
            "properties": {
              "self": {
                "type": "object",
                "description": "URI of this resource.",
                "$ref": "#/components/schemas/LinkType"
              }
            }
          }
        }
      },
      "AppInstIdDeletionSubscriptionInfo": {
        "type": "object",
        "required": ["id", "subscriptionType", "callbackUri", "_links"],
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier of the subscription to application instance operational state change notification."
          },
          "subscriptionType": {
            "type": "string",
            "description": "Shall be set to \"AppIdentifierDeletionSubscription\"."
          },
          "callbackUri": {
Elian Kraja's avatar
Elian Kraja committed
            "type": "string",
            "format": "uri",
            "description": "The URI of the endpoint for the subscription related notification to be sent to."
          },
          "appInstanceSubscriptionFilter": {
            "$ref": "#/components/schemas/AppInstanceSubscriptionFilter"
          },
          "_links": {
            "type": "object",
            "description": "Links to resources related to this resource.",
            "required": ["self"],
            "properties": {
              "self": {
                "type": "object",
                "description": "URI of this resource.",
                "$ref": "#/components/schemas/LinkType"
              }
            }
          }
        }
      },
      "AppInstanceLcmOpOcc.links": {
        "title": "AppInstanceLcmOpOcc.links",
        "required": ["self", "appInstance"],
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "description": "URI of this resource.",
            "$ref": "#/components/schemas/LinkType"
          },
          "appInstance": {
            "type": "object",
            "description": "Link to the application instance that the operation applies to.",
            "$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": {
            "type": "object",
            "$ref": "#/components/schemas/AppLcmOpOccSubscriptionFilter",
            "description": "Criteria used to select application LCM operation occurrences on which to send notifications related to this subscription."
          },
            "type": "object",
            "$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",
        "required": ["self"],
        "type": "object",
            "type": "object",
            "description": "URI of this resource.",
            "$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",
            "description": "Application instance state subscribed to.",
            "enum": ["NOT_INSTANTIATED", "STARTED", "STOPPED"]
          },
          "appInstanceSubscriptionFilter": {
            "type": "object",
            "description": "Criteria used to select application instances on which to send notifications related to this subscription.",
            "$ref": "#/components/schemas/AppInstanceSubscriptionFilter"
            "type": "string",
            "description": "The URI of the endpoint for the subscription related notification to be sent to."
            "type": "object",
            "$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",
            "type": "object",
            "description": "URI of this resource.",
            "$ref": "#/components/schemas/LinkType"
        "description": "Links to resources related to this resource."
      },
      "AppLcmOpOccSubscriptionRequest": {
        "title": "AppLcmOpOccSubscriptionRequest",
        "required": ["callbackUri", "subscriptionType"],
        "type": "object",
        "properties": {
          "appLcmOpOccSubscriptionFilter": {
            "type": "object",
            "description": "Subscription filter criteria to match specific application LCM operation occurrences.",
            "$ref": "#/components/schemas/AppLcmOpOccSubscriptionFilter"
          },
          "callbackUri": {
            "type": "string",
            "description": "The URI of the endpoint for the subscription related notification to be sent to."
          },
          "subscriptionType": {
            "type": "string",
            "description": "Shall be set to \"AppLcmOpOccStateChangeSubscription\"."
      },
      "AppLcmOpOccSubscriptionFilter": {
        "title": "AppLcmOpOccSubscriptionFilter",
        "type": "object",
        "properties": {
          "appInstanceSubscriptionFilter": {
            "type": "object",
            "description": "If present, this attribute contains filter criteria that selects one or more application instances on which to receive \"LCM operation occurrence\" notifications.",
            "$ref": "#/components/schemas/AppInstanceSubscriptionFilter"
          },
          "notificationTypes": {
            "type": "string",
            "description": "Match particular notification types. Permitted values AppLcmOpOccNotification.",
            "$ref": "#/components/schemas/NotificationTypes"
          },
          "operationStates": {
            "type": "array",
            "description": "Type of the LCM operation state represented by this application instance LCM operation occurrence.",
            "items": {
              "$ref": "#/components/schemas/OperationState"
            "type": "array",
            "description": "Type of the LCM operation represented by this application instance LCM operation occurrence.",
            "items": {
              "$ref": "#/components/schemas/OperationTypes"
            }
        "title": "NotificationTypes",
        "const": "AppLcmOperationOccurrenceNotification",
        "description": "Match particular notification types.",
        "examples": ["AppLcmOperationOccurrenceNotification"]
        "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": {
            "type": "object",
            "description": "Describes the information of selected MEC platform for the application instance to associate. See note.",
            "$ref": "#/components/schemas/MepInformation"
        },
        "description": "NOTE: This field applies to Mm3* reference point only.\n"
      },
      "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."
            "type": "object",
            "$ref": "#/components/schemas/AppInstanceState"
          },
          "appInstanceSubscriptionFilter": {
            "type": "object",
            "description": "Criteria used to filter application instances for which to send notifications related to this subscription.",
            "$ref": "#/components/schemas/AppInstanceSubscriptionFilter"
          }
        }
      },
      "AppInstanceSubscriptionFilter": {
        "title": "AppInstanceSubscriptionFilter",
        "required": ["appInstSelectorType"],
        "type": "object",
        "properties": {
          "appInstSelectorType": {
            "type": "object",
            "$ref": "#/components/schemas/AppInstSelectorType"
          },
          "appInstances": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "If appInstIdSelector = APP_IDENTITY match existing application instances with an \"application instance identifier\" listed in this attribute.\nIf appInstIdSelector = APP_NAME match existing application instances with an \"application instance name\" listed in this attribute.\nIf appInstIdSelector = APP_D_ID match existing application instances, or those created in the future whilst the subscription is active, based on the application descriptors identified by one of the \"application descriptor identities\" listed in this attribute.\nIf appInstIdSelector = APP_FROM_PROVIDER this attribute shall not be included.\n"
          "appsFromProviders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AppsFromProviders"
        },
        "description": "'This data type represents subscription filter criteria to match application instances. '"
        "title": "AppsFromProviders",
        "required": ["appProvider"],
        "type": "object",
        "properties": {
          "appProvider": {
            "type": "string",
            "description": "Provider of the application and of the AppD."
            "type": "array",
            "description": "If present, match application instances that belong to application products with certain product names, from one particular provider.",
            "items": {
              "$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",
        "required": ["appName"],
        "type": "object",
            "type": "string",
            "description": "Name to identify the MEC application."
            "type": "array",
            "items": {
              "$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",
        "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.'"
        "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",
          "appInstanceState",
          "appPkgId",
          "id",
          "notificationType",
          "subscriptionId",
          "timeStamp"
        ],
        "type": "object",
            "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."
            "type": "object",
            "description": "Date and time of the notification generation.",
            "$ref": "#/components/schemas/TimeStamp"
          },
          "appInstLocation": {
            "type": "string",
            "description": "Location of the MEC application instance. Shall be present if the application instance is instantiated and shall be absent otherwise.",
            "$ref": "#/components/schemas/LocationInformation"
          },
          "appInstanceState": {
            "type": "string",
            "description": "Application instance state",
            "enum": ["NOT_INSTANTIATED", "STARTED", "STOPPED"]
          }
        }
      },
      "LocationInformation": {
        "type": "object",
        "required": ["countryCode"],
        "properties": {
          "countryCode": {
            "type": "string",
            "description": "The two-letter ISO 3166 country code in capital letters where an instance is deployed."
          },
          "civicAddress": {
            "type": "object",
            "description": "Provides the civic address of the site hosting the MEC application instance.",
            "$ref": "#/components/schemas/LocationInformation.civicAddress"
          },
          "geographicalPosition": {
            "type": "string",
            "description": "Geographical position (i.e. latitude and longitude) where an instance is deployed. The content of this attribute shall follow the provisions for the \"Point\" geometry object as defined in IETF RFC 7946"
        },
        "description": "NOTE: At least one of civicAddress or geographicalPosition shall be present. If both are present they shall specify the same location, bound by the precision of the provided coordinates.\n"
      "McioInfo": {
        "type": "object",
        "required": [
          "mcioId",
          "mcioName",
          "mcioNamespace",
          "vduId",
          "cismId",
          "mcioType",
          "desiredInstances",
          "availableInstances"
        "properties": {
          "mcioId": {
            "type": "string",
            "description": "Identifier of this MCIO, created by the CISM."
          },
          "mcioName": {
            "type": "string",
            "description": "Human readable name of this MCIO."
          },
          "mcioNamespace": {
            "type": "string",
            "description": "Namespace of this MCIO"
          },
          "vduId": {
            "type": "string",
            "description": "Reference to the applicable Vdu information element in the VNFD."
          },
          "cismId": {
            "type": "string",
            "description": "Identifier of the CISM managing this MCIO."
          },
          "mcioType": {
            "type": "string",
            "description": "The type of MCIO. See note 1."
          },
          "desiredInstances": {
            "type": "integer",
            "description": "Number of desired MCIO instances."
          },
          "availableInstances": {
            "type": "integer",
            "description": "Number of available MCIO instances"
          },
          "additionalInfo": {
            "type": "string",
            "description": "Additional information which is specific to the MCIO, its type, and which is available from the CISM. See note 2"
          }
        },
        "description": "NOTE 1: The type of MCIO as specified in the declarative descriptor of the MCIO, and that can be read from the CISM.\nEXAMPLE: In case of MCIOs managed by Kubernetes®, the type of MCIO corresponds to the \"kind\" property of the declarative descriptor.\nNOTE 2: If the attribute additionalInfo is present, it may contain runtime information on the actual and desired state of the MCIO(s)\n"
      },
      "LocationInformation.civicAddress": {
        "type": "object",
        "required": ["civicAddressElement"],
        "properties": {
          "civicAddressElement": {
            "type": "array",
            "description": "Provides elements comprising a single civic address as described in section 3.4, with accompanying example in section 5 of IETF RFC 4776.",
            "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."
          "nsInstanceId": {
            "type": "string",
            "description": "Identifier of the NS instance created by NFVO in which the MEC application has been instantiated as a VNF instance. See note 2\n"
          },
          "vnfInstanceId": {
            "type": "string",
            "description": "Identifier of the VNF instance created by VNFM that the MEC application has been instantiated as. See note 2.\n"
          },
          "communicationInterface": {
            "type": "string",
            "description": "Interface for communication with other application instances. See clause 7.5.2 of ETSI GS MEC 021 [13] for the data type definition.",
            "items": {
              "$ref": "#/components/schemas/CommunicationInterface"
            }
          },
            "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": "Information about VIM connections to be used for managing the resources for the application instance. The keys of the map, each of which identifies information about a particular VIM connection, are managed by the MEO and referenced from other data structures via the \"vimConnectionId\" attribute. See notes 1 and 3."
          },
          "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.\nNOTE 1: This field does not apply if the data structure is used by MEAO.\nNOTE 2: This field applies if the data structure is used by MEAO.\nNOTE 3: This field does not apply if the data structure is used on Mm3*.\nNOTE 4: This field applies if the data structure is used on Mm3*.\nNOTE 5: This field applies if the data structure is used on Mm1 or Mm3*.\nNOTE 6: It is not specified in the present document how location information is obtained in the case of MEC in NFV.\nNOTE 7: This attribute reflects the ETSI NFV interpretation of the cloud native workloads.\n"
        "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"
          },
          "appInstLocation": {
            "type": "object",