module BwManagementAPI_TypesAndValues { // JSON import from JSON all; // LibCommon import from LibCommon_BasicTypesAndValues all; /** * @desc * @member type_ A URI reference according to IETF RFC 3986 that identifies the problem type * @member title A short, human-readable summary of the problem type * @member status The HTTP status code for this occurrence of the problem * @member detail A human-readable explanation specific to this occurrence of the problem * @member instance A URI reference that identifies the specific occurrence of the problem */ type record ProblemDetails { JSON.String type_, JSON.String title, UInt32 status, JSON.String detail, JSON.String instance } with { variant (type_) "name as 'type'"; } /** * @desc Information of bandwidth resource * @member */ type record BwInfo { TimeStamp timeStamp optional, AppInsId appInsId, RequestType requestType, SessionFilter sessionFilter optional, FixedBWPriority fixedBWPriority, FixedAllocation fixedAllocation, AllocationDirection allocationDirection } /** * @desc Conform to JSON merge patch format and processing rules specified IETF RFC 7396 [8], this type represents the attributes whose value are allowed to be updated with HTTP PATCH method in content format JSON * @member */ type record BwInfoDeltas { AppInsId appInsId, RequestType requestType, SessionFilter sessionFilter optional, FixedBWPriority fixedBWPriority, FixedAllocation fixedAllocation, AllocationDirection allocationDirection } /** * @desc * @member seconds The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC * @member nanoSeconds The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC */ type record TimeStamp { Seconds seconds, NanoSeconds nanoSeconds } /** * @desc Application instance identifier */ type JSON.String AppInsId; /** * @desc Numeric value (0 - 255) corresponding to specific type of consumer */ type enumerated RequestType { APPLICATION_SPECIFIC_BW_ALLOCATION, SESSION_SPECIFIC_BW_ALLOCATION } /** * @desc Session filtering criteria, applicable when requestType is set as SESSION_SPECIFIC_BW_ALLOCATION. Any filtering criteria shall define a single session only. In case multiple sessions match sessionFilter the request shall be rejected */ type record of SessionFilterItems SessionFilter; type record SessionFilterItems { SourceIp sourceIp, SourcePort sourcePort, DstAddress dstAddress, DstPort dstPort, Protocol protocol } /** * @desc Indicates the allocation priority when dealing with several applications or sessions in parallel. Values are not defined in the present document */ type enumerated FixedBWPriority { reserved } /** * @desc Size of requested fixed BW allocation in [bps] */ type JSON.String FixedAllocation; /** * @desc The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC */ type UInt32 Seconds; /** * @desc The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC */ type UInt32 NanoSeconds; /** * @desc The direction of the requested BW allocation */ type enumerated AllocationDirection { Downlink, Uplink, Symmetrical } /** * @desc Source address identity of session (including range) */ type JSON.String SourceIp; /** * @desc Source port identity of session */ type record of JSON.String SourcePort; /** * @desc Destination address identity of session (including range) */ type JSON.String DstAddress; /** * @desc Destination port identity of session */ type record of JSON.String DstPort; /** * @desc Protocol number */ type JSON.String Protocol; } with { encode "JSON" } // End of module BwManagementAPI_TypesAndValues