openapi: 3.0.0 info: version: 1.1.0 title: Nchf_SpendingLimitControl description: | Nchf Spending Limit Control Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. externalDocs: description: 3GPP TS 29.594 V16.2.0; 5G System; Spending Limit Control Service. url: 'http://www.3gpp.org/ftp/Specs/archive/29_series/29.594/' servers: - url: '{apiRoot}/nchf-spendinglimitcontrol/v1' variables: apiRoot: default: https://example.com description: apiRoot as defined in subclause subclause 4.4 of 3GPP TS 29.501 security: - {} - oAuth2ClientCredentials: - nchf-spendinglimitcontrol paths: /subscriptions: post: requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SpendingLimitContext' responses: '201': description: Success content: application/json: schema: $ref: '#/components/schemas/SpendingLimitStatus' headers: Location: description: 'Contains the URI of the created individual spending limit resource, according to the structure: {apiRoot}/nchf-spendinglimitcontrol/v1/subscriptions/{subscriptionId}' required: true schema: type: string '400': $ref: 'TS29571_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29571_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29571_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29571_CommonData.yaml#/components/responses/404' '411': $ref: 'TS29571_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29571_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29571_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29571_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29571_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29571_CommonData.yaml#/components/responses/503' default: $ref: 'TS29571_CommonData.yaml#/components/responses/default' callbacks: statusNotification: '{$request.body#/notifUri}/notify': post: requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SpendingLimitStatus' responses: '204': description: No Content, Notification was succesfull '400': $ref: 'TS29571_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29571_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29571_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29571_CommonData.yaml#/components/responses/404' '411': $ref: 'TS29571_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29571_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29571_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29571_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29571_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29571_CommonData.yaml#/components/responses/503' default: $ref: 'TS29571_CommonData.yaml#/components/responses/default' subscriptionTermination: '{$request.body#/notifUri}/terminate': post: requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SubscriptionTerminationInfo' responses: '204': description: No Content, Notification was succesfull '400': $ref: 'TS29571_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29571_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29571_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29571_CommonData.yaml#/components/responses/404' '411': $ref: 'TS29571_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29571_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29571_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29571_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29571_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29571_CommonData.yaml#/components/responses/503' default: $ref: 'TS29571_CommonData.yaml#/components/responses/default' /subscriptions/{subscriptionId}: parameters: - in: path name: subscriptionId description: Identifies an individual spending limit retrieval subscription. required: true schema: type: string put: requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SpendingLimitContext' responses: '200': description: OK. Resource was succesfully modified and representation is returned content: application/json: schema: $ref: '#/components/schemas/SpendingLimitStatus' '400': $ref: 'TS29571_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29571_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29571_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29571_CommonData.yaml#/components/responses/404' '411': $ref: 'TS29571_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29571_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29571_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29571_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29571_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29571_CommonData.yaml#/components/responses/503' default: $ref: 'TS29571_CommonData.yaml#/components/responses/default' delete: responses: '204': description: No Content. Resource was succesfully deleted '400': $ref: 'TS29571_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29571_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29571_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29571_CommonData.yaml#/components/responses/404' '429': $ref: 'TS29571_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29571_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29571_CommonData.yaml#/components/responses/503' default: $ref: 'TS29571_CommonData.yaml#/components/responses/default' components: securitySchemes: oAuth2ClientCredentials: type: oauth2 flows: clientCredentials: tokenUrl: '{nrfApiRoot}/oauth2/token' scopes: nchf-spendinglimitcontrol: Access to the Nchf_SpendingLimitControl API schemas: SpendingLimitContext: type: object properties: supi: $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi' gpsi: $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi' policyCounterIds: type: array items: $ref: '#/components/schemas/PolicyCounterId' minItems: 1 description: This is a list of policy counter identifier(s), which identifies policy counters maintained per subscriber within the CHF. notifUri: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri' expiry: $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime' supportedFeatures: $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures' SpendingLimitStatus: type: object properties: supi: $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi' statusInfos: type: object additionalProperties: $ref: '#/components/schemas/PolicyCounterInfo' minProperties: 1 description: Status of the requested policy counters. The key of the map is the attribute "policyCounterId". expiry: $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime' supportedFeatures: $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures' PolicyCounterInfo: type: object properties: policyCounterId: $ref: '#/components/schemas/PolicyCounterId' currentStatus: type: string description: 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: type: array items: $ref: '#/components/schemas/PendingPolicyCounterStatus' minItems: 1 description: Provides the pending policy counter status. required: - policyCounterId - currentStatus PendingPolicyCounterStatus: type: object properties: policyCounterStatus: type: string description: 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: $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime' required: - policyCounterStatus - activationTime PolicyCounterId: type: string description: Identifies a policy counter. SubscriptionTerminationInfo: type: object properties: supi: $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi' termCause: $ref: '#/components/schemas/TerminationCause' required: - supi TerminationCause: anyOf: - type: string enum: - REMOVED_SUBSCRIBER - type: string