AWS SDK

AWS SDK

rev. bbca34fa2eddb4be623fbbc6b6df1a2401de0029

Files changed:

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

@@ -0,1 +0,257 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>Describes an association status.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           6  +
pub struct AssociationStatus {
           7  +
    /// <p>The date when the status changed.</p>
           8  +
    pub date: ::aws_smithy_types::DateTime,
           9  +
    /// <p>The status.</p>
          10  +
    pub name: crate::types::AssociationStatusName,
          11  +
    /// <p>The reason for the status.</p>
          12  +
    pub message: ::std::string::String,
          13  +
    /// <p>A user-defined string.</p>
          14  +
    pub additional_info: ::std::option::Option<::std::string::String>,
          15  +
}
          16  +
impl AssociationStatus {
          17  +
    /// <p>The date when the status changed.</p>
          18  +
    pub fn date(&self) -> &::aws_smithy_types::DateTime {
          19  +
        &self.date
          20  +
    }
          21  +
    /// <p>The status.</p>
          22  +
    pub fn name(&self) -> &crate::types::AssociationStatusName {
          23  +
        &self.name
          24  +
    }
          25  +
    /// <p>The reason for the status.</p>
          26  +
    pub fn message(&self) -> &str {
          27  +
        use std::ops::Deref;
          28  +
        self.message.deref()
          29  +
    }
          30  +
    /// <p>A user-defined string.</p>
          31  +
    pub fn additional_info(&self) -> ::std::option::Option<&str> {
          32  +
        self.additional_info.as_deref()
          33  +
    }
          34  +
}
          35  +
static ASSOCIATIONSTATUS_MEMBER_DATE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          36  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#AssociationStatus$Date", "com.amazonaws.ssm", "AssociationStatus"),
          37  +
    ::aws_smithy_schema::ShapeType::Timestamp,
          38  +
    "Date",
          39  +
    0,
          40  +
);
          41  +
static ASSOCIATIONSTATUS_MEMBER_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          42  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#AssociationStatus$Name", "com.amazonaws.ssm", "AssociationStatus"),
          43  +
    ::aws_smithy_schema::ShapeType::String,
          44  +
    "Name",
          45  +
    1,
          46  +
);
          47  +
static ASSOCIATIONSTATUS_MEMBER_MESSAGE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          48  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#AssociationStatus$Message", "com.amazonaws.ssm", "AssociationStatus"),
          49  +
    ::aws_smithy_schema::ShapeType::String,
          50  +
    "Message",
          51  +
    2,
          52  +
);
          53  +
static ASSOCIATIONSTATUS_MEMBER_ADDITIONAL_INFO: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          54  +
    ::aws_smithy_schema::ShapeId::from_parts(
          55  +
        "com.amazonaws.ssm#AssociationStatus$AdditionalInfo",
          56  +
        "com.amazonaws.ssm",
          57  +
        "AssociationStatus",
          58  +
    ),
          59  +
    ::aws_smithy_schema::ShapeType::String,
          60  +
    "AdditionalInfo",
          61  +
    3,
          62  +
);
          63  +
static ASSOCIATIONSTATUS_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
          64  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#AssociationStatus", "com.amazonaws.ssm", "AssociationStatus"),
          65  +
    ::aws_smithy_schema::ShapeType::Structure,
          66  +
    &[
          67  +
        &ASSOCIATIONSTATUS_MEMBER_DATE,
          68  +
        &ASSOCIATIONSTATUS_MEMBER_NAME,
          69  +
        &ASSOCIATIONSTATUS_MEMBER_MESSAGE,
          70  +
        &ASSOCIATIONSTATUS_MEMBER_ADDITIONAL_INFO,
          71  +
    ],
          72  +
);
          73  +
impl AssociationStatus {
          74  +
    /// The schema for this shape.
          75  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &ASSOCIATIONSTATUS_SCHEMA;
          76  +
}
          77  +
impl ::aws_smithy_schema::serde::SerializableStruct for AssociationStatus {
          78  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
          79  +
    fn serialize_members(
          80  +
        &self,
          81  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
          82  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
          83  +
        {
          84  +
            let val = &self.date;
          85  +
            ser.write_timestamp(&ASSOCIATIONSTATUS_MEMBER_DATE, val)?;
          86  +
        }
          87  +
        {
          88  +
            let val = &self.name;
          89  +
            ser.write_string(&ASSOCIATIONSTATUS_MEMBER_NAME, val.as_str())?;
          90  +
        }
          91  +
        {
          92  +
            let val = &self.message;
          93  +
            ser.write_string(&ASSOCIATIONSTATUS_MEMBER_MESSAGE, val)?;
          94  +
        }
          95  +
        if let Some(ref val) = self.additional_info {
          96  +
            ser.write_string(&ASSOCIATIONSTATUS_MEMBER_ADDITIONAL_INFO, val)?;
          97  +
        }
          98  +
        Ok(())
          99  +
    }
         100  +
}
         101  +
impl AssociationStatus {
         102  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         103  +
    pub fn deserialize(
         104  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         105  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         106  +
        #[allow(unused_variables, unused_mut)]
         107  +
        let mut builder = Self::builder();
         108  +
        #[allow(
         109  +
            unused_variables,
         110  +
            unreachable_code,
         111  +
            clippy::single_match,
         112  +
            clippy::match_single_binding,
         113  +
            clippy::diverging_sub_expression
         114  +
        )]
         115  +
        deserializer.read_struct(&ASSOCIATIONSTATUS_SCHEMA, &mut |member, deser| {
         116  +
            match member.member_index() {
         117  +
                Some(0) => {
         118  +
                    builder.date = Some(deser.read_timestamp(member)?);
         119  +
                }
         120  +
                Some(1) => {
         121  +
                    builder.name = Some(crate::types::AssociationStatusName::from(deser.read_string(member)?.as_str()));
         122  +
                }
         123  +
                Some(2) => {
         124  +
                    builder.message = Some(deser.read_string(member)?);
         125  +
                }
         126  +
                Some(3) => {
         127  +
                    if deser.is_null() {
         128  +
                        deser.read_null()?;
         129  +
                    } else {
         130  +
                        builder.additional_info = Some(deser.read_string(member)?);
         131  +
                    }
         132  +
                }
         133  +
                _ => {}
         134  +
            }
         135  +
            Ok(())
         136  +
        })?;
         137  +
        builder.date = builder.date.or(Some(::aws_smithy_types::DateTime::from_secs(0)));
         138  +
        builder.message = builder.message.or(Some(String::new()));
         139  +
        builder.build().map_err(|e| aws_smithy_schema::serde::SerdeError::custom(e.to_string()))
         140  +
    }
         141  +
}
         142  +
impl AssociationStatus {
         143  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         144  +
    pub fn deserialize_with_response(
         145  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         146  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         147  +
        _status: u16,
         148  +
        _body: &[u8],
         149  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         150  +
        Self::deserialize(deserializer)
         151  +
    }
         152  +
}
         153  +
impl AssociationStatus {
         154  +
    /// Creates a new builder-style object to manufacture [`AssociationStatus`](crate::types::AssociationStatus).
         155  +
    pub fn builder() -> crate::types::builders::AssociationStatusBuilder {
         156  +
        crate::types::builders::AssociationStatusBuilder::default()
         157  +
    }
         158  +
}
         159  +
         160  +
/// A builder for [`AssociationStatus`](crate::types::AssociationStatus).
         161  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         162  +
#[non_exhaustive]
         163  +
pub struct AssociationStatusBuilder {
         164  +
    pub(crate) date: ::std::option::Option<::aws_smithy_types::DateTime>,
         165  +
    pub(crate) name: ::std::option::Option<crate::types::AssociationStatusName>,
         166  +
    pub(crate) message: ::std::option::Option<::std::string::String>,
         167  +
    pub(crate) additional_info: ::std::option::Option<::std::string::String>,
         168  +
}
         169  +
impl AssociationStatusBuilder {
         170  +
    /// <p>The date when the status changed.</p>
         171  +
    /// This field is required.
         172  +
    pub fn date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         173  +
        self.date = ::std::option::Option::Some(input);
         174  +
        self
         175  +
    }
         176  +
    /// <p>The date when the status changed.</p>
         177  +
    pub fn set_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         178  +
        self.date = input;
         179  +
        self
         180  +
    }
         181  +
    /// <p>The date when the status changed.</p>
         182  +
    pub fn get_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         183  +
        &self.date
         184  +
    }
         185  +
    /// <p>The status.</p>
         186  +
    /// This field is required.
         187  +
    pub fn name(mut self, input: crate::types::AssociationStatusName) -> Self {
         188  +
        self.name = ::std::option::Option::Some(input);
         189  +
        self
         190  +
    }
         191  +
    /// <p>The status.</p>
         192  +
    pub fn set_name(mut self, input: ::std::option::Option<crate::types::AssociationStatusName>) -> Self {
         193  +
        self.name = input;
         194  +
        self
         195  +
    }
         196  +
    /// <p>The status.</p>
         197  +
    pub fn get_name(&self) -> &::std::option::Option<crate::types::AssociationStatusName> {
         198  +
        &self.name
         199  +
    }
         200  +
    /// <p>The reason for the status.</p>
         201  +
    /// This field is required.
         202  +
    pub fn message(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         203  +
        self.message = ::std::option::Option::Some(input.into());
         204  +
        self
         205  +
    }
         206  +
    /// <p>The reason for the status.</p>
         207  +
    pub fn set_message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         208  +
        self.message = input;
         209  +
        self
         210  +
    }
         211  +
    /// <p>The reason for the status.</p>
         212  +
    pub fn get_message(&self) -> &::std::option::Option<::std::string::String> {
         213  +
        &self.message
         214  +
    }
         215  +
    /// <p>A user-defined string.</p>
         216  +
    pub fn additional_info(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         217  +
        self.additional_info = ::std::option::Option::Some(input.into());
         218  +
        self
         219  +
    }
         220  +
    /// <p>A user-defined string.</p>
         221  +
    pub fn set_additional_info(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         222  +
        self.additional_info = input;
         223  +
        self
         224  +
    }
         225  +
    /// <p>A user-defined string.</p>
         226  +
    pub fn get_additional_info(&self) -> &::std::option::Option<::std::string::String> {
         227  +
        &self.additional_info
         228  +
    }
         229  +
    /// Consumes the builder and constructs a [`AssociationStatus`](crate::types::AssociationStatus).
         230  +
    /// This method will fail if any of the following fields are not set:
         231  +
    /// - [`date`](crate::types::builders::AssociationStatusBuilder::date)
         232  +
    /// - [`name`](crate::types::builders::AssociationStatusBuilder::name)
         233  +
    /// - [`message`](crate::types::builders::AssociationStatusBuilder::message)
         234  +
    pub fn build(self) -> ::std::result::Result<crate::types::AssociationStatus, ::aws_smithy_types::error::operation::BuildError> {
         235  +
        ::std::result::Result::Ok(crate::types::AssociationStatus {
         236  +
            date: self.date.ok_or_else(|| {
         237  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
         238  +
                    "date",
         239  +
                    "date was not specified but it is required when building AssociationStatus",
         240  +
                )
         241  +
            })?,
         242  +
            name: self.name.ok_or_else(|| {
         243  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
         244  +
                    "name",
         245  +
                    "name was not specified but it is required when building AssociationStatus",
         246  +
                )
         247  +
            })?,
         248  +
            message: self.message.ok_or_else(|| {
         249  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
         250  +
                    "message",
         251  +
                    "message was not specified but it is required when building AssociationStatus",
         252  +
                )
         253  +
            })?,
         254  +
            additional_info: self.additional_info,
         255  +
        })
         256  +
    }
         257  +
}

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

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

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

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

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

@@ -0,1 +0,1301 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>Information about the association version.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
           6  +
pub struct AssociationVersionInfo {
           7  +
    /// <p>The ID created by the system when the association was created.</p>
           8  +
    pub association_id: ::std::option::Option<::std::string::String>,
           9  +
    /// <p>The association version.</p>
          10  +
    pub association_version: ::std::option::Option<::std::string::String>,
          11  +
    /// <p>The date the association version was created.</p>
          12  +
    pub created_date: ::std::option::Option<::aws_smithy_types::DateTime>,
          13  +
    /// <p>The name specified when the association was created.</p>
          14  +
    pub name: ::std::option::Option<::std::string::String>,
          15  +
    /// <p>The version of an Amazon Web Services Systems Manager document (SSM document) used when the association version was created.</p>
          16  +
    pub document_version: ::std::option::Option<::std::string::String>,
          17  +
    /// <p>Parameters specified when the association version was created.</p>
          18  +
    pub parameters: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
          19  +
    /// <p>The targets specified for the association when the association version was created.</p>
          20  +
    pub targets: ::std::option::Option<::std::vec::Vec<crate::types::Target>>,
          21  +
    /// <p>The cron or rate schedule specified for the association when the association version was created.</p>
          22  +
    pub schedule_expression: ::std::option::Option<::std::string::String>,
          23  +
    /// <p>The location in Amazon S3 specified for the association when the association version was created.</p>
          24  +
    pub output_location: ::std::option::Option<crate::types::InstanceAssociationOutputLocation>,
          25  +
    /// <p>The name specified for the association version when the association version was created.</p>
          26  +
    pub association_name: ::std::option::Option<::std::string::String>,
          27  +
    /// <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>
          28  +
    /// <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>
          29  +
    pub max_errors: ::std::option::Option<::std::string::String>,
          30  +
    /// <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>
          31  +
    /// <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>
          32  +
    pub max_concurrency: ::std::option::Option<::std::string::String>,
          33  +
    /// <p>The severity level that is assigned to the association.</p>
          34  +
    pub compliance_severity: ::std::option::Option<crate::types::AssociationComplianceSeverity>,
          35  +
    /// <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>
          36  +
    /// <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>
          37  +
    /// <p>By default, all associations use <code>AUTO</code> mode.</p>
          38  +
    pub sync_compliance: ::std::option::Option<crate::types::AssociationSyncCompliance>,
          39  +
    /// <p>By default, when you create 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>
          40  +
    pub apply_only_at_cron_interval: bool,
          41  +
    /// <p>The names or Amazon Resource Names (ARNs) of the Change Calendar type documents your associations are gated under. The associations for this version only run when that Change Calendar is open. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">Amazon Web Services Systems Manager Change Calendar</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
          42  +
    pub calendar_names: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
          43  +
    /// <p>The combination of Amazon Web Services Regions and Amazon Web Services accounts where you wanted to run the association when this association version was created.</p>
          44  +
    pub target_locations: ::std::option::Option<::std::vec::Vec<crate::types::TargetLocation>>,
          45  +
    /// <p>Number of days to wait after the scheduled day to run an association.</p>
          46  +
    pub schedule_offset: ::std::option::Option<i32>,
          47  +
    /// <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>
          48  +
    pub duration: ::std::option::Option<i32>,
          49  +
    /// <p>A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together.</p>
          50  +
    pub target_maps:
          51  +
        ::std::option::Option<::std::vec::Vec<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>>,
          52  +
    /// <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>
          53  +
    pub association_dispatch_assume_role: ::std::option::Option<::std::string::String>,
          54  +
}
          55  +
impl AssociationVersionInfo {
          56  +
    /// <p>The ID created by the system when the association was created.</p>
          57  +
    pub fn association_id(&self) -> ::std::option::Option<&str> {
          58  +
        self.association_id.as_deref()
          59  +
    }
          60  +
    /// <p>The association version.</p>
          61  +
    pub fn association_version(&self) -> ::std::option::Option<&str> {
          62  +
        self.association_version.as_deref()
          63  +
    }
          64  +
    /// <p>The date the association version was created.</p>
          65  +
    pub fn created_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
          66  +
        self.created_date.as_ref()
          67  +
    }
          68  +
    /// <p>The name specified when the association was created.</p>
          69  +
    pub fn name(&self) -> ::std::option::Option<&str> {
          70  +
        self.name.as_deref()
          71  +
    }
          72  +
    /// <p>The version of an Amazon Web Services Systems Manager document (SSM document) used when the association version was created.</p>
          73  +
    pub fn document_version(&self) -> ::std::option::Option<&str> {
          74  +
        self.document_version.as_deref()
          75  +
    }
          76  +
    /// <p>Parameters specified when the association version was created.</p>
          77  +
    pub fn parameters(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
          78  +
        self.parameters.as_ref()
          79  +
    }
          80  +
    /// <p>The targets specified for the association when the association version was created.</p>
          81  +
    ///
          82  +
    /// 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()`.
          83  +
    pub fn targets(&self) -> &[crate::types::Target] {
          84  +
        self.targets.as_deref().unwrap_or_default()
          85  +
    }
          86  +
    /// <p>The cron or rate schedule specified for the association when the association version was created.</p>
          87  +
    pub fn schedule_expression(&self) -> ::std::option::Option<&str> {
          88  +
        self.schedule_expression.as_deref()
          89  +
    }
          90  +
    /// <p>The location in Amazon S3 specified for the association when the association version was created.</p>
          91  +
    pub fn output_location(&self) -> ::std::option::Option<&crate::types::InstanceAssociationOutputLocation> {
          92  +
        self.output_location.as_ref()
          93  +
    }
          94  +
    /// <p>The name specified for the association version when the association version was created.</p>
          95  +
    pub fn association_name(&self) -> ::std::option::Option<&str> {
          96  +
        self.association_name.as_deref()
          97  +
    }
          98  +
    /// <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>
          99  +
    /// <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>
         100  +
    pub fn max_errors(&self) -> ::std::option::Option<&str> {
         101  +
        self.max_errors.as_deref()
         102  +
    }
         103  +
    /// <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>
         104  +
    /// <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>
         105  +
    pub fn max_concurrency(&self) -> ::std::option::Option<&str> {
         106  +
        self.max_concurrency.as_deref()
         107  +
    }
         108  +
    /// <p>The severity level that is assigned to the association.</p>
         109  +
    pub fn compliance_severity(&self) -> ::std::option::Option<&crate::types::AssociationComplianceSeverity> {
         110  +
        self.compliance_severity.as_ref()
         111  +
    }
         112  +
    /// <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>
         113  +
    /// <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>
         114  +
    /// <p>By default, all associations use <code>AUTO</code> mode.</p>
         115  +
    pub fn sync_compliance(&self) -> ::std::option::Option<&crate::types::AssociationSyncCompliance> {
         116  +
        self.sync_compliance.as_ref()
         117  +
    }
         118  +
    /// <p>By default, when you create 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>
         119  +
    pub fn apply_only_at_cron_interval(&self) -> bool {
         120  +
        self.apply_only_at_cron_interval
         121  +
    }
         122  +
    /// <p>The names or Amazon Resource Names (ARNs) of the Change Calendar type documents your associations are gated under. The associations for this version only run when that Change Calendar is open. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">Amazon Web Services Systems Manager Change Calendar</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         123  +
    ///
         124  +
    /// 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()`.
         125  +
    pub fn calendar_names(&self) -> &[::std::string::String] {
         126  +
        self.calendar_names.as_deref().unwrap_or_default()
         127  +
    }
         128  +
    /// <p>The combination of Amazon Web Services Regions and Amazon Web Services accounts where you wanted to run the association when this association version was created.</p>
         129  +
    ///
         130  +
    /// 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()`.
         131  +
    pub fn target_locations(&self) -> &[crate::types::TargetLocation] {
         132  +
        self.target_locations.as_deref().unwrap_or_default()
         133  +
    }
         134  +
    /// <p>Number of days to wait after the scheduled day to run an association.</p>
         135  +
    pub fn schedule_offset(&self) -> ::std::option::Option<i32> {
         136  +
        self.schedule_offset
         137  +
    }
         138  +
    /// <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>
         139  +
    pub fn duration(&self) -> ::std::option::Option<i32> {
         140  +
        self.duration
         141  +
    }
         142  +
    /// <p>A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together.</p>
         143  +
    ///
         144  +
    /// 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()`.
         145  +
    pub fn target_maps(&self) -> &[::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>] {
         146  +
        self.target_maps.as_deref().unwrap_or_default()
         147  +
    }
         148  +
    /// <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>
         149  +
    pub fn association_dispatch_assume_role(&self) -> ::std::option::Option<&str> {
         150  +
        self.association_dispatch_assume_role.as_deref()
         151  +
    }
         152  +
}
         153  +
impl ::std::fmt::Debug for AssociationVersionInfo {
         154  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         155  +
        let mut formatter = f.debug_struct("AssociationVersionInfo");
         156  +
        formatter.field("association_id", &self.association_id);
         157  +
        formatter.field("association_version", &self.association_version);
         158  +
        formatter.field("created_date", &self.created_date);
         159  +
        formatter.field("name", &self.name);
         160  +
        formatter.field("document_version", &self.document_version);
         161  +
        formatter.field("parameters", &"*** Sensitive Data Redacted ***");
         162  +
        formatter.field("targets", &self.targets);
         163  +
        formatter.field("schedule_expression", &self.schedule_expression);
         164  +
        formatter.field("output_location", &self.output_location);
         165  +
        formatter.field("association_name", &self.association_name);
         166  +
        formatter.field("max_errors", &self.max_errors);
         167  +
        formatter.field("max_concurrency", &self.max_concurrency);
         168  +
        formatter.field("compliance_severity", &self.compliance_severity);
         169  +
        formatter.field("sync_compliance", &self.sync_compliance);
         170  +
        formatter.field("apply_only_at_cron_interval", &self.apply_only_at_cron_interval);
         171  +
        formatter.field("calendar_names", &self.calendar_names);
         172  +
        formatter.field("target_locations", &self.target_locations);
         173  +
        formatter.field("schedule_offset", &self.schedule_offset);
         174  +
        formatter.field("duration", &self.duration);
         175  +
        formatter.field("target_maps", &self.target_maps);
         176  +
        formatter.field("association_dispatch_assume_role", &self.association_dispatch_assume_role);
         177  +
        formatter.finish()
         178  +
    }
         179  +
}
         180  +
static ASSOCIATIONVERSIONINFO_MEMBER_ASSOCIATION_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         181  +
    ::aws_smithy_schema::ShapeId::from_parts(
         182  +
        "com.amazonaws.ssm#AssociationVersionInfo$AssociationId",
         183  +
        "com.amazonaws.ssm",
         184  +
        "AssociationVersionInfo",
         185  +
    ),
         186  +
    ::aws_smithy_schema::ShapeType::String,
         187  +
    "AssociationId",
         188  +
    0,
         189  +
);
         190  +
static ASSOCIATIONVERSIONINFO_MEMBER_ASSOCIATION_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         191  +
    ::aws_smithy_schema::ShapeId::from_parts(
         192  +
        "com.amazonaws.ssm#AssociationVersionInfo$AssociationVersion",
         193  +
        "com.amazonaws.ssm",
         194  +
        "AssociationVersionInfo",
         195  +
    ),
         196  +
    ::aws_smithy_schema::ShapeType::String,
         197  +
    "AssociationVersion",
         198  +
    1,
         199  +
);
         200  +
static ASSOCIATIONVERSIONINFO_MEMBER_CREATED_DATE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         201  +
    ::aws_smithy_schema::ShapeId::from_parts(
         202  +
        "com.amazonaws.ssm#AssociationVersionInfo$CreatedDate",
         203  +
        "com.amazonaws.ssm",
         204  +
        "AssociationVersionInfo",
         205  +
    ),
         206  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         207  +
    "CreatedDate",
         208  +
    2,
         209  +
);
         210  +
static ASSOCIATIONVERSIONINFO_MEMBER_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         211  +
    ::aws_smithy_schema::ShapeId::from_parts(
         212  +
        "com.amazonaws.ssm#AssociationVersionInfo$Name",
         213  +
        "com.amazonaws.ssm",
         214  +
        "AssociationVersionInfo",
         215  +
    ),
         216  +
    ::aws_smithy_schema::ShapeType::String,
         217  +
    "Name",
         218  +
    3,
         219  +
);
         220  +
static ASSOCIATIONVERSIONINFO_MEMBER_DOCUMENT_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         221  +
    ::aws_smithy_schema::ShapeId::from_parts(
         222  +
        "com.amazonaws.ssm#AssociationVersionInfo$DocumentVersion",
         223  +
        "com.amazonaws.ssm",
         224  +
        "AssociationVersionInfo",
         225  +
    ),
         226  +
    ::aws_smithy_schema::ShapeType::String,
         227  +
    "DocumentVersion",
         228  +
    4,
         229  +
);
         230  +
static ASSOCIATIONVERSIONINFO_MEMBER_PARAMETERS_VALUE_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         231  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#ParameterValueList$member", "com.amazonaws.ssm", "ParameterValueList"),
         232  +
    ::aws_smithy_schema::ShapeType::String,
         233  +
    "member",
         234  +
    0,
         235  +
);
         236  +
static ASSOCIATIONVERSIONINFO_MEMBER_PARAMETERS_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         237  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Parameters$key", "com.amazonaws.ssm", "Parameters"),
         238  +
    ::aws_smithy_schema::ShapeType::String,
         239  +
    "key",
         240  +
    0,
         241  +
);
         242  +
static ASSOCIATIONVERSIONINFO_MEMBER_PARAMETERS_VALUE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         243  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Parameters$value", "com.amazonaws.ssm", "Parameters"),
         244  +
    ::aws_smithy_schema::ShapeType::List,
         245  +
    "value",
         246  +
    1,
         247  +
)
         248  +
.with_list_member(&ASSOCIATIONVERSIONINFO_MEMBER_PARAMETERS_VALUE_MEMBER);
         249  +
static ASSOCIATIONVERSIONINFO_MEMBER_PARAMETERS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         250  +
    ::aws_smithy_schema::ShapeId::from_parts(
         251  +
        "com.amazonaws.ssm#AssociationVersionInfo$Parameters",
         252  +
        "com.amazonaws.ssm",
         253  +
        "AssociationVersionInfo",
         254  +
    ),
         255  +
    ::aws_smithy_schema::ShapeType::Map,
         256  +
    "Parameters",
         257  +
    5,
         258  +
)
         259  +
.with_map_members(
         260  +
    &ASSOCIATIONVERSIONINFO_MEMBER_PARAMETERS_KEY,
         261  +
    &ASSOCIATIONVERSIONINFO_MEMBER_PARAMETERS_VALUE,
         262  +
);
         263  +
static ASSOCIATIONVERSIONINFO_MEMBER_TARGETS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         264  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Targets$member", "com.amazonaws.ssm", "Targets"),
         265  +
    ::aws_smithy_schema::ShapeType::Structure,
         266  +
    "member",
         267  +
    0,
         268  +
);
         269  +
static ASSOCIATIONVERSIONINFO_MEMBER_TARGETS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         270  +
    ::aws_smithy_schema::ShapeId::from_parts(
         271  +
        "com.amazonaws.ssm#AssociationVersionInfo$Targets",
         272  +
        "com.amazonaws.ssm",
         273  +
        "AssociationVersionInfo",
         274  +
    ),
         275  +
    ::aws_smithy_schema::ShapeType::List,
         276  +
    "Targets",
         277  +
    6,
         278  +
)
         279  +
.with_list_member(&ASSOCIATIONVERSIONINFO_MEMBER_TARGETS_MEMBER);
         280  +
static ASSOCIATIONVERSIONINFO_MEMBER_SCHEDULE_EXPRESSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         281  +
    ::aws_smithy_schema::ShapeId::from_parts(
         282  +
        "com.amazonaws.ssm#AssociationVersionInfo$ScheduleExpression",
         283  +
        "com.amazonaws.ssm",
         284  +
        "AssociationVersionInfo",
         285  +
    ),
         286  +
    ::aws_smithy_schema::ShapeType::String,
         287  +
    "ScheduleExpression",
         288  +
    7,
         289  +
);
         290  +
static ASSOCIATIONVERSIONINFO_MEMBER_OUTPUT_LOCATION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         291  +
    ::aws_smithy_schema::ShapeId::from_parts(
         292  +
        "com.amazonaws.ssm#AssociationVersionInfo$OutputLocation",
         293  +
        "com.amazonaws.ssm",
         294  +
        "AssociationVersionInfo",
         295  +
    ),
         296  +
    ::aws_smithy_schema::ShapeType::Structure,
         297  +
    "OutputLocation",
         298  +
    8,
         299  +
);
         300  +
static ASSOCIATIONVERSIONINFO_MEMBER_ASSOCIATION_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         301  +
    ::aws_smithy_schema::ShapeId::from_parts(
         302  +
        "com.amazonaws.ssm#AssociationVersionInfo$AssociationName",
         303  +
        "com.amazonaws.ssm",
         304  +
        "AssociationVersionInfo",
         305  +
    ),
         306  +
    ::aws_smithy_schema::ShapeType::String,
         307  +
    "AssociationName",
         308  +
    9,
         309  +
);
         310  +
static ASSOCIATIONVERSIONINFO_MEMBER_MAX_ERRORS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         311  +
    ::aws_smithy_schema::ShapeId::from_parts(
         312  +
        "com.amazonaws.ssm#AssociationVersionInfo$MaxErrors",
         313  +
        "com.amazonaws.ssm",
         314  +
        "AssociationVersionInfo",
         315  +
    ),
         316  +
    ::aws_smithy_schema::ShapeType::String,
         317  +
    "MaxErrors",
         318  +
    10,
         319  +
);
         320  +
static ASSOCIATIONVERSIONINFO_MEMBER_MAX_CONCURRENCY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         321  +
    ::aws_smithy_schema::ShapeId::from_parts(
         322  +
        "com.amazonaws.ssm#AssociationVersionInfo$MaxConcurrency",
         323  +
        "com.amazonaws.ssm",
         324  +
        "AssociationVersionInfo",
         325  +
    ),
         326  +
    ::aws_smithy_schema::ShapeType::String,
         327  +
    "MaxConcurrency",
         328  +
    11,
         329  +
);
         330  +
static ASSOCIATIONVERSIONINFO_MEMBER_COMPLIANCE_SEVERITY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         331  +
    ::aws_smithy_schema::ShapeId::from_parts(
         332  +
        "com.amazonaws.ssm#AssociationVersionInfo$ComplianceSeverity",
         333  +
        "com.amazonaws.ssm",
         334  +
        "AssociationVersionInfo",
         335  +
    ),
         336  +
    ::aws_smithy_schema::ShapeType::String,
         337  +
    "ComplianceSeverity",
         338  +
    12,
         339  +
);
         340  +
static ASSOCIATIONVERSIONINFO_MEMBER_SYNC_COMPLIANCE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         341  +
    ::aws_smithy_schema::ShapeId::from_parts(
         342  +
        "com.amazonaws.ssm#AssociationVersionInfo$SyncCompliance",
         343  +
        "com.amazonaws.ssm",
         344  +
        "AssociationVersionInfo",
         345  +
    ),
         346  +
    ::aws_smithy_schema::ShapeType::String,
         347  +
    "SyncCompliance",
         348  +
    13,
         349  +
);
         350  +
static ASSOCIATIONVERSIONINFO_MEMBER_APPLY_ONLY_AT_CRON_INTERVAL: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         351  +
    ::aws_smithy_schema::ShapeId::from_parts(
         352  +
        "com.amazonaws.ssm#AssociationVersionInfo$ApplyOnlyAtCronInterval",
         353  +
        "com.amazonaws.ssm",
         354  +
        "AssociationVersionInfo",
         355  +
    ),
         356  +
    ::aws_smithy_schema::ShapeType::Boolean,
         357  +
    "ApplyOnlyAtCronInterval",
         358  +
    14,
         359  +
);
         360  +
static ASSOCIATIONVERSIONINFO_MEMBER_CALENDAR_NAMES_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         361  +
    ::aws_smithy_schema::ShapeId::from_parts(
         362  +
        "com.amazonaws.ssm#CalendarNameOrARNList$member",
         363  +
        "com.amazonaws.ssm",
         364  +
        "CalendarNameOrARNList",
         365  +
    ),
         366  +
    ::aws_smithy_schema::ShapeType::String,
         367  +
    "member",
         368  +
    0,
         369  +
);
         370  +
static ASSOCIATIONVERSIONINFO_MEMBER_CALENDAR_NAMES: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         371  +
    ::aws_smithy_schema::ShapeId::from_parts(
         372  +
        "com.amazonaws.ssm#AssociationVersionInfo$CalendarNames",
         373  +
        "com.amazonaws.ssm",
         374  +
        "AssociationVersionInfo",
         375  +
    ),
         376  +
    ::aws_smithy_schema::ShapeType::List,
         377  +
    "CalendarNames",
         378  +
    15,
         379  +
)
         380  +
.with_list_member(&ASSOCIATIONVERSIONINFO_MEMBER_CALENDAR_NAMES_MEMBER);
         381  +
static ASSOCIATIONVERSIONINFO_MEMBER_TARGET_LOCATIONS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         382  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#TargetLocations$member", "com.amazonaws.ssm", "TargetLocations"),
         383  +
    ::aws_smithy_schema::ShapeType::Structure,
         384  +
    "member",
         385  +
    0,
         386  +
);
         387  +
static ASSOCIATIONVERSIONINFO_MEMBER_TARGET_LOCATIONS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         388  +
    ::aws_smithy_schema::ShapeId::from_parts(
         389  +
        "com.amazonaws.ssm#AssociationVersionInfo$TargetLocations",
         390  +
        "com.amazonaws.ssm",
         391  +
        "AssociationVersionInfo",
         392  +
    ),
         393  +
    ::aws_smithy_schema::ShapeType::List,
         394  +
    "TargetLocations",
         395  +
    16,
         396  +
)
         397  +
.with_list_member(&ASSOCIATIONVERSIONINFO_MEMBER_TARGET_LOCATIONS_MEMBER);
         398  +
static ASSOCIATIONVERSIONINFO_MEMBER_SCHEDULE_OFFSET: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         399  +
    ::aws_smithy_schema::ShapeId::from_parts(
         400  +
        "com.amazonaws.ssm#AssociationVersionInfo$ScheduleOffset",
         401  +
        "com.amazonaws.ssm",
         402  +
        "AssociationVersionInfo",
         403  +
    ),
         404  +
    ::aws_smithy_schema::ShapeType::Integer,
         405  +
    "ScheduleOffset",
         406  +
    17,
         407  +
);
         408  +
static ASSOCIATIONVERSIONINFO_MEMBER_DURATION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         409  +
    ::aws_smithy_schema::ShapeId::from_parts(
         410  +
        "com.amazonaws.ssm#AssociationVersionInfo$Duration",
         411  +
        "com.amazonaws.ssm",
         412  +
        "AssociationVersionInfo",
         413  +
    ),
         414  +
    ::aws_smithy_schema::ShapeType::Integer,
         415  +
    "Duration",
         416  +
    18,
         417  +
);
         418  +
static ASSOCIATIONVERSIONINFO_MEMBER_TARGET_MAPS_MEMBER_VALUE_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         419  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#TargetMapValueList$member", "com.amazonaws.ssm", "TargetMapValueList"),
         420  +
    ::aws_smithy_schema::ShapeType::String,
         421  +
    "member",
         422  +
    0,
         423  +
);
         424  +
static ASSOCIATIONVERSIONINFO_MEMBER_TARGET_MAPS_MEMBER_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         425  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#TargetMap$key", "com.amazonaws.ssm", "TargetMap"),
         426  +
    ::aws_smithy_schema::ShapeType::String,
         427  +
    "key",
         428  +
    0,
         429  +
);
         430  +
static ASSOCIATIONVERSIONINFO_MEMBER_TARGET_MAPS_MEMBER_VALUE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         431  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#TargetMap$value", "com.amazonaws.ssm", "TargetMap"),
         432  +
    ::aws_smithy_schema::ShapeType::List,
         433  +
    "value",
         434  +
    1,
         435  +
)
         436  +
.with_list_member(&ASSOCIATIONVERSIONINFO_MEMBER_TARGET_MAPS_MEMBER_VALUE_MEMBER);
         437  +
static ASSOCIATIONVERSIONINFO_MEMBER_TARGET_MAPS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         438  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#TargetMaps$member", "com.amazonaws.ssm", "TargetMaps"),
         439  +
    ::aws_smithy_schema::ShapeType::Map,
         440  +
    "member",
         441  +
    0,
         442  +
)
         443  +
.with_map_members(
         444  +
    &ASSOCIATIONVERSIONINFO_MEMBER_TARGET_MAPS_MEMBER_KEY,
         445  +
    &ASSOCIATIONVERSIONINFO_MEMBER_TARGET_MAPS_MEMBER_VALUE,
         446  +
);
         447  +
static ASSOCIATIONVERSIONINFO_MEMBER_TARGET_MAPS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         448  +
    ::aws_smithy_schema::ShapeId::from_parts(
         449  +
        "com.amazonaws.ssm#AssociationVersionInfo$TargetMaps",
         450  +
        "com.amazonaws.ssm",
         451  +
        "AssociationVersionInfo",
         452  +
    ),
         453  +
    ::aws_smithy_schema::ShapeType::List,
         454  +
    "TargetMaps",
         455  +
    19,
         456  +
)
         457  +
.with_list_member(&ASSOCIATIONVERSIONINFO_MEMBER_TARGET_MAPS_MEMBER);
         458  +
static ASSOCIATIONVERSIONINFO_MEMBER_ASSOCIATION_DISPATCH_ASSUME_ROLE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         459  +
    ::aws_smithy_schema::ShapeId::from_parts(
         460  +
        "com.amazonaws.ssm#AssociationVersionInfo$AssociationDispatchAssumeRole",
         461  +
        "com.amazonaws.ssm",
         462  +
        "AssociationVersionInfo",
         463  +
    ),
         464  +
    ::aws_smithy_schema::ShapeType::String,
         465  +
    "AssociationDispatchAssumeRole",
         466  +
    20,
         467  +
);
         468  +
static ASSOCIATIONVERSIONINFO_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
         469  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#AssociationVersionInfo", "com.amazonaws.ssm", "AssociationVersionInfo"),
         470  +
    ::aws_smithy_schema::ShapeType::Structure,
         471  +
    &[
         472  +
        &ASSOCIATIONVERSIONINFO_MEMBER_ASSOCIATION_ID,
         473  +
        &ASSOCIATIONVERSIONINFO_MEMBER_ASSOCIATION_VERSION,
         474  +
        &ASSOCIATIONVERSIONINFO_MEMBER_CREATED_DATE,
         475  +
        &ASSOCIATIONVERSIONINFO_MEMBER_NAME,
         476  +
        &ASSOCIATIONVERSIONINFO_MEMBER_DOCUMENT_VERSION,
         477  +
        &ASSOCIATIONVERSIONINFO_MEMBER_PARAMETERS,
         478  +
        &ASSOCIATIONVERSIONINFO_MEMBER_TARGETS,
         479  +
        &ASSOCIATIONVERSIONINFO_MEMBER_SCHEDULE_EXPRESSION,
         480  +
        &ASSOCIATIONVERSIONINFO_MEMBER_OUTPUT_LOCATION,
         481  +
        &ASSOCIATIONVERSIONINFO_MEMBER_ASSOCIATION_NAME,
         482  +
        &ASSOCIATIONVERSIONINFO_MEMBER_MAX_ERRORS,
         483  +
        &ASSOCIATIONVERSIONINFO_MEMBER_MAX_CONCURRENCY,
         484  +
        &ASSOCIATIONVERSIONINFO_MEMBER_COMPLIANCE_SEVERITY,
         485  +
        &ASSOCIATIONVERSIONINFO_MEMBER_SYNC_COMPLIANCE,
         486  +
        &ASSOCIATIONVERSIONINFO_MEMBER_APPLY_ONLY_AT_CRON_INTERVAL,
         487  +
        &ASSOCIATIONVERSIONINFO_MEMBER_CALENDAR_NAMES,
         488  +
        &ASSOCIATIONVERSIONINFO_MEMBER_TARGET_LOCATIONS,
         489  +
        &ASSOCIATIONVERSIONINFO_MEMBER_SCHEDULE_OFFSET,
         490  +
        &ASSOCIATIONVERSIONINFO_MEMBER_DURATION,
         491  +
        &ASSOCIATIONVERSIONINFO_MEMBER_TARGET_MAPS,
         492  +
        &ASSOCIATIONVERSIONINFO_MEMBER_ASSOCIATION_DISPATCH_ASSUME_ROLE,
         493  +
    ],
         494  +
);
         495  +
impl AssociationVersionInfo {
         496  +
    /// The schema for this shape.
         497  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &ASSOCIATIONVERSIONINFO_SCHEMA;
         498  +
}
         499  +
impl ::aws_smithy_schema::serde::SerializableStruct for AssociationVersionInfo {
         500  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         501  +
    fn serialize_members(
         502  +
        &self,
         503  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         504  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         505  +
        if let Some(ref val) = self.association_id {
         506  +
            ser.write_string(&ASSOCIATIONVERSIONINFO_MEMBER_ASSOCIATION_ID, val)?;
         507  +
        }
         508  +
        if let Some(ref val) = self.association_version {
         509  +
            ser.write_string(&ASSOCIATIONVERSIONINFO_MEMBER_ASSOCIATION_VERSION, val)?;
         510  +
        }
         511  +
        if let Some(ref val) = self.created_date {
         512  +
            ser.write_timestamp(&ASSOCIATIONVERSIONINFO_MEMBER_CREATED_DATE, val)?;
         513  +
        }
         514  +
        if let Some(ref val) = self.name {
         515  +
            ser.write_string(&ASSOCIATIONVERSIONINFO_MEMBER_NAME, val)?;
         516  +
        }
         517  +
        if let Some(ref val) = self.document_version {
         518  +
            ser.write_string(&ASSOCIATIONVERSIONINFO_MEMBER_DOCUMENT_VERSION, val)?;
         519  +
        }
         520  +
        if let Some(ref val) = self.parameters {
         521  +
            ser.write_map(
         522  +
                &ASSOCIATIONVERSIONINFO_MEMBER_PARAMETERS,
         523  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         524  +
                    for (key, value) in val {
         525  +
                        ser.write_string(&::aws_smithy_schema::prelude::STRING, key)?;
         526  +
         527  +
                        ser.write_list(
         528  +
                            &ASSOCIATIONVERSIONINFO_MEMBER_PARAMETERS_VALUE,
         529  +
                            &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         530  +
                                for item in value {
         531  +
                                    ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
         532  +
                                }
         533  +
                                Ok(())
         534  +
                            },
         535  +
                        )?;
         536  +
                    }
         537  +
                    Ok(())
         538  +
                },
         539  +
            )?;
         540  +
        }
         541  +
        if let Some(ref val) = self.targets {
         542  +
            ser.write_list(
         543  +
                &ASSOCIATIONVERSIONINFO_MEMBER_TARGETS,
         544  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         545  +
                    for item in val {
         546  +
                        ser.write_struct(crate::types::Target::SCHEMA, item)?;
         547  +
                    }
         548  +
                    Ok(())
         549  +
                },
         550  +
            )?;
         551  +
        }
         552  +
        if let Some(ref val) = self.schedule_expression {
         553  +
            ser.write_string(&ASSOCIATIONVERSIONINFO_MEMBER_SCHEDULE_EXPRESSION, val)?;
         554  +
        }
         555  +
        if let Some(ref val) = self.output_location {
         556  +
            ser.write_struct(&ASSOCIATIONVERSIONINFO_MEMBER_OUTPUT_LOCATION, val)?;
         557  +
        }
         558  +
        if let Some(ref val) = self.association_name {
         559  +
            ser.write_string(&ASSOCIATIONVERSIONINFO_MEMBER_ASSOCIATION_NAME, val)?;
         560  +
        }
         561  +
        if let Some(ref val) = self.max_errors {
         562  +
            ser.write_string(&ASSOCIATIONVERSIONINFO_MEMBER_MAX_ERRORS, val)?;
         563  +
        }
         564  +
        if let Some(ref val) = self.max_concurrency {
         565  +
            ser.write_string(&ASSOCIATIONVERSIONINFO_MEMBER_MAX_CONCURRENCY, val)?;
         566  +
        }
         567  +
        if let Some(ref val) = self.compliance_severity {
         568  +
            ser.write_string(&ASSOCIATIONVERSIONINFO_MEMBER_COMPLIANCE_SEVERITY, val.as_str())?;
         569  +
        }
         570  +
        if let Some(ref val) = self.sync_compliance {
         571  +
            ser.write_string(&ASSOCIATIONVERSIONINFO_MEMBER_SYNC_COMPLIANCE, val.as_str())?;
         572  +
        }
         573  +
        {
         574  +
            let val = &self.apply_only_at_cron_interval;
         575  +
            ser.write_boolean(&ASSOCIATIONVERSIONINFO_MEMBER_APPLY_ONLY_AT_CRON_INTERVAL, *val)?;
         576  +
        }
         577  +
        if let Some(ref val) = self.calendar_names {
         578  +
            ser.write_list(
         579  +
                &ASSOCIATIONVERSIONINFO_MEMBER_CALENDAR_NAMES,
         580  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         581  +
                    for item in val {
         582  +
                        ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
         583  +
                    }
         584  +
                    Ok(())
         585  +
                },
         586  +
            )?;
         587  +
        }
         588  +
        if let Some(ref val) = self.target_locations {
         589  +
            ser.write_list(
         590  +
                &ASSOCIATIONVERSIONINFO_MEMBER_TARGET_LOCATIONS,
         591  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         592  +
                    for item in val {
         593  +
                        ser.write_struct(crate::types::TargetLocation::SCHEMA, item)?;
         594  +
                    }
         595  +
                    Ok(())
         596  +
                },
         597  +
            )?;
         598  +
        }
         599  +
        if let Some(ref val) = self.schedule_offset {
         600  +
            ser.write_integer(&ASSOCIATIONVERSIONINFO_MEMBER_SCHEDULE_OFFSET, *val)?;
         601  +
        }
         602  +
        if let Some(ref val) = self.duration {
         603  +
            ser.write_integer(&ASSOCIATIONVERSIONINFO_MEMBER_DURATION, *val)?;
         604  +
        }
         605  +
        if let Some(ref val) = self.target_maps {
         606  +
            ser.write_list(
         607  +
                &ASSOCIATIONVERSIONINFO_MEMBER_TARGET_MAPS,
         608  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         609  +
                    for item in val {
         610  +
                        ser.write_map(
         611  +
                            &ASSOCIATIONVERSIONINFO_MEMBER_TARGET_MAPS_MEMBER,
         612  +
                            &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         613  +
                                for (key, value) in item {
         614  +
                                    ser.write_string(&::aws_smithy_schema::prelude::STRING, key)?;
         615  +
         616  +
                                    ser.write_list(
         617  +
                                        &ASSOCIATIONVERSIONINFO_MEMBER_TARGET_MAPS_MEMBER_VALUE,
         618  +
                                        &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         619  +
                                            for item in value {
         620  +
                                                ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
         621  +
                                            }
         622  +
                                            Ok(())
         623  +
                                        },
         624  +
                                    )?;
         625  +
                                }
         626  +
                                Ok(())
         627  +
                            },
         628  +
                        )?;
         629  +
                    }
         630  +
                    Ok(())
         631  +
                },
         632  +
            )?;
         633  +
        }
         634  +
        if let Some(ref val) = self.association_dispatch_assume_role {
         635  +
            ser.write_string(&ASSOCIATIONVERSIONINFO_MEMBER_ASSOCIATION_DISPATCH_ASSUME_ROLE, val)?;
         636  +
        }
         637  +
        Ok(())
         638  +
    }
         639  +
}
         640  +
impl AssociationVersionInfo {
         641  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         642  +
    pub fn deserialize(
         643  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         644  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         645  +
        #[allow(unused_variables, unused_mut)]
         646  +
        let mut builder = Self::builder();
         647  +
        #[allow(
         648  +
            unused_variables,
         649  +
            unreachable_code,
         650  +
            clippy::single_match,
         651  +
            clippy::match_single_binding,
         652  +
            clippy::diverging_sub_expression
         653  +
        )]
         654  +
        deserializer.read_struct(&ASSOCIATIONVERSIONINFO_SCHEMA, &mut |member, deser| {
         655  +
            match member.member_index() {
         656  +
                Some(0) => {
         657  +
                    if deser.is_null() {
         658  +
                        deser.read_null()?;
         659  +
                    } else {
         660  +
                        builder.association_id = Some(deser.read_string(member)?);
         661  +
                    }
         662  +
                }
         663  +
                Some(1) => {
         664  +
                    if deser.is_null() {
         665  +
                        deser.read_null()?;
         666  +
                    } else {
         667  +
                        builder.association_version = Some(deser.read_string(member)?);
         668  +
                    }
         669  +
                }
         670  +
                Some(2) => {
         671  +
                    if deser.is_null() {
         672  +
                        deser.read_null()?;
         673  +
                    } else {
         674  +
                        builder.created_date = Some(deser.read_timestamp(member)?);
         675  +
                    }
         676  +
                }
         677  +
                Some(3) => {
         678  +
                    if deser.is_null() {
         679  +
                        deser.read_null()?;
         680  +
                    } else {
         681  +
                        builder.name = Some(deser.read_string(member)?);
         682  +
                    }
         683  +
                }
         684  +
                Some(4) => {
         685  +
                    if deser.is_null() {
         686  +
                        deser.read_null()?;
         687  +
                    } else {
         688  +
                        builder.document_version = Some(deser.read_string(member)?);
         689  +
                    }
         690  +
                }
         691  +
                Some(5) => {
         692  +
                    if deser.is_null() {
         693  +
                        deser.read_null()?;
         694  +
                    } else {
         695  +
                        builder.parameters = Some({
         696  +
                            let mut container = std::collections::HashMap::new();
         697  +
                            deser.read_map(member, &mut |key, deser| {
         698  +
                                container.insert(key, {
         699  +
                                    let mut list = Vec::new();
         700  +
                                    deser.read_list(&ASSOCIATIONVERSIONINFO_MEMBER_PARAMETERS_VALUE, &mut |deser| {
         701  +
                                        list.push(deser.read_string(&::aws_smithy_schema::prelude::STRING)?);
         702  +
                                        Ok(())
         703  +
                                    })?;
         704  +
                                    list
         705  +
                                });
         706  +
                                Ok(())
         707  +
                            })?;
         708  +
                            container
         709  +
                        });
         710  +
                    }
         711  +
                }
         712  +
                Some(6) => {
         713  +
                    if deser.is_null() {
         714  +
                        deser.read_null()?;
         715  +
                    } else {
         716  +
                        builder.targets = Some({
         717  +
                            let mut container = Vec::new();
         718  +
                            deser.read_list(member, &mut |deser| {
         719  +
                                container.push(crate::types::Target::deserialize(deser)?);
         720  +
                                Ok(())
         721  +
                            })?;
         722  +
                            container
         723  +
                        });
         724  +
                    }
         725  +
                }
         726  +
                Some(7) => {
         727  +
                    if deser.is_null() {
         728  +
                        deser.read_null()?;
         729  +
                    } else {
         730  +
                        builder.schedule_expression = Some(deser.read_string(member)?);
         731  +
                    }
         732  +
                }
         733  +
                Some(8) => {
         734  +
                    if deser.is_null() {
         735  +
                        deser.read_null()?;
         736  +
                    } else {
         737  +
                        builder.output_location = Some(crate::types::InstanceAssociationOutputLocation::deserialize(deser)?);
         738  +
                    }
         739  +
                }
         740  +
                Some(9) => {
         741  +
                    if deser.is_null() {
         742  +
                        deser.read_null()?;
         743  +
                    } else {
         744  +
                        builder.association_name = Some(deser.read_string(member)?);
         745  +
                    }
         746  +
                }
         747  +
                Some(10) => {
         748  +
                    if deser.is_null() {
         749  +
                        deser.read_null()?;
         750  +
                    } else {
         751  +
                        builder.max_errors = Some(deser.read_string(member)?);
         752  +
                    }
         753  +
                }
         754  +
                Some(11) => {
         755  +
                    if deser.is_null() {
         756  +
                        deser.read_null()?;
         757  +
                    } else {
         758  +
                        builder.max_concurrency = Some(deser.read_string(member)?);
         759  +
                    }
         760  +
                }
         761  +
                Some(12) => {
         762  +
                    if deser.is_null() {
         763  +
                        deser.read_null()?;
         764  +
                    } else {
         765  +
                        builder.compliance_severity = Some(crate::types::AssociationComplianceSeverity::from(deser.read_string(member)?.as_str()));
         766  +
                    }
         767  +
                }
         768  +
                Some(13) => {
         769  +
                    if deser.is_null() {
         770  +
                        deser.read_null()?;
         771  +
                    } else {
         772  +
                        builder.sync_compliance = Some(crate::types::AssociationSyncCompliance::from(deser.read_string(member)?.as_str()));
         773  +
                    }
         774  +
                }
         775  +
                Some(14) => {
         776  +
                    builder.apply_only_at_cron_interval = Some(deser.read_boolean(member)?);
         777  +
                }
         778  +
                Some(15) => {
         779  +
                    if deser.is_null() {
         780  +
                        deser.read_null()?;
         781  +
                    } else {
         782  +
                        builder.calendar_names = Some(deser.read_string_list(member)?);
         783  +
                    }
         784  +
                }
         785  +
                Some(16) => {
         786  +
                    if deser.is_null() {
         787  +
                        deser.read_null()?;
         788  +
                    } else {
         789  +
                        builder.target_locations = Some({
         790  +
                            let mut container = Vec::new();
         791  +
                            deser.read_list(member, &mut |deser| {
         792  +
                                container.push(crate::types::TargetLocation::deserialize(deser)?);
         793  +
                                Ok(())
         794  +
                            })?;
         795  +
                            container
         796  +
                        });
         797  +
                    }
         798  +
                }
         799  +
                Some(17) => {
         800  +
                    if deser.is_null() {
         801  +
                        deser.read_null()?;
         802  +
                    } else {
         803  +
                        builder.schedule_offset = Some(deser.read_integer(member)?);
         804  +
                    }
         805  +
                }
         806  +
                Some(18) => {
         807  +
                    if deser.is_null() {
         808  +
                        deser.read_null()?;
         809  +
                    } else {
         810  +
                        builder.duration = Some(deser.read_integer(member)?);
         811  +
                    }
         812  +
                }
         813  +
                Some(19) => {
         814  +
                    if deser.is_null() {
         815  +
                        deser.read_null()?;
         816  +
                    } else {
         817  +
                        builder.target_maps = Some({
         818  +
                            let mut container = Vec::new();
         819  +
                            deser.read_list(member, &mut |deser| {
         820  +
                                container.push({
         821  +
                                    let mut map = ::std::collections::HashMap::new();
         822  +
                                    deser.read_map(&ASSOCIATIONVERSIONINFO_MEMBER_TARGET_MAPS_MEMBER, &mut |key, deser| {
         823  +
                                        let value = {
         824  +
                                            let mut list = Vec::new();
         825  +
                                            deser.read_list(&ASSOCIATIONVERSIONINFO_MEMBER_TARGET_MAPS_MEMBER_VALUE, &mut |deser| {
         826  +
                                                list.push(deser.read_string(&::aws_smithy_schema::prelude::STRING)?);
         827  +
                                                Ok(())
         828  +
                                            })?;
         829  +
                                            list
         830  +
                                        };
         831  +
                                        map.insert(key, value);
         832  +
                                        Ok(())
         833  +
                                    })?;
         834  +
                                    map
         835  +
                                });
         836  +
                                Ok(())
         837  +
                            })?;
         838  +
                            container
         839  +
                        });
         840  +
                    }
         841  +
                }
         842  +
                Some(20) => {
         843  +
                    if deser.is_null() {
         844  +
                        deser.read_null()?;
         845  +
                    } else {
         846  +
                        builder.association_dispatch_assume_role = Some(deser.read_string(member)?);
         847  +
                    }
         848  +
                }
         849  +
                _ => {}
         850  +
            }
         851  +
            Ok(())
         852  +
        })?;
         853  +
        Ok(builder.build())
         854  +
    }
         855  +
}
         856  +
impl AssociationVersionInfo {
         857  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         858  +
    pub fn deserialize_with_response(
         859  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         860  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         861  +
        _status: u16,
         862  +
        _body: &[u8],
         863  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         864  +
        Self::deserialize(deserializer)
         865  +
    }
         866  +
}
         867  +
impl AssociationVersionInfo {
         868  +
    /// Creates a new builder-style object to manufacture [`AssociationVersionInfo`](crate::types::AssociationVersionInfo).
         869  +
    pub fn builder() -> crate::types::builders::AssociationVersionInfoBuilder {
         870  +
        crate::types::builders::AssociationVersionInfoBuilder::default()
         871  +
    }
         872  +
}
         873  +
         874  +
/// A builder for [`AssociationVersionInfo`](crate::types::AssociationVersionInfo).
         875  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
         876  +
#[non_exhaustive]
         877  +
pub struct AssociationVersionInfoBuilder {
         878  +
    pub(crate) association_id: ::std::option::Option<::std::string::String>,
         879  +
    pub(crate) association_version: ::std::option::Option<::std::string::String>,
         880  +
    pub(crate) created_date: ::std::option::Option<::aws_smithy_types::DateTime>,
         881  +
    pub(crate) name: ::std::option::Option<::std::string::String>,
         882  +
    pub(crate) document_version: ::std::option::Option<::std::string::String>,
         883  +
    pub(crate) parameters: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
         884  +
    pub(crate) targets: ::std::option::Option<::std::vec::Vec<crate::types::Target>>,
         885  +
    pub(crate) schedule_expression: ::std::option::Option<::std::string::String>,
         886  +
    pub(crate) output_location: ::std::option::Option<crate::types::InstanceAssociationOutputLocation>,
         887  +
    pub(crate) association_name: ::std::option::Option<::std::string::String>,
         888  +
    pub(crate) max_errors: ::std::option::Option<::std::string::String>,
         889  +
    pub(crate) max_concurrency: ::std::option::Option<::std::string::String>,
         890  +
    pub(crate) compliance_severity: ::std::option::Option<crate::types::AssociationComplianceSeverity>,
         891  +
    pub(crate) sync_compliance: ::std::option::Option<crate::types::AssociationSyncCompliance>,
         892  +
    pub(crate) apply_only_at_cron_interval: ::std::option::Option<bool>,
         893  +
    pub(crate) calendar_names: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         894  +
    pub(crate) target_locations: ::std::option::Option<::std::vec::Vec<crate::types::TargetLocation>>,
         895  +
    pub(crate) schedule_offset: ::std::option::Option<i32>,
         896  +
    pub(crate) duration: ::std::option::Option<i32>,
         897  +
    pub(crate) target_maps:
         898  +
        ::std::option::Option<::std::vec::Vec<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>>,
         899  +
    pub(crate) association_dispatch_assume_role: ::std::option::Option<::std::string::String>,
         900  +
}
         901  +
impl AssociationVersionInfoBuilder {
         902  +
    /// <p>The ID created by the system when the association was created.</p>
         903  +
    pub fn association_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         904  +
        self.association_id = ::std::option::Option::Some(input.into());
         905  +
        self
         906  +
    }
         907  +
    /// <p>The ID created by the system when the association was created.</p>
         908  +
    pub fn set_association_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         909  +
        self.association_id = input;
         910  +
        self
         911  +
    }
         912  +
    /// <p>The ID created by the system when the association was created.</p>
         913  +
    pub fn get_association_id(&self) -> &::std::option::Option<::std::string::String> {
         914  +
        &self.association_id
         915  +
    }
         916  +
    /// <p>The association version.</p>
         917  +
    pub fn association_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         918  +
        self.association_version = ::std::option::Option::Some(input.into());
         919  +
        self
         920  +
    }
         921  +
    /// <p>The association version.</p>
         922  +
    pub fn set_association_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         923  +
        self.association_version = input;
         924  +
        self
         925  +
    }
         926  +
    /// <p>The association version.</p>
         927  +
    pub fn get_association_version(&self) -> &::std::option::Option<::std::string::String> {
         928  +
        &self.association_version
         929  +
    }
         930  +
    /// <p>The date the association version was created.</p>
         931  +
    pub fn created_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         932  +
        self.created_date = ::std::option::Option::Some(input);
         933  +
        self
         934  +
    }
         935  +
    /// <p>The date the association version was created.</p>
         936  +
    pub fn set_created_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         937  +
        self.created_date = input;
         938  +
        self
         939  +
    }
         940  +
    /// <p>The date the association version was created.</p>
         941  +
    pub fn get_created_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         942  +
        &self.created_date
         943  +
    }
         944  +
    /// <p>The name specified when the association was created.</p>
         945  +
    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         946  +
        self.name = ::std::option::Option::Some(input.into());
         947  +
        self
         948  +
    }
         949  +
    /// <p>The name specified when the association was created.</p>
         950  +
    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         951  +
        self.name = input;
         952  +
        self
         953  +
    }
         954  +
    /// <p>The name specified when the association was created.</p>
         955  +
    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
         956  +
        &self.name
         957  +
    }
         958  +
    /// <p>The version of an Amazon Web Services Systems Manager document (SSM document) used when the association version was created.</p>
         959  +
    pub fn document_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         960  +
        self.document_version = ::std::option::Option::Some(input.into());
         961  +
        self
         962  +
    }
         963  +
    /// <p>The version of an Amazon Web Services Systems Manager document (SSM document) used when the association version was created.</p>
         964  +
    pub fn set_document_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         965  +
        self.document_version = input;
         966  +
        self
         967  +
    }
         968  +
    /// <p>The version of an Amazon Web Services Systems Manager document (SSM document) used when the association version was created.</p>
         969  +
    pub fn get_document_version(&self) -> &::std::option::Option<::std::string::String> {
         970  +
        &self.document_version
         971  +
    }
         972  +
    /// Adds a key-value pair to `parameters`.
         973  +
    ///
         974  +
    /// To override the contents of this collection use [`set_parameters`](Self::set_parameters).
         975  +
    ///
         976  +
    /// <p>Parameters specified when the association version was created.</p>
         977  +
    pub fn parameters(mut self, k: impl ::std::convert::Into<::std::string::String>, v: ::std::vec::Vec<::std::string::String>) -> Self {
         978  +
        let mut hash_map = self.parameters.unwrap_or_default();
         979  +
        hash_map.insert(k.into(), v);
         980  +
        self.parameters = ::std::option::Option::Some(hash_map);
         981  +
        self
         982  +
    }
         983  +
    /// <p>Parameters specified when the association version was created.</p>
         984  +
    pub fn set_parameters(
         985  +
        mut self,
         986  +
        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
         987  +
    ) -> Self {
         988  +
        self.parameters = input;
         989  +
        self
         990  +
    }
         991  +
    /// <p>Parameters specified when the association version was created.</p>
         992  +
    pub fn get_parameters(
         993  +
        &self,
         994  +
    ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
         995  +
        &self.parameters
         996  +
    }
         997  +
    /// Appends an item to `targets`.
         998  +
    ///
         999  +
    /// To override the contents of this collection use [`set_targets`](Self::set_targets).
        1000  +
    ///
        1001  +
    /// <p>The targets specified for the association when the association version was created.</p>
        1002  +
    pub fn targets(mut self, input: crate::types::Target) -> Self {
        1003  +
        let mut v = self.targets.unwrap_or_default();
        1004  +
        v.push(input);
        1005  +
        self.targets = ::std::option::Option::Some(v);
        1006  +
        self
        1007  +
    }
        1008  +
    /// <p>The targets specified for the association when the association version was created.</p>
        1009  +
    pub fn set_targets(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Target>>) -> Self {
        1010  +
        self.targets = input;
        1011  +
        self
        1012  +
    }
        1013  +
    /// <p>The targets specified for the association when the association version was created.</p>
        1014  +
    pub fn get_targets(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Target>> {
        1015  +
        &self.targets
        1016  +
    }
        1017  +
    /// <p>The cron or rate schedule specified for the association when the association version was created.</p>
        1018  +
    pub fn schedule_expression(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1019  +
        self.schedule_expression = ::std::option::Option::Some(input.into());
        1020  +
        self
        1021  +
    }
        1022  +
    /// <p>The cron or rate schedule specified for the association when the association version was created.</p>
        1023  +
    pub fn set_schedule_expression(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1024  +
        self.schedule_expression = input;
        1025  +
        self
        1026  +
    }
        1027  +
    /// <p>The cron or rate schedule specified for the association when the association version was created.</p>
        1028  +
    pub fn get_schedule_expression(&self) -> &::std::option::Option<::std::string::String> {
        1029  +
        &self.schedule_expression
        1030  +
    }
        1031  +
    /// <p>The location in Amazon S3 specified for the association when the association version was created.</p>
        1032  +
    pub fn output_location(mut self, input: crate::types::InstanceAssociationOutputLocation) -> Self {
        1033  +
        self.output_location = ::std::option::Option::Some(input);
        1034  +
        self
        1035  +
    }
        1036  +
    /// <p>The location in Amazon S3 specified for the association when the association version was created.</p>
        1037  +
    pub fn set_output_location(mut self, input: ::std::option::Option<crate::types::InstanceAssociationOutputLocation>) -> Self {
        1038  +
        self.output_location = input;
        1039  +
        self
        1040  +
    }
        1041  +
    /// <p>The location in Amazon S3 specified for the association when the association version was created.</p>
        1042  +
    pub fn get_output_location(&self) -> &::std::option::Option<crate::types::InstanceAssociationOutputLocation> {
        1043  +
        &self.output_location
        1044  +
    }
        1045  +
    /// <p>The name specified for the association version when the association version was created.</p>
        1046  +
    pub fn association_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1047  +
        self.association_name = ::std::option::Option::Some(input.into());
        1048  +
        self
        1049  +
    }
        1050  +
    /// <p>The name specified for the association version when the association version was created.</p>
        1051  +
    pub fn set_association_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1052  +
        self.association_name = input;
        1053  +
        self
        1054  +
    }
        1055  +
    /// <p>The name specified for the association version when the association version was created.</p>
        1056  +
    pub fn get_association_name(&self) -> &::std::option::Option<::std::string::String> {
        1057  +
        &self.association_name
        1058  +
    }
        1059  +
    /// <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>
        1060  +
    /// <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>
        1061  +
    pub fn max_errors(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1062  +
        self.max_errors = ::std::option::Option::Some(input.into());
        1063  +
        self
        1064  +
    }
        1065  +
    /// <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>
        1066  +
    /// <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>
        1067  +
    pub fn set_max_errors(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1068  +
        self.max_errors = input;
        1069  +
        self
        1070  +
    }
        1071  +
    /// <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>
        1072  +
    /// <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>
        1073  +
    pub fn get_max_errors(&self) -> &::std::option::Option<::std::string::String> {
        1074  +
        &self.max_errors
        1075  +
    }
        1076  +
    /// <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>
        1077  +
    /// <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>
        1078  +
    pub fn max_concurrency(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1079  +
        self.max_concurrency = ::std::option::Option::Some(input.into());
        1080  +
        self
        1081  +
    }
        1082  +
    /// <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>
        1083  +
    /// <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>
        1084  +
    pub fn set_max_concurrency(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1085  +
        self.max_concurrency = input;
        1086  +
        self
        1087  +
    }
        1088  +
    /// <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>
        1089  +
    /// <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>
        1090  +
    pub fn get_max_concurrency(&self) -> &::std::option::Option<::std::string::String> {
        1091  +
        &self.max_concurrency
        1092  +
    }
        1093  +
    /// <p>The severity level that is assigned to the association.</p>
        1094  +
    pub fn compliance_severity(mut self, input: crate::types::AssociationComplianceSeverity) -> Self {
        1095  +
        self.compliance_severity = ::std::option::Option::Some(input);
        1096  +
        self
        1097  +
    }
        1098  +
    /// <p>The severity level that is assigned to the association.</p>
        1099  +
    pub fn set_compliance_severity(mut self, input: ::std::option::Option<crate::types::AssociationComplianceSeverity>) -> Self {
        1100  +
        self.compliance_severity = input;
        1101  +
        self
        1102  +
    }
        1103  +
    /// <p>The severity level that is assigned to the association.</p>
        1104  +
    pub fn get_compliance_severity(&self) -> &::std::option::Option<crate::types::AssociationComplianceSeverity> {
        1105  +
        &self.compliance_severity
        1106  +
    }
        1107  +
    /// <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>
        1108  +
    /// <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>
        1109  +
    /// <p>By default, all associations use <code>AUTO</code> mode.</p>
        1110  +
    pub fn sync_compliance(mut self, input: crate::types::AssociationSyncCompliance) -> Self {
        1111  +
        self.sync_compliance = ::std::option::Option::Some(input);
        1112  +
        self
        1113  +
    }
        1114  +
    /// <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>
        1115  +
    /// <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>
        1116  +
    /// <p>By default, all associations use <code>AUTO</code> mode.</p>
        1117  +
    pub fn set_sync_compliance(mut self, input: ::std::option::Option<crate::types::AssociationSyncCompliance>) -> Self {
        1118  +
        self.sync_compliance = input;
        1119  +
        self
        1120  +
    }
        1121  +
    /// <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>
        1122  +
    /// <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>
        1123  +
    /// <p>By default, all associations use <code>AUTO</code> mode.</p>
        1124  +
    pub fn get_sync_compliance(&self) -> &::std::option::Option<crate::types::AssociationSyncCompliance> {
        1125  +
        &self.sync_compliance
        1126  +
    }
        1127  +
    /// <p>By default, when you create 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>
        1128  +
    pub fn apply_only_at_cron_interval(mut self, input: bool) -> Self {
        1129  +
        self.apply_only_at_cron_interval = ::std::option::Option::Some(input);
        1130  +
        self
        1131  +
    }
        1132  +
    /// <p>By default, when you create 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>
        1133  +
    pub fn set_apply_only_at_cron_interval(mut self, input: ::std::option::Option<bool>) -> Self {
        1134  +
        self.apply_only_at_cron_interval = input;
        1135  +
        self
        1136  +
    }
        1137  +
    /// <p>By default, when you create 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>
        1138  +
    pub fn get_apply_only_at_cron_interval(&self) -> &::std::option::Option<bool> {
        1139  +
        &self.apply_only_at_cron_interval
        1140  +
    }
        1141  +
    /// Appends an item to `calendar_names`.
        1142  +
    ///
        1143  +
    /// To override the contents of this collection use [`set_calendar_names`](Self::set_calendar_names).
        1144  +
    ///
        1145  +
    /// <p>The names or Amazon Resource Names (ARNs) of the Change Calendar type documents your associations are gated under. The associations for this version only run when that Change Calendar is open. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">Amazon Web Services Systems Manager Change Calendar</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
        1146  +
    pub fn calendar_names(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1147  +
        let mut v = self.calendar_names.unwrap_or_default();
        1148  +
        v.push(input.into());
        1149  +
        self.calendar_names = ::std::option::Option::Some(v);
        1150  +
        self
        1151  +
    }
        1152  +
    /// <p>The names or Amazon Resource Names (ARNs) of the Change Calendar type documents your associations are gated under. The associations for this version only run when that Change Calendar is open. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">Amazon Web Services Systems Manager Change Calendar</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
        1153  +
    pub fn set_calendar_names(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
        1154  +
        self.calendar_names = input;
        1155  +
        self
        1156  +
    }
        1157  +
    /// <p>The names or Amazon Resource Names (ARNs) of the Change Calendar type documents your associations are gated under. The associations for this version only run when that Change Calendar is open. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">Amazon Web Services Systems Manager Change Calendar</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
        1158  +
    pub fn get_calendar_names(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
        1159  +
        &self.calendar_names
        1160  +
    }
        1161  +
    /// Appends an item to `target_locations`.
        1162  +
    ///
        1163  +
    /// To override the contents of this collection use [`set_target_locations`](Self::set_target_locations).
        1164  +
    ///
        1165  +
    /// <p>The combination of Amazon Web Services Regions and Amazon Web Services accounts where you wanted to run the association when this association version was created.</p>
        1166  +
    pub fn target_locations(mut self, input: crate::types::TargetLocation) -> Self {
        1167  +
        let mut v = self.target_locations.unwrap_or_default();
        1168  +
        v.push(input);
        1169  +
        self.target_locations = ::std::option::Option::Some(v);
        1170  +
        self
        1171  +
    }
        1172  +
    /// <p>The combination of Amazon Web Services Regions and Amazon Web Services accounts where you wanted to run the association when this association version was created.</p>
        1173  +
    pub fn set_target_locations(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::TargetLocation>>) -> Self {
        1174  +
        self.target_locations = input;
        1175  +
        self
        1176  +
    }
        1177  +
    /// <p>The combination of Amazon Web Services Regions and Amazon Web Services accounts where you wanted to run the association when this association version was created.</p>
        1178  +
    pub fn get_target_locations(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::TargetLocation>> {
        1179  +
        &self.target_locations
        1180  +
    }
        1181  +
    /// <p>Number of days to wait after the scheduled day to run an association.</p>
        1182  +
    pub fn schedule_offset(mut self, input: i32) -> Self {
        1183  +
        self.schedule_offset = ::std::option::Option::Some(input);
        1184  +
        self
        1185  +
    }
        1186  +
    /// <p>Number of days to wait after the scheduled day to run an association.</p>
        1187  +
    pub fn set_schedule_offset(mut self, input: ::std::option::Option<i32>) -> Self {
        1188  +
        self.schedule_offset = input;
        1189  +
        self
        1190  +
    }
        1191  +
    /// <p>Number of days to wait after the scheduled day to run an association.</p>
        1192  +
    pub fn get_schedule_offset(&self) -> &::std::option::Option<i32> {
        1193  +
        &self.schedule_offset
        1194  +
    }
        1195  +
    /// <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>
        1196  +
    pub fn duration(mut self, input: i32) -> Self {
        1197  +
        self.duration = ::std::option::Option::Some(input);
        1198  +
        self
        1199  +
    }
        1200  +
    /// <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>
        1201  +
    pub fn set_duration(mut self, input: ::std::option::Option<i32>) -> Self {
        1202  +
        self.duration = input;
        1203  +
        self
        1204  +
    }
        1205  +
    /// <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>
        1206  +
    pub fn get_duration(&self) -> &::std::option::Option<i32> {
        1207  +
        &self.duration
        1208  +
    }
        1209  +
    /// Appends an item to `target_maps`.
        1210  +
    ///
        1211  +
    /// To override the contents of this collection use [`set_target_maps`](Self::set_target_maps).
        1212  +
    ///
        1213  +
    /// <p>A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together.</p>
        1214  +
    pub fn target_maps(mut self, input: ::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>) -> Self {
        1215  +
        let mut v = self.target_maps.unwrap_or_default();
        1216  +
        v.push(input);
        1217  +
        self.target_maps = ::std::option::Option::Some(v);
        1218  +
        self
        1219  +
    }
        1220  +
    /// <p>A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together.</p>
        1221  +
    pub fn set_target_maps(
        1222  +
        mut self,
        1223  +
        input: ::std::option::Option<::std::vec::Vec<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>>,
        1224  +
    ) -> Self {
        1225  +
        self.target_maps = input;
        1226  +
        self
        1227  +
    }
        1228  +
    /// <p>A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together.</p>
        1229  +
    pub fn get_target_maps(
        1230  +
        &self,
        1231  +
    ) -> &::std::option::Option<::std::vec::Vec<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>> {
        1232  +
        &self.target_maps
        1233  +
    }
        1234  +
    /// <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>
        1235  +
    pub fn association_dispatch_assume_role(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1236  +
        self.association_dispatch_assume_role = ::std::option::Option::Some(input.into());
        1237  +
        self
        1238  +
    }
        1239  +
    /// <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>
        1240  +
    pub fn set_association_dispatch_assume_role(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1241  +
        self.association_dispatch_assume_role = input;
        1242  +
        self
        1243  +
    }
        1244  +
    /// <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>
        1245  +
    pub fn get_association_dispatch_assume_role(&self) -> &::std::option::Option<::std::string::String> {
        1246  +
        &self.association_dispatch_assume_role
        1247  +
    }
        1248  +
    /// Consumes the builder and constructs a [`AssociationVersionInfo`](crate::types::AssociationVersionInfo).
        1249  +
    pub fn build(self) -> crate::types::AssociationVersionInfo {
        1250  +
        crate::types::AssociationVersionInfo {
        1251  +
            association_id: self.association_id,
        1252  +
            association_version: self.association_version,
        1253  +
            created_date: self.created_date,
        1254  +
            name: self.name,
        1255  +
            document_version: self.document_version,
        1256  +
            parameters: self.parameters,
        1257  +
            targets: self.targets,
        1258  +
            schedule_expression: self.schedule_expression,
        1259  +
            output_location: self.output_location,
        1260  +
            association_name: self.association_name,
        1261  +
            max_errors: self.max_errors,
        1262  +
            max_concurrency: self.max_concurrency,
        1263  +
            compliance_severity: self.compliance_severity,
        1264  +
            sync_compliance: self.sync_compliance,
        1265  +
            apply_only_at_cron_interval: self.apply_only_at_cron_interval.unwrap_or_default(),
        1266  +
            calendar_names: self.calendar_names,
        1267  +
            target_locations: self.target_locations,
        1268  +
            schedule_offset: self.schedule_offset,
        1269  +
            duration: self.duration,
        1270  +
            target_maps: self.target_maps,
        1271  +
            association_dispatch_assume_role: self.association_dispatch_assume_role,
        1272  +
        }
        1273  +
    }
        1274  +
}
        1275  +
impl ::std::fmt::Debug for AssociationVersionInfoBuilder {
        1276  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        1277  +
        let mut formatter = f.debug_struct("AssociationVersionInfoBuilder");
        1278  +
        formatter.field("association_id", &self.association_id);
        1279  +
        formatter.field("association_version", &self.association_version);
        1280  +
        formatter.field("created_date", &self.created_date);
        1281  +
        formatter.field("name", &self.name);
        1282  +
        formatter.field("document_version", &self.document_version);
        1283  +
        formatter.field("parameters", &"*** Sensitive Data Redacted ***");
        1284  +
        formatter.field("targets", &self.targets);
        1285  +
        formatter.field("schedule_expression", &self.schedule_expression);
        1286  +
        formatter.field("output_location", &self.output_location);
        1287  +
        formatter.field("association_name", &self.association_name);
        1288  +
        formatter.field("max_errors", &self.max_errors);
        1289  +
        formatter.field("max_concurrency", &self.max_concurrency);
        1290  +
        formatter.field("compliance_severity", &self.compliance_severity);
        1291  +
        formatter.field("sync_compliance", &self.sync_compliance);
        1292  +
        formatter.field("apply_only_at_cron_interval", &self.apply_only_at_cron_interval);
        1293  +
        formatter.field("calendar_names", &self.calendar_names);
        1294  +
        formatter.field("target_locations", &self.target_locations);
        1295  +
        formatter.field("schedule_offset", &self.schedule_offset);
        1296  +
        formatter.field("duration", &self.duration);
        1297  +
        formatter.field("target_maps", &self.target_maps);
        1298  +
        formatter.field("association_dispatch_assume_role", &self.association_dispatch_assume_role);
        1299  +
        formatter.finish()
        1300  +
    }
        1301  +
}