Requisitions RESTful service to the Horizon Provisioning Requisitions. In this API, these "groups" of nodes are aptly named and treated as requisitions. This current implementation supports CRUD operations for managing provisioning requisitions. Requisitions are first POSTed and no provisioning (import/synchronize) operations are taken. This is done so that a) the XML can be verified and b) so that the operations can happen at a later time. They are moved to the deployed state (put in the active requisition repository) when an import is run. If a request says that it gets the active requisition, that means it returns the pending requisition (being edited for deployment) if there is one, otherwise it returns the deployed requisition. Note that anything that says it adds/deletes/modifies a node, interface, etc. in these instructions is referring to modifying that element from the requisition, not from the database itself. That will happen upon import/synchronization. You may write requisition data if the authenticated user is in the provision, rest, or admin roles. GETs (Reading Data) Resource Description /requisitions Get all active requisitions. /requisitions/count Get the number of active requisitions. (Returns plaintext, rather than XML or JSON.) /requisitions/deployed Get the list of all deployed (active) requisitions. /requisitions/deployed/count Get the number of deployed requisitions. (Returns plaintext, rather than XML or JSON.) /requisitions/{name} Get the active requisition for the given foreign source name. /requisitions/{name}/nodes Get the list of nodes being requisitioned for the given foreign source name. /requisitions/{name}/nodes/{foreignid} Get the node with the given foreign ID for the given foreign source name. /requisitions/{name}/nodes/{foreignid}/interfaces Get the interfaces for the node with the given foreign ID and foreign source name. /requisitions/{name}/nodes/{foreignid}/interfaces/{ipaddress} Get the interface with the given IP for the node with the specified foreign ID and foreign source name. /requisitions/{name}/nodes/{foreignid}/interfaces/{ipaddress}/services Get the services for the interface with the specified IP address, foreign ID, and foreign source name. /requisitions/{name}/nodes/{foreignid}/interfaces/{ipaddress}/services/{service} Get the given service with the specified IP address, foreign ID, and foreign source name. /requisitions/{name}/nodes/{foreignid}/categories Get the categories for the node with the given foreign ID and foreign source name. /requisitions/{name}/nodes/{foreignid}/categories/{categoryname} Get the category with the given name for the node with the specified foreign ID and foreign source name. /requisitions/{name}/nodes/{foreignid}/assets Get the assets for the node with the given foreign ID and foreign source name. /requisitions/{name}/nodes/{foreignid}/assets/{assetname} Get the value of the asset for the given assetName for the node with the given foreign ID and foreign source name. POSTs (Adding Data or Updating Existing Data) Expects JSON/XML. Resource Description /requisitions Adds (or replaces) a requisition. /requisitions/{name}/nodes Adds (or replaces) a node in the specified requisition. This operation can be very helpful when working with large requisitions. /requisitions/{name}/nodes/{foreignid}/interfaces Adds (or replaces) an interface for the given node in the specified requisition. /requisitions/{name}/nodes/{foreignid}/interfaces/{ipaddress}/services Adds (or replaces) a service on the given interface in the specified requisition. /requisitions/{name}/nodes/{foreignid}/categories Adds (or replaces) a category for the given node in the specified requisition. /requisitions/{name}/nodes/{foreignid}/assets Adds (or replaces) an asset for the given node in the specified requisition. PUTs (Modifying Data) Expects form-urlencoded. Resource Description /requisitions/{name}/import Performs an import/synchronize on the specified requisition. This turns the "active" requisition into the "deployed" requisition. /requisitions/{name}/import?rescanExisting=false Similar to the above import command, but existing nodes are not scanned until the next rescan interval. Only newly added/removed nodes are updated. Useful when applying changes to a subset of nodes in a requisition. /requisitions/{name} Update the specified requisition. /requisitions/{name}/nodes/{foreignid} Update the specified node for the given requisition. /requisitions/{name}/nodes/{foreignid}/interfaces/{ipaddress} Update the specified IP address for the given node and requisition. DELETEs (Removing Data) Resource Description /requisitions/{name} Delete the pending requisition for the named foreign source. /requisitions/deployed/{name} Delete the active requisition for the named foreign source. /requisitions/{name}/nodes/{foreignid} Delete the node with the given foreign ID from the given requisition. /requisitions/{name}/nodes/{foreignid}/interfaces/{ipaddress} Delete the IP address from the requisitioned node with the given foreign ID. /requisitions/{name}/nodes/{foreignid}/interfaces/{ipaddress}/services/{service} Delete the service from the requisitioned interface with the given IP address and foreign ID. /requisitions/{name}/nodes/{foreignid}/categories/{category} Delete the category from the node with the given foreign ID. /requisitions/{name}/nodes/{foreignid}/assets/{field} Delete the field from the node’s assets with the given foreign ID and asset name. Perspective Poller Resources API