definitions: ConfigPlatformForAppRequest: type: object properties: appServiceRequired: type: array items: $ref: '#/definitions/ServiceDependency' appServiceOptional: type: array items: $ref: '#/definitions/ServiceDependency' appServiceProduced: type: array items: $ref: '#/definitions/ServiceDescriptor' appFeatureRequired: type: array items: $ref: '#/definitions/FeatureDependency' appFeatureOptional: type: array items: $ref: '#/definitions/FeatureDependency' transportDependencies: type: array items: $ref: '#/definitions/TransportDependency' appTrafficRule: type: array items: $ref: '#/definitions/TrafficRuleDescriptor' appDNSRule: type: array items: $ref: '#/definitions/DNSRuleDescriptor' appLatency: $ref: '#/definitions/LatencyDescriptor' userContextTransferCapability: $ref: '#/definitions/UserContextTransferCapability' appNetworkPolicy: $ref: '#/definitions/AppNetworkPolicy' ServiceDependency: title: ServiceDependency required: - serName - version type: object properties: requestedPermissions: 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. The 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: type: array items: $ref: '#/definitions/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. TransportDependency: title: TransportDependency required: - labels - serializers - transport type: object properties: labels: type: array 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: 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: '#/definitions/TransportDescriptor' TransportDescriptor: title: TransportDescriptor required: - name - protocol - security - type - version type: object properties: name: type: string description: The name of this transport. description: type: string description: Human-readable description of this transport. 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 type: type: string version: type: string description: The version of the protocol used. implSpecificInfo: type: object description: Additional implementation specific details of the transport. ServiceDescriptor: title: ServiceDescriptor description: "'The ServiceDescriptor data type describes a MEC service produced by a service-providing MEC application.'" required: - serName - version - transport type: object 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: type: array items: $ref: '#/definitions/TransportsSupported' TransportsSupported: title: TransportsSupported type: object required: - serializers properties: transport: $ref: '#/definitions/TransportDescriptor' serializers: 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.'" 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. TrafficRuleDescriptor: title: TrafficRuleDescriptor required: - action - filterType - priority - trafficFilter - trafficRuleId type: object properties: action: $ref: '#/definitions/Action' dstInterface: maxItems: 2 type: array items: $ref: '#/definitions/InterfaceDescriptor' description: '' filterType: $ref: '#/definitions/FilterType' priority: type: integer description: Priority of this traffic rule within the range 0 to 255. If traffic rule conflicts, 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 trafficFilter: minItems: 1 type: array items: $ref: '#/definitions/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: title: 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 TrafficFilter: title: TrafficFilter type: object properties: dSCP: type: integer description: Used to match all IPv4 packets that have the same DSCP. contentEncoding: int32 dstAddress: type: array 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. dstPort: type: array items: type: string description: A port or a range of ports. dstTunnelPort: type: array items: type: string description: Used for GTP tunnel based traffic rule. protocol: type: array 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: type: array 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. srcPort: type: array items: type: string description: A port or a range of ports. srcTunnelAddress: type: array items: type: string description: Used for GTP tunnel based traffic rule. srcTunnelPort: type: array 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: type: array items: type: string description: Used for tag based traffic rule. tgtTunnelAddress: type: array items: type: string description: Used for GTP tunnel based traffic rule. uri: type: array items: type: string packetLabel: type: array items: type: string DNSRuleDescriptor: title: DNSRuleDescriptor required: - dnsRuleId - domainName - ipAddress - ipAddressType type: object properties: dnsRuleId: type: string description: Identifies the DNS Rule domainName: type: string description: FQDN of the DNS rule ipAddress: type: string description: IP address given by the DNS rule ipAddressType: $ref: '#/definitions/IpAddressType' ttl: type: integer description: Time-to-live value contentEncoding: int32 IpAddressType: title: IpAddressType enum: - IP_V6 - IP_V4 type: string description: Specifies the IP address type examples: - IP_V6 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 UserContextTransferCapability: title: UserContextTransferCapability required: - statefulApplication type: object properties: statefulApplication: type: boolean userContextTransferSupport: type: boolean AppNetworkPolicy: title: AppNetworkPolicy required: - steeredNetwork type: object properties: steeredNetwork: $ref: '#/definitions/AppNetworkPolicy.steeredNetwork' AppNetworkPolicy.steeredNetwork: title: AppNetworkPolicy.steeredNetwork type: object properties: cellularNetwork: type: boolean wi-fiNetwork: type: boolean fixedAccessNetwork: type: boolean InterfaceDescriptor: title: InterfaceDescriptor required: - interfaceType 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: '#/definitions/InterfaceType' srcMACAddress: type: string description: If the interface type is MAC, the source address identifies the MAC address of the interface. tunnelInfo: $ref: '#/definitions/TunnelInfo' InterfaceType: title: InterfaceType enum: - TUNNEL - MAC - IP type: string description: Type of interface. examples: - TUNNEL TunnelInfo: title: TunnelInfo required: - tunnelDstAddress - tunnelSrcAddress - tunnelType type: object properties: tunnelDstAddress: type: string description: Destination address of the tunnel. tunnelSpecificData: type: string tunnelSrcAddress: type: string description: Source address of the tunnel. tunnelType: $ref: '#/definitions/TunnelType' TunnelType: title: TunnelType enum: - GTP-U - GRE type: string description: Type of tunnel. examples: - GTP-U FilterType: title: FilterType enum: - FLOW - PACKET type: string description: 'Definition of filter type: per FLOW or PACKET' examples: - FLOW