mirror of
https://github.com/open5gs/open5gs.git
synced 2026-05-05 07:08:11 +00:00
426 lines
14 KiB
YAML
426 lines
14 KiB
YAML
openapi: 3.0.0
|
|
|
|
info:
|
|
version: '2.2.0'
|
|
title: 'NSSF NS Selection'
|
|
description: |
|
|
NSSF Network Slice Selection Service.
|
|
© 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
|
|
All rights reserved.
|
|
security:
|
|
- {}
|
|
- oAuth2ClientCredentials:
|
|
- nnssf-nsselection
|
|
servers:
|
|
- url: '{apiRoot}/nnssf-nsselection/v2'
|
|
variables:
|
|
apiRoot:
|
|
default: https://example.com
|
|
description: apiRoot as defined in clause 4.4 of 3GPP TS 29.501
|
|
externalDocs:
|
|
description: 3GPP TS 29.531 V17.5.0; 5G System; Network Slice Selection Services; Stage 3
|
|
url: https://www.3gpp.org/ftp/Specs/archive/29_series/29.531/
|
|
paths:
|
|
/network-slice-information:
|
|
get:
|
|
summary: Retrieve the Network Slice Selection Information
|
|
tags:
|
|
- Network Slice Information (Document)
|
|
operationId: NSSelectionGet
|
|
parameters:
|
|
- name: nf-type
|
|
in: query
|
|
description: NF type of the NF service consumer
|
|
required: true
|
|
schema:
|
|
$ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/NFType'
|
|
- name: nf-id
|
|
in: query
|
|
description: NF Instance ID of the NF service consumer
|
|
required: true
|
|
schema:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
|
|
- name: slice-info-request-for-registration
|
|
in: query
|
|
description: Requested network slice information during Registration procedure
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SliceInfoForRegistration'
|
|
- name: slice-info-request-for-pdu-session
|
|
in: query
|
|
description: Requested network slice information during PDU session establishment procedure
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SliceInfoForPDUSession'
|
|
- name: slice-info-request-for-ue-cu
|
|
in: query
|
|
description: Requested network slice information during UE confuguration update procedure
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SliceInfoForUEConfigurationUpdate'
|
|
- name: home-plmn-id
|
|
in: query
|
|
description: PLMN ID of the HPLMN
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId'
|
|
- name: tai
|
|
in: query
|
|
description: TAI of the UE
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Tai'
|
|
- name: supported-features
|
|
in: query
|
|
description: Features required to be supported by the NFs in the target slice instance
|
|
schema:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
|
|
|
|
responses:
|
|
'200':
|
|
description: OK (Successful Network Slice Selection)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/AuthorizedNetworkSliceInfo'
|
|
'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'
|
|
'414':
|
|
$ref: 'TS29571_CommonData.yaml#/components/responses/414'
|
|
'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:
|
|
description: Unexpected error
|
|
|
|
components:
|
|
securitySchemes:
|
|
oAuth2ClientCredentials:
|
|
type: oauth2
|
|
flows:
|
|
clientCredentials:
|
|
tokenUrl: '{nrfApiRoot}/oauth2/token'
|
|
scopes:
|
|
nnssf-nsselection: Access to the Nnssf_NSSelection API
|
|
schemas:
|
|
AuthorizedNetworkSliceInfo:
|
|
description: Contains the authorized network slice information
|
|
type: object
|
|
properties:
|
|
allowedNssaiList:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/AllowedNssai'
|
|
minItems: 1
|
|
configuredNssai:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ConfiguredSnssai'
|
|
minItems: 1
|
|
targetAmfSet:
|
|
type: string
|
|
pattern: '^[0-9]{3}-[0-9]{2-3}-[A-Fa-f0-9]{2}-[0-3][A-Fa-f0-9]{2}$'
|
|
candidateAmfList:
|
|
type: array
|
|
items:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
|
|
minItems: 1
|
|
rejectedNssaiInPlmn:
|
|
type: array
|
|
items:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
|
|
minItems: 1
|
|
rejectedNssaiInTa:
|
|
type: array
|
|
items:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
|
|
minItems: 1
|
|
nsiInformation:
|
|
$ref: '#/components/schemas/NsiInformation'
|
|
supportedFeatures:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
|
|
nrfAmfSet:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
|
|
nrfAmfSetNfMgtUri:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
|
|
nrfAmfSetAccessTokenUri:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
|
|
nrfOauth2Required:
|
|
type: object
|
|
description: >
|
|
Map indicating 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"
|
|
additionalProperties:
|
|
type: boolean
|
|
minProperties: 1
|
|
targetAmfServiceSet:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/NfServiceSetId'
|
|
targetNssai:
|
|
type: array
|
|
items:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
|
|
minItems: 1
|
|
nsagInfos:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/NsagInfo'
|
|
minItems: 1
|
|
|
|
SubscribedSnssai:
|
|
description: Contains the subscribed S-NSSAI
|
|
type: object
|
|
required:
|
|
- subscribedSnssai
|
|
properties:
|
|
subscribedSnssai:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
|
|
defaultIndication:
|
|
type: boolean
|
|
subscribedNsSrgList:
|
|
type: array
|
|
items:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/NsSrg'
|
|
minItems: 1
|
|
|
|
|
|
AllowedSnssai:
|
|
description: >
|
|
Contains the authorized S-NSSAI and optional mapped home S-NSSAI and
|
|
network slice instance information
|
|
type: object
|
|
required:
|
|
- allowedSnssai
|
|
properties:
|
|
allowedSnssai:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
|
|
nsiInformationList:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/NsiInformation'
|
|
minItems: 1
|
|
mappedHomeSnssai:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
|
|
|
|
AllowedNssai:
|
|
description: >
|
|
Contains an array of allowed S-NSSAI that constitute the allowed NSSAI information
|
|
for the authorized network slice information
|
|
type: object
|
|
required:
|
|
- allowedSnssaiList
|
|
- accessType
|
|
properties:
|
|
allowedSnssaiList:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/AllowedSnssai'
|
|
minItems: 1
|
|
accessType:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType'
|
|
|
|
NsiInformation:
|
|
description: >
|
|
Contains the API URIs of NRF services to be used to discover NFs/services,
|
|
subscribe to NF status changes and/or request access tokens within the selected
|
|
Network Slice instance and optional the Identifier of the selected Network Slice instance
|
|
type: object
|
|
required:
|
|
- nrfId
|
|
properties:
|
|
nrfId:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
|
|
nsiId:
|
|
$ref: '#/components/schemas/NsiId'
|
|
nrfNfMgtUri:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
|
|
nrfAccessTokenUri:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
|
|
nrfOauth2Required:
|
|
type: object
|
|
description: >
|
|
Map indicating 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"
|
|
additionalProperties:
|
|
type: boolean
|
|
minProperties: 1
|
|
|
|
MappingOfSnssai:
|
|
description: Contains the mapping of S-NSSAI in the serving network and the value of the home network
|
|
type: object
|
|
required:
|
|
- servingSnssai
|
|
- homeSnssai
|
|
properties:
|
|
servingSnssai:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
|
|
homeSnssai:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
|
|
|
|
|
|
SliceInfoForRegistration:
|
|
description: Contains the slice information requested during a Registration procedure
|
|
type: object
|
|
properties:
|
|
subscribedNssai:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/SubscribedSnssai'
|
|
minItems: 1
|
|
allowedNssaiCurrentAccess:
|
|
$ref: '#/components/schemas/AllowedNssai'
|
|
allowedNssaiOtherAccess:
|
|
$ref: '#/components/schemas/AllowedNssai'
|
|
sNssaiForMapping:
|
|
type: array
|
|
items:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
|
|
minItems: 1
|
|
requestedNssai:
|
|
type: array
|
|
items:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
|
|
minItems: 1
|
|
defaultConfiguredSnssaiInd:
|
|
type: boolean
|
|
default: false
|
|
mappingOfNssai:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/MappingOfSnssai'
|
|
minItems: 1
|
|
requestMapping:
|
|
type: boolean
|
|
ueSupNssrgInd:
|
|
type: boolean
|
|
suppressNssrgInd:
|
|
type: boolean
|
|
nsagSupported:
|
|
type: boolean
|
|
default: false
|
|
|
|
SliceInfoForPDUSession:
|
|
description: Contains the slice information requested during PDU Session establishment procedure
|
|
type: object
|
|
required:
|
|
- sNssai
|
|
- roamingIndication
|
|
properties:
|
|
sNssai:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
|
|
roamingIndication:
|
|
$ref: '#/components/schemas/RoamingIndication'
|
|
homeSnssai:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
|
|
|
|
SliceInfoForUEConfigurationUpdate:
|
|
description: Contains the slice information requested during UE configuration update procedure
|
|
type: object
|
|
properties:
|
|
subscribedNssai:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/SubscribedSnssai'
|
|
minItems: 1
|
|
allowedNssaiCurrentAccess:
|
|
$ref: '#/components/schemas/AllowedNssai'
|
|
allowedNssaiOtherAccess:
|
|
$ref: '#/components/schemas/AllowedNssai'
|
|
defaultConfiguredSnssaiInd:
|
|
type: boolean
|
|
requestedNssai:
|
|
type: array
|
|
items:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
|
|
minItems: 1
|
|
mappingOfNssai:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/MappingOfSnssai'
|
|
minItems: 1
|
|
ueSupNssrgInd:
|
|
type: boolean
|
|
suppressNssrgInd:
|
|
type: boolean
|
|
rejectedNssaiRa:
|
|
type: array
|
|
items:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
|
|
minItems: 1
|
|
nsagSupported:
|
|
type: boolean
|
|
default: false
|
|
|
|
ConfiguredSnssai:
|
|
description: Contains the configured S-NSSAI(s) authorized by the NSSF in the serving PLMN and optional mapped home S-NSSAI
|
|
type: object
|
|
required:
|
|
- configuredSnssai
|
|
properties:
|
|
configuredSnssai:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
|
|
mappedHomeSnssai:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
|
|
|
|
NsagInfo:
|
|
description: Contains the association of NSAGs and S-NSSAI(s) along with the TA(s) within which the association is valid.
|
|
type: object
|
|
required:
|
|
- nsagIds
|
|
- snssaiList
|
|
properties:
|
|
nsagIds:
|
|
type: array
|
|
items:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/NsagId'
|
|
minItems: 1
|
|
snssaiList:
|
|
type: array
|
|
items:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
|
|
minItems: 1
|
|
taiList:
|
|
type: array
|
|
items:
|
|
$ref: 'TS29571_CommonData.yaml#/components/schemas/Tai'
|
|
minItems: 1
|
|
taiRangeList:
|
|
type: array
|
|
items:
|
|
$ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/TaiRange'
|
|
minItems: 1
|
|
|
|
RoamingIndication:
|
|
# description: Contains the indication on roaming
|
|
# anyOf:
|
|
# - type: string
|
|
enum:
|
|
- NON_ROAMING
|
|
- LOCAL_BREAKOUT
|
|
- HOME_ROUTED_ROAMING
|
|
# - type: string
|
|
NsiId:
|
|
description: Contains the Identifier of the selected Network Slice instance
|
|
type: string
|
|
|