%% WARNING: DO NOT EDIT, AUTO-GENERATED CODE!
%% See https://github.com/aws-beam/aws-codegen for more details.
%% @doc
Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% Condition element with the appropriate keys.
%%
%% tagFilter.tag: String constraint. The key is
%% swf:tagFilter.tag.
%%
%% typeFilter.name: String constraint. The key is
%% swf:typeFilter.name.
%%
%% typeFilter.version: String constraint. The key is
%% swf:typeFilter.version.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
count_closed_workflow_executions(Client, Input)
when is_map(Client), is_map(Input) ->
count_closed_workflow_executions(Client, Input, []).
count_closed_workflow_executions(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CountClosedWorkflowExecutions">>, Input, Options).
%% @doc Returns the number of open workflow executions within the given
%% domain that meet the specified filtering criteria.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% Condition element with the appropriate keys.
%%
%% tagFilter.tag: String constraint. The key is
%% swf:tagFilter.tag.
%%
%% typeFilter.name: String constraint. The key is
%% swf:typeFilter.name.
%%
%% typeFilter.version: String constraint. The key is
%% swf:typeFilter.version.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
count_open_workflow_executions(Client, Input)
when is_map(Client), is_map(Input) ->
count_open_workflow_executions(Client, Input, []).
count_open_workflow_executions(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CountOpenWorkflowExecutions">>, Input, Options).
%% @doc Returns the estimated number of activity tasks in the specified task
%% list. The count returned is an approximation and isn't guaranteed to be
%% exact. If you specify a task list that no activity task was ever scheduled
%% in then 0 is returned.
%%
%% Access Control
%%
%% You can use IAM policies to control this action's access to Amazon SWF
%% resources as follows:
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% taskList.name parameter by using a
%% Condition element with the swf:taskList.name key
%% to allow the action to access only certain task lists.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
count_pending_activity_tasks(Client, Input)
when is_map(Client), is_map(Input) ->
count_pending_activity_tasks(Client, Input, []).
count_pending_activity_tasks(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CountPendingActivityTasks">>, Input, Options).
%% @doc Returns the estimated number of decision tasks in the specified task
%% list. The count returned is an approximation and isn't guaranteed to be
%% exact. If you specify a task list that no decision task was ever scheduled
%% in then 0 is returned.
%%
%% Access Control
%%
%% You can use IAM policies to control this action's access to Amazon SWF
%% resources as follows:
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% taskList.name parameter by using a
%% Condition element with the swf:taskList.name key
%% to allow the action to access only certain task lists.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
count_pending_decision_tasks(Client, Input)
when is_map(Client), is_map(Input) ->
count_pending_decision_tasks(Client, Input, []).
count_pending_decision_tasks(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CountPendingDecisionTasks">>, Input, Options).
%% @doc Deprecates the specified activity type. After an activity type
%% has been deprecated, you cannot create new tasks of that activity type.
%% Tasks of this type that were scheduled before the type was deprecated
%% continue to run.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% Condition element with the appropriate keys.
%%
%% activityType.name: String constraint. The key is
%% swf:activityType.name.
%%
%% activityType.version: String constraint. The key
%% is swf:activityType.version.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
deprecate_activity_type(Client, Input)
when is_map(Client), is_map(Input) ->
deprecate_activity_type(Client, Input, []).
deprecate_activity_type(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeprecateActivityType">>, Input, Options).
%% @doc Deprecates the specified domain. After a domain has been deprecated
%% it cannot be used to create new workflow executions or register new types.
%% However, you can still use visibility actions on this domain. Deprecating
%% a domain also deprecates all activity and workflow types registered in the
%% domain. Executions that were started before the domain was deprecated
%% continues to run.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
deprecate_domain(Client, Input)
when is_map(Client), is_map(Input) ->
deprecate_domain(Client, Input, []).
deprecate_domain(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeprecateDomain">>, Input, Options).
%% @doc Deprecates the specified workflow type. After a workflow type
%% has been deprecated, you cannot create new executions of that type.
%% Executions that were started before the type was deprecated continues to
%% run. A deprecated workflow type may still be used when calling visibility
%% actions.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% Condition element with the appropriate keys.
%%
%% workflowType.name: String constraint. The key is
%% swf:workflowType.name.
%%
%% workflowType.version: String constraint. The key
%% is swf:workflowType.version.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
deprecate_workflow_type(Client, Input)
when is_map(Client), is_map(Input) ->
deprecate_workflow_type(Client, Input, []).
deprecate_workflow_type(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeprecateWorkflowType">>, Input, Options).
%% @doc Returns information about the specified activity type. This includes
%% configuration settings provided when the type was registered and other
%% general information about the type.
%%
%% Access Control
%%
%% You can use IAM policies to control this action's access to Amazon SWF
%% resources as follows:
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% Condition element with the appropriate keys.
%%
%% activityType.name: String constraint. The key is
%% swf:activityType.name.
%%
%% activityType.version: String constraint. The key
%% is swf:activityType.version.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
describe_activity_type(Client, Input)
when is_map(Client), is_map(Input) ->
describe_activity_type(Client, Input, []).
describe_activity_type(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeActivityType">>, Input, Options).
%% @doc Returns information about the specified domain, including description
%% and status.
%%
%% Access Control
%%
%% You can use IAM policies to control this action's access to Amazon SWF
%% resources as follows:
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
describe_domain(Client, Input)
when is_map(Client), is_map(Input) ->
describe_domain(Client, Input, []).
describe_domain(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeDomain">>, Input, Options).
%% @doc Returns information about the specified workflow execution including
%% its type and some statistics.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
describe_workflow_execution(Client, Input)
when is_map(Client), is_map(Input) ->
describe_workflow_execution(Client, Input, []).
describe_workflow_execution(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeWorkflowExecution">>, Input, Options).
%% @doc Returns information about the specified workflow type. This
%% includes configuration settings specified when the type was registered and
%% other information such as creation date, current status, etc.
%%
%% Access Control
%%
%% You can use IAM policies to control this action's access to Amazon SWF
%% resources as follows:
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% Condition element with the appropriate keys.
%%
%% workflowType.name: String constraint. The key is
%% swf:workflowType.name.
%%
%% workflowType.version: String constraint. The key
%% is swf:workflowType.version.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
describe_workflow_type(Client, Input)
when is_map(Client), is_map(Input) ->
describe_workflow_type(Client, Input, []).
describe_workflow_type(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeWorkflowType">>, Input, Options).
%% @doc Returns the history of the specified workflow execution. The results
%% may be split into multiple pages. To retrieve subsequent pages, make the
%% call again using the nextPageToken returned by the initial
%% call.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
get_workflow_execution_history(Client, Input)
when is_map(Client), is_map(Input) ->
get_workflow_execution_history(Client, Input, []).
get_workflow_execution_history(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetWorkflowExecutionHistory">>, Input, Options).
%% @doc Returns information about all activities registered in the specified
%% domain that match the specified name and registration status. The result
%% includes information like creation date, current status of the activity,
%% etc. The results may be split into multiple pages. To retrieve subsequent
%% pages, make the call again using the nextPageToken returned
%% by the initial call.
%%
%% Access Control
%%
%% You can use IAM policies to control this action's access to Amazon SWF
%% resources as follows:
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
list_activity_types(Client, Input)
when is_map(Client), is_map(Input) ->
list_activity_types(Client, Input, []).
list_activity_types(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListActivityTypes">>, Input, Options).
%% @doc Returns a list of closed workflow executions in the specified domain
%% that meet the filtering criteria. The results may be split into multiple
%% pages. To retrieve subsequent pages, make the call again using the
%% nextPageToken returned by the initial call.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% Condition element with the appropriate keys.
%%
%% tagFilter.tag: String constraint. The key is
%% swf:tagFilter.tag.
%%
%% typeFilter.name: String constraint. The key is
%% swf:typeFilter.name.
%%
%% typeFilter.version: String constraint. The key is
%% swf:typeFilter.version.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
list_closed_workflow_executions(Client, Input)
when is_map(Client), is_map(Input) ->
list_closed_workflow_executions(Client, Input, []).
list_closed_workflow_executions(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListClosedWorkflowExecutions">>, Input, Options).
%% @doc Returns the list of domains registered in the account. The results
%% may be split into multiple pages. To retrieve subsequent pages, make the
%% call again using the nextPageToken returned by the initial call.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains. The element must be set to
%% arn:aws:swf::AccountID:domain/*, where AccountID is
%% the account ID, with no dashes.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
list_domains(Client, Input)
when is_map(Client), is_map(Input) ->
list_domains(Client, Input, []).
list_domains(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListDomains">>, Input, Options).
%% @doc Returns a list of open workflow executions in the specified domain
%% that meet the filtering criteria. The results may be split into multiple
%% pages. To retrieve subsequent pages, make the call again using the
%% nextPageToken returned by the initial call.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% Condition element with the appropriate keys.
%%
%% tagFilter.tag: String constraint. The key is
%% swf:tagFilter.tag.
%%
%% typeFilter.name: String constraint. The key is
%% swf:typeFilter.name.
%%
%% typeFilter.version: String constraint. The key is
%% swf:typeFilter.version.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
list_open_workflow_executions(Client, Input)
when is_map(Client), is_map(Input) ->
list_open_workflow_executions(Client, Input, []).
list_open_workflow_executions(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListOpenWorkflowExecutions">>, Input, Options).
%% @doc List tags for a given domain.
list_tags_for_resource(Client, Input)
when is_map(Client), is_map(Input) ->
list_tags_for_resource(Client, Input, []).
list_tags_for_resource(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListTagsForResource">>, Input, Options).
%% @doc Returns information about workflow types in the specified domain. The
%% results may be split into multiple pages that can be retrieved by making
%% the call repeatedly.
%%
%% Access Control
%%
%% You can use IAM policies to control this action's access to Amazon SWF
%% resources as follows:
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
list_workflow_types(Client, Input)
when is_map(Client), is_map(Input) ->
list_workflow_types(Client, Input, []).
list_workflow_types(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListWorkflowTypes">>, Input, Options).
%% @doc Used by workers to get an ActivityTask from the specified
%% activity taskList. This initiates a long poll, where the
%% service holds the HTTP connection open and responds as soon as a task
%% becomes available. The maximum time the service holds on to the request
%% before responding is 60 seconds. If no task is available within 60
%% seconds, the poll returns an empty result. An empty result, in this
%% context, means that an ActivityTask is returned, but that the value of
%% taskToken is an empty string. If a task is returned, the worker should use
%% its type to identify and process it correctly.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% taskList.name parameter by using a
%% Condition element with the swf:taskList.name key
%% to allow the action to access only certain task lists.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
poll_for_activity_task(Client, Input)
when is_map(Client), is_map(Input) ->
poll_for_activity_task(Client, Input, []).
poll_for_activity_task(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"PollForActivityTask">>, Input, Options).
%% @doc Used by deciders to get a DecisionTask from the specified
%% decision taskList. A decision task may be returned for any
%% open workflow execution that is using the specified task list. The task
%% includes a paginated view of the history of the workflow execution. The
%% decider should use the workflow type and the history to determine how to
%% properly handle the task.
%%
%% This action initiates a long poll, where the service holds the HTTP
%% connection open and responds as soon a task becomes available. If no
%% decision task is available in the specified task list before the timeout
%% of 60 seconds expires, an empty result is returned. An empty result, in
%% this context, means that a DecisionTask is returned, but that the value of
%% taskToken is an empty string.
%%
%% PollForDecisionTask using the
%% nextPageToken returned by the initial call. Note that you do
%% not call GetWorkflowExecutionHistory with this
%% nextPageToken. Instead, call PollForDecisionTask
%% again.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% taskList.name parameter by using a
%% Condition element with the swf:taskList.name key
%% to allow the action to access only certain task lists.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
poll_for_decision_task(Client, Input)
when is_map(Client), is_map(Input) ->
poll_for_decision_task(Client, Input, []).
poll_for_decision_task(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"PollForDecisionTask">>, Input, Options).
%% @doc Used by activity workers to report to the service that the
%% ActivityTask represented by the specified taskToken is
%% still making progress. The worker can also specify details of the
%% progress, for example percent complete, using the details
%% parameter. This action can also be used by the worker as a mechanism to
%% check if cancellation is being requested for the activity task. If a
%% cancellation is being attempted for the specified task, then the boolean
%% cancelRequested flag returned by the service is set to
%% true.
%%
%% This action resets the taskHeartbeatTimeout clock. The
%% taskHeartbeatTimeout is specified in
%% RegisterActivityType.
%%
%% This action doesn't in itself create an event in the workflow execution
%% history. However, if the task times out, the workflow execution history
%% contains a ActivityTaskTimedOut event that contains the
%% information from the last heartbeat generated by the activity worker.
%%
%% taskStartToCloseTimeout of an activity type is the
%% maximum duration of an activity task, regardless of the number of
%% RecordActivityTaskHeartbeat requests received. The
%% taskStartToCloseTimeout is also specified in
%% RegisterActivityType.
%%
%% cancelRequested flag returns
%% true, a cancellation is being attempted. If the worker can
%% cancel the activity, it should respond with
%% RespondActivityTaskCanceled. Otherwise, it should ignore the
%% cancellation request.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
record_activity_task_heartbeat(Client, Input)
when is_map(Client), is_map(Input) ->
record_activity_task_heartbeat(Client, Input, []).
record_activity_task_heartbeat(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"RecordActivityTaskHeartbeat">>, Input, Options).
%% @doc Registers a new activity type along with its configuration
%% settings in the specified domain.
%%
%% 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.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% Condition element with the appropriate keys.
%%
%% defaultTaskList.name: String constraint. The key is
%% swf:defaultTaskList.name.
%%
%% name: String constraint. The key is
%% swf:name.
%%
%% version: String constraint. The key is
%% swf:version.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
register_activity_type(Client, Input)
when is_map(Client), is_map(Input) ->
register_activity_type(Client, Input, []).
register_activity_type(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"RegisterActivityType">>, Input, Options).
%% @doc Registers a new domain.
%%
%% Access Control
%%
%% You can use IAM policies to control this action's access to Amazon SWF
%% resources as follows:
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
register_domain(Client, Input)
when is_map(Client), is_map(Input) ->
register_domain(Client, Input, []).
register_domain(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"RegisterDomain">>, Input, Options).
%% @doc Registers a new workflow type and its configuration settings
%% in the specified domain.
%%
%% The retention period for the workflow history is set by the
%% RegisterDomain action.
%%
%% TypeAlreadyExists fault is returned. You cannot change the
%% configuration settings of a workflow type once it is registered and it
%% must be registered as a new version.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% Condition element with the appropriate keys.
%%
%% defaultTaskList.name: String constraint. The key is
%% swf:defaultTaskList.name.
%%
%% name: String constraint. The key is
%% swf:name.
%%
%% version: String constraint. The key is
%% swf:version.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
register_workflow_type(Client, Input)
when is_map(Client), is_map(Input) ->
register_workflow_type(Client, Input, []).
register_workflow_type(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"RegisterWorkflowType">>, Input, Options).
%% @doc Records a WorkflowExecutionCancelRequested event in the
%% currently running workflow execution identified by the given domain,
%% workflowId, and runId. This logically requests the cancellation of the
%% workflow execution as a whole. It is up to the decider to take appropriate
%% actions when it receives an execution history with this event.
%%
%% WorkflowExecutionCancelRequested event is recorded in the
%% history of the current open workflow execution with the specified
%% workflowId in the domain.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
request_cancel_workflow_execution(Client, Input)
when is_map(Client), is_map(Input) ->
request_cancel_workflow_execution(Client, Input, []).
request_cancel_workflow_execution(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"RequestCancelWorkflowExecution">>, Input, Options).
%% @doc Used by workers to tell the service that the ActivityTask
%% identified by the taskToken was successfully canceled.
%% Additional details can be provided using the
%% details argument.
%%
%% These details (if provided) appear in the
%% ActivityTaskCanceled event added to the workflow history.
%%
%% canceled flag of a
%% RecordActivityTaskHeartbeat request returns true and
%% if the activity can be safely undone or abandoned.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
respond_activity_task_canceled(Client, Input)
when is_map(Client), is_map(Input) ->
respond_activity_task_canceled(Client, Input, []).
respond_activity_task_canceled(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"RespondActivityTaskCanceled">>, Input, Options).
%% @doc Used by workers to tell the service that the ActivityTask
%% identified by the taskToken completed successfully with a
%% result (if provided). The result appears in the
%% ActivityTaskCompleted event in the workflow history.
%%
%% canceled flag returned by
%% RecordActivityTaskHeartbeat, it should cancel the task, clean up
%% and then call RespondActivityTaskCanceled.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
respond_activity_task_completed(Client, Input)
when is_map(Client), is_map(Input) ->
respond_activity_task_completed(Client, Input, []).
respond_activity_task_completed(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"RespondActivityTaskCompleted">>, Input, Options).
%% @doc Used by workers to tell the service that the ActivityTask
%% identified by the taskToken has failed with
%% reason (if specified). The reason and
%% details appear in the ActivityTaskFailed event
%% added to the workflow history.
%%
%% A task is considered open from the time that it is scheduled until it is
%% closed. Therefore a task is reported as open while a worker is processing
%% it. A task is closed after it has been specified in a call to
%% RespondActivityTaskCompleted, RespondActivityTaskCanceled,
%% RespondActivityTaskFailed, or the task has timed
%% out.
%%
%% Access Control
%%
%% You can use IAM policies to control this action's access to Amazon SWF
%% resources as follows:
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
respond_activity_task_failed(Client, Input)
when is_map(Client), is_map(Input) ->
respond_activity_task_failed(Client, Input, []).
respond_activity_task_failed(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"RespondActivityTaskFailed">>, Input, Options).
%% @doc Used by deciders to tell the service that the DecisionTask
%% identified by the taskToken has successfully completed. The
%% decisions argument specifies the list of decisions made while
%% processing the task.
%%
%% A DecisionTaskCompleted event is added to the workflow
%% history. The executionContext specified is attached to the
%% event in the workflow execution history.
%%
%% Access Control
%%
%% If an IAM policy grants permission to use
%% RespondDecisionTaskCompleted, it can express permissions for
%% the list of decisions in the decisions parameter. Each of the
%% decisions has one or more parameters, much like a regular API call. To
%% allow for policies to be as readable as possible, you can express
%% permissions on decisions as if they were actual API calls, including
%% applying conditions to some parameters. For more information, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
respond_decision_task_completed(Client, Input)
when is_map(Client), is_map(Input) ->
respond_decision_task_completed(Client, Input, []).
respond_decision_task_completed(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"RespondDecisionTaskCompleted">>, Input, Options).
%% @doc Records a WorkflowExecutionSignaled event in the
%% workflow execution history and creates a decision task for the workflow
%% execution identified by the given domain, workflowId and runId. The event
%% is recorded with the specified user defined signalName and input (if
%% provided).
%%
%% WorkflowExecutionSignaled event is recorded in the history of
%% the current open workflow with the matching workflowId in the domain.
%%
%% UnknownResource.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
signal_workflow_execution(Client, Input)
when is_map(Client), is_map(Input) ->
signal_workflow_execution(Client, Input, []).
signal_workflow_execution(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"SignalWorkflowExecution">>, Input, Options).
%% @doc Starts an execution of the workflow type in the specified domain
%% using the provided workflowId and input data.
%%
%% This action returns the newly started workflow execution.
%%
%% Access Control
%%
%% You can use IAM policies to control this action's access to Amazon SWF
%% resources as follows:
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% Condition element with the appropriate keys.
%%
%% tagList.member.0: The key is
%% swf:tagList.member.0.
%%
%% tagList.member.1: The key is
%% swf:tagList.member.1.
%%
%% tagList.member.2: The key is
%% swf:tagList.member.2.
%%
%% tagList.member.3: The key is
%% swf:tagList.member.3.
%%
%% tagList.member.4: The key is
%% swf:tagList.member.4.
%%
%% taskList: String constraint. The key is
%% swf:taskList.name.
%%
%% workflowType.name: String constraint. The key is
%% swf:workflowType.name.
%%
%% workflowType.version: String constraint. The key
%% is swf:workflowType.version.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
start_workflow_execution(Client, Input)
when is_map(Client), is_map(Input) ->
start_workflow_execution(Client, Input, []).
start_workflow_execution(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"StartWorkflowExecution">>, Input, Options).
%% @doc Add a tag to a Amazon SWF domain.
%%
%% WorkflowExecutionTerminated event and forces
%% closure of the workflow execution identified by the given domain, runId,
%% and workflowId. The child policy, registered with the workflow type or
%% specified when starting this execution, is applied to any open child
%% workflow executions of this workflow execution.
%%
%% WorkflowExecutionTerminated event is recorded in the history
%% of the current open workflow with the matching workflowId in the domain.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
terminate_workflow_execution(Client, Input)
when is_map(Client), is_map(Input) ->
terminate_workflow_execution(Client, Input, []).
terminate_workflow_execution(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"TerminateWorkflowExecution">>, Input, Options).
%% @doc Undeprecates a previously deprecated activity type. After an
%% activity type has been undeprecated, you can create new tasks of that
%% activity type.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% Condition element with the appropriate keys.
%%
%% activityType.name: String constraint. The key is
%% swf:activityType.name.
%%
%% activityType.version: String constraint. The key
%% is swf:activityType.version.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
undeprecate_activity_type(Client, Input)
when is_map(Client), is_map(Input) ->
undeprecate_activity_type(Client, Input, []).
undeprecate_activity_type(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UndeprecateActivityType">>, Input, Options).
%% @doc Undeprecates a previously deprecated domain. After a domain has been
%% undeprecated it can be used to create new workflow executions or register
%% new types.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
undeprecate_domain(Client, Input)
when is_map(Client), is_map(Input) ->
undeprecate_domain(Client, Input, []).
undeprecate_domain(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UndeprecateDomain">>, Input, Options).
%% @doc Undeprecates a previously deprecated workflow type. After a
%% workflow type has been undeprecated, you can create new executions of that
%% type.
%%
%% Resource element with the domain name to
%% limit the action to only specified domains.
%%
%% Action element to allow or deny permission
%% to call this action.
%%
%% Condition element with the appropriate keys.
%%
%% workflowType.name: String constraint. The key is
%% swf:workflowType.name.
%%
%% workflowType.version: String constraint. The key
%% is swf:workflowType.version.
%%
%% cause parameter is set to
%% OPERATION_NOT_PERMITTED. For details and example IAM
%% policies, see Using
%% IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF
%% Developer Guide.
undeprecate_workflow_type(Client, Input)
when is_map(Client), is_map(Input) ->
undeprecate_workflow_type(Client, Input, []).
undeprecate_workflow_type(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UndeprecateWorkflowType">>, Input, Options).
%% @doc Remove a tag from a Amazon SWF domain.
untag_resource(Client, Input)
when is_map(Client), is_map(Input) ->
untag_resource(Client, Input, []).
untag_resource(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UntagResource">>, Input, Options).
%%====================================================================
%% Internal functions
%%====================================================================
-spec request(aws_client:aws_client(), binary(), map(), list()) ->
{ok, Result, {integer(), list(), hackney:client()}} |
{error, Error, {integer(), list(), hackney:client()}} |
{error, term()} when
Result :: map() | undefined,
Error :: {binary(), binary()}.
request(Client, Action, Input, Options) ->
Client1 = Client#{service => <<"swf">>},
Host = get_host(<<"swf">>, Client1),
URL = get_url(Host, Client1),
Headers = [
{<<"Host">>, Host},
{<<"Content-Type">>, <<"application/x-amz-json-1.0">>},
{<<"X-Amz-Target">>, << <<"SimpleWorkflowService.">>/binary, Action/binary>>}
],
Payload = jsx:encode(Input),
SignedHeaders = aws_request:sign_request(Client1, <<"POST">>, URL, Headers, Payload),
Response = hackney:request(post, URL, SignedHeaders, Payload, Options),
handle_response(Response).
handle_response({ok, 200, ResponseHeaders, Client}) ->
case hackney:body(Client) of
{ok, <<>>} ->
{ok, undefined, {200, ResponseHeaders, Client}};
{ok, Body} ->
Result = jsx:decode(Body, [return_maps]),
{ok, Result, {200, ResponseHeaders, Client}}
end;
handle_response({ok, StatusCode, ResponseHeaders, Client}) ->
{ok, Body} = hackney:body(Client),
Error = jsx:decode(Body, [return_maps]),
Exception = maps:get(<<"__type">>, Error, undefined),
Reason = maps:get(<<"message">>, Error, undefined),
{error, {Exception, Reason}, {StatusCode, ResponseHeaders, Client}};
handle_response({error, Reason}) ->
{error, Reason}.
get_host(_EndpointPrefix, #{region := <<"local">>}) ->
<<"localhost">>;
get_host(EndpointPrefix, #{region := Region, endpoint := Endpoint}) ->
aws_util:binary_join([EndpointPrefix, <<".">>, Region, <<".">>, Endpoint], <<"">>).
get_url(Host, Client) ->
Proto = maps:get(proto, Client),
Port = maps:get(port, Client),
aws_util:binary_join([Proto, <<"://">>, Host, <<":">>, Port, <<"/">>], <<"">>).