Mercurial > repos > shellac > guppy_basecaller
diff env/lib/python3.7/site-packages/boto/swf/layer1.py @ 5:9b1c78e6ba9c draft default tip
"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
| author | shellac |
|---|---|
| date | Mon, 01 Jun 2020 08:59:25 -0400 |
| parents | 79f47841a781 |
| children |
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/boto/swf/layer1.py Thu May 14 16:47:39 2020 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1513 +0,0 @@ -# Copyright (c) 2012 Mitch Garnaat http://garnaat.org/ -# Copyright (c) 2012 Amazon.com, Inc. or its affiliates. -# All Rights Reserved -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, dis- -# tribute, sublicense, and/or sell copies of the Software, and to permit -# persons to whom the Software is furnished to do so, subject to the fol- -# lowing conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- -# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. -# - -import time - -import boto -from boto.connection import AWSAuthConnection -from boto.provider import Provider -from boto.exception import SWFResponseError -from boto.swf import exceptions as swf_exceptions -from boto.compat import json - -# -# To get full debug output, uncomment the following line and set the -# value of Debug to be 2 -# -#boto.set_stream_logger('swf') -Debug = 0 - - -class Layer1(AWSAuthConnection): - """ - Low-level interface to Simple WorkFlow Service. - """ - - DefaultRegionName = 'us-east-1' - """The default region name for Simple Workflow.""" - - ServiceName = 'com.amazonaws.swf.service.model.SimpleWorkflowService' - """The name of the Service""" - - # In some cases, the fault response __type value is mapped to - # an exception class more specific than SWFResponseError. - _fault_excp = { - 'com.amazonaws.swf.base.model#DomainAlreadyExistsFault': - swf_exceptions.SWFDomainAlreadyExistsError, - 'com.amazonaws.swf.base.model#LimitExceededFault': - swf_exceptions.SWFLimitExceededError, - 'com.amazonaws.swf.base.model#OperationNotPermittedFault': - swf_exceptions.SWFOperationNotPermittedError, - 'com.amazonaws.swf.base.model#TypeAlreadyExistsFault': - swf_exceptions.SWFTypeAlreadyExistsError, - 'com.amazonaws.swf.base.model#WorkflowExecutionAlreadyStartedFault': - swf_exceptions.SWFWorkflowExecutionAlreadyStartedError, - } - - ResponseError = SWFResponseError - - def __init__(self, aws_access_key_id=None, aws_secret_access_key=None, - is_secure=True, port=None, proxy=None, proxy_port=None, - debug=0, session_token=None, region=None, profile_name=None): - if not region: - region_name = boto.config.get('SWF', 'region', - self.DefaultRegionName) - for reg in boto.swf.regions(): - if reg.name == region_name: - region = reg - break - - self.region = region - super(Layer1, self).__init__(self.region.endpoint, - aws_access_key_id, aws_secret_access_key, - is_secure, port, proxy, proxy_port, - debug, session_token, profile_name=profile_name) - - def _required_auth_capability(self): - return ['hmac-v4'] - - @classmethod - def _normalize_request_dict(cls, data): - """ - This class method recurses through request data dictionary and removes - any default values. - - :type data: dict - :param data: Specifies request parameters with default values to be removed. - """ - for item in list(data.keys()): - if isinstance(data[item], dict): - cls._normalize_request_dict(data[item]) - if data[item] in (None, {}): - del data[item] - - def json_request(self, action, data, object_hook=None): - """ - This method wraps around make_request() to normalize and serialize the - dictionary with request parameters. - - :type action: string - :param action: Specifies an SWF action. - - :type data: dict - :param data: Specifies request parameters associated with the action. - """ - self._normalize_request_dict(data) - json_input = json.dumps(data) - return self.make_request(action, json_input, object_hook) - - def make_request(self, action, body='', object_hook=None): - """ - :raises: ``SWFResponseError`` if response status is not 200. - """ - headers = {'X-Amz-Target': '%s.%s' % (self.ServiceName, action), - 'Host': self.region.endpoint, - 'Content-Type': 'application/json; charset=UTF-8', - 'Content-Encoding': 'amz-1.0', - 'Content-Length': str(len(body))} - http_request = self.build_base_http_request('POST', '/', '/', - {}, headers, body, None) - response = self._mexe(http_request, sender=None, - override_num_retries=10) - response_body = response.read().decode('utf-8') - boto.log.debug(response_body) - if response.status == 200: - if response_body: - return json.loads(response_body, object_hook=object_hook) - else: - return None - else: - json_body = json.loads(response_body) - fault_name = json_body.get('__type', None) - # Certain faults get mapped to more specific exception classes. - excp_cls = self._fault_excp.get(fault_name, self.ResponseError) - raise excp_cls(response.status, response.reason, body=json_body) - - # Actions related to Activities - - def poll_for_activity_task(self, domain, task_list, identity=None): - """ - 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 will return 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. - - :type domain: string - :param domain: The name of the domain that contains the task - lists being polled. - - :type task_list: string - :param task_list: Specifies the task list to poll for activity tasks. - - :type identity: string - :param identity: Identity of the worker making the request, which - is recorded in the ActivityTaskStarted event in the workflow - history. This enables diagnostic tracing when problems arise. - The form of this identity is user defined. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('PollForActivityTask', { - 'domain': domain, - 'taskList': {'name': task_list}, - 'identity': identity, - }) - - def respond_activity_task_completed(self, task_token, result=None): - """ - Used by workers to tell the service that the ActivityTask - identified by the taskToken completed successfully with a - result (if provided). - - :type task_token: string - :param task_token: The taskToken of the ActivityTask. - - :type result: string - :param result: The result of the activity task. It is a free - form string that is implementation specific. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('RespondActivityTaskCompleted', { - 'taskToken': task_token, - 'result': result, - }) - - def respond_activity_task_failed(self, task_token, - details=None, reason=None): - """ - Used by workers to tell the service that the ActivityTask - identified by the taskToken has failed with reason (if - specified). - - :type task_token: string - :param task_token: The taskToken of the ActivityTask. - - :type details: string - :param details: Optional detailed information about the failure. - - :type reason: string - :param reason: Description of the error that may assist in diagnostics. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('RespondActivityTaskFailed', { - 'taskToken': task_token, - 'details': details, - 'reason': reason, - }) - - def respond_activity_task_canceled(self, task_token, details=None): - """ - Used by workers to tell the service that the ActivityTask - identified by the taskToken was successfully - canceled. Additional details can be optionally provided using - the details argument. - - :type task_token: string - :param task_token: The taskToken of the ActivityTask. - - :type details: string - :param details: Optional detailed information about the failure. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('RespondActivityTaskCanceled', { - 'taskToken': task_token, - 'details': details, - }) - - def record_activity_task_heartbeat(self, task_token, details=None): - """ - 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 (optionally) 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. - - :type task_token: string - :param task_token: The taskToken of the ActivityTask. - - :type details: string - :param details: If specified, contains details about the - progress of the task. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('RecordActivityTaskHeartbeat', { - 'taskToken': task_token, - 'details': details, - }) - - # Actions related to Deciders - - def poll_for_decision_task(self, domain, task_list, identity=None, - maximum_page_size=None, - next_page_token=None, - reverse_order=None): - """ - 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. - - :type domain: string - :param domain: The name of the domain containing the task - lists to poll. - - :type task_list: string - :param task_list: Specifies the task list to poll for decision tasks. - - :type identity: string - :param identity: Identity of the decider making the request, - which is recorded in the DecisionTaskStarted event in the - workflow history. This enables diagnostic tracing when - problems arise. The form of this identity is user defined. - - :type maximum_page_size: integer :param maximum_page_size: The - maximum number of history events returned in each page. The - default is 100, but the caller can override this value to a - page size smaller than the default. You cannot specify a page - size greater than 100. - - :type next_page_token: string - :param next_page_token: If on a previous call to this method a - NextPageToken was returned, the results are being paginated. - To get the next page of results, repeat the call with the - returned token and all other arguments unchanged. - - :type reverse_order: boolean - :param reverse_order: When set to true, returns the events in - reverse order. By default the results are returned in - ascending order of the eventTimestamp of the events. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('PollForDecisionTask', { - 'domain': domain, - 'taskList': {'name': task_list}, - 'identity': identity, - 'maximumPageSize': maximum_page_size, - 'nextPageToken': next_page_token, - 'reverseOrder': reverse_order, - }) - - def respond_decision_task_completed(self, task_token, - decisions=None, - execution_context=None): - """ - 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. - - :type task_token: string - :param task_token: The taskToken of the ActivityTask. - - :type decisions: list - :param decisions: The list of decisions (possibly empty) made by - the decider while processing this decision task. See the docs - for the Decision structure for details. - - :type execution_context: string - :param execution_context: User defined context to add to - workflow execution. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('RespondDecisionTaskCompleted', { - 'taskToken': task_token, - 'decisions': decisions, - 'executionContext': execution_context, - }) - - def request_cancel_workflow_execution(self, domain, workflow_id, - run_id=None): - """ - 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. - - :type domain: string - :param domain: The name of the domain containing the workflow - execution to cancel. - - :type run_id: string - :param run_id: The runId of the workflow execution to cancel. - - :type workflow_id: string - :param workflow_id: The workflowId of the workflow execution - to cancel. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('RequestCancelWorkflowExecution', { - 'domain': domain, - 'workflowId': workflow_id, - 'runId': run_id, - }) - - def start_workflow_execution(self, domain, workflow_id, - workflow_name, workflow_version, - task_list=None, child_policy=None, - execution_start_to_close_timeout=None, - input=None, tag_list=None, - task_start_to_close_timeout=None): - """ - Starts an execution of the workflow type in the specified - domain using the provided workflowId and input data. - - :type domain: string - :param domain: The name of the domain in which the workflow - execution is created. - - :type workflow_id: string - :param workflow_id: The user defined identifier associated with - the workflow execution. You can use this to associate a - custom identifier with the workflow execution. You may - specify the same identifier if a workflow execution is - logically a restart of a previous execution. You cannot - have two open workflow executions with the same workflowId - at the same time. - - :type workflow_name: string - :param workflow_name: The name of the workflow type. - - :type workflow_version: string - :param workflow_version: The version of the workflow type. - - :type task_list: string - :param task_list: The task list to use for the decision tasks - generated for this workflow execution. This overrides the - defaultTaskList specified when registering the workflow type. - - :type child_policy: string - :param child_policy: If set, specifies the policy to use for the - child workflow executions of this workflow execution if it - is terminated, by calling the TerminateWorkflowExecution - action explicitly or due to an expired timeout. This policy - overrides the default child policy specified when registering - the workflow type using RegisterWorkflowType. The supported - child policies are: - - * TERMINATE: the child executions will be terminated. - * REQUEST_CANCEL: a request to cancel will be attempted - for each child execution by recording a - WorkflowExecutionCancelRequested event in its history. - It is up to the decider to take appropriate actions - when it receives an execution history with this event. - * ABANDON: no action will be taken. The child executions - will continue to run. - - :type execution_start_to_close_timeout: string - :param execution_start_to_close_timeout: The total duration for - this workflow execution. This overrides the - defaultExecutionStartToCloseTimeout specified when - registering the workflow type. - - :type input: string - :param input: The input for the workflow - execution. This is a free form string which should be - meaningful to the workflow you are starting. This input is - made available to the new workflow execution in the - WorkflowExecutionStarted history event. - - :type tag_list: list :param tag_list: The list of tags to - associate with the workflow execution. You can specify a - maximum of 5 tags. You can list workflow executions with a - specific tag by calling list_open_workflow_executions or - list_closed_workflow_executions and specifying a TagFilter. - - :type task_start_to_close_timeout: string :param - task_start_to_close_timeout: Specifies the maximum duration of - decision tasks for this workflow execution. This parameter - overrides the defaultTaskStartToCloseTimout specified when - registering the workflow type using register_workflow_type. - - :raises: UnknownResourceFault, TypeDeprecatedFault, - SWFWorkflowExecutionAlreadyStartedError, SWFLimitExceededError, - SWFOperationNotPermittedError, DefaultUndefinedFault - """ - return self.json_request('StartWorkflowExecution', { - 'domain': domain, - 'workflowId': workflow_id, - 'workflowType': {'name': workflow_name, - 'version': workflow_version}, - 'taskList': {'name': task_list}, - 'childPolicy': child_policy, - 'executionStartToCloseTimeout': execution_start_to_close_timeout, - 'input': input, - 'tagList': tag_list, - 'taskStartToCloseTimeout': task_start_to_close_timeout, - - }) - - def signal_workflow_execution(self, domain, signal_name, workflow_id, - input=None, run_id=None): - """ - 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). - - :type domain: string - :param domain: The name of the domain containing the workflow - execution to signal. - - :type signal_name: string - :param signal_name: The name of the signal. This name must be - meaningful to the target workflow. - - :type workflow_id: string - :param workflow_id: The workflowId of the workflow execution - to signal. - - :type input: string - :param input: Data to attach to the WorkflowExecutionSignaled - event in the target workflow execution's history. - - :type run_id: string - :param run_id: The runId of the workflow execution to signal. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('SignalWorkflowExecution', { - 'domain': domain, - 'signalName': signal_name, - 'workflowId': workflow_id, - 'input': input, - 'runId': run_id, - }) - - def terminate_workflow_execution(self, domain, workflow_id, - child_policy=None, details=None, - reason=None, run_id=None): - """ - Records a 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. - - :type domain: string - :param domain: The domain of the workflow execution to terminate. - - :type workflow_id: string - :param workflow_id: The workflowId of the workflow execution - to terminate. - - :type child_policy: string - :param child_policy: If set, specifies the policy to use for - the child workflow executions of the workflow execution being - terminated. This policy overrides the child policy specified - for the workflow execution at registration time or when - starting the execution. The supported child policies are: - - * TERMINATE: the child executions will be terminated. - - * REQUEST_CANCEL: a request to cancel will be attempted - for each child execution by recording a - WorkflowExecutionCancelRequested event in its - history. It is up to the decider to take appropriate - actions when it receives an execution history with this - event. - - * ABANDON: no action will be taken. The child executions - will continue to run. - - :type details: string - :param details: Optional details for terminating the - workflow execution. - - :type reason: string - :param reason: An optional descriptive reason for terminating - the workflow execution. - - :type run_id: string - :param run_id: The runId of the workflow execution to terminate. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('TerminateWorkflowExecution', { - 'domain': domain, - 'workflowId': workflow_id, - 'childPolicy': child_policy, - 'details': details, - 'reason': reason, - 'runId': run_id, - }) - -# Actions related to Administration - -## Activity Management - - def register_activity_type(self, domain, name, version, task_list=None, - default_task_heartbeat_timeout=None, - default_task_schedule_to_close_timeout=None, - default_task_schedule_to_start_timeout=None, - default_task_start_to_close_timeout=None, - description=None): - """ - Registers a new activity type along with its configuration - settings in the specified domain. - - :type domain: string - :param domain: The name of the domain in which this activity is - to be registered. - - :type name: string - :param name: The name of the activity type within the domain. - - :type version: string - :param version: The version of the activity type. - - :type task_list: string - :param task_list: If set, specifies the default task list to - use for scheduling tasks of this activity type. This default - task list is used if a task list is not provided when a task - is scheduled through the schedule_activity_task Decision. - - :type default_task_heartbeat_timeout: string - :param default_task_heartbeat_timeout: If set, specifies the - default maximum time before which a worker processing a task - of this type must report progress by calling - RecordActivityTaskHeartbeat. If the timeout is exceeded, the - activity task is automatically timed out. This default can be - overridden when scheduling an activity task using the - ScheduleActivityTask Decision. If the activity worker - subsequently attempts to record a heartbeat or returns a - result, the activity worker receives an UnknownResource - fault. In this case, Amazon SWF no longer considers the - activity task to be valid; the activity worker should clean up - the activity task.no docs - - :type default_task_schedule_to_close_timeout: string - :param default_task_schedule_to_close_timeout: If set, - specifies the default maximum duration for a task of this - activity type. This default can be overridden when scheduling - an activity task using the ScheduleActivityTask Decision.no - docs - - :type default_task_schedule_to_start_timeout: string - :param default_task_schedule_to_start_timeout: If set, - specifies the default maximum duration that a task of this - activity type can wait before being assigned to a worker. This - default can be overridden when scheduling an activity task - using the ScheduleActivityTask Decision. - - :type default_task_start_to_close_timeout: string - :param default_task_start_to_close_timeout: If set, specifies - the default maximum duration that a worker can take to process - tasks of this activity type. This default can be overridden - when scheduling an activity task using the - ScheduleActivityTask Decision. - - :type description: string - :param description: A textual description of the activity type. - - :raises: SWFTypeAlreadyExistsError, SWFLimitExceededError, - UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('RegisterActivityType', { - 'domain': domain, - 'name': name, - 'version': version, - 'defaultTaskList': {'name': task_list}, - 'defaultTaskHeartbeatTimeout': default_task_heartbeat_timeout, - 'defaultTaskScheduleToCloseTimeout': default_task_schedule_to_close_timeout, - 'defaultTaskScheduleToStartTimeout': default_task_schedule_to_start_timeout, - 'defaultTaskStartToCloseTimeout': default_task_start_to_close_timeout, - 'description': description, - }) - - def deprecate_activity_type(self, domain, activity_name, activity_version): - """ - 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 will continue to run. - - :type domain: string - :param domain: The name of the domain in which the activity - type is registered. - - :type activity_name: string - :param activity_name: The name of this activity. - - :type activity_version: string - :param activity_version: The version of this activity. - - :raises: UnknownResourceFault, TypeDeprecatedFault, - SWFOperationNotPermittedError - """ - return self.json_request('DeprecateActivityType', { - 'domain': domain, - 'activityType': {'name': activity_name, - 'version': activity_version} - }) - -## Workflow Management - - def register_workflow_type(self, domain, name, version, - task_list=None, - default_child_policy=None, - default_execution_start_to_close_timeout=None, - default_task_start_to_close_timeout=None, - description=None): - """ - Registers a new workflow type and its configuration settings - in the specified domain. - - :type domain: string - :param domain: The name of the domain in which to register - the workflow type. - - :type name: string - :param name: The name of the workflow type. - - :type version: string - :param version: The version of the workflow type. - - :type task_list: list of name, version of tasks - :param task_list: If set, specifies the default task list to use - for scheduling decision tasks for executions of this workflow - type. This default is used only if a task list is not provided - when starting the execution through the StartWorkflowExecution - Action or StartChildWorkflowExecution Decision. - - :type default_child_policy: string - - :param default_child_policy: If set, specifies the default - policy to use for the child workflow executions when a - workflow execution of this type is terminated, by calling the - TerminateWorkflowExecution action explicitly or due to an - expired timeout. This default can be overridden when starting - a workflow execution using the StartWorkflowExecution action - or the StartChildWorkflowExecution Decision. The supported - child policies are: - - * TERMINATE: the child executions will be terminated. - - * REQUEST_CANCEL: a request to cancel will be attempted - for each child execution by recording a - WorkflowExecutionCancelRequested event in its - history. It is up to the decider to take appropriate - actions when it receives an execution history with this - event. - - * ABANDON: no action will be taken. The child executions - will continue to run.no docs - - :type default_execution_start_to_close_timeout: string - :param default_execution_start_to_close_timeout: If set, - specifies the default maximum duration for executions of this - workflow type. You can override this default when starting an - execution through the StartWorkflowExecution Action or - StartChildWorkflowExecution Decision. - - :type default_task_start_to_close_timeout: string - :param default_task_start_to_close_timeout: If set, specifies - the default maximum duration of decision tasks for this - workflow type. This default can be overridden when starting a - workflow execution using the StartWorkflowExecution action or - the StartChildWorkflowExecution Decision. - - :type description: string - :param description: Textual description of the workflow type. - - :raises: SWFTypeAlreadyExistsError, SWFLimitExceededError, - UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('RegisterWorkflowType', { - 'domain': domain, - 'name': name, - 'version': version, - 'defaultTaskList': {'name': task_list}, - 'defaultChildPolicy': default_child_policy, - 'defaultExecutionStartToCloseTimeout': default_execution_start_to_close_timeout, - 'defaultTaskStartToCloseTimeout': default_task_start_to_close_timeout, - 'description': description, - }) - - def deprecate_workflow_type(self, domain, workflow_name, workflow_version): - """ - 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 will continue to run. A deprecated workflow type - may still be used when calling visibility actions. - - :type domain: string - :param domain: The name of the domain in which the workflow - type is registered. - - :type workflow_name: string - :param workflow_name: The name of the workflow type. - - :type workflow_version: string - :param workflow_version: The version of the workflow type. - - :raises: UnknownResourceFault, TypeDeprecatedFault, - SWFOperationNotPermittedError - """ - return self.json_request('DeprecateWorkflowType', { - 'domain': domain, - 'workflowType': {'name': workflow_name, - 'version': workflow_version}, - }) - -## Domain Management - - def register_domain(self, name, - workflow_execution_retention_period_in_days, - description=None): - """ - Registers a new domain. - - :type name: string - :param name: Name of the domain to register. The name must be unique. - - :type workflow_execution_retention_period_in_days: string - - :param workflow_execution_retention_period_in_days: Specifies - the duration *in days* for which the record (including the - history) of workflow executions in this domain should be kept - by the service. After the retention period, the workflow - execution will not be available in the results of visibility - calls. If a duration of NONE is specified, the records for - workflow executions in this domain are not retained at all. - - :type description: string - :param description: Textual description of the domain. - - :raises: SWFDomainAlreadyExistsError, SWFLimitExceededError, - SWFOperationNotPermittedError - """ - return self.json_request('RegisterDomain', { - 'name': name, - 'workflowExecutionRetentionPeriodInDays': workflow_execution_retention_period_in_days, - 'description': description, - }) - - def deprecate_domain(self, name): - """ - 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 will continue to run. - - :type name: string - :param name: The name of the domain to deprecate. - - :raises: UnknownResourceFault, DomainDeprecatedFault, - SWFOperationNotPermittedError - """ - return self.json_request('DeprecateDomain', {'name': name}) - -# Visibility Actions - -## Activity Visibility - - def list_activity_types(self, domain, registration_status, - name=None, - maximum_page_size=None, - next_page_token=None, reverse_order=None): - """ - 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. - - :type domain: string - :param domain: The name of the domain in which the activity - types have been registered. - - :type registration_status: string - :param registration_status: Specifies the registration status - of the activity types to list. Valid values are: - - * REGISTERED - * DEPRECATED - - :type name: string - :param name: If specified, only lists the activity types that - have this name. - - :type maximum_page_size: integer - :param maximum_page_size: The maximum number of results - returned in each page. The default is 100, but the caller can - override this value to a page size smaller than the - default. You cannot specify a page size greater than 100. - - :type next_page_token: string - :param next_page_token: If on a previous call to this method a - NextResultToken was returned, the results have more than one - page. To get the next page of results, repeat the call with - the nextPageToken and keep all other arguments unchanged. - - :type reverse_order: boolean - - :param reverse_order: When set to true, returns the results in - reverse order. By default the results are returned in - ascending alphabetical order of the name of the activity - types. - - :raises: SWFOperationNotPermittedError, UnknownResourceFault - """ - return self.json_request('ListActivityTypes', { - 'domain': domain, - 'name': name, - 'registrationStatus': registration_status, - 'maximumPageSize': maximum_page_size, - 'nextPageToken': next_page_token, - 'reverseOrder': reverse_order, - }) - - def describe_activity_type(self, domain, activity_name, activity_version): - """ - Returns information about the specified activity type. This - includes configuration settings provided at registration time - as well as other general information about the type. - - :type domain: string - :param domain: The name of the domain in which the activity - type is registered. - - :type activity_name: string - :param activity_name: The name of this activity. - - :type activity_version: string - :param activity_version: The version of this activity. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('DescribeActivityType', { - 'domain': domain, - 'activityType': {'name': activity_name, - 'version': activity_version} - }) - -## Workflow Visibility - - def list_workflow_types(self, domain, registration_status, - maximum_page_size=None, name=None, - next_page_token=None, reverse_order=None): - """ - 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. - - :type domain: string - :param domain: The name of the domain in which the workflow - types have been registered. - - :type registration_status: string - :param registration_status: Specifies the registration status - of the activity types to list. Valid values are: - - * REGISTERED - * DEPRECATED - - :type name: string - :param name: If specified, lists the workflow type with this name. - - :type maximum_page_size: integer - :param maximum_page_size: The maximum number of results - returned in each page. The default is 100, but the caller can - override this value to a page size smaller than the - default. You cannot specify a page size greater than 100. - - :type next_page_token: string - :param next_page_token: If on a previous call to this method a - NextPageToken was returned, the results are being - paginated. To get the next page of results, repeat the call - with the returned token and all other arguments unchanged. - - :type reverse_order: boolean - :param reverse_order: When set to true, returns the results in - reverse order. By default the results are returned in - ascending alphabetical order of the name of the workflow - types. - - :raises: SWFOperationNotPermittedError, UnknownResourceFault - """ - return self.json_request('ListWorkflowTypes', { - 'domain': domain, - 'name': name, - 'registrationStatus': registration_status, - 'maximumPageSize': maximum_page_size, - 'nextPageToken': next_page_token, - 'reverseOrder': reverse_order, - }) - - def describe_workflow_type(self, domain, workflow_name, workflow_version): - """ - 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. - - :type domain: string - :param domain: The name of the domain in which this workflow - type is registered. - - :type workflow_name: string - :param workflow_name: The name of the workflow type. - - :type workflow_version: string - :param workflow_version: The version of the workflow type. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('DescribeWorkflowType', { - 'domain': domain, - 'workflowType': {'name': workflow_name, - 'version': workflow_version} - }) - -## Workflow Execution Visibility - - def describe_workflow_execution(self, domain, run_id, workflow_id): - """ - Returns information about the specified workflow execution - including its type and some statistics. - - :type domain: string - :param domain: The name of the domain containing the - workflow execution. - - :type run_id: string - :param run_id: A system generated unique identifier for the - workflow execution. - - :type workflow_id: string - :param workflow_id: The user defined identifier associated - with the workflow execution. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('DescribeWorkflowExecution', { - 'domain': domain, - 'execution': {'runId': run_id, - 'workflowId': workflow_id}, - }) - - def get_workflow_execution_history(self, domain, run_id, workflow_id, - maximum_page_size=None, - next_page_token=None, - reverse_order=None): - """ - 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. - - :type domain: string - :param domain: The name of the domain containing the - workflow execution. - - :type run_id: string - :param run_id: A system generated unique identifier for the - workflow execution. - - :type workflow_id: string - :param workflow_id: The user defined identifier associated - with the workflow execution. - - :type maximum_page_size: integer - :param maximum_page_size: Specifies the maximum number of - history events returned in one page. The next page in the - result is identified by the NextPageToken returned. By default - 100 history events are returned in a page but the caller can - override this value to a page size smaller than the - default. You cannot specify a page size larger than 100. - - :type next_page_token: string - :param next_page_token: If a NextPageToken is returned, the - result has more than one pages. To get the next page, repeat - the call and specify the nextPageToken with all other - arguments unchanged. - - :type reverse_order: boolean - :param reverse_order: When set to true, returns the events in - reverse order. By default the results are returned in - ascending order of the eventTimeStamp of the events. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('GetWorkflowExecutionHistory', { - 'domain': domain, - 'execution': {'runId': run_id, - 'workflowId': workflow_id}, - 'maximumPageSize': maximum_page_size, - 'nextPageToken': next_page_token, - 'reverseOrder': reverse_order, - }) - - def count_open_workflow_executions(self, domain, latest_date, oldest_date, - tag=None, - workflow_id=None, - workflow_name=None, - workflow_version=None): - """ - Returns the number of open workflow executions within the - given domain that meet the specified filtering criteria. - - .. note: - workflow_id, workflow_name/workflow_version and tag are mutually - exclusive. You can specify at most one of these in a request. - - :type domain: string - :param domain: The name of the domain containing the - workflow executions to count. - - :type latest_date: timestamp - :param latest_date: Specifies the latest start or close date - and time to return. - - :type oldest_date: timestamp - :param oldest_date: Specifies the oldest start or close date - and time to return. - - :type workflow_name: string - :param workflow_name: Name of the workflow type to filter on. - - :type workflow_version: string - :param workflow_version: Version of the workflow type to filter on. - - :type tag: string - :param tag: If specified, only executions that have a tag - that matches the filter are counted. - - :type workflow_id: string - :param workflow_id: If specified, only workflow executions - matching the workflow_id are counted. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('CountOpenWorkflowExecutions', { - 'domain': domain, - 'startTimeFilter': {'oldestDate': oldest_date, - 'latestDate': latest_date}, - 'typeFilter': {'name': workflow_name, - 'version': workflow_version}, - 'executionFilter': {'workflowId': workflow_id}, - 'tagFilter': {'tag': tag}, - }) - - def list_open_workflow_executions(self, domain, - oldest_date, - latest_date=None, - tag=None, - workflow_id=None, - workflow_name=None, - workflow_version=None, - maximum_page_size=None, - next_page_token=None, - reverse_order=None): - """ - Returns the list of open workflow executions within the - given domain that meet the specified filtering criteria. - - .. note: - workflow_id, workflow_name/workflow_version - and tag are mutually exclusive. You can specify at most - one of these in a request. - - :type domain: string - :param domain: The name of the domain containing the - workflow executions to count. - - :type latest_date: timestamp - :param latest_date: Specifies the latest start or close date - and time to return. - - :type oldest_date: timestamp - :param oldest_date: Specifies the oldest start or close date - and time to return. - - :type tag: string - :param tag: If specified, only executions that have a tag - that matches the filter are counted. - - :type workflow_id: string - :param workflow_id: If specified, only workflow executions - matching the workflow_id are counted. - - :type workflow_name: string - :param workflow_name: Name of the workflow type to filter on. - - :type workflow_version: string - :param workflow_version: Version of the workflow type to filter on. - - :type maximum_page_size: integer - :param maximum_page_size: The maximum number of results - returned in each page. The default is 100, but the caller can - override this value to a page size smaller than the - default. You cannot specify a page size greater than 100. - - :type next_page_token: string - :param next_page_token: If on a previous call to this method a - NextPageToken was returned, the results are being - paginated. To get the next page of results, repeat the call - with the returned token and all other arguments unchanged. - - :type reverse_order: boolean - :param reverse_order: When set to true, returns the results in - reverse order. By default the results are returned in - descending order of the start or the close time of the - executions. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - - """ - return self.json_request('ListOpenWorkflowExecutions', { - 'domain': domain, - 'startTimeFilter': {'oldestDate': oldest_date, - 'latestDate': latest_date}, - 'tagFilter': {'tag': tag}, - 'typeFilter': {'name': workflow_name, - 'version': workflow_version}, - 'executionFilter': {'workflowId': workflow_id}, - 'maximumPageSize': maximum_page_size, - 'nextPageToken': next_page_token, - 'reverseOrder': reverse_order, - }) - - def count_closed_workflow_executions(self, domain, - start_latest_date=None, - start_oldest_date=None, - close_latest_date=None, - close_oldest_date=None, - close_status=None, - tag=None, - workflow_id=None, - workflow_name=None, - workflow_version=None): - """ - Returns the number of closed workflow executions within the - given domain that meet the specified filtering criteria. - - .. note: - close_status, workflow_id, workflow_name/workflow_version - and tag are mutually exclusive. You can specify at most - one of these in a request. - - .. note: - start_latest_date/start_oldest_date and - close_latest_date/close_oldest_date are mutually - exclusive. You can specify at most one of these in a request. - - :type domain: string - :param domain: The name of the domain containing the - workflow executions to count. - - :type start_latest_date: timestamp - :param start_latest_date: If specified, only workflow executions - that meet the start time criteria of the filter are counted. - - :type start_oldest_date: timestamp - :param start_oldest_date: If specified, only workflow executions - that meet the start time criteria of the filter are counted. - - :type close_latest_date: timestamp - :param close_latest_date: If specified, only workflow executions - that meet the close time criteria of the filter are counted. - - :type close_oldest_date: timestamp - :param close_oldest_date: If specified, only workflow executions - that meet the close time criteria of the filter are counted. - - :type close_status: string - :param close_status: The close status that must match the close status - of an execution for it to meet the criteria of this filter. - Valid values are: - - * COMPLETED - * FAILED - * CANCELED - * TERMINATED - * CONTINUED_AS_NEW - * TIMED_OUT - - :type tag: string - :param tag: If specified, only executions that have a tag - that matches the filter are counted. - - :type workflow_id: string - :param workflow_id: If specified, only workflow executions - matching the workflow_id are counted. - - :type workflow_name: string - :param workflow_name: Name of the workflow type to filter on. - - :type workflow_version: string - :param workflow_version: Version of the workflow type to filter on. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('CountClosedWorkflowExecutions', { - 'domain': domain, - 'startTimeFilter': {'oldestDate': start_oldest_date, - 'latestDate': start_latest_date}, - 'closeTimeFilter': {'oldestDate': close_oldest_date, - 'latestDate': close_latest_date}, - 'closeStatusFilter': {'status': close_status}, - 'tagFilter': {'tag': tag}, - 'typeFilter': {'name': workflow_name, - 'version': workflow_version}, - 'executionFilter': {'workflowId': workflow_id} - }) - - def list_closed_workflow_executions(self, domain, - start_latest_date=None, - start_oldest_date=None, - close_latest_date=None, - close_oldest_date=None, - close_status=None, - tag=None, - workflow_id=None, - workflow_name=None, - workflow_version=None, - maximum_page_size=None, - next_page_token=None, - reverse_order=None): - """ - Returns the number of closed workflow executions within the - given domain that meet the specified filtering criteria. - - .. note: - close_status, workflow_id, workflow_name/workflow_version - and tag are mutually exclusive. You can specify at most - one of these in a request. - - .. note: - start_latest_date/start_oldest_date and - close_latest_date/close_oldest_date are mutually - exclusive. You can specify at most one of these in a request. - - :type domain: string - :param domain: The name of the domain containing the - workflow executions to count. - - :type start_latest_date: timestamp - :param start_latest_date: If specified, only workflow executions - that meet the start time criteria of the filter are counted. - - :type start_oldest_date: timestamp - :param start_oldest_date: If specified, only workflow executions - that meet the start time criteria of the filter are counted. - - :type close_latest_date: timestamp - :param close_latest_date: If specified, only workflow executions - that meet the close time criteria of the filter are counted. - - :type close_oldest_date: timestamp - :param close_oldest_date: If specified, only workflow executions - that meet the close time criteria of the filter are counted. - - :type close_status: string - :param close_status: The close status that must match the close status - of an execution for it to meet the criteria of this filter. - Valid values are: - - * COMPLETED - * FAILED - * CANCELED - * TERMINATED - * CONTINUED_AS_NEW - * TIMED_OUT - - :type tag: string - :param tag: If specified, only executions that have a tag - that matches the filter are counted. - - :type workflow_id: string - :param workflow_id: If specified, only workflow executions - matching the workflow_id are counted. - - :type workflow_name: string - :param workflow_name: Name of the workflow type to filter on. - - :type workflow_version: string - :param workflow_version: Version of the workflow type to filter on. - - :type maximum_page_size: integer - :param maximum_page_size: The maximum number of results - returned in each page. The default is 100, but the caller can - override this value to a page size smaller than the - default. You cannot specify a page size greater than 100. - - :type next_page_token: string - :param next_page_token: If on a previous call to this method a - NextPageToken was returned, the results are being - paginated. To get the next page of results, repeat the call - with the returned token and all other arguments unchanged. - - :type reverse_order: boolean - :param reverse_order: When set to true, returns the results in - reverse order. By default the results are returned in - descending order of the start or the close time of the - executions. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('ListClosedWorkflowExecutions', { - 'domain': domain, - 'startTimeFilter': {'oldestDate': start_oldest_date, - 'latestDate': start_latest_date}, - 'closeTimeFilter': {'oldestDate': close_oldest_date, - 'latestDate': close_latest_date}, - 'executionFilter': {'workflowId': workflow_id}, - 'closeStatusFilter': {'status': close_status}, - 'tagFilter': {'tag': tag}, - 'typeFilter': {'name': workflow_name, - 'version': workflow_version}, - 'maximumPageSize': maximum_page_size, - 'nextPageToken': next_page_token, - 'reverseOrder': reverse_order, - }) - -## Domain Visibility - - def list_domains(self, registration_status, - maximum_page_size=None, - next_page_token=None, reverse_order=None): - """ - 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. - - :type registration_status: string - :param registration_status: Specifies the registration status - of the domains to list. Valid Values: - - * REGISTERED - * DEPRECATED - - :type maximum_page_size: integer - :param maximum_page_size: The maximum number of results - returned in each page. The default is 100, but the caller can - override this value to a page size smaller than the - default. You cannot specify a page size greater than 100. - - :type next_page_token: string - :param next_page_token: If on a previous call to this method a - NextPageToken was returned, the result has more than one - page. To get the next page of results, repeat the call with - the returned token and all other arguments unchanged. - - :type reverse_order: boolean - :param reverse_order: When set to true, returns the results in - reverse order. By default the results are returned in - ascending alphabetical order of the name of the domains. - - :raises: SWFOperationNotPermittedError - """ - return self.json_request('ListDomains', { - 'registrationStatus': registration_status, - 'maximumPageSize': maximum_page_size, - 'nextPageToken': next_page_token, - 'reverseOrder': reverse_order, - }) - - def describe_domain(self, name): - """ - Returns information about the specified domain including - description and status. - - :type name: string - :param name: The name of the domain to describe. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('DescribeDomain', {'name': name}) - -## Task List Visibility - - def count_pending_decision_tasks(self, domain, task_list): - """ - Returns the estimated number of decision tasks in the - specified task list. The count returned is an approximation - and is not guaranteed to be exact. If you specify a task list - that no decision task was ever scheduled in then 0 will be - returned. - - :type domain: string - :param domain: The name of the domain that contains the task list. - - :type task_list: string - :param task_list: The name of the task list. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('CountPendingDecisionTasks', { - 'domain': domain, - 'taskList': {'name': task_list} - }) - - def count_pending_activity_tasks(self, domain, task_list): - """ - Returns the estimated number of activity tasks in the - specified task list. The count returned is an approximation - and is not guaranteed to be exact. If you specify a task list - that no activity task was ever scheduled in then 0 will be - returned. - - :type domain: string - :param domain: The name of the domain that contains the task list. - - :type task_list: string - :param task_list: The name of the task list. - - :raises: UnknownResourceFault, SWFOperationNotPermittedError - """ - return self.json_request('CountPendingActivityTasks', { - 'domain': domain, - 'taskList': {'name': task_list} - })
