Newer
Older
"description": "Identifier of an on-boarded individual application package",
"required": true,
"style": "simple",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "",
"content": {
"application/zip": {}
},
"required": false
},
"responses": {
"202": {
"description": "The application package has been accepted for uploading, but the processing has not been completed.",
"headers": {},
"content": {}
},
"400": {
"description": "Bad Request : used to indicate that incorrect parameters were passed to the request.",
"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
},
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
},
"/onboarded_app_packages/{appDId}/package_content": {
"get": {
"tags": [
"app-pkgm"
],
"summary": "Fetch the onboarded application package content identified by appPkgId or appDId.",
"description": "Fetch the onboarded application package content identified by appPkgId or appDId.",
"operationId": "appDIdGET",
"parameters": [
{
"name": "appDId",
"in": "path",
"description": "Identifier of an application descriptor",
"required": true,
"style": "simple",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "The payload body shall contain a copy of the file representing the AppD or a ZIP file that contains the file or multiple files representing the AppD.",
"headers": {},
"content": {}
},
"206": {
"description": "On success, if the MEO or MEAO supports range requests, a single consecutive byte range from the content of the application package file shall be returned.",
"headers": {},
"content": {}
},
"400": {
"description": "Bad Request : used to indicate that incorrect parameters were passed to the request.",
"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"
}
}
}
},
"416": {
"description": "Range Not Satisfiable .",
"headers": {},
"content": {}
},
"429": {
"description": "Too Many Requests : used when a rate limiter has triggered.",
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
},
"deprecated": false
},
"put": {
"tags": [
"app-pkgm"
],
"summary": "Fetch the onboarded application package content identified by appPkgId or appDId.",
"description": "Uploads the content of application package.",
"operationId": "appDIdPUT",
"parameters": [
{
"name": "appDId",
"in": "path",
"description": "Identifier of an application descriptor",
"required": true,
"style": "simple",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "",
"content": {
"application/zip": {}
},
"required": false
},
"responses": {
"202": {
"description": "The application package has been accepted for uploading, but the processing has not been completed.",
"headers": {},
"content": {}
},
"400": {
"description": "Bad Request : used to indicate that incorrect parameters were passed to the request.",
"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
},
},
"/user_defined_notification": {
"post": {
"tags": [
"app-pkgm-notifications"
],
"summary": "Registers a notification endpoint to notify application package operations",
"description": "Registers a notification endpoint to notify application package operations",
"operationId": "app_pkg_notificationPOST",
"requestBody": {
"description": "Notification endpoint to be created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppPkgNotification"
}
}
},
"required": true
},
"responses": {
"204": {
"description": "No Content",
"headers": {},
"content": {}
},
"401": {
"description": "Unauthorized : used when the client did not submit credentials.",
"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"
}
}
}
},
"429": {
"description": "Too Many Requests : used when a rate limiter has triggered.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
},
"deprecated": false
},
}
},
"components": {
"schemas": {
"AppD": {
"title": "AppD",
"required": [
"appDId",
"appDVersion",
"appDescription",
"appName",
"appProvider",
"appSoftVersion",
"mecVersion",
"swImageDescriptor",
"virtualComputeDescriptor"
],
"type": "object",
"properties": {
"appDId": {
"type": "string",
"description": "Identifier of this MEC application descriptor. This attribute shall be globally unique. See note 1."
},
"appDNSRule": {
"$ref": "./definitions/MEC010p2_definitions.yaml#/definitions/DNSRuleDescriptor"
"description": "Describes DNS rules the MEC application requires."
},
"appDVersion": {
"type": "string",
"description": "Identifies the version of the application descriptor."
},
"appDescription": {
"type": "string",
"description": "Human readable description of the MEC application."
},
"appExtCpd": {
"items": {
"$ref": "#/components/schemas/AppExternalCpd"
},
"description": "Describes external interface(s) exposed by this MEC application."
},
"appFeatureOptional": {
"$ref": "./definitions/MEC010p2_definitions.yaml#/definitions/FeatureDependency"
"description": "Describes features a MEC application may use if available."
},
"appFeatureRequired": {
"$ref": "./definitions/MEC010p2_definitions.yaml#/definitions/FeatureDependency"
"description": "Describes features a MEC application requires to run."
},
"appInfoName": {
"type": "string",
"description": "Human readable name for the MEC application."
},
"appLatency": {
"$ref": "./definitions/MEC010p2_definitions.yaml#/definitions/LatencyDescriptor"
},
"appName": {
"type": "string",
"description": "Name to identify the MEC application."
},
"appProvider": {
"type": "string",
"description": "Provider of the application and of the AppD."
},
"appServiceOptional": {
"$ref": "./definitions/MEC010p2_definitions.yaml#/definitions/ServiceDependency"
"description": "Describes services a MEC application may use if available."
},
"appServiceProduced": {
"$ref": "./definitions/MEC010p2_definitions.yaml#/definitions/ServiceDescriptor"
"description": "Describes services a MEC application is able to produce to the platform or other MEC applications. Only relevant for service-producing apps."
},
"appServiceRequired": {
"$ref": "./definitions/MEC010p2_definitions.yaml#/definitions/ServiceDependency"
"description": "Describes services a MEC application requires to run."
},
"appSoftVersion": {
"type": "string",
"description": "Identifies the version of software of the MEC application."
},
"appTrafficRule": {
"$ref": "./definitions/MEC010p2_definitions.yaml#/definitions/TrafficRuleDescriptor"
"description": "Describes traffic rules the MEC application requires."
},
"changeAppInstanceStateOpConfig": {
"type": "string",
"description": "NFV"
},
"mecVersion": {
"items": {
"type": "string"
"description": "Identifies version(s) of MEC system compatible with the MEC application described in this version of the AppD. The value shall be formatted as comma-separated list of strings. Each entry shall have the format <x>.<y>.<z> where <x>, <y> and <z> are decimal numbers representing the version of the present document. Whitespace between list entries shall be trimmed before validation."
},
"swImageDescriptor": {
"description": "Describes the descriptors of the software image to be used by the virtualisation container used to realize this MEC application."
},
"terminateAppInstanceOpConfig": {
"type": "string",
"description": "NFV"
},
"transportDependencies": {
"$ref": "./definitions/MEC010p2_definitions.yaml#/definitions/TransportDependency"
"description": "Transports, if any, that this application requires to be provided by the platform. These transports will be used by the application to deliver services provided by this application. Only relevant for service-producing apps. See note 2."
},
"virtualComputeDescriptor": {
"description": "Describes CPU and memory requirements, as well as optional additional requirements, such as disk and acceleration related capabilities, of the virtualisation container used to realize this MEC application.",
"type": "object"
},
"virtualStorageDescriptor": {
"type": "array",
"items": {
"type": "string"
},
"description": "Defines descriptors of virtual storage resources to be used by the MEC application."
},
"userContextTransferCapability": {
"$ref": "./definitions/MEC010p2_definitions.yaml#/definitions/UserContextTransferCapability"
"$ref": "./definitions/MEC010p2_definitions.yaml#/definitions/AppNetworkPolicy"
}
},
"AppExternalCpd": {
"title": "AppExternalCpd",
"required": [
],
"type": "object",
"properties": {
"inherited_attributes": {
"type": "object",
"description": "All attributes inherited from Cpd."
},
"virtualNetworkInterfaceRequirements": {
"type": "array",
"items": {
"type": "string"
},
"description": "Specifies requirements on a virtual network interface realizing the CPs instantiated from this CPD."
},
"AppPkgInfo": {
"required": [
"id",
"appDId",
"appName",
"appSoftwareVersion",
"appDVersion",
"checksum",
"softwareImages",
"onboardingState",
"operationalState",
"usageState",
"_links"
],
"properties": {
"id": {
"type": "string",
"description": "Identifier of the onboarded application package."
},
"appDId": {
"type": "string",
"description": "Identifier of this MEC application descriptor. This attribute shall be globally unique."
},
"appProvider": {
"type": "string",
"description": "Provider of the application and of the AppD."
},
"appName": {
"type": "string",
"description": "Name to identify the MEC application."
},
"appSoftwareVersion": {
"type": "string",
"description": "Software version of the application. This is updated when there is any change to the software in the onboarded application package."
},
"appDVersion": {
"type": "string",
"description": "Identifies the version of the application descriptor."
},
"checksum": {
"$ref": "#/components/schemas/Checksum"
},
"signingCertificate": {
"type": "string",
"description": "The singleton signing certificate if it is included as a file in the AppD archive."
},
"softwareImages": {
"type": "object",
"description": "Information of application software image in application package. Type is TBD"
},
"additionalArtifacts": {
"type": "object",
"description": "Additional information of application package artifacts that are not application software images. Type is TBD"
},
"onboardingState": {
"$ref": "#/components/schemas/OnboardingState"
},
"operationalState": {
"$ref": "#/components/schemas/AppPkg.OperationalState"
},
"usageState": {
"$ref": "#/components/schemas/UsageState"
},
"mecInfo": {
"type": "array",
"description": "The MEC version that compatible with this application. This information is copied from the AppD.",
"items": {
"type": "string"
}
},
"onBoardingFailureDetails": {
"description": "Failure details of current onboarding procedure",
"$ref": "#/components/schemas/ProblemDetails"
},
"userDefinedData": {
"$ref": "#/components/schemas/KeyValuePairs",
"description": "'This data type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key-value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259'"
},
"_links": {
"$ref": "#/components/schemas/AppPkgInfo.links"
}
},
"description": "'The data type AppPkgInfo represents the parameters for an application package resource'"
},
"AppPkgInfoModifications": {
"required": [
"operationState"
],
"properties": {
"operationState": {
"$ref": "#/components/schemas/OperationState"
},
"description": "'The data type represents the operational state for an application package resource'"
},
"AppPkg.OperationalState": {
"enum": [
"ENABLED",
"DISABLED"
],
"type": "string",
"description": "Operational state of the onboarded application package: •ENABLED: the application package can be used for instantiation of new application instances. •DISABLED: the application package cannot be used for further application instantiation requests.",
"examples": [
"ENABLED"
]
},
"OnboardingState": {
"enum": [
"CREATED",
"UPLOADING",
"PROCESSING",
"ONBOARDED"
],
"type": "string",
"description": "Onboarding state of application package",
"examples": [
"CREATED"
]
},
"UsageState": {
"enum": [
"IN_USE",
"NOT_IN_USE"
],
"type": "string",
"description": "Usage state of the onboarded instance of the application package",
"examples": [
"IN_USE"
]
},
"AppPkgInfo.links": {
"required": [
"self",
"appD",
"appPkgContent"
],
"properties": {
"self": {
"$ref": "#/components/schemas/LinkType"
},
"appD": {
"$ref": "#/components/schemas/LinkType"
},
"appPkgContent": {
"$ref": "#/components/schemas/LinkType"
},
"vnfPkgInfo": {
"$ref": "#/components/schemas/LinkType"
},
"description": "Links to resources related to this resource."
},
"AppPkgNotification": {
"required": [
"id",
"notificationType",
"subscriptionId",
"timeStamp",
"appPkgId",
"appDId",
"operationalState",
"_links"
],
"properties": {
"id": {
},
"notificationType": {
"$ref": "#/components/schemas/AppPkg.NotificationType"
},
"subscriptionId": {
"type": "string",
"description": "Identifier of the subscription related to this notification."
},
"timeStamp": {
"$ref": "#/components/schemas/TimeStamp"
},
"appPkgId": {
"type": "string",
"description": "Identifier of the onboarded application package."
},
"appDId": {
"type": "string",
"description": "Identifier of this MEC application descriptor. This attribute shall be globally unique."
},
"operationalState": {
"$ref": "#/components/schemas/OperationalState"
},
"_links": {
"$ref": "#/components/schemas/AppPkgNotification.links"
}
},
"description": "'This data type represents an application package management notification for informing the subscribers about onboarding application package resources. The notification is triggered when a new application package is onboarded'"
},
"AppPkg.NotificationType": {
"enum": [
"AppPackageOnBoarded",
"AppPacakgeEnabled",
"AppPacakgeDisabled",
"AppPackageDeleted"
],
"type": "string",
"description": "Discriminator for the different notification types",
"examples": [
"AppPackageOnBoarded"
]
},
"AppPkgNotification.links": {
"required": [
"subscription"
],
"properties": {
"subscription": {
"$ref": "#/components/schemas/LinkType"
}
},
"description": "Links to resources related to this resource."
},
"AppPkgSubscriptionInfo": {
"required": [
"id",
"subscriptionType",
"callbackUri",
"_links"
],
"properties": {
"id": {
"description": "Identifier of the subscription to application package notification."
},
"subscriptionType": {
"description": "Type of subscription.",
"$ref": "#/components/schemas/AppPkgSubscriptionType"
},
"callbackUri": {
"type": "string",
"description": "The URI of the endpoint for the notification to be sent to."
},
"_links": {
"$ref": "#/components/schemas/AppPkgSubscriptionInfo.links"
}
},
"description": "'The data type represents a subscription to notification of application package management for the onboarding, or operational state change of application package'"
"AppPkgSubscriptionType": {
"title": "AppPkgSubscriptionType",
"AppPackageOnBoardingSubscription",
"AppPackageChangeSubscription",
"AppPackageDeletionSubscription"
"description": "type of a subscription.",
"AppPackageOnBoardingSubscription"
]
},
"AppPkgSubscriptionInfo.links": {
"required": [
"self"
],
"properties": {
"self": {
"$ref": "#/components/schemas/LinkType"
}
},
"description": "Links to resources related to this resource."
},
"AppPkgSubscriptionLinkList": {
"required": [
"_links"
],
"properties": {
"_links": {
"$ref": "#/components/schemas/AppPkgSubscriptionLinkList.links"
}
},
"description": "'The data type represents a subscription link list of notification on application package management'"
},
"AppPkgSubscriptionLinkList.links": {
"title": "AppPkgSubscriptionLinkList.links",
"required": [
"self"
],
"properties": {
"self": {
"$ref": "#/components/schemas/LinkType"
},
"subscriptions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Subscriptions.AppPkgSubscription"
},
"description": "Links to resources related to this resource."
},
"Subscriptions.AppPkgSubscription": {
"title": "Subscriptions.AppPkgSubscription",
"required": [
"href",
"properties": {
"href": {
"type": "string",
"description": "The URI referring to the subscription."
"subscriptionType": {
"$ref": "#/components/schemas/AppPkgSubscriptionType"
},
"description": "'The data type represents the input parameters of \"subscription operation\" to notification of application package management for the onboarding, or operational state change of application package.'"
},
"AppPkgSubscription": {
"required": [
"callbackUri",
"properties": {
"callbackUri": {
"type": "string",
"description": "The URI of the endpoint for the notification to be sent to."
"subscriptionType": {
"$ref": "#/components/schemas/AppPkgSubscriptionType"
},
"appPkgFilter": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AppPkgFilter"
"description": "The attribute-based filter is to filter application packages on which the query applies"
},
"description": "'The data type represents the input parameters of \"subscription operation\" to notification of application package management for the onboarding, or operational state change of application package.'"
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
"AppPkgFilter": {
"title": "AppPkgFilter",
"type": "object",
"properties": {
"appPkgInfoId": {
"type": "string",
"description": "Match the application package identifier which is allocated by the MEO. The attributes \"appPkgInfoId \", and \"appDId\" are alternatives to reference particular application package in a filter."
},
"appDId": {
"type": "string",
"description": "Match the application descriptor identifier which is allocated by the application provider. The attributes \"appPkgInfoId \", and \"appDId\" are alternatives to reference particular application package in a filter."
},
"appProvider": {
"type": "string",
"description": "Match the provider's name of the onboarded application."
},
"appName": {
"type": "string",
"description": "Match the name of the onboarded application."
},
"appSoftwareVersion": {
"type": "string",
"description": "Match the software version of the application package."
},
"appDVersion": {
"type": "string",
"description": "Match the version of the application descriptor."
},
"operationalState": {
"type": "string",
"description": "Match particular operational state of the application package. May be present if the \"subscriptionType\" attribute contains the value \"AppPackageChangeSubscription\", and shall be absent otherwise.",
"enum": [
"ENABLED",
"DISABLED"
]
},
"usageState": {
"type": "string",
"description": "Match particular usage state of the application package. May be present if the \"subscriptionType\" attribute contains the value \"AppPackageChangeSubscription\", and shall be absent otherwise.",
"enum": [
"N_USE",
"NOT_IN_USE"
]
}
}
},
"Checksum": {
"title": "Checksum",
"required": [
"algorithm",
"hash"
],
"type": "object",
"properties": {
"algorithm": {
"type": "string",
"description": "Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004. For example, SHA-256, SHA-512."
},
"hash": {
"type": "string",
"description": "'String 1 The hexadecimal value of the checksum'"
},
"CreateAppPkg": {