MecAppSupportApi.json 113 KB
Newer Older
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.",
            "headers": {},
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "object",
                  "description": "Empty schema",
                  "contentMediaType": "text/plain"
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "parameters": []
    }
  },
  "components": {
    "schemas": {
      "AppReadyConfirmation": {
        "title": "AppReadyConfirmation",
        "required": [
          "indication"
        ],
        "type": "object",
        "properties": {
          "indication": {
            "const": "READY",
            "type": "string",
            "description": "Indication about the MEC application instance.",
            "examples": [
              "READY"
            ]
          }
        },
        "description": "This type represents the information that the MEC application instance indicates to the MEC platform that it is up and running."
      },
      "AppInfo": {
        "title": "AppInfo",
        "required": [
          "appName"
        ],
        "type": "object",
        "properties": {
          "appName": {
            "title": "appName",
            "type": "string",
            "description": "Name of the application. It shall be consistent with the appName in the AppD, if an AppD is available.",
            "examples": [
              "appName"
            ]
          },
          "appProvider": {
            "title": "appProvider",
            "type": "string",
            "description": "Provider of the application. It shall be consistent with the appProvider in the AppD, if an AppD is available. See note 1.",
            "examples": [
              "appProvider1"
            ]
          },
          "appCategory": {
            "$ref": "#/components/schemas/CategoryRef"
          },
          "appDId": {
            "title": "appDId",
            "type": "string",
            "description": "The application descriptor identifier. It is managed by the application provider to identify the application descriptor in a globally unique way. Shall be present if the application instance is instantiated by the MEC Management.",
            "examples": [
              "appDId"
            ]
          },
          "appInstanceId": {
            "title": "appInstanceId",
            "type": "string",
            "description": "Identifier of the application instance. Shall be present if the application instance is instantiated by the MEC Management.",
            "examples": [
              "ID1"
            ]
          },
          "endpoint": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/EndPointInfo.Uris"
              },
              {
                "$ref": "#/components/schemas/EndPointInfo.Fqdn"
              },
              {
                "$ref": "#/components/schemas/EndPointInfo.Addresses"
              },
              {
                "$ref": "#/components/schemas/EndPointInfo.Alternative"
              }
            ],
            "description": "This type represents information about a transport endpoint",
            "x-etsi-notes": "NOTE 1:\tIf appProfile is present, appProvider shall be consistent with provId provided in EAS profile data type, i.e. the same.\nNOTE 2:\tIf appProfile is present, endpoint shall refer to the same end point as endPt provided in EAS profile data type."
          },
          "appServiceRequired": {
            "title": "appServiceRequired",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceDependency"
            },
            "description": "Describes services a MEC application requires to run. ServiceDependency is defined in ETSI GS MEC 010-2 [4]. It shall not be provided if an AppD is available."
          },
          "appServiceOptional": {
            "title": "appServiceOptional",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceDependency"
            },
            "description": "Describes services a MEC application may use if available. ServiceDependency is defined in ETSI GS MEC 010-2 [4]. It shall not be provided if an AppD is available."
          },
          "appFeatureRequired": {
            "title": "appFeatureRequired",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeatureDependency"
            },
            "description": "Describes features a MEC application requires to run. FeatureDependency is defined in ETSI GS MEC 010-2 [4]. It shall not be provided if an AppD is available."
          },
          "appFeatureOptional": {
            "title": "appFeatureOptional",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeatureDependency"
            },
            "description": "Describes features a MEC application may use if available. FeatureDependency is defined in ETSI GS MEC 010-2 [4]. It shall not be provided if an AppD is available."
          },
          "isInsByMec": {
            "type": "boolean",
            "description": "Indicate whether the application instance is instantiated by the MEC Management.\nDefault to FALSE if absent.",
            "examples": [
              false
            ]
          },
          "appProfile": {
            "$ref": "#/components/schemas/AppProfile"
          }
        },
        "description": "This type represents the information provided by the MEC application instance as part of the \"application registration request\" and \"application registration update\" messages.",
        "x-etsi-notes": "NOTE 1:\tIf appProfile is present, appProvider shall be consistent with provId provided in EAS profile data type, i.e. the same.\nNOTE 2:\tIf appProfile is present, endpoint shall refer to the same end point as endPt provided in EAS profile data type."
      },
      "AppTerminationConfirmation": {
        "title": "AppTerminationConfirmation",
        "required": [
          "operationAction"
        ],
        "type": "object",
        "properties": {
          "operationAction": {
            "$ref": "#/components/schemas/OperationActionType"
          }
        },
        "description": "This type represents the information that the MEC application instance provides to the MEC platform when informing it that the application has completed its application level related terminate/stop actions, e.g. retention of application state in the case of stop."
      },
      "AppTerminationNotification.Links": {
        "title": "AppTerminationNotification.Links",
        "required": [
          "subscription"
        ],
        "type": "object",
        "properties": {
          "subscription": {
            "$ref": "#/components/schemas/LinkType"
          },
          "confirmTermination": {
            "$ref": "#/components/schemas/LinkType.ConfirmTermination"
        },
        "description": "Object containing hyperlinks related to the resource."
        "title": "AppTerminationNotification",
Walter Featherstone's avatar
Walter Featherstone committed
          "operationAction",
        "type": "object",
            "type": "string",
            "description": "Shall be set to AppTerminationNotification.",
            "examples": [
              "AppTerminationNotification"
            ]
Walter Featherstone's avatar
Walter Featherstone committed
          "operationAction": {
            "$ref": "#/components/schemas/OperationActionType"
          },
            "type": "integer",
            "description": "Maximum timeout value in seconds for graceful termination or graceful stop of an application instance.",
            "contentEncoding": "int32",
            "examples": [
              10
            ]
Walter Featherstone's avatar
Walter Featherstone committed
            "$ref": "#/components/schemas/AppTerminationNotification.Links"
        },
        "description": "This type represents the information that the MEC platform notifies the subscribed application instance about  the corresponding application instance termination/stop."
        "title": "AppTerminationNotificationSubscription",
        "required": [
          "subscriptionType",
          "callbackReference",
          "_links",
          "appInstanceId"
        ],
        "type": "object",
            "type": "string",
            "description": "Shall be set to AppTerminationNotificationSubscription.",
            "examples": [
              "AppTerminationNotificationSubscription"
            ]
            "type": "string",
            "description": "URI selected by the MEC application instance to receive notifications on the subscribed MEC application instance management information. This shall be included in both the request and the response."
          },
          "_links": {
            "$ref": "#/components/schemas/Self"
          },
          "appInstanceId": {
            "type": "string",
            "description": "It is used as the filtering criterion for the subscribed events.",
            "examples": [
              "ID1"
            ]
        },
        "description": "This type represents the information that the MEC platform notifies the subscribed application instance about  the corresponding application instance termination/stop."
        "title": "CurrentTime",
          "nanoSeconds",
        "type": "object",
        "properties": {
          "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",
            "examples": [
              1577836800
            ]
          },
          "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",
            "examples": [
              0
            ]
            "$ref": "#/components/schemas/TimeSourceStatus"
        },
        "description": "This type represents the information provided by the MEC platform in response to the Get Platform Time Request message."
        "title": "DestinationInterface.InterfaceType",
        "description": "Type of the interface",
        "examples": [
          "TUNNEL"
        ]
        "title": "DestinationInterface",
        "type": "object",
        "properties": {
          "interfaceType": {
            "$ref": "#/components/schemas/DestinationInterface.InterfaceType"
          },
          "tunnelInfo": {
            "$ref": "#/components/schemas/TunnelInfo"
          },
          "srcMacAddress": {
            "type": "string",
            "description": "Source address identifies the MAC address of the interface",
            "examples": [
              "02-00-00-00-00-00"
            ]
            "type": "string",
            "description": "Source address identifies the MAC address of the interface",
            "examples": [
              "02-00-00-00-00-00"
            ]
            "type": "string",
            "description": "IP address of the remote destination",
            "examples": [
              "192.0.2.0"
            ]
        },
        "description": "This type represents the destination interface. If the action is FORWARD_DECAPSULATED, FORWARD_ENCAPSULATED or PASSTHROUGH one value shall be provided. If the action is DUPLICATE_DECAPSULATED or DUPLICATE_ENCAPSULATED, two values shall be provided. If the action is DROP, no value shall be provided."
        "title": "DnsRule.IpAddressType",
        "type": "string",
        "description": "IP address type",
        "examples": [
          "IP_V6"
        ]
        "title": "DnsRule.State",
        "type": "string",
        "description": "DNS rule state. This attribute may be updated using HTTP PUT method",
        "examples": [
          "ACTIVE"
        ]
        "title": "DnsRule",
        "required": [
          "dnsRuleId",
          "domainName",
          "ipAddressType",
          "ipAddress",
          "state"
        ],
        "type": "object",
            "type": "string",
            "description": "Identifies the DNS Rule",
            "examples": [
              "dnsRule1"
            ]
            "type": "string",
            "description": "FQDN resolved by the DNS rule",
            "examples": [
              "www.example.com"
            ]
          },
          "ipAddressType": {
            "$ref": "#/components/schemas/DnsRule.IpAddressType"
          },
          "ipAddress": {
            "type": "string",
            "description": "IP address associated with the FQDN resolved by the DNS rule",
            "examples": [
              "192.0.2.0"
            ]
            "type": "integer",
            "description": "Time to live value",
            "contentEncoding": "int32"
          },
          "state": {
            "$ref": "#/components/schemas/DnsRule.State"
          }
        "description": "This type represents the general information of a DNS rule.",
        "x-etsi-notes": "NOTE:\tIf no ttl value is provided, the DnsRule shall not expire."
Walter Featherstone's avatar
Walter Featherstone committed
      "LinkType": {
        "title": "LinkType",
        "type": "object",
        "properties": {
Walter Featherstone's avatar
Walter Featherstone committed
          "href": {
            "type": "string",
            "description": "URI referring to a resource",
            "examples": [
              "/mecAppSuptApi/example"
            ]
        },
        "description": "This type represents a type of link and may be referenced from data structures"
Walter Featherstone's avatar
Walter Featherstone committed
      "LinkType.ConfirmTermination": {
        "title": "LinkType.ConfirmTermination",
            "type": "string",
            "description": "URI referring to a resource",
            "examples": [
              "/mecAppSuptApi/example"
            ]
        },
        "description": "Link to the task resource where to confirm termination in case the  application is ready to be terminated before expiry of the timeout."
Walter Featherstone's avatar
Walter Featherstone committed
      "MecAppSuptApiSubscriptionLinkList.Links": {
        "title": "MecAppSuptApiSubscriptionLinkList.Links",
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/LinkType"
          },
Walter Featherstone's avatar
Walter Featherstone committed
          "subscriptions": {
Walter Featherstone's avatar
Walter Featherstone committed
              "$ref": "#/components/schemas/MecAppSuptApiSubscriptionLinkList.Subscription"
            },
            "description": "The MEC application instance's subscriptions"
        },
        "description": "Self-referring URI."
Walter Featherstone's avatar
Walter Featherstone committed
      "MecAppSuptApiSubscriptionLinkList.Subscription": {
        "title": "MecAppSuptApiSubscriptionLinkList.Subscription",
          "subscriptionType"
        "type": "object",
            "type": "string",
            "description": "URI referring to a resource",
            "examples": [
              "/mecAppSuptApi/example"
            ]
          "subscriptionType": {
            "type": "string",
            "description": "Type of the subscription. The values are as defined in the \"subscriptionType\" attribute for each different Mp1 event subscription data type."
        },
        "description": "A link to a subscription."
Walter Featherstone's avatar
Walter Featherstone committed
      "MecAppSuptApiSubscriptionLinkList": {
        "title": "MecAppSuptApiSubscriptionLinkList",
        "type": "object",
Walter Featherstone's avatar
Walter Featherstone committed
            "$ref": "#/components/schemas/MecAppSuptApiSubscriptionLinkList.Links"
        },
        "description": "This type represents a list of links related to currently existing subscriptions for a MEC application instance. This information is returned when sending a request to receive current subscriptions."
Walter Featherstone's avatar
Walter Featherstone committed
      "OperationActionType": {
        "title": "OperationActionType",
Walter Featherstone's avatar
Walter Featherstone committed
        "enum": [
          "STOPPING",
          "TERMINATING"
        ],
        "type": "string",
        "description": "Operation that is being performed on the MEC application instance.",
        "examples": [
          "TERMINATING"
        ]
        "title": "ProblemDetails",
            "type": "string",
            "description": "A URI reference according to IETF RFC 3986 that identifies the problem type"
            "type": "string",
            "description": "A short, human-readable summary of the problem type"
            "type": "integer",
            "description": "The HTTP status code for this occurrence of the problem",
            "contentEncoding": "int32"
            "type": "string",
            "description": "A human-readable explanation specific to this occurrence of the problem"
            "type": "string",
            "description": "A URI reference that identifies the specific occurrence of the problem"
Walter Featherstone's avatar
Walter Featherstone committed
      "Self": {
        "title": "Self",
Walter Featherstone's avatar
Walter Featherstone committed
          "self"
        "type": "object",
Walter Featherstone's avatar
Walter Featherstone committed
          "self": {
        "description": "Self-referring URI."
      },
      "TimingCaps.NtpServers.AuthenticationOption": {
        "title": "TimingCaps.NtpServers.AuthenticationOption",
        "description": "NTP authentication option",
        "examples": [
          "NONE"
        ]
      },
        "title": "TimingCaps.NtpServers.NtpServerAddrType",
        "description": "Address type of NTP server",
        "examples": [
          "IP_ADDRESS"
        ]
        "title": "TimingCaps.NtpServers",
        "required": [
          "ntpServerAddrType",
          "ntpServerAddr",
          "minPollingInterval",
          "maxPollingInterval",
          "localPriority",
          "authenticationOption"
        "type": "object",
        "properties": {
          "ntpServerAddrType": {
            "$ref": "#/components/schemas/TimingCaps.NtpServers.NtpServerAddrType"
          },
          "ntpServerAddr": {
            "type": "string",
            "description": "NTP server address",
            "examples": [
              "192.0.2.0"
            ]
            "type": "integer",
            "description": "Minimum poll interval for NTP messages, in seconds as a power of two. Range 3 to 17",
            "contentEncoding": "int32",
            "examples": [
              3
            ]
            "type": "integer",
            "description": "Maximum poll interval for NTP messages, in seconds as a power of two. Range 3 to 17",
            "contentEncoding": "int32",
            "examples": [
              17
            ]
            "type": "integer",
            "description": "NTP server local priority",
            "contentEncoding": "int32",
            "examples": [
              1
            ]
          },
          "authenticationOption": {
            "$ref": "#/components/schemas/TimingCaps.NtpServers.AuthenticationOption"
          },
          "authenticationKeyNum": {
            "type": "integer",
            "description": "Authentication key number. This configuration is valid and shall be present if authenticationOption is set to SYMMETRIC_KEY",
            "contentEncoding": "int32",
            "examples": [
              1
            ]
        },
        "description": "NTP server detail."
      "TimingCaps_PtpMasters": {
        "title": "TimingCaps_PtpMasters",
        "required": [
          "ptpMasterIpAddress",
          "ptpMasterLocalPriority",
          "delayReqMaxRate"
        ],
        "type": "object",
            "type": "string",
            "description": "PTP Server (referred to as \"master\" in IEEE 1588-2019) IP Address",
            "examples": [
              "192.0.2.0"
            ]
            "type": "integer",
            "description": "PTP Server (referred to as \"master\" in IEEE 1588-2019 ) local priority",
            "contentEncoding": "int32",
            "examples": [
              1
            ]
            "type": "integer",
            "description": "Acceptable maximum rate of the Delay_Req messages in packets per second",
            "contentEncoding": "int32",
            "examples": [
              10
            ]
        },
        "description": "NTP server detail."
        "title": "TimingCaps.TimeStamp",
          "seconds",
          "nanoSeconds"
        "type": "object",
        "properties": {
          "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",
            "examples": [
              1577836800
            ]
          },
          "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",
            "examples": [
              0
            ]
        },
        "description": "time"
        "title": "TimingCaps",
        "type": "object",
        "properties": {
          "timeStamp": {
            "$ref": "#/components/schemas/TimingCaps.TimeStamp"
          },
          "ntpServers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimingCaps.NtpServers"
            },
            "description": "Available NTP servers"
              "$ref": "#/components/schemas/TimingCaps_PtpMasters"
            "description": "Number of available PTP Servers (referred to as \"masters\" in IEEE 1588-2019)"
        },
        "description": "This type represents the information provided by the MEC platform in response to the Timing capabilities Query message."
        "title": "TrafficFilter",
        "type": "object",
        "properties": {
          "srcAddress": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes."
              "type": "string"
            },
            "description": "An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes."
              "type": "string"
            },
            "description": "A port or a range of ports"
              "type": "string"
            },
            "description": "A port or a range of ports"
              "type": "string"
            },
            "description": "Specify the protocol of the traffic filter"
              "type": "string"
            },
            "description": "Used for token based traffic rule"
              "type": "string"
            },
            "description": "Used for GTP tunnel based traffic rule"
              "type": "string"
            },
            "description": "Used for GTP tunnel based traffic rule"
              "type": "string"
            },
            "description": "Used for GTP tunnel based traffic rule"
              "type": "string"
            },
            "description": "Used for GTP tunnel based traffic rule"
            "type": "integer",
            "description": "Used to match all packets that have the same Quality Class Indicator (QCI).",
            "contentEncoding": "int32",
            "examples": [
              1
            ]
            "type": "integer",
            "description": "Used to match all IPv4 packets that have the same Differentiated Services Code Point (DSCP)",
            "contentEncoding": "int32",
            "examples": [
              0
            ]
            "type": "integer",
            "description": "Used to match all IPv6 packets that have the same Traffic Class.",
            "contentEncoding": "int32",
            "examples": [
              1
            ]
        },
        "description": "This type represents the traffic filter."
        "title": "TrafficRule.Action",
Walter Featherstone's avatar
Walter Featherstone committed
          "FORWARD_ENCAPSULATED",
Walter Featherstone's avatar
Walter Featherstone committed
          "DUPLICATE_ENCAPSULATED"
        "type": "string",
        "description": "The action of the MEC host data plane when a packet matches the trafficFilter",
        "examples": [
          "DROP"
        ]
        "title": "TrafficRule.FilterType",
        "description": "Definition of filter per FLOW or PACKET. If flow the filter match UE->EPC packet and the reverse packet is handled in the same context",
        "examples": [
          "FLOW"
        ]
        "title": "TrafficRule.State",
        "type": "string",
        "description": "Contains the traffic rule state. This attribute may be updated using HTTP PUT method",
        "examples": [
          "ACTIVE"
        ]
        "title": "TrafficRule",
        "required": [
          "trafficRuleId",
          "filterType",
          "priority",
          "trafficFilter",
          "action",
          "state"
        ],
        "type": "object",
            "type": "string",
            "description": "Identify the traffic rule.",
            "examples": [
              "TrafficRule1"
            ]
          },
          "filterType": {
            "$ref": "#/components/schemas/TrafficRule.FilterType"
          },
          "priority": {
            "type": "integer",
            "description": "Priority of this traffic rule within the range 0 to 255. If traffic rules conflict, the one with higher priority take precedence. Value indicates the priority in descending order, i.e. with 0 as the highest priority and 255 as the lowest priority.",
            "contentEncoding": "int32",
            "examples": [
              1
            ]
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrafficFilter"
            },
            "description": ""
          },
          "action": {
            "$ref": "#/components/schemas/TrafficRule.Action"
          },
          "dstInterface": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DestinationInterface"
            },
            "maxItems": 2
          },
          "state": {
            "$ref": "#/components/schemas/TrafficRule.State"
          }
        "description": "This type represents the general information of a traffic rule.",
        "x-etsi-notes": "NOTE 1:\tValue indicates the priority in descending order, i.e. with 0 as the highest priority and 255 as the lowest priority.\nNOTE 2:\tSome applications (like inline/tap) require two interfaces. The first interface in the case of inline/tap is on the client (e.g. UE) side and the second on the core network (e.g. EPC) side."
        "title": "TunnelInfo.TunnelType",
        "type": "string",
        "description": "This type represents the tunnel information.",
        "examples": [
          "GTP_U"
        ]
        "title": "TunnelInfo",
        "type": "object",
        "properties": {
          "tunnelType": {
            "$ref": "#/components/schemas/TunnelInfo.TunnelType"
          },
          "tunnelDstAddress": {
            "type": "string",
            "description": "Destination address of the tunnel",
            "examples": [
              "?"
            ]
            "type": "string",
            "description": "Source address of the tunnel",
            "examples": [
              "?"
            ]
        "description": "This type represents the tunnel information."
      "TimeSourceStatus": {
        "title": "TimeSourceStatus",
        "enum": [
          "TRACEABLE",
          "NONTRACEABLE"
        ],
        "type": "string",
        "description": "Platform Time Source status. 1 = TRACEABLE - time source is locked to the UTC time source. 2 = NONTRACEABLE - time source is not locked to the UTC time source",
        "examples": [
          "TRACEABLE"
        ]
      },
      "CategoryRef": {
        "title": "CategoryRef",
        "required": [
          "href",
          "id",
          "name",
          "version"
        ],
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "description": "Reference of the catalogue",
            "examples": [
              "/example/catalogue1"
            ]
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the category",
            "examples": [
              "id12345"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the category, example values include RNI, Location & Bandwidth Management",
            "examples": [
              "RNI"
            ]
          },
          "version": {
            "type": "string",
            "description": "Category version",
            "examples": [
              "version1"
            ]
          }
        },
        "description": "This type represents the category reference"
      },