MEC010-2_AppPkgMgmt.json 94.6 KB
Newer Older
      },
      "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",
            "name": "appPkgId",
            "in": "path",
            "description": "Identifier of an on-boarded individual application package",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            "name": "filter",
            "description": "Attribute-based filtering parameters according to ETSI GS MEC 009",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string"
            "name": "all_fields",
            "description": "Include all complex attributes in the response.",
            "style": "form",
            "explode": true,
            "name": "fields",
            "description": "Complex attributes of AppPkgInfo to be included into the response",
            "style": "form",
            "explode": true,
            "name": "exclude_fields",
            "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": {},
              "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": {
                  "$ref": "#/components/schemas/ProblemDetails"
            "description": "Unauthorized :  used when the client did not submit credentials.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
            "description": "Forbidden :  operation is not allowed given the current status of the resource.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
            "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"
                }
              }
            }
          },
            "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"
                }
              }
            }
            "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",
Elian Kraja's avatar
Elian Kraja committed
        "parameters": [
          {
            "name": "appDId",
            "in": "path",
            "description": "Identifier of an application descriptor",
            "required": true,
            "style": "simple",
Elian Kraja's avatar
Elian Kraja committed
            "schema": {
              "type": "string"
            "name": "filter",
            "description": "Attribute-based filtering parameters according to ETSI GS MEC 009",
            "style": "form",
            "explode": true,
            "name": "all_fields",
            "description": "Include all complex attributes in the response.",
            "style": "form",
            "explode": true,
            "name": "fields",
            "description": "Complex attributes of AppPkgInfo to be included into the response",
            "style": "form",
            "explode": true,
            "name": "exclude_fields",
            "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,
        ],
        "responses": {
          "200": {
            "description": "Content of the AppD is returned.",
            "headers": {},
Elian Kraja's avatar
Elian Kraja committed
            "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": {
Elian Kraja's avatar
Elian Kraja committed
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
            "description": "Unauthorized :  used when the client did not submit credentials.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
            "description": "Forbidden :  operation is not allowed given the current status of the resource.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
            "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"
                }
              }
            }
            "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"
                }
              }
            }
            "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"
            }
          }
        ],
            "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": {}
            }
            "description": "Partial content",
            "headers": {},
            "content": {
              "application/zip": {}
            }
            "description": "Bad Request : used to indicate that incorrect parameters were passed to the request.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
            "description": "Unauthorized :  used when the client did not submit credentials.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
            "description": "Forbidden :  operation is not allowed given the current status of the resource.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
            "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"
                }
              }
            }
            "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": {}
            "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
            "description": "The application package has been accepted for uploading, but the processing has not been completed.",
            "headers": {},
            "content": {}
            "description": "Bad Request : used to indicate that incorrect parameters were passed to the request.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
            "description": "Unauthorized :  used when the client did not submit credentials.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
            "description": "Forbidden :  operation is not allowed given the current status of the resource.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
            "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"
                }
              }
            }
            "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"
                }
              }
            }
            "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"
                }
              }
            }
            "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"
            }
          }
        ],
            "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": {}
            "description": "Partial content",
            "headers": {},
            "content": {}
            "description": "Bad Request : used to indicate that incorrect parameters were passed to the request.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
            "description": "Unauthorized :  used when the client did not submit credentials.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
            "description": "Forbidden :  operation is not allowed given the current status of the resource.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
            "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"
                }
              }
            }
            "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": {}
            "description": "Too Many Requests : used when a rate limiter has triggered.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
        },
        "deprecated": false
        "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
            "description": "The application package has been accepted for uploading, but the processing has not been completed.",
            "headers": {},
            "content": {}
            "description": "Bad Request : used to indicate that incorrect parameters were passed to the request.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
            "description": "Unauthorized :  used when the client did not submit credentials.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
            "description": "Forbidden :  operation is not allowed given the current status of the resource.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
            "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"
                }
              }
            }
            "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"
                }
              }
            }
            "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"
                }
              }
            }
            "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": []
        "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."
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/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."
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AppExternalCpd"
            },
            "description": "Describes external interface(s) exposed by this MEC application."
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeatureDependency"
            },
            "description": "Describes features a MEC application may use if available."
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeatureDependency"
            },
            "description": "Describes features a MEC application requires to run."
          },
          "appInfoName": {
            "type": "string",
            "description": "Human readable name for the MEC application."
          },
          "appLatency": {
            "$ref": "#/components/schemas/LatencyDescriptor"
          },
          "appName": {
            "type": "string",
            "description": "Name to identify the MEC application."
          },
          "appProvider": {
            "type": "string",
            "description": "Provider of the application and of the AppD."
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceDependency"
            },
            "description": "Describes services a MEC application may use if available."
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceDescriptor"
            },
            "description": "Describes services a MEC application is able to produce to the platform or other MEC applications. Only relevant for service-producing apps."
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceDependency"
            },
            "description": "Describes services a MEC application requires to run."
          },
          "appSoftVersion": {
            "type": "string",
            "description": "Identifies the version of software of the MEC application."
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrafficRuleDescriptor"
            },
            "description": "Describes traffic rules the MEC application requires."
          },
          "changeAppInstanceStateOpConfig": {
            "type": "string",
            "description": "NFV"
            "minItems": 1,
            "type": "array",
            "description": "Identifies version(s) of MEC system compatible with the MEC application described in this version of the AppD."
            "type": "string",
            "description": "Ref NFV"
          },
          "terminateAppInstanceOpConfig": {
            "type": "string",
            "description": "NFV"
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/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": {
            "type": "string",
            "description": "Ref NFV"
          },
          "virtualStorageDescriptor": {
            "minItems": 0,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Defines descriptors of virtual storage resources to be used by the MEC application."
        }
      },
      "AppExternalCpd": {
        "title": "AppExternalCpd",
          "inherited_attributes"
        ],
        "type": "object",
        "properties": {
          "inherited_attributes": {
            "type": "object",
            "description": "All attributes inherited from Cpd."
          },
          "virtualNetworkInterfaceRequirements": {
            "minItems": 0,
            "type": "array",
            "items": {
              "type": "string"
            },