Using the CloudBees Flow DSL

95 minute readReference

The CloudBees Flow domain-specific language (DSL) is an intuitive, easy-to-use computer language that allows you to model continuous delivery (CD) and Application Release Automation (ARA) solutions. It has these capabilities:

  • Easy to understand

  • Self documenting

  • Automation-as-code: define your processes as high-level code that can be versioned, tested, and reused.

  • User-defined versions for any object, supporting various means of code reuse.

  • Simple, logical constructs to model any CloudBees Flow object.

  • Groovy-based syntax

Why Use DSL?

CloudBees Flow DSL is the easiest of the CloudBees Flow programming constructs to use.

The following is a comparison of DSL (the easiest to use) and Perl scripts (the most difficult to use):

DSL Perl

Declarative (what)

Script-based, imperative (how)

Concise

Relatively verbose

Understanding of Groovy not needed to read DSL.

Understanding of Perl required.

The entire DSL script is sent only once to the server for evaluation, reducing client-server chattiness.

Each API invocation is separate call to the server, creating client-server chattiness.

The following examples show the helloProcedure in both DSL and Perl along with corresponding CloudBees Flow invocation to run the script.

DSL Perl
project "Hello Project", {
    procedure "Hello Procedure", {
    step "Hello World",
    command: "echo 'Hello World
                 from CloudBees DSL!'"
    }
}
use strict;
use ElectricCommander;
$|=1;
my $ec=new ElectricCommander({'format'=>'json'});
$ec->createProject("Hello Project");
$ec->createProcedure("Hello Project",
              "Hello Procedure");
$ec->createStep("Hello Project",
         "Hello Procedure",
         "echo'Hello World from Perl");

ectool evalDsl --dslFile helloProcedure.dsl

ec-perl helloProcedure.pl

You create scripts to model the CloudBees Flow objects using the DSL methods and let the CloudBees Flow DSL engine take care of invoking the correct API to create or update the object. DSL scripting is based on the Groovy scripting language; however, you do not need to know Groovy in detail to use it.

The benefits of using DSL scripts are:

  • Create one master model or script and run it one or more times for different scenarios to build, test, and deploy your application or microservice by passing different parameter values for evaluating the script.

  • Automate software delivery processes to produce repeatable, scalable, and efficient results.

  • Quickly and easily create and deploy applications or microservices using DSL scripts. Using these scripts enables a higher-order command-line interface (CLI) with richer syntax than the CLI on your system.

  • Quickly learn to create and run DSL to perform specific operations with little to no programming experience. Users do not need to know how to use the CloudBees Flow API or UI to create and deploy an application or microservice.

  • Make continuous delivery and continuous integration possible at scale.

For more information about the CloudBees Flow DSL, go to:

Getting started with DSL

Getting help for DSL methods

To get information on the DSL methods, use the evalDsl --describe argument as follows:

  • Obtaining the complete list of DSL methods for CloudBees Flow objects:

    ectool evalDsl dsl --describe 1
  • Obtaining DSL method details for a specific CloudBees Flow object, such as application :

    ectool evalDsl application --describe 1

    Or a microservice :

    ectool evalDsl service --describe 1
  • Obtaining details for a specific API, such as getProcedure :

    ectool evalDsl getProcedure --describe 1

Running DSL

You can evaluate a DSL script in one of these ways:

  • From the command-line interface

  • Using the RESTful API

  • From a step command

From the command-line interface

Use the evalDsl command to evaluate and run a DSL script. See the command evalDsl for a list of the supported arguments.

These ectool examples show how to evaluate a DSL script.

  • When specifying the DSL text, enter ectool evalDsl <dsl>. For example:

    ectool evalDsl "project 'My WAR file' "
  • When specifying the path to the DSL script on the client, enter evalDsl --dslFile <dslFile>. For example:

    ectool evalDsl --dslFile c:/dslScripts/myWarFile.dsl

Using the RESTful API

Go to https://<cloudbees-flow-server>/rest/doc/v1.0/, where <cloudbees-flow-server> is the host name or IP address of the CloudBees Flow server.

  1. Select the /server/dsl method from the server group and click Try it out.

  2. Set request to evalDsl and enter the DSL script to evaluate in the dsl field.

  3. Scroll down past all the parameters and click Execute.

The response appears in the Responses area and includes the original request along with the response body.

Request:
https://<CloudBees-flow-server>/rest/v1.0/server/dsl?request=evalDsl&dsl=project%20'ProjectTwo'
Response:
{ "project": { "projectId": "c69d55fc-f05f-11e9-b455-001c42c3ce23", "projectName": "ProjectTwo", "createTime": "2019-10-16T21:56:15.590Z", "lastModifiedBy": "admin", "modifyTime": "2019-10-16T21:56:15.590Z", "owner": "admin", "processCount": "0", "propertySheetId": "c69d7d0e-f05f-11e9-b455-001c42c3ce23", "stageCount": "0", "tracked": "1" } }

From the DSL Editor

The DSL Editor is available from within the visual editors for application, dashboard, environment, environment template, microservice, pipeline, and release objects. It provides a convenient way to view or edit the underlying DSL for the object. Buttons let you toggle between the object editors and the DSL editor.

The DSL editor simplifies the modeling process, because you can run DSL code from the CloudBees Flow Deploy UI rather than using an external IDE or command-line interface via the ` evalDsl` API call.

The following example shows how access the DSL editor from the pipeline editor.

  1. Navigate to the pipeline object list and select a pipeline. The selected pipeline displays in the pipeline editor.

  2. Click the DSL Editor button from the tools bar. The DSL editor opens and displays the DSL for the current pipeline object.

  3. Click the Edit button. The DSL editor opens the DSL for editing.

  4. Make a change to the DSL code and then click OK. Your changes are saved and you are returned to the pipeline editor.

Common Use Cases

Generating DSL for CloudBees Flow objects

To generate a DSL script for an existing CloudBees Flow object, which was created through a Perl API, a REST API, or the UI, enter

ectool generateDsl <path>

where <path> is the path to the CloudBees Flow object for which you want to generate the DSL script.

For example, if you have a resource named local in your CloudBees Flow instance:

  1. Run the following command to redirect the output to a file (for example, myScript.dsl):

    ectool generateDsl /resources/local > myScript.dsl

    This command generates output redirected to the specified file, which looks similar to the following:

    resource 'local', { description = 'Local resource created during installation.' artifactCacheDirectory = null hostName = '192.168.10.10' hostType = 'CONCURRENT' port = '7800' proxyCustomization = null proxyHostName = null proxyProtocol = null repositoryNames = null resourceDisabled = '0' shell = null trusted = '0' useSSL = '1' workspaceName = null zoneName = 'default' }
  2. Use the script file created in the previous steps with the evalDsl command to create or update the resource in CloudBees Flow.

    You can also edit the file to add or update resource attributes before using the script with evalDsl.

    ectool evalDsl --dslFile myScript.dsl

Passing parameters

Create a template script using script parameters instead of hard-coding all the values in the script. You can then invoke the same script with different parameter values each time to create different CloudBees Flow object instances. For example, you could use the following script to create a resource that uses SSL in the secure zone:

zone 'secure' resource() { resourceName = args.resourceName hostName = args.resourceIP hostType = 'CONCURRENT' resourceDisabled = '0' trusted = '1' useSSL = '1' zoneName = 'secure' }

The script has the values args.resourceName and args.resourceIP for the resourceName and hostName resource attributes respectively. These argument or parameter values can be passed from the command line to the DSL script in JSON form using the following command:

For Linux:

ectool evalDsl --dslFile myScript.dsl --parameters '{"resourceName":"MyFirstResource", "resourceIP":"192.168.10.12"}'

For Windows:

ectool evalDsl --dslFile myScript.dsl --parameters "{\"resourceName\":\"MyFirstResource\", \"resourceIP\":\"192.168.10.12\"}"

Note the special handling required on Windows for passing command-line arguments that contain double quotes and spaces. To allow spaces and other special characters in a command-line argument, Windows requires wrapping the value in quotes. Also, if the value itself contains quotes, you must escape those quotes by using a backslash ‘\’. For alternate method for passing parameter values for DSL, see Passing parameters using a file.

Passing parameters using a file

Parameters to a DSL script can be passed using a file that contains the parameters in JSON format as follows:

ectool evalDsl --dslFile myScript.dsl --parametersFile myParams.json

Where the file myParams.json may contain:

{ "resourceName" : "MyFirstResource", "resourceIP" : "192.168.10.12" }

See Passing parameters using a file for details about using parameters in a DSL script.

Specifying contexts

CloudBees Flow DSL supports a simple and intuitive nested structure to represent the logical structure of CloudBees Flow objects. This allows the DSL methods to be evaluated in a specific context, such as with respect to a CloudBees Flow project, application or microservice, or pipeline.

For example, the following is a very simple script that can create an application with an application tier in a project:

// CloudBees Flow DSL engine will create project 'Default' unless it already exists project ('Default') { //'Deploy world' application will be created within 'Default' project unless it already exists application('Deploy world') { //'Web Tier' application tier will be created within 'Deploy world' application unless it already exists applicationTier('Web Tier') } }

Using CloudBees Flow APIs in a DSL script

All CloudBees Flow APIs available through ec-perl ` are available for use in your DSL script with the exception of `publishArtifactVersion and retrieveArtifactVersions. The syntax for invoking a CloudBees Flow API in DSL is as follows:

<methodName> (argumentName1: value1, argumentName2:value2, ... )

For example, the getProcedure API can be invoked as:

def proc = getProcedure (procedureName: 'RunInstances', projectName: 'DeployUtilities')

See CloudBees Flow Perl API Commands for the complete list of API commands.

Understanding transactions in DSL

By default, all operations invoked in a single DSL script run in one transaction. This means that if an error is encountered in the script, the entire script is rolled back. For example, in the following script:

// -- Transaction begins here project ('MyTestProject') application('MyTestApp') { applicationTier('Tier1') { process('Deploy') { processStep('step1', applicationTierName: 'Tier1', processStepType: 'command', errorHandling: 'failProcedure', subproject: '/plugins/EC-Core/project', subprocedure: 'RunCommand', actualParameter: [ shellToUse: 'sh', commandToRun: 'echo hi' ]) } } } // -- Transaction ends here

if an error is encountered while the script creates the process step step1 after creating the process, then the application tier, the application, then the entire transaction is rolled back to avoid a partially created application, application tier, and process. However, as with other CloudBees Flow APIs, if the system considers the error to be retryable (such as a database locking error), then the entire DSL is re-evaluated.

When using certain CloudBees Flow APIs in the DSL script, you must run them in a separate transaction. To do so, enclose the required part of the script in a transaction . For example, if you request a procedure to start in the DSL script and want to monitor its progress in the same script, you must commit the request in a separate transaction before monitoring begins. This lets the system pick up the request for execution. The following example shows how to do so:

// -- Transaction one begins here procedure projectName: ‘Hello Project’, procedureName: ‘testRunProcedure’ def resp // -- Transaction one ends here // -- Transaction two begins here transaction{ // calling the runProcedure in its own transaction // so that the procedure kicks off when this script is // running and we can monitor its progress. resp=runProcedure( projectName: 'Hello Project', procedureName: 'testRunProcedure', actualParameter: [ friend: 'James', ] ) } // -- Transaction two ends here // -- Transaction three begins here // Now let's grab the jobId launched to run the procedure def id=resp.jobId // Let's wait for it to finish def String status='' while(status != "completed") { status=getProperty(propertyName: 'status', jobId: id).value; println "status: $status" sleep (1000) } // -- Transaction three ends here
def resp // Calling the runProcedure in it's own transaction // so that the procedure kicks off when this script is // running and we can monitor its progress. transaction{ resp=runProcedure( projectName: 'Hello Project', procedureName: 'testRunProcedure', actualParameter: [ friend: 'James', ] ) } // Now let's grab the jobId launched to run the procedure def id=resp.jobId // Let's wait for it to finish def String status='' while(status != "completed") { status=getProperty(propertyName: 'status', jobId: id).value; println "status: $status" sleep (1000) }

The above script has three transactions:

  1. Before the transaction block

  2. The transaction block itself within which the procedure run request happens

  3. After the transaction block where it polls for the procedure to complete

When evaluating such a DSL script, whether the script is retried after a retryable error depends on where the error occurs. If it occurs before the transaction block is encountered, then the script is retried. But if it occurs after the transaction block is encountered, then the script is not retried.

Accessing external libraries

You can use external .jar files with DSL. CloudBees Flow DSL is based on Groovy so that you can take advantage of all Groovy and Java capabilities. You can use any Groovy or Java libraries in your DSL script. The libraries can be made available to the CloudBees Flow DSL runtime engine when the DSL script is executed using the serverLibraryPath parameter.

  1. Create a file named httputil.groovy with the following content. The script uses the groovyx.net.http.HTTPBuilder class to make an HTTP GET request.

    import groovyx.net.http.HTTPBuilder import static groovyx.net.http.Method.GET import static groovyx.net.http.ContentType.JSON String url = “http://www.example.com” String uriPath = “/sample-rest-call HTTPBuilder http = new HTTPBuilder(url) http.request(POST, JSON) { uri.path = uriPath send URLENC, content response.success = { resp, reader ->; String jsonResponse = (reader.readLines().join() as String) println new JsonSlurper().parseText(jsonResponse) } response.failure = { resp, reader ->; log.error "Request failed : [URI : ${uriPath}, Status: ${resp.status}]" } response.’401’= {resp ->; println “Status 401 received” }
  2. Create a directory named /opt/dslSamples/lib and make it accessible from the CloudBees Flow server with the following .jar files:

    http-builder-0.6 json-lib-2.3-jdk15.jar xml-resolver-1.2.jar
  3. Evaluate script using the following command:

    ectool evalDsl --dslFile httputil.groovy --serverLibraryPath /opt/dslSamples/lib

    When the DSL is evaluated on the CloudBees Flow server, any .jar files contained in the directory specified for serverLibraryPath will be available to the CloudBees Flow DSL runtime engine.

Any Groovy files and Java class files contained in the directory specified for serverLibraryPath will also be available to the script evaluated by evalDsl. For example, if the directory contains a Groovy class my.sample.dsl.DslUtil in the directory structure my/sample/dsl/DslUtil.groovy, the script can use the Groovy class by importing the class in the script as with any other class.

Debugging DSL scripts

You can use debug logging as well as the println method for debugging DSL scripts.

Using debug logging

You can use the debug argument to return debug messages in the evalDsl response for your script while it is evaluated by the CloudBees Flow DSL engine. These messages are useful for debugging DSL scripts. For example:

ectool evalDsl --dslFile myScript.dsl --debug 1

or

ectool evalDsl "project 'My WAR file'" --debug 1
Using the println method

You can use the standard Groovy println method in your DSL script to print messages to the client console while it is evaluated by the CloudBees Flow DSL engine. The line numbers for lines that produced println output are included. For example, entering ectool evalDsl --dslFile myfile.dsl, where myfile.dsl contains:

def result for (int i =0; i< 10; i++) { println 'Creating project: ' + 'ABTest-' + i result = project 'ABTest-' + i, resourceName: 'res1' } result

returns the following output:

<response requestId="1" nodeId="10.0.1.15"> <value> Result: project[name=ABTest-9,id=7777e4ff-7941-11e6-94c1-34e6d71279c8] Console output: Line 0003: [OUT] Creating project: ABTest-0 Line 0003: [OUT] Creating project: ABTest-1 Line 0003: [OUT] Creating project: ABTest-2 Line 0003: [OUT] Creating project: ABTest-3 Line 0003: [OUT] Creating project: ABTest-4 Line 0003: [OUT] Creating project: ABTest-5 Line 0003: [OUT] Creating project: ABTest-6 Line 0003: [OUT] Creating project: ABTest-7 Line 0003: [OUT] Creating project: ABTest-8 Line 0003: [OUT] Creating project: ABTest-9 </value> </response>

If you also use the debug argument , the println output is interleaved with the debug logging to the console. The line numbers for lines that produced println output and debug logging are included. The println output is similarly interleaved with debug logging for exceptions where the debug logs are returned in the evalDsl response. For example, entering ectool evalDsl --dslFile myfile_that_throws_exception.dsl --debug 1, where myfile_that_throws_exception.dsl contains:

project 'printingInInvalidDsl' println("Causing NPE now..") def a a.name //will cause NPE println("Should not print")

returns the following output:

ectool error [InvalidScript]: Unknown exception during DSL eval at line 4: Cannot get property 'name' on null object Line 0001: DSL method 'project' Line 0001: Checking if project exists with args {projectName=printingInInvalidDsl} Line 0001: project exists: false Line 0001: Invoking 'createProject' with args {projectName=printingInInvalidDsl} Line 0001: Done invoking 'createProject' Line 0002: [OUT] Causing NPE now.. Details: Cannot get property 'name' on null object

Generating DSL Scripts

There are two ways to generate DSL scripts, based on your needs:

  • Through the object editor: best for single objects

  • Through the Export DSL service catalog item: best for object hierarchies

Single Objects

Via UI

You can export any object such as a pipeline, application or microservice, environments, release, and so on, to a DSL file to represent its definition as code. You can then store the file in a source code repository of your choice.

The DSL-based representation of any object lets you recreate that state of the object at any point. For example, let’s say you have a pipeline named Heatclinic pipeline DSL and you want to be able to recreate its current state at any point in the future. Using the DSL Export feature, you can export the current definition for this pipeline as code to a DSL file.

Then check this version of the DSL file into your source code repository. This DSL file has all the details of the pipeline stages, gates, and tasks. It also retains references to the snapshots used for deployments in various stages of this pipeline. Snapshots capture references to the exact versions of the artifacts, configurations, and so on. This lets you recreate this exact state of the pipeline at any point in the future for various scenarios. To do so, you check out that DSL file and execute that DSL using either the evalDsl API or even using the DSL editor from the UI. Running this DSL recreates the pipeline as it was when this DSL file was created.

While this example showcases pipeline objects, the DSL export functionality is available from most CloudBees Flow objects.

This method is limited to the following object types: Applications, microservices, environments, master components, environment and resource templates, reports, releases, and pipelines.

Via API

Use the ectool generateDsl <path> [optionals] API command to generate an XML file representing the contents of a CloudBees Flow object. See the generateDsl command for full syntax and examples.

Object Hierarchy

Via UI

To generate DSL scripts representing the contents of an entire CloudBees Flow object structure including all nested objects, parameters, and custom properties, use the Export DSL service catalog item available with the CloudBees Flow UI. This method is available for all Flow object types.

The scripts are organized in a file structure suitable for importing back into the object structure. In this way, you can use the corresponding Import DSL service catalog item to easily create new objects based on the existing object structure or to override the original object structure.

DSL Automation as Code

DSL automation as code refers to the end-to-end process, or round-trip capability, of maintaining the domain specific language (DSL) representation of CloudBees Flow objects in a nested file structure. It is available for all CloudBees Flow objects.

Topics in this section:

Access this round-trip capability from the Flow UI via the Export DSL and Import DSL service catalog items.

dsl sc item

Navigate to the catalog items as follows:

  • Click the Service Catalog tab in the topmost CloudBees Flow banner.

  • Select DSL from the All Catalogs pull down in the upper right of the service catalog landing page.

From here, you access the Export DSL and Import DSL catalog items.

Example: Copying a Pipeline

This example shows how to copy an existing pipeline from an established project to a new project.

Consider the pipeline below, both the visual representation on the left and the file hierarchy on the right.

└───projects
    └───ProjectProto
        │   project.dsl
        │
        └───pipelines
            ├───PipelineA
            │   │   pipeline.dsl
            │   │
            │   └───stages
            │       └───Stage 1
            │           └───tasks
            │                   Task 2.cmd
            │
            └───PipelineB
                    pipeline.dsl
  • Export the pipeline: Use the Export DSL catalog item to create the DSL representation of the object hierarchy.

On the first part of the UI enter:

  • Resource: the resource on which to export the DSL. Enter a resource name from the Main Menu > Resources list. Here, `local ` is used to indicate the Flow server system itself.

  • Directory Path: the directory path on Resource into which DSL is exported. In this case C:/DSLorig.

  • Object Type, select the top-level object type. In this case, Project.

  • Project: select the source project. In this case, ProjectProto is the project housing the pipeline.

  • Then, set options as detailed below, noting required options important for this example.

    Option Setting Notes

    Options for Exporting DSL

    Suppress Nulls

    checked

    Optional. Checking this option reduces bulk of resulting DSL file.

    Suppress Defaults

    checked

    Optional. Checking this option reduces bulk of resulting DSL file.

    Suppress Parent

    checked

    Required. This suppresses information about the top-level project. Checking this creates a project-agnostic DSL file.

    Include ACLs

    as required

    Optional. Include access control lists as required.

    Options for Child Objects

    Include All Child Objects

    unchecked

    Required. Uncheck in order to restrict export just to pipelines.

    Child Object Types to Include

    pipelines

    Required. Export just pipelines to DSL file.

    Include all Child Objects in a Single DSL File

    unchecked

    Required. Export into a single DSL file.

    Child Object Types to Export to Separate DSL files

    pipelines

    All pipeline information is exported to separate files in order to aide in cherry picking files connected with pipeline to be copied.

    • Create a new folder representing the project into which you copy the PipelineA file hierarchy, and copy the files, highlighted in violet. In this example, C:/DSLtest/projects/MyNewProject is the folder representing the new project.

      C:DSLorig
      └───projects
          └───ProjectProto
              │   project.groovy
              │
              └───pipelines
                  ├───PipelineA
                  │   │   pipeline.dsl
                  │   │
                  │   └───stages
                  │       └───Stage 1
                  │           └───tasks
                  │                   Task 2.cmd
                  │
                  └───PipelineB
                          pipeline.dsl
      C:DSLtest
      └───projects
          └───MyNewProject
              └───pipelines
                  └───PipelineA
                      │   pipeline.dsl
                      │
                      └───stages
                          └───Stage 1
                              └───tasks
                                      Task 2.cmd
    • Import the pipeline: Use the ImportDSL catalog item to import PipelineA copy into project MyProject. Enter the resource name and directory path to the DSL hierarchy. In this case, local ` and `C:/DSLtest are entered, respectively. Click OK ; the Job Details page displays ongoing status during the import.

    • View the new pipeline:

Using the Export DSL Catalog Item

Use the Export DSL catalog item to create the DSL representation of the object hierarchy. With this UI, you specify details about the top-level object and desired nested objects you wish to export to the file system. By default, the DSL is exported into separate files in a directory tree representing the object hierarchy, for ease of editing and management.

Click the Export button on the Export DSL tile to get started–the New Export DSL dialog displays. Refer to the table below for configuration details. When finished, click OK to save your preferences and initiate the export.

Label Description

Resource Name

(Required) The resource where the DSL files are to be written. Enter a resource name from the Main Menu > Resources list.

Directory Path

(Required) The directory on the resource where the DSL files are to be written. In cluster mode, and as an overall best practice, specify a path on a shared drive.

Object Type

(Required) The top-level object type of the exported DSL hierarchy. Choose one from the dropdown.

<object name>

(Required) The specific top-level object name The label and contents of this pull down is context sensitive based on the Object Type.

Options for Exporting DSL

These options control what is emitted in the exported DSL for each child object.

Suppress Nulls

Select to exclude fields with null values in the exported DSL.

Suppress Defaults

Select to exclude fields with default values in the exported DSL.

Suppress Parent

Select to exclude the object’s parent references in the exported DSL.

Include ACLs

Select to include the each object’s access control list in the exported DSL.

Options for Child Objects

These options control how the hierarchy is stored in the file structure.

Include All Child Objects

Select to include all child objects in the top-level object hierarchy specified by <object name>.

If not selected, the Child Object Types to Include box opens. Enter a comma-separated list of child object types to include.

Use the describeObjectTypeStructure command to get a list of the hierarchy for a given top-level object type. Peruse the hierarchy for the child object of interest and use its objectType.collectionName as the value to include in the comma-separated list.

Example: pipelines,releases,applications

Include all Child Objects in a Single DSL File

Select to include all child objects into a single DSL file.

If not selected, the Child Object Types to Export to Separate DSL files box opens. Enter a comma-separated list of child object types.

  • Wildcard characters are accepted.

  • Qualify the object as needed to uniquely specify it.

Example: pipelines,procedures.*,applications.applicationTiers.components

See Child Object Lists for more details about specifying lists.

Specifying Child Object Lists

Use information in this section to help you formulate child object lists when you wish to export your objects into separate DSL files. That is, when Include all Child Objects in a Single DSL File is not selected.

Use the describeObjectTypeStructure command to get a list of the hierarchy for a given top-level object type. Peruse the hierarchy for the child object of interest and use its objectType.collectionName as the value to include in the comma-separated list.

For example, to get the hierarchy of child objects for the project top-level type, use:

ectool describeObjectTypeDslStructure --objectType project --topLevelOnly 1

This returns a project object detail and the list of its child objects. Choose any combination of child types and pass them as a comma-separated list. Listing a child type generates DSL for all entities of that type and for all its child entities. Only types listed are included in DSL generation process.

  • Wildcard characters are accepted.

  • Qualify the object as needed to uniquely specify it.

For example:

  • pipelines,releases :

    • Each pipeline and release full hierarchy placed into its own file.

  • pipelines.stages :

    • Each pipeline partial hierarchy down to the stage level placed into its own file.

    • Each stage and all nested hierarchy placed into its own file, nested under its pipeline in the file structure.

  • pipelines.stages.tasks :

    • Each pipeline partial hierarchy down to the stage level placed into its own file.

    • Each stage and task placed into its own file, nested under its pipeline in the file structure.

  • pipelines.* :

    • Each pipeline and every nested component, down to gate tasks and pre and post gate elements, placed under it in its own file, nested under its pipeline in the file structure.

Using the Import DSL Catalog Item

Use the Import DSL catalog item to run the specified domain-specific language script, thus creating a new or overwriting an existing object hierarchy. With this UI, you specify details about the file system location from which the import takes place.

All information at the specified Directory Path is imported, so make sure you have made desired changes to the DSL scripts before you initiate the import. Otherwise, you could unintentionally overwrite your current objects.

Click the Import button on the Import DSL tile to get started. The New Import DSL dialog displays. When finished, click OK to save your preferences.

Label Description

Resource Name

(Required) The resource where the DSL files are read from. Enter a resource name from the Main Menu > Resources list. Specify `local ` to work with a local directory.

Directory Path

(Required) The directory on the resource from which the DSL files are read. In cluster mode, and as an overall best practice, specify a path on a shared drive.

Overwrite

(Required) Select to enable overwrite mode.

  • If the object exists, all attributes and child objects are overwritten by the values in the DSL files.

  • If an existing child object is absent in the imported DSL, it is deleted by the import.

  • If an existing top-level object is absent in the imported DSL, it is not deleted. This applies to top-level children of a project such as applications, pipeline, releases, environments, an so on.

DSL Editor

The DSL Editor is available from within the visual editors for application, dashboard, environment, environment template, microservice, pipeline, and release objects. It provides a convenient way to view or edit the underlying DSL for the object. Buttons let you toggle between the object editors and the DSL editor.

The DSL editor simplifies the modeling process, because you can run DSL code from the CloudBees Flow Deploy UI rather than using an external IDE or command-line interface via the evalDsl API call. The following example shows how access the DSL editor from the pipeline editor.

  1. Navigate to the pipeline object list and select a pipeline. The selected pipeline displays in the pipeline editor.

  2. Select the DSL Editor button from the tools bar. The DSL editor opens in edit mode, displaying the DSL code for the current object.

  3. Make a change to the DSL code and then select the Save button in the upper right corner of the editor pane. Your changes are applied to the object and saved.

  4. Select the Back arrow to return to the pipeline list.

Troubleshooting and FAQs

Troubleshooting

Issue What to Do Links to Related Topics

Get help on the DSL methods

To get the complete list of supported DSL methods, log into ectool, and enter the following command:

ectool evalDsl dsl --describe 1

To get help on a particular DSL method, enter the following command:

ectool evalDsl <dsl_method_name> --describe 1

For example, to get help on the procedure method, enter:

ectool evalDsl procedure --describe 1

For details about logging into ectool as well as login options, see Logging In .

Generating DSL Scripts

The DSL script completes successfully using the evalDsl command; however, the CloudBees Flow objects are not created or updated as expected.

Log into ectool, and use the debug option to trace and debug the script processing as follows:

ectool evalDsl "<code_snippet>" --debug 1

For example, to evaluate the project 'TestProj' code snippet, enter:

ectool evalDsl "project 'TestProj'" --debug 1

The debug option generates debug output that you can use to follow the DSL processing and identify issues with the DSL.

To evaluate a DSL file (rather than a code snippet), enter:

ectool evalDsl --dslFile <file_name> --debug 1

For example, to debug a DSL file named TestDsl, enter:

ectool evalDsl --dslFile TestDsl --debug 1

For details about logging into ectool as well as login options, see Logging In .

FAQs

Answer: CloudBees Flow DSL is a dynamic scripting language to provide a cleaner and much easier syntax for non-technical users to understand. However, the CloudBees Flow Perl API and the REST API are supported as well, and you can continue to use them if they suit your scripting needs.

Answer: Yes, most Groovy constructs such as closures, named arguments, and so on can be used in your DSL script.

Answer: Yes, you can use the generateDsl command to create a DSL script for any CloudBees Flow object.

Command: ectool generateDsl [path]

Example: ectool generateDsl /projects/Default/applications/MyApp

Answer: Use one of the following patterns to define access control for objects in your DSL script. These patterns allow the DSL runtime engine to deterministically find the correct CloudBees Flow object for creating or updating access control entries (ACEs).

  • Access control entries can be nested inside the DSL method of the object for which the access control is being defined. For example, the following script provides the user named " joe " full access to project called Foo .

    project 'Foo', { aclEntry principalName: 'joe', principalType: 'user', readPrivilege: 'allow', modifyPrivilege: 'allow', changePermissionsPrivilege: 'allow' }
  • Use the objectType argument to declare the type of object for which the access control is being defined if the access control method is not enclosed within the DSL method for the object. This can be used to define ACEs for objects such as server and other system objects because they do not have a DSL method similar to other regular objects.

    // Removing any previously set ACL for 'Everyone' deleteAclEntry ( principalType: 'group', principalName: 'Everyone', objectType : 'server', systemObjectName : 'server' ) aclEntry principalName: 'joe', principalType: 'user', objectType : 'server', systemObjectName : 'server', readPrivilege: 'allow', modifyPrivilege: 'allow', changePermissionsPrivilege: 'allow'

    or

    aclEntry principalName: 'joe', principalType: 'user' objectType : 'systemObject', systemObjectName : 'resources', readPrivilege: 'allow', modifyPrivilege: 'allow', changePermissionsPrivilege: 'allow'

Answer: DSL files containing multibyte characters (such as Korean characters) must be encoded in UTF-8 to be CloudBees Flow-compatible. DSL files generated by CloudBees Flow are in UTF-8 by default, but if you are using a file that was created outside of CloudBees Flow, you must ensure that the encoding is in UTF-8.

You can convert the encoding for a DSL file to UTF-8 via a text editor that is capable of doing the conversion (such as Notepad++). To ensure proper encoding you can either:

  • Open the DSL Editor in the CloudBees Flow UI and paste in the file’s contents to see if the characters rendered properly (and then use the text editor to make corrections if needed).

  • Run ectool evalDsl --dslFile <filename>.dsl and check the console output for unexpected char errors (and then use the text editor to make corrections if needed).

DSL Methods

CloudBees Flow supports these DSL methods:

Name Description

acl

An access control list; controls access to domain objects.

An individual access control list entry; allows or denies a privilege on a domain object.

A name/value pair that is passed to a procedure when it is invoked.

Application representation.

Represents a application dependency on other applications or service

A logical grouping of a components that are part of an application and the resources they should be deployed on

Archive Connector.

Encapsulates various metadata about Artifacts.

Encapsulates various metadata about ArtifactVersions.

Self Service dashboard catalog, the container of catalog items.

Self Service dashboard catalog item

Represents a pool of resources on the cloud

A component of an application architecture.

A container which typically encapsulates a microservice.

A username/password stored in the server as encrypted data. Typically used in an agent context to authenticate with a third-party system. The password value is not available in the web context for security reasons, so this object has no getPassword method.

Report dashboard, the container of report widgets.

Data Retention Policy.

Represents an application that will be deployed as part of deployer used in a release

Contains configuration for an application to be deployed in a release

Represents a service that will be deployed as part of deployer used in a release

A DevOps Insight data source object.

Contains information about the configuration used to communicate with an external directory service (LDAP or ActiveDirectory).

Encapsulates all of the mail server configuration information necessary for the Commander server to send an outbound e-mail message.

E-mail notification to be sent when a particular event occurs.

The environment to which an application is deployed.

A map between a service and environment clusters.

The environment template.

The environment template tier belonging to an environment template.

A map to hold mappings between application and an environment template tiers.

A mapping between an application tier and an environment template tier.

The environment tier belonging to an environment.

Encapsulates a microservice configuration

A name and value pair that is passed to create an output parameter on procedure/process/pipeline.

An unbound parameter defined on a procedure, workflow definition, etc.

Tasks container belonging to stage

A secured connection between two zones for sharing or transferring information between the zones.

A group of users.

A resource template hook that stores a reference to a procedure in an ElectricFlow project or plugin project. When a resource template is used to create a resource pool, these procedures are invoked.

job

An instance of a procedure run.

A step in a job.

License data in XML format that describes the usage to which you are entitled.

An api that allows to create or modify notes on an object.

A persona for a user or group.

A persona category.

A persona page.

pipeline representation.

An add-on program used by CloudBees Flow to integrate with third-party tools, custom dashboards, and unique user experiences based on roles.

Container and Service port details

Container for steps that execute some task.

An application or component process.

Represents a dependency between process steps.

A step in an application or component process.

Container for a group of related procedures and schedules.

A custom attribute attached to any CloudBees Flow object. This may be a key, string-value pair or a complex structure, where the value is a reference to a property sheet containing nested properties.

Release object

DevOps Insight Report object

Report object association.

Report object attribute.

Report object type.

Reporting filter.

Encapsulates various metadata about Repositories.

The reservation

Abstract reference to an agent, responsible for running step commands.

A collection of resources with a ordering policy.

A template with the required information to provision and later spin up cloud resources on an on-demand basis.

Represents a rolling deploy phase

SAML Identity Provider Configuration representation

Saml Service Provider Configuration representation

This object is responsible for launching a procedure at some time in the future, possibly on a regular interval.

Search filter representation.

A micro-service that may or may not be made up of multiple containers.

A service account object.

A mapping between a service and an environment cluster.

A mapping between a service and an environment cluster.

Represents a service dependency on other applications or service

Allows to override container definition at the time of application-service mapping

A version of an application or service with specific artifact versions and the state of the application or service at any point in time.

Logical grouping of pipeline tasks

A state definition in a workflow definition. Each workflow can contain one or more states.

A unit of logic that will execute on an agent.

tag

Categorize objects using tags

A representation of task within a stage or gate.

A map to hold mappings between application and an environment tiers.

A mapping between an application tier and an environment tier.

Defines how a workflow must transition from one state to another.

A user object.

Utility resource representation.

Represents a dependency defined on a stage or task.

Dashboard widget

Widget filter override.

A top-level workflow object, which is a container for states, and transitions, and other information defining your workflow.

File system directory in which a JobStep’s logs and often its artifactVersions are stored.

A zone or top-level network created as a way to partition a collection of agents to secure them from use by other groups.

acl

An access control list; controls access to domain objects.

Required Arguments

None.

Optional Arguments

Name Description

applicationName

The name of the application container of the property sheet which owns the property.

applicationTierName

The name of the application tier container of the property sheet which owns the property.

archiveConnectorName

The name of the archive connector of the property sheet which owns the property.

artifactName

The name of the artifact container of the property sheet which owns the property.

artifactVersionName

The name of the artifactVersion container of the property sheet which owns the property.

catalogName

The name of the catalog of the property sheet which owns the property.

clusterName

The name of the cluster which owns property sheet.

componentName

The name of the component container of the property sheet which owns the property.

configName

The name of the emailConfig container that owns the property.

containerName

The name of the container that owns the property.

credentialName

The name of the credential container of the property sheet which owns the property.

dashboardName

The name of the dashboard of the property sheet which owns the property.

dataRetentionPolicyName

The name of the data retention policy of the property sheet which owns the property.

environmentName

The name of the environment container of the property sheet which owns the property.

environmentTemplateName

The name of the environment template container of the property sheet which owns the property.

environmentTemplateTierName

The name of the environment template tier container of the property sheet which owns the property.

environmentTierName

The name of the environment tier container of the property sheet which owns the property.

flowName

The name of the flow container of the property sheet which owns the property.

flowRuntimeId

The primary key or name of the flowRuntime container of the property sheet which owns the property.

flowRuntimeName

The name of the flow runtime container of the property sheet which owns the property.

flowRuntimeStateId

The primary key or name of the flowRuntimeState container of the property sheet which owns the property.

flowRuntimeStateName

The name of the flow state container of the property sheet which owns the property.

flowStateName

The name of the flow state container of the property sheet which owns the property.

flowTransitionName

The name of the flow transition container of the property sheet which owns the property.

gateType

The type of the gate which owns property sheet.

gatewayName

The name of the gateway container of the property sheet.

groupName

The name of the group container of the property sheet which owns the property.

jobId

The primary key or name of the job container of the property sheet which owns the property.

jobStepId

The primary key of the job-step container of the property sheet which owns the property.

kerberosKeytabName

The name of the kerberos keytab.

notifierName

The name of the notifier container of the property sheet which owns the property.

objectId

The object id as returned by FindObjects.

objectType

The type of object protected by the access control

path

Property path string.

personaName

The name of the persona.

pipelineName

The name of the pipeline container of the property sheet which owns the property.

pluginName

The name of the plugin container of the property sheet which owns the property.

procedureName

The name of the procedure container of the property sheet which owns the property.

processName

The name of the process, if the container is a process or process step.

processStepName

The name of the process step, if the container is a process step.

projectName

The name of the project container of the property sheet which owns the property.

propertySheetId

The primary key of the property sheet which owns the property.

releaseName

The name of the release container of the property sheet which owns the property.

reportName

The name of the report of the property sheet which owns the property.

reportObjectTypeName

The name of the report object type of the property sheet which owns the property.

repositoryName

The name of the repository container of the property sheet which owns the property.

resourceName

The name of the resource container of the property sheet which owns the property.

resourcePoolName

The name of the resource pool container of the property sheet which owns the property.

resourceTemplateName

The name of the resource template container of the property sheet which owns the property.

scheduleName

The name of the schedule container of the property sheet.

searchFilterName

The name of the search filter container of the property sheet.

serviceAccountName

Get the name of the service account container of the property sheet

serviceName

The name of the service container of the property sheet.

snapshotName

The name of the snapshot container of the property sheet which owns the property.

stageName

The name of the stage container of the property sheet which owns the property.

stateDefinitionName

The name of the state definition container of the property sheet which owns the property.

stateName

The name of the state container of the property sheet which owns the property.

stepName

The name of the step container of the property sheet which owns the property.

systemObjectName

The system object.

tagName

The name of the tag.

taskName

The name of the task which owns property sheet.

transitionDefinitionName

The name of the transition definition container of the property sheet which owns the property.

transitionName

The name of the transition container of the property sheet which owns the property.

userName

The name of the user container of the property sheet which owns the property.

widgetName

The name of the widget of the property sheet which owns the property.

workflowDefinitionName

The name of the workflow definition container of the property sheet which owns the property.

workflowName

The name of the workflow container of the property sheet which owns the property.

workspaceName

The name of the workspace container of the property sheet.

zoneName

The name of the zone container of the property sheet.

DSL Methods for CloudBees Flow objects that can be nested inside

aclEntry

An individual access control list entry; allows or denies a privilege on a domain object.

Required Arguments

Name Description

principalName

Name of the user or group for this access control entry.

principalType

Type of principal for this access control entry (user or group).

Optional Arguments

Name Description

applicationName

The name of the application container of the property sheet which owns the property.

applicationTierName

The name of the application tier container of the property sheet which owns the property.

archiveConnectorName

The name of the archive connector of the property sheet which owns the property.

artifactName

The name of the artifact container of the property sheet which owns the property.

artifactVersionName

The name of the artifactVersion container of the property sheet which owns the property.

catalogName

The name of the catalog of the property sheet which owns the property.

changePermissionsPrivilege

Determines whether the principal can modify access control for the object.

clusterName

The name of the cluster which owns property sheet.

componentName

The name of the component container of the property sheet which owns the property.

configName

The name of the emailConfig container that owns the property.

containerName

The name of the container that owns the property.

credentialName

The name of the credential container of the property sheet which owns the property.

dashboardName

The name of the dashboard of the property sheet which owns the property.

dataRetentionPolicyName

The name of the data retention policy of the property sheet which owns the property.

environmentName

The name of the environment container of the property sheet which owns the property.

environmentTemplateName

The name of the environment template container of the property sheet which owns the property.

environmentTemplateTierName

The name of the environment template tier container of the property sheet which owns the property.

environmentTierName

The name of the environment tier container of the property sheet which owns the property.

executePrivilege

Determines whether the principal can invoke this object as part of a job; this privilege is only relevant for a few objects such as procedures and procedure steps.

flowName

The name of the flow container of the property sheet which owns the property.

flowRuntimeId

The primary key or name of the flowRuntime container of the property sheet which owns the property.

flowRuntimeName

The name of the flow runtime container of the property sheet which owns the property.

flowRuntimeStateId

The primary key or name of the flowRuntimeState container of the property sheet which owns the property.

flowRuntimeStateName

The name of the flow state container of the property sheet which owns the property.

flowStateName

The name of the flow state container of the property sheet which owns the property.

flowTransitionName

The name of the flow transition container of the property sheet which owns the property.

gateType

The type of the gate which owns property sheet.

gatewayName

The name of the gateway container of the property sheet.

groupName

The name of the group container of the property sheet which owns the property.

jobId

The primary key or name of the job container of the property sheet which owns the property.

jobStepId

The primary key of the job-step container of the property sheet which owns the property.

kerberosKeytabName

The name of the kerberos keytab.

modifyPrivilege

Determines whether the principal can change the contents of the object.

notifierName

The name of the notifier container of the property sheet which owns the property.

objectId

The object id as returned by FindObjects.

objectType

The type of object protected by the access control

path

Property path string.

personaName

The name of the persona.

pipelineName

The name of the pipeline container of the property sheet which owns the property.

pluginName

The name of the plugin container of the property sheet which owns the property.

procedureName

The name of the procedure container of the property sheet which owns the property.

processName

The name of the process, if the container is a process or process step.

processStepName

The name of the process step, if the container is a process step.

projectName

The name of the project container of the property sheet which owns the property.

propertySheetId

The primary key of the property sheet which owns the property.

readPrivilege

Determines whether the principal can examine the contents of the object

releaseName

The name of the release container of the property sheet which owns the property.

reportName

The name of the report of the property sheet which owns the property.

reportObjectTypeName

The name of the report object type of the property sheet which owns the property.

repositoryName

The name of the repository container of the property sheet which owns the property.

resourceName

The name of the resource container of the property sheet which owns the property.

resourcePoolName

The name of the resource pool container of the property sheet which owns the property.

resourceTemplateName

The name of the resource template container of the property sheet which owns the property.

scheduleName

The name of the schedule container of the property sheet.

searchFilterName

The name of the search filter container of the property sheet.

serviceAccountName

Get the name of the service account container of the property sheet

serviceName

The name of the service container of the property sheet.

snapshotName

The name of the snapshot container of the property sheet which owns the property.

stageName

The name of the stage container of the property sheet which owns the property.

stateDefinitionName

The name of the state definition container of the property sheet which owns the property.

stateName

The name of the state container of the property sheet which owns the property.

stepName

The name of the step container of the property sheet which owns the property.

systemObjectName

The system object.

tagName

The name of the tag.

taskName

The name of the task which owns property sheet.

transitionDefinitionName

The name of the transition definition container of the property sheet which owns the property.

transitionName

The name of the transition container of the property sheet which owns the property.

userName

The name of the user container of the property sheet which owns the property.

widgetName

The name of the widget of the property sheet which owns the property.

workflowDefinitionName

The name of the workflow definition container of the property sheet which owns the property.

workflowName

The name of the workflow container of the property sheet which owns the property.

workspaceName

The name of the workspace container of the property sheet.

zoneName

The name of the zone container of the property sheet.

actualParameter

A name/value pair that is passed to a procedure when it is invoked.

Required Arguments

Name Description

actualParameterName

The name of the parameter to create/modify/delete.

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

applicationName

The name of the application, if the actual parameter is on an application process step.

applicationServiceMappingName

The name of the application service mapping.

archiveConnectorName

The name of the archive connector.

componentName

The name of the component, if the actual parameter is on a component process step.

dashboardName

The name of the dashboard.

flowName

The name of the flow to which the flow state belongs to.

flowStateName

The name of the flow state, if the formal parameter is on a flow state.

newName

New name for an existing object that is being renamed.

procedureName

The name of the procedure.

processName

The name of the process, if the actual parameter is on a process step.

processStepName

The name of the process step, if the actual parameter is on a process step.

releaseName

The name of the release, if the actual parameter is on a release.

scheduleName

The name of the schedule.

serviceClusterMappingName

The name of the service cluster mapping.

serviceMapDetailName

The name of the serviceMapDetail.

serviceName

The name of the service, if the actual parameter is on an service process step.

stateDefinitionName

The name of the state definition.

stepName

The name of the step.

tierMapName

The name of the tier map.

transitionDefinitionName

The name of the state definition.

value

The value of the actual parameter, if creating or modifying.

widgetName

The name of the widget.

workflowDefinitionName

The name of the workflow definition.

application

Application representation.

Required Arguments

Name Description

applicationName

The name of the application

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

applicationDependency

Represents a application dependency on other applications or service

Required Arguments

Name Description

applicationName

The name of the application

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

applicationDependencyName

The name of application dependency. If not specified, a system generated guid is used.

dependentApplicationName

The name of application which this application depends on.

dependentProjectName

The name the project containing the dependent application.

dependentServiceName

The name of service which this application depends on.

dependentSnapshotName

The name of snapshot of the dependent application.

effectiveDate

The date when this dependency is applicable (for example, 2006-05-15).

newName

New name for an existing object that is being renamed.

snapshotName

Name of the snapshot; must be unique within the application.

applicationTier

A logical grouping of a components that are part of an application and the resources they should be deployed on

Required Arguments

Name Description

applicationName

The name of the application

applicationTierName

Name of the tier; must be unique within the application.

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

DSL Methods for CloudBees Flow objects that can be nested inside

archiveConnector

Archive Connector.

Required Arguments

Name Description

archiveConnectorName

Unique name of the archive connector.

Optional Arguments

Name Description

actualParameters

Actual parameter values for the configured archive connector. (Alternate argument name 'actualParameter')

archiveDataFormat

The data format that the connector consumes the archived data in.

archiveScript

Script registered to connect to the archive system and store the data being archived.

clearActualParameters

True if the archive connector should remove all actual parameters.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

enabled

Whether the connector is enabled. If true, then any previously enabled archive connector will be disabled.

newName

New name for an existing object that is being renamed.

DSL Methods for CloudBees Flow objects that can be nested inside

artifact

Encapsulates various metadata about Artifacts.

Required Arguments

None.

Optional Arguments

Name Description

artifactKey

The artifactKey component of the GAV (GroupId/ArtifactKey/Version) coordinates.

artifactName

The name of the artifact

artifactVersionNameTemplate

The artifactVersion name template.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

groupId

The groupId component of the GAV (GroupId/ArtifactKey/Version) coordinates.

DSL Methods for CloudBees Flow objects that can be nested inside

artifactVersion

Encapsulates various metadata about ArtifactVersions.

Required Arguments

None.

Optional Arguments

Name Description

artifactKey

The artifactKey component of the GAV (GroupId/ArtifactVersionId/Version) coordinates.

artifactName

The name of the artifact containing the artifactVersion.

artifactVersionName

The name of the artifact version.

artifactVersionState

The state of the artifact version.

dependentArtifactVersions

The set of artifactVersions on which this artifactVersion depends. (Alternate argument name 'dependentArtifactVersion')

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

groupId

The groupId component of the GAV (GroupId/ArtifactVersionId/Version) coordinates.

jobStepId

The id of the job step; used to make a project association.

newName

New name for an existing object that is being renamed.

removeAllDependentArtifactVersions

If true then all dependencies will be removed.

repositoryName

The name of the artifact repository.

version

The version component of the GAV (GroupId/ArtifactVersionId/Version) coordinates.

DSL Methods for CloudBees Flow objects that can be nested inside

catalog

Self Service dashboard catalog, the container of catalog items.

Required Arguments

Name Description

catalogName

The name of the catalog.

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

iconUrl

Set icon url for a catalog

newName

New name for an existing object that is being renamed.

DSL Methods for CloudBees Flow objects that can be nested inside

catalogItem

Self Service dashboard catalog item

Required Arguments

Name Description

catalogItemName

The name of the Catalog Item

catalogName

The name of the Catalog

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

afterItem

If specified, the catalog item will be placed after the named catalog item.

beforeItem

If specified, the catalog item will be placed before the named catalog item.

buttonLabel

The name of the button label.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

dslParamForm

The DSL Parameter form Metadata

dslString

The dsl string that is evaluated for the catalog item

endTargetJson

The Json desrived end target object

firstItem

True to make a catalog item the first in a catalog.

iconUrl

The URL for the icon to be used in UI

newName

New name for an existing object that is being renamed.

subpluginKey

The name of the procedure’s pluginKey.

subprocedure

The name of the sub procedure.

subproject

The name of the project that contains the sub procedure or sub process

useFormalParameter

If true catalog item uses formalParameters data, if false formXml will be used

DSL Methods for CloudBees Flow objects that can be nested inside

cluster

Represents a pool of resources on the cloud

Required Arguments

Name Description

clusterName

The name of the cluster.

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

environmentName

Name of the environment which owns this cluster.

newName

New name for an existing object that is being renamed.

pluginKey

Name of the plugin key.

pluginProjectName

plugin project name.

providerClusterName

Name of the cluster on the provider platform.

providerProjectName

Name of the project on the provider platform.

provisionParameters

provision parameter (Alternate argument name 'provisionParameter')

provisionProcedure

provision procedure name.

DSL Methods for CloudBees Flow objects that can be nested inside

component

A component of an application architecture.

Required Arguments

Name Description

componentName

The name of the component

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

actualParameters

Parameters passed as arguments to the application component. (Alternate argument name 'actualParameter')

applicationName

The name of an application to scope this component to.

clearActualParameters

True if the step should remove all actual parameters.

credentialName

The name of a credential to attach to this component.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

pluginKey

The key of the plugin

pluginName

The name of the plugin

pluginParameters

List of plugin parameters (Alternate argument name 'pluginParameter')

reference

1 to create reference of the component and 0 to create copy of the component

sourceApplicationName

The name of source application

sourceComponentName

The name of new component

sourceProjectName

The name of source project

DSL Methods for CloudBees Flow objects that can be nested inside

container

A container which typically encapsulates a microservice.

Required Arguments

Name Description

containerName

Name for the container; must be unique within the project or service.

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

applicationName

The name of an application containing the specified service.

command

command to run on the container

cpuCount

number of CPUs to allocate to the container

cpuLimit

maximum number of CPUs

credentialName

The name of a credential to be used for accessing specified registry.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

entryPoint

entrypoint for the container

imageName

Name of the container image

imageVersion

Version of the container image

memoryLimit

Memory limit in MB

memorySize

Size of memory in MB

newName

New name for an existing object that is being renamed.

registryUri

Registry uri of the container image

serviceName

The name of service containing the specified container.

volumeMount

Volume mount json of the container image

DSL Methods for CloudBees Flow objects that can be nested inside

credential

A username/password stored in the server as encrypted data. Typically used in an agent context to authenticate with a third-party system. The password value is not available in the web context for security reasons, so this object has no getPassword method.

Required Arguments

Name Description

credentialName

The name of the credential.

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

password

The password for the credential. Can also be a certificate or any other chunk of data.

passwordRecoveryAllowed

If true, recovering the password by invoking getFullCredential from a job step is allowed.

userName

The user name for the credential.

DSL Methods for CloudBees Flow objects that can be nested inside

dashboard

Report dashboard, the container of report widgets.

Required Arguments

Name Description

dashboardName

Unique name of the dashboard within the project.

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

clearColumns

Whether or not to clear columns for the dashboard.

clearPhases

[DEPRECATED]: Use 'clearColumns' instead

columns

List of the columns to display for the dashboard of type COMMAND_CENTER. (Alternate argument name 'column')

customize

Set to true to create a custom copy of the out-of-the-box 'Release Command Center' dashboard.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

layout

Layout to use for adding the widgets to the dashboard.

newName

New name for an existing object that is being renamed.

phases

[DEPRECATED]: Use 'columns' instead (Alternate argument name 'phase')

type

Type of the dashboard.

DSL Methods for CloudBees Flow objects that can be nested inside

dataRetentionPolicy

Data Retention Policy.

Required Arguments

Name Description

dataRetentionPolicyName

Unique name of the data retention policy.

Optional Arguments

Name Description

action

The action to take on the data that matches the criteria for the data retention rule.

additionalFilters

Additional filter criteria for the object type similar to search filters. (Alternate argument name 'additionalFilter')

age

Minimum age of the data to qualify for the data retention rule.

ageUnit

Time unit for age.

associatedTags

List of tags that the object can be associated with. (Alternate argument name 'associatedTag')

cleanupAssociatedWorkspace

Whether or not to cleanup the associated workspace directory with the job or deployment being purged.

clearAdditionalFilters

Whether or not to clear additional filters for the data retention policy.

clearAssociatedTags

Whether or not to clear associated tags for the data retention policy.

clearProjectNames

Whether or not to clear project names for the data retention policy.

clearStatuses

Whether or not to clear statuses for the data retention policy.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

enabled

True to enable the data retention policy. Defaults to true when creating the data retention policy.

includeSubreleases

If the data retention rule is defined for releases, then whether to automatically include the sub-releases for the releases matching the data retention rule. Defaults to false.

newName

New name for an existing object that is being renamed.

objectType

Type of object for which the retention rule is defined.

projectNames

List of projects that the object can belong to. (Alternate argument name 'projectName')

statuses

List of statuses for the object such as job status, release status, pipeline run status, or deployment status. (Alternate argument name 'status')

DSL Methods for CloudBees Flow objects that can be nested inside

deployerApplication

Represents an application that will be deployed as part of deployer used in a release

Required Arguments

Name Description

applicationName

The name of the application

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

afterLastRetry

Specify continue or stop pipeline execution after last unsuccessful retry or a task.

applicationProjectName

The name of the project containing specified application. If not specified, it is defaulted to the release project name.

enforceDependencies

Enforce dependencies flag to be used during runProcess for the application

errorHandling

Specifies error handling for the deployer application

orderIndex

Specifies the application deployment order (starts from 1).

processName

The name of the application process

releaseName

The name of the release

retryApprovers

A list of retry approvers who receive the notification. (Alternate argument name 'retryApprover')

retryCount

If the retry is auto, specify the maximum number of times retry should occur.

retryInterval

If the retry is auto, specify the number of seconds to wait until the next retry should occur.

retryNotificationTemplate

Email retry notification template for application.

retryType

Type of rety when process step or task fails. Is one of 'auto' or 'manual'

smartDeploy

Smart deploy flag to be used during runProcess for the application

snapshotName

The name of the snapshot

stageArtifacts

Stage artifacts for the the application process.

DSL Methods for CloudBees Flow objects that can be nested inside

deployerConfiguration

Contains configuration for an application to be deployed in a release

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

actualParameters

Actual parameters (Alternate argument name 'actualParameter')

applicationName

The name of the application

applicationProjectName

The name of the project containing specified application. If not specified, it is defaulted to the release project name.

clearActualParameters

True if the task should remove all actual parameters.

deployerConfigurationName

The name of deployer configuration. If not specified, a system generated guid is used.

deployerTaskName

The name of the deployer task defined in the provided stage.

environmentName

The name of the environment.

environmentProjectName

The name of the project containing specified environment or environment template. If not specified, it is defaulted to the release project name.

environmentTemplateName

The name of the environment template.

environmentTemplateProjectName

The name of the project containing specified environment template. If not specified, it is defaulted to the environment project name.

insertRollingDeployManualStep

True to indicate a manual step needs to be injected after each phase or batch.

newName

New name for an existing object that is being renamed.

processName

The name of the application or service process.

releaseName

The name of the release

rollingDeployEnabled

Perform rolling deployment.

rollingDeployManualStepAssignees

A list of assignees who receive the notification when rolling deploy iteration completes. (Alternate argument name 'rollingDeployManualStepAssignee')

rollingDeployManualStepCondition

Defines run condition on manual step created during rolling deployment. (Alternate argument name 'rollingDeployManualStepCondition')

rollingDeployPhases

One or more rolling deploy phases to be used for deployment. (Alternate argument name 'rollingDeployPhase')

serviceName

The name of the service

serviceProjectName

The name of the project containing specified service. If not specified, it is defaulted to the release project name.

skipDeploy

True to skip deployment to an environment

snapshotName

The name of the snapshot

stageName

The name of the stage of a pipeline attached to a release if specified.

deployerService

Represents a service that will be deployed as part of deployer used in a release

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

serviceName

The name of the service

Optional Arguments

Name Description

afterLastRetry

Specify continue or stop pipeline execution after last unsuccessful retry or a task.

enforceDependencies

Enforce dependencies flag to be used during runProcess for the application

errorHandling

Specifies error handling for the deployer application

orderIndex

Specifies the application deployment order (starts from 1).

processName

The name of the application process

releaseName

The name of the release

retryApprovers

A list of retry approvers who receive the notification. (Alternate argument name 'retryApprover')

retryCount

If the retry is auto, specify the maximum number of times retry should occur.

retryInterval

If the retry is auto, specify the number of seconds to wait until the next retry should occur.

retryNotificationTemplate

Email retry notification template for application.

retryType

Type of rety when process step or task fails. Is one of 'auto' or 'manual'

serviceProjectName

The name of the project containing specified service. If not specified, it is defaulted to the release project name.

snapshotName

The name of the snapshot

DSL Methods for CloudBees Flow objects that can be nested inside

devOpsInsightDataSource

A DevOps Insight data source object.

Required Arguments

Name Description

devOpsInsightDataSourceName

The DevOps Insight data source name.

projectName

The name for the project that must be unique among all projects.

releaseName

The name of the release

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

pluginKey

The plugin key, e.g., EC-MyPlugin

pluginParameters

The plugin parameters to be passed to the plugin for creating the required schedule and polling procedure (Alternate argument name 'pluginParameter')

reportObjectTypeName

The name of a report object type.

DSL Methods for CloudBees Flow objects that can be nested inside

directoryProvider

Contains information about the configuration used to communicate with an external directory service (LDAP or ActiveDirectory).

Required Arguments

Name Description

providerName

Name for a LDAP directory provider; must be unique.

Optional Arguments

Name Description

allowNestedGroupsApprovers

Whether users in nested LDAP groups should be allowed to approve a manual task when a parent LDAP group is assigned as a approver for the task and recursive traversal of group hierarchy is enabled for the directory provider.

commonGroupNameAttribute

The attribute in a group record that contains the common name of the group. If specified, it is only used when searching for groups from an external provider. Typically used when the group name attribute is set to distinguishedName, because that field is not searchable.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

domainName

The domain from which the Active Directory server(s) are automatically discovered.

emailAttribute

The attribute in a LDAP user record that contains the user’s email.

enableGroups

Determines whether or not to enable external groups for the directory provider.

fullUserNameAttribute

The attribute in a user record that contains the user’s full name (first and last).

groupBase

String prepended to the base DN to construct the DN of the directory that contains group records.

groupMemberAttributes

Comma separated list of attribute names that can identify a member of a group.

groupMemberFilter

LDAP query string for the groups directory to find groups that contain a given user as a member.

groupNameAttribute

The attribute in a group record that contains the name of the group.

groupSearchFilter

LDAP query string used in group directory to enumerate group records.

managerDn

The name of a user who has read-only access to the LDAP or Active Directory server. Typically a DN (distinguished name). A simple name may be used when the Active Directory server’s URL is being auto-discovered via DNS.

managerPassword

Secret value used to identify the account for the query user.

membershipAttribute

Attribute defined on an LDAP user or group entry used by the LDAP provider for specifying the group membership.

membershipFilter

LDAP filter to search for groups that an LDAP user or group belongs to.

nestedGroupDepthLimit

Maximum number of group hierarchy levels that will be traversed for retrieving nested group membership information.

newName

New name for an existing object that is being renamed.

notifyUsersInNestedGroups

Whether users in nested LDAP groups should be included when sending notifications for a parent LDAP group and recursive traversal of group hierarchy is enabled for the directory provider.

providerType

Type string for a directory provider. Should be 'ldap' or 'activedirectory'.

realm

The realm of the LDAP directory provider. This is used to create unique user names when there are multiple providers.

traverseHierarchy

Whether or not to enable recursive traversal of group hierarchy for nested group membership information.

url

The url of the LDAP Directory Provider server.

useSSL

True means SSL is used for communication.

userBase

Used to construct the DN of the directory that contain user records.

userNameAttribute

The attribute in a user record that contains the user’s account name.

userSearchFilter

RFC 2254 LDAP query to search for a user by name.

userSearchSubtree

If true recursively search the subtree below the user base.

DSL Methods for CloudBees Flow objects that can be nested inside

emailConfig

Encapsulates all of the mail server configuration information necessary for the Commander server to send an outbound e-mail message.

Required Arguments

Name Description

configName

The email configuration name.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

mailFrom

The email address used as the email sender address for CloudBees Flow notifications.

mailHost

Name of the email server host.

mailPort

The port number for the email service on the server.

mailProtocol

Name of the email transport protocol. Supported protocol names: 'SMTP', 'SMTPS'

mailUser

Name of the email user on behalf of which CloudBees Flow sends email notifications.

mailUserPassword

Password of the email user on behalf of which CloudBees Flow sends email notifications.

newName

New name for an existing object that is being renamed.

DSL Methods for CloudBees Flow objects that can be nested inside

emailNotifier

E-mail notification to be sent when a particular event occurs.

Required Arguments

Name Description

notifierName

The name of the email notifier.

Optional Arguments

Name Description

applicationName

The name of the application which is related to the target email container (Process/ProcessStep)

componentName

The name of the component which is related to the target email container (Process/ProcessStep)

condition

A fixed text or text embedding property references that is evaluated into a logical TRUE or FALSE. An empty string, a "0" or "false" is interpreted as FALSE. Any other result string is interpreted as TRUE.

configName

Name for an email configuration; or a text that - through property expansion - results into such an email configuration name

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

destinations

A list of space-separated user names, email addresses or email aliases or a text that - through property expansion - results into such a list.

environmentNames

Name of the environments (Alternate argument name 'environmentName')

eventType

An enumeration of valid event categories recognized by the email notifiers.

flowName

The name of the flow container of the email notifier.

flowRuntimeId

The primary key or name of the flowRuntime container of the email notifier.

flowRuntimeStateId

The primary key or name of the flowRuntimeState container of the email notifier.

flowStateName

The name of the flow container of the email notifier.

formattingTemplate

String containing email formatting instructions for generating notifications.

gateType

The type of the gate.

groupNames

A list of names of the groups which receives the notification. (Alternate argument name 'groupName')

jobId

The primary key or name of the job container of the email notifier.

jobStepId

The primary key of the job-step container of the email notifier.

newName

New name for an existing object that is being renamed.

notificationType

The notification type which will be stored to the ec_notificationType property

pipelineName

The name of the pipeline container of the email notifier.

procedureName

The name of the procedure container of the email notifier.

processName

The name of the process container of the email notifier)

processStepName

The name of the process step container of the email notifier)

projectName

The name of the project container of the email notifier.

releaseName

The name of the release containing the pipeline.

serviceName

The name of the service which is related to the target email container (Process/ProcessStep)

stageName

The name of the stage container of the email notifier.

stateDefinitionName

the name of the state definition container of the email notifier.

stateName

The name of the state container of the email notifier.

stepName

The name of the step container of the email notifier.

userNames

A list of names of the users who receives the notification. (Alternate argument name 'userName')

workflowDefinitionName

the name of the workflow definition container of the email notifier.

workflowName

The name of the workflow container of the email notifier.

DSL Methods for CloudBees Flow objects that can be nested inside

environment

The environment to which an application is deployed.

Required Arguments

Name Description

environmentName

The name of the environment.

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

applicationName

Create environment from the specified application.

applicationProjectName

The application’s project name.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

environmentEnabled

True to enable the environment.

newName

New name for an existing object that is being renamed.

reservationRequired

True to allow run using reservation only

rollingDeployEnabled

True to enable support for rolling deploy on this environment.

rollingDeployType

The type of rolling deploy type supported by the environment.

serviceName

Create environment from the specified service.

serviceProjectName

The service’s project name.

DSL Methods for CloudBees Flow objects that can be nested inside

environmentMap

A map between a service and environment clusters.

Required Arguments

Name Description

environmentName

The name of the environment.

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

environmentMapName

The name of the tier map. If not specified the operation will assume a hyphenated service and environment name.

environmentProjectName

The name of the environment’s project name.

serviceEntityRevisionId

Revisionid of the versioned object

serviceName

The name of the service

DSL Methods for CloudBees Flow objects that can be nested inside

environmentTemplate

The environment template.

Required Arguments

Name Description

environmentTemplateName

The name of the environment template.

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

DSL Methods for CloudBees Flow objects that can be nested inside

environmentTemplateTier

The environment template tier belonging to an environment template.

Required Arguments

Name Description

environmentTemplateName

The name of the environment template.

environmentTemplateTierName

Name for the environment template tier; must be unique among all tiers for the environment template.

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

resourceCount

The number of resources to be spun from a given resource template

resourceNames

List of resources to add to the environment tier. (Alternate argument name 'resourceName')

resourceTemplateName

Name for the resource template; must be unique among all resource templates.

resourceTemplateProjectName

Name for the project to which the resource template belongs to.

DSL Methods for CloudBees Flow objects that can be nested inside

environmentTemplateTierMap

A map to hold mappings between application and an environment template tiers.

Required Arguments

Name Description

applicationName

The name of the application

environmentProjectName

The name of the environment’s project name.

environmentTemplateName

The name of the environment template.

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

applicationEntityRevisionId

Revisionid of the versioned object

tierMapName

The name of the environment template tier map. If not specified the operation will assume a hyphenated application and environment name.

tierMappings

The list of mappings between the application tiers and the environment template tiers. (Alternate argument name 'tierMapping')

DSL Methods for CloudBees Flow objects that can be nested inside

environmentTemplateTierMapping

A mapping between an application tier and an environment template tier.

Required Arguments

Name Description

applicationName

The name of the application

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

applicationEntityRevisionId

Revisionid of the versioned object

applicationTierName

Name of the application tier.

environmentProjectName

The name of the environment template’s project name.

environmentTemplateName

The name of the environment template.

environmentTemplateTierMapName

The name of the environment template tier map.

environmentTemplateTierMappingName

The name of the environment template tier mapping. If not specified the operation will assume a UUID string.

environmentTemplateTierName

Name of the environment template tier.

newName

New name for an existing object that is being renamed.

environmentTier

The environment tier belonging to an environment.

Required Arguments

Name Description

environmentName

The name of the environment.

environmentTierName

Name for the environment tier; must be unique among all tiers for the environment.

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

batchSize

The size of the batch supported by the environment tier.

batchSizeType

The type of batch size supported by the environment tier.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

resourceNames

List of resources to add to the environment tier. (Alternate argument name 'resourceName')

resourcePhaseMappings

A map of resource and rolling deploy phase (Alternate argument name 'resourcePhaseMapping')

resourcePoolNames

List of resource pools to add to the environment tier. (Alternate argument name 'resourcePoolName')

resourcePoolPhaseMappings

A map of resource pool and rolling deploy phase (Alternate argument name 'resourcePoolPhaseMapping')

DSL Methods for CloudBees Flow objects that can be nested inside

environmentVariable

Encapsulates a microservice configuration

Required Arguments

Name Description

environmentVariableName

Name for the environment variable

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

applicationEntityRevisionId

Revision Id of the versioned object

applicationName

The name of an application to scope service.

containerName

Name for the container

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

environmentName

The name of the environment which is related to the service map detail.

environmentProjectName

The name of the environment project which contains the environment.

newName

New name for an existing object that is being renamed.

serviceEntityRevisionId

Revisionid of the versioned object

serviceMapDetailName

Name for the service map detail

serviceName

Name for the service

type

Defines a type of the environment variable

value

Environment variable value

formalOutputParameter

A name and value pair that is passed to create an output parameter on procedure/process/pipeline.

Required Arguments

Name Description

formalOutputParameterName

Name for this parameter; used when the procedure is invoked to specify a value for the parameter.

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

applicationName

The name of the application, if the formal output parameter is on an application process.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

pipelineName

The name of the pipeline, if the formal output parameter is on a pipeline.

procedureName

The name of the procedure.

processName

The name of the process, if the formal output parameter is on a process.

releaseName

The name of the release, where pipeline is located.

serviceName

The name of the service, if the formal output parameter is on an service process.

formalParameter

An unbound parameter defined on a procedure, workflow definition, etc.

Required Arguments

Name Description

formalParameterName

Name for this parameter; used when the procedure is invoked to specify a value for the parameter.

Optional Arguments

Name Description

applicationName

The name of the application, if the formal parameter is on an application process.

archiveConnectorName

The name of the archive connector, if the formal parameter is on an archive connector.

catalogItemName

The name of the catalog item, if the formal parameter is on a catalog item.

catalogName

The name of the catalog to which the catalog item belongs to.

checkedValue

Parameter value when the checkbox used to render the parameter is checked. Applicable only for 'checkbox' type.

clearOptions

Whether or not to clear options for formal parameter.

componentName

The name of the component, if the formal parameter is on a component process.

dashboardName

The name of the dashboard, if the formal parameter is on a dashboard.

defaultValue

If no value is provided for the parameter when the procedure is invoked, this value will be used.

dependsOn

Comma-separated list of formal parameters that this parameter depends on. Use with cascading drop-down ('select') parameters to declare dependency on one or more parameters.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

expansionDeferred

True means expansion for this parameter should be deferred: the parameter value will not be expanded when the procedure call is expanded, but can be expanded from a command step instead.

flowName

The name of the flow to which the flow state belongs to.

flowStateName

The name of the flow state, if the formal parameter is on a flow state.

gateType

The type of the gate which contains the task, if the formal parameter is belongs to a task.

label

Specifies the display label.

newName

New name for an existing object that is being renamed.

options

Ordered list of options. (Alternate argument name 'option')

optionsDsl

Dsl for populating drop-down options for 'select' formal parameter type.

optionsFromPropertySheet

Path to the property sheet containing the options.

orderIndex

Specifies the display order index (starts from 1).

pipelineName

The name of the pipeline, if the formal parameter is on a pipeline.

procedureName

The name of the procedure.

processName

The name of the process, if the formal parameter is on a process.

processStepName

The name of the process step, if the formal parameter is on a process step.

projectFormalParameterName

Used when rendering the formal parameter to identify the formal parameter to use in order to get the owning project name. Applicable only for 'release', 'pipeline', 'application', 'service' or 'environment' parameter type.

projectName

The name for the project that must be unique among all projects.

propertyReference

Property or property sheet to use for displaying options.

propertyReferenceType

Whether the 'propertyReference' value is a property sheet (default) or a property. For property sheet, nested property names are used as options while for property, the property value is used as an option.

releaseName

The name of the release, if the formal parameter is on a release-scoped pipeline.

renderCondition

Condition for rendering the formal parameter.

reportName

The name of the report, if the formal parameter is on a report.

required

True means this parameter is required: the procedure will not execute unless a value is given for the parameter.

serviceName

The name of the service, if the formal parameter is on an service process.

simpleList

Pipe-separated list of options, e.g., option1|option2|option3.

stageName

The name of the stage which contains the task, if the formal parameter is belongs to a task.

stateDefinitionName

The name of the state definition.

stateName

The name of a workflow state.

taskName

The name of the task, if the formal parameter is belongs to a task.

type

The type of a formal parameter.

uncheckedValue

Parameter value when the checkbox used to render the parameter is unchecked. Applicable only for 'checkbox' type.

updateFormXml

Whether the parameter form XML stored in the procedure property 'ec_parameterForm' should also be updated.

validationDsl

Dsl for validating the formal parameter.

workflowDefinitionName

The name of the workflow definition.

workflowName

The name of a workflow.

gate

Tasks container belonging to stage

Required Arguments

Name Description

gateType

The type of the gate.

projectName

The name for the project that must be unique among all projects.

stageName

Name of the stage to which this task belongs to.

Optional Arguments

Name Description

condition

A fixed text or text embedding property references that is evaluated into a logical TRUE or FALSE. An empty string, a "0" or "false" is interpreted as FALSE. Any other result string is interpreted as TRUE.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

pipelineName

The name of the pipeline

precondition

A fixed text or text embedding property references that is evaluated into a logical TRUE or FALSE. An empty string, a "0" or "false" is interpreted as FALSE. Any other result string is interpreted as TRUE.

releaseName

The name of the release

DSL Methods for CloudBees Flow objects that can be nested inside

gateway

A secured connection between two zones for sharing or transferring information between the zones.

Required Arguments

Name Description

gatewayName

The gateway name.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

gatewayDisabled

True means this artifact repository is disabled.

hostName1

The domain name or IP address resourceName2 uses to send messages to resourceName1.

hostName2

The domain name or IP address resourceName1 uses to send messages to resourceName2.

newName

New name for an existing object that is being renamed.

port1

Port number resourceName2 uses to send messages to resourceName1.

port2

Port number resourceName1 uses to send messages to resourceName2.

resourceName1

The name of the first resource in a gateway specification. Other resources in this resource’s zone forward messages through this resource to agents in resourceName2’s zone.

resourceName2

The name of the second resource in a gateway specification. Other resources in this resource’s zone forward messages through this resource to agents in resourceName1’s zone.

DSL Methods for CloudBees Flow objects that can be nested inside

group

A group of users.

Required Arguments

Name Description

groupName

Name of the group; must be unique among local groups.

Optional Arguments

Name Description

clearPersonas

clear personas for group, if modifying.

migrateSettings

New group name to which settings will be migrated.

newName

New name for an existing object that is being renamed.

personas

List of personas that this group has. (Alternate argument name 'persona')

removeAllUsers

True to remove all users from this group.

userNames

List of users in the group. (Alternate argument name 'userName')

DSL Methods for CloudBees Flow objects that can be nested inside

hook

A resource template hook that stores a reference to a procedure in an ElectricFlow project or plugin project. When a resource template is used to create a resource pool, these procedures are invoked.

Required Arguments

Name Description

hookName

Name for the hook; must be unique among all hooks.

Optional Arguments

Name Description

broadcast

broadcast flag

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

hookParameters

hook parameters (Alternate argument name 'hookParameter')

hookType

hook type

newName

New name for an existing object that is being renamed.

procedureName

hook procedure name

procedurePluginKey

procedure plugin key

procedureProjectName

procedure project name

projectName

projectName of the entity that owns the hook

resourceTemplateName

Name of the resource template.

DSL Methods for CloudBees Flow objects that can be nested inside

job

An instance of a procedure run.

Required Arguments

None.

Optional Arguments

Name Description

destinationProject

The project that will own the job.

jobId

The primary key of the job, or the name of the job.

jobNameTemplate

Template used to determine the default name of jobs launched from a procedure.

procedureName

The name of the procedure that should 'own' the job step. If not specified, myStep.procedure is used.

projectName

The name of the project is destinationProject is not specified.

status

The starting status for the job.

DSL Methods for CloudBees Flow objects that can be nested inside

jobStep

A step in a job.

Required Arguments

None.

Optional Arguments

Name Description

actualParameters

Actual parameters passed to an invoked subprocedure (Alternate argument name 'actualParameter')

alwaysRun

True means this step will run even if preceding steps fail in a way that aborts the job

broadcast

True means replicate this step to execute (in parallel) on each of the specified resources (that is, for a pool, run the step on each of the resources in the pool).

command

Script to execute the functions of this step; passed to the step’s shell for execution.

comment

Script to execute the functions of this step; passed to the step’s shell for execution.

condition

A fixed text or text embedding property references that is evaluated into a logical TRUE or FALSE. An empty string, a "0" or "false" is interpreted as FALSE. Any other result string is interpreted as TRUE.

credentialName

The name of the credential to be used for impersonation.

credentials

The list of runtime credentials attached to the job step. (Alternate argument name 'credential')

errorHandling

Specifies error handling for this step.

exclusive

True means the resource acquired for this step will be retained for the exclusive use of this job. This means 2 things: first, no other job will be able to use that resource, regardless of its step limit, until this job completes; second, future steps for this job will use the resource in preference to other resources, if this resource meets the needs of the steps and its step limit is not exceeded.

exclusiveMode

Determines the mode to use when the step acquires a resource. If set to 'none', then the default behavior for the step applies. If set to 'job', then the resource will be retained for the exclusive use of this job. If set to 'step', then the resource will be retained for the exclusive use of this step and procedure it may call. If set to 'call', then the resource will be retained for the exclusive use of all steps within the current procedure call.

external

True if the step is externally managed (no state machine).

jobStepId

The primary key of the job step

jobStepName

The name for the new step. If omitted, a default name will be generated.

logFileName

Name of the log file for a step; specified relative to the root directory in the job’s workspace.

parallel

True means this step and all adjacent steps with the flag set will run in parallel.

parentPath

Path to the parent job step. If a parent step is not specified, the current job step is used.

postProcessor

This command runs in parallel with the main command for the step; it analyzes the log for the step and collects diagnostic information.

precondition

A fixed text or text embedding property references that is evaluated into a logical TRUE or FALSE. An empty string, a "0" or "false" is interpreted as FALSE. Any other result string is interpreted as TRUE.

procedureName

The name of the procedure that should 'own' the job step. If not specified, myStep.procedure is used.

projectName

The name of the project for procedureName.

releaseExclusive

True means the resource acquired for this step will be no longer be retained for the exclusive use of this job when this step completes.

releaseMode

Determines the mode to use when the step releases its resource. If set to 'none', the default behavior applies. If set to 'release', then the resource will be available for use by any job. If set to 'releaseToJob', then the resource will be available for use by any step in this job.

resourceName

Name for the resource; must be unique among all resources.

shell

Name of the shell program that will execute the command and postprocessor for the step.

status

The starting status for the step.

stepName

The name of the procedure step that should 'own' the job step. If not specified, myStep is used.

subprocedure

Name of a procedure to invoke during this step.

subproject

Name of the project containing the procedure to invoke during this step.

timeLimit

Maximum amount of time the step can execute; abort if it exceeds this time.

timeLimitUnits

Units for step time limit: seconds, minutes, or hours.

workingDirectory

Working directory in which to execute the command for this step. A relative name is interpreted relative to the root directory for the job’s workspace.

workspaceName

The name of the workspace.

DSL Methods for CloudBees Flow objects that can be nested inside

license

License data in XML format that describes the usage to which you are entitled.

Required Arguments

Name Description

licenseData

Container elements for license data. Expects embedded XML as CDATA.

Optional Arguments

None.

DSL Methods for CloudBees Flow objects that can be nested inside

note

An api that allows to create or modify notes on an object.

Required Arguments

None.

Optional Arguments

Name Description

newName

New name for an existing object that is being renamed.

note

This represents the notes provided about the entity

noteName

The name of the note.

projectName

projectName of the entity that owns the note

releaseName

Name of the release

persona

A persona for a user or group.

Required Arguments

Name Description

personaName

The persona name.

Optional Arguments

Name Description

clearDetails

clear persona details, if modifying.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

homePageName

The default home page.

isDefault

Set as default persona.

newName

New name for an existing object that is being renamed.

personaDetails

The details of the persona, if creating.

personaCategory

A persona category.

Required Arguments

Name Description

personaCategoryName

The persona category name.

Optional Arguments

Name Description

clearPages

clear persona pages for the category, if modifying.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

personaPages

list of pages in persona category (Alternate argument name 'personaPage')

personaPage

A persona page.

Required Arguments

Name Description

personaPageName

The persona page name.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

url

The persona page url.

pipeline

pipeline representation.

Required Arguments

Name Description

pipelineName

The name of the pipeline

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

assigneesForSkipStage

A list of users who can skip stages at runtime.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

disableMultipleActiveRuns

Boolean flag showing if option to run multiple pipelines simultaniosly is disabled

disableRestart

True to disable restart the pipeline.

enabled

True to enable the pipeline.

newName

New name for an existing object that is being renamed.

overrideWorkspace

If true and workspaceName is not null, then all tasks use pipeline’s workspace

pipelineRunNameTemplate

Template used to determine the default name for pipelines on startup.

releaseName

The name of the release

skipStageMode

The flag to indicate if stages can be skipped at runtime.

type

Type of pipeline

workspaceName

The name of the default workspace for this pipeline.

DSL Methods for CloudBees Flow objects that can be nested inside

plugin

An add-on program used by CloudBees Flow to integrate with third-party tools, custom dashboards, and unique user experiences based on roles.

Required Arguments

None.

Optional Arguments

Name Description

author

The name of the plugin author.

authorUrl

The Url of the plugin author.

category

The category of the plugin.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

extensionVersion

An extension version number should be used when modifying or extending a CloudBees provided plugin. This allows the system to differentiate between the product plugin versions and plugin versions modified or customized by you.

key

Version independent name for the plugin.

label

Label to display in lists for the plugin.

pluginName

The name of the plugin

pluginWizardBased

Whether the plugin is based on Plugin Wizard.

projectName

The name of the project

supportsConfigurations

Whether the plugin supports plugin configurations. If true, then the plugin configuration procedures, CreateConfiguration and DeleteConfiguration will be automatically created.

version

The version of the plugin.

DSL Methods for CloudBees Flow objects that can be nested inside

port

Container and Service port details

Required Arguments

Name Description

portName

Name for the port; must be unique for a container or service or ServiceClusterMapping

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

applicationEntityRevisionId

Revision Id of the versioned object

applicationName

Name of the application containing the service which owns the port.

applicationServiceMappingName

The name of the application service mapping.

clusterName

The name of the environment cluster to be used to resolve appication service mapping.

containerName

Name of the container which owns the port

containerPort

Container port for the container

environmentMapName

The name of the service environment name. If not provided, will use service name and environment name to resolve it.

environmentName

The name of the environment to which tierMap is mapped.

environmentProjectName

The name of the environment project to which tierMap is mapped.

listenerPort

listener port on the node

newName

New name for an existing object that is being renamed.

protocol

protocol

serviceClusterMappingName

The name of the service cluster mapping.

serviceEntityRevisionId

Revisionid of the versioned object

serviceName

Name of the service which owns the port or which owns the container which owns the port

subcontainer

Name of referencing container, when defining port info for a service.

subport

Name of container port for which values are being overridden at Service level.

tierMapName

The name of the tier map. If not provided, will use application name and environment name to resolve tierMap.

procedure

Container for steps that execute some task.

Required Arguments

Name Description

procedureName

Name for the procedure; must be unique within the project.

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

credentialName

The name of a credential to attach to this procedure.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

jobNameTemplate

Template used to determine the default name of jobs launched from a procedure.

newName

New name for an existing object that is being renamed.

resourceName

The name of the default resource for this procedure.

timeLimit

Maximum amount of time the step can execute; abort if it exceeds this time.

timeLimitUnits

Units for step time limit: seconds, minutes, or hours.

workspaceName

The name of the default workspace for this procedure.

DSL Methods for CloudBees Flow objects that can be nested inside

process

An application or component process.

Required Arguments

Name Description

processName

The name of the process.

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

applicationName

The name of the application, if the process is owned by an application.

componentApplicationName

If specified, the component is scoped to this application not the project.

componentName

The name of the component, if the process is owned by a component.

credentialName

The name of a credential to attach to this process.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

exclusiveEnvironment

True if environment is exclusive to the application or service process.

newName

New name for an existing object that is being renamed.

processType

Defines type of action performed by the process

serviceApplicationName

If specified, the service is scoped to this application not the project.

serviceName

The name of the service, if the process is owned by a service.

smartUndeployEnabled

True if smart deploy should be enabled for the undeploy component process

timeLimit

Maximum amount of time the step can execute; abort if it exceeds this time.

timeLimitUnits

Units for step time limit: seconds, minutes, or hours.

workingDirectory

Working directory in which to execute the command for this process. A relative name is interpreted relative to the root directory for the job’s workspace.

workspaceName

The name of the default workspace for this process.

DSL Methods for CloudBees Flow objects that can be nested inside

processDependency

Represents a dependency between process steps.

Required Arguments

Name Description

processName

The name of the process.

processStepName

The name of the process step.

projectName

The name for the project that must be unique among all projects.

targetProcessStepName

The name of the target process step.

Optional Arguments

Name Description

applicationName

The name of the application, if the process is owned by an application.

branchCondition

Branch Condition.

branchConditionName

Branch Condition Name.

branchConditionType

Branch Condition Type.

branchType

Branch Type.

componentApplicationName

If specified, the component is scoped to this application not the project.

componentName

The name of the component, if the process is owned by a component.

serviceApplicationName

If specified, the service is scoped to this application not the project.

serviceName

The name of the service, if the process is owned by a service.

processStep

A step in an application or component process.

Required Arguments

Name Description

processName

The name of the process.

processStepName

The name of the process step.

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

actionLabelText

The Json derived action label text

actualParameters

Actual parameters passed to an invoked subprocedure or process. (Alternate argument name 'actualParameter')

afterLastRetry

Specifies error handling for the auto retry step.

afterProcessStep

If specified, the process step will be placed after the named process step.

allowSkip

When enabled, manual process step can be skipped.

alwaysRun

True means this step will run even if preceding steps fail in a way that aborts the job

applicationName

The name of the application, if the process is owned by an application.

applicationTierName

If references an application tier, the name of the application tier

assignees

A list of assignees who receive the notification. (Alternate argument name 'assignee')

beforeProcessStep

If specified, the process step will be placed before the named process step.

clearActualParameters

True if the step should remove all actual parameters.

componentApplicationName

If specified, the component is scoped to this application not the project.

componentName

The name of the component, if the process is owned by a component.

componentRollback

When enabled, rollback will be performed only for the components that were not deployed successfully.

credentialName

The name of the credential object.

dependencyJoinType

Join type for incoming dependencies.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

disableFailure

True means a manual process step cannot be failed.

emailConfigName

The name of email configuration

errorHandling

Specifies error handling for this step.

includeCompParameterRef

True if the actual parameters should be generated from component properties. Works for artifact components only.

instruction

Instruction associated with the manual process step.

newName

New name for an existing object that is being renamed.

notificationEnabled

True means this email notification is enabled, false otherwise.

notificationTemplate

Email notification template for process step.

processStepType

Defines type of the process step

retryCount

If the retry is auto, specify the maximum number of times retry should occur.

retryInterval

If the retry is auto, specify the interval in seconds after which retry should be attempted.

retryType

Type of retry when process step fails. Is one of 'auto' or 'manual'

rollbackSnapshot

Name of Snapshot to be used for rollback.

rollbackType

The type of the rollback.

rollbackUndeployProcess

Name of the undeploy process to be used during rollback.

serviceApplicationName

If specified, the service is scoped to this application not the project.

serviceName

The name of the service, if the process is owned by a service.

skipRollbackIfUndeployFails

When enabled, rollback will be performed only for the components that were successfully undeployed.

smartRollback

Smart deploy flag to be used during rollback is triggered

subcomponent

If referencing a component process, the name of the component.

subcomponentApplicationName

If referencing a component process, the name of the component application (if not project scoped).

subcomponentProcess

If referencing a component process, the name of the component process.

subprocedure

If referencing a procedure, the name of the procedure.

subproject

If referencing a procedure, the name of the procedure’s project.

subservice

If referencing a service, the name of the service.

subserviceProcess

If referencing a service process, the name of the service process.

timeLimit

Maximum amount of time the step can execute; abort if it exceeds this time.

timeLimitUnits

Units for step time limit: seconds, minutes, or hours.

useUtilityResource

True means that step will run on utility reasorce instead of a tier

utilityResourceName

Utility reasorce name

workingDirectory

Working directory in which to execute the command for this step. A relative name is interpreted relative to the root directory for the job’s workspace.

workspaceName

The name of the workspace.

DSL Methods for CloudBees Flow objects that can be nested inside

project

Container for a group of related procedures and schedules.

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

credentialName

The name of the credential object.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

resourceName

Name for the resource; must be unique among all resources.

tracked

True to enable change tracking for this project.

workspaceName

The name of the workspace.

property

A custom attribute attached to any CloudBees Flow object. This may be a key, string-value pair or a complex structure, where the value is a reference to a property sheet containing nested properties.

Required Arguments

Name Description

propertyName

Name for the property; must be unique within the property sheet.

Optional Arguments

Name Description

applicationName

The name of the application container of the property sheet which owns the property.

applicationTierName

The name of the application tier container of the property sheet which owns the property.

archiveConnectorName

The name of the archive connector of the property sheet which owns the property.

artifactName

The name of the artifact container of the property sheet which owns the property.

artifactVersionName

The name of the artifactVersion container of the property sheet which owns the property.

catalogName

The name of the catalog of the property sheet which owns the property.

clusterName

The name of the cluster which owns property sheet.

componentName

The name of the component container of the property sheet which owns the property.

configName

The name of the emailConfig container that owns the property.

containerName

The name of the container that owns the property.

credentialName

The name of the credential container of the property sheet which owns the property.

credentialProtected

If true, then permissions requiring modify privileges on the property sheet being manipulated will also require execute privileges on credentials attached to the property sheet owner.

dashboardName

The name of the dashboard of the property sheet which owns the property.

dataRetentionPolicyName

The name of the data retention policy of the property sheet which owns the property.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

environmentName

The name of the environment container of the property sheet which owns the property.

environmentTemplateName

The name of the environment template container of the property sheet which owns the property.

environmentTemplateTierName

The name of the environment template tier container of the property sheet which owns the property.

environmentTierName

The name of the environment tier container of the property sheet which owns the property.

expandable

Whether or not the property is recursively expandable.

extendedContextSearch

For simple property names, whether or not to search objects in the hierarchy to find the desired property.

flowName

The name of the flow container of the property sheet which owns the property.

flowRuntimeId

The primary key or name of the flowRuntime container of the property sheet which owns the property.

flowRuntimeName

The name of the flow runtime container of the property sheet which owns the property.

flowRuntimeStateId

The primary key or name of the flowRuntimeState container of the property sheet which owns the property.

flowRuntimeStateName

The name of the flow state container of the property sheet which owns the property.

flowStateName

The name of the flow state container of the property sheet which owns the property.

flowTransitionName

The name of the flow transition container of the property sheet which owns the property.

gateType

The type of the gate which owns property sheet.

gatewayName

The name of the gateway container of the property sheet.

groupName

The name of the group container of the property sheet which owns the property.

jobId

The primary key or name of the job container of the property sheet which owns the property.

jobStepId

The primary key of the job-step container of the property sheet which owns the property.

newName

New name for an existing object that is being renamed.

notifierName

The name of the notifier container of the property sheet which owns the property.

objectId

The object id as returned by FindObjects.

path

Property path string.

pipelineName

The name of the pipeline container of the property sheet which owns the property.

pluginName

The name of the plugin container of the property sheet which owns the property.

procedureName

The name of the procedure container of the property sheet which owns the property.

processName

The name of the process, if the container is a process or process step.

processStepName

The name of the process step, if the container is a process step.

projectName

The name of the project container of the property sheet which owns the property.

propertySheetId

The primary key of the property sheet which owns the property.

propertyType

Type of property.

releaseName

The name of the release container of the property sheet which owns the property.

reportName

The name of the report of the property sheet which owns the property.

reportObjectTypeName

The name of the report object type of the property sheet which owns the property.

repositoryName

The name of the repository container of the property sheet which owns the property.

resourceName

The name of the resource container of the property sheet which owns the property.

resourcePoolName

The name of the resource pool container of the property sheet which owns the property.

resourceTemplateName

The name of the resource template container of the property sheet which owns the property.

scheduleName

The name of the schedule container of the property sheet.

searchFilterName

The name of the search filter container of the property sheet.

serviceAccountName

Get the name of the service account container of the property sheet

serviceName

The name of the service container of the property sheet.

snapshotName

The name of the snapshot container of the property sheet which owns the property.

stageName

The name of the stage container of the property sheet which owns the property.

stateDefinitionName

The name of the state definition container of the property sheet which owns the property.

stateName

The name of the state container of the property sheet which owns the property.

stepName

The name of the step container of the property sheet which owns the property.

suppressValueTracking

If true, then change tracking will ignore changes that only affect the value of the property, and exports of past states and force imports will preserve the current value.

systemObjectName

The system object.

taskName

The name of the task which owns property sheet.

transitionDefinitionName

The name of the transition definition container of the property sheet which owns the property.

transitionName

The name of the transition container of the property sheet which owns the property.

userName

The name of the user container of the property sheet which owns the property.

value

The value of the property.

widgetName

The name of the widget of the property sheet which owns the property.

workflowDefinitionName

The name of the workflow definition container of the property sheet which owns the property.

workflowName

The name of the workflow container of the property sheet which owns the property.

workspaceName

The name of the workspace container of the property sheet.

zoneName

The name of the zone container of the property sheet.

release

Release object

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

releaseName

The name of the release

Optional Arguments

Name Description

actualParameters

The list of actual parameters. (Alternate argument name 'actualParameter')

clearActualParameters

True if the task should remove all actual parameters.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

disableMultipleActiveRuns

Boolean flag showing if option to run multiple pipelines simultaniosly is disabled

disablePipelineRestart

True to disable restart release pipeline.

newName

New name for an existing object that is being renamed.

overrideWorkspace

If true and workspaceName is not null, then all tasks use pipeline’s workspace

pipelineName

The name of the pipeline

pipelineProjectName

The name of the project containing specified pipeline. If not specified, it is defaulted to the release project name.

pipelineWorkspaceName

The name of the workspace used by pipeline

plannedEndDate

The date when this release is expected to end (for example, 2006-05-15).

plannedStartDate

The date when this release is expected to begin (for example, 2006-05-15).

timeZone

The time zone to use when interpreting times.

DSL Methods for CloudBees Flow objects that can be nested inside

report

DevOps Insight Report object

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

reportName

The name of the report.

Optional Arguments

Name Description

definition

The Elasticsearch query definition to use for retrieving report data.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

parameters

Input parameters in JSON format accepted by the report definition.

reportObjectTypeForSourceType

The report object type name to use to determine the source type for the report. Set this if the sourceType of the report’s reportObjectType is different from the actual source of the report data.

reportObjectTypeName

Report object type name

reportQuery

The report query in JSON format. It will be translated to the Elasticsearch query definition when retrieving report data.

title

The title of report.

uri

An advanced mode option for identifying the Elasticsearch URI to use for retrieving report data. By default, the reportObjectTypeName argument will be used to construct the URI based on the Elasticsearch index for the report object, e.g., 'ef-deployment-*/_search?pretty'.

DSL Methods for CloudBees Flow objects that can be nested inside

reportObjectAssociation

Report object association.

Required Arguments

Name Description

associatedType

The name of the associated type.

reportObjectTypeName

Report object type for which this association is defined. The association is owned by the specified report object type.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

required

Whether the association between the report object type and associated type is always present.

sourceFields

Comma-separated list of fields in the report object type that should match the fields in the target or associated object type in order to establish a correlation between the two types.

targetFields

Comma-separated list of fields in the associated object type that should match the fields in the source report object type in order to establish a correlation between the two types.

reportObjectAttribute

Report object attribute.

Required Arguments

Name Description

reportObjectAttributeName

The name of the report object attribute.

reportObjectTypeName

Report object type for which this attribute is defined. The attribute is owned by the specified report object type.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

displayName

Display name of report object attribute.

enumerationValues

Enumeration values of report object attribute.

newName

New name for an existing object that is being renamed.

required

Whether the association between the report object type and attribute is always present.

type

Type of report object attribute.

reportObjectType

Report object type.

Required Arguments

Name Description

reportObjectTypeName

Unique name of the report object type.

Optional Arguments

Name Description

colorCode

The color associated with the report object type, in hexcode format '#rrggbb'.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

displayName

Display name of report object type.

newName

New name for an existing object that is being renamed.

sourceType

Category of the third-party tool that data for the given report object type is obtained from.

sourceTypeDescription

Description of the category of the third-party tool that may be displayed on the UI.

storagePattern

Storage pattern for report object type.

DSL Methods for CloudBees Flow objects that can be nested inside

reportingFilter

Reporting filter.

Required Arguments

Name Description

dashboardName

Unique name of the dashboard within the project.

projectName

The name for the project that must be unique among all projects.

reportingFilterName

The name of the reporting filter.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

operator

The operator is allowed to use in a reporting filter.

orderIndex

Order that the reporting filter should be displayed.

parameterName

The parameter name to filter on it.

reportObjectTypeName

The name of the report object type, if the reporting filter is a custom filter.

required

The flag to see is this reporting filter required to be used.

type

The type of the field value.

widgetName

The name of the widget this reporting filter is scoped to.

repository

Encapsulates various metadata about Repositories.

Required Arguments

Name Description

repositoryName

The repository name.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

repositoryDisabled

Whether or not to disable the repository.

url

The url for contacting the repository.

zoneName

The zone name.

DSL Methods for CloudBees Flow objects that can be nested inside

reservation

The reservation

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

reservationName

The name of the environment reservation.

Optional Arguments

Name Description

applicationName

The name of the application

beginDate

Date of beginning reservation

blackout

Do now allow executions against an environment at specified period

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

endDate

The date when reservation event ends

environmentName

The name of the environment.

environmentProjectName

The name of the environment project name

environmentTierName

The name of the environment tier.

monthDays

A list of numbers from 1-31 separated by spaces, indicating zero or more days of the month.

newName

New name for an existing object that is being renamed.

overlap

Allow to overlap the reservation

pipelineName

The name of the pipeline

recurrence

Recurrence reservation

recurrenceEndDate

Date of beginning reservation

releaseName

The name of the release

serviceName

The name of the service

timeZone

The time zone to use when interpreting times.

weekDays

Days of the week: any number of names such as Monday or Tuesday, separated by spaces

DSL Methods for CloudBees Flow objects that can be nested inside

resource

Abstract reference to an agent, responsible for running step commands.

Required Arguments

Name Description

resourceName

Name for the resource; must be unique among all resources.

Optional Arguments

Name Description

artifactCacheDirectory

Artifact cache directory for this resource.

block

True to block on the agent ping before returning.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

hostName

The domain name or IP address of the server machine corresponding to this resource.

hostType

The type of the host.

newName

New name for an existing object that is being renamed.

pools

[Deprecated] A list of arbitrary names separated by spaces, indicating the pools with which this resource is associated.

port

Port number to use when connecting to the agent for this resource; defaults to server default.

proxyCustomization

Proxy specific customization data; defaults to none.

proxyHostName

The domain name or IP address of the proxy agent machine corresponding to this resource.

proxyPort

Port number to use when connecting to the proxy agent for this resource; defaults to server default.

proxyProtocol

The protocol to use when proxying to this resource; defaults to none.

repositoryNames

A newline delimited list of repositories to retrieve artifacts from.

resourceDisabled

True means this resource will not be allocated to job steps, regardless of its step limit.

resourcePools

A list of arbitrary names separated by comma, indicating the pools with which this resource is associated.

shell

Name of the shell program that will execute the command and postprocessor for the step.

stepLimit

The maximum number of steps that may execute simultaneously using this resource.

trusted

True means the agent can speak to all other trusted agents in its zone. An untrusted agent can only speak to gateway agents.

useSSL

True means SSL is used for communication.

workspaceName

The name of the workspace.

zoneName

Name for the zone; must be unique among all zones.

DSL Methods for CloudBees Flow objects that can be nested inside

resourcePool

A collection of resources with a ordering policy.

Required Arguments

Name Description

resourcePoolName

Name for the resource pool; must be unique among all resource pools.

Optional Arguments

Name Description

autoDelete

If true, the pool is deleted when the last resource is deleted

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

orderingFilter

JavaScript fragment that returns custom ordering of resources in a pool.

resourceNames

List of resources to add/remove from the pool. (Alternate argument name 'resourceName')

resourcePoolDisabled

True means the resourcePool will not be allocated to job steps

DSL Methods for CloudBees Flow objects that can be nested inside

resourceTemplate

A template with the required information to provision and later spin up cloud resources on an on-demand basis.

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

resourceTemplateName

Name for the resource template; must be unique among all resource templates.

Optional Arguments

Name Description

cfgMgrParameters

configuration manager plugin parameters (Alternate argument name 'cfgMgrParameter')

cfgMgrPluginKey

configuration manager plugin key

cfgMgrProcedure

configuration manager plugin method name

cfgMgrProjectName

configuration manager plugin project name

cloudProviderParameters

cloud provider plugin parameters (Alternate argument name 'cloudProviderParameter')

cloudProviderPluginKey

cloud provider plugin key

cloudProviderProcedure

cloud provider plugin method name

cloudProviderProjectName

cloud provider plugin project name

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

DSL Methods for CloudBees Flow objects that can be nested inside

rollingDeployPhase

Represents a rolling deploy phase

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

rollingDeployPhaseName

The name of the rolling deploy phase

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

environmentName

The name of the environment

newName

New name for an existing object that is being renamed.

orderIndex

Specifies the phase order (starts from 1).

phaseExpression

A fixed text or text embedding property references that is evaluated into a logical TRUE or FALSE. An empty string, a "0" or "false" is interpreted as FALSE. Any other result string is interpreted as TRUE.

rollingDeployPhaseType

The type of rolling deploy phase.

samlIdentityProvider

SAML Identity Provider Configuration representation

Required Arguments

Name Description

samlIdentityProviderName

The name of the SAML Identity Provider

Optional Arguments

Name Description

colorCode

Color code to be associate with the IDP

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

enabled

If true, enables SAML Identity Provider

label

Label used by UI to display the text (e.g. label for UI button)

metadata

The metadata of the SAML identity provider

newName

New name for an existing object that is being renamed.

samlServiceProvider

Saml Service Provider Configuration representation

Required Arguments

Name Description

entityId

Service Provider entity id (usually URI)

serverUrl

URL for the service provider host

Optional Arguments

Name Description

authnRequestsSigned

Metadata will have AuthnRequestsSigned="true/false" in descriptor

enabled

If true, enables SAML Service Provider

mdSigningEnabled

If true, sign service provider metadata

mdSigningPassphrase

Passphrase use for SP metadata signing private key

mdSigningPrivateKey

SP metadata signing private key

mdSigningPublicCertificate

SP metadata signing public certificate

nameIdFormat

NameID format like urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified

passphrase

Passphrase use for SP private key

privateKey

SP private key

publicCertificate

SP’s public certificate

samlServiceProviderName

The name of the SAML Service Provider

wantAssertionsSigned

Metadata will have WantAssertionsSigned="true/false" in descriptor

schedule

This object is responsible for launching a procedure at some time in the future, possibly on a regular interval.

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

scheduleName

Name for the schedule; must be unique among all schedules for the project.

Optional Arguments

Name Description

actualParameters

Parameters passed to the invoked procedure/pipeline/process/release/workflow. (Alternate argument name 'actualParameter')

applicationName

The name of the application that owns the process.

applicationProjectName

Name for the project to which the application belongs to.

beginDate

The date when this schedule will begin (for example, 2006-05-15).

clearActualParameters

Whether or not to clear actual parameters for this object.

clearPipelineParameters

Whether or not to clear pipeline parameters for the schedule.

credentialName

The name of the credential to use for impersonation.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

endDate

The date when this schedule will end (for example, 2006-05-15). The end date is not included in the range of dates.

environmentMapName

The name of the service environment map used to determine where to run the process.

environmentName

The name of the environment used to determine where to run the process.

environmentProjectName

Name for the project to which the environment or environment template belongs to.

environmentTemplateName

The name of the environment template used to determine the environment where to run the process.

environmentTemplateProjectName

Name for the project to which the environment template belongs to.

environmentTemplateTierMapName

The name of the environment template tier map used to determine how to spin up the environment which will be used to run the process.

insertRollingDeployManualStep

True to indicate a manual step needs to be injected after each phase or batch.

interval

If specified, the procedure/pipeline/process/release/workflow will be rescheduled over and over again at intervals of this length. "Continuous" means reschedule the procedure/process/workflow as soon as the previous job finishes.

intervalUnits

Units for the interval of rescheduling.

misfirePolicy

Specifies the misfire policy for a schedule.

monthDays

A list of numbers from 1-31 separated by spaces, indicating zero or more days of the month.

newName

New name for an existing object that is being renamed.

pipelineName

Name of the pipeline to invoke.

pipelineParameters

Pipeline parameters used by a release schedule to override the default parameters configured in the release (Alternate argument name 'pipelineParameter')

priority

The priority of the job.

procedureName

The name of the procedure to invoke.

processName

The name of the application process to invoke.

releaseName

Name of the release to invoke.

rollingDeployEnabled

Perform rolling deployment.

rollingDeployManualStepAssignees

A list of assignees who receive the notification when rolling deploy iteration completes. (Alternate argument name 'rollingDeployManualStepAssignee')

rollingDeployManualStepCondition

Defines run condition on manual step created during rolling deployment. (Alternate argument name 'rollingDeployManualStepCondition')

rollingDeployPhases

One or more rolling deploy phases to be used for deployment. (Alternate argument name 'rollingDeployPhase')

scheduleDisabled

If this box is "checked", the schedule will run. You can disable this schedule whenever necessary.

serviceName

The name of the service that owns the process.

snapshotName

The name of the snapshot to be used to invoke the application process.

stagesToRun

One or more stages to run in a pipeline. (Alternate argument name 'stagesToRun')

startTime

The time of day to begin invoking this schedule’s procedure/pipeline/process/release/workflow (24-hour clock, for example, 17:00).

startingStage

Name of the starting stage in pipeline.

startingStateName

The name of the starting state of the workflow.

stopTime

The time of day to stop invoking this schedule’s procedure/pipeline/process/release/workflow (don’t start a new job after this time); time values use a 24-hour clock, for example, 17:00.

tierMapName

The name of the tier map used to determine where to run the process.

tierResourceCounts

Resource count per resource template tier (Alternate argument name 'tierResourceCount')

timeZone

The time zone to use when interpreting times.

weekDays

Days of the week: any number of names such as Monday or Tuesday, separated by spaces

workflowName

The name of the workflow to invoke.

DSL Methods for CloudBees Flow objects that can be nested inside

searchFilter

Search filter representation.

Required Arguments

Name Description

displayName

Search filter name.

objectType

Object type.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

newObjectType

Search filter entity type

searchQuery

Search filter query CLOB

userName

Search filter user name

DSL Methods for CloudBees Flow objects that can be nested inside

service

A micro-service that may or may not be made up of multiple containers.

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

serviceName

The name of the service

Optional Arguments

Name Description

addDeployProcess

If set to true,then a service process is also created.

applicationName

The name of an application to scope this service to.

defaultCapacity

The default service capacity

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

maxCapacity

The max service capacity

minCapacity

The min service capacity

newName

New name for an existing object that is being renamed.

volume

Volume json of the service

DSL Methods for CloudBees Flow objects that can be nested inside

serviceAccount

A service account object.

Required Arguments

Name Description

serviceAccountName

The service account name.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

DSL Methods for CloudBees Flow objects that can be nested inside

serviceClusterMapping

A mapping between a service and an environment cluster.

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

actualParameters

Actual parameters specific to plugin procedure associated with the application service (Alternate argument name 'actualParameter')

applicationEntityRevisionId

Revisionid of the versioned object

applicationName

The name of the application which contains the service.

applicationServiceMappingName

The name of the application service mapping.

clearActualParameters

True if we should remove all actual parameters.

clusterName

The name of the environment cluster.

clusterProjectName

The name of the project which contains the cluster.

defaultCapacity

The default service capacity

environmentMapName

The name of the environment map. If not provided, will use service name and environment name to resolve environmentMap.

environmentName

The name of the environment which contains the cluster.

environmentProjectName

The name of the environment which contains the cluster.

maxCapacity

The max service capacity

minCapacity

The min service capacity

serviceClusterMappingName

The name of the service cluster mapping.

serviceEntityRevisionId

Revisionid of the versioned object

serviceName

The name of the independent service.

tierMapName

The name of the tier map. If not provided, will use application name and environment name to resolve tierMap.

volume

Volume json of the service

DSL Methods for CloudBees Flow objects that can be nested inside

serviceClusterMapping

A mapping between a service and an environment cluster.

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

actualParameters

Actual parameters specific to plugin procedure associated with the application service (Alternate argument name 'actualParameter')

applicationEntityRevisionId

Revisionid of the versioned object

applicationName

The name of the application which contains the service.

applicationServiceMappingName

The name of the application service mapping.

clearActualParameters

True if we should remove all actual parameters.

clusterName

The name of the environment cluster.

clusterProjectName

The name of the project which contains the cluster.

defaultCapacity

The default service capacity

environmentMapName

The name of the environment map. If not provided, will use service name and environment name to resolve environmentMap.

environmentName

The name of the environment which contains the cluster.

environmentProjectName

The name of the environment which contains the cluster.

maxCapacity

The max service capacity

minCapacity

The min service capacity

serviceClusterMappingName

The name of the service cluster mapping.

serviceEntityRevisionId

Revisionid of the versioned object

serviceName

The name of the independent service.

tierMapName

The name of the tier map. If not provided, will use application name and environment name to resolve tierMap.

volume

Volume json of the service

DSL Methods for CloudBees Flow objects that can be nested inside

serviceDependency

Represents a service dependency on other applications or service

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

serviceName

The name of the service

Optional Arguments

Name Description

dependentApplicationName

The name of application which this application depends on.

dependentProjectName

The name the project containing the dependent application.

dependentServiceName

The name of service which this application depends on.

dependentSnapshotName

The name of snapshot of the dependent application.

effectiveDate

The date when this dependency is applicable (for example, 2006-05-15).

newName

New name for an existing object that is being renamed.

serviceDependencyName

The name of service dependency. If not specified, a system generated guid is used.

snapshotName

Name of the snapshot; must be unique within the application.

serviceMapDetail

Allows to override container definition at the time of application-service mapping

Required Arguments

Name Description

containerName

The name of the container.

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

actualParameters

Actual parameters specific to plugin procedure associated with the container (Alternate argument name 'actualParameter')

applicationEntityRevisionId

Revisionid of the versioned object

applicationName

The name of the application which contains the service.

applicationServiceMappingName

The name of the application service mapping.

clearActualParameters

True if we should remove all actual parameters.

command

command to run on the container

cpuCount

number of CPUs to allocate to the container

cpuLimit

maximum number of CPUs

credentialName

The name of a credential to be used for accessing specified registry.

entryPoint

entrypoint for the container

environmentMapName

The name of the environment map. If not provided, will use service name and environment name to resolve environmentMap.

environmentName

The name of the environment which contains the cluster.

environmentProjectName

The name of the environment which contains the cluster.

imageName

Name of the container image

imageVersion

Version of the container image

memoryLimit

Memory limit in MB

memorySize

Size of memory in MB

registryUri

Registry uri of the container image

serviceClusterMappingName

The name of the application service mapping.

serviceEntityRevisionId

Revisionid of the versioned object

serviceMapDetailName

The name of the service map detail.

serviceName

The name of the independent service.

tierMapName

The name of the tier map. If not provided, will use application name and environment name to resolve tierMap.

volumeMount

Volume mount json of the container image

DSL Methods for CloudBees Flow objects that can be nested inside

snapshot

A version of an application or service with specific artifact versions and the state of the application or service at any point in time.

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

snapshotName

Name of the snapshot; must be unique within the snapshot container.

Optional Arguments

Name Description

applicationName

The name of application from which the snapshot should be created

componentVersions

component names and version used for snapshot. use keyword 'LATEST' to indicate latest version (Alternate argument name 'componentVersion')

containerVersions

Volume mount json of the container image

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

environmentName

The name of environment from which snapshot be created

environmentProjectName

Name for the project to which the environment or environment template belongs to.

newName

New name for an existing object that is being renamed.

serviceName

The name of service from which the snapshot should be created

DSL Methods for CloudBees Flow objects that can be nested inside

stage

Logical grouping of pipeline tasks

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

stageName

The name of the stage

Optional Arguments

Name Description

afterStage

If specified, the stage will be placed after the named stage.

beforeStage

If specified, the stage will be placed before the named stage.

colorCode

The hexadecimal value of the color to be used with an entity.

completed

Set true to complete and false to incomplete a stage with manual completion type. A stage with auto completion type ignores this argument.

completionType

The stage completion type: auto (be default) or manual

condition

A fixed text or text embedding property references that is evaluated into a logical TRUE or FALSE. An empty string, a "0" or "false" is interpreted as FALSE. Any other result string is interpreted as TRUE.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

duration

Duration in minutes for which the stage or task should relative to 'plannedStartDate'.

incompletePostStages

If True then in case off specified stage inclompletion all post stages are incompleted too.

newName

New name for an existing object that is being renamed.

parallelToPrevious

If TRUE, the flow state will be run in parallel to the previous flow state

pipelineName

The name of the pipeline

plannedEndDate

The date when this stage or task is expected to end.

plannedStartDate

The date when this stage or task is expected to start.

precondition

A fixed text or text embedding property references that is evaluated into a logical TRUE or FALSE. An empty string, a "0" or "false" is interpreted as FALSE. Any other result string is interpreted as TRUE.

releaseName

The name of the release

resourceName

The name of the default resource for this stage.

timeZone

The time zone to use when interpreting times.

waitForPlannedStartDate

True to enable waiting for planned start date.

DSL Methods for CloudBees Flow objects that can be nested inside

stateDefinition

A state definition in a workflow definition. Each workflow can contain one or more states.

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

stateDefinitionName

The name used for the state definition

workflowDefinitionName

The name of the workflow definition.

Optional Arguments

Name Description

actualParameters

The actual parameters to the state definition’s process. (Alternate argument name 'actualParameter')

clearActualParameters

True if the state definition should remove all actual parameters to the process.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

startable

True if the workflow can begin in this state.

subprocedure

The name of the sub procedure.

subproject

The name of the project that contains the sub procedure.

substartingState

The name of the starting state to use in the subworkflowDefinition.

subworkflowDefinition

The name of the subworkflowDefinition.

DSL Methods for CloudBees Flow objects that can be nested inside

step

A unit of logic that will execute on an agent.

Required Arguments

Name Description

procedureName

Name for the procedure; must be unique within the project.

projectName

The name for the project that must be unique among all projects.

stepName

Name of the step; must be unique within the procedure.

Optional Arguments

Name Description

actualParameters

Actual parameters passed to an invoked subprocedure (Alternate argument name 'actualParameter')

afterProcedureStep

If specified, the procedure step will be placed after the named procedure step.

alwaysRun

True means this step will run even if preceding steps fail in a way that aborts the job

beforeProcedureStep

If specified, the procedure step will be placed before the named procedure step.

broadcast

True means replicate this step to execute (in parallel) on each of the specified resources (that is, for a pool, run the step on each of the resources in the pool).

clearActualParameters

True if the step should remove all actual parameters.

command

Script to execute the functions of this step; passed to the step’s shell for execution.

comment

Script to execute the functions of this step; passed to the step’s shell for execution.

condition

A fixed text or text embedding property references that is evaluated into a logical TRUE or FALSE. An empty string, a "0" or "false" is interpreted as FALSE. Any other result string is interpreted as TRUE.

credentialName

The name of the credential object.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

errorHandling

Specifies error handling for this step.

exclusive

True means the resource acquired for this step will be retained for the exclusive use of this job. This means 2 things: first, no other job will be able to use that resource, regardless of its step limit, until this job completes; second, future steps for this job will use the resource in preference to other resources, if this resource meets the needs of the steps and its step limit is not exceeded.

exclusiveMode

Determines the mode to use when the step acquires a resource. If set to 'none', then the default behavior for the step applies. If set to 'job', then the resource will be retained for the exclusive use of this job. If set to 'step', then the resource will be retained for the exclusive use of this step and procedure it may call. If set to 'call', then the resource will be retained for the exclusive use of all steps within the current procedure call.

logFileName

Name of the log file for a step; specified relative to the root directory in the job’s workspace.

newName

New name for an existing object that is being renamed.

parallel

True means this step and all adjacent steps with the flag set will run in parallel.

postProcessor

This command runs in parallel with the main command for the step; it analyzes the log for the step and collects diagnostic information.

precondition

A fixed text or text embedding property references that is evaluated into a logical TRUE or FALSE. An empty string, a "0" or "false" is interpreted as FALSE. Any other result string is interpreted as TRUE.

releaseExclusive

True means the resource acquired for this step will be no longer be retained for the exclusive use of this job when this step completes.

releaseMode

Determines the mode to use when the step releases its resource. If set to 'none', the default behavior applies. If set to 'release', then the resource will be available for use by any job. If set to 'releaseToJob', then the resource will be available for use by any step in this job.

resourceName

Name for the resource; must be unique among all resources.

shell

Name of the shell program that will execute the command and postprocessor for the step.

subprocedure

Name of a procedure to invoke during this step.

subproject

Name of the project containing the procedure to invoke during this step.

timeLimit

Maximum amount of time the step can execute; abort if it exceeds this time.

timeLimitUnits

Units for step time limit: seconds, minutes, or hours.

workingDirectory

Working directory in which to execute the command for this step. A relative name is interpreted relative to the root directory for the job’s workspace.

workspaceName

The name of the workspace.

DSL Methods for CloudBees Flow objects that can be nested inside

tag

Categorize objects using tags

Required Arguments

Name Description

tagName

The tag name.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

task

A representation of task within a stage or gate.

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

taskName

The name of the task

Optional Arguments

Name Description

actionLabelText

The Json derived action label text

actualParameters

Actual parameters passed to an invoked subprocedure (Alternate argument name 'actualParameter')

advancedMode

True to enable advanced mode so as to templatize snapshotName.

afterLastRetry

Specify continue or stop pipeline execution after last unsuccessful retry or a task.

afterTask

If specified, the task will be placed after the named task.

allowOutOfOrderRun

If True, allow to run a task out of order.

allowSkip

When enabled, manual task or gate rule can be skipped.

alwaysRun

True means this task will run even if preceding tasks fail in a way that aborts the pipeline

approvers

A list of task approvers who receive the notification. (Alternate argument name 'approver')

beforeTask

If specified, the task will be placed before the named task.

clearActualParameters

True if the task should remove all actual parameters.

clearOutOfOrderRunAssignees

True if the task should clean up all outOfOrderRunAssignees.

clearStageSummaryParameters

True if the task should remove all stage summary parameters

condition

A fixed text or text embedding property references that is evaluated into a logical TRUE or FALSE. An empty string, a "0" or "false" is interpreted as FALSE. Any other result string is interpreted as TRUE.

customLabel

Custom display name for sub pipelines or releases

deployerExpression

A fixed text or text embedding property references that is evaluated into a logical TRUE or FALSE. An empty string, a "0" or "false" is interpreted as FALSE. Any other result string is interpreted as TRUE.

deployerRunType

The type of the deployer run for deployer type of task. If parallel then all applications are deployed in parallel.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

disableFailure

True means a manual task cannot be failed.

duration

Duration in minutes for which the stage or task should relative to 'plannedStartDate'.

emailConfigName

The name of email configuration

enabled

True to enable the task.

environmentName

Environment name to create from template.

environmentProjectName

Name for the project to which the environment or environment template belongs to.

environmentTemplateName

Environment template name.

environmentTemplateProjectName

Name for the project to which the environment template belongs to.

errorHandling

Specifies error handling for this task.

firstTask

True to make a task first in a stage.

gateCondition

A fixed text or text embedding property references that is evaluated into a logical TRUE or FALSE. An empty string, a "0" or "false" is interpreted as FALSE. Any other result string is interpreted as TRUE.

gateType

The type of the gate.

groupName

The name of the group of task.

groupRunType

The type of the sub task run for a group task. If serial then all tasks are run in serial, otherwise - in parallel (by default).

insertRollingDeployManualStep

True to indicate a manual step needs to be injected after each phase or batch.

instruction

Instruction associated with the task.

keepOnError

True to keep environment on error (default is false)

newName

New name for an existing object that is being renamed.

notificationEnabled

True means this email notification is enabled, false otherwise.

notificationTemplate

String containing email formatting instructions for generating notifications.

outOfOrderRunAssignees

A list of users who can run a task out of order. (Alternate argument name 'outOfOrderRunAssignee')

parallelToPrevious

If TRUE, the flow state will be run in parallel to the previous flow state

pipelineName

The name of the pipeline

plannedEndDate

The date when this stage or task is expected to end.

plannedStartDate

The date when this stage or task is expected to start.

precondition

A fixed text or text embedding property references that is evaluated into a logical TRUE or FALSE. An empty string, a "0" or "false" is interpreted as FALSE. Any other result string is interpreted as TRUE.

releaseName

The name of the release

requiredApprovalsCount

The number of users from a group that should approve the task before it’s considered as finally approved.

resourceName

The name of the default resource for this task.

retryCount

If the retry is auto, specify the maximum number of times retry should occur.

retryInterval

If the retry is auto, specify the number of seconds to wait until the next retry should occur.

retryType

Type of rety when process step or task fails. Is one of 'auto' or 'manual'

rollingDeployEnabled

Perform rolling deployment.

rollingDeployManualStepAssignees

A list of assignees who receive the notification when rolling deploy iteration completes. (Alternate argument name 'rollingDeployManualStepAssignee')

rollingDeployManualStepCondition

Defines run condition on manual step created during rolling deployment. (Alternate argument name 'rollingDeployManualStepCondition')

rollingDeployPhases

One or more rolling deploy phases to be used for deployment. (Alternate argument name 'rollingDeployPhase')

skippable

True if a task is skippable.

snapshotName

Name of the snapshot associated with the application.

stageName

Name of the stage to which this task belongs to.

stageSummaryParameters

JSON representation of stage summary parameters and labels

stagesToRun

One or more stages to run in a pipeline. (Alternate argument name 'stagesToRun')

startTime

The time of day to begin invoking this task (24-hour clock, for example, 17:00).

startingStage

The name of the starting stage.

subErrorHandling

The impact of invoking pipeline run when sub-pipeline fails.

subapplication

The name of the application that owns the subprocess.

subpipeline

If referencing a pipeline, the name of the pipeline.

subpluginKey

If referencing a procedure, the name of the procedure’s pluginKey.

subprocedure

If referencing a procedure, the name of the procedure.

subprocess

The name of the process.

subproject

If referencing a procedure, the name of the procedure’s project.

subrelease

If referencing a release, the name of the release.

subreleasePipeline

The name of the pipeline to be used when attaching to the release instantiate from a releae task.

subreleasePipelineProject

The name of the project which contains the pipeline to the release instantiate from a releae task.

subreleaseSuffix

The suffix to be used when creating release.

subservice

The name of the service that owns the subprocess.

subworkflowDefinition

If referencing a workflow definition, the name of the workflow definition.

subworkflowStartingState

The name of the starting state in the specified workflow definition.

taskProcessType

The type of the process a task can invoke.

taskType

The type of the task.

tierResourceCounts

Resource count per resource template tier (Alternate argument name 'tierResourceCount')

timeZone

The time zone to use when interpreting times.

triggerType

The type of trigger when invoking a sub-pipeline.

useApproverAcl

True if after approve the authentication context of approving user should be added to the session.

waitForPlannedStartDate

True to enable waiting for planned start date.

workspaceName

The name of the workspace.

DSL Methods for CloudBees Flow objects that can be nested inside

tierMap

A map to hold mappings between application and an environment tiers.

Required Arguments

Name Description

applicationName

The name of the application

environmentName

The name of the environment.

environmentProjectName

The name of the environment’s project name.

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

applicationEntityRevisionId

Revisionid of the versioned object

tierMapName

The name of the tier map. If not specified the operation will assume a hyphenated application and environment name.

tierMappings

The list of mappings between the application tiers and the environment tiers. (Alternate argument name 'tierMapping')

DSL Methods for CloudBees Flow objects that can be nested inside

tierMapping

A mapping between an application tier and an environment tier.

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

applicationEntityRevisionId

Revisionid of the versioned object

applicationName

The name of the application

applicationTierName

Name of the application tier.

environmentName

The name of the environment.

environmentProjectName

The name of the environment’s project name.

environmentTierName

Name of the environment tier.

newName

New name for an existing object that is being renamed.

resourceExpression

resource expression to pick up resources from the environment tier

tierMapName

The name of the tier map.

tierMappingName

The name of the tierMapping.

transitionDefinition

Defines how a workflow must transition from one state to another.

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

stateDefinitionName

The name used for the state definition

transitionDefinitionName

The name used for the transition

workflowDefinitionName

The name of the workflow definition.

Optional Arguments

Name Description

actualParameters

The actual parameters to the transition’s target state. (Alternate argument name 'actualParameter')

clearActualParameters

True if the transition should remove all actual parameters to the target state.

condition

A fixed text or text embedding property references that is evaluated into a logical TRUE or FALSE. An empty string, a "0" or "false" is interpreted as FALSE. Any other result string is interpreted as TRUE.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

targetState

Target state for the transition definition.

trigger

Specifies the type of trigger for this transaction.

DSL Methods for CloudBees Flow objects that can be nested inside

user

A user object.

Required Arguments

Name Description

userName

The user name.

Optional Arguments

Name Description

clearPersonas

clear personas for user, if modifying.

email

Email address of the user.

fullUserName

Full name of the user.

groupNames

List of groups that this user is in. (Alternate argument name 'groupName')

migrateSettings

Migrate the user or group settings to this name.

newName

New name for an existing object that is being renamed.

password

The users password.

personas

List of personas that this user has. (Alternate argument name 'persona')

removeFromAllGroups

True to remove this user from all groups.

sessionPassword

Session user’s password. Used to re-verify identity before changing user passwords in the system.

DSL Methods for CloudBees Flow objects that can be nested inside

utilityResource

Utility resource representation.

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

utilityResourceName

Name for utilityResource; must be unique among all utility resources for the environment or environemnt template.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

environmentName

Name of parent environment

environmentTemplateName

Name of parent environmentTemplate

newName

New name for an existing object that is being renamed.

resourceName

The name of the default resource for this utility resource.

DSL Methods for CloudBees Flow objects that can be nested inside

waitDependency

Represents a dependency defined on a stage or task.

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

Optional Arguments

Name Description

allowSkip

The flag to indicate if a dependency can be skipped at runtime.

assigneesForSkip

A list of assignees who can skip a dependency at runtime.

dependentGateType

The type of dependent gate.

dependentPipelineName

The name of the dependent pipeline

dependentProjectName

The name of the dependent project

dependentReleaseName

The name of the dependent release

dependentStageName

The name of the dependent stage

dependentTaskName

The name of the dependent task

gateType

The type of gate.

newName

New name for an existing object that is being renamed.

pipelineName

The name of the pipeline

releaseName

The name of the release

stageName

The name of the stage

taskName

The name of the task

waitDependencyName

The name of the wait dependency.

waitForTriggeredPipelines

The flag to indicate that dependency should be created on all triggered pipelines.

waitForTriggeredReleases

The flag to indicate that dependency should be created on all triggered releases.

widget

Dashboard widget

Required Arguments

Name Description

dashboardName

Unique name of the dashboard within the project.

projectName

The name for the project that must be unique among all projects.

widgetName

The name of the dashboard widget.

Optional Arguments

Name Description

actualParameters

Actual parameter values for the parameters defined on the widget’s report. (Alternate argument name 'actualParameter')

afterWidget

The name of the widget after which this widget should be placed.

attributeDataTypes

Widget parameters used by UI to control data types of attributes (Alternate argument name 'attributeDataType')

attributePaths

Widget parameters used by UI to control paths of attributes (Alternate argument name 'attributePath')

beforeWidget

The name of the widget before which this widget should be placed.

clearAttributeDataTypes

Whether or not to clear attribute data types for the widget.

clearAttributePaths

Whether or not to clear attribute paths for the widget.

clearColors

Whether or not to clear color for the widget.

clearLinkParameters

Whether or not to clear link parameters for the widget.

clearVisualizationProperties

Whether or not to clear visualization properties for the widget.

colorRanges

The JSON with color ranges definition for the widget.

colors

Color map used when rendering the widget. The usage of the color map depends on the widget’s visualization type. (Alternate argument name 'color')

column

The column in a COMMANDER_CENTER dashboard that the widget belongs to. Required for a COMMANDER_CENTER dashboard widget unless the widget section is 'SUMMARY' in which case it is not applicable.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

iconUrl

The icon to display for the widget.

linkParameters

Widget parameters used by UI to construct the drill-down link for the widget. (Alternate argument name 'linkParameter')

linkTarget

Determines the page to navigate to when the user drills down through the dashboard widget.

newName

New name for an existing object that is being renamed.

orderIndex

Specifies the relative display order for the widget

phase

[DEPRECATED]: Use 'column' instead

reportName

Name of an existing report backing the widget

reportProjectName

Set if the report is in a different project than the dashboard.

section

The section of a COMMAND_CENTER dashboard to display the widget in. Applicable for a COMMANDER_CENTER dashboard widget.

title

The title to display for the widget. If not set, use the report title.

visualization

Type of visualization data in the widget.

visualizationProperties

Properties or settings used by the widget’s visualization type. (Alternate argument name 'visualizationProperty')

DSL Methods for CloudBees Flow objects that can be nested inside

widgetFilterOverride

Widget filter override.

Required Arguments

Name Description

dashboardFilterName

The name of the dashboard filter.

dashboardName

Unique name of the dashboard within the project.

projectName

The name for the project that must be unique among all projects.

widgetName

Name of the widget within the dashboard this widget filter override is scoped to.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

ignoreFilter

Whether to ignore the dashboard filter and not apply it to the report. All other arguments are ignored if this argument is set to true.

parameterName

The parameter name to use when applying the filter to the report instead of the parameter name specified in the dashboard filter.

workflowDefinition

A top-level workflow object, which is a container for states, and transitions, and other information defining your workflow.

Required Arguments

Name Description

projectName

The name for the project that must be unique among all projects.

workflowDefinitionName

The name of the workflow definition.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

workflowNameTemplate

The template used to name instances of this workflow definition.

DSL Methods for CloudBees Flow objects that can be nested inside

workspace

File system directory in which a JobStep’s logs and often its artifactVersions are stored.

Required Arguments

Name Description

workspaceName

The workspace name.

Optional Arguments

Name Description

agentDrivePath

Pathname to the root directory of a workspace, for use on Windows, specified with a drive letter.

agentUncPath

Pathname to the root directory of a workspace, for use on Windows, specified with a UNC path.

agentUnixPath

Pathname to the root directory of a workspace, for use on UNIX.

credentialName

The name of the impersonation credential to attach to this workspace.

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

local

True if the workspace is 'local'.

newName

New name for an existing object that is being renamed.

workspaceDisabled

True means this workspace is disabled.

zoneName

The zone name.

DSL Methods for CloudBees Flow objects that can be nested inside

zone

A zone or top-level network created as a way to partition a collection of agents to secure them from use by other groups.

Required Arguments

Name Description

zoneName

The zone name.

Optional Arguments

Name Description

description

Comment text describing this object that is not interpreted at all by CloudBees Flow.

newName

New name for an existing object that is being renamed.

DSL Methods for CloudBees Flow objects that can be nested inside