5 Nchf_SpendingLimitControl Service API
29.5943GPP5G SystemSpending Limit Control ServiceStage 3TS
5.1 Introduction
The Nchf_SpendingLimitControl service shall use the Nchf_SpendingLimitControl API.
The API URI of the Nchf_SpendingLimitControl API shall be:
{apiRoot}/<apiName>/<apiVersion>
The request URIs used in HTTP requests from the NF service consumer towards the CHF 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 TS29.501 [5].
– The <apiName> shall be "nchf-spendinglimitcontrol".
– The <apiVersion> shall be "v1".
– The <apiSpecificResourceUriPart> shall be set as described in clause 5.3.
5.2 Usage of HTTP
5.2.1 General
HTTP/2, IETF RFC 7540 [8], shall be used as specified in clause 5.2 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 [9] specification of HTTP messages and content bodies for the Nchf_SpendingLimitControl service is contained in Annex A.
5.2.2 HTTP standard headers
5.2.2.1 General
See clause 5.2.2 of 3GPP TS 29.500 [4] for the usage of HTTP standard headers.
5.2.2.2 Content type
JSON, IETF RFC 8259 [10], 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].
5.2.3 HTTP custom headers
5.2.3.1 General
The Nchf_SpendingLimitControl API shall support HTTP custom header fields specified in clause 5.2.3.2 of 3GPP TS 29.500 [4] and may support HTTP custom header fields specified in clause 5.2.3.3 of 3GPP TS 29.500 [4].
In this Release of the specification, no specific custom headers are defined for the Nchf_SpendingLimitControl API.
5.3 Resources
5.3.1 Resource Structure
This clause describes the structure for the Resource URIs and the resources and methods used for the service.
Figure 5.3.1-1 shows the resource URI structure of the Nchf_SpendingLimitControl API.
Figure 5.3.1-1: Resource URI structure of the Nchf_SpendingLimitControl API
Table 5.3.1-1 provides an overview of the resources and applicable HTTP methods.
Table 5.3.1-1: Resources and methods overview
Resource name |
Resource URI |
HTTP method or custom operation |
Description |
Spending Limit Retrieval Subscriptions |
/subscriptions |
POST |
Creates a new individual spending limit retrieval subscription. |
Individual Spending Limit Retrieval Subscription |
/subscriptions/{subscriptionId} |
PUT |
Modifies an existing subscription (e.g. addition of additional policy counters). |
DELETE |
Deletes an individual subscription. |
5.3.2 Resource: Spending Limit Retrieval Subscriptions (Collection)
5.3.2.1 Description
This resource represents the collection of Nchf_SpendingLimitControl service subscriptions at a given CHF.
5.3.2.2 Resource definition
Resource URI: {apiRoot}/nchf-spendinglimitcontrol/v1/subscriptions
This resource shall support the resource URI variables defined in table 5.3.2.2-1.
Table 5.3.2.2-1: Resource URI variables for this resource
Name |
Data type |
Definition |
apiRoot |
string |
See clause 5.1 |
5.3.2.3 Resource Standard Methods
5.3.2.3.1 POST
This method shall support the URI query parameters specified in table 5.3.2.3.1-1.
Table 5.3.2.3.1-1: URI query parameters supported by the POST method on this resource
Name |
Data type |
P |
Cardinality |
Description |
n/a |
This method shall support the request data structures specified in table 5.3.2.3.1-2 and the response data structures and response codes specified in table 5.3.2.3.1-3.
Table 5.3.2.3.1-2: Data structures supported by the POST Request Body on this resource
Data type |
P |
Cardinality |
Description |
SpendingLimitContext |
M |
1 |
Contains the information for the creation of a new individual spending limit retrieval subscription. |
Table 5.3.2.3.1-3: Data structures supported by the POST Response Body on this resource
Data type |
P |
Cardinality |
Response codes |
Description |
SpendingLimitStatus |
M |
1 |
201 Created |
The spending limit subscription was created and spending limit reports are provided. |
ProblemDetails |
O |
0..1 |
400 Bad Request |
(NOTE 2) |
NOTE 1: In addition, the HTTP status codes which are specified as mandatory in table 5.2.7.1-1 of 3GPP TS 29.500 [4] for the POST method shall also apply. NOTE 2: In addition to protocol and application errors which are specified in clause 5.2.7.2 of 3GPP TS 29.500 [4], specific errors are described in clause 5.7. |
Table 5.3.2.3.1-4: Headers supported by the 201 Response Code on this resource
Name |
Data type |
P |
Cardinality |
Description |
Location |
string |
M |
1 |
Contains the URI of the newly created resource, according to the structure: {apiRoot}/nchf-spendinglimitcontrol/v1/subscriptions/{subscriptionId} |
5.3.2.4 Resource Custom Operations
None.
5.3.3 Resource: Individual Spending Limit Retrieval Subscription (Document)
5.3.3.1 Description
This resource represents an individual Nchf_SpendingLimitControl service subscription at a given CHF.
5.3.3.2 Resource definition
Resource URI: {apiRoot}/nchf-spendinglimitcontrol/v1/subscriptions/{subscriptionId}
This resource shall support the resource URI variables defined in table 5.3.3.2-1.
Table 5.3.3.2-1: Resource URI variables for this resource
Name |
Data type |
Definition |
apiRoot |
string |
See clause 5.1 |
subscriptionId |
string |
Identifies a subscription to the CHF spending limit control retrieval service. |
5.3.3.3 Resource Standard Methods
5.3.3.3.1 PUT
This method shall support the URI query parameters specified in table 5.3.3.3.1-1.
Table 5.3.3.3.1-1: URI query parameters supported by the PUT method on this resource
Name |
Data type |
P |
Cardinality |
Description |
n/a |
This method shall support the request data structures specified in table 5.3.3.3.1-2 and the response data structures and response codes specified in table 5.3.3.3.1-3.
Table 5.3.3.3.1-2: Data structures supported by the PUT Request Body on this resource
Data type |
P |
Cardinality |
Description |
SpendingLimitContext |
M |
1 |
Modifies the existing individual spending limit retrieval subscription. |
Table 5.3.3.3.1-3: Data structures supported by the PUT Response Body on this resource
Data type |
P |
Cardinality |
Response codes |
Description |
SpendingLimitStatus |
M |
1 |
200 OK |
Successful case: The individual spending limit subscription was modified and spending limit reports are provided. |
RedirectResponse |
O |
0..1 |
307 Temporary Redirect |
Temporary redirection, during Individual Spending Limit Retrieval Subscription modification. The response shall include a Location header field containing an alternative URI of the resource located in an alternative CHF (service) instance. Applicable if the feature "ES3XX" is supported. |
RedirectResponse |
O |
0..1 |
308 Permanent Redirect |
Permanent redirection, during Individual Spending Limit Retrieval Subscription modification. The response shall include a Location header field containing an alternative URI of the resource located in an alternative CHF (service) instance. Applicable if the feature "ES3XX" is supported. |
ProblemDetails |
O |
0..1 |
400 Bad Request |
(NOTE 2) |
NOTE 1: In addition, the HTTP status codes which are specified as mandatory in table 5.2.7.1-1 of 3GPP TS 29.500 [4] for the PUT method shall also apply. NOTE 2: In addition to protocol and application errors which are specified in clause 5.2.7.2 of 3GPP TS 29.500 [4], specific errors are described in clause 5.7. |
Table 5.3.3.3.1-4: Headers supported by the 307 Response Code on this resource
Name |
Data type |
P |
Cardinality |
Description |
Location |
string |
M |
1 |
An alternative URI of the resource located in an alternative CHF (service) instance. |
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target NF (service) instance towards which the request is redirected |
Table 5.3.3.3.1-5: Headers supported by the 308 Response Code on this resource
Name |
Data type |
P |
Cardinality |
Description |
Location |
string |
M |
1 |
An alternative URI of the resource located in an alternative CHF (service) instance. |
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target NF (service) instance towards which the request is redirected |
5.3.3.3.2 DELETE
This method shall support the URI query parameters specified in table 5.3.3.3.2-1.
Table 5.3.3.3.3-1: URI query parameters supported by the DELETE method on this resource
Name |
Data type |
P |
Cardinality |
Description |
n/a |
This method shall support the request data structures specified in table 5.3.3.3.2-2 and the response data structures and response codes specified in table 5.3.3.3.2-3.
Table 5.3.3.3.2-2: Data structures supported by the DELETE Request Body on this resource
Data type |
P |
Cardinality |
Description |
n/a |
Table 5.3.3.3.2-3: Data structures supported by the DELETE Response Body on this resource
Data type |
P |
Cardinality |
Response codes |
Description |
n/a |
204 No Content |
Successful case: The individual spending limit subscription matching the subscriptionId was deleted. |
||
RedirectResponse |
O |
0..1 |
307 Temporary Redirect |
Temporary redirection, during Individual Spending Limit Retrieval Subscription deletion. The response shall include a Location header field containing an alternative URI of the resource located in an alternative CHF (service) instance. Applicable if the feature "ES3XX" is supported. |
RedirectResponse |
O |
0..1 |
308 Permanent Redirect |
Permanent redirection, during Individual Spending Limit Retrieval Subscription deletion. The response shall include a Location header field containing an alternative URI of the resource located in an alternative CHF (service) instance. Applicable if the feature "ES3XX" is supported. |
NOTE: In addition, the HTTP status codes which are specified as mandatory in table 5.2.7.1-1 of 3GPP TS 29.500 [4] for the DELETE method shall also apply. |
Table 5.3.3.3.2-4: Headers supported by the 307 Response Code on this resource
Name |
Data type |
P |
Cardinality |
Description |
Location |
string |
M |
1 |
An alternative URI of the resource located in an alternative CHF (service) instance. |
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target NF (service) instance towards which the request is redirected |
Table 5.3.3.3.2-5: Headers supported by the 308 Response Code on this resource
Name |
Data type |
P |
Cardinality |
Description |
Location |
string |
M |
1 |
An alternative URI of the resource located in an alternative CHF (service) instance. |
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target NF (service) instance towards which the request is redirected |
5.4 Custom Operations without associated resources
None.
5.5 Notifications
5.5.1 General
Notification shall comply with clause 6.2 of 3GPP TS 29.500 [4] and clause 4.6.2.3 of 3GPP TS 29.501 [5].
Table 5.5.1-1: Notifications overview
Notification |
Callback URI |
HTTP method or custom operation |
Description (service operation) |
Spending limit notification |
{notifUri}/notify |
notify (POST) |
Counter Status changes notification. |
Subscription Termination |
{notifUri}/terminate |
terminate (POST) |
Indication of subscription termination. |
5.5.2 Spending limit notification
5.5.2.1 Description
The spending limit notification is used by the CHF to notify the change of the status of the subscribed policy counters for a subscriber and/or to provide one or more pending statuses for a subscribed policy counter together with the time they shall be applied.
5.5.2.2 Target URI
The Callback URI {notifUri}/notify shall be used with the callback URI variables defined in table 5.5.2.2-1.
Table 5.5.2.2-1: Callback URI variables
Name |
Data type |
Definition |
notifUri |
Uri |
The Notification Uri as assigned by the NF service consumer during the subscription service operation and described within the SpendingLimitContext data type (see table 5.6.2.2-1). |
5.5.2.3 Standard Methods
5.5.2.3.1 POST
This method shall support the URI query parameters specified in table 5.5.2.3.1-1.
Table 5.5.2.3.1-1: URI query parameters supported by the POST method on this resource
Name |
Data type |
P |
Cardinality |
Description |
n/a |
This method shall support the request data structures specified in table 5.5.2.3.1-2 and the response data structures and response codes specified in table 5.5.2.3.1-3.
Table 5.5.2.3.1-2: Data structures supported by the POST Request Body on this resource
Data type |
P |
Cardinality |
Description |
SpendingLimitStatus |
M |
1 |
Provides information about the statuses of policy counters. |
Table 5.5.2.3.1-3: Data structures supported by the POST Response Body on this resource
Data type |
P |
Cardinality |
Response codes |
Description |
n/a |
204 No Content |
The receipt of the notification is acknowledged. |
||
RedirectResponse |
O |
0..1 |
307 Temporary Redirect |
Temporary redirection, during Spending limit report. The response shall include a Location header field containing an alternative URI representing the end point of an alternative NF consumer (service) instance where the notification should be sent. Applicable if the feature "ES3XX" is supported. |
RedirectResponse |
O |
0..1 |
308 Permanent Redirect |
Permanent redirection, during Spending limit report. The response shall include a Location header field containing an alternative URI representing the end point of an alternative NF consumer (service) instance where the notification should be sent. Applicable if the feature "ES3XX" is supported. |
NOTE: In addition, the HTTP status codes which are specified as mandatory in table 5.2.7.1-1 of 3GPP TS 29.500 [4] for the POST method shall also apply. |
Table 5.3.3.3.2-4: 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 NF consumer (service) instance towards which the notification should be redirected. |
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target NF (service) instance towards which the notification request is redirected |
Table 5.3.3.3.2-5: 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 NF consumer (service) instance towards which the notification should be redirected. |
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target NF (service) instance towards which the notification request is redirected |
5.5.3 Subscription Termination
5.5.3.1 Description
The Subscription Termination request is used by the CHF to request the NF service consumer the termination of the subscription to policy counter status changes.
5.5.3.2 Target URI
The Callback URI {notifUri}/terminate shall be used with the callback URI variables defined in table 5.5.3.2-1.
Table 5.5.3.2-1: Callback URI variables
Name |
Data type |
Definition |
notifUri |
Uri |
The Notification Uri as assigned by the NF service consumer during the subscription service operation and described within the SpendingLimitContext data type (see table 5.6.2.2-1). |
5.5.3.3 Standard Methods
5.5.3.3.1 POST
This method shall support the URI query parameters specified in table 5.5.3.3.1-1.
Table 5.5.3.3.1-1: URI query parameters supported by the POST method on this resource
Name |
Data type |
P |
Cardinality |
Description |
n/a |
This method shall support the request data structures specified in table 5.5.3.3.1-2 and the response data structures and response codes specified in table 5.5.3.3.1-3.
Table 5.5.3.3.1-2: Data structures supported by the POST Request Body on this resource
Data type |
P |
Cardinality |
Description |
SubscriptionTerminationInfo |
M |
1 |
Provides information about the deletion of the resource. |
Table 5.5.3.3.1-3: Data structures supported by the POST Response Body on this resource
Data type |
P |
Cardinality |
Response codes |
Description |
n/a |
204 No Content |
The receipt of the Notification is acknowledged. |
||
RedirectResponse |
O |
0..1 |
307 Temporary Redirect |
Temporary redirection, during subscription termination. The response shall include a Location header field containing an alternative URI representing the end point of an alternative NF consumer (service) instance where the notification should be sent. Applicable if the feature "ES3XX" is supported. |
RedirectResponse |
O |
0..1 |
308 Permanent Redirect |
Permanent redirection, during subscription termination. The response shall include a Location header field containing an alternative URI representing the end point of an alternative NF consumer (service) instance where the notification should be sent. Applicable if the feature "ES3XX" is supported. |
NOTE: In addition, the HTTP status codes which are specified as mandatory in table 5.2.7.1-1 of 3GPP TS 29.500 [4] for the POST method shall also apply. |
Table 5.5.3.3.1-4: 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 NF consumer (service) instance towards which the notification should be redirected. |
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target NF (service) instance towards which the notification request is redirected |
Table 5.5.3.3.1-5: 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 NF consumer (service) instance towards which the notification should be redirected. |
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target NF (service) instance towards which the notification request is redirected |
5.6 Data Model
5.6.1 General
This clause specifies the application data model supported by the API.
Table 5.6.1-1 specifies the data types defined for the Nchf_SpendingLimitControl service based interface protocol.
Table 5.6.1-1: Nchf_SpendingLimitControl specific Data Types
Data type |
Section defined |
Description |
Applicability |
SpendingLimitContext |
5.6.2.2 |
Describes the subscription data structure required for an individual CHF spending limit subscription. |
|
SpendingLimitStatus |
5.6.2.3 |
Describes the data structure presenting the statuses of policy counters. |
|
PolicyCounterInfo |
5.6.2.4 |
Describes the data structure presenting the policy counter status. |
|
PendingPolicyCounterStatus |
5.6.2.5 |
Describes the data structure presenting the pending policy counter status. |
|
PolicyCounterId |
5.6.3.2 |
Identifies a policy counter. |
|
SubscriptionTerminationInfo |
5.6.2.6 |
Describes the data structure presenting the indication of the termination of the subscription. |
|
TerminationCause |
5.6.3.3 |
Represents the types of causes for requesting the termination of the subscription. |
Table 5.6.1-2 specifies data types re-used by the Nchf_SpendingLimitControl 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 Nchf_SpendingLimitControl service based interface.
Table 5.6.1-2: Nchf_SpendingLimitControl re-used Data Types
Data type |
Reference |
Comments |
Applicability |
|
DateTime |
3GPP TS 29.571 [11] |
String with format "date-time" as defined in OpenAPI Specification [9]. |
||
Uri |
3GPP TS 29.571 [11] |
|||
Supi |
3GPP TS 29.571 [11] |
|||
Gpsi |
3GPP TS 29.571 [11] |
|||
RedirectResponse |
3GPP TS 29.571 [11] |
Contains redirection related information. |
ES3XX |
|
SupportedFeatures |
3GPP TS 29.571 [11] |
Used to negotiate the applicability of the optional features defined in table 5.8-1. |
5.6.2 Structured data types
5.6.2.1 Introduction
This clause defines the structures to be used in resource representations.
5.6.2.2 Type SpendingLimitContext
Table 5.6.2.2-1: Definition of type SpendingLimitContext
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
supi |
Supi |
C |
0..1 |
The Subscription Permanent Identifier (Supi) shall be present within the initial spending limit retrieval procedure (creation of a new individual subscription) and intermediate spending limit retrieval procedure (modification of an existing subscription). |
|
gpsi |
Gpsi |
O |
0..1 |
The Generic Public Subscription Identifier (Gpsi) shall contain either an External Id or an MSISDN. It may be present within the initial spending limit retrieval procedure (creation of a new individual subscription) and intermediate spending limit retrieval procedure (modification of an existing subscription). |
|
policyCounterIds |
array(PolicyCounterId) |
O |
1..N |
This is a list of policy counter identifier(s), which identifies policy counters maintained per subscriber within the CHF. |
|
notifUri |
Uri |
C |
0..1 |
This attribute identifies the recipient of spending limit notifications sent to the NF service consumer by the CHF. The notifUri shall be present within the initial spending limit retrieval procedure (creation of a new individual subscription and within the intermediate spending limit retrieval procedure (modification of an existing subscription). |
|
notifId |
string |
C |
0..1 |
Notification Correlation ID assigned by the NF service consumer. It shall be included if the NotificationCorrelation feature is supported, the notifUri does not encode the notification correlation Id, and the NF service consumers require multiple subscriptions for the same SUPI, e.g. UE accesses multiple network slices. |
NotificationCorrelation |
expiry |
DateTime |
O |
0..1 |
The expiry time may be included in a subscription request. When present, this IE shall represent the longest duration time after which the subscription shall become invalid. |
SubscriptionExpirationTimeControl |
supportedFeatures |
SupportedFeatures |
C |
0..1 |
The list of supported features as described in clause 5.8 shall be supplied by the NF service consumer in the POST request that request the creation of a spending limit report resource and intermediate spending limit retrieval procedure (modification of an existing subscription). |
5.6.2.3 Type SpendingLimitStatus
Table 5.6.2.3-1: Definition of type SpendingLimitStatus
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
supi |
Supi |
O |
0..1 |
The Subscription Permanent Identifier (Supi) shall be present within the callback notify service operation (notification of the status of subscribed policy counters). |
|
notifId |
string |
C |
0..1 |
Notification Correlation ID assigned by the NF service consumer. It shall be included if provided during the subscription within the SpendingLimitContext data type. |
NotificationCorrelation |
statusInfos |
map(PolicyCounterInfo) |
C |
1..N |
Status of the requested policy counters. The key of the map is the attribute "policyCounterId". It may be omitted when the feature SubscriptionExpirationTimeControl is supported and the CHF only requires to update the "expiry" attribute. |
|
expiry |
DateTime |
C |
0..1 |
This expiry time shall be included in a subscription response, if the expiry time was included in the request. It may be included in a subscription response and notification request based on operator policies for the control in the CHF of the subscription duration. |
SubscriptionExpirationTimeControl |
supportedFeatures |
SupportedFeatures |
C |
0..1 |
If the supportedFeatures is included in the request by the NF service consumer, it shall be supplied in the reply of the corresponding request by the CHF. |
5.6.2.4 Type PolicyCounterInfo
Table 5.6.2.4-1: Definition of type PolicyCounterInfo
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
policyCounterId |
PolicyCounterId |
M |
1 |
Identifies the requested policy counter. |
|
currentStatus |
string |
M |
1 |
Identifies the policy counter status applicable for a specific policy counter identified by the policyCounterId. The values (e.g. valid, invalid or any other status) are not specified. The interpretation and actions related to the defined values are out of scope of 3GPP. |
|
penPolCounterStatuses |
array(PendingPolicyCounterStatus) |
O |
1..N |
Provides the pending policy counter status. |
5.6.2.5 Type PendingPolicyCounterStatus
Table 5.6.2.5-1: Definition of type PendingPolicyCounterStatus
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
policyCounterStatus |
string |
M |
1 |
Identifies the policy counter status applicable for a specific policy counter identified by the PolicyCounterId. The values (e.g. valid, invalid or any other status) are not specified. The interpretation and actions related to the defined values are out of scope of 3GPP. |
|
activationTime |
DateTime |
M |
1 |
Indicates the time at which the pending policy counter status becomes the current status of a policy counter. |
5.6.2.6 Type SubscriptionTerminationInfo
Table 5.6.2.6-1: Definition of type SubscriptionTerminationInfo
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
supi |
Supi |
M |
1 |
Subscription Permanent Identifier. |
|
notifId |
string |
C |
0..1 |
Notification Correlation ID assigned by the NF service consumer. It shall be included if provided during the subscription within the SpendingLimitContext data type. |
NotificationCorrelation |
termCause |
TerminationCause |
O |
0..1 |
Indicates the cause for requesting the termination of the subscription to policy counter status changes. |
5.6.3 Simple data types and enumerations
5.6.3.1 Introduction
This clause defines simple data types and enumerations that can be referenced from data structures defined in the previous clauses.
5.6.3.2 Simple data types
The simple data types defined in table 5.6.3.2-1 shall be supported.
Table 5.6.3.2-1: Simple data types
Type Name |
Type Definition |
Description |
Applicability |
PolicyCounterId |
string |
Identifies a policy counter. |
5.6.3.3 Enumeration: TerminationCause
The enumeration "TerminationCause" represents the types of causes the CHF can report when requesting the termination of the subscription.
Table 5.6.3.3-1: Enumeration TerminationCause
Enumeration value |
Description |
Applicability |
REMOVED_SUBSCRIBER |
The subscriber identified by the SUPI has been removed from the CHF. |
5.7 Error handling
5.7.1 General
HTTP error handling shall be supported as specified in clause 5.2.4 of 3GPP TS 29.500 [4].
For the Nchf_SpendingLimitControl service 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 shall apply.
5.7.2 Protocol Errors
In this Release of the specification, there are no additional protocol errors applicable for the Nchf_SpendingLimitControl service API.
5.7.3 Application Errors
The application errors defined for the Nchf_SpendingLimitControl service API are listed in table 5.7.3-1.
Table 5.7.3-1: Application errors
Application Error |
HTTP status code |
Description |
USER_UNKNOWN |
400 Bad Request |
The subscriber specified in the request is not known at the CHF and the subscription cannot be created. |
NO_AVAILABLE_POLICY_COUNTERS |
400 Bad Request |
There are no policy counters available for the subscriber at the CHF |
UNKNOWN_POLICY_COUNTERS |
400 Bad Request |
The policy counter identifiers in the request are not known at the CHF. |
NOTE: Including a "ProblemDetails" data structure with the "cause" attribute in the HTTP response is optional unless explicitly mandated in the service operation clauses. |
5.8 Feature negotiation
The optional features in table 5.8-1 are defined for the Nchf_SpendingLimitControl Service API. They shall be negotiated using the extensibility mechanism defined in clause 6.6.2 of 3GPP TS 29.500 [4].
Table 5.8-1: Supported Features
Feature number |
Feature Name |
Description |
1 |
SubscriptionExpirationTimeControl |
Indicates the support of a expiry time to control the time duration of the subscription to changes of policy counters status. |
2 |
NotifiationCorrelation |
Indicates the support of the explicit indication of the notification correlation id |
3 |
ES3XX |
Extended Support for 3xx redirections. This feature indicates the support of redirection for any service operation, according to Stateless NF procedures as specified in clauses 6.5.3.2 and 6.5.3.3 of 3GPP TS 29.500 [4] and according to HTTP redirection principles for indirect communication, as specified in clause 6.10.9 of 3GPP TS 29.500 [4]. |
5.9 Security
As indicated in 3GPP TS 33.501 [14] and 3GPP TS 29.500 [4], the access to the Nchf_SpendingLimitControl API, based on local configuration, may be authorized by means of the OAuth2 protocol (see IETF RFC 6749 [15]), using the "Client Credentials" authorization grant, where the NRF (see 3GPP TS 29.510 [16]) plays the role of the authorization server.
If OAuth2 is used, an NF service consumer, prior to consuming services offered by the Nchf_SpendingLimitControl API, shall obtain a "token" from the authorization server, by invoking the Access Token Request service, as described in 3GPP TS 29.510 [16], 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 Nchf_SpendingLimitControl service.
The Nchf_SpendingLimitControl API defines a single scope "nchf-spendinglimitcontrol" for OAuth2 authorization (as specified in 3GPP TS 33.501 [14]) for the entire API, and it does not define any additional scopes at resource or operation level.
Annex A (normative):
OpenAPI specification