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].
The string shall contain a bitmask indicating supported features in hexadecimal representation:

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
supported

Feature n+2
supported

Feature n+1
supported

Feature n
supported

"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
a) a change item with op set to "REMOVE" and path pointing to the attribute to be removed, or
b) a change item with op set to "REPLACE" and path pointing to the object, and a newValue of the object i.e. without the attribute that has been removed.
It is up to sending nodes decision to select one of the available ways to express the modification and the receiving node shall support all possible ways.

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.
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.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.