Registers a new activity type along with its configuration settings in the specified domain.
A TypeAlreadyExists
fault is returned if the type already exists in the domain.
You cannot change any configuration settings of the type after its registration, and it must be
registered as a new version.
Access Control
You can use IAM policies to control this action’s access to Amazon SWF resources as follows:
- Use a
Resource
element with the domain name to limit the action to only specified domains. - Use an
Action
element to allow or deny permission to call this action. - Constrain the following parameters by using a
Condition
element with the appropriate keys.defaultTaskList
: String constraint. The key isswf:defaultTaskList.name
.name
: String constraint. The key isswf:name
.version
: String constraint. The key isswf:version
.
If the caller does not have sufficient permissions to invoke the action, or the parameter
values fall outside the specified constraints, the action fails by throwing
OperationNotPermitted
. For details and example IAM policies, see Using IAM to
Manage Access to Amazon SWF Workflows.
Access
public
Parameters
Parameter |
Type |
Required |
Description |
---|---|---|---|
|
Optional |
An associative array of parameters that can have the following keys:
|
Returns
Type |
Description |
---|---|
A |
Examples
Activity Type CRUD.
Shows an example of activity type CRUD methods.
This sample uses anonymous functions, which are only available in PHP 5.3+. For PHP 5.2 users, you must used named functions instead of anonymous ones.
// Instantiate the class $swf = new AmazonSWF(); // Setup $timestamp = time(); $workflow_domain = 'my-domain' . $timestamp; $activity_type_name = 'my-activity-type'; //-----------------------------------------------------------------// // Register a new activity type echo '# Registering a new activity type...' . PHP_EOL; $workflow_type = $swf->register_activity_type(array( 'domain' => $workflow_domain, 'name' => $activity_type_name, 'version' => '1.0', 'description' => 'A test task to show how this thing works.', 'defaultChildPolicy' => AmazonSWF::POLICY_TERMINATE, 'defaultTaskList' => array( 'name' => 'my-task-list' ), )); if ($domain->isOK()) { echo 'Waiting for the activity type to become ready...' . PHP_EOL; do { sleep(1); $describe = $swf->describe_activity_type(array( 'domain' => $workflow_domain, 'activityType' => array( 'name' => $activity_type_name, 'version' => '1.0' ) )); } while ((string) $describe->body->typeInfo->status !== AmazonSWF::STATUS_REGISTERED); echo 'Activity type was created successfully.' . PHP_EOL; } else { echo 'Activity type creation failed.'; } echo PHP_EOL; //-----------------------------------------------------------------// // List all registered activity types echo "# Listing all registered activity types for the \"${workflow_domain}\" domain..." . PHP_EOL; // Anonymous callbacks require PHP 5.3. PHP 5.2 users can create a // named function and pass it to the each() method. $swf->list_activity_types(array( 'domain' => $workflow_domain, 'registrationStatus' => AmazonSWF::STATUS_REGISTERED, )) ->body->typeInfos()->each(function($item) { echo (string) $item->status . ': ' . (string) $item->activityType->name . ' ' . (string) $item->activityType->version . PHP_EOL; }); echo PHP_EOL; //-----------------------------------------------------------------// // Describing a specific activity type echo "# Describing the \"${activity_type_name}\" workflow type from the \"${workflow_domain}\" domain..." . PHP_EOL; // Describe a domain $describe = $swf->describe_activity_type(array( 'domain' => $workflow_domain, 'activityType' => array( 'name' => $activity_type_name, 'version' => '1.0' ) )); print_r($describe->body); echo PHP_EOL; //-----------------------------------------------------------------// // Deprecate a activity type echo '# Deprecating an activity type...' . PHP_EOL; $deprecate_activity_type = $swf->deprecate_activity_type(array( 'domain' => $workflow_domain, 'activityType' => array( 'name' => $activity_type_name, 'version' => '1.0', ) )); if ($domain->isOK()) { echo 'Activity flow was deprecated successfully.' . PHP_EOL; } else { echo 'Activity flow deprecation failed.'; } echo PHP_EOL;
Source
Method defined in services/swf.class.php | Toggle source view (6 lines) | View on GitHub