AWS SDK

AWS SDK

rev. 3388bf5e18f4269f2b46f39cdc814c5c39d413d0 (ignoring whitespace)

Files changed:

tmp-codegen-diff/aws-sdk/sdk/ssm/src/types/_association_compliance_severity.rs

@@ -0,1 +0,126 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// When writing a match expression against `AssociationComplianceSeverity`, it is important to ensure
           4  +
/// your code is forward-compatible. That is, if a match arm handles a case for a
           5  +
/// feature that is supported by the service but has not been represented as an enum
           6  +
/// variant in a current version of SDK, your code should continue to work when you
           7  +
/// upgrade SDK to a future version in which the enum does include a variant for that
           8  +
/// feature.
           9  +
///
          10  +
/// Here is an example of how you can make a match expression forward-compatible:
          11  +
///
          12  +
/// ```text
          13  +
/// # let associationcomplianceseverity = unimplemented!();
          14  +
/// match associationcomplianceseverity {
          15  +
///     AssociationComplianceSeverity::Critical => { /* ... */ },
          16  +
///     AssociationComplianceSeverity::High => { /* ... */ },
          17  +
///     AssociationComplianceSeverity::Low => { /* ... */ },
          18  +
///     AssociationComplianceSeverity::Medium => { /* ... */ },
          19  +
///     AssociationComplianceSeverity::Unspecified => { /* ... */ },
          20  +
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
          21  +
///     _ => { /* ... */ },
          22  +
/// }
          23  +
/// ```
          24  +
/// The above code demonstrates that when `associationcomplianceseverity` represents
          25  +
/// `NewFeature`, the execution path will lead to the second last match arm,
          26  +
/// even though the enum does not contain a variant `AssociationComplianceSeverity::NewFeature`
          27  +
/// in the current version of SDK. The reason is that the variable `other`,
          28  +
/// created by the `@` operator, is bound to
          29  +
/// `AssociationComplianceSeverity::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
          30  +
/// and calling `as_str` on it yields `"NewFeature"`.
          31  +
/// This match expression is forward-compatible when executed with a newer
          32  +
/// version of SDK where the variant `AssociationComplianceSeverity::NewFeature` is defined.
          33  +
/// Specifically, when `associationcomplianceseverity` represents `NewFeature`,
          34  +
/// the execution path will hit the second last match arm as before by virtue of
          35  +
/// calling `as_str` on `AssociationComplianceSeverity::NewFeature` also yielding `"NewFeature"`.
          36  +
///
          37  +
/// Explicitly matching on the `Unknown` variant should
          38  +
/// be avoided for two reasons:
          39  +
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
          40  +
/// - It might inadvertently shadow other intended match arms.
          41  +
///
          42  +
#[allow(missing_docs)] // documentation missing in model
          43  +
#[non_exhaustive]
          44  +
#[derive(
          45  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
          46  +
)]
          47  +
pub enum AssociationComplianceSeverity {
          48  +
    #[allow(missing_docs)] // documentation missing in model
          49  +
    Critical,
          50  +
    #[allow(missing_docs)] // documentation missing in model
          51  +
    High,
          52  +
    #[allow(missing_docs)] // documentation missing in model
          53  +
    Low,
          54  +
    #[allow(missing_docs)] // documentation missing in model
          55  +
    Medium,
          56  +
    #[allow(missing_docs)] // documentation missing in model
          57  +
    Unspecified,
          58  +
    /// `Unknown` contains new variants that have been added since this code was generated.
          59  +
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
          60  +
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
          61  +
}
          62  +
impl ::std::convert::From<&str> for AssociationComplianceSeverity {
          63  +
    fn from(s: &str) -> Self {
          64  +
        match s {
          65  +
            "CRITICAL" => AssociationComplianceSeverity::Critical,
          66  +
            "HIGH" => AssociationComplianceSeverity::High,
          67  +
            "LOW" => AssociationComplianceSeverity::Low,
          68  +
            "MEDIUM" => AssociationComplianceSeverity::Medium,
          69  +
            "UNSPECIFIED" => AssociationComplianceSeverity::Unspecified,
          70  +
            other => AssociationComplianceSeverity::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
          71  +
        }
          72  +
    }
          73  +
}
          74  +
impl ::std::str::FromStr for AssociationComplianceSeverity {
          75  +
    type Err = ::std::convert::Infallible;
          76  +
          77  +
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
          78  +
        ::std::result::Result::Ok(AssociationComplianceSeverity::from(s))
          79  +
    }
          80  +
}
          81  +
impl AssociationComplianceSeverity {
          82  +
    /// Returns the `&str` value of the enum member.
          83  +
    pub fn as_str(&self) -> &str {
          84  +
        match self {
          85  +
            AssociationComplianceSeverity::Critical => "CRITICAL",
          86  +
            AssociationComplianceSeverity::High => "HIGH",
          87  +
            AssociationComplianceSeverity::Low => "LOW",
          88  +
            AssociationComplianceSeverity::Medium => "MEDIUM",
          89  +
            AssociationComplianceSeverity::Unspecified => "UNSPECIFIED",
          90  +
            AssociationComplianceSeverity::Unknown(value) => value.as_str(),
          91  +
        }
          92  +
    }
          93  +
    /// Returns all the `&str` representations of the enum members.
          94  +
    pub const fn values() -> &'static [&'static str] {
          95  +
        &["CRITICAL", "HIGH", "LOW", "MEDIUM", "UNSPECIFIED"]
          96  +
    }
          97  +
}
          98  +
impl ::std::convert::AsRef<str> for AssociationComplianceSeverity {
          99  +
    fn as_ref(&self) -> &str {
         100  +
        self.as_str()
         101  +
    }
         102  +
}
         103  +
impl AssociationComplianceSeverity {
         104  +
    /// Parses the enum value while disallowing unknown variants.
         105  +
    ///
         106  +
    /// Unknown variants will result in an error.
         107  +
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
         108  +
        match Self::from(value) {
         109  +
            #[allow(deprecated)]
         110  +
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
         111  +
            known => Ok(known),
         112  +
        }
         113  +
    }
         114  +
}
         115  +
impl ::std::fmt::Display for AssociationComplianceSeverity {
         116  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         117  +
        match self {
         118  +
            AssociationComplianceSeverity::Critical => write!(f, "CRITICAL"),
         119  +
            AssociationComplianceSeverity::High => write!(f, "HIGH"),
         120  +
            AssociationComplianceSeverity::Low => write!(f, "LOW"),
         121  +
            AssociationComplianceSeverity::Medium => write!(f, "MEDIUM"),
         122  +
            AssociationComplianceSeverity::Unspecified => write!(f, "UNSPECIFIED"),
         123  +
            AssociationComplianceSeverity::Unknown(value) => write!(f, "{value}"),
         124  +
        }
         125  +
    }
         126  +
}

tmp-codegen-diff/aws-sdk/sdk/ssm/src/types/_association_description.rs

@@ -0,1 +0,1740 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>Describes the parameters for a document.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
           6  +
pub struct AssociationDescription {
           7  +
    /// <p>The name of the SSM document.</p>
           8  +
    pub name: ::std::option::Option<::std::string::String>,
           9  +
    /// <p>The managed node ID.</p>
          10  +
    pub instance_id: ::std::option::Option<::std::string::String>,
          11  +
    /// <p>The association version.</p>
          12  +
    pub association_version: ::std::option::Option<::std::string::String>,
          13  +
    /// <p>The date when the association was made.</p>
          14  +
    pub date: ::std::option::Option<::aws_smithy_types::DateTime>,
          15  +
    /// <p>The date when the association was last updated.</p>
          16  +
    pub last_update_association_date: ::std::option::Option<::aws_smithy_types::DateTime>,
          17  +
    /// <p>The association status.</p>
          18  +
    pub status: ::std::option::Option<crate::types::AssociationStatus>,
          19  +
    /// <p>Information about the association.</p>
          20  +
    pub overview: ::std::option::Option<crate::types::AssociationOverview>,
          21  +
    /// <p>The document version.</p>
          22  +
    pub document_version: ::std::option::Option<::std::string::String>,
          23  +
    /// <p>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 tool in Amazon Web Services Systems Manager.</p>
          24  +
    pub automation_target_parameter_name: ::std::option::Option<::std::string::String>,
          25  +
    /// <p>A description of the parameters for a document.</p>
          26  +
    pub parameters: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
          27  +
    /// <p>The association ID.</p>
          28  +
    pub association_id: ::std::option::Option<::std::string::String>,
          29  +
    /// <p>The managed nodes targeted by the request.</p>
          30  +
    pub targets: ::std::option::Option<::std::vec::Vec<crate::types::Target>>,
          31  +
    /// <p>A cron expression that specifies a schedule when the association runs.</p>
          32  +
    pub schedule_expression: ::std::option::Option<::std::string::String>,
          33  +
    /// <p>An S3 bucket where you want to store the output details of the request.</p>
          34  +
    pub output_location: ::std::option::Option<crate::types::InstanceAssociationOutputLocation>,
          35  +
    /// <p>The date on which the association was last run.</p>
          36  +
    pub last_execution_date: ::std::option::Option<::aws_smithy_types::DateTime>,
          37  +
    /// <p>The last date on which the association was successfully run.</p>
          38  +
    pub last_successful_execution_date: ::std::option::Option<::aws_smithy_types::DateTime>,
          39  +
    /// <p>The association name.</p>
          40  +
    pub association_name: ::std::option::Option<::std::string::String>,
          41  +
    /// <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>
          42  +
    /// <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>
          43  +
    pub max_errors: ::std::option::Option<::std::string::String>,
          44  +
    /// <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>
          45  +
    /// <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>
          46  +
    pub max_concurrency: ::std::option::Option<::std::string::String>,
          47  +
    /// <p>The severity level that is assigned to the association.</p>
          48  +
    pub compliance_severity: ::std::option::Option<crate::types::AssociationComplianceSeverity>,
          49  +
    /// <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>
          50  +
    /// <p>In <code>MANUAL</code> mode, you must specify the <code>AssociationId</code> as a parameter for the <code>PutComplianceItems</code> API operation. In this case, compliance data isn't managed by State Manager, a tool in Amazon Web Services Systems Manager. It is managed by your direct call to the <code>PutComplianceItems</code> API operation.</p>
          51  +
    /// <p>By default, all associations use <code>AUTO</code> mode.</p>
          52  +
    pub sync_compliance: ::std::option::Option<crate::types::AssociationSyncCompliance>,
          53  +
    /// <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>
          54  +
    pub apply_only_at_cron_interval: bool,
          55  +
    /// <p>The names or Amazon Resource Names (ARNs) of the Change Calendar type documents your associations are gated under. The associations 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> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
          56  +
    pub calendar_names: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
          57  +
    /// <p>The combination of Amazon Web Services Regions and Amazon Web Services accounts where you want to run the association.</p>
          58  +
    pub target_locations: ::std::option::Option<::std::vec::Vec<crate::types::TargetLocation>>,
          59  +
    /// <p>Number of days to wait after the scheduled day to run an association.</p>
          60  +
    pub schedule_offset: ::std::option::Option<i32>,
          61  +
    /// <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>
          62  +
    pub duration: ::std::option::Option<i32>,
          63  +
    /// <p>A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together.</p>
          64  +
    pub target_maps:
          65  +
        ::std::option::Option<::std::vec::Vec<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>>,
          66  +
    /// <p>The details for the CloudWatch alarm you want to apply to an automation or command.</p>
          67  +
    pub alarm_configuration: ::std::option::Option<crate::types::AlarmConfiguration>,
          68  +
    /// <p>The CloudWatch alarm that was invoked during the association.</p>
          69  +
    pub triggered_alarms: ::std::option::Option<::std::vec::Vec<crate::types::AlarmStateInformation>>,
          70  +
    /// <p>A role used by association to take actions on your behalf. State Manager will assume this role and call required APIs when dispatching configurations to nodes. If not specified, <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/using-service-linked-roles.html"> service-linked role for Systems Manager</a> will be used by default.</p>
          71  +
    pub association_dispatch_assume_role: ::std::option::Option<::std::string::String>,
          72  +
}
          73  +
impl AssociationDescription {
          74  +
    /// <p>The name of the SSM document.</p>
          75  +
    pub fn name(&self) -> ::std::option::Option<&str> {
          76  +
        self.name.as_deref()
          77  +
    }
          78  +
    /// <p>The managed node ID.</p>
          79  +
    pub fn instance_id(&self) -> ::std::option::Option<&str> {
          80  +
        self.instance_id.as_deref()
          81  +
    }
          82  +
    /// <p>The association version.</p>
          83  +
    pub fn association_version(&self) -> ::std::option::Option<&str> {
          84  +
        self.association_version.as_deref()
          85  +
    }
          86  +
    /// <p>The date when the association was made.</p>
          87  +
    pub fn date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
          88  +
        self.date.as_ref()
          89  +
    }
          90  +
    /// <p>The date when the association was last updated.</p>
          91  +
    pub fn last_update_association_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
          92  +
        self.last_update_association_date.as_ref()
          93  +
    }
          94  +
    /// <p>The association status.</p>
          95  +
    pub fn status(&self) -> ::std::option::Option<&crate::types::AssociationStatus> {
          96  +
        self.status.as_ref()
          97  +
    }
          98  +
    /// <p>Information about the association.</p>
          99  +
    pub fn overview(&self) -> ::std::option::Option<&crate::types::AssociationOverview> {
         100  +
        self.overview.as_ref()
         101  +
    }
         102  +
    /// <p>The document version.</p>
         103  +
    pub fn document_version(&self) -> ::std::option::Option<&str> {
         104  +
        self.document_version.as_deref()
         105  +
    }
         106  +
    /// <p>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 tool in Amazon Web Services Systems Manager.</p>
         107  +
    pub fn automation_target_parameter_name(&self) -> ::std::option::Option<&str> {
         108  +
        self.automation_target_parameter_name.as_deref()
         109  +
    }
         110  +
    /// <p>A description of the parameters for a document.</p>
         111  +
    pub fn parameters(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
         112  +
        self.parameters.as_ref()
         113  +
    }
         114  +
    /// <p>The association ID.</p>
         115  +
    pub fn association_id(&self) -> ::std::option::Option<&str> {
         116  +
        self.association_id.as_deref()
         117  +
    }
         118  +
    /// <p>The managed nodes targeted by the request.</p>
         119  +
    ///
         120  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.targets.is_none()`.
         121  +
    pub fn targets(&self) -> &[crate::types::Target] {
         122  +
        self.targets.as_deref().unwrap_or_default()
         123  +
    }
         124  +
    /// <p>A cron expression that specifies a schedule when the association runs.</p>
         125  +
    pub fn schedule_expression(&self) -> ::std::option::Option<&str> {
         126  +
        self.schedule_expression.as_deref()
         127  +
    }
         128  +
    /// <p>An S3 bucket where you want to store the output details of the request.</p>
         129  +
    pub fn output_location(&self) -> ::std::option::Option<&crate::types::InstanceAssociationOutputLocation> {
         130  +
        self.output_location.as_ref()
         131  +
    }
         132  +
    /// <p>The date on which the association was last run.</p>
         133  +
    pub fn last_execution_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         134  +
        self.last_execution_date.as_ref()
         135  +
    }
         136  +
    /// <p>The last date on which the association was successfully run.</p>
         137  +
    pub fn last_successful_execution_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         138  +
        self.last_successful_execution_date.as_ref()
         139  +
    }
         140  +
    /// <p>The association name.</p>
         141  +
    pub fn association_name(&self) -> ::std::option::Option<&str> {
         142  +
        self.association_name.as_deref()
         143  +
    }
         144  +
    /// <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>
         145  +
    /// <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>
         146  +
    pub fn max_errors(&self) -> ::std::option::Option<&str> {
         147  +
        self.max_errors.as_deref()
         148  +
    }
         149  +
    /// <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>
         150  +
    /// <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>
         151  +
    pub fn max_concurrency(&self) -> ::std::option::Option<&str> {
         152  +
        self.max_concurrency.as_deref()
         153  +
    }
         154  +
    /// <p>The severity level that is assigned to the association.</p>
         155  +
    pub fn compliance_severity(&self) -> ::std::option::Option<&crate::types::AssociationComplianceSeverity> {
         156  +
        self.compliance_severity.as_ref()
         157  +
    }
         158  +
    /// <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>
         159  +
    /// <p>In <code>MANUAL</code> mode, you must specify the <code>AssociationId</code> as a parameter for the <code>PutComplianceItems</code> API operation. In this case, compliance data isn't managed by State Manager, a tool in Amazon Web Services Systems Manager. It is managed by your direct call to the <code>PutComplianceItems</code> API operation.</p>
         160  +
    /// <p>By default, all associations use <code>AUTO</code> mode.</p>
         161  +
    pub fn sync_compliance(&self) -> ::std::option::Option<&crate::types::AssociationSyncCompliance> {
         162  +
        self.sync_compliance.as_ref()
         163  +
    }
         164  +
    /// <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>
         165  +
    pub fn apply_only_at_cron_interval(&self) -> bool {
         166  +
        self.apply_only_at_cron_interval
         167  +
    }
         168  +
    /// <p>The names or Amazon Resource Names (ARNs) of the Change Calendar type documents your associations are gated under. The associations 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> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         169  +
    ///
         170  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.calendar_names.is_none()`.
         171  +
    pub fn calendar_names(&self) -> &[::std::string::String] {
         172  +
        self.calendar_names.as_deref().unwrap_or_default()
         173  +
    }
         174  +
    /// <p>The combination of Amazon Web Services Regions and Amazon Web Services accounts where you want to run the association.</p>
         175  +
    ///
         176  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.target_locations.is_none()`.
         177  +
    pub fn target_locations(&self) -> &[crate::types::TargetLocation] {
         178  +
        self.target_locations.as_deref().unwrap_or_default()
         179  +
    }
         180  +
    /// <p>Number of days to wait after the scheduled day to run an association.</p>
         181  +
    pub fn schedule_offset(&self) -> ::std::option::Option<i32> {
         182  +
        self.schedule_offset
         183  +
    }
         184  +
    /// <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>
         185  +
    pub fn duration(&self) -> ::std::option::Option<i32> {
         186  +
        self.duration
         187  +
    }
         188  +
    /// <p>A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together.</p>
         189  +
    ///
         190  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.target_maps.is_none()`.
         191  +
    pub fn target_maps(&self) -> &[::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>] {
         192  +
        self.target_maps.as_deref().unwrap_or_default()
         193  +
    }
         194  +
    /// <p>The details for the CloudWatch alarm you want to apply to an automation or command.</p>
         195  +
    pub fn alarm_configuration(&self) -> ::std::option::Option<&crate::types::AlarmConfiguration> {
         196  +
        self.alarm_configuration.as_ref()
         197  +
    }
         198  +
    /// <p>The CloudWatch alarm that was invoked during the association.</p>
         199  +
    ///
         200  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.triggered_alarms.is_none()`.
         201  +
    pub fn triggered_alarms(&self) -> &[crate::types::AlarmStateInformation] {
         202  +
        self.triggered_alarms.as_deref().unwrap_or_default()
         203  +
    }
         204  +
    /// <p>A role used by association to take actions on your behalf. State Manager will assume this role and call required APIs when dispatching configurations to nodes. If not specified, <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/using-service-linked-roles.html"> service-linked role for Systems Manager</a> will be used by default.</p>
         205  +
    pub fn association_dispatch_assume_role(&self) -> ::std::option::Option<&str> {
         206  +
        self.association_dispatch_assume_role.as_deref()
         207  +
    }
         208  +
}
         209  +
impl ::std::fmt::Debug for AssociationDescription {
         210  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         211  +
        let mut formatter = f.debug_struct("AssociationDescription");
         212  +
        formatter.field("name", &self.name);
         213  +
        formatter.field("instance_id", &self.instance_id);
         214  +
        formatter.field("association_version", &self.association_version);
         215  +
        formatter.field("date", &self.date);
         216  +
        formatter.field("last_update_association_date", &self.last_update_association_date);
         217  +
        formatter.field("status", &self.status);
         218  +
        formatter.field("overview", &self.overview);
         219  +
        formatter.field("document_version", &self.document_version);
         220  +
        formatter.field("automation_target_parameter_name", &self.automation_target_parameter_name);
         221  +
        formatter.field("parameters", &"*** Sensitive Data Redacted ***");
         222  +
        formatter.field("association_id", &self.association_id);
         223  +
        formatter.field("targets", &self.targets);
         224  +
        formatter.field("schedule_expression", &self.schedule_expression);
         225  +
        formatter.field("output_location", &self.output_location);
         226  +
        formatter.field("last_execution_date", &self.last_execution_date);
         227  +
        formatter.field("last_successful_execution_date", &self.last_successful_execution_date);
         228  +
        formatter.field("association_name", &self.association_name);
         229  +
        formatter.field("max_errors", &self.max_errors);
         230  +
        formatter.field("max_concurrency", &self.max_concurrency);
         231  +
        formatter.field("compliance_severity", &self.compliance_severity);
         232  +
        formatter.field("sync_compliance", &self.sync_compliance);
         233  +
        formatter.field("apply_only_at_cron_interval", &self.apply_only_at_cron_interval);
         234  +
        formatter.field("calendar_names", &self.calendar_names);
         235  +
        formatter.field("target_locations", &self.target_locations);
         236  +
        formatter.field("schedule_offset", &self.schedule_offset);
         237  +
        formatter.field("duration", &self.duration);
         238  +
        formatter.field("target_maps", &self.target_maps);
         239  +
        formatter.field("alarm_configuration", &self.alarm_configuration);
         240  +
        formatter.field("triggered_alarms", &self.triggered_alarms);
         241  +
        formatter.field("association_dispatch_assume_role", &self.association_dispatch_assume_role);
         242  +
        formatter.finish()
         243  +
    }
         244  +
}
         245  +
static ASSOCIATIONDESCRIPTION_MEMBER_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         246  +
    ::aws_smithy_schema::ShapeId::from_parts(
         247  +
        "com.amazonaws.ssm#AssociationDescription$Name",
         248  +
        "com.amazonaws.ssm",
         249  +
        "AssociationDescription",
         250  +
    ),
         251  +
    ::aws_smithy_schema::ShapeType::String,
         252  +
    "Name",
         253  +
    0,
         254  +
);
         255  +
static ASSOCIATIONDESCRIPTION_MEMBER_INSTANCE_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         256  +
    ::aws_smithy_schema::ShapeId::from_parts(
         257  +
        "com.amazonaws.ssm#AssociationDescription$InstanceId",
         258  +
        "com.amazonaws.ssm",
         259  +
        "AssociationDescription",
         260  +
    ),
         261  +
    ::aws_smithy_schema::ShapeType::String,
         262  +
    "InstanceId",
         263  +
    1,
         264  +
);
         265  +
static ASSOCIATIONDESCRIPTION_MEMBER_ASSOCIATION_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         266  +
    ::aws_smithy_schema::ShapeId::from_parts(
         267  +
        "com.amazonaws.ssm#AssociationDescription$AssociationVersion",
         268  +
        "com.amazonaws.ssm",
         269  +
        "AssociationDescription",
         270  +
    ),
         271  +
    ::aws_smithy_schema::ShapeType::String,
         272  +
    "AssociationVersion",
         273  +
    2,
         274  +
);
         275  +
static ASSOCIATIONDESCRIPTION_MEMBER_DATE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         276  +
    ::aws_smithy_schema::ShapeId::from_parts(
         277  +
        "com.amazonaws.ssm#AssociationDescription$Date",
         278  +
        "com.amazonaws.ssm",
         279  +
        "AssociationDescription",
         280  +
    ),
         281  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         282  +
    "Date",
         283  +
    3,
         284  +
);
         285  +
static ASSOCIATIONDESCRIPTION_MEMBER_LAST_UPDATE_ASSOCIATION_DATE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         286  +
    ::aws_smithy_schema::ShapeId::from_parts(
         287  +
        "com.amazonaws.ssm#AssociationDescription$LastUpdateAssociationDate",
         288  +
        "com.amazonaws.ssm",
         289  +
        "AssociationDescription",
         290  +
    ),
         291  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         292  +
    "LastUpdateAssociationDate",
         293  +
    4,
         294  +
);
         295  +
static ASSOCIATIONDESCRIPTION_MEMBER_STATUS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         296  +
    ::aws_smithy_schema::ShapeId::from_parts(
         297  +
        "com.amazonaws.ssm#AssociationDescription$Status",
         298  +
        "com.amazonaws.ssm",
         299  +
        "AssociationDescription",
         300  +
    ),
         301  +
    ::aws_smithy_schema::ShapeType::Structure,
         302  +
    "Status",
         303  +
    5,
         304  +
);
         305  +
static ASSOCIATIONDESCRIPTION_MEMBER_OVERVIEW: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         306  +
    ::aws_smithy_schema::ShapeId::from_parts(
         307  +
        "com.amazonaws.ssm#AssociationDescription$Overview",
         308  +
        "com.amazonaws.ssm",
         309  +
        "AssociationDescription",
         310  +
    ),
         311  +
    ::aws_smithy_schema::ShapeType::Structure,
         312  +
    "Overview",
         313  +
    6,
         314  +
);
         315  +
static ASSOCIATIONDESCRIPTION_MEMBER_DOCUMENT_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         316  +
    ::aws_smithy_schema::ShapeId::from_parts(
         317  +
        "com.amazonaws.ssm#AssociationDescription$DocumentVersion",
         318  +
        "com.amazonaws.ssm",
         319  +
        "AssociationDescription",
         320  +
    ),
         321  +
    ::aws_smithy_schema::ShapeType::String,
         322  +
    "DocumentVersion",
         323  +
    7,
         324  +
);
         325  +
static ASSOCIATIONDESCRIPTION_MEMBER_AUTOMATION_TARGET_PARAMETER_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         326  +
    ::aws_smithy_schema::ShapeId::from_parts(
         327  +
        "com.amazonaws.ssm#AssociationDescription$AutomationTargetParameterName",
         328  +
        "com.amazonaws.ssm",
         329  +
        "AssociationDescription",
         330  +
    ),
         331  +
    ::aws_smithy_schema::ShapeType::String,
         332  +
    "AutomationTargetParameterName",
         333  +
    8,
         334  +
);
         335  +
static ASSOCIATIONDESCRIPTION_MEMBER_PARAMETERS_VALUE_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         336  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#ParameterValueList$member", "com.amazonaws.ssm", "ParameterValueList"),
         337  +
    ::aws_smithy_schema::ShapeType::String,
         338  +
    "member",
         339  +
    0,
         340  +
);
         341  +
static ASSOCIATIONDESCRIPTION_MEMBER_PARAMETERS_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         342  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Parameters$key", "com.amazonaws.ssm", "Parameters"),
         343  +
    ::aws_smithy_schema::ShapeType::String,
         344  +
    "key",
         345  +
    0,
         346  +
);
         347  +
static ASSOCIATIONDESCRIPTION_MEMBER_PARAMETERS_VALUE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         348  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Parameters$value", "com.amazonaws.ssm", "Parameters"),
         349  +
    ::aws_smithy_schema::ShapeType::List,
         350  +
    "value",
         351  +
    1,
         352  +
)
         353  +
.with_list_member(&ASSOCIATIONDESCRIPTION_MEMBER_PARAMETERS_VALUE_MEMBER);
         354  +
static ASSOCIATIONDESCRIPTION_MEMBER_PARAMETERS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         355  +
    ::aws_smithy_schema::ShapeId::from_parts(
         356  +
        "com.amazonaws.ssm#AssociationDescription$Parameters",
         357  +
        "com.amazonaws.ssm",
         358  +
        "AssociationDescription",
         359  +
    ),
         360  +
    ::aws_smithy_schema::ShapeType::Map,
         361  +
    "Parameters",
         362  +
    9,
         363  +
)
         364  +
.with_map_members(
         365  +
    &ASSOCIATIONDESCRIPTION_MEMBER_PARAMETERS_KEY,
         366  +
    &ASSOCIATIONDESCRIPTION_MEMBER_PARAMETERS_VALUE,
         367  +
);
         368  +
static ASSOCIATIONDESCRIPTION_MEMBER_ASSOCIATION_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         369  +
    ::aws_smithy_schema::ShapeId::from_parts(
         370  +
        "com.amazonaws.ssm#AssociationDescription$AssociationId",
         371  +
        "com.amazonaws.ssm",
         372  +
        "AssociationDescription",
         373  +
    ),
         374  +
    ::aws_smithy_schema::ShapeType::String,
         375  +
    "AssociationId",
         376  +
    10,
         377  +
);
         378  +
static ASSOCIATIONDESCRIPTION_MEMBER_TARGETS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         379  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Targets$member", "com.amazonaws.ssm", "Targets"),
         380  +
    ::aws_smithy_schema::ShapeType::Structure,
         381  +
    "member",
         382  +
    0,
         383  +
);
         384  +
static ASSOCIATIONDESCRIPTION_MEMBER_TARGETS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         385  +
    ::aws_smithy_schema::ShapeId::from_parts(
         386  +
        "com.amazonaws.ssm#AssociationDescription$Targets",
         387  +
        "com.amazonaws.ssm",
         388  +
        "AssociationDescription",
         389  +
    ),
         390  +
    ::aws_smithy_schema::ShapeType::List,
         391  +
    "Targets",
         392  +
    11,
         393  +
)
         394  +
.with_list_member(&ASSOCIATIONDESCRIPTION_MEMBER_TARGETS_MEMBER);
         395  +
static ASSOCIATIONDESCRIPTION_MEMBER_SCHEDULE_EXPRESSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         396  +
    ::aws_smithy_schema::ShapeId::from_parts(
         397  +
        "com.amazonaws.ssm#AssociationDescription$ScheduleExpression",
         398  +
        "com.amazonaws.ssm",
         399  +
        "AssociationDescription",
         400  +
    ),
         401  +
    ::aws_smithy_schema::ShapeType::String,
         402  +
    "ScheduleExpression",
         403  +
    12,
         404  +
);
         405  +
static ASSOCIATIONDESCRIPTION_MEMBER_OUTPUT_LOCATION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         406  +
    ::aws_smithy_schema::ShapeId::from_parts(
         407  +
        "com.amazonaws.ssm#AssociationDescription$OutputLocation",
         408  +
        "com.amazonaws.ssm",
         409  +
        "AssociationDescription",
         410  +
    ),
         411  +
    ::aws_smithy_schema::ShapeType::Structure,
         412  +
    "OutputLocation",
         413  +
    13,
         414  +
);
         415  +
static ASSOCIATIONDESCRIPTION_MEMBER_LAST_EXECUTION_DATE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         416  +
    ::aws_smithy_schema::ShapeId::from_parts(
         417  +
        "com.amazonaws.ssm#AssociationDescription$LastExecutionDate",
         418  +
        "com.amazonaws.ssm",
         419  +
        "AssociationDescription",
         420  +
    ),
         421  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         422  +
    "LastExecutionDate",
         423  +
    14,
         424  +
);
         425  +
static ASSOCIATIONDESCRIPTION_MEMBER_LAST_SUCCESSFUL_EXECUTION_DATE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         426  +
    ::aws_smithy_schema::ShapeId::from_parts(
         427  +
        "com.amazonaws.ssm#AssociationDescription$LastSuccessfulExecutionDate",
         428  +
        "com.amazonaws.ssm",
         429  +
        "AssociationDescription",
         430  +
    ),
         431  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         432  +
    "LastSuccessfulExecutionDate",
         433  +
    15,
         434  +
);
         435  +
static ASSOCIATIONDESCRIPTION_MEMBER_ASSOCIATION_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         436  +
    ::aws_smithy_schema::ShapeId::from_parts(
         437  +
        "com.amazonaws.ssm#AssociationDescription$AssociationName",
         438  +
        "com.amazonaws.ssm",
         439  +
        "AssociationDescription",
         440  +
    ),
         441  +
    ::aws_smithy_schema::ShapeType::String,
         442  +
    "AssociationName",
         443  +
    16,
         444  +
);
         445  +
static ASSOCIATIONDESCRIPTION_MEMBER_MAX_ERRORS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         446  +
    ::aws_smithy_schema::ShapeId::from_parts(
         447  +
        "com.amazonaws.ssm#AssociationDescription$MaxErrors",
         448  +
        "com.amazonaws.ssm",
         449  +
        "AssociationDescription",
         450  +
    ),
         451  +
    ::aws_smithy_schema::ShapeType::String,
         452  +
    "MaxErrors",
         453  +
    17,
         454  +
);
         455  +
static ASSOCIATIONDESCRIPTION_MEMBER_MAX_CONCURRENCY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         456  +
    ::aws_smithy_schema::ShapeId::from_parts(
         457  +
        "com.amazonaws.ssm#AssociationDescription$MaxConcurrency",
         458  +
        "com.amazonaws.ssm",
         459  +
        "AssociationDescription",
         460  +
    ),
         461  +
    ::aws_smithy_schema::ShapeType::String,
         462  +
    "MaxConcurrency",
         463  +
    18,
         464  +
);
         465  +
static ASSOCIATIONDESCRIPTION_MEMBER_COMPLIANCE_SEVERITY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         466  +
    ::aws_smithy_schema::ShapeId::from_parts(
         467  +
        "com.amazonaws.ssm#AssociationDescription$ComplianceSeverity",
         468  +
        "com.amazonaws.ssm",
         469  +
        "AssociationDescription",
         470  +
    ),
         471  +
    ::aws_smithy_schema::ShapeType::String,
         472  +
    "ComplianceSeverity",
         473  +
    19,
         474  +
);
         475  +
static ASSOCIATIONDESCRIPTION_MEMBER_SYNC_COMPLIANCE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         476  +
    ::aws_smithy_schema::ShapeId::from_parts(
         477  +
        "com.amazonaws.ssm#AssociationDescription$SyncCompliance",
         478  +
        "com.amazonaws.ssm",
         479  +
        "AssociationDescription",
         480  +
    ),
         481  +
    ::aws_smithy_schema::ShapeType::String,
         482  +
    "SyncCompliance",
         483  +
    20,
         484  +
);
         485  +
static ASSOCIATIONDESCRIPTION_MEMBER_APPLY_ONLY_AT_CRON_INTERVAL: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         486  +
    ::aws_smithy_schema::ShapeId::from_parts(
         487  +
        "com.amazonaws.ssm#AssociationDescription$ApplyOnlyAtCronInterval",
         488  +
        "com.amazonaws.ssm",
         489  +
        "AssociationDescription",
         490  +
    ),
         491  +
    ::aws_smithy_schema::ShapeType::Boolean,
         492  +
    "ApplyOnlyAtCronInterval",
         493  +
    21,
         494  +
);
         495  +
static ASSOCIATIONDESCRIPTION_MEMBER_CALENDAR_NAMES_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         496  +
    ::aws_smithy_schema::ShapeId::from_parts(
         497  +
        "com.amazonaws.ssm#CalendarNameOrARNList$member",
         498  +
        "com.amazonaws.ssm",
         499  +
        "CalendarNameOrARNList",
         500  +
    ),
         501  +
    ::aws_smithy_schema::ShapeType::String,
         502  +
    "member",
         503  +
    0,
         504  +
);
         505  +
static ASSOCIATIONDESCRIPTION_MEMBER_CALENDAR_NAMES: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         506  +
    ::aws_smithy_schema::ShapeId::from_parts(
         507  +
        "com.amazonaws.ssm#AssociationDescription$CalendarNames",
         508  +
        "com.amazonaws.ssm",
         509  +
        "AssociationDescription",
         510  +
    ),
         511  +
    ::aws_smithy_schema::ShapeType::List,
         512  +
    "CalendarNames",
         513  +
    22,
         514  +
)
         515  +
.with_list_member(&ASSOCIATIONDESCRIPTION_MEMBER_CALENDAR_NAMES_MEMBER);
         516  +
static ASSOCIATIONDESCRIPTION_MEMBER_TARGET_LOCATIONS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         517  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#TargetLocations$member", "com.amazonaws.ssm", "TargetLocations"),
         518  +
    ::aws_smithy_schema::ShapeType::Structure,
         519  +
    "member",
         520  +
    0,
         521  +
);
         522  +
static ASSOCIATIONDESCRIPTION_MEMBER_TARGET_LOCATIONS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         523  +
    ::aws_smithy_schema::ShapeId::from_parts(
         524  +
        "com.amazonaws.ssm#AssociationDescription$TargetLocations",
         525  +
        "com.amazonaws.ssm",
         526  +
        "AssociationDescription",
         527  +
    ),
         528  +
    ::aws_smithy_schema::ShapeType::List,
         529  +
    "TargetLocations",
         530  +
    23,
         531  +
)
         532  +
.with_list_member(&ASSOCIATIONDESCRIPTION_MEMBER_TARGET_LOCATIONS_MEMBER);
         533  +
static ASSOCIATIONDESCRIPTION_MEMBER_SCHEDULE_OFFSET: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         534  +
    ::aws_smithy_schema::ShapeId::from_parts(
         535  +
        "com.amazonaws.ssm#AssociationDescription$ScheduleOffset",
         536  +
        "com.amazonaws.ssm",
         537  +
        "AssociationDescription",
         538  +
    ),
         539  +
    ::aws_smithy_schema::ShapeType::Integer,
         540  +
    "ScheduleOffset",
         541  +
    24,
         542  +
);
         543  +
static ASSOCIATIONDESCRIPTION_MEMBER_DURATION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         544  +
    ::aws_smithy_schema::ShapeId::from_parts(
         545  +
        "com.amazonaws.ssm#AssociationDescription$Duration",
         546  +
        "com.amazonaws.ssm",
         547  +
        "AssociationDescription",
         548  +
    ),
         549  +
    ::aws_smithy_schema::ShapeType::Integer,
         550  +
    "Duration",
         551  +
    25,
         552  +
);
         553  +
static ASSOCIATIONDESCRIPTION_MEMBER_TARGET_MAPS_MEMBER_VALUE_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         554  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#TargetMapValueList$member", "com.amazonaws.ssm", "TargetMapValueList"),
         555  +
    ::aws_smithy_schema::ShapeType::String,
         556  +
    "member",
         557  +
    0,
         558  +
);
         559  +
static ASSOCIATIONDESCRIPTION_MEMBER_TARGET_MAPS_MEMBER_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         560  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#TargetMap$key", "com.amazonaws.ssm", "TargetMap"),
         561  +
    ::aws_smithy_schema::ShapeType::String,
         562  +
    "key",
         563  +
    0,
         564  +
);
         565  +
static ASSOCIATIONDESCRIPTION_MEMBER_TARGET_MAPS_MEMBER_VALUE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         566  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#TargetMap$value", "com.amazonaws.ssm", "TargetMap"),
         567  +
    ::aws_smithy_schema::ShapeType::List,
         568  +
    "value",
         569  +
    1,
         570  +
)
         571  +
.with_list_member(&ASSOCIATIONDESCRIPTION_MEMBER_TARGET_MAPS_MEMBER_VALUE_MEMBER);
         572  +
static ASSOCIATIONDESCRIPTION_MEMBER_TARGET_MAPS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         573  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#TargetMaps$member", "com.amazonaws.ssm", "TargetMaps"),
         574  +
    ::aws_smithy_schema::ShapeType::Map,
         575  +
    "member",
         576  +
    0,
         577  +
)
         578  +
.with_map_members(
         579  +
    &ASSOCIATIONDESCRIPTION_MEMBER_TARGET_MAPS_MEMBER_KEY,
         580  +
    &ASSOCIATIONDESCRIPTION_MEMBER_TARGET_MAPS_MEMBER_VALUE,
         581  +
);
         582  +
static ASSOCIATIONDESCRIPTION_MEMBER_TARGET_MAPS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         583  +
    ::aws_smithy_schema::ShapeId::from_parts(
         584  +
        "com.amazonaws.ssm#AssociationDescription$TargetMaps",
         585  +
        "com.amazonaws.ssm",
         586  +
        "AssociationDescription",
         587  +
    ),
         588  +
    ::aws_smithy_schema::ShapeType::List,
         589  +
    "TargetMaps",
         590  +
    26,
         591  +
)
         592  +
.with_list_member(&ASSOCIATIONDESCRIPTION_MEMBER_TARGET_MAPS_MEMBER);
         593  +
static ASSOCIATIONDESCRIPTION_MEMBER_ALARM_CONFIGURATION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         594  +
    ::aws_smithy_schema::ShapeId::from_parts(
         595  +
        "com.amazonaws.ssm#AssociationDescription$AlarmConfiguration",
         596  +
        "com.amazonaws.ssm",
         597  +
        "AssociationDescription",
         598  +
    ),
         599  +
    ::aws_smithy_schema::ShapeType::Structure,
         600  +
    "AlarmConfiguration",
         601  +
    27,
         602  +
);
         603  +
static ASSOCIATIONDESCRIPTION_MEMBER_TRIGGERED_ALARMS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         604  +
    ::aws_smithy_schema::ShapeId::from_parts(
         605  +
        "com.amazonaws.ssm#AlarmStateInformationList$member",
         606  +
        "com.amazonaws.ssm",
         607  +
        "AlarmStateInformationList",
         608  +
    ),
         609  +
    ::aws_smithy_schema::ShapeType::Structure,
         610  +
    "member",
         611  +
    0,
         612  +
);
         613  +
static ASSOCIATIONDESCRIPTION_MEMBER_TRIGGERED_ALARMS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         614  +
    ::aws_smithy_schema::ShapeId::from_parts(
         615  +
        "com.amazonaws.ssm#AssociationDescription$TriggeredAlarms",
         616  +
        "com.amazonaws.ssm",
         617  +
        "AssociationDescription",
         618  +
    ),
         619  +
    ::aws_smithy_schema::ShapeType::List,
         620  +
    "TriggeredAlarms",
         621  +
    28,
         622  +
)
         623  +
.with_list_member(&ASSOCIATIONDESCRIPTION_MEMBER_TRIGGERED_ALARMS_MEMBER);
         624  +
static ASSOCIATIONDESCRIPTION_MEMBER_ASSOCIATION_DISPATCH_ASSUME_ROLE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         625  +
    ::aws_smithy_schema::ShapeId::from_parts(
         626  +
        "com.amazonaws.ssm#AssociationDescription$AssociationDispatchAssumeRole",
         627  +
        "com.amazonaws.ssm",
         628  +
        "AssociationDescription",
         629  +
    ),
         630  +
    ::aws_smithy_schema::ShapeType::String,
         631  +
    "AssociationDispatchAssumeRole",
         632  +
    29,
         633  +
);
         634  +
static ASSOCIATIONDESCRIPTION_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
         635  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#AssociationDescription", "com.amazonaws.ssm", "AssociationDescription"),
         636  +
    ::aws_smithy_schema::ShapeType::Structure,
         637  +
    &[
         638  +
        &ASSOCIATIONDESCRIPTION_MEMBER_NAME,
         639  +
        &ASSOCIATIONDESCRIPTION_MEMBER_INSTANCE_ID,
         640  +
        &ASSOCIATIONDESCRIPTION_MEMBER_ASSOCIATION_VERSION,
         641  +
        &ASSOCIATIONDESCRIPTION_MEMBER_DATE,
         642  +
        &ASSOCIATIONDESCRIPTION_MEMBER_LAST_UPDATE_ASSOCIATION_DATE,
         643  +
        &ASSOCIATIONDESCRIPTION_MEMBER_STATUS,
         644  +
        &ASSOCIATIONDESCRIPTION_MEMBER_OVERVIEW,
         645  +
        &ASSOCIATIONDESCRIPTION_MEMBER_DOCUMENT_VERSION,
         646  +
        &ASSOCIATIONDESCRIPTION_MEMBER_AUTOMATION_TARGET_PARAMETER_NAME,
         647  +
        &ASSOCIATIONDESCRIPTION_MEMBER_PARAMETERS,
         648  +
        &ASSOCIATIONDESCRIPTION_MEMBER_ASSOCIATION_ID,
         649  +
        &ASSOCIATIONDESCRIPTION_MEMBER_TARGETS,
         650  +
        &ASSOCIATIONDESCRIPTION_MEMBER_SCHEDULE_EXPRESSION,
         651  +
        &ASSOCIATIONDESCRIPTION_MEMBER_OUTPUT_LOCATION,
         652  +
        &ASSOCIATIONDESCRIPTION_MEMBER_LAST_EXECUTION_DATE,
         653  +
        &ASSOCIATIONDESCRIPTION_MEMBER_LAST_SUCCESSFUL_EXECUTION_DATE,
         654  +
        &ASSOCIATIONDESCRIPTION_MEMBER_ASSOCIATION_NAME,
         655  +
        &ASSOCIATIONDESCRIPTION_MEMBER_MAX_ERRORS,
         656  +
        &ASSOCIATIONDESCRIPTION_MEMBER_MAX_CONCURRENCY,
         657  +
        &ASSOCIATIONDESCRIPTION_MEMBER_COMPLIANCE_SEVERITY,
         658  +
        &ASSOCIATIONDESCRIPTION_MEMBER_SYNC_COMPLIANCE,
         659  +
        &ASSOCIATIONDESCRIPTION_MEMBER_APPLY_ONLY_AT_CRON_INTERVAL,
         660  +
        &ASSOCIATIONDESCRIPTION_MEMBER_CALENDAR_NAMES,
         661  +
        &ASSOCIATIONDESCRIPTION_MEMBER_TARGET_LOCATIONS,
         662  +
        &ASSOCIATIONDESCRIPTION_MEMBER_SCHEDULE_OFFSET,
         663  +
        &ASSOCIATIONDESCRIPTION_MEMBER_DURATION,
         664  +
        &ASSOCIATIONDESCRIPTION_MEMBER_TARGET_MAPS,
         665  +
        &ASSOCIATIONDESCRIPTION_MEMBER_ALARM_CONFIGURATION,
         666  +
        &ASSOCIATIONDESCRIPTION_MEMBER_TRIGGERED_ALARMS,
         667  +
        &ASSOCIATIONDESCRIPTION_MEMBER_ASSOCIATION_DISPATCH_ASSUME_ROLE,
         668  +
    ],
         669  +
);
         670  +
impl AssociationDescription {
         671  +
    /// The schema for this shape.
         672  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &ASSOCIATIONDESCRIPTION_SCHEMA;
         673  +
}
         674  +
impl ::aws_smithy_schema::serde::SerializableStruct for AssociationDescription {
         675  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         676  +
    fn serialize_members(
         677  +
        &self,
         678  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         679  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         680  +
        if let Some(ref val) = self.name {
         681  +
            ser.write_string(&ASSOCIATIONDESCRIPTION_MEMBER_NAME, val)?;
         682  +
        }
         683  +
        if let Some(ref val) = self.instance_id {
         684  +
            ser.write_string(&ASSOCIATIONDESCRIPTION_MEMBER_INSTANCE_ID, val)?;
         685  +
        }
         686  +
        if let Some(ref val) = self.association_version {
         687  +
            ser.write_string(&ASSOCIATIONDESCRIPTION_MEMBER_ASSOCIATION_VERSION, val)?;
         688  +
        }
         689  +
        if let Some(ref val) = self.date {
         690  +
            ser.write_timestamp(&ASSOCIATIONDESCRIPTION_MEMBER_DATE, val)?;
         691  +
        }
         692  +
        if let Some(ref val) = self.last_update_association_date {
         693  +
            ser.write_timestamp(&ASSOCIATIONDESCRIPTION_MEMBER_LAST_UPDATE_ASSOCIATION_DATE, val)?;
         694  +
        }
         695  +
        if let Some(ref val) = self.status {
         696  +
            ser.write_struct(&ASSOCIATIONDESCRIPTION_MEMBER_STATUS, val)?;
         697  +
        }
         698  +
        if let Some(ref val) = self.overview {
         699  +
            ser.write_struct(&ASSOCIATIONDESCRIPTION_MEMBER_OVERVIEW, val)?;
         700  +
        }
         701  +
        if let Some(ref val) = self.document_version {
         702  +
            ser.write_string(&ASSOCIATIONDESCRIPTION_MEMBER_DOCUMENT_VERSION, val)?;
         703  +
        }
         704  +
        if let Some(ref val) = self.automation_target_parameter_name {
         705  +
            ser.write_string(&ASSOCIATIONDESCRIPTION_MEMBER_AUTOMATION_TARGET_PARAMETER_NAME, val)?;
         706  +
        }
         707  +
        if let Some(ref val) = self.parameters {
         708  +
            ser.write_map(
         709  +
                &ASSOCIATIONDESCRIPTION_MEMBER_PARAMETERS,
         710  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         711  +
                    for (key, value) in val {
         712  +
                        ser.write_string(&::aws_smithy_schema::prelude::STRING, key)?;
         713  +
         714  +
                        ser.write_list(
         715  +
                            &ASSOCIATIONDESCRIPTION_MEMBER_PARAMETERS_VALUE,
         716  +
                            &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         717  +
                                for item in value {
         718  +
                                    ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
         719  +
                                }
         720  +
                                Ok(())
         721  +
                            },
         722  +
                        )?;
         723  +
                    }
         724  +
                    Ok(())
         725  +
                },
         726  +
            )?;
         727  +
        }
         728  +
        if let Some(ref val) = self.association_id {
         729  +
            ser.write_string(&ASSOCIATIONDESCRIPTION_MEMBER_ASSOCIATION_ID, val)?;
         730  +
        }
         731  +
        if let Some(ref val) = self.targets {
         732  +
            ser.write_list(
         733  +
                &ASSOCIATIONDESCRIPTION_MEMBER_TARGETS,
         734  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         735  +
                    for item in val {
         736  +
                        ser.write_struct(crate::types::Target::SCHEMA, item)?;
         737  +
                    }
         738  +
                    Ok(())
         739  +
                },
         740  +
            )?;
         741  +
        }
         742  +
        if let Some(ref val) = self.schedule_expression {
         743  +
            ser.write_string(&ASSOCIATIONDESCRIPTION_MEMBER_SCHEDULE_EXPRESSION, val)?;
         744  +
        }
         745  +
        if let Some(ref val) = self.output_location {
         746  +
            ser.write_struct(&ASSOCIATIONDESCRIPTION_MEMBER_OUTPUT_LOCATION, val)?;
         747  +
        }
         748  +
        if let Some(ref val) = self.last_execution_date {
         749  +
            ser.write_timestamp(&ASSOCIATIONDESCRIPTION_MEMBER_LAST_EXECUTION_DATE, val)?;
         750  +
        }
         751  +
        if let Some(ref val) = self.last_successful_execution_date {
         752  +
            ser.write_timestamp(&ASSOCIATIONDESCRIPTION_MEMBER_LAST_SUCCESSFUL_EXECUTION_DATE, val)?;
         753  +
        }
         754  +
        if let Some(ref val) = self.association_name {
         755  +
            ser.write_string(&ASSOCIATIONDESCRIPTION_MEMBER_ASSOCIATION_NAME, val)?;
         756  +
        }
         757  +
        if let Some(ref val) = self.max_errors {
         758  +
            ser.write_string(&ASSOCIATIONDESCRIPTION_MEMBER_MAX_ERRORS, val)?;
         759  +
        }
         760  +
        if let Some(ref val) = self.max_concurrency {
         761  +
            ser.write_string(&ASSOCIATIONDESCRIPTION_MEMBER_MAX_CONCURRENCY, val)?;
         762  +
        }
         763  +
        if let Some(ref val) = self.compliance_severity {
         764  +
            ser.write_string(&ASSOCIATIONDESCRIPTION_MEMBER_COMPLIANCE_SEVERITY, val.as_str())?;
         765  +
        }
         766  +
        if let Some(ref val) = self.sync_compliance {
         767  +
            ser.write_string(&ASSOCIATIONDESCRIPTION_MEMBER_SYNC_COMPLIANCE, val.as_str())?;
         768  +
        }
         769  +
        {
         770  +
            let val = &self.apply_only_at_cron_interval;
         771  +
            ser.write_boolean(&ASSOCIATIONDESCRIPTION_MEMBER_APPLY_ONLY_AT_CRON_INTERVAL, *val)?;
         772  +
        }
         773  +
        if let Some(ref val) = self.calendar_names {
         774  +
            ser.write_list(
         775  +
                &ASSOCIATIONDESCRIPTION_MEMBER_CALENDAR_NAMES,
         776  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         777  +
                    for item in val {
         778  +
                        ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
         779  +
                    }
         780  +
                    Ok(())
         781  +
                },
         782  +
            )?;
         783  +
        }
         784  +
        if let Some(ref val) = self.target_locations {
         785  +
            ser.write_list(
         786  +
                &ASSOCIATIONDESCRIPTION_MEMBER_TARGET_LOCATIONS,
         787  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         788  +
                    for item in val {
         789  +
                        ser.write_struct(crate::types::TargetLocation::SCHEMA, item)?;
         790  +
                    }
         791  +
                    Ok(())
         792  +
                },
         793  +
            )?;
         794  +
        }
         795  +
        if let Some(ref val) = self.schedule_offset {
         796  +
            ser.write_integer(&ASSOCIATIONDESCRIPTION_MEMBER_SCHEDULE_OFFSET, *val)?;
         797  +
        }
         798  +
        if let Some(ref val) = self.duration {
         799  +
            ser.write_integer(&ASSOCIATIONDESCRIPTION_MEMBER_DURATION, *val)?;
         800  +
        }
         801  +
        if let Some(ref val) = self.target_maps {
         802  +
            ser.write_list(
         803  +
                &ASSOCIATIONDESCRIPTION_MEMBER_TARGET_MAPS,
         804  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         805  +
                    for item in val {
         806  +
                        ser.write_map(
         807  +
                            &ASSOCIATIONDESCRIPTION_MEMBER_TARGET_MAPS_MEMBER,
         808  +
                            &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         809  +
                                for (key, value) in item {
         810  +
                                    ser.write_string(&::aws_smithy_schema::prelude::STRING, key)?;
         811  +
         812  +
                                    ser.write_list(
         813  +
                                        &ASSOCIATIONDESCRIPTION_MEMBER_TARGET_MAPS_MEMBER_VALUE,
         814  +
                                        &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         815  +
                                            for item in value {
         816  +
                                                ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
         817  +
                                            }
         818  +
                                            Ok(())
         819  +
                                        },
         820  +
                                    )?;
         821  +
                                }
         822  +
                                Ok(())
         823  +
                            },
         824  +
                        )?;
         825  +
                    }
         826  +
                    Ok(())
         827  +
                },
         828  +
            )?;
         829  +
        }
         830  +
        if let Some(ref val) = self.alarm_configuration {
         831  +
            ser.write_struct(&ASSOCIATIONDESCRIPTION_MEMBER_ALARM_CONFIGURATION, val)?;
         832  +
        }
         833  +
        if let Some(ref val) = self.triggered_alarms {
         834  +
            ser.write_list(
         835  +
                &ASSOCIATIONDESCRIPTION_MEMBER_TRIGGERED_ALARMS,
         836  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         837  +
                    for item in val {
         838  +
                        ser.write_struct(crate::types::AlarmStateInformation::SCHEMA, item)?;
         839  +
                    }
         840  +
                    Ok(())
         841  +
                },
         842  +
            )?;
         843  +
        }
         844  +
        if let Some(ref val) = self.association_dispatch_assume_role {
         845  +
            ser.write_string(&ASSOCIATIONDESCRIPTION_MEMBER_ASSOCIATION_DISPATCH_ASSUME_ROLE, val)?;
         846  +
        }
         847  +
        Ok(())
         848  +
    }
         849  +
}
         850  +
impl AssociationDescription {
         851  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         852  +
    pub fn deserialize(
         853  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         854  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         855  +
        #[allow(unused_variables, unused_mut)]
         856  +
        let mut builder = Self::builder();
         857  +
        #[allow(
         858  +
            unused_variables,
         859  +
            unreachable_code,
         860  +
            clippy::single_match,
         861  +
            clippy::match_single_binding,
         862  +
            clippy::diverging_sub_expression
         863  +
        )]
         864  +
        deserializer.read_struct(&ASSOCIATIONDESCRIPTION_SCHEMA, &mut |member, deser| {
         865  +
            match member.member_index() {
         866  +
                Some(0) => {
         867  +
                    if deser.is_null() {
         868  +
                        deser.read_null()?;
         869  +
                    } else {
         870  +
                        builder.name = Some(deser.read_string(member)?);
         871  +
                    }
         872  +
                }
         873  +
                Some(1) => {
         874  +
                    if deser.is_null() {
         875  +
                        deser.read_null()?;
         876  +
                    } else {
         877  +
                        builder.instance_id = Some(deser.read_string(member)?);
         878  +
                    }
         879  +
                }
         880  +
                Some(2) => {
         881  +
                    if deser.is_null() {
         882  +
                        deser.read_null()?;
         883  +
                    } else {
         884  +
                        builder.association_version = Some(deser.read_string(member)?);
         885  +
                    }
         886  +
                }
         887  +
                Some(3) => {
         888  +
                    if deser.is_null() {
         889  +
                        deser.read_null()?;
         890  +
                    } else {
         891  +
                        builder.date = Some(deser.read_timestamp(member)?);
         892  +
                    }
         893  +
                }
         894  +
                Some(4) => {
         895  +
                    if deser.is_null() {
         896  +
                        deser.read_null()?;
         897  +
                    } else {
         898  +
                        builder.last_update_association_date = Some(deser.read_timestamp(member)?);
         899  +
                    }
         900  +
                }
         901  +
                Some(5) => {
         902  +
                    if deser.is_null() {
         903  +
                        deser.read_null()?;
         904  +
                    } else {
         905  +
                        builder.status = Some(crate::types::AssociationStatus::deserialize(deser)?);
         906  +
                    }
         907  +
                }
         908  +
                Some(6) => {
         909  +
                    if deser.is_null() {
         910  +
                        deser.read_null()?;
         911  +
                    } else {
         912  +
                        builder.overview = Some(crate::types::AssociationOverview::deserialize(deser)?);
         913  +
                    }
         914  +
                }
         915  +
                Some(7) => {
         916  +
                    if deser.is_null() {
         917  +
                        deser.read_null()?;
         918  +
                    } else {
         919  +
                        builder.document_version = Some(deser.read_string(member)?);
         920  +
                    }
         921  +
                }
         922  +
                Some(8) => {
         923  +
                    if deser.is_null() {
         924  +
                        deser.read_null()?;
         925  +
                    } else {
         926  +
                        builder.automation_target_parameter_name = Some(deser.read_string(member)?);
         927  +
                    }
         928  +
                }
         929  +
                Some(9) => {
         930  +
                    if deser.is_null() {
         931  +
                        deser.read_null()?;
         932  +
                    } else {
         933  +
                        builder.parameters = Some({
         934  +
                            let mut container = std::collections::HashMap::new();
         935  +
                            deser.read_map(member, &mut |key, deser| {
         936  +
                                container.insert(key, {
         937  +
                                    let mut list = Vec::new();
         938  +
                                    deser.read_list(&ASSOCIATIONDESCRIPTION_MEMBER_PARAMETERS_VALUE, &mut |deser| {
         939  +
                                        list.push(deser.read_string(&::aws_smithy_schema::prelude::STRING)?);
         940  +
                                        Ok(())
         941  +
                                    })?;
         942  +
                                    list
         943  +
                                });
         944  +
                                Ok(())
         945  +
                            })?;
         946  +
                            container
         947  +
                        });
         948  +
                    }
         949  +
                }
         950  +
                Some(10) => {
         951  +
                    if deser.is_null() {
         952  +
                        deser.read_null()?;
         953  +
                    } else {
         954  +
                        builder.association_id = Some(deser.read_string(member)?);
         955  +
                    }
         956  +
                }
         957  +
                Some(11) => {
         958  +
                    if deser.is_null() {
         959  +
                        deser.read_null()?;
         960  +
                    } else {
         961  +
                        builder.targets = Some({
         962  +
                            let mut container = Vec::new();
         963  +
                            deser.read_list(member, &mut |deser| {
         964  +
                                container.push(crate::types::Target::deserialize(deser)?);
         965  +
                                Ok(())
         966  +
                            })?;
         967  +
                            container
         968  +
                        });
         969  +
                    }
         970  +
                }
         971  +
                Some(12) => {
         972  +
                    if deser.is_null() {
         973  +
                        deser.read_null()?;
         974  +
                    } else {
         975  +
                        builder.schedule_expression = Some(deser.read_string(member)?);
         976  +
                    }
         977  +
                }
         978  +
                Some(13) => {
         979  +
                    if deser.is_null() {
         980  +
                        deser.read_null()?;
         981  +
                    } else {
         982  +
                        builder.output_location = Some(crate::types::InstanceAssociationOutputLocation::deserialize(deser)?);
         983  +
                    }
         984  +
                }
         985  +
                Some(14) => {
         986  +
                    if deser.is_null() {
         987  +
                        deser.read_null()?;
         988  +
                    } else {
         989  +
                        builder.last_execution_date = Some(deser.read_timestamp(member)?);
         990  +
                    }
         991  +
                }
         992  +
                Some(15) => {
         993  +
                    if deser.is_null() {
         994  +
                        deser.read_null()?;
         995  +
                    } else {
         996  +
                        builder.last_successful_execution_date = Some(deser.read_timestamp(member)?);
         997  +
                    }
         998  +
                }
         999  +
                Some(16) => {
        1000  +
                    if deser.is_null() {
        1001  +
                        deser.read_null()?;
        1002  +
                    } else {
        1003  +
                        builder.association_name = Some(deser.read_string(member)?);
        1004  +
                    }
        1005  +
                }
        1006  +
                Some(17) => {
        1007  +
                    if deser.is_null() {
        1008  +
                        deser.read_null()?;
        1009  +
                    } else {
        1010  +
                        builder.max_errors = Some(deser.read_string(member)?);
        1011  +
                    }
        1012  +
                }
        1013  +
                Some(18) => {
        1014  +
                    if deser.is_null() {
        1015  +
                        deser.read_null()?;
        1016  +
                    } else {
        1017  +
                        builder.max_concurrency = Some(deser.read_string(member)?);
        1018  +
                    }
        1019  +
                }
        1020  +
                Some(19) => {
        1021  +
                    if deser.is_null() {
        1022  +
                        deser.read_null()?;
        1023  +
                    } else {
        1024  +
                        builder.compliance_severity = Some(crate::types::AssociationComplianceSeverity::from(deser.read_string(member)?.as_str()));
        1025  +
                    }
        1026  +
                }
        1027  +
                Some(20) => {
        1028  +
                    if deser.is_null() {
        1029  +
                        deser.read_null()?;
        1030  +
                    } else {
        1031  +
                        builder.sync_compliance = Some(crate::types::AssociationSyncCompliance::from(deser.read_string(member)?.as_str()));
        1032  +
                    }
        1033  +
                }
        1034  +
                Some(21) => {
        1035  +
                    builder.apply_only_at_cron_interval = Some(deser.read_boolean(member)?);
        1036  +
                }
        1037  +
                Some(22) => {
        1038  +
                    if deser.is_null() {
        1039  +
                        deser.read_null()?;
        1040  +
                    } else {
        1041  +
                        builder.calendar_names = Some(deser.read_string_list(member)?);
        1042  +
                    }
        1043  +
                }
        1044  +
                Some(23) => {
        1045  +
                    if deser.is_null() {
        1046  +
                        deser.read_null()?;
        1047  +
                    } else {
        1048  +
                        builder.target_locations = Some({
        1049  +
                            let mut container = Vec::new();
        1050  +
                            deser.read_list(member, &mut |deser| {
        1051  +
                                container.push(crate::types::TargetLocation::deserialize(deser)?);
        1052  +
                                Ok(())
        1053  +
                            })?;
        1054  +
                            container
        1055  +
                        });
        1056  +
                    }
        1057  +
                }
        1058  +
                Some(24) => {
        1059  +
                    if deser.is_null() {
        1060  +
                        deser.read_null()?;
        1061  +
                    } else {
        1062  +
                        builder.schedule_offset = Some(deser.read_integer(member)?);
        1063  +
                    }
        1064  +
                }
        1065  +
                Some(25) => {
        1066  +
                    if deser.is_null() {
        1067  +
                        deser.read_null()?;
        1068  +
                    } else {
        1069  +
                        builder.duration = Some(deser.read_integer(member)?);
        1070  +
                    }
        1071  +
                }
        1072  +
                Some(26) => {
        1073  +
                    if deser.is_null() {
        1074  +
                        deser.read_null()?;
        1075  +
                    } else {
        1076  +
                        builder.target_maps = Some({
        1077  +
                            let mut container = Vec::new();
        1078  +
                            deser.read_list(member, &mut |deser| {
        1079  +
                                container.push({
        1080  +
                                    let mut map = ::std::collections::HashMap::new();
        1081  +
                                    deser.read_map(&ASSOCIATIONDESCRIPTION_MEMBER_TARGET_MAPS_MEMBER, &mut |key, deser| {
        1082  +
                                        let value = {
        1083  +
                                            let mut list = Vec::new();
        1084  +
                                            deser.read_list(&ASSOCIATIONDESCRIPTION_MEMBER_TARGET_MAPS_MEMBER_VALUE, &mut |deser| {
        1085  +
                                                list.push(deser.read_string(&::aws_smithy_schema::prelude::STRING)?);
        1086  +
                                                Ok(())
        1087  +
                                            })?;
        1088  +
                                            list
        1089  +
                                        };
        1090  +
                                        map.insert(key, value);
        1091  +
                                        Ok(())
        1092  +
                                    })?;
        1093  +
                                    map
        1094  +
                                });
        1095  +
                                Ok(())
        1096  +
                            })?;
        1097  +
                            container
        1098  +
                        });
        1099  +
                    }
        1100  +
                }
        1101  +
                Some(27) => {
        1102  +
                    if deser.is_null() {
        1103  +
                        deser.read_null()?;
        1104  +
                    } else {
        1105  +
                        builder.alarm_configuration = Some(crate::types::AlarmConfiguration::deserialize(deser)?);
        1106  +
                    }
        1107  +
                }
        1108  +
                Some(28) => {
        1109  +
                    if deser.is_null() {
        1110  +
                        deser.read_null()?;
        1111  +
                    } else {
        1112  +
                        builder.triggered_alarms = Some({
        1113  +
                            let mut container = Vec::new();
        1114  +
                            deser.read_list(member, &mut |deser| {
        1115  +
                                container.push(crate::types::AlarmStateInformation::deserialize(deser)?);
        1116  +
                                Ok(())
        1117  +
                            })?;
        1118  +
                            container
        1119  +
                        });
        1120  +
                    }
        1121  +
                }
        1122  +
                Some(29) => {
        1123  +
                    if deser.is_null() {
        1124  +
                        deser.read_null()?;
        1125  +
                    } else {
        1126  +
                        builder.association_dispatch_assume_role = Some(deser.read_string(member)?);
        1127  +
                    }
        1128  +
                }
        1129  +
                _ => {}
        1130  +
            }
        1131  +
            Ok(())
        1132  +
        })?;
        1133  +
        Ok(builder.build())
        1134  +
    }
        1135  +
}
        1136  +
impl AssociationDescription {
        1137  +
    /// Deserializes this structure from a body deserializer and HTTP response.
        1138  +
    pub fn deserialize_with_response(
        1139  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
        1140  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
        1141  +
        _status: u16,
        1142  +
        _body: &[u8],
        1143  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
        1144  +
        Self::deserialize(deserializer)
        1145  +
    }
        1146  +
}
        1147  +
impl AssociationDescription {
        1148  +
    /// Creates a new builder-style object to manufacture [`AssociationDescription`](crate::types::AssociationDescription).
        1149  +
    pub fn builder() -> crate::types::builders::AssociationDescriptionBuilder {
        1150  +
        crate::types::builders::AssociationDescriptionBuilder::default()
        1151  +
    }
        1152  +
}
        1153  +
        1154  +
/// A builder for [`AssociationDescription`](crate::types::AssociationDescription).
        1155  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
        1156  +
#[non_exhaustive]
        1157  +
pub struct AssociationDescriptionBuilder {
        1158  +
    pub(crate) name: ::std::option::Option<::std::string::String>,
        1159  +
    pub(crate) instance_id: ::std::option::Option<::std::string::String>,
        1160  +
    pub(crate) association_version: ::std::option::Option<::std::string::String>,
        1161  +
    pub(crate) date: ::std::option::Option<::aws_smithy_types::DateTime>,
        1162  +
    pub(crate) last_update_association_date: ::std::option::Option<::aws_smithy_types::DateTime>,
        1163  +
    pub(crate) status: ::std::option::Option<crate::types::AssociationStatus>,
        1164  +
    pub(crate) overview: ::std::option::Option<crate::types::AssociationOverview>,
        1165  +
    pub(crate) document_version: ::std::option::Option<::std::string::String>,
        1166  +
    pub(crate) automation_target_parameter_name: ::std::option::Option<::std::string::String>,
        1167  +
    pub(crate) parameters: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
        1168  +
    pub(crate) association_id: ::std::option::Option<::std::string::String>,
        1169  +
    pub(crate) targets: ::std::option::Option<::std::vec::Vec<crate::types::Target>>,
        1170  +
    pub(crate) schedule_expression: ::std::option::Option<::std::string::String>,
        1171  +
    pub(crate) output_location: ::std::option::Option<crate::types::InstanceAssociationOutputLocation>,
        1172  +
    pub(crate) last_execution_date: ::std::option::Option<::aws_smithy_types::DateTime>,
        1173  +
    pub(crate) last_successful_execution_date: ::std::option::Option<::aws_smithy_types::DateTime>,
        1174  +
    pub(crate) association_name: ::std::option::Option<::std::string::String>,
        1175  +
    pub(crate) max_errors: ::std::option::Option<::std::string::String>,
        1176  +
    pub(crate) max_concurrency: ::std::option::Option<::std::string::String>,
        1177  +
    pub(crate) compliance_severity: ::std::option::Option<crate::types::AssociationComplianceSeverity>,
        1178  +
    pub(crate) sync_compliance: ::std::option::Option<crate::types::AssociationSyncCompliance>,
        1179  +
    pub(crate) apply_only_at_cron_interval: ::std::option::Option<bool>,
        1180  +
    pub(crate) calendar_names: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        1181  +
    pub(crate) target_locations: ::std::option::Option<::std::vec::Vec<crate::types::TargetLocation>>,
        1182  +
    pub(crate) schedule_offset: ::std::option::Option<i32>,
        1183  +
    pub(crate) duration: ::std::option::Option<i32>,
        1184  +
    pub(crate) target_maps:
        1185  +
        ::std::option::Option<::std::vec::Vec<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>>,
        1186  +
    pub(crate) alarm_configuration: ::std::option::Option<crate::types::AlarmConfiguration>,
        1187  +
    pub(crate) triggered_alarms: ::std::option::Option<::std::vec::Vec<crate::types::AlarmStateInformation>>,
        1188  +
    pub(crate) association_dispatch_assume_role: ::std::option::Option<::std::string::String>,
        1189  +
}
        1190  +
impl AssociationDescriptionBuilder {
        1191  +
    /// <p>The name of the SSM document.</p>
        1192  +
    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1193  +
        self.name = ::std::option::Option::Some(input.into());
        1194  +
        self
        1195  +
    }
        1196  +
    /// <p>The name of the SSM document.</p>
        1197  +
    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1198  +
        self.name = input;
        1199  +
        self
        1200  +
    }
        1201  +
    /// <p>The name of the SSM document.</p>
        1202  +
    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
        1203  +
        &self.name
        1204  +
    }
        1205  +
    /// <p>The managed node ID.</p>
        1206  +
    pub fn instance_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1207  +
        self.instance_id = ::std::option::Option::Some(input.into());
        1208  +
        self
        1209  +
    }
        1210  +
    /// <p>The managed node ID.</p>
        1211  +
    pub fn set_instance_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1212  +
        self.instance_id = input;
        1213  +
        self
        1214  +
    }
        1215  +
    /// <p>The managed node ID.</p>
        1216  +
    pub fn get_instance_id(&self) -> &::std::option::Option<::std::string::String> {
        1217  +
        &self.instance_id
        1218  +
    }
        1219  +
    /// <p>The association version.</p>
        1220  +
    pub fn association_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1221  +
        self.association_version = ::std::option::Option::Some(input.into());
        1222  +
        self
        1223  +
    }
        1224  +
    /// <p>The association version.</p>
        1225  +
    pub fn set_association_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1226  +
        self.association_version = input;
        1227  +
        self
        1228  +
    }
        1229  +
    /// <p>The association version.</p>
        1230  +
    pub fn get_association_version(&self) -> &::std::option::Option<::std::string::String> {
        1231  +
        &self.association_version
        1232  +
    }
        1233  +
    /// <p>The date when the association was made.</p>
        1234  +
    pub fn date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        1235  +
        self.date = ::std::option::Option::Some(input);
        1236  +
        self
        1237  +
    }
        1238  +
    /// <p>The date when the association was made.</p>
        1239  +
    pub fn set_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        1240  +
        self.date = input;
        1241  +
        self
        1242  +
    }
        1243  +
    /// <p>The date when the association was made.</p>
        1244  +
    pub fn get_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        1245  +
        &self.date
        1246  +
    }
        1247  +
    /// <p>The date when the association was last updated.</p>
        1248  +
    pub fn last_update_association_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        1249  +
        self.last_update_association_date = ::std::option::Option::Some(input);
        1250  +
        self
        1251  +
    }
        1252  +
    /// <p>The date when the association was last updated.</p>
        1253  +
    pub fn set_last_update_association_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        1254  +
        self.last_update_association_date = input;
        1255  +
        self
        1256  +
    }
        1257  +
    /// <p>The date when the association was last updated.</p>
        1258  +
    pub fn get_last_update_association_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        1259  +
        &self.last_update_association_date
        1260  +
    }
        1261  +
    /// <p>The association status.</p>
        1262  +
    pub fn status(mut self, input: crate::types::AssociationStatus) -> Self {
        1263  +
        self.status = ::std::option::Option::Some(input);
        1264  +
        self
        1265  +
    }
        1266  +
    /// <p>The association status.</p>
        1267  +
    pub fn set_status(mut self, input: ::std::option::Option<crate::types::AssociationStatus>) -> Self {
        1268  +
        self.status = input;
        1269  +
        self
        1270  +
    }
        1271  +
    /// <p>The association status.</p>
        1272  +
    pub fn get_status(&self) -> &::std::option::Option<crate::types::AssociationStatus> {
        1273  +
        &self.status
        1274  +
    }
        1275  +
    /// <p>Information about the association.</p>
        1276  +
    pub fn overview(mut self, input: crate::types::AssociationOverview) -> Self {
        1277  +
        self.overview = ::std::option::Option::Some(input);
        1278  +
        self
        1279  +
    }
        1280  +
    /// <p>Information about the association.</p>
        1281  +
    pub fn set_overview(mut self, input: ::std::option::Option<crate::types::AssociationOverview>) -> Self {
        1282  +
        self.overview = input;
        1283  +
        self
        1284  +
    }
        1285  +
    /// <p>Information about the association.</p>
        1286  +
    pub fn get_overview(&self) -> &::std::option::Option<crate::types::AssociationOverview> {
        1287  +
        &self.overview
        1288  +
    }
        1289  +
    /// <p>The document version.</p>
        1290  +
    pub fn document_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1291  +
        self.document_version = ::std::option::Option::Some(input.into());
        1292  +
        self
        1293  +
    }
        1294  +
    /// <p>The document version.</p>
        1295  +
    pub fn set_document_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1296  +
        self.document_version = input;
        1297  +
        self
        1298  +
    }
        1299  +
    /// <p>The document version.</p>
        1300  +
    pub fn get_document_version(&self) -> &::std::option::Option<::std::string::String> {
        1301  +
        &self.document_version
        1302  +
    }
        1303  +
    /// <p>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 tool in Amazon Web Services Systems Manager.</p>
        1304  +
    pub fn automation_target_parameter_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1305  +
        self.automation_target_parameter_name = ::std::option::Option::Some(input.into());
        1306  +
        self
        1307  +
    }
        1308  +
    /// <p>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 tool in Amazon Web Services Systems Manager.</p>
        1309  +
    pub fn set_automation_target_parameter_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1310  +
        self.automation_target_parameter_name = input;
        1311  +
        self
        1312  +
    }
        1313  +
    /// <p>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 tool in Amazon Web Services Systems Manager.</p>
        1314  +
    pub fn get_automation_target_parameter_name(&self) -> &::std::option::Option<::std::string::String> {
        1315  +
        &self.automation_target_parameter_name
        1316  +
    }
        1317  +
    /// Adds a key-value pair to `parameters`.
        1318  +
    ///
        1319  +
    /// To override the contents of this collection use [`set_parameters`](Self::set_parameters).
        1320  +
    ///
        1321  +
    /// <p>A description of the parameters for a document.</p>
        1322  +
    pub fn parameters(mut self, k: impl ::std::convert::Into<::std::string::String>, v: ::std::vec::Vec<::std::string::String>) -> Self {
        1323  +
        let mut hash_map = self.parameters.unwrap_or_default();
        1324  +
        hash_map.insert(k.into(), v);
        1325  +
        self.parameters = ::std::option::Option::Some(hash_map);
        1326  +
        self
        1327  +
    }
        1328  +
    /// <p>A description of the parameters for a document.</p>
        1329  +
    pub fn set_parameters(
        1330  +
        mut self,
        1331  +
        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
        1332  +
    ) -> Self {
        1333  +
        self.parameters = input;
        1334  +
        self
        1335  +
    }
        1336  +
    /// <p>A description of the parameters for a document.</p>
        1337  +
    pub fn get_parameters(
        1338  +
        &self,
        1339  +
    ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
        1340  +
        &self.parameters
        1341  +
    }
        1342  +
    /// <p>The association ID.</p>
        1343  +
    pub fn association_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1344  +
        self.association_id = ::std::option::Option::Some(input.into());
        1345  +
        self
        1346  +
    }
        1347  +
    /// <p>The association ID.</p>
        1348  +
    pub fn set_association_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1349  +
        self.association_id = input;
        1350  +
        self
        1351  +
    }
        1352  +
    /// <p>The association ID.</p>
        1353  +
    pub fn get_association_id(&self) -> &::std::option::Option<::std::string::String> {
        1354  +
        &self.association_id
        1355  +
    }
        1356  +
    /// Appends an item to `targets`.
        1357  +
    ///
        1358  +
    /// To override the contents of this collection use [`set_targets`](Self::set_targets).
        1359  +
    ///
        1360  +
    /// <p>The managed nodes targeted by the request.</p>
        1361  +
    pub fn targets(mut self, input: crate::types::Target) -> Self {
        1362  +
        let mut v = self.targets.unwrap_or_default();
        1363  +
        v.push(input);
        1364  +
        self.targets = ::std::option::Option::Some(v);
        1365  +
        self
        1366  +
    }
        1367  +
    /// <p>The managed nodes targeted by the request.</p>
        1368  +
    pub fn set_targets(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Target>>) -> Self {
        1369  +
        self.targets = input;
        1370  +
        self
        1371  +
    }
        1372  +
    /// <p>The managed nodes targeted by the request.</p>
        1373  +
    pub fn get_targets(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Target>> {
        1374  +
        &self.targets
        1375  +
    }
        1376  +
    /// <p>A cron expression that specifies a schedule when the association runs.</p>
        1377  +
    pub fn schedule_expression(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1378  +
        self.schedule_expression = ::std::option::Option::Some(input.into());
        1379  +
        self
        1380  +
    }
        1381  +
    /// <p>A cron expression that specifies a schedule when the association runs.</p>
        1382  +
    pub fn set_schedule_expression(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1383  +
        self.schedule_expression = input;
        1384  +
        self
        1385  +
    }
        1386  +
    /// <p>A cron expression that specifies a schedule when the association runs.</p>
        1387  +
    pub fn get_schedule_expression(&self) -> &::std::option::Option<::std::string::String> {
        1388  +
        &self.schedule_expression
        1389  +
    }
        1390  +
    /// <p>An S3 bucket where you want to store the output details of the request.</p>
        1391  +
    pub fn output_location(mut self, input: crate::types::InstanceAssociationOutputLocation) -> Self {
        1392  +
        self.output_location = ::std::option::Option::Some(input);
        1393  +
        self
        1394  +
    }
        1395  +
    /// <p>An S3 bucket where you want to store the output details of the request.</p>
        1396  +
    pub fn set_output_location(mut self, input: ::std::option::Option<crate::types::InstanceAssociationOutputLocation>) -> Self {
        1397  +
        self.output_location = input;
        1398  +
        self
        1399  +
    }
        1400  +
    /// <p>An S3 bucket where you want to store the output details of the request.</p>
        1401  +
    pub fn get_output_location(&self) -> &::std::option::Option<crate::types::InstanceAssociationOutputLocation> {
        1402  +
        &self.output_location
        1403  +
    }
        1404  +
    /// <p>The date on which the association was last run.</p>
        1405  +
    pub fn last_execution_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        1406  +
        self.last_execution_date = ::std::option::Option::Some(input);
        1407  +
        self
        1408  +
    }
        1409  +
    /// <p>The date on which the association was last run.</p>
        1410  +
    pub fn set_last_execution_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        1411  +
        self.last_execution_date = input;
        1412  +
        self
        1413  +
    }
        1414  +
    /// <p>The date on which the association was last run.</p>
        1415  +
    pub fn get_last_execution_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        1416  +
        &self.last_execution_date
        1417  +
    }
        1418  +
    /// <p>The last date on which the association was successfully run.</p>
        1419  +
    pub fn last_successful_execution_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        1420  +
        self.last_successful_execution_date = ::std::option::Option::Some(input);
        1421  +
        self
        1422  +
    }
        1423  +
    /// <p>The last date on which the association was successfully run.</p>
        1424  +
    pub fn set_last_successful_execution_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        1425  +
        self.last_successful_execution_date = input;
        1426  +
        self
        1427  +
    }
        1428  +
    /// <p>The last date on which the association was successfully run.</p>
        1429  +
    pub fn get_last_successful_execution_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        1430  +
        &self.last_successful_execution_date
        1431  +
    }
        1432  +
    /// <p>The association name.</p>
        1433  +
    pub fn association_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1434  +
        self.association_name = ::std::option::Option::Some(input.into());
        1435  +
        self
        1436  +
    }
        1437  +
    /// <p>The association name.</p>
        1438  +
    pub fn set_association_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1439  +
        self.association_name = input;
        1440  +
        self
        1441  +
    }
        1442  +
    /// <p>The association name.</p>
        1443  +
    pub fn get_association_name(&self) -> &::std::option::Option<::std::string::String> {
        1444  +
        &self.association_name
        1445  +
    }
        1446  +
    /// <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>
        1447  +
    /// <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>
        1448  +
    pub fn max_errors(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1449  +
        self.max_errors = ::std::option::Option::Some(input.into());
        1450  +
        self
        1451  +
    }
        1452  +
    /// <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>
        1453  +
    /// <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>
        1454  +
    pub fn set_max_errors(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1455  +
        self.max_errors = input;
        1456  +
        self
        1457  +
    }
        1458  +
    /// <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>
        1459  +
    /// <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>
        1460  +
    pub fn get_max_errors(&self) -> &::std::option::Option<::std::string::String> {
        1461  +
        &self.max_errors
        1462  +
    }
        1463  +
    /// <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>
        1464  +
    /// <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>
        1465  +
    pub fn max_concurrency(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1466  +
        self.max_concurrency = ::std::option::Option::Some(input.into());
        1467  +
        self
        1468  +
    }
        1469  +
    /// <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>
        1470  +
    /// <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>
        1471  +
    pub fn set_max_concurrency(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1472  +
        self.max_concurrency = input;
        1473  +
        self
        1474  +
    }
        1475  +
    /// <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>
        1476  +
    /// <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>
        1477  +
    pub fn get_max_concurrency(&self) -> &::std::option::Option<::std::string::String> {
        1478  +
        &self.max_concurrency
        1479  +
    }
        1480  +
    /// <p>The severity level that is assigned to the association.</p>
        1481  +
    pub fn compliance_severity(mut self, input: crate::types::AssociationComplianceSeverity) -> Self {
        1482  +
        self.compliance_severity = ::std::option::Option::Some(input);
        1483  +
        self
        1484  +
    }
        1485  +
    /// <p>The severity level that is assigned to the association.</p>
        1486  +
    pub fn set_compliance_severity(mut self, input: ::std::option::Option<crate::types::AssociationComplianceSeverity>) -> Self {
        1487  +
        self.compliance_severity = input;
        1488  +
        self
        1489  +
    }
        1490  +
    /// <p>The severity level that is assigned to the association.</p>
        1491  +
    pub fn get_compliance_severity(&self) -> &::std::option::Option<crate::types::AssociationComplianceSeverity> {
        1492  +
        &self.compliance_severity
        1493  +
    }
        1494  +
    /// <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>
        1495  +
    /// <p>In <code>MANUAL</code> mode, you must specify the <code>AssociationId</code> as a parameter for the <code>PutComplianceItems</code> API operation. In this case, compliance data isn't managed by State Manager, a tool in Amazon Web Services Systems Manager. It is managed by your direct call to the <code>PutComplianceItems</code> API operation.</p>
        1496  +
    /// <p>By default, all associations use <code>AUTO</code> mode.</p>
        1497  +
    pub fn sync_compliance(mut self, input: crate::types::AssociationSyncCompliance) -> Self {
        1498  +
        self.sync_compliance = ::std::option::Option::Some(input);
        1499  +
        self
        1500  +
    }
        1501  +
    /// <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>
        1502  +
    /// <p>In <code>MANUAL</code> mode, you must specify the <code>AssociationId</code> as a parameter for the <code>PutComplianceItems</code> API operation. In this case, compliance data isn't managed by State Manager, a tool in Amazon Web Services Systems Manager. It is managed by your direct call to the <code>PutComplianceItems</code> API operation.</p>
        1503  +
    /// <p>By default, all associations use <code>AUTO</code> mode.</p>
        1504  +
    pub fn set_sync_compliance(mut self, input: ::std::option::Option<crate::types::AssociationSyncCompliance>) -> Self {
        1505  +
        self.sync_compliance = input;
        1506  +
        self
        1507  +
    }
        1508  +
    /// <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>
        1509  +
    /// <p>In <code>MANUAL</code> mode, you must specify the <code>AssociationId</code> as a parameter for the <code>PutComplianceItems</code> API operation. In this case, compliance data isn't managed by State Manager, a tool in Amazon Web Services Systems Manager. It is managed by your direct call to the <code>PutComplianceItems</code> API operation.</p>
        1510  +
    /// <p>By default, all associations use <code>AUTO</code> mode.</p>
        1511  +
    pub fn get_sync_compliance(&self) -> &::std::option::Option<crate::types::AssociationSyncCompliance> {
        1512  +
        &self.sync_compliance
        1513  +
    }
        1514  +
    /// <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>
        1515  +
    pub fn apply_only_at_cron_interval(mut self, input: bool) -> Self {
        1516  +
        self.apply_only_at_cron_interval = ::std::option::Option::Some(input);
        1517  +
        self
        1518  +
    }
        1519  +
    /// <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>
        1520  +
    pub fn set_apply_only_at_cron_interval(mut self, input: ::std::option::Option<bool>) -> Self {
        1521  +
        self.apply_only_at_cron_interval = input;
        1522  +
        self
        1523  +
    }
        1524  +
    /// <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>
        1525  +
    pub fn get_apply_only_at_cron_interval(&self) -> &::std::option::Option<bool> {
        1526  +
        &self.apply_only_at_cron_interval
        1527  +
    }
        1528  +
    /// Appends an item to `calendar_names`.
        1529  +
    ///
        1530  +
    /// To override the contents of this collection use [`set_calendar_names`](Self::set_calendar_names).
        1531  +
    ///
        1532  +
    /// <p>The names or Amazon Resource Names (ARNs) of the Change Calendar type documents your associations are gated under. The associations 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> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
        1533  +
    pub fn calendar_names(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1534  +
        let mut v = self.calendar_names.unwrap_or_default();
        1535  +
        v.push(input.into());
        1536  +
        self.calendar_names = ::std::option::Option::Some(v);
        1537  +
        self
        1538  +
    }
        1539  +
    /// <p>The names or Amazon Resource Names (ARNs) of the Change Calendar type documents your associations are gated under. The associations 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> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
        1540  +
    pub fn set_calendar_names(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
        1541  +
        self.calendar_names = input;
        1542  +
        self
        1543  +
    }
        1544  +
    /// <p>The names or Amazon Resource Names (ARNs) of the Change Calendar type documents your associations are gated under. The associations 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> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
        1545  +
    pub fn get_calendar_names(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
        1546  +
        &self.calendar_names
        1547  +
    }
        1548  +
    /// Appends an item to `target_locations`.
        1549  +
    ///
        1550  +
    /// To override the contents of this collection use [`set_target_locations`](Self::set_target_locations).
        1551  +
    ///
        1552  +
    /// <p>The combination of Amazon Web Services Regions and Amazon Web Services accounts where you want to run the association.</p>
        1553  +
    pub fn target_locations(mut self, input: crate::types::TargetLocation) -> Self {
        1554  +
        let mut v = self.target_locations.unwrap_or_default();
        1555  +
        v.push(input);
        1556  +
        self.target_locations = ::std::option::Option::Some(v);
        1557  +
        self
        1558  +
    }
        1559  +
    /// <p>The combination of Amazon Web Services Regions and Amazon Web Services accounts where you want to run the association.</p>
        1560  +
    pub fn set_target_locations(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::TargetLocation>>) -> Self {
        1561  +
        self.target_locations = input;
        1562  +
        self
        1563  +
    }
        1564  +
    /// <p>The combination of Amazon Web Services Regions and Amazon Web Services accounts where you want to run the association.</p>
        1565  +
    pub fn get_target_locations(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::TargetLocation>> {
        1566  +
        &self.target_locations
        1567  +
    }
        1568  +
    /// <p>Number of days to wait after the scheduled day to run an association.</p>
        1569  +
    pub fn schedule_offset(mut self, input: i32) -> Self {
        1570  +
        self.schedule_offset = ::std::option::Option::Some(input);
        1571  +
        self
        1572  +
    }
        1573  +
    /// <p>Number of days to wait after the scheduled day to run an association.</p>
        1574  +
    pub fn set_schedule_offset(mut self, input: ::std::option::Option<i32>) -> Self {
        1575  +
        self.schedule_offset = input;
        1576  +
        self
        1577  +
    }
        1578  +
    /// <p>Number of days to wait after the scheduled day to run an association.</p>
        1579  +
    pub fn get_schedule_offset(&self) -> &::std::option::Option<i32> {
        1580  +
        &self.schedule_offset
        1581  +
    }
        1582  +
    /// <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>
        1583  +
    pub fn duration(mut self, input: i32) -> Self {
        1584  +
        self.duration = ::std::option::Option::Some(input);
        1585  +
        self
        1586  +
    }
        1587  +
    /// <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>
        1588  +
    pub fn set_duration(mut self, input: ::std::option::Option<i32>) -> Self {
        1589  +
        self.duration = input;
        1590  +
        self
        1591  +
    }
        1592  +
    /// <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>
        1593  +
    pub fn get_duration(&self) -> &::std::option::Option<i32> {
        1594  +
        &self.duration
        1595  +
    }
        1596  +
    /// Appends an item to `target_maps`.
        1597  +
    ///
        1598  +
    /// To override the contents of this collection use [`set_target_maps`](Self::set_target_maps).
        1599  +
    ///
        1600  +
    /// <p>A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together.</p>
        1601  +
    pub fn target_maps(mut self, input: ::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>) -> Self {
        1602  +
        let mut v = self.target_maps.unwrap_or_default();
        1603  +
        v.push(input);
        1604  +
        self.target_maps = ::std::option::Option::Some(v);
        1605  +
        self
        1606  +
    }
        1607  +
    /// <p>A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together.</p>
        1608  +
    pub fn set_target_maps(
        1609  +
        mut self,
        1610  +
        input: ::std::option::Option<::std::vec::Vec<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>>,
        1611  +
    ) -> Self {
        1612  +
        self.target_maps = input;
        1613  +
        self
        1614  +
    }
        1615  +
    /// <p>A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together.</p>
        1616  +
    pub fn get_target_maps(
        1617  +
        &self,
        1618  +
    ) -> &::std::option::Option<::std::vec::Vec<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>> {
        1619  +
        &self.target_maps
        1620  +
    }
        1621  +
    /// <p>The details for the CloudWatch alarm you want to apply to an automation or command.</p>
        1622  +
    pub fn alarm_configuration(mut self, input: crate::types::AlarmConfiguration) -> Self {
        1623  +
        self.alarm_configuration = ::std::option::Option::Some(input);
        1624  +
        self
        1625  +
    }
        1626  +
    /// <p>The details for the CloudWatch alarm you want to apply to an automation or command.</p>
        1627  +
    pub fn set_alarm_configuration(mut self, input: ::std::option::Option<crate::types::AlarmConfiguration>) -> Self {
        1628  +
        self.alarm_configuration = input;
        1629  +
        self
        1630  +
    }
        1631  +
    /// <p>The details for the CloudWatch alarm you want to apply to an automation or command.</p>
        1632  +
    pub fn get_alarm_configuration(&self) -> &::std::option::Option<crate::types::AlarmConfiguration> {
        1633  +
        &self.alarm_configuration
        1634  +
    }
        1635  +
    /// Appends an item to `triggered_alarms`.
        1636  +
    ///
        1637  +
    /// To override the contents of this collection use [`set_triggered_alarms`](Self::set_triggered_alarms).
        1638  +
    ///
        1639  +
    /// <p>The CloudWatch alarm that was invoked during the association.</p>
        1640  +
    pub fn triggered_alarms(mut self, input: crate::types::AlarmStateInformation) -> Self {
        1641  +
        let mut v = self.triggered_alarms.unwrap_or_default();
        1642  +
        v.push(input);
        1643  +
        self.triggered_alarms = ::std::option::Option::Some(v);
        1644  +
        self
        1645  +
    }
        1646  +
    /// <p>The CloudWatch alarm that was invoked during the association.</p>
        1647  +
    pub fn set_triggered_alarms(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::AlarmStateInformation>>) -> Self {
        1648  +
        self.triggered_alarms = input;
        1649  +
        self
        1650  +
    }
        1651  +
    /// <p>The CloudWatch alarm that was invoked during the association.</p>
        1652  +
    pub fn get_triggered_alarms(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::AlarmStateInformation>> {
        1653  +
        &self.triggered_alarms
        1654  +
    }
        1655  +
    /// <p>A role used by association to take actions on your behalf. State Manager will assume this role and call required APIs when dispatching configurations to nodes. If not specified, <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/using-service-linked-roles.html"> service-linked role for Systems Manager</a> will be used by default.</p>
        1656  +
    pub fn association_dispatch_assume_role(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1657  +
        self.association_dispatch_assume_role = ::std::option::Option::Some(input.into());
        1658  +
        self
        1659  +
    }
        1660  +
    /// <p>A role used by association to take actions on your behalf. State Manager will assume this role and call required APIs when dispatching configurations to nodes. If not specified, <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/using-service-linked-roles.html"> service-linked role for Systems Manager</a> will be used by default.</p>
        1661  +
    pub fn set_association_dispatch_assume_role(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1662  +
        self.association_dispatch_assume_role = input;
        1663  +
        self
        1664  +
    }
        1665  +
    /// <p>A role used by association to take actions on your behalf. State Manager will assume this role and call required APIs when dispatching configurations to nodes. If not specified, <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/using-service-linked-roles.html"> service-linked role for Systems Manager</a> will be used by default.</p>
        1666  +
    pub fn get_association_dispatch_assume_role(&self) -> &::std::option::Option<::std::string::String> {
        1667  +
        &self.association_dispatch_assume_role
        1668  +
    }
        1669  +
    /// Consumes the builder and constructs a [`AssociationDescription`](crate::types::AssociationDescription).
        1670  +
    pub fn build(self) -> crate::types::AssociationDescription {
        1671  +
        crate::types::AssociationDescription {
        1672  +
            name: self.name,
        1673  +
            instance_id: self.instance_id,
        1674  +
            association_version: self.association_version,
        1675  +
            date: self.date,
        1676  +
            last_update_association_date: self.last_update_association_date,
        1677  +
            status: self.status,
        1678  +
            overview: self.overview,
        1679  +
            document_version: self.document_version,
        1680  +
            automation_target_parameter_name: self.automation_target_parameter_name,
        1681  +
            parameters: self.parameters,
        1682  +
            association_id: self.association_id,
        1683  +
            targets: self.targets,
        1684  +
            schedule_expression: self.schedule_expression,
        1685  +
            output_location: self.output_location,
        1686  +
            last_execution_date: self.last_execution_date,
        1687  +
            last_successful_execution_date: self.last_successful_execution_date,
        1688  +
            association_name: self.association_name,
        1689  +
            max_errors: self.max_errors,
        1690  +
            max_concurrency: self.max_concurrency,
        1691  +
            compliance_severity: self.compliance_severity,
        1692  +
            sync_compliance: self.sync_compliance,
        1693  +
            apply_only_at_cron_interval: self.apply_only_at_cron_interval.unwrap_or_default(),
        1694  +
            calendar_names: self.calendar_names,
        1695  +
            target_locations: self.target_locations,
        1696  +
            schedule_offset: self.schedule_offset,
        1697  +
            duration: self.duration,
        1698  +
            target_maps: self.target_maps,
        1699  +
            alarm_configuration: self.alarm_configuration,
        1700  +
            triggered_alarms: self.triggered_alarms,
        1701  +
            association_dispatch_assume_role: self.association_dispatch_assume_role,
        1702  +
        }
        1703  +
    }
        1704  +
}
        1705  +
impl ::std::fmt::Debug for AssociationDescriptionBuilder {
        1706  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        1707  +
        let mut formatter = f.debug_struct("AssociationDescriptionBuilder");
        1708  +
        formatter.field("name", &self.name);
        1709  +
        formatter.field("instance_id", &self.instance_id);
        1710  +
        formatter.field("association_version", &self.association_version);
        1711  +
        formatter.field("date", &self.date);
        1712  +
        formatter.field("last_update_association_date", &self.last_update_association_date);
        1713  +
        formatter.field("status", &self.status);
        1714  +
        formatter.field("overview", &self.overview);
        1715  +
        formatter.field("document_version", &self.document_version);
        1716  +
        formatter.field("automation_target_parameter_name", &self.automation_target_parameter_name);
        1717  +
        formatter.field("parameters", &"*** Sensitive Data Redacted ***");
        1718  +
        formatter.field("association_id", &self.association_id);
        1719  +
        formatter.field("targets", &self.targets);
        1720  +
        formatter.field("schedule_expression", &self.schedule_expression);
        1721  +
        formatter.field("output_location", &self.output_location);
        1722  +
        formatter.field("last_execution_date", &self.last_execution_date);
        1723  +
        formatter.field("last_successful_execution_date", &self.last_successful_execution_date);
        1724  +
        formatter.field("association_name", &self.association_name);
        1725  +
        formatter.field("max_errors", &self.max_errors);
        1726  +
        formatter.field("max_concurrency", &self.max_concurrency);
        1727  +
        formatter.field("compliance_severity", &self.compliance_severity);
        1728  +
        formatter.field("sync_compliance", &self.sync_compliance);
        1729  +
        formatter.field("apply_only_at_cron_interval", &self.apply_only_at_cron_interval);
        1730  +
        formatter.field("calendar_names", &self.calendar_names);
        1731  +
        formatter.field("target_locations", &self.target_locations);
        1732  +
        formatter.field("schedule_offset", &self.schedule_offset);
        1733  +
        formatter.field("duration", &self.duration);
        1734  +
        formatter.field("target_maps", &self.target_maps);
        1735  +
        formatter.field("alarm_configuration", &self.alarm_configuration);
        1736  +
        formatter.field("triggered_alarms", &self.triggered_alarms);
        1737  +
        formatter.field("association_dispatch_assume_role", &self.association_dispatch_assume_role);
        1738  +
        formatter.finish()
        1739  +
    }
        1740  +
}