Active System Manager Release 8.1.
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. Copyright © 2015 Dell Inc. All rights reserved. This product is protected by U.S. and international copyright and intellectual property laws.
Contents 1 Overview.................................................................................................................8 Other Documents You May Need........................................................................................................ 8 2 Resource URI Endpoints....................................................................................10 3 Authentication Headers.....................................................................................
/Chassis/ GET...................................................................................................................................... 24 /Chassis/{refId} PUT............................................................................................................................ 26 /Chassis/{refId} GET............................................................................................................................ 26 /Chassis/{refId} DELETE..........................................
/NTP/ DELETE..................................................................................................................................... 56 /NTP/ PUT........................................................................................................................................... 56 /NTP/ GET............................................................................................................................................57 /Proxy/ GET................................................
credentialList ...................................................................................................................................... 82 Deployment ........................................................................................................................................82 DeploymentDevice ............................................................................................................................ 83 DeploymentFilterResponse .......................................
ntpSettings ....................................................................................................................................... 100 Partition ............................................................................................................................................ 100 proxySettings .................................................................................................................................... 101 RAIDConfiguration ....................................
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. Dell Active System Manager (ASM) is an acronym for Dell Active System Manager.
For more information about ASM, including how-to videos, whitepapers, 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.
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/ POST Description Confirm User access credentials Method POST Response Class AuthenticateResponse Response Content-Type: application/json, application/xml 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 HTTP Status Code Reason 201 Authentication successful 401 User not found, domain not found or password does
Method GET Response Class [ Chassis ] Response Content-Type: application/xml, application/json Parameters Parameter Value Description sort N/A filter Default Value Parameter Type Data Type Valid sort N/A columns: health,manage mentIP,serviceT ag,credentialRe fId query string N/A Valid filter N/A columns: health,manage mentIP,serviceT ag,credentialRe fId query array offset N/A Specify pagination offset 0 query integer limit N/A Specify page limit 50 query integer Response Status
/Chassis/{refId} PUT Description Update The Chasis configuration Method PUT Response Class Chassis Response Content-Type: application/xml, application/json 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 HTTP Status Code Reason 204 Update completed successfully 400 Problem with the update data, check error response for detai
Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Data Type refId (required) Device Id N/A path string Response Status Codes HTTP Status Code Reason 200 retrieved 400 Bad Request, verify Device id is correct 404 Bad Request, verify Device id is correct /Chassis/{refId} DELETE Description Deletes an existing Chassis Device Method DELETE Response Class void Response Content-Type: application/xml, application/json
/Chassis/{refId}/sensorlog DELETE Description Clear an individual Chassis Device Sensor Event Logs Method DELETE Response Class void Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Data Type refId (required) Device Id N/A path string Response Status Codes HTTP Status Code Reason 204 updated 400 Bad Request, verify Device object is correct 404 Bad Request, verify Device Id is correct /Chassis/{refId}/sensorlog
Parameters Parameter Value Description Default Value Parameter Type Data Type refId (required) Device Id N/A path string Response Status Codes HTTP Status Code Reason 200 retrieved 400 Bad Request, verify Device id is correct 404 Bad Request, verify Device id is correct /Chassis/{serviceTag}/{type} GET Description Retrieve a Chassis Device associated to a specific Server or IOM Method GET Response Class Chassis Response Content-Type: application/xml, application/json Parameters Parame
/Chassis/{serviceTag}/{type} DELETE Description Deletes an existing server or IOA in chassis Method DELETE Response Class void Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Data Type serviceTag (required) Service Tag N/A path string type (required) Type N/A path string Response Status Codes HTTP Status Code Reason 204 deleted 400 Bad Request, verify Device id is correct.
Parameters Parameter Value Description Default Value Parameter Type Data Type ip (required) Device IP N/A path string Response Status Codes HTTP Status Code Reason 200 retrieved 400 Bad Request, verify Device IP is correct 404 Bad Request, verify Device IP is correct /Credential/ POST Description Add a new credential Method POST Response Class credential Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Da
/Credential/ GET Description Retrieve a list of credentials Method GET Response Class credentials Response Content-Type: application/xml, application/json 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 Parameter Type Data Type exceed system maximum limit.
/Credential/{id} DELETE Description Deletes an existing credential Method DELETE Response Class void Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Data Type id (required) Id of credential to delete N/A path string Response Status Codes HTTP Status Code Reason 204 Delete completed successfully 400 Bad Request, verify credential id is correct /Credential/{id} PUT Description Updates an existing credential Meth
Parameters Parameter Value Description Default Value Parameter Type Data Type body (required) Credential to update N/A body credential id (required) Id of credential to update N/A path string 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.
HTTP Status Code Reason 409 Deployment already exists /Deployment/ GET Description Retrieve all Deployments with filter, sort, paginate which returns Array of Deployment class Method GET Response Class [ Deployment ] Response Content-Type: application/xml, application/json Parameters Parameter Value Description sort N/A filter Default Value Parameter Type Data Type Valid sort N/A columns: name,createdB y,createdDate,u pdatedBy,updat edDate,expirati onDate,deploy mentDesc,mars halledTemplate
/Deployment/{id} PUT Description Update Deployment Method PUT Response Class Deployment Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Data Type body N/A Deployment to be updated to N/A body Deployment id (required) Deployment Id (String) N/A path string Response Status Codes HTTP Status Code Reason 204 Deployment updated 400 Invalid Parameters to Update Deployment or problem with the Resource Adapters 4
Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Data Type id (required) Deployment Id (String) N/A path string Response Status Codes HTTP Status Code Reason 200 Deployment retrived 404 Deployment not found /Deployment/{id} DELETE Description Delete Deployment -- this operation is idempotent Method DELETE Response Class void Response Content-Type: application/xml, application/json Parameters Parameter Value D
/Deployment/migrate/{serviceId}/{serverId} PUT Description Migrate Deployment based on deployment ID Method PUT Response Class Deployment Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Data Type body N/A Deployment Id (String) N/A body string serverId (required) N/A path string serviceId (required) N/A path string Response Status Codes HTTP Status Code Reason 200 Deployment migrated 404 Deployment not
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 filter criteria 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 HTTP Status Code Reason 400 Problem with a query parameter, check response for details /DiscoveryRequest/ POST Description discover devices of Ip range Method POST Response Cla
Response Status Codes HTTP Status Code Reason 202 Create the discovery resource 400 Bad Request, verify Discovery request object is correct /DiscoveryRequest/{id} GET Description Retrieve Device from Inventory based on Id Method GET Response Class DiscoveryRequest Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Data Type id (required) Discovery ID N/A path string Response Status Codes HTTP Status Code Reason
Method DELETE Response Class void Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Data Type id (required) Discovery ID N/A path string Response Status Codes HTTP Status Code Reason 204 Job deleted from inventory /DiscoveryRequest/chassislist POST Description discover devices of Ip range Method POST Response Class DiscoveryRequest Response Content-Type: application/xml, application/json Parameters Parameter Val
Response Status Codes HTTP Status Code Reason 202 Create the discovery resource 400 Bad Request, verify Discovery request object is correct /DiscoveryRequest/discoveryresult/{id} GET Description Retrieve a Array of DiscoveryResults Method GET Response Class [ DiscoveryResult ] Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Data Type id (required) ref_id N/A path string Response Status Codes HTTP Status Code R
Response Class [ ManagedDevice ] Response Content-Type: application/xml, application/json Parameters Parameter Value Description sort N/A filter Default Value Parameter Type Data Type Valid sort N/A columns: displayName,se rviceTag,refId,h ealth,refType,de viceType,ipAddr ess,state,model model,statusMe ssage,createdD ate,createdBy,u pdatedDate,upd atedBy,healthM essage,complia nt,infraTemplat eDate,infraTem plateId,serverTe mplateDate,ser verTemplateId,i nventoryDate,c omplianceChec kDate,discover
/ManagedDevice/ POST Description Create Device in Inventory, return array of Managed Devices created Method POST Response Class [ ManagedDevice ] Response Content-Type: application/xml, application/json 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.
Response Class ManagedDevice Response Content-Type: application/xml, application/json 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 HTTP Status Code Reason 204 Device deleted from inventory 400 Unable to delete from RA's inventory /ManagedDevice/{refId} PUT Description Update Device in Inventory Method PUT Response Class void Response
Response Status Codes HTTP Status Code Reason 201 Device updated in inventory 400 Invalid Device 404 Device not found in inventory /ManagedDevice/{refId} GET Description Retrieve Device from Inventory based on refId Method GET Response Class ManagedDevice Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Data Type refId (required) Reference Id N/A path string Response Status Codes HTTP Status Code Reason 200
Response Class ManagedDevice Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Data Type filter N/A Filter Criteria N/A query array Response Status Codes HTTP Status Code Reason 200 Device Count retrieved from inventory /ManagedDevice/firmware PUT Description Update Device Firmware Method PUT Response Class void Response Content-Type: application/xml, application/json Parameters Parameter Value body N/A Descri
/ManagedDevice/puppet/{certName} GET Description Retrieve Device from Inventory based on certName Method GET Response Class ManagedDevice Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Data Type certName (required) Certificate Name N/A path string Response Status Codes HTTP Status Code Reason 200 Device retrieved from inventory 404 Device not found in inventory /ManagedDevice/puppet/{certName} PUT Description
Parameters Parameter Value Description Default Value Parameter Type Data Type body N/A Device to be updated to N/A body ManagedDevice certName (required) Certificate Name N/A path string Response Status Codes HTTP Status Code Reason 201 Device updated in inventory 400 Invalid Device 404 Device not found in inventory /Network/ GET Description Retrieve networks Method GET Response Class [ Network ] Response Content-Type: application/json, application/xml Parameters Parameter Valu
Parameter Value Description Default Value Parameter Type Data Type separated list of column names to sort. Default order is ascending. Column name can be prefixed with a minus sign to indicate descending for that column.
/Network/ POST Description Add a new network Method POST Response Class Network Response Content-Type: application/json, application/xml 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 HTTP Status Code Reason 201 Network created 400 Invalid input or network supplied or verify other input data is correct 409 Network already exists /Network/{networkId} DELETE
Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value networkId (required) Id of network to N/A delete Parameter Type Data Type path string Response Status Codes HTTP Status Code Reason 204 Network deleted successfully 400 Invalid network id supplied /Network/{networkId} PUT Description Update an existing network Method PUT Response Class void Response Content-Type: application/xml, application/json Parameters Parameter Value Des
HTTP Status Code Reason 404 Network not found 409 Network with similar name already exists /Network/{networkId} GET Description Find a network by id Method GET Response Class Network Response Content-Type: application/json, application/xml Parameters Parameter Value Description Default Value networkId (required) Id of network to N/A retrieve Parameter Type Data Type path string Response Status Codes HTTP Status Code Reason 200 Network retrieved successfully 404 Network not found /N
Response Content-Type: application/json, application/xml 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 HTTP Status Code Reason 204 IP Addresses assigned successfully 400 Invalid network id supplied /Network/ipA
Response Status Codes HTTP Status Code Reason 204 Released IP addresses successfully 400 Invalid input for usageGUID 404 Reservation associated with usageGUID not found /NTP/ DELETE Description Turn off NTP settings on ASM appliance Method DELETE Response Class void Response Content-Type: application/json, application/xml Response Status Codes HTTP Status Code Reason 204 Successfully set the NTP settings to off. 500 Unable to turn off NTP settings on the ASM appliance.
Parameters Parameter Value Description Default Value Parameter Type Data Type body (required) NTPSetting object that needs to be set on ASM appliance N/A body ntpSettings 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.
/Proxy/ GET Description Retrieve proxy settings from ASM appliance Method GET Response Class proxySettings Response Content-Type: application/json, application/xml Response Status Codes HTTP Status Code Reason 200 ASM appliance proxy settings retrieved successfully 500 Unable to retrieve proxy settings from ASM appliance /Proxy/ PUT Description Set the proxy settings on ASM appliance Method PUT Response Class proxySettings Response Content-Type: application/json, application/xml Parameters Param
Response Status Codes HTTP Status Code Reason 200 Proxy settings set successfully in ASM appliance 500 Unable to set the proxy settings in ASM appliance /Proxy/test POST Description Retrieve proxy settings from ASM appliance Method POST Response Class testProxyResponse Response Content-Type: application/json, application/xml 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 p
Method POST Response Class Pool Response Content-Type: application/json, application/xml Parameters Parameter Value Description Default Value body (required) Pool object that N/A needs to be added to ASM Parameter Type Data Type body Pool Response Status Codes HTTP Status Code Reason 201 Pool created 400 Invalid input or pool supplied or verify other input data is correct 409 Pool already exists /ServerPool/ GET Description Retrieve pools Method GET Response Class [ Pool ] Response Co
Parameters Parameter Value Description sort N/A filter Default Value Parameter Type Data Type Specify sort N/A columns(Suppo rted columns are:name,descri ption,createdBy ,createdDate,up datedBy,update dDate) in a comma separated list of column names to sort. Default order is ascending. Column name can be prefixed with a minus sign to indicate descending for that column.
Response Status Codes HTTP Status Code Reason 200 Pools is retrieved 400 Problem with a query parameter, check response for details 404 Pools not found /ServerPool/{poolId} DELETE Description Delete an existing pool Method DELETE Response Class void Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Data Type poolId (required) Id of pool to delete N/A path string Response Status Codes HTTP Status Code Reason 2
Method GET Response Class Pool Response Content-Type: application/json, application/xml Parameters Parameter Value Description Default Value Parameter Type Data Type poolId (required) Id of pool to retrieve N/A path string Response Status Codes HTTP Status Code Reason 200 Pool retrieved successfully 404 Pool not found /ServerPool/{poolId} PUT Description Update an existing pool Method PUT Response Class void Response Content-Type: application/xml, application/json 63
Parameters Parameter Value Description body (required) poolId (required) Default Value Parameter Type Data Type Pool object that N/A contains update fields body Pool Id of pool to update path string N/A Response Status Codes HTTP Status Code Reason 204 Pool updated successfully 400 Invalid input for id or pool supplied or verify other input data is correct 404 Pool not found 409 Pool with similar name already exists /ServerPool/{poolId}/generateVirtualIdentity PUT Description Gene
Parameter Value Description Default Value Parameter Type Data Type query integer generate virtual identities count (required) Number of N/A virtual identities to generate Response Status Codes HTTP Status Code Reason 204 Virtual Identities generated successfully 400 Invalid input for pool id or type or number of virtual identities to generate or verify other input data is correct 404 Pool not found /ServiceTemplate/ GET Description Retrieve all ServiceTemplates with filter, sort, paginate
Parameter Value Description Default Value Parameter Type Data Type limit N/A Page Limit 50 query integer Response Status Codes HTTP Status Code Reason 200 All ServiceTemplates Retrived on filter, sort, paginate /ServiceTemplate/ POST Description Create new ServiceTemplate Method POST Response Class ServiceTemplate Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Data Type body N/A Infrastructure Template t
/ServiceTemplate/{id} GET Description Retrieve ServiceTemplate based on ServiceTemplate id Method GET Response Class ServiceTemplate Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Data Type id (required) Infrastructure Template Id (String) N/A path string Response Status Codes HTTP Status Code Reason 200 ServiceTemplate retrieved 404 ServiceTemplate not found /ServiceTemplate/{id} DELETE Description Delete Ser
Parameters Parameter Value Description Default Value Parameter Type Data Type id (required) Infrastructure Template Id (String) N/A path string Response Status Codes HTTP Status Code Reason 204 ServiceTemplate deleted 500 Unable to delete ServiceTemplate.
HTTP Status Code Reason 404 Template not found /ServiceTemplate/{id}/copy POST Description Copy a ServiceTemplate Method POST Response Class ServiceTemplate Response Content-Type: application/xml, application/json 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 HTTP Status Code Reason 201 ServiceT
Method POST Response Class ServiceTemplate Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Data Type id (required) Infrastructure Template Id (String) N/A path string Response Status Codes HTTP Status Code Reason 201 Map Service Template to physical resources 400 Invalid Parameters to copy ServiceTemplate or problems with the Resource Adapters 409 Template already exists /ServiceTemplate/device/{deviceId} GET
Parameters Parameter Value Description Default Value Parameter Type Data Type deviceId (required) Device Id (String) N/A path string Response Status Codes HTTP Status Code Reason 200 ServiceTemplate retrieved 404 ServiceTemplate not found /ServiceTemplate/export POST Description Export a ServiceTemplate Method POST Response Class ServiceTemplate Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Data Type bo
Response Status Codes HTTP Status Code Reason 201 ServiceTemplate exported successfully 400 Invalid Parameters to copy ServiceTemplate or problems with the Resource Adapters 404 Template not found /ServiceTemplate/upload POST Description Upload a ServiceTemplate Method POST Response Class ServiceTemplate Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Data Type body N/A Service Template upload request N/A body
Response Class ServiceTemplate Response Content-Type: application/xml, application/json Parameters Parameter Value Description Default Value Parameter Type Data Type body N/A Service Template upload request N/A body ServiceTemplat eUploadReques t Response Status Codes HTTP Status Code Reason 201 ServiceTemplate uploaded successfully 400 Invalid Parameters to upload template /Timezone/ GET Description Retrieve ASM appliance timezone Method GET Response Class timeZone Response Content-Typ
/Timezone/ PUT Description Sets the appliance timezone Method PUT Response Class Response Response Content-Type: application/json, application/xml 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 HTTP Status Code Reason 200 ASM appliance timezone set successfully.
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 HTTP Status Code Reason 200 Available timezones list retrieved successfully.
Appendix B - Model Reference asmCredential Name: asmCredential Property Name Property Type Required references references false credential credential true link Link false AsmDetailedMessage Name: AsmDetailedMessage Property Name Property Type Required severity string false messageBundle string false sequenceNumber integer false timeStamp string false category string false correlationId string false displayMessage string false messageCode string false agentId string f
AsmDetailedMessageList Name: AsmDetailedMessageList Property Name Property Type Required messages [AsmDetailedMessage] false AuthenticateRequest Name: AuthenticateRequest Property Name Property Type Required userName string false domain string false password string false AuthenticateResponse Name: AuthenticateResponse Property Name Property Type Required userName string true apiSecret string true domain string true role string true apiKey string true availableTimeZones Na
Chassis Name: Chassis Property Name Property Type Required defaultPowerCapUpperBoundWa integer tts false defaultPowerCapUpperBoundBT U integer false powerSupplies [ChassisPowerSupply] false kVMs [IKVM] false model string false deviceId string false managementIPStatic boolean false credentialRefId string false assetTag string false health Health false defaultPowerCapLowerBoundWa integer tts false defaultPowerCapLowerBoundBT U integer false midPlaneVersion string false
Property Name Property Type Required powerCapPercent integer false name string false servers [Server] false lastUpdateTime GregorianCalendar false deviceType string false refId string false displayName string false url Link false refType string false Property Name Property Type Required controllerPrimary boolean false controllerFWVersion string false controllerName string false controllerPresent boolean false id string false Property Name Property Type Requi
ChassisPowerSupply Name: ChassisPowerSupply Property Name Property Type Required present boolean false capacity string false powerStatus string false id string false slot string false Property Name Property Type Required values ["minimum", "maximum", "exact"] ComparatorValue Enum: ComparatorValue CompliantState Enum: CompliantState Property Name Property Type values ["NA", "compliant", "noncompliant", "unknown", "updaterequired"] Required component Name: component Property Name
Property Name Property Type Required refId string false cloned boolean false clonedFromId string false helpText string false manageFirmware boolean false asmGUID string false puppetCertName string false relatedComponents Map,string> false teardown boolean false name string false resources [ServiceTemplateCategory] false id string false type ServiceTemplateComponentType false serialNumber string false iP string false Property Name Property Type Required domai
credentialList Name: credentialList Property Name Property Type Required totalRecords integer false credentialList [asmCredential] false Property Name Property Type Required updatedDate GregorianCalendar false createdDate GregorianCalendar false updatedBy string false jobDetails [logEntry ] false canMigrate boolean false canScaleupStorage boolean false canScaleupNetwork boolean false canScaleupServer boolean false canScaleupVM boolean false canDeleteResources boolean
Property Name Property Type Required assignedUsers [User] false vms [VM] false deploymentDevice [DeploymentDevice] false deploymentName string false scheduleDate string false numberOfDeployments integer false deploymentDescription string false firmwareRepositoryId string false updateServerFirmware boolean false teardown boolean false individualTeardown boolean false retry boolean false id string false owner string false status DeploymentStatusType false create
DeploymentFilterResponse Name: DeploymentFilterResponse Property Name Property Type Required numberRequestedServers integer false numberSelectedServers integer false failedPoolName string false selectedServers [SelectedServer] false rejectedServers [ RejectedServer] false failedPoolId string false DeploymentStatusType Enum: DeploymentStatusType Property Name Property Type values ["Pending", "In progress", "Complete", "Error", "Cancelled"] Required DeviceDiscoveryRequest Name: Devic
Property Name Property Type Required deviceEndIp string false deviceBMCServerCredRef string false deviceType DeviceType false unmanaged boolean false DeviceDiscoveryRequests Name: DeviceDiscoveryRequests Property Name Property Type Required discoverIpRangeDeviceRequests [ DeviceDiscoveryRequest] false Property Name Property Type Required updatedDate GregorianCalendar false createdDate GregorianCalendar false updatedBy string false groupDescription string false groupUserLi
Property Name Property Type Required totalCount integer false deviceGroup [ DeviceGroup] true Property Name Property Type Required values ["green", "yellow", "red", "unknown"] DeviceHealth Enum: DeviceHealth DeviceState Enum: DeviceState Property Name Property Type values ["Discovered", "Updating", "Configuration Error", "Pending Configuration Template", "Pending Delete", "Pending", "Ready", "Discovery Failed", "Delete Failed", "Deleted", "Offline", "Deployed", "Deploying", "unmanaged"] R
Property Name Property Type Required "Unknown", "BMC", "Chassis FX2", "FX2 Sled"] dhcpSettings Name: dhcpSettings Property Name Property Type Required enabled boolean false domain string false startingIpAddress string false endingIpAddress string false defaultLeaseTime integer false maxLeaseTime integer false dns string false gateway string false subnet string false netmask string false DiscoverDeviceType Enum: DiscoverDeviceType Property Name Property Type values ["I
DiscoveredDevices Name: DiscoveredDevices Property Name Property Type Required config string false parentJobId string true deviceRefId string true firmwareDeviceInventories [ FirmwareDeviceInventory] false statusMessage string false model string false serverType string false deviceType DeviceType false unmanaged boolean false refId string true healthState string false healthStatusMessage string false facts string false iomCount integer false ipAddress string tr
DiscoveryRequest Name: DiscoveryRequest Property Name Property Type Required statusMessage string false discoveryRequestList DeviceDiscoveryRequests false devices [ DiscoveredDevices] false totalCount integer false id string true link Link false status DiscoveryStatus false Property Name Property Type Required config string false parentJobId string false deviceRefId string false firmwareDeviceInventories [ FirmwareDeviceInventory] false statusMessage string false mo
Property Name Property Type Required serverCount integer false systemId string false status DiscoveryStatus false refType string false jobId string false vendor string false Property Name Property Type Required values ["Pending", "Connected", "Unsupported", "Inprogress", "Success", "Failed to discover", "Error discovering"] DiscoveryStatus Enum: DiscoveryStatus DiskMediaType Enum: DiskMediaType Property Name Property Type values ["requiressd", "requirehdd", "any"] Required Fa
Property Name Property Type Required interfaces [Interface] false id string false FirmwareComplianceComponents Name: FirmwareComplianceComponents Property Name Property Type Required embeddedRepoComponents [SoftwareComponent] false defaultRepoComponents [SoftwareComponent] false compliantState CompliantState false FirmwareDeviceInventory Name: FirmwareDeviceInventory Property Name Property Type Required subvendorID string false subdeviceID string false componentID string fals
Property Name Property Type Required systemId string false version string false lastUpdateTime string false jobId string false Property Name Property Type Required subvendorID string false bPresent boolean false updateable boolean false firmwareId string false subdeviceID string false componentID string false vendorID string false deviceID string false deviceRef string false fqdd string false componentType string false name string false version string
Property Name Property Type Required createdDate string false softwareBundles [SoftwareBundle] false downloadStatus RepositoryStatus false sourceType string false updatedBy string false md5Hash string false sourceLocation string false softwareComponents [ SoftwareComponent ] false diskLocation string false bundleCount integer false defaultCatalog boolean false name string false id string false username string false filename string false password string false
GregorianCalendar Name: GregorianCalendar Property Name Property Type Required value string true Property Name Property Type Required enabled boolean false userName string false userSeqId integer true firstName string false lastName string false role string true Property Name Property Type Required totalRecords integer false groupUsers [GroupUser] false Property Name Property Type Required values ["GREEN", "YELLOW", "RED", "UNKNOWN"] GroupUser Name: GroupUser GroupU
IKVM Name: IKVM Property Name Property Type Required present boolean false partNumber string false manufacturer string false firmwareVersion string false name string false id string false Property Name Property Type Required enabled boolean false partitioned boolean false usedforfc boolean false redundancy boolean false partitions [Partition] false nictype string false name string false interfaces [Interface] false id string false Interface Name: Interface
Property Name Property Type Required model string false managementIPStatic boolean false health Health false managementIP string false serviceTag string false location [IOMLocationType] false id string false slot integer false supported boolean false Property Name Property Type Required values ["A1", "A2", "B1", "B2", "C1", "C2", "UNKNOWN"] IOMLocationType Enum: IOMLocationType IpRange Name: IpRange Property Name Property Type Required endingIp string true startingI
Property Name Property Type Required href string true title string false rel string true type string false Property Name Property Type Required empty boolean false Property Name Property Type Required componentId string false executionId string false message string false timestamp string false level string false Property Name Property Type Required values ["Normal", "Warning", "Critical", "Unknown"] List Name: List logEntry Name: logEntry LogSeverity Enum: LogSe
ManagedDevice Name: ManagedDevice Property Name Property Type Required config string false failuresCount integer false firmwareUpdateTime string false firmwareDeviceInventories [FirmwareDeviceInventory] false statusMessage DeviceState false manufacturer string false cpuType string false healthMessage string false infraTemplateDate GregorianCalendar false infraTemplateId string false serverTemplateDate GregorianCalendar false serverTemplateId string false inventoryDate
Property Name Property Type Required compliance CompliantState false deviceGroupList DeviceGroupList false credId string false state DeviceState false systemId string false refType string false Property Name Property Type Required serverList string false poolList string false autoMigrate boolean false Property Name Property Type Required description string false vlanId integer false staticNetworkConfiguration StaticNetworkConfiguration false name string false
Property Name Property Type Required allUsedInterfaces [Interface] false usedInterfaces [Interface] false servertype string false fabrics [Fabric] false interfaces [Interface] false id string false Property Name Property Type Required preferredNTPServer string false secondaryNTPServer string false Property Name Property Type Required maximum integer false minimum integer false lanMacAddress string false iscsiIQN string false networks string false networkObject
proxySettings Name: proxySettings Property Name Property Type Required enabled boolean false userName string false userCredentialEnabled boolean false proxyServer string false port string false password string false Property Name Property Type Required hddHotSpares string false ssdHotSpares string false virtualDisks [VirtualDisk] false Property Name Property Type Required values ["RAID", "BAD_STATE", "NIC_CAPS", "SD_NOT_PRESENT", "BAD_RACK_SERVER_MODEL", "BAD_BLADE_SERVE
references Name: references Property Name Property Type Required policies integer false devices integer false totalReferences integer false Property Name Property Type Required reason Reason false refId string false Property Name Property Type Required values ["pending", "copying", "error", "available"] RejectedServer Name: RejectedServer RepositoryStatus Enum: RepositoryStatus SelectedServer Name: SelectedServer Property Name Property Type Required componentId string false
Server Name: Server Property Name Property Type Required slotType ServerSlotType false model string false managementIPStatic boolean false assetTag string false health Health false managementIP string false serviceTag string false slotName string false id string false slot string false supported boolean false Property Name Property Type Required values ["HALF", "FULL", "QUARTER", "UNKNOWN"] ServerSlotType Enum: ServerSlotType ServiceTemplate Name: ServiceTemplate Pr
Property Name Property Type Required updatedBy string false firmwareRepository FirmwareRepository false templateDescription string false wizardPageNumber integer false draft boolean false manageFirmware boolean false allUsersAllowed boolean false assignedUsers [User] false templateName string false templateValid ServiceTemplateValid false templateVersion string false templateLocked boolean false enableApps boolean false enableCluster boolean false enableServer b
ServiceTemplateComponentType Enum: ServiceTemplateComponentType Property Name Property Type values ["CONFIGURATION", "TOR", "STORAGE", "SERVER", "CLUSTER", "VIRTUALMACHINE", "SERVICE", "TEST"] Required ServiceTemplateOption Name: ServiceTemplateOption Property Name Property Type Required dependencyTarget string false dependencyValue string false name string false value string false ServiceTemplateSetting Name: ServiceTemplateSetting Property Name Property Type Required max integer f
Property Name Property Type Required dependencyValue string false raidConfiguration RAIDConfiguration false hideFromTemplate boolean false requiredAtDeployment boolean false value string false id string false type ServiceTemplateSettingType false readOnly boolean false displayName string false group string false options [ServiceTemplateOption] false generated boolean false required boolean false ServiceTemplateSettingType Enum: ServiceTemplateSettingType Property Na
Property Name Property Type Required manageFirmware boolean false assignedUsers [string] false templateName string false useEncPwdFromBackup boolean false firmwarePackageId string false managePermissions boolean false allStandardUsers boolean false content string false category string false ServiceTemplateValid Name: ServiceTemplateValid Property Name Property Type Required valid boolean false messages [AsmDetailedMessage] false Property Name Property Type Required
Property Name Property Type Required deviceModel string false criticality string false name string false id string false version string false link Link false createdBy string false SoftwareComponent Name: SoftwareComponent Property Name Property Type Required updatedDate string false createdDate string false updatedBy string false dellVersion string false componentId string false deviceId string false vendorId string false vendorVersion string false hashMd5
StaticNetworkConfiguration Name: StaticNetworkConfiguration Property Name Property Type Required gateway string false subnet string false ipRange [IpRange] false dnsSuffix string false primaryDns string false secondaryDns string false ipAddress string false Property Name Property Type Required testProxyResult boolean false testProxyDescription string false Property Name Property Type Required timeZoneId string false timeZone string false testProxyResponse Name: test
Property Name Property Type values ["raid0", "raid1", "raid5", "raid6", "raid10", "raid50", "raid60"] Required UpdateType Enum: UpdateType Property Name Property Type values ["SERVICE", "DEVICE"] Required User Name: User Property Name Property Type Required enabled boolean false userName string true updatedDate GregorianCalendar false createdDate GregorianCalendar false updatedBy string false userSeqId integer false updatePassword boolean false domainName string true fir
VirtualDisk Name: VirtualDisk Property Name Property Type Required mediaType MediaType false controller string false raidLevel UIRaidLevel false physicalDisks [string] false configuration VirtualDiskConfiguration false VirtualDiskConfiguration Name: VirtualDiskConfiguration Property Name Property Type Required numberofdisks integer false disktype DiskMediaType false raidlevel UIRaidLevel false id string false comparator ComparatorValue false Property Name Property Type
wizardStatus Name: wizardStatus Property Name Property Type Required isSetupCompleted boolean false showGettingStarted boolean false isDeploymentCompleted boolean false isNetworkCompleted boolean false isTemplateCompleted boolean false isConfigureCompleted boolean false seqId integer false link Link false 112
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.