Active System Manager Release 8.
Notes, cautions, and warnings NOTE: A NOTE indicates important information that helps you make better use of your computer. CAUTION: A CAUTION indicates either potential damage to hardware or loss of data and tells you how to avoid the problem. WARNING: A WARNING indicates a potential for property damage, personal injury, or death. © 2016 Dell Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws.
Contents 1 Overview...............................................................................................................10 Other Documents You May Need...................................................................................................... 10 2 Resource URI Endpoints.................................................................................... 12 3 Authentication Headers.....................................................................................
/Authenticate/......................................................................................................................................27 /Chassis/.............................................................................................................................................. 28 /Chassis/{refId}.................................................................................................................................... 29 /Chassis/{refId}......................................
/FirmwareRepository/......................................................................................................................... 60 /FirmwareRepository/{id}................................................................................................................... 60 /FirmwareRepository/{id}.................................................................................................................... 61 /FirmwareRepository/connection..................................................
/Proxy/test........................................................................................................................................... 91 /Server/................................................................................................................................................ 92 /Server/count...................................................................................................................................... 93 /Server/{refId}....................................
DeviceType .......................................................................................................................................120 DiscoverDeviceType ........................................................................................................................ 120 DiscoveryStatus ................................................................................................................................120 DiskMediaType ........................................................
timeZone ...........................................................................................................................................132 UsageIdList ........................................................................................................................................133 VM ..................................................................................................................................................... 133 connected_switch ..................................
Interface ............................................................................................................................................149 SelectedServer ..................................................................................................................................149 DeploymentFilterResponse ............................................................................................................. 150 Fabric ...............................................................
Overview 1 This document is intended for a technical audience. It is assumed that the reader is familiar with REST, and programmatic interaction with REST APIs. In reality, any programming languages can be used with these APIs, however, the code examples contained in this guide are written in Ruby. XML is also used extensively for these examples.
• Active System Manager Integration for VMware vRealize Orchestrator User's Guide For more information about ASM, including how-to videos, white papers, and blogs, see the Active System Manager page on Dell TechCenter: http://www.dell.
Resource URI Endpoints 2 An example of resource endpoint is:https://Api/V1/ServiceTemplate From this example, API endpoints are accessible over https (at port 443 ). All URI paths are prefixed with /Api/V1/ where V1 is the current API version. Following the prefix above the remainder of the URI path (endpoint) will have the form // ?.
Authentication Headers 3 All API requests require 3 custom HTTP headers for authentication. • • • X-dell-auth-key X-dell-auth-signature X-dell-auth-timestamp In order to compute the authentication headers, first a REST call must be made to the /Authenticate endpoint. The Full URI is /Api/V1/Authenticate. This call must be a POST request supplying either an XML or JSON payload.
headers['x-dell-auth-key'] = apiKey headers['x-dell-auth-signature'] = signature headers['x-dell-auth-timestamp'] = timestamp NOTE: Due to the timestamp component, authentication of future requests may fail if the 2 systems communicating with each other have system clocks that are not well synchronized. So, this is essential before anything else, to synchronize the system clocks of 2 different systems.
Generic Query Parameters 4 Many GET methods which return a list of objects support generic query parameters for filtering, sorting, and pagination. These methods are indicated in the API reference section but the detailed syntax is described here.
HTTP Message Bodies 5 All HTTP Requests and Responses support both XML and JSON content types. The examples used throughout this document show HTTP body content in XML form. The represented data models accepted and returned by the API calls can be quite complex. The structure of these data models is detailed in Appendix B in a language independent representation.
• Uniqueness validations. Many models require unique names. Notable models include ServiceTempate, Deployment, Network, User. This violation returns a 409 HTTP response in these cases. • Relationship constraints. In the case of deletion, an exception will occur when trying to delete an entity which is being used by another entity.
Usage Examples 6 The following examples use a simple Ruby module called ASM which utilizes the publicly available RestClient gem to perform the HTTP requests. This module contains utilities to generate the security headers so we can focus on the API calls themselves. See Appendix C for detailed information on using and configuring the ASM module. In addition to the API requests, there is sometimes significant XML processing required to prepare the request bodies or parse the responses.
Set the current timezone Here we utilize the simple XML utility class called ASM::Payload to do simple manipulations of our XML. require 'ASMConfig' payload = ASM::Payload.load_xml('timezone.xml') payload.set('timeZoneId','15') # Set Timezone response = ASM::API::sign { url = ASM::API::URI("/Timezone") RestClient.put url, payload.to_xml, :content_type => :xml } Credential Credential objects can be created and referenced in ASM.
response = ASM::API::sign { RestClient.post url, cred.to_xml, :content_type => :xml } payload = ASM::Payload.from_xml(response) credId = payload.get('id') # Save it for future use as a payload payload.save_xml("credential_%s.xml" % credId) DiscoveryRequest A DiscoveryRequest is a set of credential references and a set of IP ranges.
ManagedDevice ManagedDevice is a generic interface to any Resources on the network which is being managed by ASM. A successful discovery request results in the creation of instances of ManagedDevice. Get all Managed Devices Assuming the Discovery process succeeded, ASM will now know about some or all of the devices available on the network. require 'ASMConfig' url = ASM::API::URI('/ManagedDevice') response = ASM::API::sign { RestClient.
result = ASM::API::sign { RestClient.get url } # Do some XML processing to find all published templates doc = Nokogiri::XML(result) templates = doc.xpath('//ServiceTemplate') published = templates.select{|t| t.at_xpath('draft').content == 'false'} template_names = published.collect{|t| t.at_xpath('templateName').content} print "Published Templates:\n" template_names.each{|name| print "%s\n" % name} Get a ServiceTemplate by name Here we retrieve an existing ServiceTemplate from ASM named 'TwoServers' by pas
response = ASM::API::sign { RestClient.get url } # Set draft to false payload = ASM::Payload.from_xml(response) payload.set('//draft', 'false') # Send it back as a PUT response = ASM::API::sign { RestClient.put url, payload.to_xml, :content_type => :xml } Deployment While the ASM UI refers to a Service, the REST API resource is not Service, but rather Deployment. The two terms are synonymous. Deployments require an instance of a ServiceTemplate with its required parameters supplied.
deployment.set("numberOfDeployments", '1') # Inject the template into the deployment deployment.replaceInner('serviceTemplate', template.doc.at_xpath('ServiceTemplate')) deployment.save_xml('deploy_payload.xml') response = ASM::API::sign { RestClient.post url, deployment.to_xml, :content_type => :xml } doc = Nokogiri::parse(response) deploymentId = doc.xpath('//Deployment/id').text print "%s\n" % deploymentId Tear down a Service In order to completely tear down a Service we set the teardown elemen
} doc = Nokogiri::XML(response) doc.xpath('//ManagedDevice').each do |device| url = ASM::API::URI('/FirmwareRepository/compliance') begin response = ASM::API::sign { RestClient.post url, device.to_xml, :content_type => :xml } doc2 = Nokogiri::XML(response) serviceTag = doc2.at_xpath('//serviceTag').content compliance = doc2.at_xpath('//compliance').content print "Device %s firmware is %s\n" % [serviceTag,compliance] rescue RestClient::Exception => e print "Got exception with status: %d\n" % e.response.
Exception Handling 7 When an HTTP error code is returned the response payload will contain information about the error that occurred. For the purpose of illustration the following exception response was intentionally generated by trying to get a ServiceTemplate with an id that doesn't exist. In this case the HTTP response was 404 and the XML response is below. See the API reference section for the relevant HTTP responses that may be returned by each REST endpoint.
8 Appendix A - API Reference /Authenticate/ Desciption Confirm User access credentials Method post Response Class AuthenticateResponse Response Content-Type: application/json, application/xml Parameters Table 1. Parameters Parameter Value Description Default Value Parameter Type Data Type body (required) Description of user to be authenticated N/A body AuthenticateRe quest Response Status Codes Table 2.
/Chassis/ Desciption Retrieve a list a Chassis Devices Method get Response Class [ Chassis ] Response Content-Type: application/xml, application/json Parameters Table 3.
HTTP Status Code Reason 401 No login information specified in the request 403 User doesn't have privileges to access this operation 500 Server Internal Error, contact your system administrator /Chassis/{refId} Desciption Retrieve an individual Chassis Device Method get Response Class Chassis Response Content-Type: application/xml, application/json Parameters Table 5.
Method put Response Class Chassis Response Content-Type: application/xml, application/json Parameters Table 7. Parameters Parameter Value Description Default Value Parameter Type Data Type body (required) Chassis to update N/A body Chassis refId (required) Id of Chassis to update N/A path string Response Status Codes Table 8.
Parameters Table 9. Parameters Parameter Value Description Default Value Parameter Type Data Type refId (required) Device Id N/A path string Response Status Codes Table 10. Response Status Codes HTTP Status Code Reason 204 deleted 400 Bad Request, verify Device id is correct. /Chassis/iom/ip/{ip} Desciption Retrieve an individual IOM Device Method get Response Class IOM Response Content-Type: application/xml, application/json Parameters Table 11.
/Chassis/{refId}/sensorlog Desciption Retrieve an individual Chassis Device Sensor Event Logs Method get Response Class [ ChassisLogEntry ] Response Content-Type: application/xml, application/json Parameters Table 13. Parameters Parameter Value Description Default Value Parameter Type Data Type refId (required) Device Id N/A path string Response Status Codes Table 14.
Parameters Table 15. Parameters Parameter Value Description Default Value Parameter Type Data Type refId (required) Device Id N/A path string Response Status Codes Table 16.
Response Status Codes Table 18. Response Status Codes HTTP Status Code Reason 200 retrieved 400 Bad Request, verify Service tag and Type are correct 404 Bad Request, verify Service tag and Type are correct /Chassis/{serviceTag}/{type} Desciption Deletes an existing server or IOA in chassis Method delete Response Class void Response Content-Type: application/xml, application/json Parameters Table 19.
/Credential/ Desciption Retrieve a list of all ASM credentials Method get Response Class credentialList Response Content-Type: application/xml, application/json Parameters Table 21. Parameters Parameter Value Description Default Value Parameter Type Data Type type N/A filter on credential type N/A query com.dell.asm.e ncryptionmgr.cl ient.CredentialT ype sort N/A Specify sort N/A columns in a comma separated list of column names to sort. Default order is ascending.
Parameter Value Description Default Value limit N/A Specify page 50 limit, can not exceed the system maximum limit. Parameter Type Data Type query integer Response Status Codes Table 22. Response Status Codes HTTP Status Code Reason 200 OK /Credential/ Desciption Add a new ASM credential Method post Response Class asmCredential Response Content-Type: application/xml, application/json Parameters Table 23.
/Credential/{id} Desciption Find an ASM credential by type and id Method get Response Class asmCredential Response Content-Type: application/xml, application/json Parameters Table 25. Parameters Parameter Value Description Default Value Parameter Type Data Type id (required) Id of credential to retrieve N/A path string Response Status Codes Table 26.
Parameters Table 27. Parameters Parameter Value Description Default Value Parameter Type Data Type body (required) ASM credential to update N/A body asmCredential id (required) Id of credential to update N/A path string Response Status Codes Table 28. Response Status Codes HTTP Status Code Reason 200 Update completed successfully 400 Bad Request, verify credential data object is correct 404 Credential to be updated was not found.
Response Status Codes Table 30. Response Status Codes HTTP Status Code Reason 204 Delete completed successfully 400 Bad Request, verify credential type and id is correct /DHCP/ Desciption Retrieve DHCP settings from ASM appliance Method get Response Class dhcpSettings Response Content-Type: application/json, application/xml Response Status Codes Table 31. Response Status Codes HTTP Status Code Reason 200 Retrieved DHCP settings from ASM appliance successfully.
Response Content-Type: application/json, application/xml Parameters Table 32. Parameters Parameter Value Description Default Value Parameter Type Data Type body (required) DHCPEntity object that needs to be set on ASM appliance N/A body dhcpSettings Response Status Codes Table 33. Response Status Codes HTTP Status Code Reason 204 Successfully changed the DHCP settings. 500 Unable to change DHCP settings on the ASM appliance.
Parameter Value Description Default Value Parameter Type Data Type edDate,expirati onDate,deploy mentDesc,mars halledTemplate Data,health filter N/A Valid filter N/A columns: name,createdB y,createdDate,u pdatedBy,updat edDate,expirati onDate,deploy mentDesc,mars halledTemplate Data,health query array offset N/A Pagination Offset 0 query integer limit N/A Page Limit 50 query integer full N/A Use full templates including resources in response false query boolean Response Status C
Response Content-Type: application/xml, application/json Parameters Table 36. Parameters Parameter Value Description Default Value Parameter Type Data Type body N/A Deployment to be created N/A body Deployment Response Status Codes Table 37.
Response Status Codes Table 39. Response Status Codes HTTP Status Code Reason 200 Deployment retrived 404 Deployment not found /Deployment/{id} Desciption Update Deployment Method put Response Class Deployment Response Content-Type: application/xml, application/json Parameters Table 40.
/Deployment/{id} Desciption Delete Deployment -- this operation is idempotent Method delete Response Class void Response Content-Type: application/xml, application/json Parameters Table 42. Parameters Parameter Value Description Default Value Parameter Type Data Type id (required) Deployment Id (String) N/A path string Response Status Codes Table 43. Response Status Codes HTTP Status Code Reason 204 Deployment deleted 500 Unable to delete Deployment.
Response Status Codes Table 44. Response Status Codes HTTP Status Code Reason 401 No login information specified in the request 403 User doesn't have privileges to access this operation 500 User Log Internal Error, contact your system administrator /Deployment/defineService Desciption Defines a brownfield service that may be a Deployment Method post Response Class Deployment Response Content-Type: application/xml, application/json Parameters Table 45.
/Deployment/defineServiceDiff Desciption Identifies the differences from the existing service and defines an updated version of the service that that may used as a deployment Method post Response Class Deployment Response Content-Type: application/xml, application/json Parameters Table 47. Parameters Parameter Value serviceId N/A Description Default Value Parameter Type Data Type N/A query string Response Status Codes Table 48.
Parameters Table 49. Parameters Parameter Value deviceId (required) Description Default Value Parameter Type Data Type N/A path string Response Status Codes Table 50. Response Status Codes HTTP Status Code Reason 200 Deployments retrived 404 Deployments not found /Deployment/filter/{numOfDeployments} Desciption Find available servers for template components Method post Response Class DeploymentFilterResponse Response Content-Type: application/xml, application/json Parameters Table 51.
Parameter Value Description Default Value Parameter Type Data Type Otherwise the same server may be assigned to multiple components. Response Status Codes Table 52.
Response Status Codes Table 54. Response Status Codes HTTP Status Code Reason 200 Deployment migrated 404 Deployment not found /Deployment/migrateServer/{serviceId}/{componentId} Desciption Mark server as failed, find another available to retry deployment ID Method put Response Class Deployment Response Content-Type: application/xml, application/json Parameters Table 55.
Method get Response Class ServerNetworkObjects Response Content-Type: application/xml, application/json Parameters Table 57. Parameters Parameter Value serviceId serverId Description Default Value Parameter Type Data Type (required) N/A path string (required) N/A path string Response Status Codes Table 58.
Parameters Table 59. Parameters Parameter Value Description sort N/A filter Default Value Parameter Type Data Type Valid sort N/A columns: name,descriptio n,createdBy,cre atedDate,updat edBy,updatedD ate query string N/A Valid filter N/A columns: name,descriptio n,users,devices, createdBy,upda tedBy,createdD ate,updatedDat e query array offset N/A Pagination Offset 0 query integer limit N/A Page Limit 50 query integer Response Status Codes Table 60.
Parameters Table 61. Parameters Parameter Value body N/A Description Default Value Parameter Type Data Type N/A body DeviceGroup Response Status Codes Table 62. Response Status Codes HTTP Status Code Reason 201 Device Group created in inventory 400 Invalid Device Group object to create in inventory, first error encountered error causes an error response to return. Call will not return a list of errors.
Response Status Codes Table 64. Response Status Codes HTTP Status Code Reason 200 Device Group retrieved from inventory 404 Device Group not found in inventory /DeviceGroup/{refId} Desciption Update Device Group in Inventory Method put Response Class DeviceGroup Response Content-Type: application/xml, application/json Parameters Table 65.
/DeviceGroup/{refId} Desciption Delete Device Group from Inventory Method delete Response Class Response Response Content-Type: application/xml, application/json Parameters Table 67. Parameters Parameter Value Description Default Value Parameter Type Data Type refId (required) Reference Id N/A path string Response Status Codes Table 68.
Parameters Table 69. Parameters Parameter Value Description Default Value Parameter Type Data Type sort N/A Valid sort columns: id,status,status Message N/A query string filter N/A Valid filter columns: id,status,status Message N/A query array offset N/A pagination offset N/A query integer limit N/A page limit N/A query integer Response Status Codes Table 70.
Parameters Table 71. Parameters Parameter Value body N/A Description Default Value Parameter Type Data Type N/A body DiscoveryRequ est Response Status Codes Table 72.
Response Status Codes Table 74. Response Status Codes HTTP Status Code Reason 200 Discovery result retrieved for the job 400 Bad Request, verify sort, filter, and pagination are valid 404 Job not found in the discovery /DiscoveryRequest/{id} Desciption Delete Device from Discover result -- this operation is idempotent Method delete Response Class void Response Content-Type: application/xml, application/json Parameters Table 75.
Method post Response Class DiscoveryRequest Response Content-Type: application/xml, application/json Parameters Table 77. Parameters Parameter Value body N/A Description Default Value Parameter Type Data Type N/A body DiscoveryRequ est Response Status Codes Table 78.
Parameters Table 79. Parameters Parameter Value Description Default Value Parameter Type Data Type id (required) ref_id N/A path string Response Status Codes Table 80. Response Status Codes HTTP Status Code Reason 400 Problem with a query parameter, check response for details /FirmwareRepository/ Desciption Retrieve all FirmwareRepository with filter, sort, paginate which returns Array of firmwarerepository.
Response Status Codes Table 82. Response Status Codes HTTP Status Code Reason 200 All FirmwareRepository Retrived on filter, sort, paginate /FirmwareRepository/ Desciption Add a new Method post Response Class FirmwareInventory Response Content-Type: application/xml, application/json Parameters Table 83.
Method get Response Class FirmwareRepository Response Content-Type: application/xml, application/json Parameters Table 85. Parameters Parameter Value Description Default Value Parameter Type Data Type id (required) Repo Id N/A path string related N/A Hydrate related N/A objects query boolean Response Status Codes Table 86.
Parameters Table 87. Parameters Parameter Value Description body (required) id (required) Default Value Parameter Type Data Type ASM N/A FirmwareReposi tory to update body FirmwareReposi tory Id of N/A FirmwareReposi tory to update path string Response Status Codes Table 88. Response Status Codes HTTP Status Code Reason 200 Update completed successfully 400 Bad Request, verify credential data object is correct 404 Credential to be updated was not found.
Response Status Codes Table 90. Response Status Codes HTTP Status Code Reason 201 Connection to remote path successful /FirmwareRepository/compliance Desciption Get the comliance level for the specified evice Method post Response Class ManagedDevice Response Content-Type: application/xml, application/json Parameters Table 91.
Response Class ManagedDevice Response Content-Type: application/xml, application/json Parameters Table 93. Parameters Parameter Value Description Default Value Parameter Type Data Type body (required) Managed device to get compliance for N/A body ManagedDevice id (required) Id of the firmware to compare against instead of default N/A path string Response Status Codes Table 94.
Parameters Table 95. Parameters Parameter Value Description Default Value Parameter Type Data Type vendorId N/A Vendor ID N/A query string deviceId N/A Device ID N/A query string subDeviceId N/A Sub Device ID N/A query string componentId N/A Component ID N/A query string subVendorId N/A Sub Vendor ID N/A query string systemId N/A System ID N/A query string type N/A Type N/A query string Response Status Codes Table 96.
Response Status Codes Table 98. Response Status Codes HTTP Status Code Reason 200 retrieved 400 Bad Request, verify id is correct 404 Bad Request, verify id is correct /ManagedDevice/ Desciption Retrieve all Devices from Inventory with filter. Method get Response Class [ ManagedDevice ] Response Content-Type: application/xml, application/json Parameters Table 99.
Parameter Value Description Default Value Parameter Type Data Type plateId,inventor yDate,complian ceCheckDate,di scoveredDate,i dentityRef,vend or filter N/A Valid filter N/A columns: displayName,se rviceTag,refId,h ealth,refType,de viceType,ipAddr ess,state,model, statusMessage, createdDate,cre atedBy,updated Date,updatedBy ,healthMessage, compliant,infra TemplateDate,i nfraTemplateId, serverTemplate Date,serverTem plateId,inventor yDate,complian ceCheckDate,di scoveredDate,i dentityRef,vend or,cr
/ManagedDevice/ Desciption Create Device in Inventory, return array of Managed Devices created Method post Response Class [ ManagedDevice ] Response Content-Type: application/xml, application/json Parameters Table 101. Parameters Parameter Value body N/A Description Default Value Parameter Type Data Type N/A body [Lcom.dell.asm. asmcore.asmm anager.client.de viceinventory.M anagedDevice; Response Status Codes Table 102.
Method get Response Class ManagedDevice Response Content-Type: application/xml, application/json Parameters Table 103. Parameters Parameter Value Description Default Value Parameter Type Data Type filter N/A Filter Criteria N/A query array Response Status Codes Table 104.
Response Status Codes Table 106. Response Status Codes HTTP Status Code Reason 200 Device retrieved from inventory 404 Device not found in inventory /ManagedDevice/{refId} Desciption Update Device in Inventory Method put Response Class void Response Content-Type: application/xml, application/json Parameters Table 107.
/ManagedDevice/{refId} Desciption Delete Device from Inventory -- this operation is idempotent Method delete Response Class ManagedDevice Response Content-Type: application/xml, application/json Parameters Table 109. Parameters Parameter Value Description Default Value Parameter Type Data Type refId (required) Reference Id N/A path string forceDelete N/A Force Delete false query boolean Response Status Codes Table 110.
Parameters Table 111. Parameters Parameter Value body N/A Description Default Value Parameter Type Data Type N/A body FirmwareUpdat eRequest Response Status Codes Table 112. Response Status Codes HTTP Status Code Reason 201 Device updated Firmware 400 Invalid Device 404 Device not found in inventory /ManagedDevice/export/csv Desciption Exports all Devices in csv format Method get Response Class void Response Content-Type: application/octet-stream Response Status Codes Table 113.
/ManagedDevice/withcompliance Desciption Retrieve all Devices from Inventory with filter. Method get Response Class [ ManagedDevice ] Response Content-Type: application/xml, application/json Parameters Table 114.
Response Class ManagedDevice Response Content-Type: application/xml, application/json Parameters Table 116. Parameters Parameter Value Description Default Value Parameter Type Data Type certName (required) Certificate Name N/A path string Response Status Codes Table 117.
Response Status Codes Table 119. Response Status Codes HTTP Status Code Reason 201 Device updated in inventory 400 Invalid Device 404 Device not found in inventory /ManagedDevice/withcompliance/{refId} Desciption Retrieve Device from Inventory based on refId Method get Response Class ManagedDevice Response Content-Type: application/xml, application/json Parameters Table 120.
Method get Response Class ntpSettings Response Content-Type: application/json, application/xml Response Status Codes Table 122. Response Status Codes HTTP Status Code Reason 200 Retrieved NTP settings from ASM appliance successfully. 500 Unable to get NTP settings from the ASM appliance. /NTP/ Desciption Apply NTP settings on ASM appliance Method put Response Class void Response Content-Type: application/json, application/xml Parameters Table 123.
Response Status Codes Table 124. Response Status Codes HTTP Status Code Reason 204 Successfully set the NTP settings to on. 500 Unable to turn on NTP settings on the ASM appliance. /NTP/ Desciption Turn off NTP settings on ASM appliance Method delete Response Class void Response Content-Type: application/json, application/xml Response Status Codes Table 125. Response Status Codes HTTP Status Code Reason 204 Successfully set the NTP settings to off.
Response Content-Type: application/json, application/xml Parameters Table 126.
Response Class Network Response Content-Type: application/json, application/xml Parameters Table 128. Parameters Parameter Value Description Default Value body (required) Network object N/A that needs to be added to ASM Parameter Type Data Type body Network Response Status Codes Table 129.
Response Status Codes Table 130. Response Status Codes HTTP Status Code Reason 400 Bad Request, verify input parameters are correct 401 No login information specified in the request 403 User doesn't have privileges to access this operation 500 User Log Internal Error, contact your system administrator /Network/{networkId} Desciption Find a network by id Method get Response Class Network Response Content-Type: application/json, application/xml Parameters Table 131.
/Network/{networkId} Desciption Update an existing network Method put Response Class void Response Content-Type: application/xml, application/json Parameters Table 133. Parameters Parameter Value Description body (required) networkId (required) Default Value Parameter Type Data Type Network object N/A that contains update fields body Network Id of network to N/A update path string Response Status Codes Table 134.
Method delete Response Class void Response Content-Type: application/xml, application/json Parameters Table 135. Parameters Parameter Value Description Default Value networkId (required) Id of network to N/A delete Parameter Type Data Type path string Response Status Codes Table 136.
Parameters Table 137. Parameters Parameter Value Description networkId (required) Parameter Type Data Type Id of network to N/A update query string numberToReser (required) ve Number of ip addresses to reserve N/A query integer usageGUID Usage GUID to associate with ipAddress N/A query string (required) Default Value Response Status Codes Table 138.
Response Status Codes Table 140. Response Status Codes HTTP Status Code Reason 204 Released IP addresses successfully 400 Invalid input for usageGUID 404 Reservation associated with usageGUID not found /Network/{networkId}/usageids Desciption Find Usage Ids of network by id Method get Response Class UsageIdList Response Content-Type: application/json, application/xml Parameters Table 141.
Method get Response Class [ IpAddress ] Response Content-Type: application/json, application/xml Parameters Table 143. Parameters Parameter Value Description Default Value networkId (required) Id of network to N/A retrieve from Parameter Type Data Type path string Response Status Codes Table 144.
/OSRepository/ Desciption Creates a new ASM OS Repository Method post Response Class OSRepository Response Content-Type: application/xml, application/json Parameters Table 146. Parameters Parameter Value body N/A Description Default Value Parameter Type Data Type N/A body OSRepository Response Status Codes Table 147.
Parameters Table 148. Parameters Parameter Value id (required) Description Default Value Parameter Type Data Type N/A path string Response Status Codes Table 149. Response Status Codes HTTP Status Code Reason 200 OSRepository Retrieved /OSRepository/{id} Desciption Update OSRepository Method put Response Class OSRepository Response Content-Type: application/xml, application/json Parameters Table 150.
Response Status Codes Table 151. Response Status Codes HTTP Status Code Reason 204 OSRepository updated 400 Invalid Parameters to Update OSRepository or problem with the Resource Adapters 404 OSRepository not found /OSRepository/{id} Desciption Deletes an existing ASM OS Repository Method delete Response Class OSRepository Response Content-Type: application/xml, application/json Parameters Table 152.
/OSRepository/sync/{id} Desciption Syncs the ASM OS Repository by its ID Method put Response Class OSRepository Response Content-Type: application/xml, application/json Parameters Table 154. Parameters Parameter Value Description Default Value Parameter Type Data Type body N/A osRepo N/A body OSRepository id (required) N/A path string Response Status Codes Table 155.
Parameters Table 156. Parameters Parameter Value body N/A Description Default Value Parameter Type Data Type N/A body OSRepository Response Status Codes Table 157. Response Status Codes HTTP Status Code Reason 201 Connection to remote path successful /Proxy/ Desciption Retrieve proxy settings from ASM appliance Method get Response Class proxySettings Response Content-Type: application/json, application/xml Response Status Codes Table 158.
Response Class proxySettings Response Content-Type: application/json, application/xml Parameters Table 159. Parameters Parameter Value Description Default Value Parameter Type Data Type body (required) ProxySetting object that needs to be set on ASM appliance N/A body proxySettings Response Status Codes Table 160.
Parameters Table 161. Parameters Parameter Value Description Default Value Parameter Type Data Type body (required) ProxySetting object that needs to be tested on ASM appliance N/A body proxySettings Response Status Codes Table 162.
Parameter Value Description Default Value Parameter Type Data Type ag,powerState,c redentialId filter N/A Valid filter N/A columns: health,manage mentIP,serviceT ag,powerState,c redentialId query array offset N/A Specify pagination offset 0 query integer limit N/A Specify page limit 50 query integer Response Status Codes Table 164.
Parameters Table 165. Parameters Parameter Value Description Default Value filter N/A Valid filter N/A columns: health,manage mentIP,serviceT ag,powerState,c redentialId Parameter Type Data Type query array Response Status Codes Table 166.
Parameters Table 167. Parameters Parameter Value Description Default Value Parameter Type Data Type refId (required) Reference id of server N/A path string Response Status Codes Table 168.
Response Status Codes Table 170.
HTTP Status Code Reason 403 User doesn't have privileges to access this operation 404 Server not found 500 Server Internal Error, contact your system administrator /ServiceTemplate/ Desciption Retrieve all ServiceTemplates with filter, sort, paginate which returns Array of ServiceTemplate.class Method get Response Class [ ServiceTemplate ] Response Content-Type: application/xml, application/json Parameters Table 173.
Response Status Codes Table 174. Response Status Codes HTTP Status Code Reason 200 All ServiceTemplates Retrived on filter, sort, paginate /ServiceTemplate/ Desciption Create new ServiceTemplate Method post Response Class ServiceTemplate Response Content-Type: application/xml, application/json Parameters Table 175.
/ServiceTemplate/{id} Desciption Retrieve ServiceTemplate based on ServiceTemplate id Method get Response Class ServiceTemplate Response Content-Type: application/xml, application/json Parameters Table 177. Parameters Parameter Value Description Default Value Parameter Type Data Type id (required) Infrastructure Template Id (String) N/A path string includeBrownfi eldVmMangers N/A Will return Managed and Reserved VM Managers if set to true, other wise only returns Discovered.
Method put Response Class ServiceTemplate Response Content-Type: application/xml, application/json Parameters Table 179. Parameters Parameter Value Description Default Value Parameter Type Data Type body N/A Infrastructure Template to be updated to N/A body ServiceTemplat e id (required) Infrastructure Template Id (String) N/A path string Response Status Codes Table 180.
Parameters Table 181. Parameters Parameter Value Description Default Value Parameter Type Data Type id (required) Infrastructure Template Id (String) N/A path string Response Status Codes Table 182. Response Status Codes HTTP Status Code Reason 204 ServiceTemplate deleted 500 Unable to delete ServiceTemplate.
Response Status Codes Table 184. Response Status Codes HTTP Status Code Reason 201 ServiceTemplate uploaded successfully 400 Invalid Parameters to upload template /ServiceTemplate/export Desciption Export a ServiceTemplate Method post Response Class ServiceTemplate Response Content-Type: application/xml, application/json Parameters Table 185.
/ServiceTemplate/{id}/copy Desciption Copy a ServiceTemplate Method post Response Class ServiceTemplate Response Content-Type: application/xml, application/json Parameters Table 187. Parameters Parameter Value Description Default Value Parameter Type Data Type body N/A Infrastructure Template settings N/A body ServiceTemplat e id (required) Infrastructure Template Id (String) N/A path string Response Status Codes Table 188.
Response Class void Response Content-Type: application/octet-stream Response Status Codes Table 189.
Response Status Codes Table 191. Response Status Codes HTTP Status Code Reason 200 ServiceTemplate retrieved 404 ServiceTemplate not found /ServiceTemplate/updateParameters Desciption Create new ServiceTemplate Method post Response Class ServiceTemplate Response Content-Type: application/xml, application/json Parameters Table 192.
Method get Response Class ServiceTemplate Response Content-Type: application/xml, application/json Parameters Table 194. Parameters Parameter Value Description Default Value Parameter Type Data Type deviceId (required) Device Id (String) N/A path string Response Status Codes Table 195.
Parameters Table 196. Parameters Parameter Value Description Default Value Parameter Type Data Type id (required) Infrastructure Template Id (String) N/A path string Response Status Codes Table 197.
Response Status Codes Table 199. Response Status Codes HTTP Status Code Reason 200 ServiceTemplate updated 404 ServiceTemplate not found /ServiceTemplate/components/template/{templateId} Desciption Update Template by analysing related components. Method put Response Class ServiceTemplate Response Content-Type: application/xml, application/json Parameters Table 200.
Method get Response Class ServiceTemplate Response Content-Type: application/xml, application/json Parameters Table 202. Parameters Parameter Value Description Default Value Parameter Type Data Type serviceId (required) Service Id (String) N/A path string Template Component Type (String) N/A path string componentTyp (required) e Response Status Codes Table 203.
Parameters Table 204. Parameters Parameter Value Description Default Value Parameter Type Data Type templateId (required) Template Id (String) N/A path string componentTyp (required) e Template Component Type (String) N/A path string Response Status Codes Table 205.
/Timezone/ Desciption Sets the appliance timezone Method put Response Class Response Response Content-Type: application/json, application/xml Parameters Table 207. Parameters Parameter Value Description Default Value Parameter Type Data Type body (required) TimeZoneInfo that needs to be set on ASM appliance N/A body timeZone Response Status Codes Table 208. Response Status Codes HTTP Status Code Reason 200 ASM appliance timezone set successfully.
Response Content-Type: application/json, application/xml Parameters Table 209. Parameters Parameter Value Description Default Value Parameter Type Data Type offset N/A Specify pagination offset N/A query integer limit N/A Specify page N/A limit, can not exceed system maximum limit. query integer Response Status Codes Table 210. Response Status Codes HTTP Status Code Reason 200 Available timezones list retrieved successfully.
Parameter Value Description Default Value Parameter Type Data Type me,lastName,e nabled,systemU ser,email,phone Number,role,cr eatedDate,creat edBy,updatedD ate,updatedBy offset N/A Specify pagination offset 0 query integer limit N/A Specify page limit 50 query integer sort N/A Valid sort N/A columns: userName,dom ainName,firstNa me,lastName,e nabled,email,ph oneNumber,rol e,createdDate,c reatedBy,updat edDate,updated By query string Response Status Codes Table 212.
Parameters Table 213. Parameters Parameter Value Description Default Value body (required) User object that N/A needs to be added to ASM Parameter Type Data Type body User Response Status Codes Table 214. Response Status Codes HTTP Status Code Reason 201 User created 400 Invalid input 409 User already exists /User/{userId} Desciption Find a user by Id Method get Response Class User Response Content-Type: application/json, application/xml Parameters Table 215.
Response Status Codes Table 216. Response Status Codes HTTP Status Code Reason 200 OK 404 User not found /User/{userId} Desciption Update an existing user Method put Response Class User Response Content-Type: application/json, application/xml Parameters Table 217.
/User/{userId} Desciption Delete an existing user Method delete Response Class void Response Content-Type: application/xml, application/json Parameters Table 219. Parameters Parameter Value Description Default Value Parameter Type Data Type userId (required) Id of user to delete N/A path integer Response Status Codes Table 220.
Response Status Codes Table 221. Response Status Codes HTTP Status Code Reason 204 Initial Wizard Status retrieved successfully. 500 Get Initial Wizard Status operation failed /WizardStatus/ Desciption Set the ASM Setup Status Method put Response Class wizardStatus Response Content-Type: application/json, application/xml Parameters Table 222.
Appendix B - Model Reference 9 BrownfieldStatus Enum: BrownfieldStatus Table 224.
Table 226. CompliantState Property Name Property Type values ["NA", "compliant", "noncompliant", "unknown", "updaterequired"] DeploymentHealthStatusType Enum: DeploymentHealthStatusType Table 227. DeploymentHealthStatusType Property Name Property Type values ["green", "yellow", "red"] DeploymentStatusType Enum: DeploymentStatusType Table 228.
DeviceType Enum: DeviceType Table 231. DeviceType Property Name Property Type values ["Chassis", "Server", "Switch", "Chassis", "Chassis", "Rack Server", "Blade Server", "Switch", "Switch", "Storage Group", "Storage Group", "Storage Group", "Switch", "Switch", "VM Manager", "Virtual Machine", "Storage Group", "VM Manager", "Unknown", "Server", "Chassis", "FX Server", "EM", "Tower Server"] DiscoverDeviceType Enum: DiscoverDeviceType Table 232.
Health Enum: Health Table 235. Health Property Name Property Type values ["GREEN", "YELLOW", "RED", "UNKNOWN"] HotSpareStatus Enum: HotSpareStatus Table 236. HotSpareStatus Property Name Property Type values ["No", "Dedicated", "Global"] IOMLocationType Enum: IOMLocationType Table 237. IOMLocationType Property Name Property Type values ["A1", "A2", "B1", "B2", "C1", "C2", "UNKNOWN"] IdentityType Enum: IdentityType Table 238.
MediaType Enum: MediaType Table 240. MediaType Property Name Property Type values ["SSD", "HDD", "ANY"] NetworkMode Enum: NetworkMode Table 241. NetworkMode Property Name Property Type values ["UNKNOWN", "LAN", "ISCSI", "FCOE"] PhysicalType Enum: PhysicalType Table 242. PhysicalType Property Name Property Type values ["BLADE", "RACK", "SLED"] RepositoryState Enum: RepositoryState Table 243.
ServerSlotType Enum: ServerSlotType Table 245. ServerSlotType Property Name Property Type values ["HALF", "FULL", "QUARTER", "UNKNOWN"] ServiceTemplateComponentSubType Enum: ServiceTemplateComponentSubType Table 246. ServiceTemplateComponentSubType Property Name Property Type values ["CLASS", "TYPE", "HYPERVISOR"] ServiceTemplateComponentType Enum: ServiceTemplateComponentType Table 247.
Table 249. UIRaidLevel Property Name Property Type values ["raid0", "raid1", "raid5", "raid6", "raid10", "raid50", "raid60"] UpdateType Enum: UpdateType Table 250. UpdateType Property Name Property Type values ["SERVICE", "DEVICE"] AsmDetailedMessage Name: AsmDetailedMessage Table 251.
Property Name Property Type Required password string false AuthenticateResponse Name: AuthenticateResponse Table 253.
Enclosure Name: Enclosure Table 256.
Table 258.
IpRange Name: IpRange Table 261. IpRange Property Name Property Type Required startingIp string true endingIp string true id string false Property Name Property Type Required rel string true href string true title string false type string false Property Name Property Type Required empty boolean false Property Name Property Type Required model string false manufacturer string false fqdd string false partNumber string false Link Name: Link Table 262.
Property Name Property Type Required bankLabel string false currentOperatingSpeed integer false instanceID string false lastSystemInventoryTime string false manufactureDate string false memoryType string false primaryStatus string false rank string false speed integer false serialNumber string false lastUpdateTime string false id string false size integer false Property Name Property Type Required createdDate string false imageType string false sourcePath
Table 266.
Table 269. ServerJobStatus Property Name Property Type Required createdDate string false jobType string false jobStatus string false jobName string false startedBy string false ServiceTemplateOption Name: ServiceTemplateOption Table 270. ServiceTemplateOption Property Name Property Type Required dependencyValue string false dependencyTarget string false name string false value string false ServiceTemplateUploadRequest Name: ServiceTemplateUploadRequest Table 271.
SoftwareComponent Name: SoftwareComponent Table 272.
UsageIdList Name: UsageIdList Table 274.
Table 277.
ntpSettings Name: ntpSettings Table 280.
Table 283. testProxyResponse Property Name Property Type Required testProxyResult boolean false testProxyDescription string false Property Name Property Type Required timeZoneId string false timeZone string false timeZone Name: timeZone Table 284. timeZone AsmDetailedMessageList Name: AsmDetailedMessageList Table 285.
Property Name Property Type Required compliantState CompliantState false statusEndTime string false statusStartTime string false logDump string false status DeploymentStatusType false refType string false DeviceDiscoveryRequest Name: DeviceDiscoveryRequest Table 287.
Table 288. FirmwareComplianceComponents Property Name Property Type Required embeddedRepoComponents [SoftwareComponent] false defaultRepoComponents [SoftwareComponent] false compliantState CompliantState false FirmwareUpdateRequest Name: FirmwareUpdateRequest Table 289.
GroupUserList Name: GroupUserList Table 291. GroupUserList Property Name Property Type Required totalRecords integer false groupUsers [GroupUser] false Property Name Property Type Required managementIP string false managementIPStatic boolean false serviceTag string false health Health false model string false location IOMLocationType false id string false slot integer false supported boolean false IOM Name: IOM Table 292.
PhysicalDisk Name: PhysicalDisk Table 294.
Table 296.
Table 298. StaticNetworkConfiguration Property Name Property Type Required ipAddress string false subnet string false gateway string false primaryDns string false secondaryDns string false dnsSuffix string false ipRange [IpRange] false VirtualDiskConfiguration Name: VirtualDiskConfiguration Table 299.
Property Name Property Type Required updatedDate string false label string true domain string false link Link false username string true createdBy string false password string false id string false Property Name Property Type Required isConfigureCompleted boolean false isDeploymentCompleted boolean false isNetworkCompleted boolean false isTemplateCompleted boolean false seqId integer false isSetupCompleted boolean false showGettingStarted boolean false link
Property Name Property Type Required health Health false controllers [ChassisController] false powerSupplies [ChassisPowerSupply] false kVMs [IKVM] false defaultPowerCapUpperBoundBT U integer false defaultPowerCapLowerBoundWa integer tts false defaultPowerCapLowerBoundBT U integer false lastFirmwareUpdateTime GregorianCalendar false iomCount integer false serverCount integer false iOMs [IOM] false model string false datacenter string false aisle string false rack
ChassisLogEntry Name: ChassisLogEntry Table 304. ChassisLogEntry Property Name Property Type Required logTime GregorianCalendar false severity LogSeverity false message string false DeviceDiscoveryRequests Name: DeviceDiscoveryRequests Table 305. DeviceDiscoveryRequests Property Name Property Type Required discoverIpRangeDeviceRequests [DeviceDiscoveryRequest] false LogicalNetworkInterface Name: LogicalNetworkInterface Table 306.
Network Name: Network Table 307.
Property Name Property Type Required role string true createdBy string false password string true Property Name Property Type Required raidLevel UIRaidLevel false physicalDisks [string] false mediaType MediaType false controller string false configuration VirtualDiskConfiguration false Property Name Property Type Required credential credential true references references false link Link false Property Name Property Type Required enclosures [Enclosure] false fqd
Property Name Property Type Required id string false Property Name Property Type Required maximum integer false minimum integer false networks [string] false fqdd string false wwpn string false networkObjects [Network] false iscsiMacAddress string false macAddress string false partitionNo integer false partitionIndex integer false lanMacAddress string false iscsiIQN string false wwnn string false portNo integer false name string false id string false
Property Name Property Type Required ssdHotSpares [string] false Property Name Property Type Required totalRecords integer false credentialList [asmCredential] false Property Name Property Type Required fqdd string false maxPartitions integer false partitioned boolean false partitions [Partition] false nictype string false redundancy boolean false enabled boolean false name string false id string false Property Name Property Type Required refId string false
Property Name Property Type Required componentId string false matchUnordered boolean false raidConfiguration RAIDConfiguration false exactMatch boolean false DeploymentFilterResponse Name: DeploymentFilterResponse Table 317.
NetworkConfiguration Name: NetworkConfiguration Table 319. NetworkConfiguration Property Name Property Type Required fabrics [Fabric] false usedInterfaces [Interface] false servertype string false allUsedInterfaces [Interface] false allNetworks [Network] false interfaces [Fabric] false id string false ServerNetworkObjects Name: ServerNetworkObjects Table 320.
Table 321.
Table 322.
FirmwareRepository Name: FirmwareRepository Table 324.
Table 325.
Table 326.
Property Name Property Type Required retry boolean false updateServerFirmware boolean false individualTeardown boolean false overallDeviceHealth DeviceHealth false compliant boolean false createdBy string false status DeploymentStatusType false id string false owner string false Property Name Property Type Required refId string true deviceType DeviceType false serviceTag string true ipAddress string true iomCount integer false serverCount integer false mode
Property Name Property Type Required unmanaged boolean false reserved boolean false serverPoolId string false systemId string false config string false jobId string false configuration string false status DiscoveryStatus false refType string true vendor string false displayName string false Property Name Property Type Required refId string false deviceType DeviceType false serviceTag string false ipAddress string false iomCount integer false serverCount
Property Name Property Type Required config string false jobId string false status DiscoveryStatus false refType string false vendor string false FirmwareDeviceInventory Name: FirmwareDeviceInventory Table 329.
DiscoveryRequest Name: DiscoveryRequest Table 330.
Property Name Property Type Required operatingSystem string false numberOfCPUs integer false memoryInGB integer false credId string false nics integer false discoverDeviceType DiscoverDeviceType true failuresCount integer false chassisId string false firmwareUpdateTime string false firmwareDeviceInventories [FirmwareDeviceInventory] false facts string false statusMessage DeviceState false manufacturer string false cpuType string false healthMessage string false
Table 333.
Appendix C -Ruby Code Usage 10 Several configuration options are available for the ASM Ruby module. In order to run the code examples, minimally one will need to set the username, password, and baseURI in the file AsmConfig.
# Disable auto signing for all RestClient calls ASM::API::disableAutoAuth result = RestClient.get url, {:params=>{:filter=>template_filter}} # Sign a single request ASM::API::sign do result = RestClient.get url, {:params=>{:filter=>template_filter}} result = RestClient.get url, {:params=>{:filter=>template_filter}} end # Logout to demo automatic login below ASM::API::logout # Sign a single request with supplied creds ASM::API::sign('admin','admin') { RestClient.