/*
* 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 RegisterTaskWithMaintenanceWindow operation.
/// Adds a new task to a maintenance window.
///
public partial class RegisterTaskWithMaintenanceWindowRequest : AmazonSimpleSystemsManagementRequest
{
private AlarmConfiguration _alarmConfiguration;
private string _clientToken;
private MaintenanceWindowTaskCutoffBehavior _cutoffBehavior;
private string _description;
private LoggingInfo _loggingInfo;
private string _maxConcurrency;
private string _maxErrors;
private string _name;
private int? _priority;
private string _serviceRoleArn;
private List _targets = new List();
private string _taskArn;
private MaintenanceWindowTaskInvocationParameters _taskInvocationParameters;
private Dictionary _taskParameters = new Dictionary();
private MaintenanceWindowTaskType _taskType;
private string _windowId;
///
/// Gets and sets the property AlarmConfiguration.
///
/// The CloudWatch alarm you want to apply to your maintenance window task.
///
///
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.
///
///
[AWSProperty(Min=1, Max=64)]
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 CutoffBehavior.
///
/// Indicates whether tasks should continue to run after the cutoff time specified in
/// the maintenance windows is reached.
///
/// -
///
///
CONTINUE_TASK: When the cutoff time is reached, any tasks that are running
/// continue. The default value.
///
/// -
///
///
CANCEL_TASK:
///
/// -
///
/// For Automation, Lambda, Step Functions tasks: When the cutoff time is reached, any
/// task invocations that are already running continue, but no new task invocations are
/// started.
///
///
-
///
/// For Run Command tasks: When the cutoff time is reached, the system sends a CancelCommand
/// operation that attempts to cancel the command associated with the task. However, there
/// is no guarantee that the command will be terminated and the underlying process stopped.
///
///
///
/// The status for tasks that are not completed is TIMED_OUT.
///
///
///
public MaintenanceWindowTaskCutoffBehavior CutoffBehavior
{
get { return this._cutoffBehavior; }
set { this._cutoffBehavior = value; }
}
// Check to see if CutoffBehavior property is set
internal bool IsSetCutoffBehavior()
{
return this._cutoffBehavior != null;
}
///
/// Gets and sets the property Description.
///
/// An optional description for the task.
///
///
[AWSProperty(Sensitive=true, Min=1, Max=128)]
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property LoggingInfo.
///
/// A structure containing information about an Amazon Simple Storage Service (Amazon
/// S3) bucket to write managed node-level logs to.
///
///
///
/// LoggingInfo has been deprecated. To specify an Amazon Simple Storage
/// Service (Amazon S3) bucket to contain logs, instead use the OutputS3BucketName
/// and OutputS3KeyPrefix options in the TaskInvocationParameters
/// structure. For information about how Amazon Web Services Systems Manager handles these
/// options for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters.
///
///
///
public LoggingInfo LoggingInfo
{
get { return this._loggingInfo; }
set { this._loggingInfo = value; }
}
// Check to see if LoggingInfo property is set
internal bool IsSetLoggingInfo()
{
return this._loggingInfo != null;
}
///
/// Gets and sets the property MaxConcurrency.
///
/// The maximum number of targets this task can be run for, in parallel.
///
///
///
/// Although this element is listed as "Required: No", a value can be omitted only when
/// you are registering or updating a targetless
/// task You must provide a value in all other cases.
///
///
///
/// For maintenance window tasks without a target specified, you can't supply a value
/// for this option. Instead, the system inserts a placeholder value of 1.
/// This value doesn't affect the running of your task.
///
///
///
[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 maximum number of errors allowed before this task stops being scheduled.
///
///
///
/// Although this element is listed as "Required: No", a value can be omitted only when
/// you are registering or updating a targetless
/// task You must provide a value in all other cases.
///
///
///
/// For maintenance window tasks without a target specified, you can't supply a value
/// for this option. Instead, the system inserts a placeholder value of 1.
/// This value doesn't affect the running of your task.
///
///
///
[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 Name.
///
/// An optional name for the task.
///
///
[AWSProperty(Min=3, Max=128)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property Priority.
///
/// The priority of the task in the maintenance window, the lower the number the higher
/// the priority. Tasks in a maintenance window are scheduled in priority order with tasks
/// that have the same priority scheduled in parallel.
///
///
[AWSProperty(Min=0)]
public int Priority
{
get { return this._priority.GetValueOrDefault(); }
set { this._priority = value; }
}
// Check to see if Priority property is set
internal bool IsSetPriority()
{
return this._priority.HasValue;
}
///
/// Gets and sets the property ServiceRoleArn.
///
/// The Amazon Resource Name (ARN) of the IAM service role for Amazon Web Services Systems
/// Manager to assume when running a maintenance window task. If you do not specify a
/// service role ARN, Systems Manager uses your account's service-linked role. If no service-linked
/// role for Systems Manager exists in your account, it is created when you run RegisterTaskWithMaintenanceWindow.
///
///
///
/// For more information, see the following topics in the in the Amazon Web Services
/// Systems Manager User Guide:
///
///
///
public string ServiceRoleArn
{
get { return this._serviceRoleArn; }
set { this._serviceRoleArn = value; }
}
// Check to see if ServiceRoleArn property is set
internal bool IsSetServiceRoleArn()
{
return this._serviceRoleArn != null;
}
///
/// Gets and sets the property Targets.
///
/// The targets (either managed nodes or maintenance window targets).
///
///
///
/// One or more targets must be specified for maintenance window Run Command-type tasks.
/// Depending on the task, targets are optional for other maintenance window task types
/// (Automation, Lambda, and Step Functions). For more information about running tasks
/// that don't specify targets, see Registering
/// maintenance window tasks without targets in the Amazon Web Services Systems
/// Manager User Guide.
///
///
///
/// Specify managed nodes using the following format:
///
///
///
/// Key=InstanceIds,Values=<instance-id-1>,<instance-id-2>
///
///
///
/// Specify maintenance window targets using the following format:
///
///
///
/// Key=WindowTargetIds,Values=<window-target-id-1>,<window-target-id-2>
///
///
///
[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 TaskArn.
///
/// The ARN of the task to run.
///
///
[AWSProperty(Required=true, Min=1, Max=1600)]
public string TaskArn
{
get { return this._taskArn; }
set { this._taskArn = value; }
}
// Check to see if TaskArn property is set
internal bool IsSetTaskArn()
{
return this._taskArn != null;
}
///
/// Gets and sets the property TaskInvocationParameters.
///
/// The parameters that the task should use during execution. Populate only the fields
/// that match the task type. All other fields should be empty.
///
///
public MaintenanceWindowTaskInvocationParameters TaskInvocationParameters
{
get { return this._taskInvocationParameters; }
set { this._taskInvocationParameters = value; }
}
// Check to see if TaskInvocationParameters property is set
internal bool IsSetTaskInvocationParameters()
{
return this._taskInvocationParameters != null;
}
///
/// Gets and sets the property TaskParameters.
///
/// The parameters that should be passed to the task when it is run.
///
///
///
/// TaskParameters has been deprecated. To specify parameters to pass to
/// a task when it runs, instead use the Parameters option in the TaskInvocationParameters
/// structure. For information about how Systems Manager handles these options for the
/// supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters.
///
///
///
[AWSProperty(Sensitive=true)]
public Dictionary TaskParameters
{
get { return this._taskParameters; }
set { this._taskParameters = value; }
}
// Check to see if TaskParameters property is set
internal bool IsSetTaskParameters()
{
return this._taskParameters != null && this._taskParameters.Count > 0;
}
///
/// Gets and sets the property TaskType.
///
/// The type of task being registered.
///
///
[AWSProperty(Required=true)]
public MaintenanceWindowTaskType TaskType
{
get { return this._taskType; }
set { this._taskType = value; }
}
// Check to see if TaskType property is set
internal bool IsSetTaskType()
{
return this._taskType != null;
}
///
/// Gets and sets the property WindowId.
///
/// The ID of the maintenance window the task should be added to.
///
///
[AWSProperty(Required=true, Min=20, Max=20)]
public string WindowId
{
get { return this._windowId; }
set { this._windowId = value; }
}
// Check to see if WindowId property is set
internal bool IsSetWindowId()
{
return this._windowId != null;
}
}
}