6 API Definitions

29.5573GPP5G SystemApplication Function ProSe ServiceRelease 18Stage 3TS

6.1 Naf_ProSe Service API

6.1.1 Introduction

The Naf_ProSe shall use the Naf_ProSe API.

The API URI of the Naf_ProSe API shall be:

{apiRoot}/<apiName>/<apiVersion>

The request URIs used in HTTP requests from the NF service consumer towards the NF service producer shall have the Resource URI structure defined in clause 4.4.1 of 3GPP TS 29.501 [5], i.e.:

{apiRoot}/<apiName>/<apiVersion>/<apiSpecificResourceUriPart>

with the following components:

– The {apiRoot} shall be set as described in 3GPP TS 29.501 [5].

– The <apiName> shall be "naf-prose ".

– The <apiVersion> shall be "v1".

– The <apiSpecificResourceUriPart> shall be set as described in clause 6.1.3.

6.1.2 Usage of HTTP

6.1.2.1 General

HTTP/2, IETF RFC 7540 [11], shall be used as specified in clause 5 of 3GPP TS 29.500 [4].

HTTP/2 shall be transported as specified in clause 5.3 of 3GPP TS 29.500 [4].

The OpenAPI [6] specification of HTTP messages and content bodies for the naf-prose API is contained in Annex A.2.

6.1.2.2 HTTP standard headers

6.1.2.2.1 General

See clause 5.2.2 of 3GPP TS 29.500 [4] for the usage of HTTP standard headers.

6.1.2.2.2 Content type

JSON, IETF RFC 8259 [12], shall be used as content type of the HTTP bodies specified in the present specification as specified in clause 5.4 of 3GPP TS 29.500 [4]. The use of the JSON format shall be signalled by the content type "application/json".

"Problem Details" JSON object shall be used to indicate additional details of the error in a HTTP response body and shall be signalled by the content type "application/problem+json", as defined in IETF RFC 7807 [13].

JSON Merge Patch, as defined in IETF RFC 7396 [17], signalled by the content type "application/merge-patch+json".

6.1.2.3 HTTP custom headers

The mandatory HTTP custom header fields specified in clause 5.2.3.2 of 3GPP TS 29.500 [4] shall be supported, and the optional HTTP custom header fields specified in clause 5.2.3.3 of 3GPP TS 29.500 [4] may be supported.

6.1.3 Resources

In this release of this specification, no resource is defined for the Naf_ProSe Service.

6.1.4 Custom Operations without associated resources

6.1.4.1 Overview

The structure of the custom operation URIs of the Naf_ProSe Service is shown in figure 6.1.4.1-1.

Figure 6.1.4.1-1: Resource URI structure of the Naf_ProSe API

Table 6.1.4.1-1 provides an overview of the custom operations and applicable HTTP methods.

Table 6.1.4.1-1: Custom operations

Custom operation URI

Mapped HTTP method

Description

/authorize-discovery

POST

Obtain the authorization of Discovery Request from the 5G DDNMF for a UE.

/authorization-update-result

POST

Inform the AF of the result of the revocation request to update authorization information

6.1.4.2 Operation: authorize-discovery

6.1.4.2.1 Description

This clause represents the custom operation and what it is used for, and the custom operation URI.

6.1.4.2.2 Operation Definition

This operation shall support request data structures specified in table 6.1.4.2.2-1 and response data structures specified in table 6.1.4.2.2-2.

Table 6.1.4.2.2-1: Data structures supported by the POST Request Body on this resource

Data type

P

Cardinality

Description

AuthDisReqData

M

1

Contains the request data to obtain the authorization for a UE of a 5G ProSe Discovery Request.

Table 6.1.4.2.2-2: Data structures supported by the POST Response Body on this resource

Data type

P

Cardinality

Response

codes

Description

AuthDisResData

M

1

200 OK

Contains the response data for the authorization of a 5G ProSe Direct Discovery Request for a UE.

N/A

307 Temporary Redirect

Temporary redirection. The response shall include a Location header field containing a different URI. The URI shall be an alternative URI of the resource located on an alternative AF.

N/A

308 Permanent Redirect

Permanent redirection. The response shall include a Location header field containing a different URI. The URI shall be an alternative URI of the resource located on an alternative AF.

ProblemDetails

O

0..1

403 Forbidden

(NOTE 2)

NOTE 1: The mandatory HTTP error status code for the POST method listed in table 5.2.7.1-1 of 3GPP TS 29.500 [4] also apply.

NOTE 2: Failure cases are described in clause 6.1.7.3.

Table 6.1.4.2.2-3: Headers supported by the 307 Response Code on this resource

Name

Data type

P

Cardinality

Description

Location

string

M

1

An alternative URI representing the end point of an alternative AF.

Table 6.1.4.2.2-4: Headers supported by the 308 Response Code on this resource

Name

Data type

P

Cardinality

Description

Location

string

M

1

An alternative URI representing the end point of an alternative AF.

6.1.4.3 Operation: authorization-update-result

6.1.4.3.1 Description

This clause represents the custom operation and what it is used for, and the custom operation URI.

6.1.4.3.2 Operation Definition

This operation shall support request data structures specified in table 6.1.4.3.2-1 and response data structures specified in table 6.1.4.3.2-2.

Table 6.1.4.3.2-1: Data structures supported by the POST Request Body on this resource

Data type

P

Cardinality

Description

AuthUpdateData

M

1

Contains the result of the revocation request to update authorization information for Restricted ProSe Direct Discovery.

Table 6.1.4.3.2-2: Data structures supported by the POST Response Body on this resource

Data type

P

Cardinality

Response

codes

Description

n/a

204 No Content

This case represents successful report of discovery authorization update result.

N/A

307 Temporary Redirect

Temporary redirection. The response shall include a Location header field containing a different URI. The URI shall be an alternative URI of the resource located on an alternative AF.

N/A

308 Permanent Redirect

Permanent redirection. The response shall include a Location header field containing a different URI. The URI shall be an alternative URI of the resource located on an alternative AF.

ProblemDetails

O

0..1

403 Forbidden

(NOTE 2)

NOTE 1: The mandatory HTTP error status code for the POST method listed in table 5.2.7.1-1 of 3GPP TS 29.500 [4] also apply.

NOTE 2: Failure cases are described in clause 6.1.7.3.

Table 6.1.4.3.2-3: Headers supported by the 307 Response Code on this resource

Name

Data type

P

Cardinality

Description

Location

string

M

1

An alternative URI representing the end point of an alternative AF.

Table 6.1.4.3.2-4: Headers supported by the 308 Response Code on this resource

Name

Data type

P

Cardinality

Description

Location

string

M

1

An alternative URI representing the end point of an alternative AF.

6.1.5 Notifications

6.1.5.1 General

Table 6.1.5.1-1 provides an overview of the notification operation and applicable HTTP method.

Table 6.1.5.1-1: Notifications overview

Notification

Callback URI

HTTP method

Description

DiscoveryAuthorizationUpdateNotify

{authUpdateCallbackUri}

POST

Update the authorization information to revoke discovery permissions related to some other users in the NF service consumer (e.g. 5G DDNMF).

6.1.5.2 DiscoveryAuthorizationUpdateNotify

6.1.5.2.1 Description

The DiscoveryAuthorizationUpdateNotify service operation is used to update the authorization information to revoke discovery permissions related to some other users in the NF service consumer (e.g. 5G DDNMF).

6.1.5.2.2 Notification Definition

Call-back URI: {authUpdateCallbackUri}

See clause 5.2.2.2.1 for the description of how the AF obtains the Call-back URI of the NF service consumer.

6.1.5.2.3 Notification Standard Methods
6.1.5.2.3.1 POST

This method sends a discovery authorization update notification to the NF service consumer.

This method shall support the request and response data structures and response codes specified in table 6.1.5.2.3.1-1 and table 6.1.5.2.3.1-2.

Table 6.1.5.2.3.1-1: Data structures supported by the POST Request Body

Data type

P

Cardinality

Description

AuthUpdateData

M

1

Input parameters to the "DiscoveryAuthorizationUpdateNotify" service operation, including the updated authorization information for Restricted ProSe Direct Discovery.

Table 6.1.5.2.3.1-2: Data structures supported by the POST Response Body

Data type

P

Cardinality

Response

codes

Description

n/a

204 No Content

This case represents successful notification of the event.

N/A

307 Temporary Redirect

Temporary redirection. The response shall include a Location header field containing a different URI. The URI shall be an alternative URI of the resource located on an alternative AF.

N/A

308 Permanent Redirect

Permanent redirection. The response shall include a Location header field containing a different URI. The URI shall be an alternative URI of the resource located on an alternative AF.

ProblemDetails

O

0..1

403 Forbidden

(NOTE 2)

NOTE 1: The mandatory HTTP error status code for the POST method listed in table 5.2.7.1-1 of 3GPP TS 29.500 [4] also apply.

NOTE 2: Failure cases are described in clause 6.1.7.3.

Table 6.1.5.2.3-3: Headers supported by the 307 Response Code on this resource

Name

Data type

P

Cardinality

Description

Location

string

M

1

An alternative URI representing the end point of an alternative AF.

Table 6.1.5.2.3-4: Headers supported by the 308 Response Code on this resource

Name

Data type

P

Cardinality

Description

Location

string

M

1

An alternative URI representing the end point of an alternative AF.

6.1.6 Data Model

6.1.6.1 General

This clause specifies the application data model supported by the Naf_ProSe API.

Table 6.1.6.1-1 specifies the data types defined for the Naf_ProSe service based interface.

Table 6.1.6.1-1: Naf_ProSe specific Data Types

Data type

Clause defined

Description

Applicability

AuthDisReqData

6.1.6.2.2

Represents Data used to request the authorization for a UE of 5G ProSe Direct Discovery Request.

AuthDisResData

6.1.6.2.3

Represents the obtained authorization Data for a UE of 5G ProSe Direct Discovery Request.

TargetData

6.1.6.2.4

Represents a combination of Target PDUID – Target RPAUID – Metadata Indicator.

AllowedSuffixNum

6.1.6.3.2

Represents the allowed number of suffixes.

AppLevelContainer

6.1.6.3.2

Represents an Application Layer Container.

MetadataIndic

6.1.6.3.5

Contains Metadata Indicator.

AuthRequestType

6.1.6.3.3

Represents the authorization request type.

AuthResponseType

6.1.6.3.4

Represents the authorization response type.

ProSeRestrictedMask

6.1.6.3.2

Represents a Prose Restricted Mask.

AuthUpdateData

6.1.6.2.5

Represents the updated authorization information for Restricted ProSe Direct Discovery.

BannedAuthData

6.1.6.2.6

Represents a set of Banned RPAUID – Banned PDUID that are no longer allowed to discover the ProSe Restricted Code corresponding to the user’s RPAUID for the Application ID associated with that AF.

RevocationResult

6.1.6.3.6

Represents the revocation result of a set of Banned RPAUID – Banned PDUID for Restricted ProSe Direct Discovery.

Table 6.1.6.1-2 specifies data types re-used by the Naf_ProSe service based interface from other specifications, including a reference to their respective specifications, and when needed, a short description of their use within the Naf_ProSe Service based interface.

Table 6.1.6.1-2: Naf_ProSe re-used Data Types

Data type

Reference

Comments

Applicability

ProseApplicationId

3GPP TS 29.555 [16]

A string representing the ProSe Application ID.

ProseApplicationCodeSuffixPool

3GPP TS 29.555 [16]

Contains a ProSe Application Code Suffix Pool.

Rpauid

3GPP TS 29.555 [16]

Represents a Restricted ProSe Application User ID.

Pduid

3GPP TS 29.555 [16]

Represents a ProSe Discovery UE ID.

ProseApplicationMask

3GPP TS 29.555 [16]

Represents a Mask for a ProSe Application Code Suffix corresponding to a ProSe Applicantation ID.

MetaData

3GPP TS 29.555 [16]

Contains Metadata.

RestrictedCodeSuffixPool

3GPP TS 29.555 [16]

Contains a ProSe Restricted Code Suffix pool.

Uri

3GPP TS 29.571 [18]

Contains a URI.

6.1.6.2 Structured data types

6.1.6.2.1 Introduction

This clause defines the structures to be used in resource representations.

6.1.6.2.2 Type: AuthDisReqData

Table 6.1.6.2.2-1: Definition of type AuthDisReqData

Attribute name

Data type

P

Cardinality

Description

Applicability

authRequestType

AuthRequestType

M

1

This attribute contains the authorization request type for 5G ProSe Direct Discovery.

proseAppId

array(ProseApplicationId)

O

0..N

This attribute contains the ProSe Application ID(s). (NOTE)

allowedSuffixNum

AllowedSuffixNum

O

0..1

This attribute contains the allowed number of suffixes.

appLevelContainer

AppLevelContainer

O

0..1

This attribute contains an application level container.

rpauid

Rpauid

O

0..1

This attribute contains the RPAUID.

targetRpauid

Rpauid

O

0..1

This attribute contains the Target RPAUID.

authUpdateCallbackUri

Uri

O

0..1

The call-back URI of the NF service consumer (i.e. 5G DDNMF) for implicit subscription to notification of DiscoveryAuthorizationUpdateNotify.

NOTE: If provided, at least one element shall be present in the attribute “proseAppId”.

6.1.6.2.3 Type: AuthDisResData

Table 6.1.6.2.3-1: Definition of type AuthDisResData

Attribute name

Data type

P

Cardinality

Description

Applicability

authResponseType

AuthResponseType

M

1

This attribute contains the authorization response type for 5G ProSe Direct Discovery.

proseAppCodeSuffixPool

ProseApplicationCodeSuffixPool

O

0..1

This attribute contains the ProSe Application Code Suffix Pool.

pduids

array(Pduid)

O

0..N

This attribute contains the PDUID(s) corresponding to the provided RPAUID.

restrictedCodeSuffixPool

array(RestrictedCodeSuffixPool)

O

0..N

This attribute contains a ProSe Restricted Code Suffix pool. (NOTE)

proseAppMasks

array(ProseApplicationMask)

O

0..N

This attribute contains the mask(s) for the ProSe Application Code Suffix(es) corresponding to the ProSe Application ID.

proSeRestrictedMasks

array(ProSeRestrictedMask)

O

0..N

This attribute contains the mask(s) for the ProSe Restricted Code Suffix(es) corresponding to each of the Target RPAUID(s).

resAppLevelContainer

AppLevelContainer

O

0..1

This attribute contains the Application Level Container.

targetDataSet

array(TargetData)

O

0..N

This attribute contains N sets of Target PDUID – Target RPAUID – Metadata Indicator.

targetPduid

Pduid

O

0..1

This attribute contains the Target PDUID.

metaData

MetaData

O

0..1

This attribute contains metadata corresponding to the Target PDUID.

NOTE: If provided, exactly one element shall be present in the attribute.

6.1.6.2.4 Type: TargetData

Table 6.1.6.2.4-1: Definition of type TargetData

Attribute name

Data type

P

Cardinality

Description

Applicability

targetRpauid

Rpauid

M

1

This attribute contains the RPAUID.

pduid

Pduid

M

1

This attribute contains the Target PDUID.

metadataIndic

MetadataIndic

O

0..1

This attribute is optional and contains the Metadata Indicator to indicate whether there is metadata associated with the RPAUID, and if so, whether updates of metadata is allowed.

(NOTE)

NOTE: The default value of metadataIndic is "NO_METADATA" if this attribute is not supplied.

6.1.6.2.5 Type: AuthUpdateData

Table 6.1.6.2.5-1: Definition of type AuthUpdateData

Attribute name

Data type

P

Cardinality

Description

Applicability

targetRpauid

Rpauid

M

1

This attribute contains the RPAUID of the user that would like to revoke discovery permissions of some other users in the AF.

bannedAuthData

array(BannedAuthData)

M

1..N

The attribute contains N sets of Banned RPAUID – Banned PDUID that are no longer allowed to discover the ProSe Restricted Code corresponding to the user’s RPAUID for the Application ID associated with that AF.

6.1.6.2.6 Type: BannedAuthData

Table 6.1.6.2.6-1: Definition of type BannedAuthData

Attribute name

Data type

P

Cardinality

Description

Applicability

bannedRpauid

Rpauid

M

1

The attribute contains a RPAUID within a Banned RPAUID – Banned PDUID set that is no longer allowed to discover the ProSe Restricted Code corresponding to the user’s RPAUID for the Application ID associated with the AF.

bannedPduid

Pduid

M

1

The attribute contains the PDUID within a Banned RPAUID – Banned PDUID set that is no longer allowed to discover the ProSe Restricted Code corresponding to the user’s RPAUID for the Application ID associated with the AF.

revocationResult

RevocationResult

C

0..1

The attribute contains the revocation result of a set of Banned RPAUID – Banned PDUID for Restricted ProSe Direct Discovery, which is only conveyed in within a DiscoveryAuthorizationResultUpdate service operation

6.1.6.3 Simple data types and enumerations

6.1.6.3.1 Introduction

This clause defines simple data types and enumerations that can be referenced from data structures defined in the previous clauses.

6.1.6.3.2 Simple data types

The simple data types defined in table 6.1.6.3.2-1 shall be supported.

Table 6.1.6.3.2-1: Simple data types

Type Name

Type Definition

Description

Applicability

AllowedSuffixNum

integer

Contains the allowed number of suffixes.

AppLevelContainer

sting

Contains the Application Level Container.

ProSeRestrictedMask

string

Contains a ProSe Restricted Mask.

6.1.6.3.3 Enumeration: AuthRequestType

The enumeration AuthRequestType represents the Authorization Request Type. It shall comply with the provisions of table 6.1.6.3.3-1.

Table 6.1.6.3.3-1: Enumeration AuthRequestType

Enumeration value

Description

Applicability

OPEN_DISCOVERY_EXTENSION_ANNOUNCE

Indicates that the Authorization Request Type is "open discovery with application-controlled extension/announce".

RESTRICTED_DISCOVERY_ANNOUNCE

Indicates that the Authorization Request Type is "restricted discovery/announce".

RESTRICTED_DISCOVERY_EXTENSION_ANNOUNCE

Indicates that the Authorization Request Type is "restricted discovery with application-controlled extension/announce".

OPEN_DISCOVERY_EXTENSION_MONITOR

Indicates that the Authorization Request Type is "open discovery with application-controlled extension/monitor".

RESTRICTED_DISCOVERY_MONITOR

Indicates that the Authorization Request Type is "restricted discovery/monitor".

RESTRICTED_DISCOVERY_EXTENSION_MONITOR

Indicates that the Authorization Request Type is "restricted discovery with application-controlled extension/monitor".

RESTRICTED_DISCOVERY_PERMISSION

Indicates that the Authorization Request Type is "restricted discovery/permission".

RESTRICTED_DISCOVERY_RESPONSE

Indicates that the Authorization Request Type is "restricted discovery/response".

RESTRICTED_DISCOVERY_QUERY

Indicates that the Authorization Response Type is "restricted discovery/query".

RESTRICTED_DISCOVERY_MATCH

Indicates that the Authorization Response Type is "restricted discovery/match".

6.1.6.3.4 Enumeration: AuthResponseType

The enumeration AuthRequestType represents the Authorization Response Type. It shall comply with the provisions defined in table 6.1.6.3.4-1.

Table 6.1.6.3.4-1: Enumeration AuthResponseType

Enumeration value

Description

Applicability

OPEN_DISCOVERY_EXTENSION_ANNOUNCE_ACK

Indicates that the Authorization Response Type is "open discovery with application-controlled extension/announce ack".

RESTRICTED_DISCOVERY_ANNOUNCE_ACK

Indicates that the Authorization Response Type is "restricted discovery/announce ack".

RESTRICTED_DISCOVERY_EXTENSION_ANNOUNCE_ACK

Indicates that the Authorization Response Type is "restricted discovery with application-controlled extension/announce ack".

OPEN_DISCOVERY_EXTENSION_MONITOR_ACK

Indicates that the Authorization Response Type is "open discovery with application-controlled extension/monitor ack".

RESTRICTED_DISCOVERY_MONITOR_ACK

Indicates that the Authorization Response Type is "restricted discovery/monitor ack".

RESTRICTED_DISCOVERY_EXTENSION_MONITOR_ACK

Indicates that the Authorization Response Type is "restricted discovery with application-controlled extension/monito ack".

RESTRICTED_DISCOVERY_PERMISSION_ACK

Indicates that the Authorization Response Type is "restricted discovery /permission ack".

RESTRICTED_DISCOVERY_RESPONSE_ACK

Indicates that the Authorization Response Type is "restricted discovery /response ack".

RESTRICTED_DISCOVERY_QUERY_ACK

Indicates that the Authorization Response Type is "restricted discovery /query ack".

RESTRICTED_DISCOVERY_MATCH_ACK

Indicates that the Authorization Response Type is "restricted discovery /match ack".

6.1.6.3.5 Enumeration: MetadataIndic

The enumeration MetadataIndic represents the possible options for metadata associated with a particular target RPAUID. It shall comply with the provisions of table 6.1.6.3.5-1.

Table 6.1.6.3.5-1: Enumeration MetadataIndic

Enumeration value

Description

Applicability

NO_METADATA

Indicates that there is no metadata associated with the target RPAUID.

METADATA_UPDATE_DISALLOWED

Indicates that there is metadata associated with the target RPAUID, but it is not allowed to update this metadata.

METADATA_UPDATE_ALLOWED

Indicates that there is metadata associated with the target RPAUID, and it is allowed to update this metadata.

6.1.6.3.6 Enumeration: RevocationResult

The enumeration RevocationResult represents the revocation result of a set of Banned RPAUID – Banned PDUID for Restricted ProSe Direct Discovery. It shall comply with the provisions of table 6.1.6.3.6-1.

Table 6.1.6.3.6-1: Enumeration MetadataIndic

Enumeration value

Description

Applicability

REVOCATION_SUCCESSFUL

Indicates the successful revocation for a set of Banned RPAUID – Banned PDUID for Restricted ProSe Direct Discovery.

REVOCATION_NOT_SUCCESSFUL

Indicates that unsuccessful revocation for a set of Banned RPAUID – Banned PDUID for Restricted ProSe Direct Discovery.

6.1.6.4 Data types describing alternative data types or combinations of data types

None.

6.1.6.5 Binary data

None.

6.1.7 Error Handling

6.1.7.1 General

For the Naf_ProSe API, HTTP error responses shall be supported as specified in clause 4.8 of 3GPP TS 29.501 [5]. Protocol errors and application errors specified in table 5.2.7.2-1 of 3GPP TS 29.500 [4] shall be supported for an HTTP method if the corresponding HTTP status codes are specified as mandatory for that HTTP method in table 5.2.7.1-1 of 3GPP TS 29.500 [4].

In addition, the requirements in the following clauses are applicable for the Naf_ProSe API.

6.1.7.2 Protocol Errors

Protocol errors handling shall be supported as specified in clause 5.2.7 of 3GPP TS 29.500 [4].

6.1.7.3 Application Errors

The application errors defined for the Naf_ProSe service are listed in table 6.1.7.3-1.

Table 6.1.7.3-1: Application errors

Application Error

HTTP status code

Description

UNSPECIFIED

403 Forbidden

The request is rejected due to unspecified reasons.

6.1.8 Feature negotiation

The optional features in table 6.1.8-1 are defined for the Naf_ProSe API. They shall be negotiated using the extensibility mechanism defined in clause 6.6 of 3GPP TS 29.500 [4].

Table 6.1.8-1: Supported Features

Feature number

Feature Name

Description

6.1.9 Security

As indicated in 3GPP TS 33.501 [8] and 3GPP TS 29.500 [4], the access to the Naf_ProSe API may be authorized by means of the OAuth2 protocol (see IETF RFC 6749 [9]), based on local configuration, using the "Client Credentials" authorization grant, where the NRF (see 3GPP TS 29.510 [10]) plays the role of the authorization server.

If OAuth2 is used, an NF service consumer, prior to consuming services offered by the Naf_ProSe API, shall obtain a "token" from the authorization server, by invoking the Access Token Request service, as described in 3GPP TS 29.510 [10], clause 5.4.2.2.

NOTE: When multiple NRFs are deployed in a network, the NRF used as authorization server is the same NRF that the NF service consumer used for discovering the Naf_ProSe service.

The Naf_ProSe API defines a single scope "naf_prose" for OAuth2 authorization (as specified in 3GPP TS 33.501 [8]) for the entire service, and it does not define any additional scopes at resource or operation level.

Annex A (normative):
OpenAPI specification