Recipe Types ServicesΒΆ

These services provide access to information about recipe types.

Recipe Type List
Returns recipe types and basic recipe type information
GET /recipe-types/
Query Parameters
page Integer Optional The page of the results to return. Defaults to 1.
page_size Integer Optional The size of the page to use for pagination of results. Defaults to 100, and can be anywhere from 1-1000.
started ISO-8601 Datetime Optional The start of the time range to query. Supports the ISO-8601 date/time format, (ex: 2015-01-01T00:00:00Z). Supports the ISO-8601 duration format, (ex: PT3H0M0S).
ended ISO-8601 Datetime Optional End of the time range to query, defaults to the current time. Supports the ISO-8601 date/time format, (ex: 2015-01-01T00:00:00Z). Supports the ISO-8601 duration format, (ex: PT3H0M0S).
order String Optional One or more fields to use when ordering the results. Duplicate it to multi-sort, (ex: order=name&order=version). Prefix fields with a dash to reverse the sort, (ex: order=-name).
Successful Response
Status 200 OK
Content Type application/json
JSON Fields
count Integer The total number of results that match the query parameters.
next URL A URL to the next page of results.
previous URL A URL to the previous page of results.
results Array List of result JSON objects that match the query parameters.
.id Integer The unique identifier of the model. Can be passed to the details API call. (See Recipe Type Details)
.name String The stable name of recipe job type used for queries.
.version String The version of the recipe type.
.title String The human readable display name of the recipe type.
.description String An optional description of the recipe type.
.is_active Boolean Whether the recipe type is active (false once recipe type is archived).
.definition JSON Object JSON description defining the interface for running a recipe of this type. (See Recipe Definition Specification Version 1.0)
.revision_num Integer The current revision number of the recipe type, incremented for each edit.
.created ISO-8601 Datetime When the associated database model was initially created.
.last_modified ISO-8601 Datetime When the associated database model was last saved.
.archived ISO-8601 Datetime When the recipe type was archived (no longer active).
.trigger_rule JSON Object The linked trigger rule that automatically invokes the recipe type. (See Trigger Rule Details)
{
    "count": 9,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": 1,
            "name": "my-recipe",
            "version": "1.0.0",
            "title": "My Recipe",
            "description": "This is a description of the recipe",
            "is_active": true,
            "definition": {
                "input_data": [
                    {
                        "media_types": [
                            "image/png"
                        ],
                        "type": "file",
                        "name": "input_file"
                    }
                ],
                "version": "1.0",
                "jobs": [
                    {
                        "recipe_inputs": [
                            {
                                "job_input": "input_file",
                                "recipe_input": "input_file"
                            }
                        ],
                        "name": "nitf",
                        "job_type": {
                            "name": "nitf-converter",
                            "version": "1.2.3"
                        }
                    }
                ]
            },
            "revision_num": 1,
            "created": "2015-06-15T19:03:26.346Z",
            "last_modified": "2015-06-15T19:03:26.346Z",
            "archived": null,
            "trigger_rule": {
                "id": 12
            }
        },
        ...
    ]
}
Create Recipe Type
Creates a new recipe type with associated definition
POST /recipe-types/
Content Type application/json
JSON Fields
name String Required The stable name of recipe type used for queries.
version String Required The version of the recipe type.
title String Optional The human-readable name of the recipe type.
description String Optional An optional description of the recipe type.
definition JSON Object Required JSON description of the interface for running a recipe of this type. (See Recipe Definition Specification Version 1.0)
trigger_rule JSON Object Optional The linked trigger rule that automatically invokes the recipe type. The type and configuration fields are required if setting a rule. The is_active field is optional and can be used to pause the recipe. (See Trigger Rule Details)
{
    "name": "my-recipe",
    "version": "1.0",
    "title": "My Recipe",
    "description": "This is a description of the recipe",
    "definition": {
        "input_data": [
            {
                "media_types": ["text/plain"],
                "type": "file",
                "name": "input_file"
            }
        ],
        "jobs": [
            {
                "recipe_inputs": [
                    {
                        "job_input": "input_file",
                        "recipe_input": "input_file"
                    }
                ],
                "name": "MyJob1",
                "job_type": {
                    "name": "my-job1",
                    "version": "1.2.3"
                }
            },
            {
                "recipe_inputs": [
                    {
                        "job_input": "input_file",
                        "recipe_input": "input_file"
                    }
                ],
                "name": "MyJob2",
                "job_type": {
                    "name": "my-job2",
                    "version": "4.5.6"
                }
            }
        ],
    },
    "trigger_rule": {
        "type": "PARSE",
        "is_active": true,
        "configuration": {
            "version": "1.0",
            "condition": {
                "media_type": "text/plain",
                "data_types": []
            },
            "data": {
                "input_data_name": "input_file",
                "workspace_name": "rs"
            }
        }
    }
}
Successful Response
Status 201 CREATED
Content Type application/json
JSON Fields
  JSON Object All fields are the same as the recipe type details model. (See Recipe Type Details)
{
    "id": 1,
    "name": "my-recipe",
    "version": "1.0.0",
    "title": "My Recipe",
    "description": "This is a description of the recipe",
    "is_active": true,
    "definition": {
        "input_data": [
            {
                "media_types": [
                    "image/png"
                ],
                "type": "file",
                "name": "input_file"
            }
        ],
        "version": "1.0",
        "jobs": [
            {
                "recipe_inputs": [
                    {
                        "job_input": "input_file",
                        "recipe_input": "input_file"
                    }
                ],
                "name": "my_job_type",
                "job_type": {
                    "name": "my-job-type",
                    "version": "1.2.3"
                }
            }
        ]
    },
    "revision_num": 1,
    "created": "2015-06-15T19:03:26.346Z",
    "last_modified": "2015-06-15T19:03:26.346Z",
    "archived": null,
    "trigger_rule": {
        "id": 12,
        "type": "PARSE",
        "name": "my-job-type-recipe",
        "is_active": true,
        "configuration": {
            "version": "1.0",
            "data": {
                "workspace_name": "products",
                "input_data_name": "input_file"
            },
            "condition": {
                "media_type": "image/png",
                "data_types": [
                    "My-Type"
                ]
            }
        }
    },
    "job_types": [
        {
            "id": 35,
            "name": "my-job-type",
            "version": "1.2.3",
            "title": "Job Type",
            "description": "This is a job type",
            "category": "system",
            "author_name": null,
            "author_url": null,
            "is_system": false,
            "is_long_running": false,
            "is_active": true,
            "is_operational": true,
            "is_paused": false,
            "icon_code": "f1c5",
            "interface": {
                "input_data": [
                    {
                        "media_types": [
                            "image/png"
                        ],
                        "type": "file",
                        "name": "input_file"
                    }
                ],
                "version": "1.0",
                "command": "command_to_run.sh",
                "output_data": [
                    {
                        "media_type": "image/png",
                        "type": "file",
                        "name": "my_file_name"
                    }
                ],
                "command_arguments": "${input_file} ${job_output_dir}"
            }
        },
        ...
    ]
}
Validate Recipe Type
Validates a new recipe type without actually saving it
POST /recipe-types/validation/
Content Type application/json
JSON Fields
name String Required The stable name of recipe job type used for queries.
version String Required The version of the recipe type.
title String Optional The human-readable name of the recipe type.
description String Optional An optional description of the recipe type.
definition JSON Object Required JSON description defining the interface for running the recipe type. (See Recipe Definition Specification Version 1.0)
trigger_rule JSON Object Optional The linked trigger rule that automatically invokes the recipe type. The type and configuration fields are required if setting a rule. The is_active field is optional and can be used to pause the recipe. (See Trigger Rule Details)
{
    "name": "my-recipe",
    "version": "1.0",
    "title": "My Recipe",
    "description": "This is a description of the recipe",
    "input_data": [
        {
            "media_types": ["text/plain"],
            "type": "file",
            "name": "input_file"
        }
    ],
    "jobs": [
        {
            "recipe_inputs": [
                {
                    "job_input": "input_file",
                    "recipe_input": "input_file"
                }
            ],
            "name": "MyJob1",
            "job_type": {
                "name": "my-job1",
                "version": "1.2.3"
            }
        },
        {
            "recipe_inputs": [
                {
                    "job_input": "input_file",
                    "recipe_input": "input_file"
                }
            ],
            "name": "MyJob2",
            "job_type": {
                "name": "my-job2",
                "version": "4.5.6"
            }
        }
    ],
    "trigger_rule": {
        "type": "PARSE",
        "is_active": true,
        "configuration": {
            "version": "1.0",
            "condition": {
                "media_type": "text/plain",
                "data_types": []
            },
            "data": {
                "input_data_name": "input_file",
                "workspace_name": "rs"
            }
        }
    }
}
Successful Response
Status 200 OK
Content Type application/json
JSON Fields
warnings Array A list of warnings discovered during validation.
.id String An identifier for the warning.
.details String A human-readable description of the problem.
{
    "warnings": [
        "id": "media_type",
        "details": "Invalid media type for data input: input_file -> image/png"
    ]
}
Recipe Type Details
Returns a specific recipe type and all its related model information.
GET /recipe-types/{id}/
Where {id} is the unique identifier of an existing model.
Successful Response
Status 200 OK
Content Type application/json
JSON Fields
id Integer The unique identifier of the model.
name String The human-readable name of the recipe type.
version String The version of the recipe type.
description String An optional description of the recipe type.
is_active Boolean Whether the recipe type is active (false once recipe type is archived).
definition JSON Object JSON description defining the interface for running a recipe of this type. (See Recipe Definition Specification Version 1.0)
revision_num Integer The current revision number of the recipe type, incremented for each edit.
created ISO-8601 Datetime When the associated database model was initially created.
last_modified ISO-8601 Datetime When the associated database model was last saved.
archived ISO-8601 Datetime When the recipe type was archived (no longer active).
trigger_rule JSON Object The associated trigger rule that automatically invokes this recipe type. (See Trigger Rule Details)
job_types Array List of all job_types that are referenced by this recipe type’s definition (See Job Type Details)
{
    "id": 1,
    "name": "my-recipe",
    "version": "1.0.0",
    "title": "My Recipe",
    "description": "This is a description of the recipe",
    "is_active": true,
    "definition": {
        "input_data": [
            {
                "media_types": [
                    "image/png"
                ],
                "type": "file",
                "name": "input_file"
            }
        ],
        "version": "1.0",
        "jobs": [
            {
                "recipe_inputs": [
                    {
                        "job_input": "input_file",
                        "recipe_input": "input_file"
                    }
                ],
                "name": "my_job_type",
                "job_type": {
                    "name": "my-job-type",
                    "version": "1.2.3"
                }
            }
        ]
    },
    "revision_num": 1,
    "created": "2015-06-15T19:03:26.346Z",
    "last_modified": "2015-06-15T19:03:26.346Z",
    "archived": null,
    "trigger_rule": {
        "id": 12,
        "type": "PARSE",
        "name": "my-job-type-recipe",
        "is_active": true,
        "configuration": {
            "version": "1.0",
            "data": {
                "workspace_name": "products",
                "input_data_name": "input_file"
            },
            "condition": {
                "media_type": "image/png",
                "data_types": [
                    "My-Type"
                ]
            }
        }
    },
    "job_types": [
        {
            "id": 35,
            "name": "my-job-type",
            "version": "1.2.3",
            "title": "Job Type",
            "description": "This is a job type",
            "category": "system",
            "author_name": null,
            "author_url": null,
            "is_system": false,
            "is_long_running": false,
            "is_active": true,
            "is_operational": true,
            "is_paused": false,
            "icon_code": "f1c5",
            "interface": {
                "input_data": [
                    {
                        "media_types": [
                            "image/png"
                        ],
                        "type": "file",
                        "name": "input_file"
                    }
                ],
                "version": "1.0",
                "command": "command_to_run.sh",
                "output_data": [
                    {
                        "media_type": "image/png",
                        "type": "file",
                        "name": "my_file_name"
                    }
                ],
                "command_arguments": "${input_file} ${job_output_dir}"
            }
        },
        ...
    ]
}
Edit Recipe Type
Edits an existing recipe type with associated definition
PATCH /recipe-types/{id}/
Where {id} is the unique identifier of an existing model.
Content Type application/json
JSON Fields
title String Optional The human-readable name of the recipe type.
description String Optional An optional description of the recipe type.
definition JSON Object Optional JSON description of the interface for running a recipe of this type. (See Recipe Definition Specification Version 1.0)
trigger_rule JSON Object Optional The linked trigger rule that automatically invokes the recipe type. The type and configuration fields are required if setting a rule. The is_active field is optional and can be used to pause the recipe. Set this field to null to remove the existing trigger rule. (See Trigger Rule Details)
{
    "title": "My Recipe",
    "description": "This is a description of the recipe",
    "definition": {
        "input_data": [
            {
                "media_types": ["text/plain"],
                "type": "file",
                "name": "input_file"
            }
        ],
        "jobs": [
            {
                "recipe_inputs": [
                    {
                        "job_input": "input_file",
                        "recipe_input": "input_file"
                    }
                ],
                "name": "MyJob1",
                "job_type": {
                    "name": "my-job1",
                    "version": "1.2.3"
                }
            },
            {
                "recipe_inputs": [
                    {
                        "job_input": "input_file",
                        "recipe_input": "input_file"
                    }
                ],
                "name": "MyJob2",
                "job_type": {
                    "name": "my-job2",
                    "version": "4.5.6"
                }
            }
        ],
    },
    "trigger_rule": {
        "type": "PARSE",
        "is_active": true,
        "configuration": {
            "version": "1.0",
            "condition": {
                "media_type": "text/plain",
                "data_types": []
            },
            "data": {
                "input_data_name": "input_file",
                "workspace_name": "rs"
            }
        }
    }
}
Successful Response
Status 200 OK
Content Type application/json
JSON Fields
  JSON Object All fields are the same as the recipe type details model. (See Recipe Type Details)
{
    "id": 1,
    "name": "my-recipe",
    "version": "1.0.0",
    "title": "My Recipe",
    "description": "This is a description of the recipe",
    "is_active": true,
    "definition": {
        "input_data": [
            {
                "media_types": [
                    "image/png"
                ],
                "type": "file",
                "name": "input_file"
            }
        ],
        "version": "1.0",
        "jobs": [
            {
                "recipe_inputs": [
                    {
                        "job_input": "input_file",
                        "recipe_input": "input_file"
                    }
                ],
                "name": "my_job_type",
                "job_type": {
                    "name": "my-job-type",
                    "version": "1.2.3"
                }
            }
        ]
    },
    "revision_num": 2,
    "created": "2015-06-15T19:03:26.346Z",
    "last_modified": "2015-06-15T19:03:26.346Z",
    "archived": null,
    "trigger_rule": {
        "id": 12,
        "type": "PARSE",
        "name": "my-job-type-recipe",
        "is_active": true,
        "configuration": {
            "version": "1.0",
            "data": {
                "workspace_name": "products",
                "input_data_name": "input_file"
            },
            "condition": {
                "media_type": "image/png",
                "data_types": [
                    "My-Type"
                ]
            }
        }
    },
    "job_types": [
        {
            "id": 35,
            "name": "my-job-type",
            "version": "1.2.3",
            "title": "Job Type",
            "description": "This is a job type",
            "category": "system",
            "author_name": null,
            "author_url": null,
            "is_system": false,
            "is_long_running": false,
            "is_active": true,
            "is_operational": true,
            "is_paused": false,
            "icon_code": "f1c5",
            "interface": {
                "input_data": [
                    {
                        "media_types": [
                            "image/png"
                        ],
                        "type": "file",
                        "name": "input_file"
                    }
                ],
                "version": "1.0",
                "command": "command_to_run.sh",
                "output_data": [
                    {
                        "media_type": "image/png",
                        "type": "file",
                        "name": "my_file_name"
                    }
                ],
                "command_arguments": "${input_file} ${job_output_dir}"
            }
        },
        ...
    ]
}