Open API Specification
This appendix provides a sample of Open API specification in NSSF.
Open API 3.0
openapi: 3.0.0
info:
title: "NSSF-CONFIGURATION"
version: v0.1
servers:
- url: 'https://{apiRoot}/'
variables:
apiRoot:
default: nssf
description: >-
apiRoot should be mentioned as defined in NSSF configuration script
paths:
'/nssf-configuration/v1/nsiprofiles':
post:
summary: "Create a network slice instance profile"
tags:
- "Create a network slice instance profile"
requestBody:
content:
application/json: # Media type
schema: # Request body contents
$ref: '#/components/schemas/NssfNsiProfile'
responses:
'201' :
description: Created
'403' :
description: Forbidden
'409' :
description: Conflict
'500' :
description: Internal Server Error
'503' :
description: Service Unavailable
default:
description: Unexpected error
get:
summary: "Read all network slice instance profiles"
tags:
- "Read all network slice instance profiles"
responses:
'200' :
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/NssfNsiProfile'
'403' :
description: Forbidden
'500' :
description: Internal Server Error
'503' :
description: Service Unavailable
default:
description: Unexpected error
'/nssf-configurations/v1/nsiprofiles/{name}':
get:
summary: "Read a network slice instance profile"
tags:
- "Read a network slice instance profile"
parameters:
- name: name
in: path
description: "network slice instance profile name"
required: true
schema:
type: string
responses:
'200' :
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/NssfNsiProfile'
'400' :
description: Bad Request
'403' :
description: Forbidden
'404' :
description: Not Found
'405' :
description: Method Not Allowed
'409' :
description: Conflict
'500' :
description: Internal Server Error
'502' :
description: Bad Gateway
'503' :
description: Service Unavailable
default:
description: Unexpected error
delete:
summary: "Delete a network slice instance profile"
tags:
- "Delete a network slice instance profile"
parameters:
- name: name
in: path
description: "network slice instance profile name"
required: true
schema:
type: string
responses:
'204' :
description: No Content
'403' :
description: Forbidden
'404' :
description: No Found
'500' :
description: Internal Server Error
'503' :
description: Service Unavailable
default:
description: Unexpected error
'/nssf-configuration/v1/nssrules':
post:
summary: "Create a network slice selection rule"
tags:
- "Create a network slice selection rule"
requestBody:
content:
application/json: # Media type
schema: # Request body contents
$ref: '#/components/schemas/NssfNssRule'
responses:
'201' :
description: Created
'403' :
description: Forbidden
'409' :
description: Conflict
'500' :
description: Internal Server Error
'503' :
description: Service Unavailable
default:
description: Unexpected error
get:
summary: "Read all network slice selection rules"
tags:
- "Read all network slice selection rules"
responses:
'200' :
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/NssfNssRule'
'403' :
description: Forbidden
'500' :
description: Internal Server Error
'503' :
description: Service Unavailable
default:
description: Unexpected error
'/nssf-configuration/v1/nssrule/{name}':
get:
summary: "Read a network slice selection rule"
tags:
- "Read a network slice selection rule"
parameters:
- name: name
in: path
description: "network slice selection rule name"
required: true
schema:
type: string
responses:
'200' :
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/NssfNssRule'
'400' :
description: Bad Request
'403' :
description: Forbidden
'404' :
description: Not Found
'405' :
description: Method Not Allowed
'409' :
description: Conflict
'500' :
description: Internal Server Error
'502' :
description: Bad Gateway
'503' :
description: Service Unavailable
default:
description: Unexpected error
delete:
summary: "Delete a network slice selection rule"
tags:
- "Delete a network slice selection rule"
parameters:
- name: name
in: path
description: "network slice selection rule name"
required: true
schema:
type: string
responses:
'204' :
description: No Content
'403' :
description: Forbidden
'404' :
description: No Found
'500' :
description: Internal Server Error
'503' :
description: Service Unavailable
default:
description: Unexpected error
'/nssf-configuration/v1/nssaiauth':
post:
summary: "Create a network slice authentication rule"
tags:
- "Create a network slice authentication rule"
requestBody:
content:
application/json: # Media type
schema: # Request body contents
$ref: '#/components/schemas/NssfNssaiAuth'
responses:
'201' :
description: Created
'403' :
description: Forbidden
'409' :
description: Conflict
'500' :
description: Internal Server Error
'503' :
description: Service Unavailable
default:
description: Unexpected error
get:
summary: "Read all network slice authentication rules"
tags:
- "Read all network slice authentication rules"
responses:
'200' :
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/NssfNssaiAuth'
'403' :
description: Forbidden
'500' :
description: Internal Server Error
'503' :
description: Service Unavailable
default:
description: Unexpected error
'/nssf-configuration/v1/timeprofiles':
post:
summary: "Create a time profile"
tags:
- "Create a time profile"
requestBody:
content:
application/json: # Media type
schema: # Request body contents
$ref: '#/components/schemas/Nssftimeprofile'
responses:
'201' :
description: Created
'403' :
description: Forbidden
'409' :
description: Conflict
'500' :
description: Internal Server Error
'503' :
description: Service Unavailable
default:
description: Unexpected error
get:
summary: "Read all time profiles"
tags:
- "Read all time profiles"
responses:
'200' :
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Nssftimeprofile'
'403' :
description: Forbidden
'500' :
description: Internal Server Error
'503' :
description: Service Unavailable
default:
description: Unexpected error
'/nssf-configurations/v1/timeprofiles/{name}':
get:
summary: "Read a time profile"
tags:
- "Read a time profile"
parameters:
- name: name
in: path
description: "time profile name"
required: true
schema:
type: string
responses:
'200' :
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Nssftimeprofile'
'400' :
description: Bad Request
'403' :
description: Forbidden
'404' :
description: Not Found
'405' :
description: Method Not Allowed
'409' :
description: Conflict
'500' :
description: Internal Server Error
'502' :
description: Bad Gateway
'503' :
description: Service Unavailable
default:
description: Unexpected error
delete:
summary: "Delete a time profile"
tags:
- "Delete a time profile"
parameters:
- name: name
in: path
description: "time profile name"
required: true
schema:
type: string
responses:
'204' :
description: No Content
'403' :
description: Forbidden
'404' :
description: No Found
'500' :
description: Internal Server Error
'503' :
description: Service Unavailable
default:
description: Unexpected error
'/nssf-configuration/v1/nssaiAuth/{name}':
get:
summary: "Read a network slice authentication rule"
tags:
- "Read a network slice authentication rule"
parameters:
- name: name
in: path
description: "network slice authentication rule name"
required: true
schema:
type: string
responses:
'200' :
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/NssfNssaiAuth'
'400' :
description: Bad Request
'403' :
description: Forbidden
'404' :
description: Not Found
'405' :
description: Method Not Allowed
'409' :
description: Conflict
'500' :
description: Internal Server Error
'502' :
description: Bad Gateway
'503' :
description: Service Unavailable
default:
description: Unexpected error
delete:
summary: "Delete a network slice authentication rule"
tags:
- "Delete a network slice authentication rule"
parameters:
- name: name
in: path
description: "network slice authentication rule name"
required: true
schema:
type: string
responses:
'204' :
description: No Content
'403' :
description: Forbidden
'404' :
description: No Found
'500' :
description: Internal Server Error
'503' :
description: Service Unavailable
default:
description: Unexpected error
'/nssf-configuration/v1/amfresolutions':
post:
summary: "Create a Amf Resolution"
tags:
- "Create a Amf Resolution"
requestBody:
content:
application/json: # Media type
schema: # Request body contents
$ref: '#/components/schemas/NssfAmfResolution'
responses:
'201' :
description: Created
'403' :
description: Forbidden
'409' :
description: Conflict
'500' :
description: Internal Server Error
'503' :
description: Service Unavailable
default:
description: Unexpected error
get:
summary: "Read all Amf Resolutions"
tags:
- "Read all Amf Resolutions"
responses:
'200' :
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/NssfAmfResolution'
'403' :
description: Forbidden
'500' :
description: Internal Server Error
'503' :
description: Service Unavailable
default:
description: Unexpected error
'/nssf-configurations/v1/amfresolutions/{region_id}[:{set_id}[:{instance_id}]]':
get:
summary: "Read a Amf Resolution"
tags:
- "Read a Amf Resolution"
parameters:
- name: region_id
in: path
description: "Amf Region ID"
required: true
schema:
type: string
- name: set_id
in: path
description: "Amf Set ID"
required: true
schema:
type: string
- name: instance_id
in: path
description: "Amf instance ID"
required: true
schema:
type: string
responses:
'200' :
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/NssfAmfResolution'
'400' :
description: Bad Request
'403' :
description: Forbidden
'404' :
description: Not Found
'405' :
description: Method Not Allowed
'409' :
description: Conflict
'500' :
description: Internal Server Error
'502' :
description: Bad Gateway
'503' :
description: Service Unavailable
default:
description: Unexpected error
delete:
summary: "Delete a Amf Resolution"
tags:
- "Delete a Amf Resolution"
parameters:
- name: region_id
in: path
description: "Amf region ID"
required: true
schema:
type: string
- name: set_id
in: path
description: "Amf set ID"
required: true
schema:
type: string
- name: instance_id
in: path
description: "Amf instance ID"
required: true
schema:
type: string
responses:
'204' :
description: No Content
'403' :
description: Forbidden
'404' :
description: No Found
'500' :
description: Internal Server Error
'503' :
description: Service Unavailable
default:
description: Unexpected error
'/nssf-configuration/v1/configurednssais':
post:
summary: "Create a Configured S-NSSAI "
tags:
- "Create a Configured S-NSSAI "
requestBody:
content:
application/json: # Media type
schema: # Request body contents
$ref: '#/components/schemas/NssfConfiguredNssai'
responses:
'201' :
description: Created
'403' :
description: Forbidden
'409' :
description: Conflict
'500' :
description: Internal Server Error
'503' :
description: Service Unavailable
default:
description: Unexpected error
get:
summary: "Read all Configured S-NSSAI "
tags:
- "Read all Configured S-NSSAI "
responses:
'200' :
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/NssfConfiguredNssai'
'403' :
description: Forbidden
'500' :
description: Internal Server Error
'503' :
description: Service Unavailable
default:
description: Unexpected error
'/nssf-configurations/v1/configurednssais/{amf_id}:{mcc}:{mnc}[:{tac}[:{sst}:{sd}]]':
get:
summary: "Read a Amf Resolution"
tags:
- "Read a Amf Resolution"
parameters:
- name: amf_id
in: path
description: "Amf ID"
required: true
schema:
type: string
- name: mcc
in: path
description: "Mobile country code"
required: true
schema:
type: string
- name: mnc
in: path
description: "Mobile Network code"
required: true
schema:
type: string
- name: tac
in: path
description: "Tracking Area code"
required: true
schema:
type: string
- name: sst
in: path
description: "Slice service type"
required: true
schema:
type: integer
- name: sd
in: path
description: "Slice descriptor"
required: true
schema:
type: string
pattern: '^[A-Fa-f0-9]{6}$'
responses:
'200' :
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/NssfConfiguredNssai'
'400' :
description: Bad Request
'403' :
description: Forbidden
'404' :
description: Not Found
'405' :
description: Method Not Allowed
'409' :
description: Conflict
'500' :
description: Internal Server Error
'502' :
description: Bad Gateway
'503' :
description: Service Unavailable
default:
description: Unexpected error
delete:
summary: "Delete a Amf Resolution"
tags:
- "Delete a Amf Resolution"
parameters:
- name: amf_id
in: path
description: "Amf ID"
required: true
schema:
type: string
- name: mcc
in: path
description: "Mobile country code"
required: true
schema:
type: string
- name: mnc
in: path
description: "Mobile Network code"
required: true
schema:
type: string
- name: tac
in: path
description: "Tracking Area code"
required: true
schema:
type: string
- name: sst
in: path
description: "Slice service type"
required: true
schema:
type: integer
- name: sd
in: path
description: "Slice descriptor"
required: true
schema:
type: string
pattern: '^[A-Fa-f0-9]{6}$'
responses:
'204' :
description: No Content
'403' :
description: Forbidden
'404' :
description: No Found
'500' :
description: Internal Server Error
'503' :
description: Service Unavailable
default:
description: Unexpected error
components:
schemas:
NssfNssaiAuth:
type: object
properties:
name:
type: string
description: "Authentication Rule Name"
minLength: 1
maxLength: 255
example: "AUTH-RULE-1"
plmnId:
$ref: '#/components/schemas/PlmnId'
tac:
type: string
description: "AMF Identifier"
minLength: 1
maxLength: 255
snssai:
$ref: '#/components/schemas/Snssai'
grant:
type: string
enum:
- ALLOWED
- RESTRICTED
NssfNsiProfile:
type: object
properties:
name:
type: string
description: "Network Slice Instance Profile Name"
minLength: 1
maxLength: 255
example: "Slice01"
nrfUri:
type: string
description: "URI of the Network Resource Function"
minLength: 1
maxLength: 255
example: nrf.oracle.com
nsiId:
type: string
description: "Network Slice Intance Identifier"
minLength: 1
maxLength: 255
targetAmfSets:
type: array
description: "List of Target AMF Sets mapped to this Network Slice Instance"
items:
$ref: '#/components/schemas/NssfTargetAmfSet'
minItems: 1
required:
- name
- nrfUri
- targetAmfSets
NssfTargetAmfSet:
type: object
properties:
regionId:
type: string
description: "Target AMF Region Id"
minLength: 1
maxLength: 2
example: "01"
setId:
type: string
description: "Target AMF Set Id"
minLength: 1
maxLength: 3
example: "001"
setFqdn:
type: string
description: "Target AMF Set Fqdn"
pattern: "^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.){2,}([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]){2,}$"
example: "set001.region01.amfset.5gc.mnc311.mcc282.3gppnetwork.org"
required:
- regionId
- setId
NssfNssRule:
type: object
properties:
name:
type: string
description: "Network Slice Selection Rule Name"
minLength: 1
maxLength: 255
example: "NSS-Rule01"
amfId:
type: string
description: "AMF Identifier"
minLength: 1
maxLength: 255
plmnId:
$ref: '#/components/schemas/PlmnId'
tac:
type: string
description: "AMF Identifier"
minLength: 1
maxLength: 255
snssai:
$ref: '#/components/schemas/Snssai'
salience:
type: integer
description: "Order of importance, higher salience, more important"
minimum: 0
maximum: 65535
behavior:
$ref: '#/components/schemas/NssfNssRuleBehavior'
required:
- name
- nrfUri
- snssai
- behavior
PlmnId:
type: object
properties:
mcc:
type: string
description: "Mobile Country Code"
minLength: 1
maxLength: 3
mnc:
type: string
description: "Mobile Network Code"
minLength: 1
maxLength: 3
required:
- mcc
- mnc
Snssai:
type: object
properties:
sst:
type: integer
minimum: 0
maximum: 255
sd:
type: string
pattern: '^[A-Fa-f0-9]{6}$'
required:
- sst
NssfNssRuleBehavior:
type: object
properties:
grant:
type: string
enum:
- ALLOWED
- RESTRICTED
description: "Whether the requested S-NSSAI is allowed or restricted"
accessType:
type: string
enum:
- 3GPP_ACCESS
- NON_3GPP_ACCESS
description: "Access Type in which the grant applies"
nsiProfiles:
type: array
items:
properties:
name:
type: string
description: "Network Slice Instance profile name"
salience:
type: integer
description: "Order of importance, higher salience, more important"
required:
- name
required:
- accessType
Nssftimeprofile:
type: object
properties:
name:
type: string
description: "Network Slice Instance Profile Name"
minLength: 1
maxLength: 255
example: "TimeProfile01"
startDate:
type: string
description: "Start Date format yyyy-mm-dd"
example: "2044-11-01"
endDate:
type: string
description: "end Date format yyyy-mm-dd"
example: "2044-11-09"
daysOfWeek:
type: array
description: "List of days on which profile is active"
items:
$ref: '#/components/schemas/DaysOfWeek'
timeSpans:
type: array
items:
properties:
startTime:
type: string
description: "Start time format hh:mm:ss"
endTime:
type: string
description: "end time format hh:mm:ss"
required:
- startTime
- endTime
required:
- name
- startTime
- endTime
DaysOfWeek:
description: "Days of Week"
enum:
- MONDAY
- TUESDAY
- WEDNESDAY
- THURSDAY
- FRIDAY
- SATURDAY
- SUNDAY
NssfAmfResolution:
type: object
properties:
reqionId:
type: string
description: "Region Id of AMF"
minLength: 2
maxLength: 3
example: "101"
setId:
type: string
description: "Set Id of AMF"
minLength: 2
maxLength: 3
example: "101"
candidateAmfList:
type: array
items:
properties:
fqdn:
type: string
description: "AMF FQDN"
instanceId:
type: string
description: "NF isnstance ID of AMF"
required:
- instanceId
required:
- reqionId
- setId
- candidateAmfList
NssfConfiguredNssai:
type: object
properties:
amfId:
type: string
description: "AMF Identifier"
minLength: 1
maxLength: 255
plmnId:
$ref: '#/components/schemas/PlmnId'
tac:
type: string
description: "TAC Identifier"
minLength: 1
maxLength: 255
nssai:
type: array
description: "List of Configured S-Nssais"
items:
$ref: '#/components/schemas/Snssai'
minItems: 1
salience:
type: integer
description: "Order of importance, higher salience, more important"
minimum: 0
maximum: 65535
required:
- nssai