2021 GA Release
# Core Features
The ExtremeCloud IQ API GA release covers the core features to interact with ExtremeCloud IQ platform.
# Authentication
Authenticate user to access protected resources
- Support username/password authentication
# Authorization
API token and permissions
- Fine-grained and flexible access control
- Generate new API Token
- Show user permissions
- Permission check
# Account
ExtremeCloud IQ Account
- Get XIQ Account basic information
- Get VIQ information
- Switch to another ExtremeCloud IQ account
- Get VIQ info
- Backup VIQ
# User
Local and external user management in ExtremeCloud IQ account
- User management
- External user management
# HIQ
Hierarchical ExtremeCloud IQ
- Get HIQ status
- Organization management
- Switch HIQ context
# Location
Hierarchical locations and floor plan
- Location, building, floor management
- Get location tree
# Device
Supported device platforms: Cloud Engine, IQ Engine, WiNG, VOSS, EXOS ...
- Get device list
- Get device details
- Device onboarding
- Delete device
- Send CLI to device
- Reboot device
- Switch device management status
- Assign/Revoke location
- Assign/Revoke network policy
- Change hostname
- Override SSID
- Change OS mode
- Assign/Revoke RADIUS proxy
- Get alarms for device
- Get metrics for device
# Network Policy
Unified configuration management for wireless and wired network devices
- List network policies
- Add/remove SSID
# Client
The clients associate to the devices of ExtremeCloud IQ
- Get active clients
- Get client info
- Get client metrics
# Application
Application management and application metrics
- List applications
- List topN applications
- List topN clients for given application
# Log
Access all kinds of logs in ExtremeCloud IQ
- List accounting logs
- List audit logs
- List auth logs
- List credential logs
- List Email logs
- List SMS logs
# Notification
Push events/logs to users via Webhook, Email, SMS, etc.
- List webhook subscriptions
- Create/Delete webhook subscriptions
# Configuration - Deployment
Push configuration to devices
- Push configuration and upgrade firmware
- Get configuration deployment overview
- Get configuration deployment status
# Configuration - Basic
VLAN Profile/DHCP Server/...
- VLAN profile management
# Configuration - User
User Group/End User/PCG/PPSK Classification
- Get Email/SMS templates
- Key-based PCG (Private Client Group) management
- User group management
- Enduser management
# Configuration - Policy
SSID/User Profile/Classification Rule/CCG/...
- CCG (Cloud Config Group) management
- Classification rule management
- SSID management
- User profile management
- Get L3 address profile
# Configuration - Auth
AD/LDAP/RADIUS/CWP/...
- AD (Active Directory) management
- LDAP server management
- RADIUS server management
- RADIUS client object management
- RADIUS proxy management
- List CWP (Captive Web Portal)
# Configuration - Certificate
Certificate
- List certificates
# Breaking Changes since Beta release
Note If you ever used the Beta release REST APIs, please check the below breaking changes carefully and make corresponding changes.# Account
# GET /account/viq
- Response Body
- Enum value change
# GET /account/info
- Path
- The new path is
/account/home
- The new path is
- Response Body
- Enum value change
# User
# GET /users/{id}
- Response Body
- Removed fields
user_group_id
user_group_name
- Enum value change
- Removed fields
# PUT /users/{id}
- Request Method
- The new request method is
PATCH
- The new request method is
- Request Body
- Enum value change
- Response Body
- Removed fields
user_group_id
user_group_name
- Enum value change
- Removed fields
# GET /users
- Response Body
- Removed fields
user_group_id
user_group_name
- Enum value change
- Removed fields
# POST /users
- Request Body
- Enum value change
- Response Body
- Removed fields
user_group_id
user_group_name
- Enum value change
- Removed fields
# GET /users/externalaccess/{id}
- Path
- The new path is
/users/external/{id}
- The new path is
- Response Body
- Removed fields
user_group_id
user_group_name
- Enum value change
- Removed fields
# PUT /users/externalaccess/{id}
- Request method
- The new request method is
PATCH
- The new request method is
- Path
- The new path is
/users/external/{id}
- The new path is
- Request Body
- Enum value change
- Response Body
- Removed fields
user_group_id
user_group_name
- Enum value change
- Removed fields
# DELETE /users/externalaccess/{id}
- Path
- The new path is
/users/external/{id}
- The new path is
# POST /users/externalaccess
- Path
- The new path is
/users/external
- The new path is
- Request Body
- Enum value change
- Response Body
- Removed fields
user_group_id
user_group_name
- Enum value change
- Removed fields
# GET /users/externalaccess
- Path
- The new path is
/users/external
- The new path is
- Response Body
- Removed fields
user_group_id
user_group_name
- Enum value change
- Removed fields
# GET /user/profile
- Path
- The new path is
/users/me
- The new path is
- Response Body
- Removed fields
user_group_id
user_group_name
- Enum value change
- Removed fields
# HIQ
# GET /hiq/organizations
- Response Body
- Enum value change
# POST /hiq/organizations
- Response Body
- Enum value change
# Location
# POST /locations/floor
- Request Body
- Enum value change
- Response Body
- Enum value change
# PUT /locations/floor/{id}
- Request Body
- Enum value change
- Response Body
- Enum value change
# SSID
# GET /ssids/email-templates
- Path
- The new path is
/email-templates
- The new path is
- Query Parameter
- Enum value change
- Response Body
- Enum value change
# GET /ssids/sms-templates
- Path
- The new path is
/sms-templates
- The new path is
- Query Parameter
- Enum value change
- Response Body
- Enum value change
# PUT /ssids/usergroups/{id}
- Path
- The new path is
/usergroups/{id}
- The new path is
- Request Body
- Response Body
# DELETE /ssids/usergroups/{id}
- Path
- The new path is
/usergroups/{id}
- The new path is
# GET /ssids/usergroups
- Path
- The new path is
/usergroups
- The new path is
- Query Parameter
- Enum value change
- Response Body
# POST /ssids/usergroups
- Path
- The new path is
/usergroups
- The new path is
- Request Body
- Response Body
# GET /ssids/users
- Path
- The new path is
/endusers
- The new path is
# PUT /ssids/users/{id}
- Path
- The new path is
/endusers/{id}
- The new path is
# POST /ssids/users
- Path
- The new path is
/endusers
- The new path is
# DELETE /ssids/users/{id}
- Path
- The new path is
/endusers/{id}
- The new path is
# PCG
# DELETE /pcg/key-based/{policyId}
- Path
- The new path is
/pcgs/key-based/network-policy-{policyId}
- The new path is
# POST /pcg/key-based/{policyId}/keys/:generate
- Path
- The new path is
/pcgs/key-based/network-policy-{policyId}/keys/:generate
- The new path is
# POST /pcg/key-based/{policyId}/keys/:email
- Path
- The new path is
/pcgs/key-based/network-policy-{policyId}/keys/:email
- The new path is
# GET /pcg/key-based/ports/{policyId}
- Path
- The new path is
/pcgs/key-based/network-policy-{policyId}/port-assignments
- The new path is
# POST /pcg/key-based/ports/{policyId}
- Path
- The new path is
/pcgs/key-based/network-policy-{policyId}/port-assignments
- The new path is
# POST /pcg/key-based/{policyId}/:onboard
- Path
- The new path is
/pcgs/key-based/network-policy-{policyId}/:onboard
- The new path is
# GET /pcg/key-based/{policyId}/users
- Path
- The new path is
/pcgs/key-based/network-policy-{policyId}/users
- The new path is
# POST /pcg/key-based/{policyId}/users
- Path
- The new path is
/pcgs/key-based/network-policy-{policyId}/users
- The new path is
# DELETE /pcg/key-based/{policyId}/users
- Path
- The new path is
/pcgs/key-based/network-policy-{policyId}/users
- The new path is
# PUT /pcg/key-based/{policyId}/users
- Path
- The new path is
/pcgs/key-based/network-policy-{policyId}/users
- The new path is
# Event Subscription
# GET /subscriptions/webhook
- Response Body
- Enum value change
# POST /subscriptions/webhook
- Request Body
- Enum value change
# LOG
# GET /logs/sms
- Response Body
- Enum value change
# GET /logs/audit
- Query Parameter
- Enum value change
- Response Body
- Enum value change
# Device
# GET /devices/config/deploy/status
- Path
- The new path is
/deployments/status
- The new path is
- Response Body
- Changed field [
is_finished
] to [finished
]
- Changed field [
# GET /devices/config/deploy/overview
- Path
- The new path is
/deployments/overview
- The new path is
# POST /devices/config/:deploy
- Path
- The new path is
/deployments
- The new path is
# GET /devices
- Query Parameter
- Enum value change
- Response Body
- Enum value change
# GET /devices/network-policy/{policyId}
- Response Body
- Enum value change
# GET /devices/{id}
- Response Body
- Enum value change
# GET /devices/status/summary
- Path
- The new path is
/devices/stats
- The new path is
# Enum value changes
We removed prefixes, <ENUM_TYPE>_UNSPECIFIED
and UNRECOGNIZED
for all enums.
Please check below for details.
# licenses.mode
Old Value | New Value |
---|---|
LICENSE_MODE_UNSPECIFIED | Removed |
LICENSE_MODE_BUY | BUY |
LICENSE_MODE_PLANNER | PLANNER |
LICENSE_MODE_EVAL | EVAL |
LICENSE_MODE_MSP | MSP |
LICENSE_MODE_UNKNOWN | UNKNOWN |
UNRECOGNIZED | Removed |
# licenses.entitlement_type
Old Value | New Value |
---|---|
ENTITLEMENT_TYPE_UNSPECIFIED | Removed |
ENTITLEMENT_TYPE_EVALUATION | EVALUATION |
ENTITLEMENT_TYPE_PERMANENT | PERMANENT |
ENTITLEMENT_TYPE_RENEW | RENEW |
ENTITLEMENT_TYPE_UNKNOWN | UNKNOWN |
UNRECOGNIZED | Removed |
# account_type
Old Value | New Value |
---|---|
ACCOUNT_TYPE_UNSPECIFIED | Removed |
ACCOUNT_TYPE_INTERNAL | INTERNAL |
ACCOUNT_TYPE_CUSTOMER | CUSTOMER |
ACCOUNT_TYPE_HIQ | HIQ |
ACCOUNT_TYPE_PARTNER | PARTNER |
UNRECOGNIZED | Removed |
# account_mode
Old Value | New Value |
---|---|
ACCOUNT_MODE_UNSPECIFIED | Removed |
ACCOUNT_MODE_COPILOT | COPILOT |
ACCOUNT_MODE_CONNECT | CONNECT |
UNRECOGNIZED | Removed |
# user_role
Old Value | New Value |
---|---|
USER_ROLE_UNSPECIFIED | Removed |
USER_ROLE_ADMINISTRATOR | ADMINISTRATOR |
USER_ROLE_OPERATOR | OPERATOR |
USER_ROLE_MONITOR | MONITOR |
USER_ROLE_HELP_DESK | HELP_DESK |
USER_ROLE_GUEST_MANAGEMENT | GUEST_MANAGEMENT |
USER_ROLE_OBSERVER | OBSERVER |
USER_ROLE_INSTALLER | INSTALLER |
USER_ROLE_APPLICATION_OPERATOR | APPLICATION_OPERATOR |
UNRECOGNIZED | Removed |
# hiq.type
Old Value | New Value |
---|---|
ORGANIZATION_TYPE_UNSPECIFIED | Removed |
ORGANIZATION_TYPE_REGULAR | REGULAR |
ORGANIZATION_TYPE_PRIVATE | PRIVATE |
UNRECOGNIZED | Removed |
# floor.environment
Old Value | New Value |
---|---|
RF_ENVIRONMENT_TYPE_UNSPECIFIED | Removed |
RF_ENVIRONMENT_TYPE_AUTO_ESTIMATE | AUTO_ESTIMATE |
RF_ENVIRONMENT_TYPE_OFFICE | OFFICE |
RF_ENVIRONMENT_TYPE_OUTDOOR_FREE_SPACE | OUTDOOR_FREE_SPACE |
RF_ENVIRONMENT_TYPE_OBSTRUCTED_IN_BUILDING | OBSTRUCTED_IN_BUILDING |
RF_ENVIRONMENT_TYPE_OUTDOOR_SUBURBAN | OUTDOOR_SUBURBAN |
RF_ENVIRONMENT_TYPE_WAREHOUSE | WAREHOUSE |
RF_ENVIRONMENT_TYPE_OUTDOOR_DENSE_URBAN | OUTDOOR_DENSE_URBAN |
UNRECOGNIZED | Removed |
# floor.measurement_unit
Old Value | New Value |
---|---|
MEASUREMENT_UNIT_UNSPECIFIED | Removed |
MEASUREMENT_UNIT_FEET | FEET |
MEASUREMENT_UNIT_METERS | METERS |
UNRECOGNIZED | Removed |
# password_type
Old Value | New Value |
---|---|
PASSWORD_TYPE_UNSPECIFIED | Removed |
PASSWORD_TYPE_PPSK | PPSK |
PASSWORD_TYPE_RADIUS | RADIUS |
UNRECOGNIZED | Removed |
# password_db_location
Old Value | New Value |
---|---|
PASSWORD_DB_LOCATION_UNSPECIFIED | Removed |
PASSWORD_DB_LOCATION_CLOUD | CLOUD |
PASSWORD_DB_LOCATION_LOCAL | LOCAL |
UNRECOGNIZED | Removed |
# pcg_type
Old Value | New Value |
---|---|
PCG_TYPE_UNSPECIFIED | Removed |
PCG_TYPE_AP_BASED | AP_BASED |
PCG_TYPE_KEY_BASED | KEY_BASED |
UNRECOGNIZED | Removed |
# password_settings.psk_generation_method
Old Value | New Value |
---|---|
PSK_GENERATION_METHOD_UNSPECIFIED | Removed |
PSK_GENERATION_METHOD_PASSWORD_ONLY | PASSWORD_ONLY |
PSK_GENERATION_METHOD_USER_STRING_PASSWORD | USER_STRING_PASSWORD |
UNRECOGNIZED | Removed |
# password_settings.password_character_types
Old Value | New Value |
---|---|
PASSWORD_CHARACTER_TYPE_INCLUDE_CHARACTER_TYPE_UNSPECIFIED | Removed |
PASSWORD_CHARACTER_TYPE_INCLUDE_ALL_CHARACTER_TYPE_ENABLED | INCLUDE_ALL_CHARACTER_TYPE_ENABLED |
PASSWORD_CHARACTER_TYPE_INCLUDE_ANY_CHARACTER_TYPES_ENABLED | INCLUDE_ANY_CHARACTER_TYPES_ENABLED |
PASSWORD_CHARACTER_TYPE_INCLUDE_ONLY_ONE_CHARACTER_TYPE_ENABLED | INCLUDE_ONLY_ONE_CHARACTER_TYPE_ENABLED |
UNRECOGNIZED | Removed |
# expiration_settings.expiration_type
Old Value | New Value |
---|---|
EXPIRATION_TYPE_UNSPECIFIED | Removed |
EXPIRATION_TYPE_NEVER_EXPIRE | NEVER_EXPIRE |
EXPIRATION_TYPE_VALID_DURING_DATES | VALID_DURING_DATES |
EXPIRATION_TYPE_VALID_FOR_TIME_PERIOD | VALID_FOR_TIME_PERIOD |
EXPIRATION_TYPE_DAILY | DAILY |
UNRECOGNIZED | Removed |
# expiration_settings.expiration_action
Old Value | New Value |
---|---|
EXPIRATION_ACTION_TYPE_UNSPECIFIED | Removed |
EXPIRATION_ACTION_TYPE_SHOW_MESSAGE | SHOW_MESSAGE |
EXPIRATION_ACTION_TYPE_REJECT_ACCESS | REJECT_ACCESS |
UNRECOGNIZED | Removed |
# expiration_settings.post_expiration_action.delete_after_unit
Old Value | New Value |
---|---|
DATE_TIME_UNIT_TYPE_UNSPECIFIED | Removed |
DATE_TIME_UNIT_TYPE_MINUTE | MINUTE |
DATE_TIME_UNIT_TYPE_HOUR | HOUR |
DATE_TIME_UNIT_TYPE_DAY | DAY |
DATE_TIME_UNIT_TYPE_WEEK | WEEK |
UNRECOGNIZED | Removed |
# subscription.status
Old Value | New Value |
---|---|
EXPIRATION_ACTION_TYPE_UNSPECIFIED | Removed |
EXPIRATION_ACTION_TYPE_SHOW_MESSAGE | SHOW_MESSAGE |
EXPIRATION_ACTION_TYPE_REJECT_ACCESS | REJECT_ACCESS |
UNRECOGNIZED | Removed |
# subscription.data_type
Old Value | New Value |
---|---|
SUBSCRIPTION_DATA_TYPE_UNSPECIFIED | Removed |
SUBSCRIPTION_DATA_TYPE_LOCATION | LOCATION |
SUBSCRIPTION_DATA_TYPE_AUDIT_LOG | AUDIT_LOG |
Added | GDPR_LOG |
Added | CREDENTIAL_LOG |
Added | ACCOUNTING_LOG |
Added | AUTHENTICATION_LOG |
Added | EMAIL_LOG |
Added | SMS_LOG |
UNRECOGNIZED | Removed |
# subscription.message_type
Old Value | New Value |
---|---|
SUBSCRIPTION_MESSAGE_TYPE_UNSPECIFIED | Removed |
SUBSCRIPTION_MESSAGE_TYPE_LOCATION_AP_CENTRIC | LOCATION_AP_CENTRIC |
SUBSCRIPTION_MESSAGE_TYPE_LOCATION_CLIENT_CENTRIC | LOCATION_CLIENT_CENTRIC |
SUBSCRIPTION_MESSAGE_TYPE_AUDIT_LOG_ALL | AUDIT_LOG_ALL |
Added | GDPR_LOG_ALL |
Added | CREDENTIAL_LOG_ALL |
Added | ACCOUNTING_LOG_ALL |
Added | AUTHENTICATION_LOG_ALL |
Added | EMAIL_LOG_ALL |
Added | SMS_LOG_ALL |
UNRECOGNIZED | Removed |
# sms_log.status
Old Value | New Value |
---|---|
SMS_LOG_STATUS_SEND_UNSPECIFIED | Removed |
SMS_LOG_STATUS_SEND_OUT | SEND_OUT |
SMS_LOG_STATUS_COMPLETE | COMPLETE |
SMS_LOG_STATUS_SUCCESS | SUCCESS |
SMS_LOG_STATUS_FAIL | FAIL |
UNRECOGNIZED | Removed |
# audit_log.category
Old Value | New Value |
---|---|
AUDIT_LOG_CATEGORY_UNSPECIFIED | Removed |
AUDIT_LOG_CATEGORY_ADMIN | ADMIN |
AUDIT_LOG_CATEGORY_SYSTEM | SYSTEM |
AUDIT_LOG_CATEGORY_DEPLOYMENT | DEPLOYMENT |
AUDIT_LOG_CATEGORY_CONFIG | CONFIG |
AUDIT_LOG_CATEGORY_MONITOR | MONITOR |
AUDIT_LOG_CATEGORY_ALARM | ALARM |
UNRECOGNIZED | Removed |
# devices.admin_states
Old Value | New Value |
---|---|
DEVICE_ADMIN_STATE_UNSPECIFIED | Removed |
DEVICE_ADMIN_STATE_NEW | NEW |
DEVICE_ADMIN_STATE_BOOTSTRAP | BOOTSTRAP |
DEVICE_ADMIN_STATE_STAGED | STAGED |
DEVICE_ADMIN_STATE_MANAGED | MANAGED |
DEVICE_ADMIN_STATE_UNMANAGED | UNMANAGED |
UNRECOGNIZED | Removed |
# device_function
Old Value | New Value |
---|---|
DEVICE_FUNCTION_UNSPECIFIED | Removed |
DEVICE_FUNCTION_AP | AP |
DEVICE_FUNCTION_ROUTER | ROUTER |
DEVICE_FUNCTION_ROUTER_AS_L2_VPN_GATEWAY | ROUTER_AS_L2_VPN_GATEWAY |
DEVICE_FUNCTION_ROUTER_AS_L3_VPN_GATEWAY | ROUTER_AS_L3_VPN_GATEWAY |
DEVICE_FUNCTION_SWITCH | SWITCH |
DEVICE_FUNCTION_SWITCH_HAC | SWITCH_HAC |
DEVICE_FUNCTION_SWITCH_DELL | SWITCH_DELL |
DEVICE_FUNCTION_L2_VPN_GATEWAY | L2_VPN_GATEWAY |
DEVICE_FUNCTION_L3_VPN_GATEWAY | L3_VPN_GATEWAY |
UNRECOGNIZED | Removed |