/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the swf-2012-01-25.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.SimpleWorkflow.Model
{
///
/// Provides the details of the ContinueAsNewWorkflowExecution
decision.
///
///
///
/// Access Control
///
///
///
/// You can use IAM policies to control this decision's access to Amazon SWF resources
/// as follows:
///
/// -
///
/// Use a
Resource
element with the domain name to limit the action to only
/// specified domains.
///
/// -
///
/// Use an
Action
element to allow or deny permission to call this action.
///
/// -
///
/// Constrain the following parameters by using a
Condition
element with
/// the appropriate keys.
///
/// -
///
///
tag
– A tag used to identify the workflow execution
///
/// -
///
///
taskList
– String constraint. The key is swf:taskList.name
.
///
/// -
///
///
workflowType.version
– String constraint. The key is swf:workflowType.version
.
///
///
///
/// If the caller doesn't have sufficient permissions to invoke the action, or the parameter
/// values fall outside the specified constraints, the action fails. The associated event
/// attribute's 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.
///
///
public partial class ContinueAsNewWorkflowExecutionDecisionAttributes
{
private ChildPolicy _childPolicy;
private string _executionStartToCloseTimeout;
private string _input;
private string _lambdaRole;
private List _tagList = new List();
private TaskList _taskList;
private string _taskPriority;
private string _taskStartToCloseTimeout;
private string _workflowTypeVersion;
///
/// Gets and sets the property ChildPolicy.
///
/// If set, specifies the policy to use for the child workflow executions of the new 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 are terminated.
///
/// -
///
///
REQUEST_CANCEL
– A request to cancel is 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 is taken. The child executions continue to run.
///
///
///
/// A child policy for this workflow execution must be specified either as a default for
/// the workflow type or through this parameter. If neither this parameter is set nor
/// a default child policy was specified at registration time then a fault is returned.
///
///
///
public ChildPolicy ChildPolicy
{
get { return this._childPolicy; }
set { this._childPolicy = value; }
}
// Check to see if ChildPolicy property is set
internal bool IsSetChildPolicy()
{
return this._childPolicy != null;
}
///
/// Gets and sets the property ExecutionStartToCloseTimeout.
///
/// If set, specifies the total duration for this workflow execution. This overrides the
/// defaultExecutionStartToCloseTimeout
specified when registering the workflow
/// type.
///
///
///
/// The duration is specified in seconds, an integer greater than or equal to 0
.
/// You can use NONE
to specify unlimited duration.
///
///
///
/// An execution start-to-close timeout for this workflow execution must be specified
/// either as a default for the workflow type or through this field. If neither this field
/// is set nor a default execution start-to-close timeout was specified at registration
/// time then a fault is returned.
///
///
///
[AWSProperty(Max=8)]
public string ExecutionStartToCloseTimeout
{
get { return this._executionStartToCloseTimeout; }
set { this._executionStartToCloseTimeout = value; }
}
// Check to see if ExecutionStartToCloseTimeout property is set
internal bool IsSetExecutionStartToCloseTimeout()
{
return this._executionStartToCloseTimeout != null;
}
///
/// Gets and sets the property Input.
///
/// The input provided to the new workflow execution.
///
///
[AWSProperty(Max=32768)]
public string Input
{
get { return this._input; }
set { this._input = value; }
}
// Check to see if Input property is set
internal bool IsSetInput()
{
return this._input != null;
}
///
/// Gets and sets the property LambdaRole.
///
/// The IAM role to attach to the new (continued) execution.
///
///
[AWSProperty(Min=1, Max=1600)]
public string LambdaRole
{
get { return this._lambdaRole; }
set { this._lambdaRole = value; }
}
// Check to see if LambdaRole property is set
internal bool IsSetLambdaRole()
{
return this._lambdaRole != null;
}
///
/// Gets and sets the property TagList.
///
/// The list of tags to associate with the new workflow execution. A maximum of 5 tags
/// can be specified. You can list workflow executions with a specific tag by calling
/// ListOpenWorkflowExecutions or ListClosedWorkflowExecutions and specifying
/// a TagFilter.
///
///
[AWSProperty(Max=5)]
public List TagList
{
get { return this._tagList; }
set { this._tagList = value; }
}
// Check to see if TagList property is set
internal bool IsSetTagList()
{
return this._tagList != null && this._tagList.Count > 0;
}
///
/// Gets and sets the property TaskList.
///
/// The task list to use for the decisions of the new (continued) workflow execution.
///
///
public TaskList TaskList
{
get { return this._taskList; }
set { this._taskList = value; }
}
// Check to see if TaskList property is set
internal bool IsSetTaskList()
{
return this._taskList != null;
}
///
/// Gets and sets the property TaskPriority.
///
/// The task priority that, if set, specifies the priority for the decision tasks for
/// this workflow execution. This overrides the defaultTaskPriority specified when registering
/// the workflow type. Valid values are integers that range from Java's Integer.MIN_VALUE
/// (-2147483648) to Integer.MAX_VALUE
(2147483647). Higher numbers indicate
/// higher priority.
///
///
///
/// For more information about setting task priority, see Setting
/// Task Priority in the Amazon SWF Developer Guide.
///
///
public string TaskPriority
{
get { return this._taskPriority; }
set { this._taskPriority = value; }
}
// Check to see if TaskPriority property is set
internal bool IsSetTaskPriority()
{
return this._taskPriority != null;
}
///
/// Gets and sets the property TaskStartToCloseTimeout.
///
/// Specifies the maximum duration of decision tasks for the new workflow execution. This
/// parameter overrides the defaultTaskStartToCloseTimout
specified when
/// registering the workflow type using RegisterWorkflowType.
///
///
///
/// The duration is specified in seconds, an integer greater than or equal to 0
.
/// You can use NONE
to specify unlimited duration.
///
///
///
/// A task start-to-close timeout for the new workflow execution must be specified either
/// as a default for the workflow type or through this parameter. If neither this parameter
/// is set nor a default task start-to-close timeout was specified at registration time
/// then a fault is returned.
///
///
///
[AWSProperty(Max=8)]
public string TaskStartToCloseTimeout
{
get { return this._taskStartToCloseTimeout; }
set { this._taskStartToCloseTimeout = value; }
}
// Check to see if TaskStartToCloseTimeout property is set
internal bool IsSetTaskStartToCloseTimeout()
{
return this._taskStartToCloseTimeout != null;
}
///
/// Gets and sets the property WorkflowTypeVersion.
///
/// The version of the workflow to start.
///
///
[AWSProperty(Min=1, Max=64)]
public string WorkflowTypeVersion
{
get { return this._workflowTypeVersion; }
set { this._workflowTypeVersion = value; }
}
// Check to see if WorkflowTypeVersion property is set
internal bool IsSetWorkflowTypeVersion()
{
return this._workflowTypeVersion != null;
}
}
}