BwManagementAPI_TypesAndValues.ttcn 3.97 KB
Newer Older
YannGarcia's avatar
YannGarcia committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
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