Build Service

The build service allows you to compile definitions of jobs, folders, or calendars and verify that they are valid for your Control-M environment. Control-M validation includes basic Control-M rules such as length of fields, allowed characters, and mandatory fields. Build will also check that the JSON is valid.

Definitions will be evaluated against the relevant site standard.

The build command can receive a definitions file in .json format or packages of multiple definition files in .zip or .tar.gz format. For more information, see Code Reference.

CLI Syntax

Copy
ctm build <definitionsFile> [deployDescriptorFile]

Where:

Parameter

Description

<definitionsFile>

The file or archive that contains code for jobs, folders, or calendars.

Valid formats are:

  • .json

  • .zip or .tar.gz.

Calendar definitions are supported in .json format only.

[deployDescriptorFile]

(Optional) The file that includes the rules to apply on the original definitionsFile.

The rules enable transforming Control-M JSON code properties. 

For detailed information, see Deploy Descriptor.

REST API Syntax

Example using cURL:

Copy
curl -H "x-api-key: $token" -X POST -F "definitionsFile=@examples/AutomationAPISampleFlow.json" -F "deployDescriptorFile=@examples/deployDescriptor.json" "$endpoint/build"

The following example shows how to use the build command in a Python function :

Copy
token = r_login.json()['token']
 
# -----------------
# Built
uploaded_files = [
('definitionsFile', ('Jobs.json', open('examples/AutomationAPISampleFlow.json', 'rb'), 'application/json'))
]
 
r = requests.post(endPoint + '/build', files=uploaded_files, headers={'x-api-key': + token}, verify=False)
print(r.content)
print(r.status_code)
exit(r.status_code == requests.codes.ok)

For more information, see Control-M Automation REST API Reference.

Response

The following example demonstrates a typical response to the build command. The response summarizes the numbers of various elements created (such as folders and jobs), indicates whether a Deploy Descriptor is applied, and provides validation messages if site standards are applied (error messages if validations are strictly enforced, or warning messages if validations are not strictly enforced).

Copy
{
    "deploymentFile": "Folder.json",
    "successfulFoldersCount": 0,
    "successfulSmartFoldersCount": 1,
    "successfulSubFoldersCount": 0,
    "successfulJobsCount": 1,
    "successfulConnectionProfilesCount": 0,
    "successfulDriversCount": 0,
    "isDeployDescriptorValid": false,
    "warnings": [
       {
          "message": "Department has to be from values [HR, DEV, FINANCE] ",
          "id": "Validation10006",
          "file": "Folder.json",
          "line": 3,
          "col": 25
       }
    ]
}