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