{
    "tags":[
        {
            "description":"Oracle RADIUS Agent Client Administration APIs allow managing RADIUS clients which can communicate with Oracle RADIUS Agent.",
            "name":"RADIUS Client Administration"
        },
        {
            "description":"Oracle RADIUS Agent Configuration APIs allow administrators to manage configurations for Oracle RADIUS Agent.",
            "name":"RADIUS Configuration"
        },
        {
            "description":"Oracle RADIUS Agent APIs allow administrators to manage Vendor Specific Attributes(VSA) for Oracle RADIUS Agent.",
            "name":"Vendor Specific Attributes"
        }
    ],
    "components":{
        "schemas":{
            "VendorSpecificAttribute":{
                "required":[
                    "attributeId",
                    "attributeName",
                    "attributeType",
                    "vendorId"
                ],
                "properties":{
                    "attributeId":{
                        "description":"Attribute id for the VSA",
                        "example":"1",
                        "format":"int32",
                        "type":"integer"
                    },
                    "attributeName":{
                        "description":"Name of the VSA",
                        "example":"Oracle_Role",
                        "type":"string"
                    },
                    "attributeType":{
                        "description":"Attribute type for the VSA",
                        "example":"string, octets, ipaddr, integer etc.",
                        "type":"string"
                    },
                    "vendorId":{
                        "description":"Vendor ID associated with the given VSA",
                        "example":"111",
                        "format":"int32",
                        "type":"integer"
                    },
                    "vendorName":{
                        "description":"Vendor Name",
                        "example":"CompanyX",
                        "type":"string"
                    }
                },
                "type":"object"
            },
            "ResponseMessage":{
                "properties":{
                    "timestamp":{
                        "description":"Timestamp at which success/error occurred",
                        "example":"2021-03-01T15:08:40.933Z[UTC]",
                        "format":"date",
                        "type":"string"
                    },
                    "errorCode":{
                        "description":"The error code of the error occurred",
                        "example":"IRA-00001",
                        "type":"string"
                    },
                    "message":{
                        "description":"Message of the success/error",
                        "example":"Configuration  is successfully updated.",
                        "type":"string"
                    },
                    "details":{
                        "description":"Details about the error occurred",
                        "example":"Detailed message about the cause of the error.",
                        "type":"string"
                    }
                },
                "type":"object"
            },
            "UserAttrMapping":{
                "properties":{
                    "attrId":{
                        "description":"Attribute id of the mapped RADIUS user attribute",
                        "example":"2",
                        "format":"int32",
                        "type":"integer"
                    },
                    "attrName":{
                        "description":"User attribute name in primary authenticator",
                        "example":"cn",
                        "type":"string"
                    },
                    "vendorId":{
                        "description":"Vendor ID associated with the mapped RADIUS user attribute",
                        "example":"111",
                        "format":"int32",
                        "type":"integer"
                    }
                },
                "type":"object"
            },
            "ClientAppConfig":{
                "required":[
                    "radiusClientHost",
                    "enabled"
                ],
                "properties":{
                    "radiusClientHost":{
                        "description":"RADIUS client host name or ip address",
                        "type":"string"
                    },
                    "enabled":{
                        "default":"true",
                        "description":"Flag to indicate if it is enabled",
                        "type":"boolean"
                    },
                    "radiusListener":{
                        "properties":{
                            "channelSelectTimeout":{
                                "default":"120000",
                                "description":"UDP NIO channel selection timeout in ms",
                                "format":"int64",
                                "type":"integer"
                            },
                            "coreThreadPoolSize":{
                                "default":"10",
                                "description":"CorePoolSize value for the underlying ThreadPoolExecutor of the worker threads",
                                "format":"int32",
                                "type":"integer"
                            },
                            "numberOfWorkerThreads":{
                                "default":"20",
                                "description":"The number of worker threads configured, maximum PoolSize value for the underlying ThreadPoolExecutor of the worker threads",
                                "format":"int32",
                                "type":"integer"
                            },
                            "requestCacheCleanupInitialDelay":{
                                "default":"0",
                                "description":"Request Cache Cleanup Thread's initial delay",
                                "format":"int64",
                                "type":"integer"
                            },
                            "requestCacheCleanupInterval":{
                                "default":"60000",
                                "description":"Request cache cleanup thread's interval",
                                "format":"int64",
                                "type":"integer"
                            },
                            "requestCacheCleanupPoolSize":{
                                "default":"0",
                                "description":"Request Cache Cleanup Thread Pool Size",
                                "format":"int32",
                                "type":"integer"
                            },
                            "requestCacheConcurrencyLevel":{
                                "default":"6",
                                "description":"Request Cache's concurrency level",
                                "format":"int32",
                                "type":"integer"
                            },
                            "requestCacheEntryTimeout":{
                                "default":"30000",
                                "description":"Request cache's entry timeout value in milliseconds",
                                "format":"int64",
                                "type":"integer"
                            },
                            "socketSOTimeout":{
                                "default":"1800000",
                                "description":"The underlying socket SO timeout in ms",
                                "format":"int32",
                                "type":"integer"
                            },
                            "threadPoolKeepAliveTime":{
                                "default":"10000",
                                "description":"Thread Pool Keep Alive Time for the underlying ThreadPoolExecutor of the worker threads",
                                "format":"int64",
                                "type":"integer"
                            },
                            "threadPoolMaxQueueSize":{
                                "default":"0",
                                "description":"Allowed maximum queue size value for the underlying queue used by ThreadPoolExecutor of the worker threads",
                                "format":"int32",
                                "type":"integer"
                            }
                        },
                        "description":"RADIUS listener config details specific to RADIUS client, if missing inherits global RADIUS listener",
                        "type":"object"
                    },
                    "authentication":{
                        "required":[
                            "provider"
                        ],
                        "properties":{
                            "provider":{
                                "default":"LDAP",
                                "description":"Configured authentication provider type",
                                "type":"string"
                            },
                            "userCacheEntryTimeout":{
                                "default":"300000L",
                                "description":"User cache entry timeout value in ms",
                                "format":"int64",
                                "type":"integer"
                            },
                            "userCacheConcurrencyLevel":{
                                "default":"4",
                                "description":"User cache concurrency level",
                                "format":"int32",
                                "type":"integer"
                            },
                            "userCacheCleanupInterval":{
                                "default":"300000L",
                                "description":"User cache cleanup interval",
                                "format":"int64",
                                "type":"integer"
                            },
                            "userCacheCleanupPoolSize":{
                                "default":"1",
                                "description":"User cache cleanup thread pool size",
                                "format":"int32",
                                "type":"integer"
                            },
                            "userCacheCleanupInitialDelay":{
                                "default":"0L",
                                "description":"UserCache clean up initial delay after which the cleanup thread will start",
                                "format":"int64",
                                "type":"integer"
                            },
                            "ldap":{
                                "required":[
                                    "name",
                                    "dn",
                                    "password",
                                    "ldapUrl",
                                    "baseDN",
                                    "enabled"
                                ],
                                "properties":{
                                    "name":{
                                        "description":"Name of the configuration",
                                        "example":"<name of provider>",
                                        "type":"string"
                                    },
                                    "initSize":{
                                        "default":"5",
                                        "description":"This property indicates the number of connections that are created when connection pool is initialized",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "maxSize":{
                                        "default":"100",
                                        "description":"The maximum number of connections the pool maintains. If minSize is greater than maxSize then minSize is set to maxSize",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "minSize":{
                                        "default":"5",
                                        "description":"The minimum number of connections the pool maintains. If initSize is less than minSize then connection pool is initialized with minSize connections",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "readTimeout":{
                                        "default":"30000",
                                        "description":"Time limit in milliseconds for which RADIUS agent will wait for LDAP server to respond back",
                                        "format":"int64",
                                        "type":"integer"
                                    },
                                    "connectTimeout":{
                                        "default":"5000",
                                        "description":"Time limit in milliseconds within which LDAP connection has to be made",
                                        "format":"int64",
                                        "type":"integer"
                                    },
                                    "searchTimeout":{
                                        "default":"30000",
                                        "description":"Time limit in milliseconds for LDAP searches",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "poolMaxWaitTime":{
                                        "default":"20000",
                                        "description":"Time limit in milliseconds for which client will wait for a LDAP connection to be made available",
                                        "format":"int64",
                                        "type":"integer"
                                    },
                                    "poolIncrementSize":{
                                        "default":"5",
                                        "description":"Number of connections to be made at a time when all existing connections are in use and number of connections are less than maxSize",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "poolMaintenanceInterval":{
                                        "default":"600000",
                                        "description":"Time interval in milliseconds when maintenance thread would run",
                                        "format":"int64",
                                        "type":"integer"
                                    },
                                    "dn":{
                                        "description":"The DN of user which RADIUS agent uses to connect to LDAP server",
                                        "example":"cn=Directory Manager",
                                        "type":"string"
                                    },
                                    "password":{
                                        "description":"The password of user which RADIUS agent uses to connect to LDAP server",
                                        "example":"<password>",
                                        "type":"string"
                                    },
                                    "ldapUrl":{
                                        "description":"URL of the LDAP server",
                                        "example":"ldaps://<hostname>:<port>",
                                        "type":"string"
                                    },
                                    "baseDN":{
                                        "description":"The base DN of the LDAP domain that is used by RADIUS Agent for searching users and groups",
                                        "example":"dc=example,dc=com",
                                        "type":"string"
                                    },
                                    "loginAttr":{
                                        "default":"uid",
                                        "description":"The login attribute name in LDAP for user. This is used to construct filter to lookup user during login",
                                        "type":"string"
                                    },
                                    "truststore":{
                                        "description":"Truststore file location in case a JKS file is used for certificates",
                                        "type":"string"
                                    },
                                    "trustedCertificate":{
                                        "description":"Trusted certificate in Base 64 format",
                                        "example":"BASE 64 FORMAT",
                                        "type":"string"
                                    },
                                    "trustedCertificateAliasName":{
                                        "default":"ldap-server-trusted-cert",
                                        "description":"Alias name to be used for referring to trusted certificate in JKS",
                                        "example":"ldap-server-cert",
                                        "type":"string"
                                    },
                                    "truststorePassword":{
                                        "description":"Truststore password. This is optional and needs to be provided if truststore is used instead of a trustedCertificate",
                                        "example":"<Password>",
                                        "type":"string"
                                    },
                                    "keystore":{
                                        "description":"Keystore file location to be used for SSL mutual authentication",
                                        "type":"string"
                                    },
                                    "keystoreCertificateAliasName":{
                                        "description":"Alias name used for referring to the certificate in keystore JKS",
                                        "type":"string"
                                    },
                                    "keystorePassword":{
                                        "description":"Password to the keystore file",
                                        "type":"string"
                                    },
                                    "keyFactorAlgorithm":{
                                        "default":"RSA",
                                        "description":"Algorithm with which certificate has been signed",
                                        "type":"string"
                                    },
                                    "keystoreTruststoreType":{
                                        "description":"File type (JKS/PKCS12) when file based truststore/keystore is used. If null, it means certificate itself has been provided",
                                        "type":"string"
                                    },
                                    "sslProtocol":{
                                        "default":"TLSv1.3, TLSv1.2",
                                        "description":"The cryptographic protocol RADIUS agent would use for connecting to LDAP server for secure connections. Multiple protocols can be given separated by comma",
                                        "type":"string"
                                    },
                                    "cipherSuites":{
                                        "default":"None (Uses JVM defaults)",
                                        "description":"Default cipher suites used out of the box",
                                        "items":{
                                            "type":"string"
                                        },
                                        "type":"array"
                                    },
                                    "referral":{
                                        "default":"follow",
                                        "description":"Specifies the behavior when a referral is returned by LDAP server. Check JNDI java.naming.referral for possible values.",
                                        "type":"string"
                                    },
                                    "searchUserBeforeBind":{
                                        "default":"true",
                                        "description":"Lookup user in LDAP server to get their DN before initiating user login. This can be disabled if LDAP server supports bind using a mapped ID directly (for example: ID mapper in OUD, UPN bind in Active Directory etc.)",
                                        "type":"boolean"
                                    },
                                    "enabled":{
                                        "default":"true",
                                        "description":"Flag to indicate if it is enabled",
                                        "type":"boolean"
                                    },
                                    "properties":{
                                        "readOnly":true,
                                        "type":"object"
                                    },
                                    "retryCount":{
                                        "default":"1",
                                        "description":"If configured and a value > 0 indicates that the Operation will be retried for the configured number of times in case of a Connection Failure.\nRetry can be turned off if value = 0",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "retryInterval":{
                                        "default":"0",
                                        "description":"When number of retries is > 1, retry interval between two retries in ms",
                                        "format":"int64",
                                        "type":"integer"
                                    },
                                    "authWithoutMFACriteria":{
                                        "description":"Based on this filter, matching users are allowed to login using primary factor only when user footprint is not present in MFA",
                                        "type":"string"
                                    },
                                    "enableMemberOfQuery":{
                                        "default":"false",
                                        "description":"Enable memberof searches which relies on group membership to be resolved by the backend LDAP server. OID/OUD returns nested group/dynamic groups along with direct membership while AD returns only direct membership of the user",
                                        "type":"boolean"
                                    },
                                    "groupNamingAttribute":{
                                        "default":"cn",
                                        "description":"Naming attribute for groups in LDAP",
                                        "type":"string"
                                    },
                                    "maxGroupsToFetch":{
                                        "default":"0",
                                        "description":"Sets the maximum number of entries to be returned as a result of the search. A value of 0 indicates no limit. (Note: this only applies to the case when group membership query constructed by ORA, and this does not apply to memberof query)",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "maxNestedLevels":{
                                        "default":"10",
                                        "description":"Maximum depth search should happen for finding out groups a given user is member of in case if nested groups are configured. (Note: this only applies to the case when group membership query constructed by ORA, and this does not apply to memberof query)",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "memberAttr":{
                                        "description":"LDAP attribute name to be used for group related queries. If not specified then uniquemember and member are used. For AD we need to provide 'member' as its value for nested group searches to work",
                                        "example":"member",
                                        "type":"string"
                                    },
                                    "memberFilteringCriteria":{
                                        "description":"Additional filtering criteria for group searches. This condition when present is ANDed with the group membership query filter. Eg: For AD we need to provide (objectclass=group) for nested group search to work",
                                        "example":"objectclass=group",
                                        "type":"string"
                                    },
                                    "memberOfAttribute":{
                                        "default":"memberof",
                                        "description":"The attribute which returns groups a user is member of. OUD works with ismemberof, AD works with memberof while OID supports both memberof and ismemberof",
                                        "type":"string"
                                    },
                                    "poolMaxConnectionIdleTime":{
                                        "default":"1500000",
                                        "description":"Time in milliseconds after which an idle connection is expired",
                                        "format":"int64",
                                        "type":"integer"
                                    },
                                    "poolMaxConnectionReuseTime":{
                                        "default":"-1(No time limit)",
                                        "description":"Time in milliseconds after which a connection is expired",
                                        "format":"int64",
                                        "type":"integer"
                                    },
                                    "reuseAddress":{
                                        "default":"true",
                                        "description":"Reuse ports even when it is in TIME_WAIT state",
                                        "type":"boolean"
                                    },
                                    "soKeepAlive":{
                                        "default":"true",
                                        "description":"Enable keep alive probes for socket connection",
                                        "type":"boolean"
                                    },
                                    "soTimeout":{
                                        "default":"0",
                                        "description":"Defines the socket timeout in milliseconds while waiting for data. A value of 0 indicates no timeout",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "tcpNoDelay":{
                                        "default":"false",
                                        "description":"Data is sent as soon as available",
                                        "type":"boolean"
                                    },
                                    "userFilteringCriteria":{
                                        "description":"Additional filtering criteria to search user. If specified, this filter gets appended with loginAttr (using AND condition)",
                                        "type":"string"
                                    }
                                },
                                "description":"LDAP configuration details",
                                "type":"object"
                            },
                            "custom":{
                                "required":[
                                    "enabled",
                                    "name"
                                ],
                                "properties":{
                                    "enabled":{
                                        "default":"true",
                                        "description":"Flag to indicate if it is enabled",
                                        "type":"boolean"
                                    },
                                    "name":{
                                        "description":"Name of the configuration",
                                        "example":"<name of provider>",
                                        "type":"string"
                                    },
                                    "retryCount":{
                                        "default":"1",
                                        "description":"If configured and a value > 0 indicates that the Operation will be retried for the configured number of times in case of a Connection Failure.\nRetry can be turned off if value = 0",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "retryInterval":{
                                        "default":"0",
                                        "description":"When number of retries is > 1, retry interval between two retries in ms",
                                        "format":"int64",
                                        "type":"integer"
                                    },
                                    "className":{
                                        "description":"Custom authentication provider class name",
                                        "type":"string"
                                    },
                                    "jarsLocation":{
                                        "description":"Gets the jars directory for the custom provider",
                                        "type":"string"
                                    },
                                    "properties":{
                                        "description":"Defined properties",
                                        "type":"object"
                                    },
                                    "unrecognizedFields":{
                                        "readOnly":true,
                                        "type":"object"
                                    }
                                },
                                "description":"Custom Authenticator configuration details",
                                "type":"object"
                            }
                        },
                        "description":"Primary authentication config details specific to RADIUS client, if missing inherits global authentication",
                        "type":"object"
                    },
                    "mfa":{
                        "required":[
                            "oaa",
                            "provider"
                        ],
                        "properties":{
                            "oaa":{
                                "required":[
                                    "name",
                                    "enabled",
                                    "oaaUrl",
                                    "clientType",
                                    "clientSecret",
                                    "clientId"
                                ],
                                "properties":{
                                    "name":{
                                        "description":"Name of the configuration",
                                        "example":"<name of provider>",
                                        "type":"string"
                                    },
                                    "enabled":{
                                        "default":"true",
                                        "description":"Flag to indicate if it is enabled",
                                        "type":"boolean"
                                    },
                                    "oaaUrl":{
                                        "description":"OAA Service Base URI",
                                        "example":"https://127.0.0.1:37001/oaa/runtime",
                                        "type":"string"
                                    },
                                    "clientType":{
                                        "default":"radius",
                                        "description":"Client Type used in OAA for RADIUS agent",
                                        "type":"string"
                                    },
                                    "clientSecret":{
                                        "description":"Client Secret in OAA for registered agent for RADIUS Agent",
                                        "example":"secret1",
                                        "type":"string"
                                    },
                                    "clientId":{
                                        "description":"Client ID in OAA for registered agent for RADIUS Agent",
                                        "example":"clientId1",
                                        "type":"string"
                                    },
                                    "agentgid":{
                                        "description":"Agent ID in OAA for registered RADIUS agent",
                                        "example":"agent1",
                                        "type":"string"
                                    },
                                    "timeToLiveInMs":{
                                        "default":"300000",
                                        "description":"Factor Token's Time To Live in MilliSecs",
                                        "format":"int64",
                                        "type":"integer"
                                    },
                                    "connectTimeout":{
                                        "default":"2000",
                                        "description":"OAA API Connection Timeout in Millisecs",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "readTimeout":{
                                        "default":"10000",
                                        "description":"OAA API Read Timeout in Millisecs",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "properties":{
                                        "readOnly":true,
                                        "type":"object"
                                    },
                                    "retryCount":{
                                        "default":"1",
                                        "description":"If configured and a value > 0 indicates that the Operation will be retried for the configured number of times in case of a Connection Failure.\nRetry can be turned off if value = 0",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "retryInterval":{
                                        "default":"0",
                                        "description":"When number of retries is > 1, retry interval between two retries in ms",
                                        "format":"int64",
                                        "type":"integer"
                                    },
                                    "oaaPolicyUrl":{
                                        "description":"OAA Policy URL",
                                        "example":"https://100.102.48.163:31223/oaa-policy",
                                        "type":"string"
                                    },
                                    "policyUserName":{
                                        "description":"OAA Policy Username",
                                        "example":"oaa20210128t000000-oaa-policy",
                                        "type":"string"
                                    },
                                    "policyUserPassword":{
                                        "description":"OAA Policy Password",
                                        "example":"oaaPolicyPassword1",
                                        "type":"string"
                                    }
                                },
                                "description":"OAA configuration details",
                                "type":"object"
                            },
                            "provider":{
                                "default":"OAA",
                                "description":"Provider name",
                                "type":"string"
                            }
                        },
                        "description":"Multi factor authentication config details specific to RADIUS client, if missing inherits global mfa",
                        "type":"object"
                    },
                    "preferences":{
                        "properties":{
                            "allowSpecificFactorInPassword":{
                                "default":"false",
                                "description":"Indicates if directly invoking Specific Factor by enduser is enabled or not",
                                "type":"boolean"
                            },
                            "allowTokenInPassword":{
                                "default":"true",
                                "description":"Indicates if synchronous login mode (Password, delimiter, token concatenation) is enabled/disabled",
                                "type":"boolean"
                            },
                            "appendDelimiter":{
                                "default":";",
                                "description":"Delimiter used for synchronous mode ( Password+delimiter+token)",
                                "example":"password;123456",
                                "type":"string"
                            },
                            "defaultSecondFactor":{
                                "default":"ChallengeOMATOTP",
                                "description":"Default Second Factor. This Factor will be used when no preferred factor is available for the user from OAA's User Preferences and synchronous mode is used in the RADIUS Request",
                                "type":"string"
                            },
                            "defaultTokenLength":{
                                "default":"6",
                                "description":"Length of the token for synchronous login mode. This represents the token length of the DefaultSecondFactor configured",
                                "format":"int32",
                                "type":"integer"
                            },
                            "factorToTokenLengthMap":{
                                "default":"{\"ChallengeOMATOTP\": 6, \"ChallengeYubicoOTP\": 44}",
                                "description":"RADIUS Factor to factor token length mapping",
                                "type":"object"
                            },
                            "groupAsSingleString":{
                                "default":"false",
                                "description":"Returns group details as a single string in response separated by a delimiter that is configured if it's true",
                                "type":"boolean"
                            },
                            "groupAsSingleStringDelimiter":{
                                "default":",",
                                "description":"Delimiter used when groups are returned as single string",
                                "type":"string"
                            },
                            "groupAttrID":{
                                "default":"1 (for ORACLE)",
                                "description":"RADIUS attribute ID for the group mapping. Groups are returned as part of this RADIUS attribute",
                                "format":"int32",
                                "type":"integer"
                            },
                            "groupAttrVendorID":{
                                "default":"111 (for ORACLE_ROLE attribute)",
                                "description":"RADIUS vendor ID for the group mapping. Groups are returned as part of this RADIUS attribute. RADIUS Vendor ID 111 stands for Oracle and a value of -1 needs to be used in order to use any standard RADIUS attribute",
                                "format":"int32",
                                "type":"integer"
                            },
                            "groupNameMapping":{
                                "description":"Mappings to map group names in primary authenticator to different values",
                                "example":"{\"group1\":\"ORA_GRP_1\", \"group2\":\"ORA_GRP_2\"}",
                                "type":"object"
                            },
                            "mfaOptions":{
                                "default":"\"defaultGroup\": \"Default\"",
                                "description":"Additional OAA Provider specific options like  \"assuranceLevel\", \"factorChoices\" (for auto-wiring of ORA and OAA), \"defaultGroup\" for setting default group name that is passed to OAA",
                                "example":" \"assuranceLevel\": \"Rad_CP0_%RNDM1%\"",
                                "type":"object"
                            },
                            "radiusFactorToMFAFactorMap":{
                                "default":"{\"totp\": \"ChallengeOMATOTP\", \"yubikey\": \"ChallengeYubicoOTP\", \"sms\": \"ChallengeSMS\", \"mail\": \"ChallengeEmail\"}",
                                "description":"RadiusAgent's Factor to MFA Provider's Factor mapping. These keywords can be used to invoke a specific factor for MFA",
                                "type":"object"
                            },
                            "returnGroups":{
                                "default":"false",
                                "description":"Indicates if groups need to be returned during authentication",
                                "example":"true/false",
                                "type":"boolean"
                            },
                            "userAttrMap":{
                                "description":"Represents mapping for user attributes from primary authenticator to specified RADIUS Attributes which are to be returned during authentication",
                                "example":"{\"userAttrVendorID\": 111, \"userAttrName\": \"cn\"}",
                                "items":{
                                    "$ref":"#/components/schemas/UserAttrMapping"
                                },
                                "type":"array"
                            }
                        },
                        "description":"Preferences config details specific to RADIUS client, if missing inherits global preferences",
                        "type":"object"
                    }
                },
                "type":"object"
            },
            "RadiusConfiguration":{
                "required":[
                    "radiusAdminUser",
                    "radiusAdminGroup"
                ],
                "properties":{
                    "radiusAdminUser":{
                        "description":"List of admin users that are present in directory to manage configurations and RADIUS clients for Oracle RADIUS Agent This is required for day-0 and optional for others",
                        "example":"[ \"cn=radiusAdminUser,ou=people,dc=example,dc=com\",\"cn=adminUser,ou=people,dc=example,dc=com\" ]\nOR\n[ \"radiusAdminUser\",\" + \"adminUser\" ]",
                        "items":{
                            "type":"string"
                        },
                        "type":"array"
                    },
                    "radiusAdminGroup":{
                        "description":"List of admin groups that are present in directory to manage configurations and RADIUS clients for Oracle RADIUS Agent This is required for day-0 and optional for others",
                        "example":"[ \"cn=group1,ou=groups,dc=example,dc=com\",\"cn=group2,ou=groups,dc=example,dc=com\" ]\nOR\n[ \"group1\",\" + \"group2\" ]",
                        "items":{
                            "type":"string"
                        },
                        "type":"array"
                    },
                    "server":{
                        "properties":{
                            "customDictionary":{
                                "description":"Custom RADIUS dictionary file that contain definitions for vendor specific attributes",
                                "type":"string"
                            },
                            "customDictionaryAsStream":{
                                "description":"Custom dictionary file as stream",
                                "items":{
                                    "format":"byte",
                                    "type":"string"
                                },
                                "type":"array"
                            },
                            "enableDynamicClients":{
                                "default":"false",
                                "description":"Indicates if dynamic clients are allowed or not",
                                "type":"boolean"
                            },
                            "enableMetrics":{
                                "default":"true",
                                "description":"Indicates if metrics is enabled",
                                "type":"boolean"
                            },
                            "heartBeatInterval":{
                                "default":"120000",
                                "description":"Configured heartbeat thread invocation interval in ms to check availability of authenticator like LDAP",
                                "format":"int32",
                                "type":"integer"
                            },
                            "stateCacheConcurrencyLevel":{
                                "default":"6",
                                "description":"State Attribute Cache's concurrency Level",
                                "format":"int32",
                                "type":"integer"
                            },
                            "stateCacheEntryTimeout":{
                                "default":"120000",
                                "description":"State Attribute Cache's Entry Timeout",
                                "format":"int64",
                                "type":"integer"
                            },
                            "validatedTokenCacheConcurrencyLevel":{
                                "default":"6",
                                "description":"Validated MFA Token Cache's concurrency Level",
                                "format":"int32",
                                "type":"integer"
                            },
                            "validatedTokenCacheEntryTimeout":{
                                "default":"60000",
                                "description":"Validated MFA Token Cache's Entry Timeout",
                                "format":"int64",
                                "type":"integer"
                            },
                            "customDictionaryFileAsStream":{
                                "items":{
                                    "format":"byte",
                                    "type":"string"
                                },
                                "type":"array"
                            }
                        },
                        "description":"Server config details",
                        "type":"object"
                    },
                    "logging":{
                        "description":"Logging details",
                        "type":"object"
                    },
                    "radiusListener":{
                        "properties":{
                            "channelSelectTimeout":{
                                "default":"120000",
                                "description":"UDP NIO channel selection timeout in ms",
                                "format":"int64",
                                "type":"integer"
                            },
                            "coreThreadPoolSize":{
                                "default":"10",
                                "description":"CorePoolSize value for the underlying ThreadPoolExecutor of the worker threads",
                                "format":"int32",
                                "type":"integer"
                            },
                            "numberOfWorkerThreads":{
                                "default":"20",
                                "description":"The number of worker threads configured, maximum PoolSize value for the underlying ThreadPoolExecutor of the worker threads",
                                "format":"int32",
                                "type":"integer"
                            },
                            "requestCacheCleanupInitialDelay":{
                                "default":"0",
                                "description":"Request Cache Cleanup Thread's initial delay",
                                "format":"int64",
                                "type":"integer"
                            },
                            "requestCacheCleanupInterval":{
                                "default":"60000",
                                "description":"Request cache cleanup thread's interval",
                                "format":"int64",
                                "type":"integer"
                            },
                            "requestCacheCleanupPoolSize":{
                                "default":"0",
                                "description":"Request Cache Cleanup Thread Pool Size",
                                "format":"int32",
                                "type":"integer"
                            },
                            "requestCacheConcurrencyLevel":{
                                "default":"6",
                                "description":"Request Cache's concurrency level",
                                "format":"int32",
                                "type":"integer"
                            },
                            "requestCacheEntryTimeout":{
                                "default":"30000",
                                "description":"Request cache's entry timeout value in milliseconds",
                                "format":"int64",
                                "type":"integer"
                            },
                            "socketSOTimeout":{
                                "default":"1800000",
                                "description":"The underlying socket SO timeout in ms",
                                "format":"int32",
                                "type":"integer"
                            },
                            "threadPoolKeepAliveTime":{
                                "default":"10000",
                                "description":"Thread Pool Keep Alive Time for the underlying ThreadPoolExecutor of the worker threads",
                                "format":"int64",
                                "type":"integer"
                            },
                            "threadPoolMaxQueueSize":{
                                "default":"0",
                                "description":"Allowed maximum queue size value for the underlying queue used by ThreadPoolExecutor of the worker threads",
                                "format":"int32",
                                "type":"integer"
                            }
                        },
                        "description":"Global RADIUS Listener config details",
                        "type":"object"
                    },
                    "authentication":{
                        "required":[
                            "provider"
                        ],
                        "properties":{
                            "provider":{
                                "default":"LDAP",
                                "description":"Configured authentication provider type",
                                "type":"string"
                            },
                            "userCacheEntryTimeout":{
                                "default":"300000L",
                                "description":"User cache entry timeout value in ms",
                                "format":"int64",
                                "type":"integer"
                            },
                            "userCacheConcurrencyLevel":{
                                "default":"4",
                                "description":"User cache concurrency level",
                                "format":"int32",
                                "type":"integer"
                            },
                            "userCacheCleanupInterval":{
                                "default":"300000L",
                                "description":"User cache cleanup interval",
                                "format":"int64",
                                "type":"integer"
                            },
                            "userCacheCleanupPoolSize":{
                                "default":"1",
                                "description":"User cache cleanup thread pool size",
                                "format":"int32",
                                "type":"integer"
                            },
                            "userCacheCleanupInitialDelay":{
                                "default":"0L",
                                "description":"UserCache clean up initial delay after which the cleanup thread will start",
                                "format":"int64",
                                "type":"integer"
                            },
                            "ldap":{
                                "required":[
                                    "name",
                                    "dn",
                                    "password",
                                    "ldapUrl",
                                    "baseDN",
                                    "enabled"
                                ],
                                "properties":{
                                    "name":{
                                        "description":"Name of the configuration",
                                        "example":"<name of provider>",
                                        "type":"string"
                                    },
                                    "initSize":{
                                        "default":"5",
                                        "description":"This property indicates the number of connections that are created when connection pool is initialized",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "maxSize":{
                                        "default":"100",
                                        "description":"The maximum number of connections the pool maintains. If minSize is greater than maxSize then minSize is set to maxSize",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "minSize":{
                                        "default":"5",
                                        "description":"The minimum number of connections the pool maintains. If initSize is less than minSize then connection pool is initialized with minSize connections",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "readTimeout":{
                                        "default":"30000",
                                        "description":"Time limit in milliseconds for which RADIUS agent will wait for LDAP server to respond back",
                                        "format":"int64",
                                        "type":"integer"
                                    },
                                    "connectTimeout":{
                                        "default":"5000",
                                        "description":"Time limit in milliseconds within which LDAP connection has to be made",
                                        "format":"int64",
                                        "type":"integer"
                                    },
                                    "searchTimeout":{
                                        "default":"30000",
                                        "description":"Time limit in milliseconds for LDAP searches",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "poolMaxWaitTime":{
                                        "default":"20000",
                                        "description":"Time limit in milliseconds for which client will wait for a LDAP connection to be made available",
                                        "format":"int64",
                                        "type":"integer"
                                    },
                                    "poolIncrementSize":{
                                        "default":"5",
                                        "description":"Number of connections to be made at a time when all existing connections are in use and number of connections are less than maxSize",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "poolMaintenanceInterval":{
                                        "default":"600000",
                                        "description":"Time interval in milliseconds when maintenance thread would run",
                                        "format":"int64",
                                        "type":"integer"
                                    },
                                    "dn":{
                                        "description":"The DN of user which RADIUS agent uses to connect to LDAP server",
                                        "example":"cn=Directory Manager",
                                        "type":"string"
                                    },
                                    "password":{
                                        "description":"The password of user which RADIUS agent uses to connect to LDAP server",
                                        "example":"<password>",
                                        "type":"string"
                                    },
                                    "ldapUrl":{
                                        "description":"URL of the LDAP server",
                                        "example":"ldaps://<hostname>:<port>",
                                        "type":"string"
                                    },
                                    "baseDN":{
                                        "description":"The base DN of the LDAP domain that is used by RADIUS Agent for searching users and groups",
                                        "example":"dc=example,dc=com",
                                        "type":"string"
                                    },
                                    "loginAttr":{
                                        "default":"uid",
                                        "description":"The login attribute name in LDAP for user. This is used to construct filter to lookup user during login",
                                        "type":"string"
                                    },
                                    "truststore":{
                                        "description":"Truststore file location in case a JKS file is used for certificates",
                                        "type":"string"
                                    },
                                    "trustedCertificate":{
                                        "description":"Trusted certificate in Base 64 format",
                                        "example":"BASE 64 FORMAT",
                                        "type":"string"
                                    },
                                    "trustedCertificateAliasName":{
                                        "default":"ldap-server-trusted-cert",
                                        "description":"Alias name to be used for referring to trusted certificate in JKS",
                                        "example":"ldap-server-cert",
                                        "type":"string"
                                    },
                                    "truststorePassword":{
                                        "description":"Truststore password. This is optional and needs to be provided if truststore is used instead of a trustedCertificate",
                                        "example":"<Password>",
                                        "type":"string"
                                    },
                                    "keystore":{
                                        "description":"Keystore file location to be used for SSL mutual authentication",
                                        "type":"string"
                                    },
                                    "keystoreCertificateAliasName":{
                                        "description":"Alias name used for referring to the certificate in keystore JKS",
                                        "type":"string"
                                    },
                                    "keystorePassword":{
                                        "description":"Password to the keystore file",
                                        "type":"string"
                                    },
                                    "keyFactorAlgorithm":{
                                        "default":"RSA",
                                        "description":"Algorithm with which certificate has been signed",
                                        "type":"string"
                                    },
                                    "keystoreTruststoreType":{
                                        "description":"File type (JKS/PKCS12) when file based truststore/keystore is used. If null, it means certificate itself has been provided",
                                        "type":"string"
                                    },
                                    "sslProtocol":{
                                        "default":"TLSv1.3, TLSv1.2",
                                        "description":"The cryptographic protocol RADIUS agent would use for connecting to LDAP server for secure connections. Multiple protocols can be given separated by comma",
                                        "type":"string"
                                    },
                                    "cipherSuites":{
                                        "default":"None (Uses JVM defaults)",
                                        "description":"Default cipher suites used out of the box",
                                        "items":{
                                            "type":"string"
                                        },
                                        "type":"array"
                                    },
                                    "referral":{
                                        "default":"follow",
                                        "description":"Specifies the behavior when a referral is returned by LDAP server. Check JNDI java.naming.referral for possible values.",
                                        "type":"string"
                                    },
                                    "searchUserBeforeBind":{
                                        "default":"true",
                                        "description":"Lookup user in LDAP server to get their DN before initiating user login. This can be disabled if LDAP server supports bind using a mapped ID directly (for example: ID mapper in OUD, UPN bind in Active Directory etc.)",
                                        "type":"boolean"
                                    },
                                    "enabled":{
                                        "default":"true",
                                        "description":"Flag to indicate if it is enabled",
                                        "type":"boolean"
                                    },
                                    "properties":{
                                        "readOnly":true,
                                        "type":"object"
                                    },
                                    "retryCount":{
                                        "default":"1",
                                        "description":"If configured and a value > 0 indicates that the Operation will be retried for the configured number of times in case of a Connection Failure.\nRetry can be turned off if value = 0",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "retryInterval":{
                                        "default":"0",
                                        "description":"When number of retries is > 1, retry interval between two retries in ms",
                                        "format":"int64",
                                        "type":"integer"
                                    },
                                    "authWithoutMFACriteria":{
                                        "description":"Based on this filter, matching users are allowed to login using primary factor only when user footprint is not present in MFA",
                                        "type":"string"
                                    },
                                    "enableMemberOfQuery":{
                                        "default":"false",
                                        "description":"Enable memberof searches which relies on group membership to be resolved by the backend LDAP server. OID/OUD returns nested group/dynamic groups along with direct membership while AD returns only direct membership of the user",
                                        "type":"boolean"
                                    },
                                    "groupNamingAttribute":{
                                        "default":"cn",
                                        "description":"Naming attribute for groups in LDAP",
                                        "type":"string"
                                    },
                                    "maxGroupsToFetch":{
                                        "default":"0",
                                        "description":"Sets the maximum number of entries to be returned as a result of the search. A value of 0 indicates no limit. (Note: this only applies to the case when group membership query constructed by ORA, and this does not apply to memberof query)",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "maxNestedLevels":{
                                        "default":"10",
                                        "description":"Maximum depth search should happen for finding out groups a given user is member of in case if nested groups are configured. (Note: this only applies to the case when group membership query constructed by ORA, and this does not apply to memberof query)",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "memberAttr":{
                                        "description":"LDAP attribute name to be used for group related queries. If not specified then uniquemember and member are used. For AD we need to provide 'member' as its value for nested group searches to work",
                                        "example":"member",
                                        "type":"string"
                                    },
                                    "memberFilteringCriteria":{
                                        "description":"Additional filtering criteria for group searches. This condition when present is ANDed with the group membership query filter. Eg: For AD we need to provide (objectclass=group) for nested group search to work",
                                        "example":"objectclass=group",
                                        "type":"string"
                                    },
                                    "memberOfAttribute":{
                                        "default":"memberof",
                                        "description":"The attribute which returns groups a user is member of. OUD works with ismemberof, AD works with memberof while OID supports both memberof and ismemberof",
                                        "type":"string"
                                    },
                                    "poolMaxConnectionIdleTime":{
                                        "default":"1500000",
                                        "description":"Time in milliseconds after which an idle connection is expired",
                                        "format":"int64",
                                        "type":"integer"
                                    },
                                    "poolMaxConnectionReuseTime":{
                                        "default":"-1(No time limit)",
                                        "description":"Time in milliseconds after which a connection is expired",
                                        "format":"int64",
                                        "type":"integer"
                                    },
                                    "reuseAddress":{
                                        "default":"true",
                                        "description":"Reuse ports even when it is in TIME_WAIT state",
                                        "type":"boolean"
                                    },
                                    "soKeepAlive":{
                                        "default":"true",
                                        "description":"Enable keep alive probes for socket connection",
                                        "type":"boolean"
                                    },
                                    "soTimeout":{
                                        "default":"0",
                                        "description":"Defines the socket timeout in milliseconds while waiting for data. A value of 0 indicates no timeout",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "tcpNoDelay":{
                                        "default":"false",
                                        "description":"Data is sent as soon as available",
                                        "type":"boolean"
                                    },
                                    "userFilteringCriteria":{
                                        "description":"Additional filtering criteria to search user. If specified, this filter gets appended with loginAttr (using AND condition)",
                                        "type":"string"
                                    }
                                },
                                "description":"LDAP configuration details",
                                "type":"object"
                            },
                            "custom":{
                                "required":[
                                    "enabled",
                                    "name"
                                ],
                                "properties":{
                                    "enabled":{
                                        "default":"true",
                                        "description":"Flag to indicate if it is enabled",
                                        "type":"boolean"
                                    },
                                    "name":{
                                        "description":"Name of the configuration",
                                        "example":"<name of provider>",
                                        "type":"string"
                                    },
                                    "retryCount":{
                                        "default":"1",
                                        "description":"If configured and a value > 0 indicates that the Operation will be retried for the configured number of times in case of a Connection Failure.\nRetry can be turned off if value = 0",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "retryInterval":{
                                        "default":"0",
                                        "description":"When number of retries is > 1, retry interval between two retries in ms",
                                        "format":"int64",
                                        "type":"integer"
                                    },
                                    "className":{
                                        "description":"Custom authentication provider class name",
                                        "type":"string"
                                    },
                                    "jarsLocation":{
                                        "description":"Gets the jars directory for the custom provider",
                                        "type":"string"
                                    },
                                    "properties":{
                                        "description":"Defined properties",
                                        "type":"object"
                                    },
                                    "unrecognizedFields":{
                                        "readOnly":true,
                                        "type":"object"
                                    }
                                },
                                "description":"Custom Authenticator configuration details",
                                "type":"object"
                            }
                        },
                        "description":"Global primary authentication config details",
                        "type":"object"
                    },
                    "mfa":{
                        "required":[
                            "oaa",
                            "provider"
                        ],
                        "properties":{
                            "oaa":{
                                "required":[
                                    "name",
                                    "enabled",
                                    "oaaUrl",
                                    "clientType",
                                    "clientSecret",
                                    "clientId"
                                ],
                                "properties":{
                                    "name":{
                                        "description":"Name of the configuration",
                                        "example":"<name of provider>",
                                        "type":"string"
                                    },
                                    "enabled":{
                                        "default":"true",
                                        "description":"Flag to indicate if it is enabled",
                                        "type":"boolean"
                                    },
                                    "oaaUrl":{
                                        "description":"OAA Service Base URI",
                                        "example":"https://127.0.0.1:37001/oaa/runtime",
                                        "type":"string"
                                    },
                                    "clientType":{
                                        "default":"radius",
                                        "description":"Client Type used in OAA for RADIUS agent",
                                        "type":"string"
                                    },
                                    "clientSecret":{
                                        "description":"Client Secret in OAA for registered agent for RADIUS Agent",
                                        "example":"secret1",
                                        "type":"string"
                                    },
                                    "clientId":{
                                        "description":"Client ID in OAA for registered agent for RADIUS Agent",
                                        "example":"clientId1",
                                        "type":"string"
                                    },
                                    "agentgid":{
                                        "description":"Agent ID in OAA for registered RADIUS agent",
                                        "example":"agent1",
                                        "type":"string"
                                    },
                                    "timeToLiveInMs":{
                                        "default":"300000",
                                        "description":"Factor Token's Time To Live in MilliSecs",
                                        "format":"int64",
                                        "type":"integer"
                                    },
                                    "connectTimeout":{
                                        "default":"2000",
                                        "description":"OAA API Connection Timeout in Millisecs",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "readTimeout":{
                                        "default":"10000",
                                        "description":"OAA API Read Timeout in Millisecs",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "properties":{
                                        "readOnly":true,
                                        "type":"object"
                                    },
                                    "retryCount":{
                                        "default":"1",
                                        "description":"If configured and a value > 0 indicates that the Operation will be retried for the configured number of times in case of a Connection Failure.\nRetry can be turned off if value = 0",
                                        "format":"int32",
                                        "type":"integer"
                                    },
                                    "retryInterval":{
                                        "default":"0",
                                        "description":"When number of retries is > 1, retry interval between two retries in ms",
                                        "format":"int64",
                                        "type":"integer"
                                    },
                                    "oaaPolicyUrl":{
                                        "description":"OAA Policy URL",
                                        "example":"https://100.102.48.163:31223/oaa-policy",
                                        "type":"string"
                                    },
                                    "policyUserName":{
                                        "description":"OAA Policy Username",
                                        "example":"oaa20210128t000000-oaa-policy",
                                        "type":"string"
                                    },
                                    "policyUserPassword":{
                                        "description":"OAA Policy Password",
                                        "example":"oaaPolicyPassword1",
                                        "type":"string"
                                    }
                                },
                                "description":"OAA configuration details",
                                "type":"object"
                            },
                            "provider":{
                                "default":"OAA",
                                "description":"Provider name",
                                "type":"string"
                            }
                        },
                        "description":"Global multi factor authentication config details",
                        "type":"object"
                    },
                    "preferences":{
                        "properties":{
                            "allowSpecificFactorInPassword":{
                                "default":"false",
                                "description":"Indicates if directly invoking Specific Factor by enduser is enabled or not",
                                "type":"boolean"
                            },
                            "allowTokenInPassword":{
                                "default":"true",
                                "description":"Indicates if synchronous login mode (Password, delimiter, token concatenation) is enabled/disabled",
                                "type":"boolean"
                            },
                            "appendDelimiter":{
                                "default":";",
                                "description":"Delimiter used for synchronous mode ( Password+delimiter+token)",
                                "example":"password;123456",
                                "type":"string"
                            },
                            "defaultSecondFactor":{
                                "default":"ChallengeOMATOTP",
                                "description":"Default Second Factor. This Factor will be used when no preferred factor is available for the user from OAA's User Preferences and synchronous mode is used in the RADIUS Request",
                                "type":"string"
                            },
                            "defaultTokenLength":{
                                "default":"6",
                                "description":"Length of the token for synchronous login mode. This represents the token length of the DefaultSecondFactor configured",
                                "format":"int32",
                                "type":"integer"
                            },
                            "factorToTokenLengthMap":{
                                "default":"{\"ChallengeOMATOTP\": 6, \"ChallengeYubicoOTP\": 44}",
                                "description":"RADIUS Factor to factor token length mapping",
                                "type":"object"
                            },
                            "groupAsSingleString":{
                                "default":"false",
                                "description":"Returns group details as a single string in response separated by a delimiter that is configured if it's true",
                                "type":"boolean"
                            },
                            "groupAsSingleStringDelimiter":{
                                "default":",",
                                "description":"Delimiter used when groups are returned as single string",
                                "type":"string"
                            },
                            "groupAttrID":{
                                "default":"1 (for ORACLE)",
                                "description":"RADIUS attribute ID for the group mapping. Groups are returned as part of this RADIUS attribute",
                                "format":"int32",
                                "type":"integer"
                            },
                            "groupAttrVendorID":{
                                "default":"111 (for ORACLE_ROLE attribute)",
                                "description":"RADIUS vendor ID for the group mapping. Groups are returned as part of this RADIUS attribute. RADIUS Vendor ID 111 stands for Oracle and a value of -1 needs to be used in order to use any standard RADIUS attribute",
                                "format":"int32",
                                "type":"integer"
                            },
                            "groupNameMapping":{
                                "description":"Mappings to map group names in primary authenticator to different values",
                                "example":"{\"group1\":\"ORA_GRP_1\", \"group2\":\"ORA_GRP_2\"}",
                                "type":"object"
                            },
                            "mfaOptions":{
                                "default":"\"defaultGroup\": \"Default\"",
                                "description":"Additional OAA Provider specific options like  \"assuranceLevel\", \"factorChoices\" (for auto-wiring of ORA and OAA), \"defaultGroup\" for setting default group name that is passed to OAA",
                                "example":" \"assuranceLevel\": \"Rad_CP0_%RNDM1%\"",
                                "type":"object"
                            },
                            "radiusFactorToMFAFactorMap":{
                                "default":"{\"totp\": \"ChallengeOMATOTP\", \"yubikey\": \"ChallengeYubicoOTP\", \"sms\": \"ChallengeSMS\", \"mail\": \"ChallengeEmail\"}",
                                "description":"RadiusAgent's Factor to MFA Provider's Factor mapping. These keywords can be used to invoke a specific factor for MFA",
                                "type":"object"
                            },
                            "returnGroups":{
                                "default":"false",
                                "description":"Indicates if groups need to be returned during authentication",
                                "example":"true/false",
                                "type":"boolean"
                            },
                            "userAttrMap":{
                                "description":"Represents mapping for user attributes from primary authenticator to specified RADIUS Attributes which are to be returned during authentication",
                                "example":"{\"userAttrVendorID\": 111, \"userAttrName\": \"cn\"}",
                                "items":{
                                    "$ref":"#/components/schemas/UserAttrMapping"
                                },
                                "type":"array"
                            }
                        },
                        "description":"Global preferences config details",
                        "type":"object"
                    },
                    "application":{
                        "description":"RADIUS client configuration details",
                        "type":"object"
                    }
                },
                "type":"object"
            },
            "SharedSecret":{
                "required":[
                    "applicationName",
                    "hostName",
                    "id",
                    "sharedSecret"
                ],
                "properties":{
                    "applicationName":{
                        "description":"Name of the RADIUS client application",
                        "example":"Database RADIUS Client",
                        "type":"string"
                    },
                    "applicationType":{
                        "description":"Type of the RADIUS client application",
                        "example":"Oracle, Cisco VPN, SSH etc.",
                        "nullable":true,
                        "type":"string"
                    },
                    "description":{
                        "description":"Description of the RADIUS client application",
                        "example":"Database RADIUS client for DB Authentication",
                        "nullable":true,
                        "type":"string"
                    },
                    "hostName":{
                        "description":"RADIUS client host name or IP address",
                        "example":"Add IP address or hostname of RADIUS client machine here",
                        "type":"string"
                    },
                    "id":{
                        "description":"Id generated for the RADIUS client",
                        "format":"int64",
                        "readOnly":true,
                        "type":"integer"
                    },
                    "sharedSecret":{
                        "description":"Shared secret generated during registration of RADIUS client",
                        "readOnly":true,
                        "type":"string"
                    }
                },
                "type":"object"
            }
        }
    },
    "info":{
        "contact":{
            "email":"oud-gate_ww_grp@oracle.com",
            "name":"Oracle RADIUS Agent REST APIs",
            "url":"http://oracle.com/"
        },
        "description":"Oracle RADIUS Agent REST APIs allows administrator to perform configuration management and administration operations for Oracle RADIUS Agent.",
        "license":{
            "name":"Oracle",
            "url":"http://oracle.com/"
        },
        "title":"REST APIs for Oracle RADIUS Agent",
        "version":"2022.04.29",
        "x-summary":"Oracle RADIUS Agent REST APIs allows administrator to perform configuration management and administration operations for Oracle RADIUS Agent."
    },
    "openapi":"3.0",
    "paths":{
        "/radius-admin/v1/clients":{
            "post":{
                "tags":[
                    "RADIUS Client Administration"
                ],
                "description":"Permits administrator to register RADIUS client applications with Oracle RADIUS Agent. It generates new shared secret for the client which needs to be used during RADIUS based communications with Oracle RADIUS Agent.The generated shared secret value is returned as part of the response.",
                "requestBody":{
                    "content":{
                        "application/json":{
                            "schema":{
                                "$ref":"#/components/schemas/SharedSecret"
                            }
                        }
                    },
                    "description":"Properties for the RADIUS client",
                    "required":true
                },
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/SharedSecret"
                                }
                            }
                        },
                        "description":"The given RADIUS client registered successfully with Oracle RADIUS Agent."
                    },
                    "400":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Given RADIUS client already registered with Oracle RADIUS Agent."
                    },
                    "409":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"RADIUS client already exists with given host name/IP address or client name."
                    }
                },
                "summary":"Registers RADIUS Client",
                "x-internal-id":"radius-admin-v1-clients-post",
                "x-filename-id":"radius-admin-v1-clients-post"
            },
            "get":{
                "tags":[
                    "RADIUS Client Administration"
                ],
                "description":"Permits administrator to list RADIUS clients registered with Oracle RADIUS Agent.",
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                                "schema":{
                                }
                            }
                        },
                        "description":"All registered RADIUS clients returned successfully."
                    },
                    "204":{
                        "content":{
                            "application/json":{
                            }
                        },
                        "description":"No RADIUS client is registered with Oracle RADIUS Agent."
                    },
                    "500":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Error occurred during fetching of registered clients."
                    }
                },
                "summary":"Gets Registered RADIUS Clients",
                "x-internal-id":"radius-admin-v1-clients-get",
                "x-filename-id":"radius-admin-v1-clients-get"
            }
        },
        "/radius-admin/v1/clients/application/{radiusClientName}":{
            "get":{
                "tags":[
                    "RADIUS Client Administration"
                ],
                "parameters":[
                    {
                        "description":"Name of the registered RADIUS client",
                        "in":"path",
                        "name":"radiusClientName",
                        "required":true,
                        "schema":{
                            "type":"string"
                        }
                    }
                ],
                "description":"Permits administrator to get properties of the given RADIUS client registered with Oracle RADIUS agent using application name. Shared secret is not returned as part of the response.",
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/SharedSecret"
                                }
                            }
                        },
                        "description":"The registered RADIUS client properties without shared secret returned successfully."
                    },
                    "404":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"The given RADIUS client not registered with Oracle RADIUS Agent."
                    },
                    "500":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Error occurred while fetching RADIUS client details."
                    }
                },
                "summary":"Gets RADIUS Client Using Name",
                "x-internal-id":"radius-admin-v1-clients-application-{radiusClientName}-get",
                "x-filename-id":"radius-admin-v1-clients-application-radiusclientname-get"
            },
            "patch":{
                "tags":[
                    "RADIUS Client Administration"
                ],
                "parameters":[
                    {
                        "description":"Name of the registered RADIUS client",
                        "in":"path",
                        "name":"radiusClientName",
                        "required":true,
                        "schema":{
                            "type":"string"
                        }
                    }
                ],
                "description":"Permits administrator to update properties of a registered RADIUS client other than the shared secret using application name.",
                "requestBody":{
                    "content":{
                        "application/json":{
                            "schema":{
                                "$ref":"#/components/schemas/SharedSecret"
                            }
                        }
                    },
                    "description":"Properties to update",
                    "required":true
                },
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/SharedSecret"
                                }
                            }
                        },
                        "description":"RADIUS client properties updated successfully."
                    },
                    "400":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Error occurred during updating the details of the given RADIUS client."
                    },
                    "404":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"The given RADIUS client not registered with Oracle RADIUS Agent."
                    },
                    "409":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"RADIUS client already exists with given host name/IP address or client name."
                    }
                },
                "summary":"Updates RADIUS Client By Name",
                "x-internal-id":"radius-admin-v1-clients-application-{radiusClientName}-patch",
                "x-filename-id":"radius-admin-v1-clients-application-radiusclientname-patch"
            },
            "delete":{
                "tags":[
                    "RADIUS Client Administration"
                ],
                "parameters":[
                    {
                        "description":"Name of the registered RADIUS client",
                        "in":"path",
                        "name":"radiusClientName",
                        "required":true,
                        "schema":{
                            "type":"string"
                        }
                    }
                ],
                "description":"Permits administrator to unregister a previously registered RADIUS client based on the application name.",
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/SharedSecret"
                                }
                            }
                        },
                        "description":"Given RADIUS client unregistered from Oracle RADIUS Agent successfully."
                    },
                    "404":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Given RADIUS client not registered with Oracle RADIUS Agent."
                    },
                    "500":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Error occurred during unregistration of the RADIUS client."
                    }
                },
                "summary":"Unregisters RADIUS Client Using Name",
                "x-internal-id":"radius-admin-v1-clients-application-{radiusClientName}-delete",
                "x-filename-id":"radius-admin-v1-clients-application-radiusclientname-delete"
            }
        },
        "/radius-admin/v1/clients/reset":{
            "patch":{
                "tags":[
                    "RADIUS Client Administration"
                ],
                "description":"Permits administrator to reset shared secret of a RADIUS client registered with Oracle RADIUS Agent. The new shared secret is return as part of the response.",
                "requestBody":{
                    "content":{
                        "application/json":{
                            "schema":{
                                "$ref":"#/components/schemas/SharedSecret"
                            }
                        }
                    },
                    "description":"host name or IP address or name of the registered RADIUS client",
                    "required":true
                },
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/SharedSecret"
                                }
                            }
                        },
                        "description":"The shared secret for the given RADIUS client has been reset successfully."
                    },
                    "404":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"The given RADIUS client not registered with Oracle RADIUS Agent."
                    },
                    "500":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Error occurred during resetting of shared secret of the given RADIUS client."
                    }
                },
                "summary":"Resets Shared Secret",
                "x-internal-id":"radius-admin-v1-clients-reset-patch",
                "x-filename-id":"radius-admin-v1-clients-reset-patch"
            }
        },
        "/radius-admin/v1/clients/{hostName}":{
            "get":{
                "tags":[
                    "RADIUS Client Administration"
                ],
                "parameters":[
                    {
                        "description":"IP address or host name of the registered RADIUS client",
                        "in":"path",
                        "name":"hostName",
                        "required":true,
                        "schema":{
                            "type":"string"
                        }
                    }
                ],
                "description":"Permits administrator to get details of the given RADIUS client registered with Oracle RADIUS agent using host name or IP address. Shared secret is not returned as part of the response.",
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/SharedSecret"
                                }
                            }
                        },
                        "description":"The registered RADIUS client details without shared secret returned successfully."
                    },
                    "404":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"The given RADIUS client not registered with Oracle RADIUS Agent."
                    },
                    "500":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Error occurred while fetching RADIUS client details."
                    }
                },
                "summary":"Gets RADIUS Client Using Host",
                "x-internal-id":"radius-admin-v1-clients-{hostName}-get",
                "x-filename-id":"radius-admin-v1-clients-hostname-get"
            },
            "patch":{
                "tags":[
                    "RADIUS Client Administration"
                ],
                "parameters":[
                    {
                        "description":"IP address or host name of the registered RADIUS client",
                        "in":"path",
                        "name":"hostName",
                        "required":true,
                        "schema":{
                            "type":"string"
                        }
                    }
                ],
                "description":"Permits administrator to update properties of a registered RADIUS client other than the shared secret using host name or IP address.",
                "requestBody":{
                    "content":{
                        "application/json":{
                            "schema":{
                                "$ref":"#/components/schemas/SharedSecret"
                            }
                        }
                    },
                    "description":"Properties to update",
                    "required":true
                },
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/SharedSecret"
                                }
                            }
                        },
                        "description":"RADIUS client properties updated successfully."
                    },
                    "400":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Error occurred during updating the details of the given RADIUS client."
                    },
                    "404":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"The given RADIUS client not registered with Oracle RADIUS Agent."
                    },
                    "409":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"RADIUS client already exists with given host name/IP address or client name."
                    }
                },
                "summary":"Updates RADIUS Client Using Host",
                "x-internal-id":"radius-admin-v1-clients-{hostName}-patch",
                "x-filename-id":"radius-admin-v1-clients-hostname-patch"
            },
            "delete":{
                "tags":[
                    "RADIUS Client Administration"
                ],
                "parameters":[
                    {
                        "description":"IP address or host name of the registered RADIUS client",
                        "in":"path",
                        "name":"hostName",
                        "required":true,
                        "schema":{
                            "type":"string"
                        }
                    }
                ],
                "description":"Permits administrator to unregister a previously registered RADIUS client based on the host name or IP address.",
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/SharedSecret"
                                }
                            }
                        },
                        "description":"Given RADIUS client unregistered from Oracle RADIUS Agent successfully."
                    },
                    "404":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Given RADIUS client not registered with Oracle RADIUS Agent."
                    },
                    "500":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Error occurred during unregistration of the RADIUS client."
                    }
                },
                "summary":"Unregisters RADIUS Client Using Host",
                "x-internal-id":"radius-admin-v1-clients-{hostName}-delete",
                "x-filename-id":"radius-admin-v1-clients-hostname-delete"
            }
        },
        "/radius-config/v1/configurations":{
            "post":{
                "tags":[
                    "RADIUS Configuration"
                ],
                "description":"Permits administrators to create global or application scoped configurations in Oracle RADIUS Agent. A global configuration is shared between multiple RADIUS clients and an application scoped configuration is restricted to a particular RADIUS client application.",
                "requestBody":{
                    "content":{
                        "application/json":{
                            "schema":{
                                "$ref":"#/components/schemas/RadiusConfiguration"
                            }
                        }
                    },
                    "description":"New configuration details",
                    "required":true
                },
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                            }
                        },
                        "description":"Configuration added successfully."
                    },
                    "400":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Bad request"
                    },
                    "409":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Given configuration already exists."
                    }
                },
                "summary":"Creates Configuration",
                "x-internal-id":"radius-config-v1-configurations-post",
                "x-filename-id":"radius-config-v1-configurations-post"
            },
            "get":{
                "tags":[
                    "RADIUS Configuration"
                ],
                "description":"Permits administrators to fetch current configurations in Oracle RADIUS Agent.",
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "type":"string"
                                }
                            }
                        },
                        "description":"All of Oracle RADIUS Agent configurations returned in JSON format."
                    },
                    "404":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Configuration does not exist."
                    },
                    "500":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Error occurred during reading configurations."
                    }
                },
                "summary":"Gets Configurations",
                "x-internal-id":"radius-config-v1-configurations-get",
                "x-filename-id":"radius-config-v1-configurations-get"
            },
            "patch":{
                "tags":[
                    "RADIUS Configuration"
                ],
                "description":"Permits administrators to add or update or remove properties for a given configuration type. To delete properties, property value needs to be passed as null and to remove particular index from list of values, 'delete' property with name of index to be deleted needs to be passed.",
                "requestBody":{
                    "content":{
                        "application/json":{
                            "schema":{
                                "$ref":"#/components/schemas/RadiusConfiguration"
                            }
                        }
                    },
                    "description":"Configuration details to be updated.",
                    "required":true
                },
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Configuration updated successfully."
                    },
                    "400":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Bad request"
                    },
                    "404":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Configuration does not exist."
                    }
                },
                "summary":"Updates Configuration",
                "x-internal-id":"radius-config-v1-configurations-patch",
                "x-filename-id":"radius-config-v1-configurations-patch"
            }
        },
        "/radius-config/v1/configurations/reload":{
            "get":{
                "tags":[
                    "RADIUS Configuration"
                ],
                "description":"Read latest configurations and reinitializes Oracle RADIUS Agent. All configurations defined get reloaded.",
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Oracle RADIUS Agent reinitialized with latest configurations."
                    },
                    "404":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Required configuration does not exist."
                    },
                    "500":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Error occurred during reloading configuration."
                    }
                },
                "summary":"Reloads Configurations",
                "x-internal-id":"radius-config-v1-configurations-reload-get",
                "x-filename-id":"radius-config-v1-configurations-reload-get"
            }
        },
        "/radius-config/v1/configurations/{configType}":{
            "delete":{
                "tags":[
                    "RADIUS Configuration"
                ],
                "parameters":[
                    {
                        "description":"Configuration type whose configuration needs to be deleted.Use all the first level configuration type such as logging, server, authentication, mfa, application or preferences.",
                        "in":"path",
                        "name":"configType",
                        "required":true,
                        "schema":{
                            "type":"string"
                        }
                    }
                ],
                "description":"Permits administrators to delete the given global scoped configuration from Oracle RADIUS Agent.",
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Configuration deleted successfully."
                    },
                    "400":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Bad request"
                    },
                    "404":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Given configuration type does not exist."
                    }
                },
                "summary":"Deletes Global Configuration",
                "x-internal-id":"radius-config-v1-configurations-{configType}-delete",
                "x-filename-id":"radius-config-v1-configurations-configtype-delete"
            }
        },
        "/radius-config/v1/configurations/{configType}/{applicationName}":{
            "delete":{
                "tags":[
                    "RADIUS Configuration"
                ],
                "parameters":[
                    {
                        "description":"Name of configuration that needs to be deleted",
                        "in":"path",
                        "name":"applicationName",
                        "required":true,
                        "schema":{
                            "type":"string"
                        }
                    },
                    {
                        "description":"Configuration type whose configuration needs to be deleted.Use application configuration type to delete the particular application.",
                        "in":"path",
                        "name":"configType",
                        "required":true,
                        "schema":{
                            "type":"string"
                        }
                    }
                ],
                "description":"Permits administrators to delete the given application scoped configuration from Oracle RADIUS Agent based on the name of the RADIUS client.",
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Give configuration deleted successfully."
                    },
                    "400":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Bad request"
                    },
                    "404":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Given configuration type does not exist."
                    }
                },
                "summary":"Deletes Application Configuration",
                "x-internal-id":"radius-config-v1-configurations-{configType}-{applicationName}-delete",
                "x-filename-id":"radius-config-v1-configurations-configtype-applicationname-delete"
            }
        },
        "/radius-config/v1/init":{
            "post":{
                "tags":[
                    "RADIUS Configuration"
                ],
                "description":"Permits administrators to create global or application scoped configuration and RADIUS administrator users or groups to seed initial Day-0 configuration for the first time into Oracle RADIUS Agent. A global configuration is shared between multiple RADIUS clients and an application scoped configuration is restricted to a particular RADIUS client application. This API is unprotected and used only once to seed the initial configurations that does initial wiring with OAA, if required OAA configurations are provided. Note that any REST API call after Day-0 requires RADIUS administrator credentials.",
                "requestBody":{
                    "content":{
                        "application/json":{
                            "schema":{
                                "$ref":"#/components/schemas/RadiusConfiguration"
                            }
                        }
                    },
                    "description":"Day-0 configuration details",
                    "required":true
                },
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                            }
                        },
                        "description":"Initial configuration added successfully."
                    },
                    "400":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Bad request"
                    },
                    "409":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Initial configuration already present in Oracle RADIUS Agent."
                    }
                },
                "summary":"Creates Day-0 Configuration",
                "x-internal-id":"radius-config-v1-init-post",
                "x-filename-id":"radius-config-v1-init-post"
            }
        },
        "/radius-config/v1/radiusAdministrators":{
            "get":{
                "tags":[
                    "RADIUS Configuration"
                ],
                "description":"Fetches all users and groups currently configured to administer Oracle RADIUS Agent.",
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "type":"string"
                                }
                            }
                        },
                        "description":"All Oracle RADIUS Agent administrators returned in JSON format."
                    },
                    "404":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Oracle RADIUS Agent administrators not configured."
                    },
                    "500":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Error occurred during reading Oracle RADIUS Agent administrators."
                    }
                },
                "summary":"Gets admin users and groups",
                "x-internal-id":"radius-config-v1-radiusAdministrators-get",
                "x-filename-id":"radius-config-v1-radiusadministrators-get"
            }
        },
        "/radius-config/v1/secretStorePassword/{type}":{
            "get":{
                "tags":[
                    "RADIUS Configuration"
                ],
                "parameters":[
                    {
                        "description":"Type of the secret store - HTTPS or Bootstrap",
                        "in":"path",
                        "name":"type",
                        "required":true,
                        "schema":{
                            "type":"string"
                        }
                    }
                ],
                "description":"Fetches password of HTTPS secret store (self signed) or the bootstrap store of Oracle RADIUS Agent.",
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "type":"string"
                                }
                            }
                        },
                        "description":"Secret store password returned in JSON format."
                    },
                    "400":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Bad request."
                    },
                    "404":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Oracle RADIUS Agent secret store password not configured for the given type."
                    },
                    "500":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Error occurred during reading secret store password."
                    }
                },
                "summary":"Gets secret store password.",
                "x-internal-id":"radius-config-v1-secretStorePassword-{type}-get",
                "x-filename-id":"radius-config-v1-secretstorepassword-type-get"
            }
        },
        "/radius-config/v1/validate":{
            "post":{
                "tags":[
                    "RADIUS Configuration"
                ],
                "description":"Permits administrator to validate global or application scoped configuration for given configuration type without saving it for Oracle RADIUS Agent.",
                "requestBody":{
                    "content":{
                        "application/json":{
                            "schema":{
                                "$ref":"#/components/schemas/RadiusConfiguration"
                            }
                        }
                    },
                    "description":"Configuration details",
                    "required":true
                },
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                            }
                        },
                        "description":"Configuration added successfully."
                    },
                    "400":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Bad request"
                    },
                    "409":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Configuration already exists."
                    }
                },
                "summary":"Validates Configuration",
                "x-internal-id":"radius-config-v1-validate-post",
                "x-filename-id":"radius-config-v1-validate-post"
            }
        },
        "/radius-config/v1/vsa":{
            "post":{
                "tags":[
                    "Vendor Specific Attributes"
                ],
                "description":"Permits administrators to create vendor specific attributes.",
                "requestBody":{
                    "content":{
                        "application/json":{
                            "schema":{
                                "$ref":"#/components/schemas/VendorSpecificAttribute"
                            }
                        }
                    },
                    "description":"New vendor specific attribute details to be created",
                    "required":true
                },
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                            }
                        },
                        "description":"Vendor specific attribute created successfully."
                    },
                    "400":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Bad request"
                    },
                    "409":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Vendor specific attribute already present in Oracle RADIUS Agent."
                    }
                },
                "summary":"Creates VSA",
                "x-internal-id":"radius-config-v1-vsa-post",
                "x-filename-id":"radius-config-v1-vsa-post"
            },
            "get":{
                "tags":[
                    "Vendor Specific Attributes"
                ],
                "description":"Permits administrators to gets vendor specific attributes.",
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                            }
                        },
                        "description":"Vendor specific attribute returned successfully."
                    },
                    "500":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Error occurred during reading vendor specific attributes."
                    }
                },
                "summary":"Gets VSA",
                "x-internal-id":"radius-config-v1-vsa-get",
                "x-filename-id":"radius-config-v1-vsa-get"
            }
        },
        "/radius-config/v1/vsa/bulk":{
            "post":{
                "tags":[
                    "Vendor Specific Attributes"
                ],
                "description":"Permits administrators to create more than one vendor specific attributes for same vendor.",
                "requestBody":{
                    "content":{
                        "application/json":{
                            "schema":{
                                "items":{
                                    "$ref":"#/components/schemas/VendorSpecificAttribute"
                                },
                                "type":"array"
                            }
                        }
                    },
                    "description":"New vendor specific attributes details to be created",
                    "required":true
                },
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                            }
                        },
                        "description":"Vendor specific attribute created successfully."
                    },
                    "400":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Bad request"
                    },
                    "409":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Vendor specific attribute already present in Oracle RADIUS Agent."
                    }
                },
                "summary":"Bulk Create VSA",
                "x-internal-id":"radius-config-v1-vsa-bulk-post",
                "x-filename-id":"radius-config-v1-vsa-bulk-post"
            }
        },
        "/radius-config/v1/vsa/{vendorId}":{
            "delete":{
                "tags":[
                    "Vendor Specific Attributes"
                ],
                "parameters":[
                    {
                        "description":"Vendor id for the attribute",
                        "in":"path",
                        "name":"vendorId",
                        "required":true,
                        "schema":{
                            "type":"integer"
                        }
                    }
                ],
                "description":"Permits administrators to delete vendor specific attributes.",
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                            }
                        },
                        "description":"Vendor specific attributes deleted successfully."
                    },
                    "400":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Bad request"
                    },
                    "404":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Vendor specific attribute not present in Oracle RADIUS Agent."
                    },
                    "500":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Error occurred during reading vendor specific attributes."
                    }
                },
                "summary":"Deletes VSA Using Vendor",
                "x-internal-id":"radius-config-v1-vsa-{vendorId}-delete",
                "x-filename-id":"radius-config-v1-vsa-vendorid-delete"
            }
        },
        "/radius-config/v1/vsa/{vendorId}/{attributeName}":{
            "delete":{
                "tags":[
                    "Vendor Specific Attributes"
                ],
                "parameters":[
                    {
                        "description":"Attribute name to be deleted",
                        "in":"path",
                        "name":"attributeName",
                        "required":true,
                        "schema":{
                            "type":"string"
                        }
                    },
                    {
                        "description":"Vendor id for the attribute",
                        "in":"path",
                        "name":"vendorId",
                        "required":true,
                        "schema":{
                            "type":"integer"
                        }
                    }
                ],
                "description":"Permits administrators to delete vendor specific attribute.",
                "responses":{
                    "200":{
                        "content":{
                            "application/json":{
                            }
                        },
                        "description":"Vendor specific attribute deleted successfully."
                    },
                    "400":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Bad request"
                    },
                    "404":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Vendor specific attribute not present in Oracle RADIUS Agent."
                    },
                    "500":{
                        "content":{
                            "application/json":{
                                "schema":{
                                    "$ref":"#/components/schemas/ResponseMessage"
                                }
                            }
                        },
                        "description":"Error occurred during reading vendor specific attributes."
                    }
                },
                "summary":"Deletes VSA",
                "x-internal-id":"radius-config-v1-vsa-{vendorId}-{attributeName}-delete",
                "x-filename-id":"radius-config-v1-vsa-vendorid-attributename-delete"
            }
        }
    }
}