MecAppSupportApi.json 112 KB
Newer Older
            "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": ["TODO"]
          },
          "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",
        "required": ["seconds", "nanoSeconds", "timeSourceStatus"],
        "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",
        "enum": ["TUNNEL", "MAC", "IP"],
        "description": "Type of the interface",
        "examples": ["TUNNEL"]
        "title": "DestinationInterface",
        "required": ["interfaceType"],
        "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",
        "enum": ["IP_V6", "IP_V4"],
        "type": "string",
        "description": "IP address type",
        "examples": ["IP_V6"]
        "title": "DnsRule.State",
        "enum": ["ACTIVE", "INACTIVE"],
        "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",
        "required": ["self"],
        "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",
        "required": ["href", "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",
        "required": ["_links"],
        "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",
        "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",
        "required": ["self"],
        "type": "object",
Walter Featherstone's avatar
Walter Featherstone committed
          "self": {
        "description": "Self-referring URI."
      },
      "TimingCaps.NtpServers.AuthenticationOption": {
        "title": "TimingCaps.NtpServers.AuthenticationOption",
        "enum": ["NONE", "SYMMETRIC_KEY", "AUTO_KEY"],
        "description": "NTP authentication option",
        "examples": ["NONE"]
        "title": "TimingCaps.NtpServers.NtpServerAddrType",
        "enum": ["IP_ADDRESS", "DNS_NAME"],
        "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",
        "required": ["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",
        "enum": ["FLOW", "PACKET"],
        "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",
        "enum": ["ACTIVE", "INACTIVE"],
        "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",
        "enum": ["GTP_U", "GRE"],
        "type": "string",
        "description": "This type represents the tunnel information.",
        "examples": ["GTP_U"]
        "title": "TunnelInfo",
        "required": ["tunnelType"],
        "type": "object",
        "properties": {
          "tunnelType": {
            "$ref": "#/components/schemas/TunnelInfo.TunnelType"
          },
          "tunnelDstAddress": {
            "type": "string",
            "description": "Destination address of the tunnel",
            "examples": ["192.127.4.100/32"]
            "type": "string",
            "description": "Source address of the tunnel",
            "examples": ["192.127.4.101/32"]
        "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"
      },
      "EndPointInfo.Address": {
        "title": "EndPointInfo.Address",
        "required": ["host", "port"],
        "type": "object",
        "properties": {
          "host": {
            "type": "string",
            "description": "Host portion of the address",
            "examples": ["192.0.2.0"]
          },
          "port": {
            "type": "integer",
            "description": "Port portion of the address",
            "contentEncoding": "int32",
            "examples": [8080]
          }
        },
        "description": "A IP address and port pair"
      },
      "EndPointInfo.Addresses": {
        "title": "EndPointInfo.Addresses",
        "required": ["addresses"],
        "type": "object",
        "properties": {
          "addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EndPointInfo.Address"
            },
            "description": "Entry point information of the service as one or more pairs of IP address and port. See note."
          }
        },
        "description": "This type represents information about a transport endpoint."
      },
      "EndPointInfo.Alternative": {
        "title": "EndPointInfo.Alternative",
        "required": ["alternative"],
        "type": "object",
        "properties": {
          "alternative": {
            "type": "object",
            "description": "Entry point information of the service in a format defined by an implementation, or in an external specification. See note."
          }
        },
        "description": "This type represents information about a transport endpoint."
      },
      "EndPointInfo.Uris": {
        "title": "EndPointInfo.Uris",
        "required": ["uris"],
        "type": "object",
        "properties": {
          "uris": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Entry point information of the service as string, formatted according to URI syntax"
          }
        },
        "description": "This type represents information about a transport endpoint."
      },
      "EndPointInfo.Fqdn": {
        "title": "EndPointInfo.Fqdn",
        "required": ["fqdn"],
        "type": "object",
        "properties": {
          "fqdn": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Fully Qualified Domain Name of the service. See note."
          }
        },
        "description": "This type represents information about a transport endpoint. "
      },
      "ServiceDependency": {
        "properties": {
          "requestedPermissions": {
            "description": "Requested permissions regarding the access of the application to the service. See clause 8.2 of ETSI GS MEC 009 [4].\nThe format of this attribute is left for the data model design stage.",
            "items": {
              "$ref": "#/components/schemas/Not_specified"
            },
            "minItems": 0,
            "type": "array"
          },
          "serCategory": {
            "$ref": "#/components/schemas/CategoryRef"
          },
          "serName": {
            "description": "The name of the service, for example, RNIS, LocationService, etc.",
            "type": "string"
          },
          "serTransportDependencies": {
            "description": "Indicates transport and serialization format dependencies of consuming the service. Defaults to REST + JSON if absent. See note.",
            "items": {
              "$ref": "#/components/schemas/TransportDependency"
            },
            "minItems": 0,
            "type": "array"
          },
          "version": {
            "description": "The version of the service.",
            "type": "string"
          }
        },
        "required": ["serName", "version"],
        "type": "object",
        "x-etsi-notes": "NOTE:\tThis attribute indicates groups of transport bindings that a service-consuming MEC application supports for the consumption of the MEC service defined by this ServiceDependency structure. If at least one of the indicated groups is supported by the service it may be consumed by the application."
      },
      "TransportDependency": {
        "properties": {
          "labels": {
            "description": "Set of labels that allow to define groups of transport bindings. The mechanism of the grouping is defined below this table.",
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          },
          "serializers": {
            "description": "Information about the serializers in this transport binding, as defined in the SerializerType type in ETSI GS MEC 011 [i.4]. Support for at least one of the entries is required in conjunction with the transport.",
            "items": {
              "$ref": "#/components/schemas/SerializerType"
            },
            "minItems": 1,
            "type": "array"
          },
          "transport": {
            "$ref": "#/components/schemas/TransportDescriptor"
          }
        },
        "required": ["transport", "serializers", "labels"],
        "type": "object"
      },
      "TransportDescriptor": {
        "properties": {
          "protocol": {
            "description": "The name of the protocol used. Shall be set to \"HTTP\" for a REST API.",
            "type": "string"
          },
          "security": {
            "$ref": "#/components/schemas/SecurityInfo"
          },
          "type": {
            "$ref": "#/components/schemas/TransportType"
          },
          "version": {
            "description": "The version of the protocol used.",
            "type": "string"
          }
        },
        "required": ["type", "protocol", "version", "security"],
        "type": "object"
      },
      "SerializerType": {
        "title": "SerializerType",
        "enum": ["JSON", "XML", "PROTOBUF3"],
        "type": "string",
        "description": "The enumeration represents types of serializers",
        "examples": ["JSON"]
      },
      "SecurityInfo": {
        "title": "SecurityInfo",
        "type": "object",
        "properties": {
          "oAuth2Info": {
            "$ref": "#/components/schemas/SecurityInfo.OAuth2Info"
          }
        },
        "description": "This type represents security information related to a transport"
      },
      "SecurityInfo.OAuth2Info": {
        "title": "SecurityInfo.OAuth2Info",
        "required": ["grantTypes", "tokenEndpoint"],
        "type": "object",
        "properties": {
          "grantTypes": {
            "maxItems": 4,
            "minItems": 1,