6.4 Nnrf_Bootstrapping Service API
29.5103GPP5G SystemNetwork function repository servicesRelease 18Stage 3TS
6.4.1 API URI
URIs of this API shall have the following root:
{nrfApiRoot}
where {nrfApiRoot} represents the concatenation of the "scheme" and "authority" components of the NRF, as defined in IETF RFC 3986 [17].
6.4.2 Usage of HTTP
6.4.2.1 General
HTTP/2, as defined in IETF RFC 7540 [9], 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].
HTTP messages and bodies this API shall comply with the OpenAPI [10] specification contained in Annex A.
6.4.2.2 HTTP standard headers
6.4.2.2.1 General
The mandatory standard HTTP headers as specified in clause 5.2.2.2 of 3GPP TS 29.500 [4] shall be supported.
6.4.2.2.2 Content type
The following content types shall be supported:
– The JSON format (IETF RFC 8259 [22]). The use of the JSON format shall be signalled by the content type "application/json". See also clause 5.4 of 3GPP TS 29.500 [4].
– The Problem Details JSON Object (IETF RFC 7807 [11]). The use of the Problem Details JSON object in a HTTP response body shall be signalled by the content type "application/problem+json".
– The 3GPP hypermedia format as defined in 3GPP TS 29.501 [5]. The use of the 3GPP hypermedia format in a HTTP response body shall be signalled by the content type "application/3gppHal+json".
6.4.2.2.3 Cache-Control
A "Cache-Control" header should be included in HTTP responses, as described in IETF RFC 7234 [20], clause 5.2. It shall contain a "max-age" value, indicating the amount of time in seconds after which the received response is considered stale.
6.4.2.2.4 ETag
An "ETag" (entity-tag) header should be included in HTTP responses, as described in IETF RFC 7232 [19], clause 2.3. It shall contain a server-generated strong validator, that allows further matching of this value (included in subsequent client requests) with a given resource representation stored in the server or in a cache.
6.4.2.2.5 If-None-Match
An NF Service Consumer should issue conditional GET requests towards the Nnrf_Bootstrapping service, by including an If-None-Match header in HTTP requests, as described in IETF RFC 7232 [19], clause 3.2, containing one or several entity tags received in previous responses for the same resource.
6.4.2.3 HTTP custom headers
6.4.2.3.1 General
In this release of this specification, no custom headers specific to the Nnrf_Bootstrapping Service API are defined. For 3GPP specific HTTP custom headers used across all service-based interfaces, see clause 5.2.3 of 3GPP TS 29.500 [4].
6.4.3 Resources
6.4.3.1 Overview
The structure of the Resource URIs of the Nnrf_Bootstrapping service is shown in figure 6.4.3.1-1.
Figure 6.4.3.1-1: Resource URI structure of the Nnrf_Bootstrapping API
Table 6.4.3.1-1 provides an overview of the resources and applicable HTTP methods.
Table 6.4.3.1-1: Resources and methods overview
Resource name |
Resource URI |
HTTP method or custom operation |
Description |
Bootstrapping (Document) |
{nrfApiRoot}/bootstrapping |
GET |
Retrieve a collection of links pointing to other services exposed by NRF. |
6.4.3.2 Resource: Bootstrapping (Document)
6.4.3.2.1 Description
This resource represents a collection of links pointing to other services exposed by NRF.
This resource is modelled as the Document resource archetype (see clause C.3 of 3GPP TS 29.501 [5]).
6.4.3.2.2 Resource Definition
Resource URI: {nrfApiRoot}/bootstrapping
This resource shall support the resource URI variables defined in table 6.4.3.2.2-1.
Table 6.4.3.2.2-1: Resource URI variables for this resource
Name |
Definition |
nrfApiRoot |
See clause 6.4.1 |
6.4.3.2.3 Resource Standard Methods
6.4.3.2.3.1 GET
This method retrieves a list of links pointing to other services exposed by NRF. This method shall support the URI query parameters specified in table 6.4.3.2.3.1-1.
Table 6.4.3.2.3.1-1: URI query parameters supported by the GET method on this resource
Name |
Data type |
P |
Cardinality |
Description |
n/a |
n/a |
This method shall support the request data structures specified in table 6.4.3.2.3.1-2 and the response data structures and response codes specified in table 6.4.3.2.3.1-3.
Table 6.4.3.2.3.1-2: Data structures supported by the GET Request Body on this resource
Data type |
P |
Cardinality |
Description |
n/a |
Table 6.4.3.2.3.1-3: Data structures supported by the GET Response Body on this resource
Data type |
P |
Cardinality |
Response codes |
Description |
BootstrappingInfo |
M |
1 |
200 OK |
The response body contains a "_links" object containing the URI of each service exposed by the NRF. The response may also contain the status of the NRF and the features supported by each NRF service. |
NOTE: The mandatory HTTP error status codes for the GET method listed in Table 5.2.7.1-1 of 3GPP TS 29.500 [4] other than those specified in the table above also apply, with a ProblemDetails data type (see clause 5.2.7 of 3GPP TS 29.500 [4]). |
6.4.4 Custom Operations without associated resources
There are no custom operations defined without any associated resources for the Nnrf_Bootstrapping service in this release of the specification.
6.4.5 Notifications
There are no notifications defined for the Nnrf_Bootstrapping service in this release of the specification.
6.4.6 Data Model
6.4.6.1 General
This clause specifies the application data model supported by the API.
Table 6.4.6.1-1 specifies the data types defined for the Nnrf_Bootstrapping service-based interface protocol.
Table 6.4.6.1-1: Nnrf_Bootstrapping specific Data Types
Data type |
Clause defined |
Description |
BootstrappingInfo |
6.4.6.2.2 |
Information returned by NRF in the bootstrapping response message. |
Status |
6.4.6.3.2 |
Overal status of the NRF. |
Table 6.4.6.1-2 specifies data types re-used by the Nnrf_Bootstrapping service-based interface protocol from other specifications, including a reference to their respective specifications and when needed, a short description of their use within the Nnrf service-based interface.
Table 6.4.6.1-2: Nnrf_Bootstrapping re-used Data Types
Data type |
Reference |
Comments |
LinksValueSchema |
3GPP TS 29.571 [7] |
3GPP Hypermedia link |
ProblemDetails |
3GPP TS 29.571 [7] |
|
SupportedFeatures |
3GPP TS 29.571 [7] |
6.4.6.2 Structured data types
6.4.6.2.1 Introduction
This clause defines the structures to be used in resource representations.
6.4.6.2.2 Type: BootstrappingInfo
Table 6.4.6.2.2-1: Definition of type BootstrappingInfo
Attribute name |
Data type |
P |
Cardinality |
Description |
status |
Status |
O |
0..1 |
Status of the NRF (operative, non-operative, …) The NRF shall be considered as operative if this attribute is absent. |
_links |
map(LinksValueSchema) |
M |
1..N |
Map of LinksValueSchema objects, where the keys are the link relations, as described in Table 6.4.6.3.3.1-1, and the values are objects containing an "href" attribute, whose value is an absolute URI corresponding to each link relation. |
nrfFeatures |
map(SupportedFeatures) |
O |
1..N |
Map of features supported by the NRF, where the keys of the map are the NRF services (as defined in clause 6.1.6.3.11), and where the value indicates the features supported by the corresponding NRF services. When present, the NRF shall indicate all the features of all the services it supports. (NOTE) |
oauth2Required |
map(boolean) |
O |
1..N |
When present, this IE shall indicate whether the NRF requires Oauth2-based authorization for accessing its services. The key of the map shall be the name of an NRF service, e.g. "nnrf-nfm" or "nnrf-disc". The value of each entry of the map shall be encoded as follows: – true: OAuth2 based authorization is required. – false: OAuth2 based authorization is not required. The absence of this IE means that the NRF has not provided any indication about its usage of Oauth2 for authorization. |
nrfSetId |
NfSetId |
O |
0..1 |
NRF Set Id |
nrfInstanceId |
NfInstanceId |
O |
0..1 |
NRF Instance Id |
NOTE: The absence of the nrfFeatures attribute in the BootstrappingInfo shall not be interpreted as if the NRF does not support any feature. |
6.4.6.3 Simple data types and enumerations
6.4.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.4.6.3.2 Enumeration: Status
Table 6.4.6.3.2-1: Enumeration Status
Enumeration value |
Description |
"OPERATIVE" |
The NRF is operative |
"NON_OPERATIVE" |
The NRF is not operative |
6.4.6.3.3 Relation Types
6.4.6.3.3.1 General
This clause describes the possible relation types defined within NRF API. See clause 4.7.5.2 of 3GPP TS 29.501 [5] for the description of the relation types.
Table 6.4.6.3.3.1-1: supported registered relation types
Relation Name |
Description |
self |
The "href" attribute of the object associated to this relation type contains the URI of the same resource returned in the response body (i.e. the "bootstrapping" resource). |
manage |
The "href" attribute of the object associated to this relation type contains the URI of the resource used in the Nnrf_NFManagement API to register/deregister/update NF Instances profiles in the NRF (i.e. the "nf-instances" store resource). (NOTE) |
subscribe |
The "href" attribute of the object associated to this relation type contains the URI of the resource used in the Nnrf_NFManagement API to manage subscriptions to the NRF (i.e. the "subscriptions" collection resource). (NOTE) |
discover |
The "href" attribute of the object associated to this relation type contains the URI of the resource used in the Nnrf_NFDiscovery API (i.e. the "nf-instances" collection resource). |
authorize |
The "href" attribute of the object associated to this relation type contains the URI of the Oauth2 Access Token Request endpoint, used to request authorization to other APIs in the 5G Core Network. |
NOTE: The URIs of the "manage" and "subscribe" "href" attributes shall have the same apiRoot (i.e. authority and prefix) since these service operations belong to the same service. |
Annex A (normative):
OpenAPI specification