/* * 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 UpdateAssociation operation. /// Updates an association. You can update the association name and version, the document /// version, schedule, parameters, and Amazon Simple Storage Service (Amazon S3) output. /// When you call UpdateAssociation, the system removes all optional parameters /// from the request and overwrites the association with null values for those parameters. /// This is by design. You must specify all optional parameters in the call, even if you /// are not changing the parameters. This includes the Name parameter. Before /// calling this API action, we recommend that you call the DescribeAssociation /// API operation and make a note of all optional parameters required for your UpdateAssociation /// call. /// /// /// /// In order to call this API operation, a user, group, or role must be granted permission /// to call the DescribeAssociation API operation. If you don't have permission /// to call DescribeAssociation, then you receive the following error: An /// error occurred (AccessDeniedException) when calling the UpdateAssociation operation: /// User: <user_arn> isn't authorized to perform: ssm:DescribeAssociation on resource: /// <resource_arn> /// /// /// /// When you update an association, the association immediately runs against the specified /// targets. You can add the ApplyOnlyAtCronInterval parameter to run the /// association during the next schedule run. /// /// /// public partial class UpdateAssociationRequest : AmazonSimpleSystemsManagementRequest { private AlarmConfiguration _alarmConfiguration; private bool? _applyOnlyAtCronInterval; private string _associationId; private string _associationName; private string _associationVersion; private string _automationTargetParameterName; private List _calendarNames = new List(); private AssociationComplianceSeverity _complianceSeverity; private string _documentVersion; private string _maxConcurrency; private string _maxErrors; private string _name; private InstanceAssociationOutputLocation _outputLocation; private Dictionary> _parameters = new Dictionary>(); private string _scheduleExpression; private int? _scheduleOffset; private AssociationSyncCompliance _syncCompliance; private List _targetLocations = new List(); private List>> _targetMaps = new List>>(); private List _targets = new List(); /// /// Gets and sets the property AlarmConfiguration. /// 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 ApplyOnlyAtCronInterval. /// /// By default, when you update an association, the system runs it immediately after it /// is updated and then according to the schedule you specified. Specify this option if /// you don't want an association to run immediately after you update it. This parameter /// isn't supported for rate expressions. /// /// /// /// If you chose this option when you created an association and later you edit that association /// or you make changes to the SSM document on which that association is based (by using /// the Documents page in the console), State Manager applies the association at the next /// specified cron interval. For example, if you chose the Latest version /// of an SSM document when you created an association and you edit the association by /// choosing a different document version on the Documents page, State Manager applies /// the association at the next specified cron interval if you previously selected this /// option. If this option wasn't selected, State Manager immediately runs the association. /// /// /// /// You can reset this option. To do so, specify the no-apply-only-at-cron-interval /// parameter when you update the association from the command line. This parameter forces /// the association to run immediately after updating it and according to the interval /// specified. /// /// public bool ApplyOnlyAtCronInterval { get { return this._applyOnlyAtCronInterval.GetValueOrDefault(); } set { this._applyOnlyAtCronInterval = value; } } // Check to see if ApplyOnlyAtCronInterval property is set internal bool IsSetApplyOnlyAtCronInterval() { return this._applyOnlyAtCronInterval.HasValue; } /// /// Gets and sets the property AssociationId. /// /// The ID of the association you want to update. /// /// [AWSProperty(Required=true)] public string AssociationId { get { return this._associationId; } set { this._associationId = value; } } // Check to see if AssociationId property is set internal bool IsSetAssociationId() { return this._associationId != null; } /// /// Gets and sets the property AssociationName. /// /// The name of the association that you want to update. /// /// public string AssociationName { get { return this._associationName; } set { this._associationName = value; } } // Check to see if AssociationName property is set internal bool IsSetAssociationName() { return this._associationName != null; } /// /// Gets and sets the property AssociationVersion. /// /// This parameter is provided for concurrency control purposes. You must specify the /// latest association version in the service. If you want to ensure that this request /// succeeds, either specify $LATEST, or omit this parameter. /// /// public string AssociationVersion { get { return this._associationVersion; } set { this._associationVersion = value; } } // Check to see if AssociationVersion property is set internal bool IsSetAssociationVersion() { return this._associationVersion != null; } /// /// Gets and sets the property AutomationTargetParameterName. /// /// Choose the parameter that will define how your automation will branch out. This target /// is required for associations that use an Automation runbook and target resources by /// using rate controls. Automation is a capability of Amazon Web Services Systems Manager. /// /// [AWSProperty(Min=1, Max=50)] public string AutomationTargetParameterName { get { return this._automationTargetParameterName; } set { this._automationTargetParameterName = value; } } // Check to see if AutomationTargetParameterName property is set internal bool IsSetAutomationTargetParameterName() { return this._automationTargetParameterName != null; } /// /// Gets and sets the property CalendarNames. /// /// The names or Amazon Resource Names (ARNs) of the Change Calendar type documents you /// want to gate your associations under. The associations only run when that change calendar /// is open. For more information, see Amazon /// Web Services Systems Manager Change Calendar. /// /// public List CalendarNames { get { return this._calendarNames; } set { this._calendarNames = value; } } // Check to see if CalendarNames property is set internal bool IsSetCalendarNames() { return this._calendarNames != null && this._calendarNames.Count > 0; } /// /// Gets and sets the property ComplianceSeverity. /// /// The severity level to assign to the association. /// /// public AssociationComplianceSeverity ComplianceSeverity { get { return this._complianceSeverity; } set { this._complianceSeverity = value; } } // Check to see if ComplianceSeverity property is set internal bool IsSetComplianceSeverity() { return this._complianceSeverity != null; } /// /// Gets and sets the property DocumentVersion. /// /// The document version you want update for the association. /// /// /// /// State Manager doesn't support running associations that use a new version of a document /// if that document is shared from another account. State Manager always runs the default /// version of a document if shared from another account, even though the Systems Manager /// console shows that a new version was processed. If you want to run an association /// using a new version of a document shared form another account, you must set the document /// version to default. /// /// /// 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 the association at the same time. You /// can specify a number, for example 10, or a percentage of the target set, for example /// 10%. The default value is 100%, which means all targets run the association at the /// same time. /// /// /// /// If a new managed node starts and attempts to run an association while Systems Manager /// is running MaxConcurrency associations, the association is allowed to /// run. During the next association interval, the new managed node will process its association /// within the limit specified for MaxConcurrency. /// /// [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 sending requests to /// run the association 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 sending requests when the fourth error /// is received. If you specify 0, then the system stops sending requests after the first /// error is returned. If you run an association on 50 managed nodes and set MaxError /// to 10%, then the system stops sending the request when the sixth error is received. /// /// /// /// Executions that are already running an association when MaxErrors 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 /// MaxConcurrency to 1 so that 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 Name. /// /// The name of the SSM Command document or Automation runbook that contains the configuration /// information for the managed node. /// /// /// /// You can specify Amazon Web Services-predefined documents, documents you created, or /// a document that is shared with you from another account. /// /// /// /// For Systems Manager document (SSM document) that are shared with you from other Amazon /// Web Services accounts, you must specify the complete SSM document ARN, in the following /// format: /// /// /// /// arn:aws:ssm:region:account-id:document/document-name /// /// /// /// /// For example: /// /// /// /// arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document /// /// /// /// For Amazon Web Services-predefined documents and SSM documents you created in your /// account, you only need to specify the document name. For example, AWS-ApplyPatchBaseline /// or My-Document. /// /// 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 OutputLocation. /// /// An S3 bucket where you want to store the results of this request. /// /// public InstanceAssociationOutputLocation OutputLocation { get { return this._outputLocation; } set { this._outputLocation = value; } } // Check to see if OutputLocation property is set internal bool IsSetOutputLocation() { return this._outputLocation != null; } /// /// Gets and sets the property Parameters. /// /// The parameters you want to update for the association. If you create a parameter using /// Parameter Store, a capability of Amazon Web Services Systems Manager, you can reference /// the parameter using {{ssm:parameter-name}}. /// /// [AWSProperty(Sensitive=true)] 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 ScheduleExpression. /// /// The cron expression used to schedule the association that you want to update. /// /// [AWSProperty(Min=1, Max=256)] public string ScheduleExpression { get { return this._scheduleExpression; } set { this._scheduleExpression = value; } } // Check to see if ScheduleExpression property is set internal bool IsSetScheduleExpression() { return this._scheduleExpression != null; } /// /// Gets and sets the property ScheduleOffset. /// /// Number of days to wait after the scheduled day to run an association. For example, /// if you specified a cron schedule of cron(0 0 ? * THU#2 *), you could /// specify an offset of 3 to run the association each Sunday after the second Thursday /// of the month. For more information about cron schedules for associations, see Reference: /// Cron and rate expressions for Systems Manager in the Amazon Web Services Systems /// Manager User Guide. /// /// /// /// To use offsets, you must specify the ApplyOnlyAtCronInterval parameter. /// This option tells the system not to run an association immediately after you create /// it. /// /// /// [AWSProperty(Min=1, Max=6)] public int ScheduleOffset { get { return this._scheduleOffset.GetValueOrDefault(); } set { this._scheduleOffset = value; } } // Check to see if ScheduleOffset property is set internal bool IsSetScheduleOffset() { return this._scheduleOffset.HasValue; } /// /// Gets and sets the property SyncCompliance. /// /// The mode for generating association compliance. You can specify AUTO /// or MANUAL. In AUTO mode, the system uses the status of the /// association execution to determine the compliance status. If the association execution /// runs successfully, then the association is COMPLIANT. If the association /// execution doesn't run successfully, the association is NON-COMPLIANT. /// /// /// /// In MANUAL mode, you must specify the AssociationId as a /// parameter for the PutComplianceItems API operation. In this case, compliance /// data isn't managed by State Manager, a capability of Amazon Web Services Systems Manager. /// It is managed by your direct call to the PutComplianceItems API operation. /// /// /// /// By default, all associations use AUTO mode. /// /// public AssociationSyncCompliance SyncCompliance { get { return this._syncCompliance; } set { this._syncCompliance = value; } } // Check to see if SyncCompliance property is set internal bool IsSetSyncCompliance() { return this._syncCompliance != null; } /// /// Gets and sets the property TargetLocations. /// /// A location is a combination of Amazon Web Services Regions and Amazon Web Services /// accounts where you want to run the association. Use this action to update an association /// in multiple Regions and multiple accounts. /// /// [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 Targets. /// /// The targets of the association. /// /// [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; } } }