A.5 Nhss_gbaSDM API
29.5623GPP5G SystemHome Subscriber Server (HSS) servicesRelease 18Stage 3TS
openapi: 3.0.0
info:
version: ‘1.1.0-alpha.1’
title: ‘Nhss_gbaSDM’
description: |
Nhss Subscriber Data Management Service for GBA.
© 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
All rights reserved.
externalDocs:
description: 3GPP TS 29.562 Home Subscriber Server (HSS) Services, version 18.0.0
url: ‘https://www.3gpp.org/ftp/Specs/archive/29_series/29.562/’
servers:
– url: ‘{apiRoot}/nhss-gba-sdm/v1’
variables:
apiRoot:
default: https://example.com
description: apiRoot as defined in clause 4.4 of 3GPP TS 29.501.
security:
– {}
– oAuth2ClientCredentials:
– nhss-gba-sdm
paths:
/{ueId}/subscriber-data:
get:
summary: Retrieve the subscriber data of a user
operationId: GetSubscriberData
tags:
– Subscriber Data (Document)
security:
– {}
– oAuth2ClientCredentials:
– nhss-gba-sdm
– oAuth2ClientCredentials:
– nhss-gba-sdm
– nhss-gba-sdm:subscriber-data:read
parameters:
– name: ueId
in: path
description: UE Identity
required: true
schema:
$ref: ‘#/components/schemas/UeId’
– name: supported-features
in: query
description: Supported Features
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
responses:
‘200’:
description: Expected response to a valid request
content:
application/json:
schema:
$ref: ‘#/components/schemas/GbaSubscriberData’
‘307’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/307’
‘308’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/308’
‘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’
‘406’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/406’
‘429’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/429’
‘500’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/500’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
‘504’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/504’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
/{ueId}/subscriptions:
post:
summary: Subscribe to notifications
operationId: GbaSdmSubscribe
tags:
– GBA SDM Subscriptions (Collection)
security:
– {}
– oAuth2ClientCredentials:
– nhss-gba-sdm
– oAuth2ClientCredentials:
– nhss-gba-sdm
– nhss-gba-sdm:subscriptions:create
parameters:
– name: ueId
in: path
description: UE Identity
required: true
schema:
$ref: ‘#/components/schemas/UeId’
requestBody:
content:
application/json:
schema:
$ref: ‘#/components/schemas/GbaSdmSubscription’
required: true
responses:
‘201’:
description: Expected response to a valid request
content:
application/json:
schema:
$ref: ‘#/components/schemas/GbaSdmSubscription’
headers:
Location:
description: >
Contains the URI of the newly created resource, according to the structure:
{apiRoot}/nhss-gba-sdm/<apiVersion>/{ueId}/subscriptions/{subscriptionId}
required: true
schema:
type: string
‘307’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/307’
‘308’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/308’
‘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’
‘501’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/501’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
callbacks:
datachangeNotification:
‘{request.body#/callbackReference}’:
post:
requestBody:
required: true
content:
application/json:
schema:
$ref: ‘TS29503_Nudm_SDM.yaml#/components/schemas/ModificationNotification’
responses:
‘204’:
description: Successful Notification response
‘307’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/307’
‘308’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/308’
‘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’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
/{ueId}/subscriptions/{subscriptionId}:
delete:
summary: Unsubscribe from notifications
operationId: GbaSdmUnsubscribe
tags:
– GBA SDM Subscription (Document)
security:
– {}
– oAuth2ClientCredentials:
– nhss-gba-sdm
– oAuth2ClientCredentials:
– nhss-gba-sdm
– nhss-gba-sdm:subscription:modify
parameters:
– name: ueId
in: path
description: UE Identity
required: true
schema:
$ref: ‘#/components/schemas/UeId’
– name: subscriptionId
in: path
description: Id of the Subscription
required: true
schema:
type: string
responses:
‘204’:
description: Successful response
‘307’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/307’
‘308’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/308’
‘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’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘503’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/503’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
patch:
summary: Modify the subscription
operationId: GbaSdmSubsModify
tags:
– GBA SDM Subscription (Document)
security:
– {}
– oAuth2ClientCredentials:
– nhss-gba-sdm
– oAuth2ClientCredentials:
– nhss-gba-sdm
– nhss-gba-sdm:subscription:modify
parameters:
– name: ueId
in: path
description: UE Identity
required: true
schema:
$ref: ‘#/components/schemas/UeId’
– name: subscriptionId
in: path
description: Id of the Subscription
required: true
schema:
type: string
– name: supported-features
in: query
description: Supported Features
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
requestBody:
content:
application/json-patch+json:
schema:
type: array
items:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/PatchItem’
minItems: 1
required: true
responses:
‘200’:
description: Expected response to a valid request
content:
application/json:
schema:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/PatchResult’
‘204’:
description: Successful modification
‘307’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/307’
‘308’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/308’
‘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’
‘502’:
$ref: ‘TS29571_CommonData.yaml#/components/responses/502’
‘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:
nhss-gba-sdm: Access to the Nhss GBA Subscription Data Management API
nhss-gba-sdm:subscriber-data:read: Access to read the GBA Subscriber Data resource
nhss-gba-sdm:subscriptions:create: Access to create Subscriptions resources
nhss-gba-sdm:subscription:modify: Access to update/delete a Subscription resource
schemas:
#
# COMPLEX TYPES:
#
GbaSubscriberData:
description: >
GBA subscriber data of the UE; it includes the GBA User Security Settings (GUSS) data
type: object
properties:
guss:
$ref: ‘#/components/schemas/Guss’
Guss:
description: >
GBA User Security Settings of the UE; it includes information about the BSF,
and a list of User Security Settings
type: object
properties:
bsfInfo:
$ref: ‘#/components/schemas/BsfInfo’
ussList:
type: array
items:
$ref: ‘TS29309_Nbsp_GBA.yaml#/components/schemas/UssListItem’
minItems: 1
BsfInfo:
description: >
Information about the BSF; it includes an indication of whether GBA or GBA_U is to be used,
the key lifetime and a user-specific list of security features
type: object
properties:
uiccType:
$ref: ‘#/components/schemas/UiccType’
lifeTime:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/DurationSec’
securityFeatures:
type: array
items:
$ref: ‘TS29309_Nbsp_GBA.yaml#/components/schemas/SecFeature’
minItems: 1
GbaSdmSubscription:
description: >
Information about a subscription created in the HSS, so the consumer (e.g. BSF) can be
notified when there are changes on the monitored data
type: object
required:
– nfInstanceId
– callbackReference
– monitoredResourceUris
properties:
nfInstanceId:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/NfInstanceId’
callbackReference:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’
monitoredResourceUris:
type: array
items:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’
minItems: 1
expires:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/DateTime’
#
# SIMPLE TYPES:
#
UeId:
description: UE ID can be MSISDN, IMSI, IMPI or IMPU
anyOf:
– $ref: ‘#/components/schemas/Msisdn’
– $ref: ‘#/components/schemas/Imsi’
– $ref: ‘TS29562_Nhss_imsSDM.yaml#/components/schemas/ImsUeId’
Msisdn:
description: MS-ISDN of the UE
type: string
pattern: ‘^msisdn-[0-9]{5,15}$’
Imsi:
description: IMSI of the UE
type: string
pattern: ‘^imsi-[0-9]{5,15}$’
#
# ENUMS:
#
UiccType:
description: Indicates whether GBA or GBA_U is to be used
anyOf:
– type: string
enum:
– GBA
– GBA_U
– type: string