PUT /switches/{uuid}
Use this method to modify properties, refresh inventory, or perform a power operation on a specific Flex and RackSwitch switch, such as restart, power on, or power off. This REST API is available only for Lenovo XClarity Administrator v1.0.1 and later.
This method starts a job that runs in the background to perform the operation. The response header includes a URI in the form /tasks/{task_id} (for example, /tasks/12) that represents the job that is created to perform this request. You can use GET /tasks/{job_list} to monitor the status and progress of the job. If a job was not successfully started, refer to the response code and response body for details.
Authentication
Authentication with username and password is required.
Request URL
PUT https://{management_server_IP}/switches/{uuid}
where {uuid} is the UUID of the switch to be retrieved. To obtain the switch UUID, use the GET /switches method.
Query parameters
Attributes | Required / Optional | Description |
---|---|---|
synchronous={value} | Optional | When modifying attributes, indicates when the job ID is returned
Note This query parameter applies only when one or more property parameters are specified in the request body. |
Request body
You can specify attributes from one of the following tables in each request.
Attributes | Required / Optional | Type | Description | ||
---|---|---|---|---|---|
contact | Optional | String | Owner of the switch | ||
hostname | Optional | String | Hostnam | ||
ipv4Address | Optional | Array of strings | Pairs of IPv4 addresses including the old and the new IP address | ||
ipv6Address | Optional | Array of strings | Pairs of IPv6 addresses including the old and the new IP address | ||
ipInterfaces | Optional | Array | Information about the switch IP addresses | ||
IPv4assignments | Optional | Array | Information about IPv4 assignments | ||
address | Optional | String | IPv4 address | ||
gateway | Optional | String | IPv4 gateway | ||
id | Required | Integer | IPv4 assignment ID | ||
subnet | Optional | String | IPv4 subnet mask | ||
IPv4DHCPmode | Optional | String | IPv4 address assignment method. This can be one of the following values.
| ||
IPv4enabled | Optional | Boolean | Identifies whether IPv4 is enabled. This can be one of the following values.
| ||
IPv6assignments | Optional | Array | Information about IPv6 assignments | ||
address | Optional | String | IPv6 address | ||
id | Required | Integer | IPv6 assignment ID | ||
gateway | Optional | String | IPv6 gateway | ||
prefix | Optional | Integer | IPv6 prefix | ||
IPv6DHCPenabled | Optional | Boolean | Identifies whether IPv6 DHCP is enabled. This can be one of the following values.
| ||
IPv6enabled | Optional | Boolean | Identifies whether IPv6 is enabled. This can be one of the following values.
| ||
IPv6statelessEnabled | Optional | Boolean | Identifies whether IPv6 stateless is enabled. This can be one of the following values.
| ||
IPv6staticEnabled | Optional | Boolean | Identifies whether IPv6 static is enabled. This can be one of the following values.
| ||
name | Required | String | IP interface name | ||
type | Optional | String | Rype. This value is always Switch. | ||
userDescription | Optional | String | Free-form description of the switch |
{
"hostname":"",
"ipv4Addresses":["1.2.3.4", "5.6.7.8"],
"ipv6Addresses":["fe80::00::45", new IP],
"location":{
"location":"new location",
"contact": "new contact"
}
}
Attributes | Required / Optional | Type | Description | ||
---|---|---|---|---|---|
securityDescriptor | Required | Object | Information about the authentication enablement and support the associated stored credentials for a managed device | ||
managedAuthEnabled | Optional | Boolean | Indicates whether the device uses managed authentication. This can be one of the following values.
| ||
publicAccess | Optional | Boolean | Indicates whether the resource can be accessed by all role groups. This can be one of the following values.
| ||
roleGroups | Optional | Array of strings | List of role groups that are permitted to view and manage this device | ||
storedCredentials | Required if managedAuthEnabled is set to true | Object | Information about the stored credential that is associated with this device, if applicable | ||
id | Required if managedAuthEnabled is set to true | String | ID of the stored credential to associated with the device |
{
"securityDescriptor": {
"publicAccess": false,
"roleGroups": ["sales-os-admin","corp_fw_admin"]
}
}
Attributes | Required / Optional | Type | Description | ||
---|---|---|---|---|---|
powerState | Optional | String | Performs a power operation on the switch. This can be one of the following values.
Note RackSwitch switches can only be restarted (powerCycleSoft). Other power actions are not supported. If you specify this attribute, this method starts a job that runs in the background to perform the operation. The response header includes a URI in the form /tasks/{task_id} (for example, /tasks/12) that represents the job that is created to perform this request. You can use GET /tasks/{job_list} to monitor the status and progress of the job. If a job was not successfully started, refer to the response code and response body for details. Attention A successful response indicates that the request was successfully created and accepted by the management server. It does not indicate that the operation that is associated with the job was successful. |
{
"powerState": "powerCycleSoft"
}
Attributes | Required / Optional | Type | Description | ||
---|---|---|---|---|---|
leds | Optional | Object | Changes the state of the location LED. | ||
name | Required | String | Description of the LED (for example, Faultor Power. To obtain the names of LEDs for a specific switch, use the GET /switches/{uuid_list} method. | ||
state | Required | String | State of LED. This can be one of the following values.
To obtain the current state of the LED, use the GET /switches/{uuid_list} method. |
{
"leds":[{
"name":"Enclosure Identify",
"state":"off"
}]
}
Attributes | Required / Optional | Type | Description | ||
---|---|---|---|---|---|
refreshInventory | Optional | String | Refreshes inventory for the switch If you specify this attribute, this method starts a job that runs in the background to perform the operation. The response header includes a URI in the form /tasks/{task_id} (for example, /tasks/12) that represents the job that is created to perform this request. You can use GET /tasks/{job_list} to monitor the status and progress of the job. If a job was not successfully started, refer to the response code and response body for details. Attention A successful response indicates that the request was successfully created and accepted by the management server. It does not indicate that the operation that is associated with the job was successful. |
{
"refreshInventory": "true"
}
Response codes
Code | Description | Comments |
---|---|---|
200 | OK | The request completed successfully. |
400 | Bad Request | A query parameter or request attribute is missing or not valid, or the operation is not supported. A descriptive error message is returned in the response body. |
401 | Unauthorized | The user cannot be authenticated. Authentication has not been provided or has failed. A descriptive error message is returned in the response body. |
403 | Forbidden | The orchestrator server was prevented from fulfilling the request. A descriptive error message is returned in the response body. Ensure that you have privileges to perform the request. |
409 | Conflict | There is a conflict with the current state of the resource. A descriptive error message is returned in the response body. |
500 | Internal Server Error | An internal error occurred. A descriptive error message is returned in the response body. |
Response body
The response body provides information about the success or failure of the request. The attributes in the response body differ depending on the specified request attributes.
The following example is returned when the "refreshInventory": "true" is specified in the request body to refresh the device inventory.
{
"statusCode": 200,
"statusDescription": "The request completed successfully.",
"messages": [{
"explanation": "refreshInventory request for target 6ED2CB368C594C66C2BB066D5A306138 has
completed successfully.",
"id": "FQXDM0200",
"recovery": "",
"recoveryUrl": "",
"text": "The request completed successfully."
}]
}