5.2 Data Types for Generic Usage
29.5713GPP5G SystemCommon Data Types for Service Based InterfacesRelease 18Stage 3TS
5.2.1 Introduction
This clause defines common data types for generic usage.
5.2.1A Re-used Data Types
This clause specifies the re-used data types from other specifications.
Table 5.2.1A-1: Re-used Data Types
Data Type |
Reference |
Comments |
NFType |
3GPP TS 29.510 [29] |
|
ServiceName |
3GPP TS 29.510 [29] |
|
DataSetId |
3GPP TS 29.510 [29] |
|
PlmnSnssai |
3GPP TS 29.510 [29] |
|
GeographicArea |
3GPP TS 29.572 [43] |
|
CivicAddress |
3GPP TS 29.572 [43] |
5.2.2 Simple Data Types
This clause specifies common simple data types.
Table 5.2.2-1: Simple Data Types
Type Name |
Type Definition |
Description |
Binary |
string |
String with format "binary" as defined in OpenAPI Specification [3] |
BinaryRm |
string |
This data type is defined in the same way as the "Binary" data type, but with the OpenAPI "nullable: true" property. |
Bytes |
string |
String with format "byte" as defined in OpenAPI Specification [3], i.e, base64-encoded characters, |
BytesRm |
string |
This data type is defined in the same way as the "Bytes" data type, but with the OpenAPI "nullable: true" property. |
Date |
string |
String with format "date" as defined in OpenAPI Specification [3] |
DateRm |
string |
This data type is defined in the same way as the "Date" data type, but with the OpenAPI "nullable: true" property. |
DateTime |
string |
String with format "date-time" as defined in OpenAPI Specification [3] |
DateTimeRm |
string |
This data type is defined in the same way as the "DateTime" data type, but with the OpenAPI "nullable: true" property. |
DiameterIdentity |
Fqdn |
String containing a Diameter Identity (FQDN), according to clause 4.3 of IETF RFC 6733 [18]. DiameterIdentity is defined as a simple data type because Fqdn is also a simple data type (string). |
DiameterIdentityRm |
FqdnRm |
This data type is defined in the same way as the "DiameterIdentity" data type, but with the OpenAPI "nullable: true" property. DiameterIdentityRm is defined as a simple data type because FqdnRm is also a simple data type (either a string or null). |
Double |
number |
Number with format "double" as defined in OpenAPI Specification [3] |
DoubleRm |
number |
This data type is defined in the same way as the "Double" data type, but with the OpenAPI "nullable: true" property. |
DurationSec |
integer |
Unsigned integer identifying a period of time in units of seconds. |
DurationSecRm |
integer |
This data type is defined in the same way as the "DurationSec" data type, but with the OpenAPI "nullable: true" property. |
Float |
number |
Number with format "float" as defined in OpenAPI Specification [3] |
FloatRm |
number |
This data type is defined in the same way as the "Float" data type, but with the OpenAPI "nullable: true" property. |
Uint16 |
integer |
Integer where the allowed values correspond to the value range of an unsigned 16-bit integer, i.e. 0 to 65535. Minimum = 0. Maximum = 65535. |
Uint16Rm |
integer |
This data type is defined in the same way as the "Uint16" data type, but with the OpenAPI "nullable: true" property. |
Int32 |
integer |
Integer with format "int32" as defined in OpenAPI Specification [3] |
Int32Rm |
integer |
This data type is defined in the same way as the "Int32" data type, but with the OpenAPI "nullable: true" property. |
Int64 |
integer |
Integer with format "int64" as defined in OpenAPI Specification [3] |
Int64Rm |
integer |
This data type is defined in the same way as the "Int64" data type, but with the OpenAPI "nullable: true" property. |
Ipv4Addr |
string |
String identifying a IPv4 address formatted in the "dotted decimal" notation as defined in IETF RFC 1166 [4]. Pattern: ‘^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$’ |
Ipv4AddrRm |
string |
This data type is defined in the same way as the "Ipv4Addr" data type, but with the OpenAPI "nullable: true" property. |
Ipv4AddrMask |
string |
String identifying a IPv4 address mask formatted in the "dotted decimal" notation as defined in IETF RFC 1166 [4]. Pattern: ‘^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))$’ |
Ipv4AddrMaskRm |
string |
This data type is defined in the same way as the "Ipv4AddrMask" data type, but with the OpenAPI "nullable: true" property. |
Ipv6Addr |
string |
String identifying an IPv6 address formatted according to clause 4 of IETF RFC 5952 [5]. The mixed IPv4 IPv6 notation according to clause 5 of IETF RFC 5952 [5] shall not be used. Pattern: ‘^((:|(0?|([1-9a-f][0-9a-f]{0,3}))):)((0?|([1-9a-f][0-9a-f]{0,3})):){0,6}(:|(0?|([1-9a-f][0-9a-f]{0,3})))$’ and Pattern: ‘^((([^:]+:){7}([^:]+))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?))$’ |
Ipv6AddrRm |
string |
This data type is defined in the same way as the "Ipv6Addr" data type, but with the OpenAPI "nullable: true" property. |
Ipv6Prefix |
string |
String identifying an IPv6 address prefix formatted according to clause 4 of IETF RFC 5952 [5]. IPv6Prefix data type may contain an individual /128 IPv6 address. Pattern: ‘^((:|(0?|([1-9a-f][0-9a-f]{0,3}))):)((0?|([1-9a-f][0-9a-f]{0,3})):){0,6}(:|(0?|([1-9a-f][0-9a-f]{0,3})))(\/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))$’ and Pattern: ‘^((([^:]+:){7}([^:]+))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?))(\/.+)$’ |
Ipv6PrefixRm |
string |
This data type is defined in the same way as the "Ipv6Prefix" data type, but with the OpenAPI "nullable: true" property. |
MacAddr48 |
string |
String identifying a MAC address formatted in the hexadecimal notation according to clause 1.1 and clause 2.1 of IETF RFC 7042 [17]. Pattern: ‘^([0-9a-fA-F]{2})((-[0-9a-fA-F]{2}){5})$’ |
MacAddr48Rm |
string |
This data type is defined in the same way as the "MacAddr48" data type, but with the OpenAPI "nullable: true" property. |
SupportedFeatures |
string |
A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500 [25]. Each character in the string shall take a value of "0" to "9", "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. If the string contains a lower number of characters than there are defined features for an API, all features that would be represented by characters that are not present in the string are not supported. |
Uinteger |
integer |
Unsigned Integer, i.e. only value 0 and integers above 0 are permissible. Minimum = 0. |
UintegerRm |
integer |
This data type is defined in the same way as the "Uinteger" data type, but with the OpenAPI "nullable: true" property. |
Uint32 |
integer |
Integer where the allowed values correspond to the value range of an unsigned 32-bit integer, i.e. 0 to (2^32)-1. Minimum = 0. Maximum = 4294967295. |
Uint32Rm |
integer |
This data type is defined in the same way as the "Uint32" data type, but with the OpenAPI "nullable: true" property. |
Uint64 |
integer |
Integer where the allowed values correspond to the value range of an unsigned 64-bit integer, i.e. 0 to (2^64)-1. Minimum = 0. Maximum = 18446744073709551615. |
Uint64Rm |
integer |
This data type is defined in the same way as the "Uint64" data type, but with the OpenAPI "nullable: true" property. |
Uri |
string |
String providing an URI formatted according to IETF RFC 3986 [6]. |
UriRm |
string |
This data type is defined in the same way as the "Uri" data type, but with the OpenAPI "nullable: true" property. |
VarUeId |
string |
String represents the SUPI or GPSI. Pattern: "^(imsi-[0-9]{5,15}|nai-.+|msisdn-[0-9]{5,15}|extid-[^@]+@[^@]+|gci-.+|gli-.+|.+)$". |
VarUeIdRm |
string |
This data type is defined in the same way as the "VarUeId" data type, but with the OpenAPI "nullable: true" property. |
TimeZone |
string |
String with format "<time-numoffset>" optionally appended by "<daylightSavingTime>", where: – <time-numoffset> shall represent the time zone adjusted for daylight saving time and be encoded as time-numoffset as defined in clause 5.6 of IETF RFC 3339 [10]; – <daylightSavingTime> shall represent the adjustment that has been made and shall be encoded as "+1" or "+2" for a +1 or +2 hours adjustment. Example: "-08:00+1" (for 8 hours behind UTC, +1 hour adjustment for Daylight Saving Time). |
TimeZoneRm |
string |
This data type is defined in the same way as the "TimeZone" data type, but with the OpenAPI "nullable: true" property. |
StnSr |
string |
String representing the STN-SR as defined in clause 18.6 of 3GPP TS 23.003 [7]. |
StnSrRm |
string |
This data type is defined in the same way as the "StnSr" data type, but with the OpenAPI "nullable: true" property. |
CMsisdn |
string |
String representing the C-MSISDN as defined in clause 18.7 of 3GPP TS 23.003 [7]). Pattern: "^[0-9]{5,15}$". |
CMsisdnRm |
string |
This data type is defined in the same way as the "CMsisdn" data type, but with the OpenAPI "nullable: true" property. |
DayOfWeek |
integer |
Integer between and including 1 and 7 denoting a weekday. "1" shall indicate "Monday", and the subsequent weekdays shall be indicated with the next higher numbers. "7" shall indicate "Sunday". |
TimeOfDay |
string |
String with format "partial-time" or "full-time" as defined in clause 5.6 of IETF RFC 3339 [10]. Examples: "20:15:00", "20:15:00-08:00" (for 8 hours behind UTC). |
EmptyObject |
object |
Empty JSON object: { } It is defined with the keyword: "additionalProperties: false". |
Fqdn |
string |
Fully Qualified Domain Name Pattern: ‘^([0-9A-Za-z]([-0-9A-Za-z]{0,61}[0-9A-Za-z])?\.)+[A-Za-z]{2,63}\.?$’ minLength: 4 maxLength: 253 |
FqdnRm |
string |
This data type is defined in the same way as the "Fqdn" data type, but it also allows the null value. |
Table 5.2.2-2: Reused OpenAPI data types
Type Name |
Description |
boolean |
As defined in OpenAPI Specification [3] |
integer |
As defined in OpenAPI Specification [3] |
number |
As defined in OpenAPI Specification [3] |
string |
As defined in OpenAPI Specification [3] |
object |
As defined in OpenAPI Specification [3] |
array |
As defined in OpenAPI Specification [3] |
NOTE Data types defined in OpenAPI Specification [3] do not follow the UpperCamel convention for data types in 3GPP TS 29.501 [2] |
Table 5.2.2-3: Meaning of a Hexadecimal Character in SupportedFeatures Type
Character |
Feature n+3 |
Feature n+2 |
Feature n+1 |
Feature n |
"0" |
no |
no |
no |
no |
"1" |
no |
no |
no |
yes |
"2" |
no |
no |
yes |
no |
"3" |
no |
no |
yes |
yes |
"4" |
no |
yes |
no |
no |
"5" |
no |
yes |
no |
yes |
"6" |
no |
yes |
yes |
no |
"7" |
no |
yes |
yes |
yes |
"8" |
yes |
no |
no |
no |
"9" |
yes |
no |
no |
yes |
"A" |
yes |
no |
yes |
no |
"B" |
yes |
no |
yes |
yes |
"C" |
yes |
yes |
no |
no |
"D" |
yes |
yes |
no |
yes |
"E" |
yes |
yes |
yes |
no |
"F" |
yes |
yes |
yes |
yes |
NOTE 1 "n" shall be i * 4 + 1, where "i" is zero or a natural number, i.e permissible values of "n" are 1, 5, 9, … NOTE 2 In this table if a feature is not defined, it shall also be indicated with value "no". |
For example, if only the first feature defined in the feature list is set to 1, the corresponding SupportedFeatures attribute would have a hexadecimal character value of "1", or a string of hexadecimal characters with value of "001" (any amount of 0’s to the left of the 1 would result into an equivalent feature list). If we have 32 features defined, and only the last feature in a feature list is set to 1, the corresponding SupportedFeatures attribute would have a string of hexadecimal characters with value of "80000000"(see the description of the SupportedFeatures encoding in Table 5.2.2-1).
5.2.3 Enumerations
5.2.3.1 Enumeration: PatchOperation
Table 5.2.3.1-1: Enumeration PatchOperation
Enumeration value |
Description |
"add" |
Add operation as defined in IETF RFC 6902 [14]. |
"copy" |
Copy operation as defined in IETF RFC 6902 [14]. |
"move" |
Move operation as defined in IETF RFC 6902 [14]. |
"remove" |
Remove operation as defined in IETF RFC 6902 [14]. |
"replace" |
Replace operation as defined in IETF RFC 6902 [14]. |
"test" |
Test operation as defined in IETF RFC 6902 [14]. |
5.2.3.2 Enumeration: UriScheme
Table 5.2.3.2-1: Enumeration UriScheme
Enumeration value |
Description |
"http" |
HTTP URI scheme |
"https" |
HTTPS URI scheme |
5.2.3.3 Enumeration: ChangeType
Table 5.2.3.3-1: Enumeration ChangeType
Enumeration value |
Description |
"ADD" |
This value indicates new attribute has been added to the resourceThe "ADD" operation performs one of the following functions, depending upon what the target location references: -If the target location specifies an array index, a new value is inserted into the array at the specified index. -If the target location specifies an object member that does not already exist, a new member is added to the object. -If the target location specifies an object member that does exist, that member’s value is replaced. The operation object shall contain a "value" member whose content specifies the value to be added. For example: { "op": "ADD", "path": "/a/b/c", "value": [ "foo", "bar" ] } When the operation is applied, the target location shall reference one of: -The root of the target document – whereupon the specified value becomes the entire content of the target document. -A member to add to an existing object – whereupon the supplied value is added to that object at the indicated location. If the member already exists, it is replaced by the specified value. -An element to add to an existing array – whereupon the supplied value is added to the array at the indicated location. Any elements at or above the specified index are shifted one position to the right. The specified index shall not be greater than the number of elements in the array. If the "-" character is used to index the end of the array (see IETF RFC 6901 [12]), this has the effect of appending the value to the array. Because this operation is designed to add to existing objects and arrays, its target location will often not exist. Although the pointer’s error handling algorithm will thus be invoked, this specification defines the error handling behavior for "ADD" pointers to ignore that error and add the value as specified. However, the object itself or an array containing it does need to exist, and it remains an error for that not to be the case. For example, an "ADD" with a target location of "/a/b" starting with this document: { "a": { "foo": 1 } } is not an error, because "a" exists, and "b" will be added to its value. It is an error in this document: { "q": { "bar": 2 } } because "a" does not exist. |
"MOVE" |
This value indicates existing attribute has been moved to a different path in the resource. The "MOVE" operation removes the value at a specified location and adds it to the target location. The operation object shall contain a "from" member, which is a string containing a JSON Pointer value that references the location in the target document to move the value from. The "from" location shall exist for the operation to be successful. For example: { "op": "MOVE", "from": "/a/b/c", "path": "/a/b/d" } This operation is functionally identical to a "REMOVE" operation on the "from" location, followed immediately by an "ADD" operation at the target location with the value that was just removed. The "from" location shall not be a proper prefix of the "path" location; i.e., a location cannot be moved into one of its children. |
"REMOVE" |
This value indicates existing attribute has been deleted from the resource. The "REMOVE" operation removes the value at the target location. The target location shall exist for the operation to be successful. For example: { "op": "REMOVE", "path": "/a/b/c" } If removing an element from an array, any elements above the specified index are shifted one position to the left. |
"REPLACE" |
This value indicates existing attribute has been updated with new value. The "REPLACE" operation replaces the value at the target location with a new value. The operation object shall contain a "value" member whose content specifies the replacement value. The target location shall exist for the operation to be successful. For example: { "op": "REPLACE", "path": "/a/b/c", "value": 42 } This operation is functionally identical to a "REMOVE" operation for a value, followed immediately by an "ADD" operation at the same location with the replacement value. |
5.2.3.4 Enumeration: HttpMethod
Table 5.2.3.4-1: Enumeration HttpMethod
Enumeration value |
Description |
"GET" |
HTTP GET method. |
"POST" |
HTTP POST method. |
"PUT" |
HTTP PUT method. |
"DELETE" |
HTTP DELETE method. |
"PATCH" |
HTTP PATCH method. |
"OPTIONS" |
HTTP OPTIONS method. |
"HEAD" |
HTTP HEAD method. |
"CONNECT" |
HTTP CONNECT method. |
"TRACE" |
HTTP TRACE method. |
5.2.3.5 Enumeration: NullValue
Table 5.2.3.5-1: Enumeration NullValue
Enumeration value |
Description |
null |
JSON’s null value |
5.2.3.6 Enumeration: MatchingOperator
Table 5.2.3.6-1: Enumeration MatchingOperator
Enumeration value |
Description |
Applicability |
FULL_MATCH |
Indicates a full match between the string against which the matching applies and the provided matching string. |
|
MATCH_ALL |
Indicate a match for any string |
|
STARTS_WITH |
Indicates a match when the string against which the matching applies starts with the provided matching string (e.g. the string "smartmeter-01.company.com" matches the matching string "smartmeter-"). |
|
NOT_START_WITH |
Indicates a match when the string against which the matching applies does not start with the provided matching string (e.g. the string "smartmeter-01.company.com" matches the matching string "metersmart-"). |
|
ENDS_WITH |
Indicates a match when the string against which the matching applies ends with the matching string (e.g. the string "somehost.company.com" matches the matching string "company.com"). |
|
NOT_END_WITH |
Indicates a match when the string against which the matching applies does not end with the matching string (e.g. the string "somehost.company.com" matches the matching string "company.se"). |
|
CONTAINS |
Indicates a match when the string against which the matching applies contains the matching string (e.g. the string "media.news.com" matches the matching string "media"). |
|
NOT_CONTAIN |
Indicates a match when the string against which the matching applies does not contain the matching string (e.g. the string "media.news.com" matches the matching string "aidem"). |
5.2.4 Structured Data Types
5.2.4.1 Type: ProblemDetails
Table 5.2.4.1-1: Definition of type ProblemDetails
Attribute name |
Data type |
P |
Cardinality |
Description |
type |
Uri |
O |
0..1 |
A URI reference according to IETF RFC 3986 [6] that identifies the problem type. |
title |
string |
O |
0..1 |
A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem. |
status |
integer |
O |
0..1 |
The HTTP status code for this occurrence of the problem. |
detail |
string |
O |
0..1 |
A human-readable explanation specific to this occurrence of the problem. |
instance |
Uri |
O |
0..1 |
A URI reference that identifies the specific occurrence of the problem. |
cause |
string |
C |
0..1 |
A machine-readable application error cause specific to this occurrence of the problem This IE should be present and provide application-related error information, if available. |
invalidParams |
array(InvalidParam) |
O |
1..N |
Description of invalid parameters, for a request rejected due to invalid parameters. |
supportedFeatures |
SupportedFeatures |
C |
0..1 |
Features supported by the NF Service Producer. This IE shall be present when rejecting a request due to an unsupported query parameter, if at least one feature is defined for the corresponding service in the version of the specification that the NF Service Producer implements (see clause 5.2.9 of 3GPP TS 29.500 [25]). When present, this IE shall indicate the features supported by the NF Service Producer; if the NF Service Producer supports no features, this IE shall be set to the character "0". |
accessTokenError |
AccessTokenErr |
C |
0..1 |
This IE should be present if an SCP request to get an access token was rejected by the NRF. When present, it should contain the Access Token Error payload received from the NRF. |
accessTokenRequest |
AccessTokenReq |
O |
0..1 |
This IE may be present if an SCP request to get an access token was rejected by the NRF. When present, it shall contain the Access Token Request that was sent by the SCP. |
nrfId |
Fqdn |
O |
0..1 |
This IE may be present if an SCP request to get an access token was rejected by the NRF. When present, it shall contain the Identity (i.e. FQDN) of the NRF that rejected the access token request. |
supportedApiVersions |
array(string) |
O |
1..N |
This IE may be present if the SCP did not find NF service producers matching the MAJOR API version of the incoming service request and MAJOR API version(s) are known to be supported by NF service producers for the corresponding service. When present, it shall contain MAJOR API version(s) known to be supported by NF service producers for the corresponding service. The API version shall be encoded as the apiVersionInUri defined in NFServiceVersion defined in 3GPP TS 29.510 [29] (e.g. "v1"). |
NOTE 1: See IETF RFC 7807 [9] for detailed information and guidance for each attribute, and 3GPP TS 29.501 [2] for guidelines on error handling support by 5GC SBI APIs. NOTE 2: Additional attributes may be defined per API. |
5.2.4.2 Type: Link
Table 5.2.4.2-1: Definition of type link
Attribute name |
Data type |
P |
Cardinality |
Description |
href |
Uri |
M |
1 |
It contains the URI of the linked resource. |
5.2.4.3 Type PatchItem
Table 5.2.4.3-1: Definition of type PatchItem
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
op |
PatchOperation |
M |
1 |
This IE indicates the patch operation as defined in IETF RFC 6902 [14] to be performed on resource. |
|
path |
string |
M |
1 |
This IE contains a JSON pointer value (as defined in IETF RFC 6901 [12]) that references a location of a resource on which the patch operation shall be performed. |
|
from |
string |
C |
0..1 |
This IE indicates the path of the source JSON element (according to JSON Pointer syntax) being moved or copied to the location indicated by the "path" attribute. It shall be present if the patch operation is "move" or "copy". |
|
value |
Any type |
C |
0..1 |
This IE indicates a new value for the resource specified in the path attribute. It shall be present if the patch operation is "add", "replace" or "test". The data type of this attribute shall be the same as the type of the resource on which the patch operation shall be performed. The null value shall be allowed. |
5.2.4.4 Type: LinksValueSchema
Table 5.2.4.4-1: Definition of type LinksValueSchema as a list of mutually exclusive alternatives
Data type |
Cardinality |
Description |
array(Link) |
1..N |
Array of links |
Link |
1 |
link |
5.2.4.5 Type: SelfLink
Table 5.2.4.5-1: Definition of type SelfLink
Attribute name |
Data type |
P |
Cardinality |
Description |
self |
Link |
M |
1 |
It contains the URI of the linked resource. |
5.2.4.6 Type: InvalidParam
Table 5.2.4.6-1: Definition of type InvalidParam
Attribute name |
Data type |
P |
Cardinality |
Description |
param |
string |
M |
1 |
If the invalid parameter is an attribute in a JSON body, this IE shall contain the attribute’s name and shall be encoded as a JSON Pointer. If the invalid parameter is an HTTP header, this IE shall be formatted as the concatenation of the string "header: " plus the name of such header. If the invalid parameter is a query parameter, this IE shall be formatted as the concatenation of the string "query: " plus the name of such query parameter. If the invalid parameter is a variable part in the path of a resource URI, this IE shall contain the name of the variable, including the symbols "{" and "}" used in OpenAPI specification as the notation to represent variable path segments. |
reason |
string |
O |
0..1 |
A human-readable reason, e.g. "must be a positive integer". In cases involving failed operations in a PATCH request, the reason string should identify the operation that failed using the operation’s array index to assist in correlation of the invalid parameter with the failed operation, e.g." Replacement value invalid for attribute [failed operation index: 4]". |
5.2.4.7 Type: LinkRm
This data type is defined in the same way as the "Link" data type, but with the OpenAPI "nullable: true" property.
5.2.4.8 Type ChangeItem
Table 5.2.4.8-1: Definition of type ChangeItem
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
op |
ChangeType |
M |
1 |
This IE indicates the operation to be performed on the resource. |
|
path |
string |
M |
1 |
This IE contains a JSON pointer value (as defined in IETF RFC 6901 [12]) that references a target location within the resource on which the change has been applied. (See Note) |
|
from |
string |
C |
0..1 |
This IE indicates the path of the source JSON element (according to JSON Pointer syntax) being moved or copied to the location indicated by the "path" attribute. It shall be present if the "op" attribute is of value "MOVE". |
|
origValue |
Any type |
O |
0..1 |
This IE indicates the original value at the target location within the resource specified in the path attribute. This attribute only applies when the "op" attribute is of value "REMOVE", "REPLACE" or "MOVE" Based on the use case, this attribute may be included. |
|
newValue |
Any type |
C |
0..1 |
This IE indicates a new value at the target location within the resource specified in the path attribute. It shall be present if the "op" attribute is of value "ADD", "REPLACE". The data type of this attribute shall be the same as the type of the resource on which the change has happened. The null value shall be allowed. |
|
NOTE: As described in IETF RFC 6901 [12], the value "" (empty JSON string) is the JSON Pointer expression to represent "the whole JSON document"; therefore, when the attribute "path" takes value "" and attribute "op" takes values "ADD" or "REMOVE", this shall be interpreted as the creation or deletion respectively of the resource to which this "ChangeItem" refers to. |
5.2.4.9 Type NotifyItem
Table 5.2.4.9-1: Definition of type NotifyItem
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
resourceId |
Uri |
M |
1 |
This IE contains the URI of the resource which has been changed. |
|
changes |
array(ChangeItem) |
M |
1..N |
This IE contains the changes which have been applied on the resource identified by the resourceId attribute. See NOTE. |
|
NOTE: There may be more than one way to express a given modification of a resource’s representation. E.g. removing one attribute from an object can be done by |
5.2.4.10 Type: ComplexQuery
Table 5.2.4.10-1: Definition of type ComplexQuery as a list of mutually exclusive alternatives
Data type |
Cardinality |
Description |
Cnf |
1 |
A conjunctive normal form |
Dnf |
1 |
A disjunctive normal form |
The ComplexQuery data type is either a conjunctive normal form or a disjunctive normal form. The attribute names "cnfUnits" and "dnfUnits" (see clause 5.2.4.11 and clause 5.2.4.12) serve as discriminator.
5.2.4.11 Type: Cnf
Table 5.2.4.11-1: Definition of type Cnf
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
cnfUnits |
array(CnfUnit) |
M |
1..N |
During the processing of cnfUnits attribute, all the members in the array shall be interpreted as logically concatenated with logical "AND". |
5.2.4.12 Type: Dnf
Table 5.2.4.12-1: Definition of type Dnf
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
dnfUnits |
array(DnfUnit) |
M |
1..N |
During the processing of dnfUnits attribute, all the members in the array shall be interpreted as logically concatenated with logical "OR". |
5.2.4.13 Type: CnfUnit
Table 5.2.4.13-1: Definition of type CnfUnit
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
cnfUnit |
array(Atom) |
M |
1..N |
During the processing of cnfUnit attribute, all the members in the array shall be interpreted as logically concatenated with logical "OR". |
5.2.4.14 Type: DnfUnit
Table 5.2.4.14-1: Definition of type DnfUnit
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
dnfUnit |
array(Atom) |
M |
1..N |
During the processing of dnfUnit attribute, all the members in the array shall be interpreted as logically concatenated with logical "AND". |
5.2.4.15 Type: Atom
Table 5.2.4.15-1: Definition of type Atom
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
attr |
string |
M |
1 |
This attribute contains the name of a defined query parameter. |
|
value |
any type |
M |
1 |
This attribute contains the value of the query parameter as indicated by attr attribute. |
|
negative |
boolean |
O |
0..1 |
This attribute indicates whether the negative condition applies for the query condition. |
5.2.4.16 Void
5.2.4.17 Type: PatchResult
Table 5.2.4.17-1: Definition of type PatchResult
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
report |
array(ReportItem) |
M |
1..N |
The execution report contains an array of report items. Each report item indicates one failed modification. |
5.2.4.18 Type: ReportItem
Table 5.2.4.18-1: Definition of type ReportItem
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
path |
string |
M |
1 |
This attribute contains a JSON pointer value (as defined in IETF RFC 6901 [12]) that references a location of a resource to which the modification is subject. |
|
reason |
string |
O |
0..1 |
A human-readable reason providing details on the reported modification failure. |
5.2.4.19 Type: HalTemplate
Table 5.2.4.19-1: Definition of type HalTemplate
Attribute name |
Data type |
P |
Cardinality |
Description |
title |
string |
O |
0..1 |
A human-readable string that can be used to identify this template. |
method |
HttpMethod |
M |
1 |
The HTTP method that should be applied for the corresponding link. If the value is not understood, the value shall be treated as an HTTP GET. |
contentType |
string |
O |
0..1 |
The media type that should be used for the corresponding request. If the attribute is missing, or contains an unrecognized value, the client should act as if the contentType is set to "application/json". |
properties |
array(Property) |
O |
1..N |
The properties that should be included in the body of the corresponding request. If the contentType attribute is set to "application/json", then this attribute describes the attributes of the JSON object of the body. |
5.2.4.20 Type: Property
Table 5.2.4.20-1: Definition of type Property
Attribute name |
Data type |
P |
Cardinality |
Description |
name |
string |
M |
1 |
The name of the property. |
required |
boolean |
O |
0..1 |
Indicates whether the property is required: – true: required – false(default): not required |
regex |
string |
O |
0..1 |
A regular expression string to be applied to the value of the property. |
value |
string |
O |
0..1 |
The property value. When present, it shall be a valid JSON string. |
5.2.4.21 Type: RedirectResponse
Table 5.2.4.21-1: Definition of type RedirectResponse
Attribute name |
Data type |
P |
Cardinality |
Description |
cause |
string |
C |
0..1 |
A machine-readable cause string, specific to this occurrence of the redirection. If the redirection is initiated by an SCP towards another SCP, this IE shall be present and set to "SCP_REDIRECTION". If the redirection is initiated by an SEPP towards another SEPP, this IE shall be present and set to "SEPP_REDIRECTION". |
targetScp |
Uri |
O |
0..1 |
ApiRoot of the SCP towards which an HTTP request is redirected (see clause 6.10.9 of 3GPP TS 29.500 [25]). |
targetSepp |
Uri |
O |
0..1 |
ApiRoot of the SEPP towards which an HTTP request is redirected (see clause 6.10.9 of 3GPP TS 29.500 [25]). |
5.2.4.22 Type: TunnelAddress
Table 5.2.4.22-1: Definition of type TunnelAddress
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
ipv4Addr |
Ipv4Addr |
C |
0..1 |
IPv4 address (NOTE) |
|
Ipv6Addr |
Ipv6Addr |
C |
0..1 |
IPv6 address (NOTE) |
|
portNumber |
Uinteger |
M |
1 |
UDP Port |
|
NOTE: At least one of these IEs shall be present. |
5.2.4.23 Type: FqdnPatternMatchingRule
Table 5.2.4.23-1: Definition of type FqdnPatternMatchingRule
Attribute name |
Data type |
P |
Cardinality |
Description |
regex |
string |
C |
0..1 |
One FQDN pattern, defined as a regular expression according to the ECMA-262 dialect [44]. (NOTE) |
stringMatchingRule |
StringMatchingRule |
C |
0..1 |
One FQDN pattern, described as a string match rule. (NOTE) |
NOTE: When provisioning an FQDN pattern, the StringMatchingRule shall be preferred over regular expression and used whenever possible (i.e. if the pattern can be described by a string matching rule) to optimize the matching process and reduce the processing load, since the use of regular expressions can be more computing intensive than using string matching rule. Either the regex or the stringMatchingRule shall be present. |
EXAMPLE 1: A FQDN pattern described by a string matching rule matching all FQDNs with "smartmeter-{factoryID}.company.com" where "{factoryID}" can be any string
JSON: {"stringMatchingRule": {stringMatchingConditions:[{"matchingString": "smartmeter-","matchingOperator": "STARTS_WITH"},{"matchingString": ".company.com","matchingOperator": "ENDS_WITH"}]}}
EXAMPLE 2: A FQDN pattern described by a regular expression matching all FQDNs with "smartmeter-{factoryID}.company.com" where "{factoryID}" can be any string.
JSON: {"regex": "^smartmeter-.+\.company\.com$"}
5.2.4.24 Type: StringMatchingRule
Table 5.2.4.24-1: Definition of type StringMatchingRule
Attribute name |
Data type |
P |
Cardinality |
Description |
stringMatchingConditions |
array(StringMatchingCondition) |
M |
1..N |
Contains a list of conditions which shall be evaluated for string matching. |
NOTE: The conditions in the stringMatchingConditions array shall be evaluated as "and" logical relationship. |
5.2.4.25 Type: StringMatchingCondition
Table 5.2.4.25-1: Definition of type StringMatchingCondition
Attribute name |
Data type |
P |
Cardinality |
Description |
matchingString |
string |
C |
0..1 |
This IE shall be present to identify the string against which the matching is performed except when the matchingOperator is MATCH_ALL. |
matchingOperator |
MatchingOperator |
M |
1 |
Identifies the matching operation. |