A.2 Nhss_imsUECM API
29.5623GPP5G SystemHome Subscriber Server (HSS) servicesRelease 18Stage 3TS
openapi: 3.0.0
info:
version: ‘1.2.0-alpha.1’
title: ‘Nhss_imsUECM’
description: |
Nhss UE Context Management Service for IMS.
© 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-ims-uecm/v1’
variables:
apiRoot:
default: https://example.com
description: apiRoot as defined in clause 4.4 of 3GPP TS 29.501.
security:
– {}
– oAuth2ClientCredentials:
– nhss-ims-uecm
paths:
/{impu}/authorize:
post:
summary: >
Authorize IMS Identities to register in the network or establish multimedia sessions
and return CSCF location if it is stored
operationId: Authorize
tags:
– Authorize (Custom Operation)
security:
– {}
– oAuth2ClientCredentials:
– nhss-ims-uecm
– oAuth2ClientCredentials:
– nhss-ims-uecm
– nhss-ims-uecm:authorize:invoke
parameters:
– name: impu
in: path
description: Public identity of the user.
required: true
schema:
$ref: ‘#/components/schemas/Impu’
requestBody:
content:
application/json:
schema:
$ref: ‘#/components/schemas/AuthorizationRequest’
required: true
responses:
‘200’:
description: Expected response to a valid request
content:
application/json:
schema:
$ref: ‘#/components/schemas/AuthorizationResponse’
‘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’
callbacks:
deregistrationeNotification:
‘{request.body#/deregCallbackUri}’:
post:
requestBody:
required: true
content:
application/json:
schema:
$ref: ‘#/components/schemas/DeregistrationData’
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’
/{imsUeId}/scscf-registration:
put:
summary: SCSCF registration information
operationId: SCSCF registration
tags:
– S-CSCF Registration (Document)
security:
– {}
– oAuth2ClientCredentials:
– nhss-ims-uecm
– oAuth2ClientCredentials:
– nhss-ims-uecm
– nhss-ims-uecm:registration:create
parameters:
– name: imsUeId
in: path
description: IMS Identity
required: true
schema:
$ref: ‘#/components/schemas/ImsUeId’
requestBody:
content:
application/json:
schema:
$ref: ‘#/components/schemas/ScscfRegistration’
required: true
responses:
‘201’:
description: Created
content:
application/json:
schema:
$ref: ‘#/components/schemas/ScscfRegistration’
headers:
Location:
description: >
Contains the URI of the newly created resource, according to the structure:
{apiRoot}/nhss-ims-uecm/v1/{impu}/scscf-registration
required: true
schema:
type: string
‘200’:
description: Expected response to a valid request
content:
application/json:
schema:
$ref: ‘#/components/schemas/ScscfRegistration’
‘204’:
description: No content
‘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’:
description: Forbidden
content:
application/problem+json:
schema:
$ref: ‘#/components/schemas/ExtendedProblemDetails’
‘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’
/{impu}/scscf-registration/scscf-restoration-info:
put:
summary: Update the S-CSCF restoration information of the UE
operationId: UpdateScscfRestorationInfo
tags:
– S-CSCF Restoration Information (Document)
security:
– {}
– oAuth2ClientCredentials:
– nhss-ims-uecm
– oAuth2ClientCredentials:
– nhss-ims-uecm
– nhss-ims-uecm:restoration:modify
parameters:
– name: impu
in: path
description: Public identity of the user.
required: true
schema:
$ref: ‘#/components/schemas/Impu’
requestBody:
content:
application/json:
schema:
$ref: ‘#/components/schemas/ScscfRestorationInfoRequest’
required: true
responses:
‘201’:
description: Created
content:
application/json:
schema:
$ref: ‘#/components/schemas/ScscfRestorationInfoResponse’
headers:
Location:
description: >
Contains the URI of the newly created resource, according to the structure:
{apiRoot}/nhss-ims-uecm/v1/{impu}/scscf-registration/scscf-restoration-info
required: true
schema:
type: string
‘200’:
description: OK
content:
application/json:
schema:
$ref: ‘#/components/schemas/ScscfRestorationInfoResponse’
‘204’:
description: No content
‘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’
get:
summary: Retrieve the S-CSCF restoration information of the UE
operationId: GetScscfRestorationInfo
tags:
– S-CSCF Restoration Information (Document)
security:
– {}
– oAuth2ClientCredentials:
– nhss-ims-uecm
– oAuth2ClientCredentials:
– nhss-ims-uecm
– nhss-ims-uecm:restoration:read
parameters:
– name: impu
in: path
description: Public identity of the user.
required: true
schema:
$ref: ‘#/components/schemas/Impu’
responses:
‘200’:
description: Expected response to a valid request
content:
application/json:
schema:
$ref: ‘#/components/schemas/ScscfRestorationInfoResponse’
‘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’
default:
$ref: ‘TS29571_CommonData.yaml#/components/responses/default’
delete:
summary: Delete the S-CSCF restoration information of the UE
operationId: DeleteScscfRestorationInfo
tags:
– S-CSCF Restoration Information (Document)
security:
– {}
– oAuth2ClientCredentials:
– nhss-ims-uecm
– oAuth2ClientCredentials:
– nhss-ims-uecm
– nhss-ims-uecm:restoration:modify
parameters:
– name: impu
in: path
description: Public identity of the user.
required: true
schema:
$ref: ‘#/components/schemas/Impu’
responses:
‘204’:
description: No content
‘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’
components:
securitySchemes:
oAuth2ClientCredentials:
type: oauth2
flows:
clientCredentials:
tokenUrl: ‘{nrfApiRoot}/oauth2/token’
scopes:
nhss-ims-uecm: Access to the Nhss IMS UE Context Management API
nhss-ims-uecm:authorize:invoke: Access to invoke the Authorize custom operation
nhss-ims-uecm:registration:create: Access to create the S-CSCF Registration resource
nhss-ims-uecm:restoration:read: Access to read the S-CSCF Restoration resource
nhss-ims-uecm:restoration:modify: >-
Access to create/update/delete the S-CSCF Restoration resource
schemas:
#
# COMPLEX TYPES:
#
AuthorizationRequest:
description: Ims authorization request data
type: object
required:
– authorizationType
properties:
impi:
$ref: ‘#/components/schemas/Impi’
authorizationType:
$ref: ‘#/components/schemas/AuthorizationType’
visitedNetworkIdentifier:
type: string
emergencyIndicator:
type: boolean
supportedFeatures:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
AuthorizationResponse:
description: Ims Registration authorization information result
type: object
properties:
authorizationResult:
$ref: ‘#/components/schemas/AuthorizationResult’
cscfServerName:
type: string
scscfSelectionAssistanceInfo:
$ref: ‘TS29562_Nhss_imsSDM.yaml#/components/schemas/ScscfSelectionAssistanceInformation’
required:
– authorizationResult
oneOf:
– required:
– cscfServerName
– required:
– scscfSelectionAssistanceInfo
ScscfRegistration:
description: Scscf Registration
type: object
required:
– imsRegistrationType
– cscfServerName
properties:
impi:
$ref: ‘#/components/schemas/Impi’
imsRegistrationType:
$ref: ‘#/components/schemas/ImsRegistrationType’
cscfServerName:
type: string
scscfInstanceId:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/NfInstanceId’
deregCallbackUri:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’
associatedImpis:
type: array
items:
$ref: ‘#/components/schemas/Impi’
associatedRegisteredImpis:
type: array
items:
$ref: ‘#/components/schemas/Impi’
irsImpus:
type: array
items:
$ref: ‘#/components/schemas/Impu’
minItems: 1
uniqueItems: true
wildcardedPui:
$ref: ‘#/components/schemas/Impu’
looseRouteIndicator:
$ref: ‘#/components/schemas/LooseRouteIndication’
wildcardedPsi:
$ref: ‘#/components/schemas/Impu’
supportedFeatures:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’
multipleRegistrationIndicator:
type: boolean
pcscfRestorationIndicator:
type: boolean
default: false
scscfReselectionIndicator:
type: boolean
default: false
ExtendedProblemDetails:
description: >
Extension of the ProblemDetails data type, to include additional information
in an error response message
allOf:
– $ref: ‘TS29571_CommonData.yaml#/components/schemas/ProblemDetails’
– $ref: ‘#/components/schemas/AdditionalInfo’
AdditionalInfo:
description: >
Additional information to be sent on error response messages, along with the
common content in ProblemDetails
type: object
properties:
scscfServerName:
type: string
ScscfRestorationInfo:
description: S-CSCF restoration information
type: object
properties:
userName:
$ref: ‘#/components/schemas/Impi’
restorationInfo:
type: array
items:
$ref: ‘#/components/schemas/RestorationInfo’
registrationTimeOut:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/DateTime’
sipAuthenticationScheme:
$ref: ‘TS29562_Nhss_imsUEAU.yaml#/components/schemas/SipAuthenticationScheme’
ScscfRestorationInfoRequest:
description: S-CSCF restoration information request
type: object
properties:
scscfRestorationInfoRequest:
$ref: ‘#/components/schemas/ScscfRestorationInfo’
ScscfRestorationInfoResponse:
description: S-CSCF restoration information response
type: object
properties:
scscfRestorationInfoResponse:
type: array
items:
$ref: ‘#/components/schemas/ScscfRestorationInfo’
RestorationInfo:
description: >
The information relevant to a specific registration required for an S-CSCF
to handle the requests for a user
type: object
required:
– path
– contact
properties:
path:
type: string
contact:
type: string
initialCSeqSequenceNumber:
$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uint32’
callIdSipHeader:
type: string
uesubscriptionInfo:
$ref: ‘#/components/schemas/UeSubscriptionInfo’
pcscfSubscriptionInfo:
$ref: ‘#/components/schemas/PcscfSubscriptionInfo’
imsSdmSubscriptions:
description: >
A map (list of key-value pairs where subscriptionId serves as key) of ImsSdmSubscription
type: object
additionalProperties:
$ref: ‘TS29562_Nhss_imsSDM.yaml#/components/schemas/ImsSdmSubscription’
UeSubscriptionInfo:
description: Subscription information of the UE for the SIP Registration State event
type: object
required:
– callIdSipHeader
– fromSipHeader
– toSipHeader
– recordRoute
– contact
properties:
callIdSipHeader:
type: string
fromSipHeader:
type: string
toSipHeader:
type: string
recordRoute:
type: string
contact:
type: string
PcscfSubscriptionInfo:
description: Subscription information of the P-CSCF for the SIP Registration State event
type: object
required:
– callIdSipHeader
– fromSipHeader
– toSipHeader
– contact
properties:
callIdSipHeader:
type: string
fromSipHeader:
type: string
toSipHeader:
type: string
contact:
type: string
DeregistrationData:
description: Data related to the de-registration information of a S-CSCF in HSS
type: object
required:
– deregReason
– impi
properties:
deregReason:
$ref: ‘#/components/schemas/DeregistrationReason’
impi:
$ref: ‘#/components/schemas/Impi’
associatedImpis:
type: array
items:
$ref: ‘#/components/schemas/Impi’
emergencyRegisteredIdentities:
type: array
items:
$ref: ‘#/components/schemas/EmergencyRegisteredIdentity’
minItems: 1
EmergencyRegisteredIdentity:
description: >
A pair of private and public user identities which have not been de-registered
due to emergency registration
type: object
required:
– impi
– impu
properties:
impi:
$ref: ‘#/components/schemas/Impi’
impu:
$ref: ‘#/components/schemas/Impu’
DeregistrationReason:
description: >
Contains the reason for the network initiated de-registration (including a reason code,
and a human-readable reason text)
type: object
required:
– reasonCode
– reasonText
properties:
reasonCode:
$ref: ‘#/components/schemas/DeregistrationReasonCode’
reasonText:
type: string
#
# SIMPLE TYPES
#
ImsUeId:
description: IMS UE Identity (IMPU or IMPI)
type: string
pattern: ‘^(impu-sip\:([a-zA-Z0-9_\-.!~*()&=+$,;?\/]+)\@([A-Za-z0-9]+([-A-Za-z0-9]+)\.)+[a-z]{2,}|impu-tel\:\+[0-9]{5,15}|impi-.+|.+)$’
Impu:
description: IMS Public Identity of the UE (sip URI or tel URI)
type: string
pattern: ‘^(sip\:([a-zA-Z0-9_\-.!~*()&=+$,;?\/]+)\@([A-Za-z0-9]+([-A-Za-z0-9]+)\.)+[a-z]{2,}|tel\:\+[0-9]{5,15})$’
Impi:
description: IMS Private Identity of the UE
type: string
#
# ENUMS:
#
AuthorizationType:
description: Represents the type of authorization requested by the UE
anyOf:
– type: string
enum:
– REGISTRATION
– DEREGISTRATION
– type: string
AuthorizationResult:
description: Represents the details of the granted authorization to the UE
anyOf:
– type: string
enum:
– FIRST_REGISTRATION
– SUBSEQUENT_REGISTRATION
– type: string
ImsRegistrationType:
description: Represents the type of registration associated to the REGISTER request
anyOf:
– type: string
enum:
– INITIAL_REGISTRATION
– RE_REGISTRATION
– TIMEOUT_DEREGISTRATION
– USER_DEREGISTRATION
– ADMINISTRATIVE_DEREGISTRATION
– AUTHENTICATION_FAILURE
– AUTHENTICATION_TIMEOUT
– UNREGISTERED_USER
– type: string
LooseRouteIndication:
description: Indicates whether the loose routing mechanism is required to serve the user
anyOf:
– type: string
enum:
– LOOSE_ROUTE_NOT_REQUIRED
– LOOSE_ROUTE_REQUIRED
– type: string
DeregistrationReasonCode:
description: Indicates the reason for the network-initiated deregistration
anyOf:
– type: string
enum:
– PERMANENT_TERMINATION
– NEW_SERVER_ASSIGNED
– REMOVE_S-CSCF
– SERVER_CHANGE
– type: string