/*
* 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
{
///
/// Container for the parameters to the StartWorkflowExecution operation.
/// 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:
///
/// -
///
/// 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.
///
/// -
///
///
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
.
///
///
///
/// 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 StartWorkflowExecutionRequest : AmazonSimpleWorkflowRequest
{
private ChildPolicy _childPolicy;
private string _domain;
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 _workflowId;
private WorkflowType _workflowType;
///
/// Gets and sets the property ChildPolicy.
///
/// 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 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 Domain.
///
/// The name of the domain in which the workflow execution is created.
///
///
///
/// The specified string must not contain a :
(colon), /
(slash),
/// |
(vertical bar), or any control characters (\u0000-\u001f
/// | \u007f-\u009f
). Also, it must not be the literal string arn
.
///
///
[AWSProperty(Required=true, Min=1, Max=256)]
public string Domain
{
get { return this._domain; }
set { this._domain = value; }
}
// Check to see if Domain property is set
internal bool IsSetDomain()
{
return this._domain != null;
}
///
/// Gets and sets the property ExecutionStartToCloseTimeout.
///
/// 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
.
/// Exceeding this limit causes the workflow execution to time out. Unlike some of the
/// other timeout parameters in Amazon SWF, you cannot specify a value of "NONE" for this
/// timeout; there is a one-year max limit on the time that a workflow execution can run.
///
///
///
/// An execution start-to-close timeout must be specified either through this parameter
/// or as a default when the workflow type is registered. If neither this parameter nor
/// a default execution start-to-close timeout is specified, 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 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.
///
///
[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 this workflow execution.
///
///
///
/// Executions of this workflow type need IAM roles to invoke Lambda functions. If you
/// don't attach an IAM role, any attempt to schedule a Lambda task fails. This results
/// in a ScheduleLambdaFunctionFailed
history event. For more information,
/// see https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html
/// in the Amazon SWF Developer Guide.
///
///
///
[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 workflow execution. You can specify a maximum
/// of 5 tags. 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 decision tasks generated for this workflow execution.
/// This overrides the defaultTaskList
specified when registering the workflow
/// type.
///
///
///
/// A task list 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 task list was specified at registration time then a fault is returned.
///
///
///
/// The specified string must not contain a :
(colon), /
(slash),
/// |
(vertical bar), or any control characters (\u0000-\u001f
/// | \u007f-\u009f
). Also, it must not be the literal string arn
.
///
///
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 to use for this workflow execution. This overrides any default priority
/// that was assigned when the workflow type was registered. If not set, then the default
/// task priority for the workflow type is used. 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 this 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 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 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 WorkflowId.
///
/// 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 within the same domain.
///
///
///
/// The specified string must not contain a :
(colon), /
(slash),
/// |
(vertical bar), or any control characters (\u0000-\u001f
/// | \u007f-\u009f
). Also, it must not be the literal string arn
.
///
///
[AWSProperty(Required=true, Min=1, Max=256)]
public string WorkflowId
{
get { return this._workflowId; }
set { this._workflowId = value; }
}
// Check to see if WorkflowId property is set
internal bool IsSetWorkflowId()
{
return this._workflowId != null;
}
///
/// Gets and sets the property WorkflowType.
///
/// The type of the workflow to start.
///
///
[AWSProperty(Required=true)]
public WorkflowType WorkflowType
{
get { return this._workflowType; }
set { this._workflowType = value; }
}
// Check to see if WorkflowType property is set
internal bool IsSetWorkflowType()
{
return this._workflowType != null;
}
}
}