Download OpenAPI specification:Download
This is the spec that defines the API provided by the application to provide auth across the cluster
Create an access token for EFA
Credentials to fetch a token
username | string Name of the user for whom the token has to be generated |
password | string Password for the above user |
{- "username": "admin",
- "password": "password"
}
{- "access-token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "token-type": "Bearer",
- "refresh-token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "message": "Certificates will expire soon, please renew"
}
{- "access-token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "token-type": "Bearer",
- "refresh-token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "message": "Certificates will expire soon, please renew"
}
Create an extended system access token for EFA
Credentials to fetch a token
clientId | string ID of the registered client |
expiry | integer Number of seconds until extended token must expire |
{- "clientId": "sdjfdjskjd",
- "expiry": 300
}
{- "access-token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "token-type": "Bearer",
- "refresh-token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "message": "Certificates will expire soon, please renew"
}
Create an access token for XCO clients
Client Credentials to fetch a token
username | string Name of the user for whom the token has to be generated |
password | string Password for the above user |
clientId | string ID of the registered client |
{- "username": "admin",
- "password": "password"
}
{- "access-token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "token-type": "Bearer",
- "message": "Certificates will expire soon, please renew"
}
Get access token with refresh token
Refresh token
refresh-token | string refresh token |
grant-type | string grant type(refresh_token) |
{- "grant-type": "refresh_token",
- "refresh-token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
{- "access-token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "token-type": "Bearer",
- "refresh-token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "message": "Certificates will expire soon, please renew"
}
Create a key for XCO clients
force required | boolean Force key regenerate |
Credentials to fetch a token
clientId | string ID of the registered client |
{- "clientId": "sdjfdjskjd"
}
{- "apiKey": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
Update Token Expiry Time For A Specific Token
Type of the XCO token
type | string Type of the token |
hours | integer Hours for token expiry |
minutes | integer Minutes for token expiry |
{- "type": "ACCESS",
- "hours": 0,
- "minutes": 15
}
{- "type": "ACCESS",
- "hours": 0,
- "minutes": 15
}
Register a new client to access EFA
Details of the client
name | string Name for the client(tenant name for Openstack clients) |
clientType | string Type of the client(openstack for Openstack clients) |
{- "name": "tenantname",
- "clientType": "openstack"
}
{- "name": "tenantname",
- "clientID": "askjf-djffi-dwokd-askls",
- "clientType": "openstack"
}
Fetch LDAP details by name
name required | string Name given for the ldap connection |
{- "id": 0,
- "name": "string",
- "host": "string",
- "port": "string",
- "tls": true,
- "insecure-tls": true,
- "cacert": "string",
- "timeout": 0,
- "bind-user-name": "string",
- "bind-user-password": "string",
- "user-search-base": "string",
- "user-object-class": "string",
- "user-login-attribute": "string",
- "user-role-attribute": "string",
- "user-role-attribute-key": "string",
- "user-member-attribute": "string",
- "group-search-base": "string",
- "group-object-class": "string",
- "group-attribute": "string",
- "group-member-user-attribute": "string",
- "group-member-mapping-attribute": "string"
}
Update LDAP configuration for authentication
name required | string Name of the registered LDAP Server |
Details of the LDAP Server
name | string Name for the LDAP connection |
host | string Specify the hostname or IPv4/IPv6 address |
port | string Specify the port at which the OpenLDAP server is listening for connections |
tls required | boolean Enable to use LDAP over SSL/TLS |
insecure-tls required | boolean Enable to use LDAP without cert verification |
cacert | string CA certificate |
timeout required | integer Duration in number of seconds before considering the server unreachable(defaults to 5 sec) |
bind-user-name | string Distinguished Name (DN) of the user that should be used to bind, search and retrieve LDAP entries |
bind-user-password | string Password of the bind user |
user-search-base | string Enter the Distinguished Name of the node in your directory tree from which to start searching for user objects. |
user-object-class | string Name of the object class used for user objects(defaults to inetOrgPerson) |
user-login-attribute | string The attribute whose value matches the username part of credentials entered by your users when logging in(defualts to uid) |
user-role-attribute | string The attribute to read the role of user from |
user-role-attribute-key | string The attribute to read the role value from role attribute |
user-member-attribute | string The attribute to read the member of the group the user is part of |
group-search-base | string Enter the Distinguished Name of the node in your directory tree from which to start searching for group objects. |
group-object-class | string Name of the object class used for group objects(defaults to groupOfNames) |
group-attribute | string Attribute to define search filter on group(defaults to cn) |
group-member-user-attribute | string The name of the user attribute whose format matches the group members(defualts to entrydn) |
group-member-mapping-attribute | string The name of the group attribute containing the members of a group(defaults to member) |
cli | boolean Default: false Differentiate the client type |
{- "name": "string",
- "host": "string",
- "port": "string",
- "tls": true,
- "insecure-tls": true,
- "cacert": "string",
- "timeout": 0,
- "bind-user-name": "string",
- "bind-user-password": "string",
- "user-search-base": "string",
- "user-object-class": "string",
- "user-login-attribute": "string",
- "user-role-attribute": "string",
- "user-role-attribute-key": "string",
- "user-member-attribute": "string",
- "group-search-base": "string",
- "group-object-class": "string",
- "group-attribute": "string",
- "group-member-user-attribute": "string",
- "group-member-mapping-attribute": "string",
- "cli": false
}
{- "id": 0,
- "name": "string",
- "host": "string",
- "port": "string",
- "tls": true,
- "insecure-tls": true,
- "cacert": "string",
- "timeout": 0,
- "bind-user-name": "string",
- "bind-user-password": "string",
- "user-search-base": "string",
- "user-object-class": "string",
- "user-login-attribute": "string",
- "user-role-attribute": "string",
- "user-role-attribute-key": "string",
- "user-member-attribute": "string",
- "group-search-base": "string",
- "group-object-class": "string",
- "group-attribute": "string",
- "group-member-user-attribute": "string",
- "group-member-mapping-attribute": "string"
}
Register a new LDAP Server for authentication
Details of the LDAP Server
name | string Name for the LDAP connection |
host | string Specify the hostname or IPv4/IPv6 address |
port | string Specify the port at which the OpenLDAP server is listening for connections |
tls required | boolean Enable to use LDAP over SSL/TLS |
insecure-tls required | boolean Enable to use LDAP without cert verification |
cacert | string CA certificate |
timeout required | integer Duration in number of seconds before considering the server unreachable(defaults to 5 sec) |
bind-user-name | string Distinguished Name (DN) of the user that should be used to bind, search and retrieve LDAP entries |
bind-user-password | string Password of the bind user |
user-search-base | string Enter the Distinguished Name of the node in your directory tree from which to start searching for user objects. |
user-object-class | string Name of the object class used for user objects(defaults to inetOrgPerson) |
user-login-attribute | string The attribute whose value matches the username part of credentials entered by your users when logging in(defualts to uid) |
user-role-attribute | string The attribute to read the role of user from |
user-role-attribute-key | string The attribute to read the role value from role attribute |
user-member-attribute | string The attribute to read the member of the group the user is part of |
group-search-base | string Enter the Distinguished Name of the node in your directory tree from which to start searching for group objects. |
group-object-class | string Name of the object class used for group objects(defaults to groupOfNames) |
group-attribute | string Attribute to define search filter on group(defaults to cn) |
group-member-user-attribute | string The name of the user attribute whose format matches the group members(defualts to entrydn) |
group-member-mapping-attribute | string The name of the group attribute containing the members of a group(defaults to member) |
cli | boolean Default: false Differentiate the client type |
{- "name": "string",
- "host": "string",
- "port": "string",
- "tls": true,
- "insecure-tls": true,
- "cacert": "string",
- "timeout": 0,
- "bind-user-name": "string",
- "bind-user-password": "string",
- "user-search-base": "string",
- "user-object-class": "string",
- "user-login-attribute": "string",
- "user-role-attribute": "string",
- "user-role-attribute-key": "string",
- "user-member-attribute": "string",
- "group-search-base": "string",
- "group-object-class": "string",
- "group-attribute": "string",
- "group-member-user-attribute": "string",
- "group-member-mapping-attribute": "string",
- "cli": false
}
{- "id": 0,
- "name": "string",
- "host": "string",
- "port": "string",
- "tls": true,
- "insecure-tls": true,
- "cacert": "string",
- "timeout": 0,
- "bind-user-name": "string",
- "bind-user-password": "string",
- "user-search-base": "string",
- "user-object-class": "string",
- "user-login-attribute": "string",
- "user-role-attribute": "string",
- "user-role-attribute-key": "string",
- "user-member-attribute": "string",
- "group-search-base": "string",
- "group-object-class": "string",
- "group-attribute": "string",
- "group-member-user-attribute": "string",
- "group-member-mapping-attribute": "string"
}
Reset LDAP configuration
name required | string Name of the registered LDAP Server |
Reset LDAP Configs.
[- "Host",
- "Port",
- "CaCert",
- "BindUsername",
- "BindUserPassword",
- "UserSearchBase",
- "UserObjectClass",
- "UserLoginAttribute",
- "UserRoleAttribute",
- "UserRoleAttributeKey",
- "UserMemberAttribute",
- "GroupSearchBase",
- "GroupObjectClass",
- "GroupAttribute",
- "GroupMemberUserAttribute",
- "GroupMemberMappingAttribute"
]
{- "id": 0,
- "name": "string",
- "host": "string",
- "port": "string",
- "tls": true,
- "insecure-tls": true,
- "cacert": "string",
- "timeout": 0,
- "bind-user-name": "string",
- "bind-user-password": "string",
- "user-search-base": "string",
- "user-object-class": "string",
- "user-login-attribute": "string",
- "user-role-attribute": "string",
- "user-role-attribute-key": "string",
- "user-member-attribute": "string",
- "group-search-base": "string",
- "group-object-class": "string",
- "group-attribute": "string",
- "group-member-user-attribute": "string",
- "group-member-mapping-attribute": "string"
}
Get All LDAP details configured in the application
[- {
- "id": 0,
- "name": "string",
- "host": "string",
- "port": "string",
- "tls": true,
- "insecure-tls": true,
- "cacert": "string",
- "timeout": 0,
- "bind-user-name": "string",
- "bind-user-password": "string",
- "user-search-base": "string",
- "user-object-class": "string",
- "user-login-attribute": "string",
- "user-role-attribute": "string",
- "user-role-attribute-key": "string",
- "user-member-attribute": "string",
- "group-search-base": "string",
- "group-object-class": "string",
- "group-attribute": "string",
- "group-member-user-attribute": "string",
- "group-member-mapping-attribute": "string"
}
]
Register a new TACACS server
TACACS server
host | string Specify the hostname or IPv4/IPv6 address |
port | integer Port number |
protocol | string Enum: "CHAP" "PAP" Protocol like PAP or CHAP |
secretKey | string <= 40 characters Secret key maximum 40 characters |
{- "host": "10.37.138.217",
- "port": 49,
- "protocol": "CHAP",
- "secretKey": "sharedsecret"
}
{- "code": 0,
- "message": "message"
}
Update Tacacs server details
Details of the TACACS server
host | string Specify the hostname or IPv4/IPv6 address |
port | integer Port number |
protocol | string Enum: "CHAP" "PAP" Protocol like PAP or CHAP |
secretKey | string <= 40 characters Secret key maximum 40 characters |
{- "host": "10.37.138.217",
- "port": 49,
- "protocol": "CHAP",
- "secretKey": "sharedsecret"
}
{- "host": "10.37.138.217",
- "port": 49,
- "protocol": "CHAP",
- "secretKey": "sharedsecret"
}
Fetch TACACS server details of a specific host or all hosts
host | string The host of the TACACS server registered or all to get all servers |
[- {
- "host": "10.37.138.217",
- "port": 49,
- "protocol": "CHAP",
- "secretKey": "sharedsecret"
}
]
Get Authentication summary details configured in the application
[- {
- "active_users": 0,
- "roles": [
- {
- "type": "string",
- "count": 0
}
], - "servers": [
- {
- "type": "string",
- "count": 0
}
]
}
]
Add the authentication preference
Add the authentication preference
authType | string Default: "HOST" Enum: "TACACS" "LDAP" "LOCAL" "HOST" TACAC, LDAP, LOCAL, or HOST |
identifier | string auth identifier |
preference | integer auth preference |
{- "authType": "TACACS",
- "identifier": "10.37.23.4",
- "preference": 1
}
{- "code": 0,
- "message": "message"
}
Update the authentication preference
Update the authentication preference
authType | string Default: "HOST" Enum: "TACACS" "LDAP" "LOCAL" "HOST" TACAC, LDAP, LOCAL, or HOST |
identifier | string auth identifier |
preference | integer auth preference |
{- "authType": "TACACS",
- "identifier": "10.37.23.4",
- "preference": 1
}
{- "code": 0,
- "message": "message"
}
Delete the authentication preference
Delete the authentication preference
authType | string Default: "HOST" Enum: "TACACS" "LDAP" "LOCAL" "HOST" TACAC, LDAP, LOCAL, or HOST |
identifier | string auth identifier |
preference | integer auth preference |
{- "authType": "TACACS",
- "identifier": "10.37.23.4",
- "preference": 1
}
{- "code": 0,
- "message": "message"
}
Add and update the authentication preferences
Add and update the authentication preferences
authType | string Default: "HOST" Enum: "TACACS" "LDAP" "LOCAL" "HOST" TACAC, LDAP, LOCAL, or HOST |
identifier | string auth identifier |
preference | integer auth preference |
[- {
- "authType": "TACACS",
- "identifier": "10.37.23.4",
- "preference": 1
}
]
{- "code": 0,
- "message": "message"
}
Get the active users details by authentication type
auth_type required | string Default: "HOST" Enum: "TACACS" "LDAP" "LOCAL" "HOST" Authentication type of the user |
{- "pagination_response": {
- "remaining_count": 0,
- "first_id": 0,
- "last_id": 0
}, - "user": [
- {
- "id": 1,
- "user_name": "willsmith",
- "email_id": "abc@test.com",
- "roles": [
- "SystemAdmin",
- "NetworkOperator"
], - "is_blocked": false,
- "organization": "Extreme Networks",
- "location": "New York",
- "is_active": false
}
]
}
Fetch all users details or specific user detail by name
user_name | string Name of the user |
{- "pagination_response": {
- "remaining_count": 0,
- "first_id": 0,
- "last_id": 0
}, - "user": [
- {
- "id": 1,
- "user_name": "willsmith",
- "email_id": "abc@test.com",
- "roles": [
- "SystemAdmin",
- "NetworkOperator"
], - "is_blocked": false,
- "organization": "Extreme Networks",
- "location": "New York",
- "is_active": false
}
]
}
Register a new user
Details of the user
id | integer <int32> ID of the operation |
user_name | string user name to be registered |
email_id | string email id to be registered |
password | string password |
roles | Array of strings (Full list of roles) List of roles or specific role details |
is_blocked | boolean Default: false is user blocked |
created_at | string <date-time> user created time |
organization | string organization information |
address | string user address |
mobile_number | string user mobile number |
location | string user location |
auth_type | string authorization type |
is_active | boolean Default: false is user active |
active_since | string <date-time> user active time |
{- "id": 1,
- "user_name": "willsmith",
- "email_id": "abc@test.com",
- "roles": [
- "SystemAdmin",
- "NetworkOperator"
], - "is_blocked": false,
- "organization": "Extreme Networks",
- "location": "New York",
- "is_active": false
}
{- "id": 1,
- "user_name": "willsmith",
- "email_id": "abc@test.com",
- "roles": [
- "SystemAdmin",
- "NetworkOperator"
], - "is_blocked": false,
- "organization": "Extreme Networks",
- "location": "New York",
- "is_active": false
}
Update roles of a registered user
Details of the user
id | integer <int32> ID of the operation |
user_name | string user name to be registered |
email_id | string email id to be registered |
password | string password |
roles | Array of strings (Full list of roles) List of roles or specific role details |
is_blocked | boolean Default: false is user blocked |
created_at | string <date-time> user created time |
organization | string organization information |
address | string user address |
mobile_number | string user mobile number |
location | string user location |
auth_type | string authorization type |
is_active | boolean Default: false is user active |
active_since | string <date-time> user active time |
{- "id": 1,
- "user_name": "willsmith",
- "email_id": "abc@test.com",
- "roles": [
- "SystemAdmin",
- "NetworkOperator"
], - "is_blocked": false,
- "organization": "Extreme Networks",
- "location": "New York",
- "is_active": false
}
{- "id": 1,
- "user_name": "willsmith",
- "email_id": "abc@test.com",
- "roles": [
- "SystemAdmin",
- "NetworkOperator"
], - "is_blocked": false,
- "organization": "Extreme Networks",
- "location": "New York",
- "is_active": false
}
Update the user state blocked or unblocked
Details of the user
user_name | string user name to be updated |
is_blocked | boolean Default: false is user blocked |
{- "user_name": "willsmith",
- "is_blocked": false
}
{- "user_name": "willsmith",
- "is_blocked": false
}
Change password of a registered user
Details of the user
user_name | string user name |
old_password | string old password |
new_password | string new password |
{- "user_name": "willsmith",
- "old_password": "test",
- "new-Password": "test1"
}
{- "user_name": "willsmith",
- "old_password": "test",
- "new-Password": "test1"
}
Reset password of a registered user
Details of the user
password | string password |
{- "password": "test1"
}
{- "message": "passowrd changed successfully"
}
Reset user password
Details of the user
user_name | string user name to be registered |
email_id | string email id to be registered |
password | string user password |
{- "user_name": "string",
- "email_id": "string",
- "password": "string"
}
{- "id": 1,
- "user_name": "willsmith",
- "email_id": "abc@test.com",
- "roles": [
- "SystemAdmin",
- "NetworkOperator"
], - "is_blocked": false,
- "organization": "Extreme Networks",
- "location": "New York",
- "is_active": false
}
Get the host users and the active session details
{- "pagination_response": {
- "remaining_count": 0,
- "first_id": 0,
- "last_id": 0
}, - "user": [
- {
- "id": 1,
- "name": "testuser",
- "role": "SystemAdmin",
- "is_active": false
}
]
}
Get the detailed output of the given execution ID
id required | string Execution ID |
{- "start_time": "2000-01-23T04:56:07.000+00:00",
- "end_time": "2000-01-23T04:56:07.000+00:00",
- "id": "id",
- "parameters": "client add",
- "logs": "logs",
- "command": "client add",
- "status": "Failed, Succeeded"
}
This API will delete the execution entries older than specific number of days
days_older_by required | integer Default: 30 Deletes execution entries older than specified number of days |
{- "code": 0,
- "message": "message"
}
Get the list of all the previous executions
limit required | integer Default: 10 Limit the number of executions that will be sent in the response. Default is 10 |
status | string Default: "all" Filter the executions based on the status(failed/succeeded/all) |
{- "items": [
- {
- "start_time": "2000-01-23T04:56:07.000+00:00",
- "end_time": "2000-01-23T04:56:07.000+00:00",
- "id": "id",
- "command": "client add",
- "status": "client add"
}, - {
- "start_time": "2000-01-23T04:56:07.000+00:00",
- "end_time": "2000-01-23T04:56:07.000+00:00",
- "id": "id",
- "command": "client add",
- "status": "client add"
}
]
}
Get Execution log list with pagination
object (SearchQuery) {"group_by":"user_name"} Responses grouped by user name {"filter":[{"name":"user_name","value":"admin"}] Responses filtered by name="admin" {"fuzzy":"ConfigAddUpdate"} Responses searched using fuzzy search "ConfigAddUpdate" |
{- "items": [
- {
- "start_time": "2000-01-23T04:56:07.000+00:00",
- "end_time": "2000-01-23T04:56:07.000+00:00",
- "id": "id",
- "command": "client add",
- "status": "client add"
}, - {
- "start_time": "2000-01-23T04:56:07.000+00:00",
- "end_time": "2000-01-23T04:56:07.000+00:00",
- "id": "id",
- "command": "client add",
- "status": "client add"
}
]
}
Fetch role mapping details
auth_type | string Auth type(LOCAL, HOST, LDAP, or TACACS) |
auth_identifier | string Auth identifier |
[- {
- "id": 1,
- "name": "tenantname",
- "role": "TenantAdmin",
- "type": "user",
- "auth_type": "local",
- "auth_identifier": "user1"
}
]
To map user defined roles with XCO role
Mapping the user defined roles and XCO roles
name | string Name for the user or group for whom role is to assigned |
role | string Name of the role to be assigned |
type | string Type of the assignment (user or group) |
auth_type | string Authorization framework type (local, host, tacacs, or ldap) |
auth_identifier | string Identifier for the auth configuration |
[- {
- "name": "tenantname",
- "role": "TenantAdmin",
- "type": "user",
- "auth_type": "local",
- "auth_identifier": "user1"
}
]
[- {
- "id": 1,
- "name": "tenantname",
- "role": "TenantAdmin",
- "type": "user",
- "auth_type": "local",
- "auth_identifier": "user1"
}
]
Add new role mapping
Details of the mapping to be created
name | string Name for the user or group for whom role is to assigned |
role | string Name of the role to be assigned |
type | string Type of the assignment (user or group) |
auth_type | string Authorization framework type (local, host, tacacs, or ldap) |
auth_identifier | string Identifier for the auth configuration |
{- "name": "tenantname",
- "role": "TenantAdmin",
- "type": "user",
- "auth_type": "local",
- "auth_identifier": "user1"
}
{- "id": 1,
- "name": "tenantname",
- "role": "TenantAdmin",
- "type": "user",
- "auth_type": "local",
- "auth_identifier": "user1"
}