Download OpenAPI specification:
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"
}