3 NSSF REST Specifications

This chapter provides information about REST specifications used in Oracle Communications Cloud Native Core, Network Selection Slice Selection Function (NSSF).

NSSF can be configured using Helm configurations, REST APIs, and Cloud Native Core (CNC) Console. The NSSF deployment configurations are performed during installation using Helm, and a few configurations are modified using REST APIs. REST configurations can also be performed using the Cloud Native Configuration (CNC) Console.

Caution:

The operator must make NSSF healthy before making any configuration change for the changes to effect. NSSF is considered healthy when all its services are up and running.

For HELM configurations, see Oracle Communications Cloud Native Core, Network Slice Selection Function Installation, Upgrade, and Fault Recovery Guide.

For the configurations using CNC Console, see Oracle Communications Cloud Native Core, Network Slice Selection Function User Guide.

3.1 SystemOptions

Managed object to configure SystemOptions. It consists of feature flags used to enable or disable various features within NSSF.
  • This Managed Object is independent of other Managed Objects and is created during a fresh installation of NSSF, with values based on helm parameters.
  • The operator can later update these options, but deletion is not supported; only GET and PUT operations are allowed if SystemOptions is not configured.

Note:

  • During a fresh installation, no configuration is present for system options. The operator must configure the system options first. Until the system options are configured, it is not possible to configure other settings.
  • All NSSF microservices check the database for SystemOptions upon startup.
  • During an upgrade, the current system options are stored in a backup table, and the new system options for the updated version are computed and stored.

Table 3-1 SystemOptions - Supported REST APIs

URI Description Data Type HTTP Method
/nnssf-configuration/v1/systemoptions Returns array of all configured SystemOptions. There will be only one active SystemOptions on an NSSF. SystemOptions GET
/nnssf-configuration/v1/systemoptions Update the existing SystemOptions object SystemOptions PUT

SystemOptions - Dependencies

This Managed Object is not dependent on other Managed Objects.

Request or Response Body Parameters

Table 3-2 Request or Response Body Parameters

Parameter Description Details
autoAuthorizeNssaiAvailabilityDataEnable

This is a mandatory parameter.

Main object containing other objects required for enhanced computation of allowedNSSAI in NSSF.

Data Type: Boolean

enhancedPatchBehaviourEnable

This is a mandatory parameter.

Enables or disables allowing zero Snssai in TAI. When true, NSSF shall allow NssaiAvailabilityPatch to remove all Supported SNSSAIs in TAI, as well as in PUT for NssaiAvailability.

Data Type: Boolean

plmnLevelSystemOptionsList

This is a mandatory parameter.

Array of per-PLMN system options. Every PLMN must be covered, otherwise API will return 400 Bad Request.

Data Type: Array

Table 3-3 Request or Response Body Parameters- plmnLevelSystemOptions

Parameter Description Details
plmnId

This is a mandatory parameter.

PLMN ID in format mcc-mnc. Must uniquely identify the PLMN. Cross-check with PLMN level info to verify all PLMNs are covered.

Data Type: String

enhancedAllowedNssaiEnable

This is a mandatory parameter.

Enables or disables enhancedAllowedNssai feature for the specified PLMN.

Data Type: Boolean

Example

{
  "autoAuthorizeNssaiAvailabilityDataEnable": false,
  "enhancedPatchBehaviourEnable": false,
  "plmnLevelSystemOptionsList": [
    {
      "plmnId": "311-480",
      "enhancedAllowedNssaiEnable": false
    }
  ]
}

3.2 NsiProfiles

The NsiProfiles is a mandatory Managed Object. It consists of network slice identification information, including the NSI ID and NRF-URI. This Managed Object contains the essential details defining a network slice instance, used for NSSF operation and selection.

NSI Profiles - Supported REST APIs

Table 3-4 NSI Profiles - Supported REST APIs

URI Description Data Type HTTP Method
/nnssf-configuration/v1/nsiprofiles Returns an array of all configured NSI Profiles. array(NsiProfile) GET
/nnssf-configuration/v1/nsiprofiles Create a network slice instance profile. NsiProfile POST
/nnssf-configuration/v1/nsiprofiles/{nsiId} Read a network slice instance profile. Returns NsiProfile based on the given nsiId. NsiProfile GET
/nnssf-configuration/v1/nsiprofiles/{nsiId} Delete a network slice instance profile based on nsiId.

Checks:

- NSI Profile must not be linked to any ConfiguredSNSSAI in any PLMN.

- NSI Profile must not be linked to any not allowed SupportedSlicesMapping.

NsiProfile DELETE
/nnssf-configuration/v1/nsiprofiles/{nsiId} Update a network slice instance profile based on nsiId.

Note: nsiId is immutable; all other parameters are mutable.

NsiProfile PUT

NSI Profiles - Dependencies

This Managed Object is not dependent on other Managed Objects. No prerequisites are required for configuring NSI Profiles.

Request or Response Body Parameters

The NSI Profiles Managed Object allows the configuration and management of Network Slice Instance (NSI) profiles. The operator can create, modify, or retrieve these profiles by providing the appropriate parameters in the request or by receiving them in the response.

The key parameters used in the request or response bodies enable the configuration of the Network Slice by defining specific attributes, such as the NSI ID and NRF URL (Network Resource Function URL) corresponding to the slice.

Table 3-5 NSI Profiles - Parameters

Parameter Description Details
nrfUri This is a mandatory parameter.

Contains the API URI of the NRF NFDiscovery Service to be used for selecting the NFs or services within the selected Network Slice instance.

Data Type: URI

nsiId This is a mandatory parameter.

Contains the identifier of the selected Network Slice Instance

Note: nsiId is stored in UPPER CASE in database.

Data Type: NsiId

nrfNfMgtUri This is an optional parameter.

When present, it contains the API URI of the NRF NFManagement Service.

Data Type: URI

nrfAccessTokenUri This is a mandatory parameter.

When present, it contains the API URI of the NRF Access Token Service.

Data Type: URI

Examples

 {
  "nsiId": "NSI-1",
  "nrfUri": "https://nrf.slice1.oracle.com/nnrf-disc/v1",
  "nrfNfMgtUri": "https://nrf.slice1.oracle.com/nnrf-nfm/v1",
  "nrfAccessTokenUri": "https://nrf.slice1.oracle.com/oauth2/token"
}

Note:

nsiId is stored in UPPER CASE in database.

3.3 PlmnConfig

The PlmnConfig is a mandatory managed object that contains configurations applicable to a specific PLMN, uniquely identified by its PLMN ID. Multiple PLMN is supported. Hence, it is required to configure all supported PLMNs.

Key Parameters:

  1. plmnid – Mandatory
    • Description: Identifies the PLMN for which the configuration is being applied.
  2. configuredNSSAI (Configured Network Slice Selection Assistance Information) – Mandatory
    • Description: Lists all S-NSSAIs (Single Network Slice Selection Assistance Information) configured at the PLMN level. This represents the complete set of S-NSSAIs that can be supported in TAIs (Tracking Area Identifiers) within the PLMN.
    • Usage:
      • If an NsSelection GET request contains a requestedNSSAI not present in configuredNSSAI, the NSSF (Network Slice Selection Function) will include the configured NSSAI in the response.
      • S-NSSAI support for a TAI within the PLMN is considered unauthorized unless explicitly listed in configuredNSSAI.
  3. barredSnssaiList (Restricted Network Slice Selection Assistance Information) – Optional
    • Description: Lists S-NSSAIs that are restricted or barred within the PLMN. Any S-NSSAI in this list must not be included in the supportedslicesmapping for any TAI within the PLMN, ensuring that restricted S-NSSAIs are unavailable for use.
    • Usage: Ensures that certain S-NSSAIs are completely unavailable for selection within the PLMN.
  4. nsiInformationList (Network Slice Instance Information) – Mandatory
    • Description: Defines the default fallback network slice instance information for the PLMN. This information applies to all TAI-S-NSSAI combinations unless overridden by Allowed NSSAI.
    • Usage: If nsiInformation is not explicitly configured or if auto-configuration is enabled, this list serves as the default fallback for slice selection.

PlmnConfig - Supported REST APIs

Table 3-6 PlmnConfig - Supported REST APIs

URI Description Details
/nnssf-configuration/v1/plmnconfig Create a PLMN Config

Data Type: plmnconfig

HTTP Method: POST

/nnssf-configuration/v1/plmnconfig Read all PLMN Configs

Data Type: plmnconfig

HTTP Method: GET

/nnssf-configuration/v1/plmnconfig/{plmnId} Update a PLMN Config

Data Type: plmnconfig

HTTP Method: PUT

/nnssf-configuration/v1/plmnconfig/{plmnId} Read a PLMN Config

Data Type: plmnconfig

HTTP Method: GET

/nnssf-configuration/v1/plmnconfig/{plmnId} Delete a PLMN Config

Data Type: plmnconfig

HTTP Method: DELETE

PlmnConfig- Dependencies

Required NsiProfiles and SystemOptions must be configured beforehand in order to configure PlmnConfig. Only PLMNs that are configured in SystemOptions will be accepted as part of PlmnConfig.

Request or Response Body Parameters

Table 3-7 PlmnConfig- Parameters

Parameter Description Details
plmnId This is a mandatory parameter.

Identifies the PLMN for which the configuration is being made. Format: mcc-mnc.

For more details, see Plmnid.

Data Type: String

plmnInfo This is a mandatory parameter.

Configuration of PLMN: Contains the Configured NSSAI for the PLMN, the Barred SNSSAI for the PLMN, and the default fallback Network Slice Instance information for the PLMN.

For more information, see PlmnInfo.

Data Type: PlmnInfo

Examples

{
    "plmnId": "311-480",
    "plmnInfo": {
        "configuredNssai": [
            {
                "sst": "1",
                "sd": "EABB01",
                "accessType": "3GPP_ACCESS",
                "nsiInformationList": [
                    {
                        "nsiProfileId": "NSI-1",
                        "salience": "4"
                    },
                    {
                        "nsiProfileId": "NSI-2",
                        "salience": "2"
                    }
                ]
            },
            {
                "sst": "2",
                "sd": "EABB02",
                "accessType": "3GPP_ACCESS",
                "nsiInformationList": [
                    {
                        "nsiProfileId": "NSI-2",
                        "salience": "3"
                    }
                ]
            },
            {
                "sst": "3",
                "sd": "EABB03",
                "accessType": "BOTH"
            },
            {
                "sst": "4",
                "sd": "EABB04",
                "accessType": "NON_3GPP_ACCESS"
            },
            {
                "sst": "5",
                "sd": "EABB05",
                "accessType": "BOTH"
            },
            {
                "sst": "6",
                "sd": "EABB06",
                "accessType": "NON_3GPP_ACCESS"
            },
            {
                "sst": "7",
                "sd": "EABB07",
                "accessType": "BOTH"
            },
            {
                "sst": "8",
                "sd": "EABB08",
                "accessType": "NON_3GPP_ACCESS"
            },
            {
                "sst": "9",
                "sd": "EABB09",
                "accessType": "BOTH"
            },
            {
                "sst": "10",
                "sd": "EABB10",
                "accessType": "NON_3GPP_ACCESS"
            }
        ],
        "barredSnssaiList": [
            {
                "sst": "5",
                "sd": "EABB05"
            }
        ],
        
        "nsiInformationList": [
            {
                "nsiProfileId": "NSI-1",
                "salience": "3"
            }
        ]
    }
}

3.4 SupportedSlicesMapping

The SupportedSlicesMapping is an optional managed object that enables configuration and management of supported slices based on TAI (Tracking Area Identity).

This managed object is applicable only if auto-authorization of NssaiAvailability data is not enabled. Operator shall be allowed to configure this managed object even when the feature is enabled, but such configurations will be stored in the database without effect.

SupportedSlicesMapping - Supported REST APIs

Table 3-8 SupportedSlicesMapping - Supported REST APIs

URI Description Data Type HTTP Method
/nnssf-configuration/v1/supportedslicesmapping Create a SupportedSlicesMapping. supportedslicesmapping POST
/nnssf-configuration/v1/supportedslicesmapping Read all SupportedSlices mappings supportedslicesmapping GET
/nnssf-configuration/v1/supportedslicesmapping/{name} Update a SupportedSlices mapping supportedslicesmapping PUT
/nnssf-configuration/v1/supportedslicesmapping/{name} Read a Supported Slices mapping supportedslicesmapping GET
/nnssf-configuration/v1/supportedslicesmapping/{name} Delete a Supported Slices mapping supportedslicesmapping DELETE

SupportedSlicesMapping - Dependencies

We need NsiProfile, SystemOptions, and PlmnConfig to configure Supported Slices Mapping.

Request or Response Body Parameters

Table 3-9 SupportedSlicesMapping - Parameters

Parameter Description Details
name This is a mandatory parameter.

Unique Identifier of the mapping.

Note: name is stored in UPPER CASE in the database.

Data Type: string

supportedSnssaiList

This is a mandatory parameter.

SnssaiInfo Allowed for List of TAIs

  1. Validate NSI Profile Existence: Ensure that each NSI profile specified is present in the NSI profiles table.
  2. Validate SNSSAI Uniqueness: Check that there are no duplicate SNSSAIs within the same entry.
  3. Validate SNSSAI Configuration: Verify that all specified SNSSAIs are part of the ConfiguredNssai for the PLMN specified in plmnTacList.
  4. Validate SNSSAI Barred Status: Ensure that none of the specified SNSSAIs are included in the barredSnssaiList for the PLMN specified in plmnTacList.
  5. Validate SNSSAI Configuration Conflict: Check that no SNSSAI is configured in BarredSlicesMappingConfig for the same TAI.
  6. Validate AccessType: Validate AccessType of each SNSSAI should be the same as that of AccessType in corresponding SNSSAI in the ConfiguredNssai for the PLMN specified.

Data Type: array<SnssaiInfo>

See SnssaiInfo

plmnTacList

This is a mandatory parameter.

List of TACs in a PLMN for Which Supported Slices are Being Configured per PLMN

Validations to be Performed

  1. Validate PLMN Membership: Verify that the PLMN obtained from plmnTacList is included in the list of supported PLMNs.
  2. Validate TAC Uniqueness: Ensure that the tacList contains unique TACs, with no duplication of TACs either within the same entry or across different entries.

Examples and Invalid Cases

  • Supported PLMNs Example:
    • PLMN: (311-480)
  • plmnTacList Example 1:
    • plmn: 311-480
      • tac1: (1001)
      • tac2: (1002)
      • tac3: (1003)
  • Invalid Examples:

    • Duplication of TACs in plmnTacList:
      • Entry 1: tac1, tac2 and Entry 2: tac2, tac3 (Invalid, as tac2 is common between the entries)
      • Entry 1: tac1, tac2, tac1 (Invalid, as tac1 is repeated within the same entry)
    • plmnTacList Belonging to an Unsupported PLMN:
      • The plmnTacList contains a PLMN that is not supported.

For more information, see PlmnTacList.

Data Type: PlmnTacList

Examples

 
  {
  "name": "SUPPORTED-SNSSAIS-CONFIG-1",
  "supportedSnssaiList": [
    {
      "sst": 1,
      "sd": "EABB01",
      "accessType": "3GPP_ACCESS",
      "nsiInformationList": [
        {
          "nsiProfileId": "NSI-1",
          "salience": 2
        }
      ]
    },
    {
      "sst": 1,
      "sd": "EABB02",
      "accessType": "3GPP_ACCESS",
      "nsiInformationList": [
        {
          "nsiProfileId": "NSI-1",
          "salience": 2
        }
      ]
    }
  ],
  "plmnTacList": {
    "plmnId": "311-480",
    "tacList": [
      {
        "tac": "202400"
      },
      {
        "tac": "202401"
      },
      {
        "tac": "202402"
      }
    ]
  }
}

3.5 BarredSlicesMapping

This is an optional managed object. The Barred Slices Mapping Config allows for the configuration and management of slice restrictions based on TAI (Tracking Area Identity). The operator is allowed to configure this managed object even when the feature is enabled, but in that case, the configuration will only be stored in the database and will not take effect.

BarredSlicesMapping - Supported REST APIs

Table 3-10 BarredSlicesMapping - Supported REST APIs

URI Description Details
/nnssf-configuration/v1/barredslicesmapping Create a Barred Slices mapping

Data Type: barredslicesmapping

HTTP Method: POST

/nnssf-configuration/v1/barredslicesmapping Read all Barred Slices mappings

Data Type: barredslicesmapping

HTTP Method: GET

/nnssf-configuration/v1/barredslicesmapping/{name} Update a Barred Slices mapping

Data Type: barredslicesmapping

HTTP Method: PUT

/nnssf-configuration/v1/barredslicesmapping/{name} Read a Barred Slices mapping

Data Type: barredslicesmapping

HTTP Method: GET

/nnssf-configuration/v1/barredslicesmapping/{name} Delete a Barred Slices mapping

Data Type: barredslicesmapping

HTTP Method: DELETE

BarredSlicesMapping- Dependencies

Required NsiProfiles, SystemOptions, and PlmnConfig must be configured beforehand in order to configure BarredSlicesMapping.

Request or Response Body Parameters

Table 3-11 BarredSlicesMapping- Parameters

Parameter Description Details
name This is a mandatory parameter.

Unique Identifier of mapping

Note: name is stored in UPPER CASE in the database.

Data Type: string

barredSnssaiList This is a mandatory parameter.

Slices Configured as Barred for List of TACs

Validations to be performed:

  1. Validate SNSSAI Uniqueness: Ensure there are no duplicate SNSSAIs within the same entry.
  2. Validate SNSSAI Configuration: Verify that all specified SNSSAIs are included in the ConfiguredNssai for the PLMN specified in plmnTacList.
  3. Validate SNSSAI Barred Status: Ensure that none of the specified SNSSAIs are present in the barredSnssaiList for the PLMN specified in plmnTacList.
  4. Validate SNSSAI Configuration Conflict: Check that no SNSSAI is configured in the SupportedSlicesMappingConfig for the same TAI.

Data Type: array<Snssai>

See Snssai

plmnTacList This is a mandatory parameter.

List of TACs for Which Barred Slices Are Being Configured per PLMN

Validations to be Performed:

  1. Validate PLMN Membership: Verify that the PLMN specified in plmnTacList is part of the supported PLMNs.
  2. Validate TAC Uniqueness: Ensure that the tacList contains unique TACs, with no duplication either within the same entry or across different entries.

Examples and Invalid Cases:

  • Supported PLMNs Example:
    • PLMN: (311-480)
  • plmnTacList Example 1:
    • plmn: 311-480
      • tac1: (1001)
      • tac2: (1002)
      • tac3: (1003)
  • Invalid Examples:
    • Duplication of TACs in plmnTacList:
      • Entry 1: tac1, tac2 and Entry 2: tac2, tac3

        (Invalid, as tac2 is common between the entries)

      • Entry 1: tac1, tac2, tac1

        (Invalid, as tac1 is repeated within the same entry)

    • plmnTacList Belonging to an Unsupported PLMN:
      • The plmnTacList contains a PLMN that is not supported.

For more information, see PlmnTacList.

Data Type: PlmnTacList

Examples

{
  "name": "BARRED-SNSSAIS-CONFIG-1",
  "barredSnssaiList": [
    {
      "sst": 3,
      "sd": "EABB03"
    },
     {
      "sst": 4,
      "sd": "EABB04"
    }
  ],
  "plmnTacList": {
    "plmnId": "311-480",
    "tacList": [
      {
        "tac": "202509"
      },
      {
        "tac": "202510"
      }
    ]
  }
}

3.6 GrSites

GrSites is a conditional Managed Object. It is relevant only if georedundancy (global.grEnabled) is enabled. GrSite enables the customer to configure GrSites information.

GrSites - Supported REST APIs

Table 3-12 GrSites - Supported REST APIs

URI Description Details
/nnssf-configuration/v1/grsites It returns array of all configured GrSites.

Data Type: Array(GrSite)

HTTP Method: GET

/nnssf-configuration/v1/grsites/{nfInstanceId} It returns GrSites for corresponding nfInstanceId.

Data Type: GrSite

HTTP Method: GET

/nnssf-configuration/v1/grsites It creates a GrSite.

Data Type: GrSite

HTTP Method: POST

/nnssf-configuration/v1/grsites/{nfInstanceId} It updates only GrSite rank for the corresponding nfInstanceId.

Data Type: GrSite

HTTP Method: PUT

/nnssf-configuration/v1/grsites/{nfInstanceId} It deletes GrSite for corresponding nfInstanceId.

Data Type: GrSite

HTTP Method: DELETE

GrSites - Dependencies

This Managed Object is not dependent on other Managed Objects. Hence, configuration of any other Managed Objects is not a prerequisite to configure GrSite.

Note:

It is applicable only when georedundancy is enabled in the helm options. For information about enabling georedundancy, see Georedundancy section in Oracle Communications Cloud Native Core, Network Slice Selection Function User Guide.

Request or Response Body Parameters

The GrSites Managed Object enables the configuration of different sites for the NSSF. This Managed Object allows an operator to configure various sites with different priorities, ranks, and statuses.

Table 3-13 GrSites - Parameters

Parameter Description Details
nfInstanceId This is a mandatory parameter.

Contains the instance ID of the site NSSF.

Validation - Controlled at application layer

uuid

Unique

Data Type: String

siteId This is a mandatory parameter.

Contains the instance ID of the site NSSF.

Validation - Controlled at application layer

Unique

Data Type: String

Rank This is a mandatory parameter.

Contains the priority given by the operator to related georedundant sites.

Validation - Controlled at application layer

Unique

Data Type: Integer

Examples

Sample GrSites Configuration
{
    "siteId": "01",
    "nfInstanceId": "9faf1bbc-6e4a-4454-a507-aef01a101a01",
    "rank": 1
}
Example

The following example shows how a GrSite is onboarded by submitting a POST request on the REST resource using cURL:

Example Curl Command:
1. curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/grsites -H 'Content-Type: application/json' -d '{ "rank": "1", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b1", "siteId": "01"}'
2. curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/grsites -H 'Content-Type: application/json' -d '{ "rank": "2", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b2", "siteId": "02"}'
3. curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/grsites -H 'Content-Type: application/json' -d '{ "rank": "3", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b3", "siteId": "03"}'
 
Example Response:
1. { "rank": "1", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b1", "siteId": "01", "grSiteStatus":"ACTIVE" }
2. { "rank": "2", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b2", "siteId": "02", "grSiteStatus":"ACTIVE" }
3. { "rank": "3", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b3", "siteId": "03", "grSiteStatus":"ACTIVE" }
Example Curl Command:
curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/grsites -H 'Content-Type: application/json' -d '{ "rank": "1", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b1", "siteId": "01"}'
 
curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/grsites -H 'Content-Type: application/json' -d '{ "rank": "2", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b2", "siteId": "02"}'
 
curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/grsites -H 'Content-Type: application/json' -d '{ "rank": "3", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b3", "siteId": "03"}'

Example of the Response Body:

{ "rank": "1", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b1", "siteId": "01", "grSiteStatus":"ACTIVE" }
 
{ "rank": "2", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b2", "siteId": "02", "grSiteStatus":"ACTIVE" }
 
{ "rank": "3", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b3", "siteId": "03", "grSiteStatus":"ACTIVE" }

3.7 NSSF Backup and Restore Configurations

These APIs provide functionality to back up existing configuration, delete existing configuration, and to restore a (stored) back up.

  • Request_Type: PUT/GET
  • URL: http://{apiRoot}/nnssf-configuration/v1/allconfig
  • Content-Type: application/json
  • Initiated By: API Invoker
  • Request_Type: DELETE
  • URL: http://{apiRoot}/nnssf-configuration/v1/deleteConfiguration
  • Content-Type: application/json
  • Initiated By: API Invoker

NSSF Backup and Restore Configurations - Supported REST APIs

Configure the ConfigurationBackup Managed Object by following the information provided in the table below. The supported operations are PUT, GET, and DELETE. Perform the configuration of ConfigurationBackup Managed Object as follows:

Table 3-14 NSSF Backup and Restore Configurations - Supported REST APIs

URI Description Details
/nnssf-configuration/v1/allconfig

Overrides all configuration managed objects.

Deletes existing configuration and overrides.

Data Type: ConfigBackup

HTTP Method: PUT

/nnssf-configuration/v1/allconfig Responds with get ALL for all configured managed objects.

Data Type: ConfigBackup

HTTP Method: GET

/nnssf-configuration/v1/deleteConfiguration Deletes existing configuration.

HTTP Method: DELETE

Request or Response Body Parameters

ConfigurationBackup consists of list of following parameters:

Table 3-15 NSSF Backup and Restore Configurations - Parameters

Parameter Description Details
systemOptionsConfigInfo This is a mandatory parameter.

This contains all the systemOptions configurations.

systemOptions will not be deleted by the deleteConfiguration API; it can only be updated using the PUT method.

Data Type: SystemOptionsConfigInfoDto
nsiProfileConfigList

This is an optional parameter

This contains the list of all nsiProfileConfigs.

Data Type: Array<NsiProfileConfigDto>

plmnConfigList

This is an optional parameter

This contains the list of all plmnConfig.

This is dependent on systemOptionsConfigInfo and nsiProfileConfigList. Proper systemOptionsConfigInfo should already exist, or it must be included in the API request body. Additionally, nsiProfileConfigList needs to be present in the API request body for nsiInformationList in plmnConfig.

Data Type: Array<PlmnConfigDto>

barredSlicesMappingConfigList

This is an optional parameter

This contains the list of all barredSlicesMapping.It is dependent on plmnConfigList and nsiProfileConfigList.

Data Type: Array<BarredSlicesMappingConfigDto>

supportedSlicesMappingConfigList

This is an optional parameter

This contains the list of all supportedSlicesMappingConfig.It is dependent on plmnConfigList and nsiProfileConfigList.

Data Type: Array<SupportedSlicesMappingConfigDto>

geoRedundantSitesInfoList

This is a mandatory parameter

This contains the list of all geoRedundantSitesInfo.This is a mandatory parameter and must not be empty.

Data Type: Array<GeoRedundantSitesInfoDto>

Examples

{
    "systemOptionsConfigInfo": {
        "autoAuthorizeNssaiAvailabilityDataEnable": true,
        "enhancedPatchBehaviourEnable": true,
        "plmnLevelSystemOptionsList": [
            {
                "plmnId": "311-480",
                "enhancedAllowedNssaiEnable": true
            },
            {
                "plmnId": "100-101",
                "enhancedAllowedNssaiEnable": true
            }
        ]
    },
    "nsiProfileConfigList": [
        {
            "nsiId": "NSI-1",
            "nrfUri": "https://nrf.slice1.oracle.com/nnrf-disc/v1",
            "nrfNfMgtUri": "https://nrf.slice1.oracle.com/nnrf-nfm/v1",
            "nrfAccessTokenUri": "https://nrf.slice1.oracle.com/oauth2/token"
        },
        {
            "nsiId": "NSI-2",
            "nrfUri": "https://nrf.slice1.oracle.com/nnrf-disc/v2",
            "nrfNfMgtUri": "https://nrf.slice1.oracle.com/nnrf-nfm/v2",
            "nrfAccessTokenUri": "https://nrf.slice2.oracle.com/oauth2/token"
        }
    ],
    "plmnConfigList": [
        {
            "plmnId": "311-480",
            "plmnInfo": {
                "configuredNssai": [
                    {
                        "sst": "1",
                        "sd": "EABB01",
                        "accessType": "3GPP_ACCESS",
                        "nsiInformationList": [
                            {
                                "nsiProfileId": "NSI-1",
                                "salience": "4"
                            },
                            {
                                "nsiProfileId": "NSI-2",
                                "salience": "2"
                            }
                        ]
                    },
                    {
                        "sst": "2",
                        "sd": "EABB02",
                        "accessType": "3GPP_ACCESS",
                        "nsiInformationList": [
                            {
                                "nsiProfileId": "NSI-2",
                                "salience": "3"
                            }
                        ]
                    },
                    {
                        "sst": "3",
                        "sd": "EABB03",
                        "accessType": "BOTH"
                    },
                    {
                        "sst": "4",
                        "sd": "EABB04",
                        "accessType": "NON_3GPP_ACCESS"
                    },
                    {
                        "sst": "5",
                        "sd": "EABB05",
                        "accessType": "BOTH"
                    },
                    {
                        "sst": "6",
                        "sd": "EABB06",
                        "accessType": "NON_3GPP_ACCESS"
                    },
                    {
                        "sst": "7",
                        "sd": "EABB07",
                        "accessType": "BOTH"
                    },
                    {
                        "sst": "8",
                        "sd": "EABB08",
                        "accessType": "NON_3GPP_ACCESS"
                    },
                    {
                        "sst": "9",
                        "sd": "EABB09",
                        "accessType": "BOTH"
                    },
                    {
                        "sst": "10",
                        "sd": "EABB10",
                        "accessType": "NON_3GPP_ACCESS"
                    }
                ],
                "barredSnssaiList": [
                    {
                        "sst": "5",
                        "sd": "EABB05"
                    }
                ],
                "nsiInformationList": [
                    {
                        "nsiProfileId": "NSI-1",
                        "salience": "3"
                    }
                ]
            }
        }
    ],
    "barredSlicesMappingConfigList": [
        {
            "name": "Barred-NSSAIS-CONFIG-1",
            "barredSnssaiList": [
                {
                    "sst": 3,
                    "sd": "EABB03"
                },
                {
                    "sst": 4,
                    "sd": "EABB04"
                }
            ],
            "plmnTacList": {
                "plmnId": "311-480",
                "tacList": [
                    {
                        "tac": "202509"
                    },
                    {
                        "tac": "202510"
                    }
                ]
            }
        }
    ],
    "supportedSlicesMappingConfigList": [
        {
            "name": "SUPPORTED-SLICES-MAPPING-CONFIG-1",
            "supportedSnssaiList": [
                {
                    "sst": 1,
                    "sd": "EABB01",
                    "accessType": "3GPP_ACCESS",
                    "nsiInformationList": [
                        {
                            "nsiProfileId": "NSI-1",
                            "salience": 2
                        }
                    ]
                }
            ],
            "plmnTacList": {
                "plmnId": "311-480",
                "tacList": [
                    {
                        "tac": "200000"
                    }
                ]
            }
        }
    ],
    "geoRedundantSitesInfoList": [
        {
            "siteId": "01",
            "nfInstanceId": "9faf1bbc-6e4a-4454-a507-aef01a101a01",
            "rank": 1
        },
        {
            "siteId": "02",
            "nfInstanceId": "9faf1bbc-6e4a-4454-a507-aef01a101a02",
            "rank": 2
        },
        {
            "siteId": "03",
            "nfInstanceId": "9faf1bbc-6e4a-4454-a507-aef01a101a03",
            "rank": 3
        }
    ]
}

3.8 Runtime Log Level Update

The Runtime Log Level Update Managed Object enables an operator to centralize the configuration and update it dynamically without restarting NSSF.

Runtime Log Level Update - Supported REST APIs

The operator can configure the Runtime Log Level Update by following the information provided in the table below. The supported operations are GET and PUT. The following table provides information about the REST APIs supported by the Runtime Log Level Update Managed Object:

Table 3-16 Runtime Log Level Update - Supported REST APIs

URI Description Details
http://<nsconfig-url>/nssf/nf-common-component/v1/services Get the list of microservices registered with common config service for dynamic logging.

Data Type: array

HTTP Method: GET

http://<nsconfig-url>/nssf/nf-common-component/v1/<microservice-name>/logging To get the current Logging information of the microservice.

Data Type: array

HTTP Method: GET

http://<nsconfig-url>/nssf/nf-common-component/v1/<microservice-name>/logging To update the Logging information of the microservice.

Data Type: array

HTTP Method: PUT

Examples API Calls

1. GET All Services

cURL: http://<nsconfig-url>/nssf/nf-common-component/v1/services

2. GET Log Level for a Microservice

cURL: http://<nsconfig-url>/nssf/nf-common-component/v1/<microservice-name>/logging

Example Response:
{
  "appLogLevel": "INFO",
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "WARN"
    }
  ]
}

3. PUT to Update Log Level

cURL: http://<nsconfig-url>/nssf/nf-common-component/v1/<microservice-name>/logging

Example Request:
{
  "appLogLevel": "DEBUG",
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "WARN"
    }
  ]
}

Per-Microservice Logging Endpoints and Payloads

1. App-Info

  • GET: /nssf/nf-common-component/v1/app-info/logging
  • PUT: /nssf/nf-common-component/v1/app-info/logging
PUT Payload Example:
{

  "appLogLevel": "DEBUG"

}

Table 3-17 App-Info

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF

2. Perf-Info

  • GET: /nssf/nf-common-component/v1/perf-info/logging
  • PUT: /nssf/nf-common-component/v1/perf-info/logging
PUT Payload Example:
{

  "appLogLevel": "WARN"

}

Table 3-18 Perf-Info

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF

3. Ingress Gateway

  • GET: /nssf/nf-common-component/v1/igw/logging
  • PUT: /nssf/nf-common-component/v1/igw/logging
PUT Payload Example:
{
  "appLogLevel": "DEBUG",
  "logDiscarding": {
    "enabled": false,
    "featureToThresholdMapping": [
      {
        "feature": "RATE_LIMITING",
        "thresholdFactor": 100
      },
      {
        "feature": "OVERLOAD_CONTROL",
        "thresholdFactor": 100
      },
      {
        "feature": "ROUTE_LEVEL_RATE_LIMITING",
        "thresholdFactor": 100
      },
      {
        "feature": "RSS_RATE_LIMITING",
        "thresholdFactor": 100
      },
      {
        "feature": "EGRESS_RATE_LIMITING",
        "thresholdFactor": 100
      }
    ]
  },
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "ERROR"
    },
    {
      "packageName": "oauth",
      "logLevelForPackage": "ERROR"
    }
  ],
  "logSubscriberInfo": "DISABLED",
  "additionalErrorLogging": "DISABLED"
}

Table 3-19 Ingress Gateway 

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application-wide log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF

logDiscarding.enabled

This is a mandatory parameter

Enable/disable log discarding

Data Type: Boolean

Range: true, false

featureToThresholdMapping

This is a mandatory parameter

Feature thresholds list

Data Type: List of Objects

Range: Each item contains feature and thresholdFactor

feature

This is a mandatory parameter

Feature name

Data Type: String

Range:

  • RATE_LIMITING
  • OVERLOAD_CONTROL
  • ROUTE_LEVEL_RATE_LIMITING
  • EGRESS_RATE_LIMITING
thresholdFactor

This is a mandatory parameter

Threshold factor for feature

Data Type: Integer

Range: 0–100

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

Data Type:StringRange: TRACE, DEBUG, INFO, WARN, ERROR, OFF
logSubscriberInfo

This is an optional parameter

Subscriber info logging setting

Data Type: String

Range: ENABLED, DISABLED

additionalErrorLogging

This is an optional parameter

Additional error logging setting

Data Type: String

Range: ENABLED, DISABLED

4. Egress Gateway

  • GET: /nssf/nf-common-component/v1/egw/logging
  • PUT: /nssf/nf-common-component/v1/egw/logging
PUT Payload Example:
{
  "appLogLevel": "DEBUG",
  "logDiscarding": {
    "enabled": false,
    "featureToThresholdMapping": [
      {
        "feature": "RATE_LIMITING",
        "thresholdFactor": 100
      },
      {
        "feature": "NOTIFICATION_RATE_LIMITING",
        "thresholdFactor": 100
      }
    ]
  },
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "WARN"
    },
    {
      "packageName": "oauth",
      "logLevelForPackage": "INFO"
    }
  ],
  "logSubscriberInfo": "DISABLED",
  "additionalErrorLogging": "DISABLED"
}

Table 3-20 Egress Gateway

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application-wide log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF

logDiscarding.enabled

This is a mandatory parameter

Enable/disable log discarding

Data Type: Boolean

Range: true, false

featureToThresholdMapping

This is a mandatory parameter

Feature thresholds list

Data Type: List of Objects

Range: Each item contains feature and thresholdFactor

feature

This is a mandatory parameter

Feature name

Data Type: String

Range:

  • RATE_LIMITING
  • OVERLOAD_CONTROL
  • ROUTE_LEVEL_RATE_LIMITING
  • EGRESS_RATE_LIMITING
thresholdFactor

This is a mandatory parameter

Threshold factor for feature

Data Type: Integer

Range: 0–100

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

Data Type:StringRange: TRACE, DEBUG, INFO, WARN, ERROR, OFF
logSubscriberInfo

This is an optional parameter

Subscriber info logging setting

Data Type: String

Range: ENABLED, DISABLED

additionalErrorLogging

This is an optional parameter

Additional error logging setting

Data Type: String

Range: ENABLED, DISABLED

5. Alternate Route

  • GET: /nssf/nf-common-component/v1/alt-route/logging
  • PUT: /nssf/nf-common-component/v1/alt-route/logging
PUT Payload Example:
{
  "appLogLevel": "DEBUG",
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "WARN"
    }
  ],
  "additionalErrorLogging": "DISABLED"
}

Table 3-21 Alternate Route

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application-wide log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

Data Type:StringRange: TRACE, DEBUG, INFO, WARN, ERROR, OFF
additionalErrorLogging

This is an optional parameter

Additional error logging setting

Data Type: String

Range: ENABLED, DISABLED

6. NRF Client - Management

  • GET: /nssf/nf-common-component/v1/nrf-client-nfmanagement/logging
  • PUT: /nssf/nf-common-component/v1/nrf-client-nfmanagement/logging
PUT Payload Example:
{
  "appLogLevel": "DEBUG",
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "WARN"
    }
  ],
  "logSubscriberInfo": "DISABLED",
  "additionalErrorLogging": "DISABLED"
}

Table 3-22 NRF Client - Management

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application-wide log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

Data Type:StringRange: TRACE, DEBUG, INFO, WARN, ERROR, OFF
logSubscriberInfo

This is an optional parameter

Subscriber info logging setting

Data Type: String

Range: ENABLED, DISABLED

additionalErrorLogging

This is an optional parameter

Additional error logging setting

Data Type: String

Range: ENABLED, DISABLED

7. NsAvailability

  • GET: /nssf/nf-common-component/v1/nsavailability/logging
  • PUT: /nssf/nf-common-component/v1/nsavailability/logging
PUT Payload Example:
{
  "appLogLevel": "DEBUG",
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "ERROR"
    }
  ]
}

Table 3-23 NsAvailability

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application-wide log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

Data Type:StringRange: TRACE, DEBUG, INFO, WARN, ERROR, OFF

8. NsAuditor

  • GET: /nssf/nf-common-component/v1/nsaudit/logging
  • PUT: /nssf/nf-common-component/v1/nsaudit/logging
PUT Payload Example:
{
  "appLogLevel": "DEBUG",
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "ERROR"
    }
  ]
}

Table 3-24 NsAuditor

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application-wide log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

Data Type:StringRange: TRACE, DEBUG, INFO, WARN, ERROR, OFF

9. NsConfig

  • GET: /nssf/nf-common-component/v1/nsconfig/logging
  • PUT: /nssf/nf-common-component/v1/nsconfig/logging
PUT Payload Example:
{
  "appLogLevel": "DEBUG",
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "ERROR"
    }
  ]
}

Table 3-25 NsConfig

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application-wide log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

Data Type:StringRange: TRACE, DEBUG, INFO, WARN, ERROR, OFF

10. NsSelection

  • GET: /nssf/nf-common-component/v1/nsselection/logging
  • PUT: /nssf/nf-common-component/v1/nsselection/logging
PUT Payload Example:
{
  "appLogLevel": "DEBUG",
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "ERROR"
    }
  ]
}

Table 3-26 NsSelection

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application-wide log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

Data Type:StringRange: TRACE, DEBUG, INFO, WARN, ERROR, OFF

11. NsSubscription

  • GET: /nssf/nf-common-component/v1/nssubscription/logging
  • PUT: /nssf/nf-common-component/v1/nssubscription/logging
PUT Payload Example:
{
  "appLogLevel": "DEBUG",
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "ERROR"
    }
  ]
}

Table 3-27 NsSubscription

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application-wide log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

Data Type:StringRange: TRACE, DEBUG, INFO, WARN, ERROR, OFF

3.9 Purpose

This guide helps you to familiarize yourself with the Oracle Banking Retail Lending Servicing application. It gives an overview of the module and explains all the maintenances required for its smooth functioning. It also takes you through the different types of transactions that can be handled through this module.