/*
* 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 ssm-2014-11-06.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.SimpleSystemsManagement.Model
{
///
/// Detailed information about an the execution state of an Automation step.
///
public partial class StepExecution
{
private string _action;
private DateTime? _executionEndTime;
private DateTime? _executionStartTime;
private FailureDetails _failureDetails;
private string _failureMessage;
private Dictionary _inputs = new Dictionary();
private bool? _isCritical;
private bool? _isEnd;
private int? _maxAttempts;
private string _nextStep;
private string _onFailure;
private Dictionary> _outputs = new Dictionary>();
private Dictionary> _overriddenParameters = new Dictionary>();
private string _response;
private string _responseCode;
private string _stepExecutionId;
private string _stepName;
private AutomationExecutionStatus _stepStatus;
private TargetLocation _targetLocation;
private List _targets = new List();
private long? _timeoutSeconds;
private List _triggeredAlarms = new List();
private List _validNextSteps = new List();
///
/// Gets and sets the property Action.
///
/// The action this step performs. The action determines the behavior of the step.
///
///
public string Action
{
get { return this._action; }
set { this._action = value; }
}
// Check to see if Action property is set
internal bool IsSetAction()
{
return this._action != null;
}
///
/// Gets and sets the property ExecutionEndTime.
///
/// If a step has finished execution, this contains the time the execution ended. If the
/// step hasn't yet concluded, this field isn't populated.
///
///
public DateTime ExecutionEndTime
{
get { return this._executionEndTime.GetValueOrDefault(); }
set { this._executionEndTime = value; }
}
// Check to see if ExecutionEndTime property is set
internal bool IsSetExecutionEndTime()
{
return this._executionEndTime.HasValue;
}
///
/// Gets and sets the property ExecutionStartTime.
///
/// If a step has begun execution, this contains the time the step started. If the step
/// is in Pending status, this field isn't populated.
///
///
public DateTime ExecutionStartTime
{
get { return this._executionStartTime.GetValueOrDefault(); }
set { this._executionStartTime = value; }
}
// Check to see if ExecutionStartTime property is set
internal bool IsSetExecutionStartTime()
{
return this._executionStartTime.HasValue;
}
///
/// Gets and sets the property FailureDetails.
///
/// Information about the Automation failure.
///
///
public FailureDetails FailureDetails
{
get { return this._failureDetails; }
set { this._failureDetails = value; }
}
// Check to see if FailureDetails property is set
internal bool IsSetFailureDetails()
{
return this._failureDetails != null;
}
///
/// Gets and sets the property FailureMessage.
///
/// If a step failed, this message explains why the execution failed.
///
///
public string FailureMessage
{
get { return this._failureMessage; }
set { this._failureMessage = value; }
}
// Check to see if FailureMessage property is set
internal bool IsSetFailureMessage()
{
return this._failureMessage != null;
}
///
/// Gets and sets the property Inputs.
///
/// Fully-resolved values passed into the step before execution.
///
///
public Dictionary Inputs
{
get { return this._inputs; }
set { this._inputs = value; }
}
// Check to see if Inputs property is set
internal bool IsSetInputs()
{
return this._inputs != null && this._inputs.Count > 0;
}
///
/// Gets and sets the property IsCritical.
///
/// The flag which can be used to help decide whether the failure of current step leads
/// to the Automation failure.
///
///
public bool IsCritical
{
get { return this._isCritical.GetValueOrDefault(); }
set { this._isCritical = value; }
}
// Check to see if IsCritical property is set
internal bool IsSetIsCritical()
{
return this._isCritical.HasValue;
}
///
/// Gets and sets the property IsEnd.
///
/// The flag which can be used to end automation no matter whether the step succeeds or
/// fails.
///
///
public bool IsEnd
{
get { return this._isEnd.GetValueOrDefault(); }
set { this._isEnd = value; }
}
// Check to see if IsEnd property is set
internal bool IsSetIsEnd()
{
return this._isEnd.HasValue;
}
///
/// Gets and sets the property MaxAttempts.
///
/// The maximum number of tries to run the action of the step. The default value is 1
.
///
///
public int MaxAttempts
{
get { return this._maxAttempts.GetValueOrDefault(); }
set { this._maxAttempts = value; }
}
// Check to see if MaxAttempts property is set
internal bool IsSetMaxAttempts()
{
return this._maxAttempts.HasValue;
}
///
/// Gets and sets the property NextStep.
///
/// The next step after the step succeeds.
///
///
public string NextStep
{
get { return this._nextStep; }
set { this._nextStep = value; }
}
// Check to see if NextStep property is set
internal bool IsSetNextStep()
{
return this._nextStep != null;
}
///
/// Gets and sets the property OnFailure.
///
/// The action to take if the step fails. The default value is Abort
.
///
///
public string OnFailure
{
get { return this._onFailure; }
set { this._onFailure = value; }
}
// Check to see if OnFailure property is set
internal bool IsSetOnFailure()
{
return this._onFailure != null;
}
///
/// Gets and sets the property Outputs.
///
/// Returned values from the execution of the step.
///
///
[AWSProperty(Min=1, Max=200)]
public Dictionary> Outputs
{
get { return this._outputs; }
set { this._outputs = value; }
}
// Check to see if Outputs property is set
internal bool IsSetOutputs()
{
return this._outputs != null && this._outputs.Count > 0;
}
///
/// Gets and sets the property OverriddenParameters.
///
/// A user-specified list of parameters to override when running a step.
///
///
[AWSProperty(Min=1, Max=200)]
public Dictionary> OverriddenParameters
{
get { return this._overriddenParameters; }
set { this._overriddenParameters = value; }
}
// Check to see if OverriddenParameters property is set
internal bool IsSetOverriddenParameters()
{
return this._overriddenParameters != null && this._overriddenParameters.Count > 0;
}
///
/// Gets and sets the property Response.
///
/// A message associated with the response code for an execution.
///
///
public string Response
{
get { return this._response; }
set { this._response = value; }
}
// Check to see if Response property is set
internal bool IsSetResponse()
{
return this._response != null;
}
///
/// Gets and sets the property ResponseCode.
///
/// The response code returned by the execution of the step.
///
///
public string ResponseCode
{
get { return this._responseCode; }
set { this._responseCode = value; }
}
// Check to see if ResponseCode property is set
internal bool IsSetResponseCode()
{
return this._responseCode != null;
}
///
/// Gets and sets the property StepExecutionId.
///
/// The unique ID of a step execution.
///
///
public string StepExecutionId
{
get { return this._stepExecutionId; }
set { this._stepExecutionId = value; }
}
// Check to see if StepExecutionId property is set
internal bool IsSetStepExecutionId()
{
return this._stepExecutionId != null;
}
///
/// Gets and sets the property StepName.
///
/// The name of this execution step.
///
///
public string StepName
{
get { return this._stepName; }
set { this._stepName = value; }
}
// Check to see if StepName property is set
internal bool IsSetStepName()
{
return this._stepName != null;
}
///
/// Gets and sets the property StepStatus.
///
/// The execution status for this step.
///
///
public AutomationExecutionStatus StepStatus
{
get { return this._stepStatus; }
set { this._stepStatus = value; }
}
// Check to see if StepStatus property is set
internal bool IsSetStepStatus()
{
return this._stepStatus != null;
}
///
/// Gets and sets the property TargetLocation.
///
/// The combination of Amazon Web Services Regions and Amazon Web Services accounts targeted
/// by the current Automation execution.
///
///
public TargetLocation TargetLocation
{
get { return this._targetLocation; }
set { this._targetLocation = value; }
}
// Check to see if TargetLocation property is set
internal bool IsSetTargetLocation()
{
return this._targetLocation != null;
}
///
/// Gets and sets the property Targets.
///
/// The targets for the step execution.
///
///
[AWSProperty(Min=0, Max=5)]
public List Targets
{
get { return this._targets; }
set { this._targets = value; }
}
// Check to see if Targets property is set
internal bool IsSetTargets()
{
return this._targets != null && this._targets.Count > 0;
}
///
/// Gets and sets the property TimeoutSeconds.
///
/// The timeout seconds of the step.
///
///
public long TimeoutSeconds
{
get { return this._timeoutSeconds.GetValueOrDefault(); }
set { this._timeoutSeconds = value; }
}
// Check to see if TimeoutSeconds property is set
internal bool IsSetTimeoutSeconds()
{
return this._timeoutSeconds.HasValue;
}
///
/// Gets and sets the property TriggeredAlarms.
///
/// The CloudWatch alarms that were invoked by the automation.
///
///
[AWSProperty(Min=1, Max=1)]
public List TriggeredAlarms
{
get { return this._triggeredAlarms; }
set { this._triggeredAlarms = value; }
}
// Check to see if TriggeredAlarms property is set
internal bool IsSetTriggeredAlarms()
{
return this._triggeredAlarms != null && this._triggeredAlarms.Count > 0;
}
///
/// Gets and sets the property ValidNextSteps.
///
/// Strategies used when step fails, we support Continue and Abort. Abort will fail the
/// automation when the step fails. Continue will ignore the failure of current step and
/// allow automation to run the next step. With conditional branching, we add step:stepName
/// to support the automation to go to another specific step.
///
///
public List ValidNextSteps
{
get { return this._validNextSteps; }
set { this._validNextSteps = value; }
}
// Check to see if ValidNextSteps property is set
internal bool IsSetValidNextSteps()
{
return this._validNextSteps != null && this._validNextSteps.Count > 0;
}
}
}