/*
* 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 TerminateWorkflowExecution operation.
/// 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.
///
///
///
/// If the identified workflow execution was in progress, it is terminated immediately.
///
///
///
/// If a runId isn't specified, then the WorkflowExecutionTerminated
event
/// is recorded in the history of the current open workflow with the matching workflowId
/// in the domain.
///
///
///
/// You should consider using RequestCancelWorkflowExecution action instead because
/// it allows the workflow to gracefully close while TerminateWorkflowExecution
/// doesn't.
///
///
///
/// 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.
///
/// -
///
/// You cannot use an IAM policy to constrain this action's parameters.
///
///
///
/// 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 TerminateWorkflowExecutionRequest : AmazonSimpleWorkflowRequest
{
private ChildPolicy _childPolicy;
private string _details;
private string _domain;
private string _reason;
private string _runId;
private string _workflowId;
///
/// Gets and sets the property ChildPolicy.
///
/// 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 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 Details.
///
/// Details for terminating the workflow execution.
///
///
[AWSProperty(Max=32768)]
public string Details
{
get { return this._details; }
set { this._details = value; }
}
// Check to see if Details property is set
internal bool IsSetDetails()
{
return this._details != null;
}
///
/// Gets and sets the property Domain.
///
/// The domain of the workflow execution to terminate.
///
///
[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 Reason.
///
/// A descriptive reason for terminating the workflow execution.
///
///
[AWSProperty(Max=256)]
public string Reason
{
get { return this._reason; }
set { this._reason = value; }
}
// Check to see if Reason property is set
internal bool IsSetReason()
{
return this._reason != null;
}
///
/// Gets and sets the property RunId.
///
/// The runId of the workflow execution to terminate.
///
///
[AWSProperty(Max=64)]
public string RunId
{
get { return this._runId; }
set { this._runId = value; }
}
// Check to see if RunId property is set
internal bool IsSetRunId()
{
return this._runId != null;
}
///
/// Gets and sets the property WorkflowId.
///
/// The workflowId of the workflow execution to terminate.
///
///
[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;
}
}
}