/*
* 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
{
///
/// Container for the parameters to the StartAutomationExecution operation.
/// Initiates execution of an Automation runbook.
///
public partial class StartAutomationExecutionRequest : AmazonSimpleSystemsManagementRequest
{
private AlarmConfiguration _alarmConfiguration;
private string _clientToken;
private string _documentName;
private string _documentVersion;
private string _maxConcurrency;
private string _maxErrors;
private ExecutionMode _mode;
private Dictionary> _parameters = new Dictionary>();
private List _tags = new List();
private List _targetLocations = new List();
private List>> _targetMaps = new List>>();
private string _targetParameterName;
private List _targets = new List();
///
/// Gets and sets the property AlarmConfiguration.
///
/// The CloudWatch alarm you want to apply to your automation.
///
///
public AlarmConfiguration AlarmConfiguration
{
get { return this._alarmConfiguration; }
set { this._alarmConfiguration = value; }
}
// Check to see if AlarmConfiguration property is set
internal bool IsSetAlarmConfiguration()
{
return this._alarmConfiguration != null;
}
///
/// Gets and sets the property ClientToken.
///
/// User-provided idempotency token. The token must be unique, is case insensitive, enforces
/// the UUID format, and can't be reused.
///
///
[AWSProperty(Min=36, Max=36)]
public string ClientToken
{
get { return this._clientToken; }
set { this._clientToken = value; }
}
// Check to see if ClientToken property is set
internal bool IsSetClientToken()
{
return this._clientToken != null;
}
///
/// Gets and sets the property DocumentName.
///
/// The name of the SSM document to run. This can be a public document or a custom document.
/// To run a shared document belonging to another account, specify the document ARN. For
/// more information about how to use shared documents, see Using
/// shared SSM documents in the Amazon Web Services Systems Manager User Guide.
///
///
[AWSProperty(Required=true)]
public string DocumentName
{
get { return this._documentName; }
set { this._documentName = value; }
}
// Check to see if DocumentName property is set
internal bool IsSetDocumentName()
{
return this._documentName != null;
}
///
/// Gets and sets the property DocumentVersion.
///
/// The version of the Automation runbook to use for this execution.
///
///
public string DocumentVersion
{
get { return this._documentVersion; }
set { this._documentVersion = value; }
}
// Check to see if DocumentVersion property is set
internal bool IsSetDocumentVersion()
{
return this._documentVersion != null;
}
///
/// Gets and sets the property MaxConcurrency.
///
/// The maximum number of targets allowed to run this task in parallel. You can specify
/// a number, such as 10, or a percentage, such as 10%. The default value is 10
.
///
///
[AWSProperty(Min=1, Max=7)]
public string MaxConcurrency
{
get { return this._maxConcurrency; }
set { this._maxConcurrency = value; }
}
// Check to see if MaxConcurrency property is set
internal bool IsSetMaxConcurrency()
{
return this._maxConcurrency != null;
}
///
/// Gets and sets the property MaxErrors.
///
/// The number of errors that are allowed before the system stops running the automation
/// on additional targets. You can specify either an absolute number of errors, for example
/// 10, or a percentage of the target set, for example 10%. If you specify 3, for example,
/// the system stops running the automation when the fourth error is received. If you
/// specify 0, then the system stops running the automation on additional targets after
/// the first error result is returned. If you run an automation on 50 resources and set
/// max-errors to 10%, then the system stops running the automation on additional targets
/// when the sixth error is received.
///
///
///
/// Executions that are already running an automation when max-errors is reached are allowed
/// to complete, but some of these executions may fail as well. If you need to ensure
/// that there won't be more than max-errors failed executions, set max-concurrency to
/// 1 so the executions proceed one at a time.
///
///
[AWSProperty(Min=1, Max=7)]
public string MaxErrors
{
get { return this._maxErrors; }
set { this._maxErrors = value; }
}
// Check to see if MaxErrors property is set
internal bool IsSetMaxErrors()
{
return this._maxErrors != null;
}
///
/// Gets and sets the property Mode.
///
/// The execution mode of the automation. Valid modes include the following: Auto and
/// Interactive. The default mode is Auto.
///
///
public ExecutionMode Mode
{
get { return this._mode; }
set { this._mode = value; }
}
// Check to see if Mode property is set
internal bool IsSetMode()
{
return this._mode != null;
}
///
/// Gets and sets the property Parameters.
///
/// A key-value map of execution parameters, which match the declared parameters in the
/// Automation runbook.
///
///
[AWSProperty(Min=1, Max=200)]
public Dictionary> Parameters
{
get { return this._parameters; }
set { this._parameters = value; }
}
// Check to see if Parameters property is set
internal bool IsSetParameters()
{
return this._parameters != null && this._parameters.Count > 0;
}
///
/// Gets and sets the property Tags.
///
/// Optional metadata that you assign to a resource. You can specify a maximum of five
/// tags for an automation. Tags enable you to categorize a resource in different ways,
/// such as by purpose, owner, or environment. For example, you might want to tag an automation
/// to identify an environment or operating system. In this case, you could specify the
/// following key-value pairs:
///
/// -
///
///
Key=environment,Value=test
///
/// -
///
///
Key=OS,Value=Windows
///
///
///
/// To add tags to an existing automation, use the AddTagsToResource operation.
///
///
///
[AWSProperty(Max=1000)]
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property TargetLocations.
///
/// A location is a combination of Amazon Web Services Regions and/or Amazon Web Services
/// accounts where you want to run the automation. Use this operation to start an automation
/// in multiple Amazon Web Services Regions and multiple Amazon Web Services accounts.
/// For more information, see Running
/// Automation workflows in multiple Amazon Web Services Regions and Amazon Web Services
/// accounts in the Amazon Web Services Systems Manager User Guide.
///
///
[AWSProperty(Min=1, Max=100)]
public List TargetLocations
{
get { return this._targetLocations; }
set { this._targetLocations = value; }
}
// Check to see if TargetLocations property is set
internal bool IsSetTargetLocations()
{
return this._targetLocations != null && this._targetLocations.Count > 0;
}
///
/// Gets and sets the property TargetMaps.
///
/// A key-value mapping of document parameters to target resources. Both Targets and TargetMaps
/// can't be specified together.
///
///
[AWSProperty(Min=0, Max=300)]
public List>> TargetMaps
{
get { return this._targetMaps; }
set { this._targetMaps = value; }
}
// Check to see if TargetMaps property is set
internal bool IsSetTargetMaps()
{
return this._targetMaps != null && this._targetMaps.Count > 0;
}
///
/// Gets and sets the property TargetParameterName.
///
/// The name of the parameter used as the target resource for the rate-controlled execution.
/// Required if you specify targets.
///
///
[AWSProperty(Min=1, Max=50)]
public string TargetParameterName
{
get { return this._targetParameterName; }
set { this._targetParameterName = value; }
}
// Check to see if TargetParameterName property is set
internal bool IsSetTargetParameterName()
{
return this._targetParameterName != null;
}
///
/// Gets and sets the property Targets.
///
/// A key-value mapping to target resources. Required if you specify TargetParameterName.
///
///
[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;
}
}
}