/*
* 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 PollForDecisionTask operation.
/// 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.
///
///
///
/// Deciders should set their client side socket timeout to at least 70 seconds (10 seconds
/// higher than the timeout).
///
///
///
/// Because the number of workflow history events for a single workflow execution might
/// be very large, the result returned might be split up across a number of pages. To
/// retrieve subsequent pages, make additional calls to PollForDecisionTask
/// using the nextPageToken
returned by the initial call. Note that you do
/// not call GetWorkflowExecutionHistory
with this nextPageToken
.
/// Instead, call PollForDecisionTask
again.
///
///
///
/// 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
taskList.name
parameter by using a Condition
/// element with the swf:taskList.name
key to allow the action to access
/// only certain task lists.
///
///
///
/// 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 PollForDecisionTaskRequest : AmazonSimpleWorkflowRequest
{
private string _domain;
private string _identity;
private int? _maximumPageSize;
private string _nextPageToken;
private bool? _reverseOrder;
private bool? _startAtPreviousStartedEvent;
private TaskList _taskList;
///
/// Gets and sets the property Domain.
///
/// The name of the domain containing the task lists to poll.
///
///
[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 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.
///
///
[AWSProperty(Max=256)]
public string Identity
{
get { return this._identity; }
set { this._identity = value; }
}
// Check to see if Identity property is set
internal bool IsSetIdentity()
{
return this._identity != null;
}
///
/// Gets and sets the property MaximumPageSize.
///
/// The maximum number of results that are returned per call. Use nextPageToken
/// to obtain further pages of results.
///
///
///
/// This is an upper limit only; the actual number of results returned per call may be
/// fewer than the specified maximum.
///
///
[AWSProperty(Min=0, Max=1000)]
public int MaximumPageSize
{
get { return this._maximumPageSize.GetValueOrDefault(); }
set { this._maximumPageSize = value; }
}
// Check to see if MaximumPageSize property is set
internal bool IsSetMaximumPageSize()
{
return this._maximumPageSize.HasValue;
}
///
/// Gets and sets the property NextPageToken.
///
/// If NextPageToken
is returned there are more results available. The value
/// of NextPageToken
is a unique pagination token for each page. Make the
/// call again using the returned token to retrieve the next page. Keep all other arguments
/// unchanged. Each pagination token expires after 24 hours. Using an expired pagination
/// token will return a 400
error: "Specified token has exceeded its
/// maximum lifetime
".
///
///
///
/// The configured maximumPageSize
determines how many results can be returned
/// in a single call.
///
///
///
/// The nextPageToken
returned by this action cannot be used with GetWorkflowExecutionHistory
/// to get the next page. You must call PollForDecisionTask again (with the nextPageToken
)
/// to retrieve the next page of history records. Calling PollForDecisionTask with
/// a nextPageToken
doesn't return a new decision task.
///
///
///
[AWSProperty(Max=2048)]
public string NextPageToken
{
get { return this._nextPageToken; }
set { this._nextPageToken = value; }
}
// Check to see if NextPageToken property is set
internal bool IsSetNextPageToken()
{
return this._nextPageToken != null;
}
///
/// Gets and sets the property ReverseOrder.
///
/// 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.
///
///
public bool ReverseOrder
{
get { return this._reverseOrder.GetValueOrDefault(); }
set { this._reverseOrder = value; }
}
// Check to see if ReverseOrder property is set
internal bool IsSetReverseOrder()
{
return this._reverseOrder.HasValue;
}
///
/// Gets and sets the property StartAtPreviousStartedEvent.
///
/// When set to true
, returns the events with eventTimestamp
/// greater than or equal to eventTimestamp
of the most recent DecisionTaskStarted
/// event. By default, this parameter is set to false
.
///
///
public bool StartAtPreviousStartedEvent
{
get { return this._startAtPreviousStartedEvent.GetValueOrDefault(); }
set { this._startAtPreviousStartedEvent = value; }
}
// Check to see if StartAtPreviousStartedEvent property is set
internal bool IsSetStartAtPreviousStartedEvent()
{
return this._startAtPreviousStartedEvent.HasValue;
}
///
/// Gets and sets the property TaskList.
///
/// Specifies the task list to poll for decision tasks.
///
///
///
/// 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)]
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;
}
}
}