Approval Workflow Variables for New Requests

This topic provides a list of variables supported in approval and pre-provisioning workflows for new requests. For general information on variables, see Adding Commander Metadata to Workflows With Variables.

If you need a variable that isn't documented, contact support@snowsoftware.com, and if the variable is available, we'll provide you with the variable name. We'll also add it to the list of documented variables in the next release.

New Request Approval Workflows

VariableExpressionDescription
Commander
Directorysystem.directoryDirectory where Commander is installed.
IP Addresssystem.addressThe IP address for the Commander server.
Portsystem.portThe port number used by Commander.
Destination
Region Remote IDdestination.region.remoteIdThe ID of the target region. Populated only when deploying to an AWS or Microsoft Azure.
Input Variables
Input VariableinputVariable['*']The value provided for the module specified input variable
Request
Change in CPUsrequest.changeInCpuCountFor new requests: The difference between the number of CPUs requested and the number of CPUs configured in the service catalog. If using legacy component forms, the requested value is compared to the source template value.

For change requests: The difference between the requested number of CPUs and the actual number of CPUs.

Change in Memoryrequest.changeInMemory.gbFor new requests: The difference between the amount of memory requested and the amount of memory configured in the service catalog, in gigabytes. If using legacy component forms, the requested value is compared to the source template value.

For change requests: The difference between the requested memory and the actual memory, in gigabytes.

Change in Storagerequest.changeInStorage.gbFor new requests: The difference between the amount of storage requested and the amount of storage configured in the service catalog, in gigabytes. If using legacy component forms, the requested value is compared to the source template value.

For change requests: The difference between the requested storage and the actual storage, in gigabytes.

Date Submittedrequest.requestDateThe date when the request was submitted. Value is a date string.
Form Namerequest.form.nameThe name of the service request form.
Request IDrequest.idThe unique identifier for the service request.
Resources Changedrequest.resourcesChangedIndicates whether any of the requested CPU, memory, instance type or storage values differ from the values configured in the service catalog (for new requests) or on the VM (for change requests). Values can be: true, false.
Total CPUs Requestedrequest.cpuCountThe total number of CPUs in a service request; the sum of existing CPUs and any additional CPUs requested.
Total Memory Requestedrequest.memory.gbThe total memory in a service request; the sum of existing memory and any additional memory requested, in gigabytes.
Total Storage Requestedrequest.storage.gbThe total storage in a service request; the sum of existing storage and any additional storage requested, in gigabytes.
Requested Component
Chef Environmentrequest.services[x].components[x].settings.chef.environmentThe Chef environment set in the service catalog. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service.
Chef Organizationrequest.services[x].components[x].settings.chef.organizationThe Chef organization set in the service catalog. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service.
Chef Recipesrequest.services[x].components[x].settings.chef.recipesA comma-separated list of Chef recipes. Includes default values set in the service catalog and those specified by the user on the request form. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service.
Chef Rolesrequest.services[x].components[x].settings.chef.rolesA comma-separated list of Chef roles. Includes default values set in the service catalog and those specified by the user on the request form. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service.
Chef Run-Listrequest.services[x].components[x].settings.chef.runlistA comma-separated list of Chef roles and Chef recipes as specified in the Run-List. Includes default values set in the service catalog and those specified by the user on the request form. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service.
CPU Countrequest.services[x].components[x].settings.cpuCountThe CPU count of the VM, if changed. A value of -1 indicates that the value is the same as set on the source service. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service.
Descriptionrequest.services[x].components[x].descriptionDescription of the component in the service catalog. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service.
Dynamic Listrequest.services[x].components[x].settings.dynamicList['*']The value of the specified dynamic list from the request. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service. Replace * with the name of the dynamic list.
Input Fieldrequest.services[x].components[x].settings.inputField['*']The value of the specified input text field from the request. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service. Replace * with the name of the input text field.
Instance Type IDrequest.services[x].components[x].settings.instanceType.remoteIdThe instance type ID (for example, t1.micro, m3.2xlarge). Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service.
Key Pairrequest.services[x].components[x].settings.keyPair.nameThe name of the requested key pair. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service.
Memoryrequest.services[x].components[x].settings.memory.gbThe amount of memory of the VM, in GB, if changed. A value of -1 indicates that the value is the same as set in the service catalog (or on the source template, for legacy component forms). Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service.
Network Adapter Countrequest.services[x].components[x].settings.nicCountThe number of network adapters requested. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service.
Primary Owner Emailrequest.services[x].components[x].primaryOwner.emailThe email address of the primary owner. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service.
Published Component Namerequest.services[x].components[x].publishedNameThe published name of the component in the service catalog. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service.
Puppet Classesrequest.services[x].components[x].settings.puppet.classesA comma-separated list of Puppet classes. Includes default values set in the service catalog and those specified by the user on the request form. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service.
Puppet Environmentrequest.services[x].components[x].settings.puppet.environmentThe Puppet environment set in the service catalog. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service.
Puppet Groupsrequest.services[x].components[x].settings.puppet.groupsA comma-separated list of Puppet groups. Includes default values set in the service catalog and those specified by the user on the request form. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service.
Requested Component Namerequest.services[x].components[x].settings.componentNameThe requested name for the VM as specified by the user on the request form. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service.
Total Storagerequest.services[x].components[x].settings.storage.gbThe total of all storage requested plus existing storage, in gigabytes. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service.
Uploaded Filerequest.services[x].components[x].settings.uploadedFile['*']The name(s) of the specified uploaded file(s) from the request. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service. Replace * with the display label of the File Upload control.
Uploaded File Contentrequest.services[x].components[x].settings.uploadedFile['*'].file[x].contentThe content of the file for an File Upload control in the request. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service, or the second file in the File Upload control. Replace * with the name of the File Upload control.
Uploaded File Namerequest.services[x].components[x].settings.uploadedFile['*'].file[x].fileNameThe filename for an File Upload control in the request. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service, or the second file in the File Upload control. Replace * with the name of the File Upload control.
Requested Component Custom Attributes
Custom Attributerequest.services[x].components[x].settings.customAttribute['*']The value of the specified custom attribute from the request. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service. Replace * with the name of the custom attribute.
Requested Service
Descriptionrequest.services[x].descriptionDescription of the service in the service catalog. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request.
Destinationrequest.services[x].settings.destination.nameThe name of the requested destination. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request.
Dynamic Listrequest.services[x].settings.dynamicList['*']Value of the specified dynamic list from the request. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request. Replace * with the name of the dynamic list.
Expiry Daterequest.services[x].settings.expiryDateThe date set for the service to expire. Values can be: Date, No Expiry Date Set, Never Expires. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request.
Input Fieldrequest.services[x].settings.inputField['*']Value of the specified input text field from the request. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request. Replace * with the name of the input text field.
Primary Owner Emailrequest.services[x].settings.primaryOwner.emailThe email address of the primary owner. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request.
Published Service Namerequest.services[x].publishedNameThe published name of the service in the service catalog. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request.
Service Typerequest.services[x].typeThe type of service: "SERVICE" for a regular service or "SHARED_IMAGE" for a shared service. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request.
Total CPUsrequest.services[x].settings.cpuCountThe total number of CPUs requested. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request.
Total Memoryrequest.services[x].settings.memory.gbThe total amount of memory requested, in gigabytes. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request.
Total Storagerequest.services[x].settings.storage.gbThe total storage requested, in gigabytes. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request.
Uploaded Filerequest.services[x].settings.uploadedFile['*']The name(s) of the specified uploaded file(s) from the request. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request. Replace * with the display label of the File Upload control.
Uploaded File Contentrequest.services[x].settings.uploadedFile['*'].file[x].contentThe content of the file for an File Upload control in the request. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second file in the File Upload control. Replace * with the name of the File Upload control.
Uploaded File Namerequest.services[x].settings.uploadedFile['*'].file[x].fileNameThe filename for an File Upload control in the request. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second file in the File Upload control. Replace * with the name of the File Upload control.
Requested Service Cost
Dailyrequest.cost.dailyThe daily estimated cost for the requested service.
Daily Markuprequest.cost.markup.dailyThe daily estimated markup/discount cost for the requested service.
Monthlyrequest.cost.monthlyThe monthly estimated cost for the requested service.
Monthly Markuprequest.cost.markup.monthlyThe monthly estimated markup/discount cost for the requested service.
Quarterlyrequest.cost.quarterlyThe quarterly estimated cost for the requested service.
Quarterly Markuprequest.cost.markup.quarterlyThe quarterly estimated markup/discount cost for the requested service.
Weeklyrequest.cost.weeklyThe weekly estimated cost for the requested service.
Weekly Markuprequest.cost.markup.weeklyThe weekly estimated markup/discount cost for the requested service.
Yearlyrequest.cost.yearlyThe yearly estimated cost for the requested service.
Yearly Markuprequest.cost.markup.yearlyThe yearly estimated markup/discount cost for the requested service.
Requested Service Custom Attributes
Custom Attributerequest.services[x].settings.customAttribute['*']Value of the specified custom attribute from the request. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request. Replace * with the name of the custom attribute.
Requester
Organization Contact Emailsrequest.requester.organization.emailA comma-separated list of email addresses of the organization's primary contact(s). Supported in the Address List field. If the Organization element is not on the request form, returns the requester's organization.
Organization Namerequest.requester.organization.nameThe organization of the user requesting the VM.
Parent Organization Contact Emailsrequest.requester.parentOrganization.emailA comma-separated list of email addresses for the parent organization's primary contacts. Supported in the Address List field. If the Organization element is not on the request form, the variable returns the requester's organization. The parent organization is determined by the selected organization or the requester's organization.
Parent Organization Namerequest.requester.parentOrganization.nameThe parent organization of the user requesting the VM.
Requester Emailrequest.requester.emailThe email address of the requester.
Requester Full Namerequest.requester.nameThe full name of the requester.
Requester UserIdrequest.requester.userIdThe user ID of the requesting user.
Workflow
Exit Codesteps[x].exitCodeReturns the exit code of the specified Execute Script step in the current workflow. Replace the x with either a step number or step name. For example, #{steps[1].exitCode} returns the exit code from the first step in the workflow. If using a step name, enclose the step name in single quotation marks.
Outputsteps[x].outputReturns the output of the specified Execute Script step in the current workflow. Replace the x with either a step number or step name. For example, #{steps[1].output} returns the output from the first step in the workflow. If using a step name, enclose the step name in single quotation marks.
Skippedsteps[x].skippedIndicates whether the specified step was skipped. Returns true if the specified step number was skipped; false otherwise. Replace the x with either a step number or step name. For example, #{steps[1].skipped} returns false if Step 1 in the current workflow executed successfully. If using a step name, enclose the step name in single quotation marks.
Workflow IDworkflowIdThe Unique ID of the workflow this step is part of

New Request Approval Workflows: Address List Field Only

VariableExpressionDescription
Input Variables
Input VariableinputVariable['*']The value provided for the module specified input variable
Requested Component
Primary Owner Emailrequest.services[x].components[x].primaryOwner.emailThe email address of the primary owner. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service.
Requested Component Custom Attributes
Custom Attributerequest.services[x].components[x].settings.customAttribute['*']The value of the specified custom attribute from the request. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request, or the second component in the service. Replace * with the name of the custom attribute.
Requested Service
Primary Owner Emailrequest.services[x].settings.primaryOwner.emailThe email address of the primary owner. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request.
Requested Service Custom Attributes
Custom Attributerequest.services[x].settings.customAttribute['*']Value of the specified custom attribute from the request. Replace [x] with a number starting with [1]; for example, [2] represents the second service in the request. Replace * with the name of the custom attribute.
Requester
Organization Contact Emailsrequest.requester.organization.emailA comma-separated list of email addresses of the organization's primary contact(s). Supported in the Address List field. If the Organization element is not on the request form, returns the requester's organization.
Parent Organization Contact Emailsrequest.requester.parentOrganization.emailA comma-separated list of email addresses for the parent organization's primary contacts. Supported in the Address List field. If the Organization element is not on the request form, the variable returns the requester's organization. The parent organization is determined by the selected organization or the requester's organization.
Requester Emailrequest.requester.emailThe email address of the requester.
Workflow
Outputsteps[x].outputReturns the output of the specified Execute Script step in the current workflow. Replace the x with either a step number or step name. For example, #{steps[1].output} returns the output from the first step in the workflow. If using a step name, enclose the step name in single quotation marks.