Files
2026-02-28 12:32:28 -05:00

425 lines
26 KiB
C++

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include <aws/ssm/SSM_EXPORTS.h>
#include <aws/core/utils/memory/stl/AWSString.h>
#include <aws/core/utils/DateTime.h>
#include <aws/core/utils/memory/stl/AWSMap.h>
#include <aws/core/utils/memory/stl/AWSVector.h>
#include <aws/ssm/model/InstanceAssociationOutputLocation.h>
#include <aws/ssm/model/AssociationComplianceSeverity.h>
#include <aws/ssm/model/AssociationSyncCompliance.h>
#include <aws/ssm/model/Target.h>
#include <aws/ssm/model/TargetLocation.h>
#include <utility>
namespace Aws
{
namespace Utils
{
namespace Json
{
class JsonValue;
class JsonView;
} // namespace Json
} // namespace Utils
namespace SSM
{
namespace Model
{
/**
* <p>Information about the association version.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/AssociationVersionInfo">AWS
* API Reference</a></p>
*/
class AssociationVersionInfo
{
public:
AWS_SSM_API AssociationVersionInfo();
AWS_SSM_API AssociationVersionInfo(Aws::Utils::Json::JsonView jsonValue);
AWS_SSM_API AssociationVersionInfo& operator=(Aws::Utils::Json::JsonView jsonValue);
AWS_SSM_API Aws::Utils::Json::JsonValue Jsonize() const;
///@{
/**
* <p>The ID created by the system when the association was created.</p>
*/
inline const Aws::String& GetAssociationId() const{ return m_associationId; }
inline bool AssociationIdHasBeenSet() const { return m_associationIdHasBeenSet; }
inline void SetAssociationId(const Aws::String& value) { m_associationIdHasBeenSet = true; m_associationId = value; }
inline void SetAssociationId(Aws::String&& value) { m_associationIdHasBeenSet = true; m_associationId = std::move(value); }
inline void SetAssociationId(const char* value) { m_associationIdHasBeenSet = true; m_associationId.assign(value); }
inline AssociationVersionInfo& WithAssociationId(const Aws::String& value) { SetAssociationId(value); return *this;}
inline AssociationVersionInfo& WithAssociationId(Aws::String&& value) { SetAssociationId(std::move(value)); return *this;}
inline AssociationVersionInfo& WithAssociationId(const char* value) { SetAssociationId(value); return *this;}
///@}
///@{
/**
* <p>The association version.</p>
*/
inline const Aws::String& GetAssociationVersion() const{ return m_associationVersion; }
inline bool AssociationVersionHasBeenSet() const { return m_associationVersionHasBeenSet; }
inline void SetAssociationVersion(const Aws::String& value) { m_associationVersionHasBeenSet = true; m_associationVersion = value; }
inline void SetAssociationVersion(Aws::String&& value) { m_associationVersionHasBeenSet = true; m_associationVersion = std::move(value); }
inline void SetAssociationVersion(const char* value) { m_associationVersionHasBeenSet = true; m_associationVersion.assign(value); }
inline AssociationVersionInfo& WithAssociationVersion(const Aws::String& value) { SetAssociationVersion(value); return *this;}
inline AssociationVersionInfo& WithAssociationVersion(Aws::String&& value) { SetAssociationVersion(std::move(value)); return *this;}
inline AssociationVersionInfo& WithAssociationVersion(const char* value) { SetAssociationVersion(value); return *this;}
///@}
///@{
/**
* <p>The date the association version was created.</p>
*/
inline const Aws::Utils::DateTime& GetCreatedDate() const{ return m_createdDate; }
inline bool CreatedDateHasBeenSet() const { return m_createdDateHasBeenSet; }
inline void SetCreatedDate(const Aws::Utils::DateTime& value) { m_createdDateHasBeenSet = true; m_createdDate = value; }
inline void SetCreatedDate(Aws::Utils::DateTime&& value) { m_createdDateHasBeenSet = true; m_createdDate = std::move(value); }
inline AssociationVersionInfo& WithCreatedDate(const Aws::Utils::DateTime& value) { SetCreatedDate(value); return *this;}
inline AssociationVersionInfo& WithCreatedDate(Aws::Utils::DateTime&& value) { SetCreatedDate(std::move(value)); return *this;}
///@}
///@{
/**
* <p>The name specified when the association was created.</p>
*/
inline const Aws::String& GetName() const{ return m_name; }
inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
inline AssociationVersionInfo& WithName(const Aws::String& value) { SetName(value); return *this;}
inline AssociationVersionInfo& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
inline AssociationVersionInfo& WithName(const char* value) { SetName(value); return *this;}
///@}
///@{
/**
* <p>The version of an Amazon Web Services Systems Manager document (SSM document)
* used when the association version was created.</p>
*/
inline const Aws::String& GetDocumentVersion() const{ return m_documentVersion; }
inline bool DocumentVersionHasBeenSet() const { return m_documentVersionHasBeenSet; }
inline void SetDocumentVersion(const Aws::String& value) { m_documentVersionHasBeenSet = true; m_documentVersion = value; }
inline void SetDocumentVersion(Aws::String&& value) { m_documentVersionHasBeenSet = true; m_documentVersion = std::move(value); }
inline void SetDocumentVersion(const char* value) { m_documentVersionHasBeenSet = true; m_documentVersion.assign(value); }
inline AssociationVersionInfo& WithDocumentVersion(const Aws::String& value) { SetDocumentVersion(value); return *this;}
inline AssociationVersionInfo& WithDocumentVersion(Aws::String&& value) { SetDocumentVersion(std::move(value)); return *this;}
inline AssociationVersionInfo& WithDocumentVersion(const char* value) { SetDocumentVersion(value); return *this;}
///@}
///@{
/**
* <p>Parameters specified when the association version was created.</p>
*/
inline const Aws::Map<Aws::String, Aws::Vector<Aws::String>>& GetParameters() const{ return m_parameters; }
inline bool ParametersHasBeenSet() const { return m_parametersHasBeenSet; }
inline void SetParameters(const Aws::Map<Aws::String, Aws::Vector<Aws::String>>& value) { m_parametersHasBeenSet = true; m_parameters = value; }
inline void SetParameters(Aws::Map<Aws::String, Aws::Vector<Aws::String>>&& value) { m_parametersHasBeenSet = true; m_parameters = std::move(value); }
inline AssociationVersionInfo& WithParameters(const Aws::Map<Aws::String, Aws::Vector<Aws::String>>& value) { SetParameters(value); return *this;}
inline AssociationVersionInfo& WithParameters(Aws::Map<Aws::String, Aws::Vector<Aws::String>>&& value) { SetParameters(std::move(value)); return *this;}
inline AssociationVersionInfo& AddParameters(const Aws::String& key, const Aws::Vector<Aws::String>& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, value); return *this; }
inline AssociationVersionInfo& AddParameters(Aws::String&& key, const Aws::Vector<Aws::String>& value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), value); return *this; }
inline AssociationVersionInfo& AddParameters(const Aws::String& key, Aws::Vector<Aws::String>&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, std::move(value)); return *this; }
inline AssociationVersionInfo& AddParameters(Aws::String&& key, Aws::Vector<Aws::String>&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), std::move(value)); return *this; }
inline AssociationVersionInfo& AddParameters(const char* key, Aws::Vector<Aws::String>&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, std::move(value)); return *this; }
inline AssociationVersionInfo& AddParameters(const char* key, const Aws::Vector<Aws::String>& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, value); return *this; }
///@}
///@{
/**
* <p>The targets specified for the association when the association version was
* created. </p>
*/
inline const Aws::Vector<Target>& GetTargets() const{ return m_targets; }
inline bool TargetsHasBeenSet() const { return m_targetsHasBeenSet; }
inline void SetTargets(const Aws::Vector<Target>& value) { m_targetsHasBeenSet = true; m_targets = value; }
inline void SetTargets(Aws::Vector<Target>&& value) { m_targetsHasBeenSet = true; m_targets = std::move(value); }
inline AssociationVersionInfo& WithTargets(const Aws::Vector<Target>& value) { SetTargets(value); return *this;}
inline AssociationVersionInfo& WithTargets(Aws::Vector<Target>&& value) { SetTargets(std::move(value)); return *this;}
inline AssociationVersionInfo& AddTargets(const Target& value) { m_targetsHasBeenSet = true; m_targets.push_back(value); return *this; }
inline AssociationVersionInfo& AddTargets(Target&& value) { m_targetsHasBeenSet = true; m_targets.push_back(std::move(value)); return *this; }
///@}
///@{
/**
* <p>The cron or rate schedule specified for the association when the association
* version was created.</p>
*/
inline const Aws::String& GetScheduleExpression() const{ return m_scheduleExpression; }
inline bool ScheduleExpressionHasBeenSet() const { return m_scheduleExpressionHasBeenSet; }
inline void SetScheduleExpression(const Aws::String& value) { m_scheduleExpressionHasBeenSet = true; m_scheduleExpression = value; }
inline void SetScheduleExpression(Aws::String&& value) { m_scheduleExpressionHasBeenSet = true; m_scheduleExpression = std::move(value); }
inline void SetScheduleExpression(const char* value) { m_scheduleExpressionHasBeenSet = true; m_scheduleExpression.assign(value); }
inline AssociationVersionInfo& WithScheduleExpression(const Aws::String& value) { SetScheduleExpression(value); return *this;}
inline AssociationVersionInfo& WithScheduleExpression(Aws::String&& value) { SetScheduleExpression(std::move(value)); return *this;}
inline AssociationVersionInfo& WithScheduleExpression(const char* value) { SetScheduleExpression(value); return *this;}
///@}
///@{
/**
* <p>The location in Amazon S3 specified for the association when the association
* version was created.</p>
*/
inline const InstanceAssociationOutputLocation& GetOutputLocation() const{ return m_outputLocation; }
inline bool OutputLocationHasBeenSet() const { return m_outputLocationHasBeenSet; }
inline void SetOutputLocation(const InstanceAssociationOutputLocation& value) { m_outputLocationHasBeenSet = true; m_outputLocation = value; }
inline void SetOutputLocation(InstanceAssociationOutputLocation&& value) { m_outputLocationHasBeenSet = true; m_outputLocation = std::move(value); }
inline AssociationVersionInfo& WithOutputLocation(const InstanceAssociationOutputLocation& value) { SetOutputLocation(value); return *this;}
inline AssociationVersionInfo& WithOutputLocation(InstanceAssociationOutputLocation&& value) { SetOutputLocation(std::move(value)); return *this;}
///@}
///@{
/**
* <p>The name specified for the association version when the association version
* was created.</p>
*/
inline const Aws::String& GetAssociationName() const{ return m_associationName; }
inline bool AssociationNameHasBeenSet() const { return m_associationNameHasBeenSet; }
inline void SetAssociationName(const Aws::String& value) { m_associationNameHasBeenSet = true; m_associationName = value; }
inline void SetAssociationName(Aws::String&& value) { m_associationNameHasBeenSet = true; m_associationName = std::move(value); }
inline void SetAssociationName(const char* value) { m_associationNameHasBeenSet = true; m_associationName.assign(value); }
inline AssociationVersionInfo& WithAssociationName(const Aws::String& value) { SetAssociationName(value); return *this;}
inline AssociationVersionInfo& WithAssociationName(Aws::String&& value) { SetAssociationName(std::move(value)); return *this;}
inline AssociationVersionInfo& WithAssociationName(const char* value) { SetAssociationName(value); return *this;}
///@}
///@{
/**
* <p>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 <code>MaxError</code> to 10%, then the
* system stops sending the request when the sixth error is received.</p>
* <p>Executions that are already running an association when
* <code>MaxErrors</code> 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 <code>MaxConcurrency</code> to 1 so that
* executions proceed one at a time.</p>
*/
inline const Aws::String& GetMaxErrors() const{ return m_maxErrors; }
inline bool MaxErrorsHasBeenSet() const { return m_maxErrorsHasBeenSet; }
inline void SetMaxErrors(const Aws::String& value) { m_maxErrorsHasBeenSet = true; m_maxErrors = value; }
inline void SetMaxErrors(Aws::String&& value) { m_maxErrorsHasBeenSet = true; m_maxErrors = std::move(value); }
inline void SetMaxErrors(const char* value) { m_maxErrorsHasBeenSet = true; m_maxErrors.assign(value); }
inline AssociationVersionInfo& WithMaxErrors(const Aws::String& value) { SetMaxErrors(value); return *this;}
inline AssociationVersionInfo& WithMaxErrors(Aws::String&& value) { SetMaxErrors(std::move(value)); return *this;}
inline AssociationVersionInfo& WithMaxErrors(const char* value) { SetMaxErrors(value); return *this;}
///@}
///@{
/**
* <p>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.</p> <p>If a new managed node starts and attempts
* to run an association while Systems Manager is running
* <code>MaxConcurrency</code> 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 <code>MaxConcurrency</code>.</p>
*/
inline const Aws::String& GetMaxConcurrency() const{ return m_maxConcurrency; }
inline bool MaxConcurrencyHasBeenSet() const { return m_maxConcurrencyHasBeenSet; }
inline void SetMaxConcurrency(const Aws::String& value) { m_maxConcurrencyHasBeenSet = true; m_maxConcurrency = value; }
inline void SetMaxConcurrency(Aws::String&& value) { m_maxConcurrencyHasBeenSet = true; m_maxConcurrency = std::move(value); }
inline void SetMaxConcurrency(const char* value) { m_maxConcurrencyHasBeenSet = true; m_maxConcurrency.assign(value); }
inline AssociationVersionInfo& WithMaxConcurrency(const Aws::String& value) { SetMaxConcurrency(value); return *this;}
inline AssociationVersionInfo& WithMaxConcurrency(Aws::String&& value) { SetMaxConcurrency(std::move(value)); return *this;}
inline AssociationVersionInfo& WithMaxConcurrency(const char* value) { SetMaxConcurrency(value); return *this;}
///@}
///@{
/**
* <p>The severity level that is assigned to the association.</p>
*/
inline const AssociationComplianceSeverity& GetComplianceSeverity() const{ return m_complianceSeverity; }
inline bool ComplianceSeverityHasBeenSet() const { return m_complianceSeverityHasBeenSet; }
inline void SetComplianceSeverity(const AssociationComplianceSeverity& value) { m_complianceSeverityHasBeenSet = true; m_complianceSeverity = value; }
inline void SetComplianceSeverity(AssociationComplianceSeverity&& value) { m_complianceSeverityHasBeenSet = true; m_complianceSeverity = std::move(value); }
inline AssociationVersionInfo& WithComplianceSeverity(const AssociationComplianceSeverity& value) { SetComplianceSeverity(value); return *this;}
inline AssociationVersionInfo& WithComplianceSeverity(AssociationComplianceSeverity&& value) { SetComplianceSeverity(std::move(value)); return *this;}
///@}
///@{
/**
* <p>The mode for generating association compliance. You can specify
* <code>AUTO</code> or <code>MANUAL</code>. In <code>AUTO</code> 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
* <code>COMPLIANT</code>. If the association execution doesn't run successfully,
* the association is <code>NON-COMPLIANT</code>.</p> <p>In <code>MANUAL</code>
* mode, you must specify the <code>AssociationId</code> as a parameter for the
* <a>PutComplianceItems</a> 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 <a>PutComplianceItems</a> API
* operation.</p> <p>By default, all associations use <code>AUTO</code> mode.</p>
*/
inline const AssociationSyncCompliance& GetSyncCompliance() const{ return m_syncCompliance; }
inline bool SyncComplianceHasBeenSet() const { return m_syncComplianceHasBeenSet; }
inline void SetSyncCompliance(const AssociationSyncCompliance& value) { m_syncComplianceHasBeenSet = true; m_syncCompliance = value; }
inline void SetSyncCompliance(AssociationSyncCompliance&& value) { m_syncComplianceHasBeenSet = true; m_syncCompliance = std::move(value); }
inline AssociationVersionInfo& WithSyncCompliance(const AssociationSyncCompliance& value) { SetSyncCompliance(value); return *this;}
inline AssociationVersionInfo& WithSyncCompliance(AssociationSyncCompliance&& value) { SetSyncCompliance(std::move(value)); return *this;}
///@}
///@{
/**
* <p>By default, when you create a new associations, the system runs it
* immediately after it is created and then according to the schedule you
* specified. Specify this option if you don't want an association to run
* immediately after you create it. This parameter isn't supported for rate
* expressions.</p>
*/
inline bool GetApplyOnlyAtCronInterval() const{ return m_applyOnlyAtCronInterval; }
inline bool ApplyOnlyAtCronIntervalHasBeenSet() const { return m_applyOnlyAtCronIntervalHasBeenSet; }
inline void SetApplyOnlyAtCronInterval(bool value) { m_applyOnlyAtCronIntervalHasBeenSet = true; m_applyOnlyAtCronInterval = value; }
inline AssociationVersionInfo& WithApplyOnlyAtCronInterval(bool value) { SetApplyOnlyAtCronInterval(value); return *this;}
///@}
///@{
/**
* <p>The names or Amazon Resource Names (ARNs) of the Change Calendar type
* documents your associations are gated under. The associations for this version
* only run when that Change Calendar is open. For more information, see <a
* href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">Amazon
* Web Services Systems Manager Change Calendar</a>.</p>
*/
inline const Aws::Vector<Aws::String>& GetCalendarNames() const{ return m_calendarNames; }
inline bool CalendarNamesHasBeenSet() const { return m_calendarNamesHasBeenSet; }
inline void SetCalendarNames(const Aws::Vector<Aws::String>& value) { m_calendarNamesHasBeenSet = true; m_calendarNames = value; }
inline void SetCalendarNames(Aws::Vector<Aws::String>&& value) { m_calendarNamesHasBeenSet = true; m_calendarNames = std::move(value); }
inline AssociationVersionInfo& WithCalendarNames(const Aws::Vector<Aws::String>& value) { SetCalendarNames(value); return *this;}
inline AssociationVersionInfo& WithCalendarNames(Aws::Vector<Aws::String>&& value) { SetCalendarNames(std::move(value)); return *this;}
inline AssociationVersionInfo& AddCalendarNames(const Aws::String& value) { m_calendarNamesHasBeenSet = true; m_calendarNames.push_back(value); return *this; }
inline AssociationVersionInfo& AddCalendarNames(Aws::String&& value) { m_calendarNamesHasBeenSet = true; m_calendarNames.push_back(std::move(value)); return *this; }
inline AssociationVersionInfo& AddCalendarNames(const char* value) { m_calendarNamesHasBeenSet = true; m_calendarNames.push_back(value); return *this; }
///@}
///@{
/**
* <p>The combination of Amazon Web Services Regions and Amazon Web Services
* accounts where you wanted to run the association when this association version
* was created.</p>
*/
inline const Aws::Vector<TargetLocation>& GetTargetLocations() const{ return m_targetLocations; }
inline bool TargetLocationsHasBeenSet() const { return m_targetLocationsHasBeenSet; }
inline void SetTargetLocations(const Aws::Vector<TargetLocation>& value) { m_targetLocationsHasBeenSet = true; m_targetLocations = value; }
inline void SetTargetLocations(Aws::Vector<TargetLocation>&& value) { m_targetLocationsHasBeenSet = true; m_targetLocations = std::move(value); }
inline AssociationVersionInfo& WithTargetLocations(const Aws::Vector<TargetLocation>& value) { SetTargetLocations(value); return *this;}
inline AssociationVersionInfo& WithTargetLocations(Aws::Vector<TargetLocation>&& value) { SetTargetLocations(std::move(value)); return *this;}
inline AssociationVersionInfo& AddTargetLocations(const TargetLocation& value) { m_targetLocationsHasBeenSet = true; m_targetLocations.push_back(value); return *this; }
inline AssociationVersionInfo& AddTargetLocations(TargetLocation&& value) { m_targetLocationsHasBeenSet = true; m_targetLocations.push_back(std::move(value)); return *this; }
///@}
///@{
/**
* <p>Number of days to wait after the scheduled day to run an association.</p>
*/
inline int GetScheduleOffset() const{ return m_scheduleOffset; }
inline bool ScheduleOffsetHasBeenSet() const { return m_scheduleOffsetHasBeenSet; }
inline void SetScheduleOffset(int value) { m_scheduleOffsetHasBeenSet = true; m_scheduleOffset = value; }
inline AssociationVersionInfo& WithScheduleOffset(int value) { SetScheduleOffset(value); return *this;}
///@}
///@{
/**
* <p>The number of hours that an association can run on specified targets. After
* the resulting cutoff time passes, associations that are currently running are
* cancelled, and no pending executions are started on remaining targets.</p>
*/
inline int GetDuration() const{ return m_duration; }
inline bool DurationHasBeenSet() const { return m_durationHasBeenSet; }
inline void SetDuration(int value) { m_durationHasBeenSet = true; m_duration = value; }
inline AssociationVersionInfo& WithDuration(int value) { SetDuration(value); return *this;}
///@}
///@{
/**
* <p>A key-value mapping of document parameters to target resources. Both Targets
* and TargetMaps can't be specified together.</p>
*/
inline const Aws::Vector<Aws::Map<Aws::String, Aws::Vector<Aws::String>>>& GetTargetMaps() const{ return m_targetMaps; }
inline bool TargetMapsHasBeenSet() const { return m_targetMapsHasBeenSet; }
inline void SetTargetMaps(const Aws::Vector<Aws::Map<Aws::String, Aws::Vector<Aws::String>>>& value) { m_targetMapsHasBeenSet = true; m_targetMaps = value; }
inline void SetTargetMaps(Aws::Vector<Aws::Map<Aws::String, Aws::Vector<Aws::String>>>&& value) { m_targetMapsHasBeenSet = true; m_targetMaps = std::move(value); }
inline AssociationVersionInfo& WithTargetMaps(const Aws::Vector<Aws::Map<Aws::String, Aws::Vector<Aws::String>>>& value) { SetTargetMaps(value); return *this;}
inline AssociationVersionInfo& WithTargetMaps(Aws::Vector<Aws::Map<Aws::String, Aws::Vector<Aws::String>>>&& value) { SetTargetMaps(std::move(value)); return *this;}
inline AssociationVersionInfo& AddTargetMaps(const Aws::Map<Aws::String, Aws::Vector<Aws::String>>& value) { m_targetMapsHasBeenSet = true; m_targetMaps.push_back(value); return *this; }
inline AssociationVersionInfo& AddTargetMaps(Aws::Map<Aws::String, Aws::Vector<Aws::String>>&& value) { m_targetMapsHasBeenSet = true; m_targetMaps.push_back(std::move(value)); return *this; }
///@}
private:
Aws::String m_associationId;
bool m_associationIdHasBeenSet = false;
Aws::String m_associationVersion;
bool m_associationVersionHasBeenSet = false;
Aws::Utils::DateTime m_createdDate;
bool m_createdDateHasBeenSet = false;
Aws::String m_name;
bool m_nameHasBeenSet = false;
Aws::String m_documentVersion;
bool m_documentVersionHasBeenSet = false;
Aws::Map<Aws::String, Aws::Vector<Aws::String>> m_parameters;
bool m_parametersHasBeenSet = false;
Aws::Vector<Target> m_targets;
bool m_targetsHasBeenSet = false;
Aws::String m_scheduleExpression;
bool m_scheduleExpressionHasBeenSet = false;
InstanceAssociationOutputLocation m_outputLocation;
bool m_outputLocationHasBeenSet = false;
Aws::String m_associationName;
bool m_associationNameHasBeenSet = false;
Aws::String m_maxErrors;
bool m_maxErrorsHasBeenSet = false;
Aws::String m_maxConcurrency;
bool m_maxConcurrencyHasBeenSet = false;
AssociationComplianceSeverity m_complianceSeverity;
bool m_complianceSeverityHasBeenSet = false;
AssociationSyncCompliance m_syncCompliance;
bool m_syncComplianceHasBeenSet = false;
bool m_applyOnlyAtCronInterval;
bool m_applyOnlyAtCronIntervalHasBeenSet = false;
Aws::Vector<Aws::String> m_calendarNames;
bool m_calendarNamesHasBeenSet = false;
Aws::Vector<TargetLocation> m_targetLocations;
bool m_targetLocationsHasBeenSet = false;
int m_scheduleOffset;
bool m_scheduleOffsetHasBeenSet = false;
int m_duration;
bool m_durationHasBeenSet = false;
Aws::Vector<Aws::Map<Aws::String, Aws::Vector<Aws::String>>> m_targetMaps;
bool m_targetMapsHasBeenSet = false;
};
} // namespace Model
} // namespace SSM
} // namespace Aws