Newer
Older
"description": "Specifies requirements on a virtual network interface realizing the CPs instantiated from this CPD."
},
"AppPkgInfo": {
"required": [
"id",
"appDId",
"appName",
"appSoftwareVersion",
"appDVersion",
"checksum",
"softwareImages",
"onboardingState",
"operationalState",
"usageState",
"_links"
],
"properties": {
"id": {
"type": "string",
"description": "Identifier of the onboarded application package."
},
"appDId": {
"type": "string",
"description": "Identifier of this MEC application descriptor. This attribute shall be globally unique."
},
"appProvider": {
"type": "string",
"description": "Provider of the application and of the AppD."
},
"appName": {
"type": "string",
"description": "Name to identify the MEC application."
},
"appSoftwareVersion": {
"type": "string",
"description": "Software version of the application. This is updated when there is any change to the software in the onboarded application package."
},
"appDVersion": {
"type": "string",
"description": "Identifies the version of the application descriptor."
},
"checksum": {
"$ref": "#/components/schemas/Checksum"
},
"softwareImages": {
"type": "object",
"description": "Information of application software image in application package. Type is TBD"
},
"additionalArtifacts": {
"type": "object",
"description": "Additional information of application package artifacts that are not application software images. Type is TBD"
},
"onboardingState": {
"$ref": "#/components/schemas/OnboardingState"
},
"operationalState": {
"$ref": "#/components/schemas/AppPkg.OperationalState"
},
"usageState": {
"$ref": "#/components/schemas/UsageState"
},
"userDefinedData": {
"type": "object",
"description": "'This data type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key-value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259'"
},
"_links": {
"$ref": "#/components/schemas/AppPkgInfo.links"
}
},
"description": "'The data type AppPkgInfo represents the parameters for an application package resource'"
},
"AppPkgInfoModifications": {
"required": [
"operationState"
],
"properties": {
"operationState": {
"$ref": "#/components/schemas/OperationState"
},
"description": "'The data type represents the operational state for an application package resource'"
},
"AppPkg.OperationalState": {
"enum": [
"ENABLED",
"DISABLED"
],
"type": "string",
"description": "Operational state of the onboarded application package: •ENABLED: the application package can be used for instantiation of new application instances. •DISABLED: the application package cannot be used for further application instantiation requests.",
"examples": [
"ENABLED"
]
},
"OnboardingState": {
"enum": [
"CREATED",
"UPLOADING",
"PROCESSING",
"ONBOARDED"
],
"type": "string",
"description": "Onboarding state of application package",
"examples": [
"CREATED"
]
},
"UsageState": {
"enum": [
"IN_USE",
"NOT_IN_USE"
],
"type": "string",
"description": "Usage state of the onboarded instance of the application package",
"examples": [
"IN_USE"
]
},
"AppPkgInfo.links": {
"required": [
"self",
"appD",
"appPkgContent"
],
"properties": {
"self": {
"$ref": "#/components/schemas/LinkType"
},
"appD": {
"$ref": "#/components/schemas/LinkType"
},
"appPkgContent": {
"$ref": "#/components/schemas/LinkType"
}
},
"description": "Links to resources related to this resource."
},
"AppPkgNotification": {
"required": [
"id",
"notificationType",
"subscriptionId",
"timeStamp",
"appPkgId",
"appDId",
"operationalState",
"_links"
],
"properties": {
"id": {
},
"notificationType": {
"$ref": "#/components/schemas/AppPkg.NotificationType"
},
"subscriptionId": {
"type": "string",
"description": "Identifier of the subscription related to this notification."
},
"timeStamp": {
"$ref": "#/components/schemas/TimeStamp"
},
"appPkgId": {
"type": "string",
"description": "Identifier of the onboarded application package."
},
"appDId": {
"type": "string",
"description": "Identifier of this MEC application descriptor. This attribute shall be globally unique."
},
"operationalState": {
"$ref": "#/components/schemas/OperationalState"
},
"_links": {
"$ref": "#/components/schemas/AppPkgNotification.links"
}
},
"description": "'This data type represents an application package management notification for informing the subscribers about onboarding application package resources. The notification is triggered when a new application package is onboarded'"
},
"AppPkg.NotificationType": {
"enum": [
"AppPackageOnBoarded",
"AppPacakgeEnabled",
"AppPacakgeDisabled",
"AppPackageDeleted"
],
"type": "string",
"description": "Discriminator for the different notification types",
"examples": [
"AppPackageOnBoarded"
]
},
"AppPkgNotification.links": {
"required": [
"subscription"
],
"properties": {
"subscription": {
"$ref": "#/components/schemas/LinkType"
}
},
"description": "Links to resources related to this resource."
},
"AppPkgSubscriptionInfo": {
"required": [
"id",
"subscriptionType",
"callbackUri",
"_links"
],
"properties": {
"id": {
},
"subscriptionType": {
"$ref": "#/components/schemas/AppPkg.SubscriptionType"
},
"callbackUri": {
"type": "string",
"description": "The URI of the endpoint for the notification to be sent to."
},
"_links": {
"$ref": "#/components/schemas/AppPkgSubscriptionInfo.links"
}
},
"description": "'The data type represents a subscription to notification of application package management for the onboarding, or operational state change of application package'"
},
"AppPkg.SubscriptionType": {
"enum": [
"AppPackageOnBoarding",
"AppPacakgeOperationChange",
"AppPackageDeletion"
],
"type": "string",
"description": "Subscribed notification type.",
"examples": [
"AppPackageOnBoarding"
]
},
"AppPkgSubscriptionInfo.links": {
"required": [
"self"
],
"properties": {
"self": {
"$ref": "#/components/schemas/LinkType"
}
},
"description": "Links to resources related to this resource."
},
"AppPkgSubscriptionLinkList": {
"required": [
"_links"
],
"properties": {
"_links": {
"$ref": "#/components/schemas/AppPkgSubscriptionLinkList.links"
}
},
"description": "'The data type represents a subscription link list of notification on application package management'"
},
"AppPkgSubscriptionLinkList.links": {
"title": "AppPkgSubscriptionLinkList.links",
"required": [
"self"
],
"properties": {
"self": {
"$ref": "#/components/schemas/LinkType"
},
"subscriptions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Subscriptions.AppPkgSubscription"
},
"description": "Links to resources related to this resource."
},
"Subscriptions.AppPkgSubscription": {
"title": "Subscriptions.AppPkgSubscription",
"required": [
"href",
"subsctiptionType"
],
"properties": {
"href": {
"type": "string",
"description": "The URI referring to the subscription."
},
"subsctiptionType": {
"$ref": "#/components/schemas/SubsctiptionType.AppPkg"
}
},
"description": "'The data type represents the input parameters of \"subscription operation\" to notification of application package management for the onboarding, or operational state change of application package.'"
},
"AppPkgSubscription": {
"required": [
"callbackUri",
"subsctiptionType"
],
"properties": {
"callbackUri": {
"type": "string",
"description": "The URI of the endpoint for the notification to be sent to."
},
"subsctiptionType": {
"$ref": "#/components/schemas/SubsctiptionType.AppPkg"
},
"appPkgFilter": {
"type": "array",
"items": {
"type": "string"
},
"description": ""
},
"description": "'The data type represents the input parameters of \"subscription operation\" to notification of application package management for the onboarding, or operational state change of application package.'"
},
"SubsctiptionType.AppPkg": {
"enum": [
"AppPackageOnBoarding",
"AppPacakgeOperationChange",
"AppPackageDeletion"
"type": "string",
"description": "'Subscribed notification type'",
"examples": [
"AppPackageOnBoarding"
]
},
"Checksum": {
"title": "Checksum",
"required": [
"algorithm",
"hash"
],
"type": "object",
"properties": {
"algorithm": {
"type": "string",
"description": "Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004. For example, SHA-256, SHA-512."
},
"hash": {
"type": "string",
"description": "'String 1 The hexadecimal value of the checksum'"
},
"CreateAppPkg": {
"title": "CreateAppPkg",
"required": [
"appPkgName",
"appPkgPath",
"appPkgVersion",
"checksum"
],
"type": "object",
"properties": {
"appPkgName": {
"type": "string",
"description": "Name of the application package to be onboarded."
},
"appPkgPath": {
},
"appPkgVersion": {
"type": "string",
"description": "Version of the application package to be onboarded.\nThe appPkgName with appPkgVersion can be used to uniquely identify the application package."
},
"appProvider": {
"type": "string",
"description": "The provider's name of the application package to be onboarded."
},
"checksum": {
"$ref": "#/components/schemas/Checksum"
},
"userDefinedData": {
"type": "object",
"description": "'This data type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key-value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259'"
}
},
"DNSRuleDescriptor": {
"title": "DNSRuleDescriptor",
"required": [
"dnsRuleId",
"domainName",
"ipAddress",
"ipAddressType"
],
"type": "object",
"properties": {
"dnsRuleId": {
"type": "string",
},
"domainName": {
"type": "string",
},
"ipAddress": {
"type": "string",
"description": "IP address given by the DNS rule"
},
"ipAddressType": {
"$ref": "#/components/schemas/IpAddressType"
},
"ttl": {
"type": "integer",
"description": "Time-to-live value",
"contentEncoding": "int32"
},
"IpAddressType": {
"enum": [
"IP_V6",
"IP_V4"
],
"type": "string",
"description": "Specifies the IP address type",
"examples": [
"IP_V6"
]
},
"FeatureDependency": {
"title": "FeatureDependency",
"required": [
"featureName",
"version"
],
"type": "object",
"properties": {
"featureName": {
"type": "string",
"description": "The name of the feature, for example, UserApps, UEIdentity, etc."
},
"version": {
"type": "string",
"description": "The version of the feature."
}
},
"InterfaceDescriptor": {
"title": "InterfaceDescriptor",
"required": [
],
"type": "object",
"properties": {
"dstIPAddress": {
"type": "string",
"description": "If the interface type is IP, the destination address identifies the IP address of the destination. Only used for dstInterface."
},
"dstMACAddress": {
"type": "string",
"description": "If the interface type is MAC, the destination address identifies the MAC address of the destination. Only used for dstInterface."
},
"interfaceType": {
"$ref": "#/components/schemas/InterfaceType"
},
"srcMACAddress": {
"type": "string",
"description": "If the interface type is MAC, the source address identifies the MAC address of the interface."
},
"tunnelInfo": {
"$ref": "#/components/schemas/TunnelInfo"
},
"InterfaceType": {
"enum": [
"TUNNEL",
"MAC",
"IP"
],
"type": "string",
"description": "Type of interface.",
"examples": [
"TUNNEL"
]
},
"LatencyDescriptor": {
"title": "LatencyDescriptor",
"required": [
"maxLatency"
],
"type": "object",
"properties": {
"maxLatency": {
"type": "integer",
"description": "The value of the maximum latency in nano seconds tolerated by the MEC application. See note.",
"contentEncoding": "int32"
}
},
"LinkType": {
"title": "LinkType",
"required": [
],
"type": "object",
"properties": {
"href": {
"type": "string",
"description": "URI referring to a resource"
},
"ProblemDetails": {
"title": "ProblemDetails",
"type": "object",
"properties": {
"detail": {
"type": "string",
"description": "A human-readable explanation specific to this occurrence of the problem"
},
"instance": {
"type": "string",
"description": "A URI reference that identifies the specific occurrence of the problem"
},
"status": {
"type": "integer",
"description": "The HTTP status code for this occurrence of the problem",
"contentEncoding": "int32"
},
"title": {
"type": "string",
"description": "A short, human-readable summary of the problem type"
},
"type": {
"type": "string",
"description": "A URI reference according to IETF RFC 3986 that identifies the problem type"
},
"ServiceDependency": {
"title": "ServiceDependency",
"required": [
"serName",
"version"
],
"type": "object",
"properties": {
"requestedPermissions": {
"minItems": 0,
"type": "array",
"items": {
"type": "string"
},
"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."
},
"serCategory": {
"type": "object",
"description": "See MEC011"
},
"serName": {
"type": "string",
"description": "The name of the service, for example, RNIS, LocationService, etc."
},
"serTransportDependencies": {
"items": {
"$ref": "#/components/schemas/TransportDependency"
},
"description": "Indicates transport and serialization format dependencies of consuming the service. Defaults to REST + JSON if absent. See note."
},
"version": {
"type": "string",
"description": "The version of the service."
},
"ServiceDescriptor": {
"required": [
"serName",
"version"
],
"properties": {
"serName": {
"type": "string",
"description": "The name of the service, for example, RNIS, LocationService, etc."
},
"serCategory": {
"type": "object",
"description": "See MEC011"
},
"version": {
"type": "string",
"description": "The version of the service."
},
"transportsSupported": {
"$ref": "#/components/schemas/TransportsSupported"
}
},
"description": "'The ServiceDescriptor data type describes a MEC service produced by a service-providing MEC application.'"
},
"TransportsSupported": {
"type": "object",
"properties": {
"transport": {
"$ref": "#/components/schemas/TransportDescriptor"
},
"serializers": {
"minItems": 1,
"type": "array",
"items": {
"type": "string"
},
"description": "'Information about the serializers in this binding, as defined in the SerializerTypes type in ETSI GS MEC 011 '"
},
"description": "'Indicates transports and serialization formats supported made available to the service-consuming application. Defaults to REST + JSON if absent.'"
},
"TimeStamp": {
"title": "TimeStamp",
"required": [
"nanoSeconds",
"seconds"
],
"type": "object",
"properties": {
"nanoSeconds": {
"type": "integer",
"description": "The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.",
"contentEncoding": "int32"
},
"seconds": {
"type": "integer",
"description": "The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.",
"contentEncoding": "int32"
},
"TrafficFilter": {
"title": "TrafficFilter",
"type": "object",
"properties": {
"dSCP": {
"type": "integer",
"description": "Used to match all IPv4 packets that have the same DSCP.",
"contentEncoding": "int32"
"dstAddress": {
"items": {
"type": "string"
"description": "A IP address or a range of IP addresses.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."
"items": {
"type": "string"
"description": "A port or a range of ports."
"dstTunnelPort": {
"items": {
"type": "string"
"description": "Used for GTP tunnel based traffic rule."
"protocol": {
"items": {
"type": "string"
"description": "Specify the protocol of the traffic filter."
"qCI": {
"type": "integer",
"description": "Used to match all packets that have the same QCI.",
"contentEncoding": "int32"
"srcAddress": {
"items": {
"type": "string"
"description": "An IP address or a range of IP addresses.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."
"items": {
"type": "string"
"description": "A port or a range of ports."
},
"srcTunnelAddress": {
"items": {
"type": "string"
"description": "Used for GTP tunnel based traffic rule."
"srcTunnelPort": {
"items": {
"type": "string"
"description": "Used for GTP tunnel based traffic rule."
},
"tC": {
"type": "integer",
"description": "Used to match all IPv6 packets that have the same TC.",
"contentEncoding": "int32"
},
"tag": {
"items": {
"type": "string"
"description": "Used for tag based traffic rule."
},
"tgtTunnelAddress": {
"items": {
"type": "string"
"description": "Used for GTP tunnel based traffic rule."
},
"TrafficRuleDescriptor": {
"title": "TrafficRuleDescriptor",
"required": [
"action",
"filterType",
"priority",
"trafficFilter",
"trafficRuleId"
],
"type": "object",
"properties": {
"action": {
"$ref": "#/components/schemas/Action"
},
"dstInterface": {
"maxItems": 2,
"items": {
"$ref": "#/components/schemas/InterfaceDescriptor"
},
"filterType": {
"$ref": "#/components/schemas/FilterType"
},
"priority": {
"type": "integer",
"description": "Priority of this traffic rule. If traffic rule conflicts, the one with higher priority take precedence.",
"contentEncoding": "int32"
},
"trafficFilter": {
"items": {
"$ref": "#/components/schemas/TrafficFilter"
},
"description": "The filter used to identify specific flow/packets that need to be handled by the MEC host."
},
"trafficRuleId": {
"type": "string",
"description": "Identifies the traffic rule."
},
"Action": {
"enum": [
"DROP",
"FORWARD_DECAPSULATED",
"FORWARD_AS_IS",
"PASSTHROUGH",
"DUPLICATED_DECAPSULATED",
"DUPLICATE_AS_IS"
],
"type": "string",
"description": "'Identifies the action of the MEC host data plane, when a packet matches the trafficFilter.'",
"examples": [
"DROP"
]
},
"FilterType": {
"enum": [
"FLOW",
"PACKET"
],
"type": "string",
"description": "Definition of filter type: per FLOW or PACKET",
"examples": [
"FLOW"
]
},
"TransportDependency": {
"title": "TransportDependency",
"required": [
"labels",
"serializers",
"transport"
],
"type": "object",
"properties": {
"labels": {
"items": {
"type": "string"
"description": "Set of labels that allow to define groups of transport bindings. The mechanism of the grouping is defined below this table."
"serializers": {
"minItems": 1,
"type": "array",
"items": {
"type": "string"
},
"description": "Information about the serializers in this transport binding, as defined in the SerializerTypes type in ETSI GS MEC 011 [i.4]. Support for at least one of the entries is required in conjunction with the transport."
"transport": {
"$ref": "#/components/schemas/TransportDescriptor"
}
}
},
"TransportDescriptor": {
"title": "TransportDescriptor",
"required": [
"protocol",
"security",
"type",
"version"
],
"type": "object",
"properties": {
"protocol": {
"type": "string",
"description": "The name of the protocol used. Shall be set to HTTP for a REST API."
"security": {
"type": "object",
"description": "See MEC011"
"version": {
"type": "string",
"description": "The version of the protocol used."
}
},
"TunnelInfo": {
"title": "TunnelInfo",
"required": [
"tunnelDstAddress",
"tunnelSrcAddress",
"tunnelType"
],
"type": "object",
"properties": {
"tunnelDstAddress": {
"type": "string",
"description": "Destination address of the tunnel."
"tunnelSpecificData": {
},
"tunnelSrcAddress": {
"type": "string",
"description": "Source address of the tunnel."
},
"tunnelType": {
"$ref": "#/components/schemas/TunnelType"
}
"TunnelType": {
"enum": [
"GTP-U",
"GRE"
],
"type": "string",
"description": "Type of tunnel.",
"examples": [
"GTP-U"
"OperationalState": {
"title": "OperationalState",
"enum": [
"DISABLED",
"ENABLED"
],
"type": "string",
"examples": [
"DISABLED"
]
"OperationState": {
"title": "OperationState",
"enum": [
"DISABLED",
"ENABLED"
],
"type": "string",
"examples": [
"DISABLED"
]