AWS SDK

AWS SDK

rev. 18b1dd205ff4335251e6dd0ecb88193de1b1cede

Files changed:

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

@@ -0,1 +0,273 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>A structure that includes attributes that describe a document attachment.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           6  +
pub struct AttachmentContent {
           7  +
    /// <p>The name of an attachment.</p>
           8  +
    pub name: ::std::option::Option<::std::string::String>,
           9  +
    /// <p>The size of an attachment in bytes.</p>
          10  +
    pub size: i64,
          11  +
    /// <p>The cryptographic hash value of the document content.</p>
          12  +
    pub hash: ::std::option::Option<::std::string::String>,
          13  +
    /// <p>The hash algorithm used to calculate the hash value.</p>
          14  +
    pub hash_type: ::std::option::Option<crate::types::AttachmentHashType>,
          15  +
    /// <p>The URL location of the attachment content.</p>
          16  +
    pub url: ::std::option::Option<::std::string::String>,
          17  +
}
          18  +
impl AttachmentContent {
          19  +
    /// <p>The name of an attachment.</p>
          20  +
    pub fn name(&self) -> ::std::option::Option<&str> {
          21  +
        self.name.as_deref()
          22  +
    }
          23  +
    /// <p>The size of an attachment in bytes.</p>
          24  +
    pub fn size(&self) -> i64 {
          25  +
        self.size
          26  +
    }
          27  +
    /// <p>The cryptographic hash value of the document content.</p>
          28  +
    pub fn hash(&self) -> ::std::option::Option<&str> {
          29  +
        self.hash.as_deref()
          30  +
    }
          31  +
    /// <p>The hash algorithm used to calculate the hash value.</p>
          32  +
    pub fn hash_type(&self) -> ::std::option::Option<&crate::types::AttachmentHashType> {
          33  +
        self.hash_type.as_ref()
          34  +
    }
          35  +
    /// <p>The URL location of the attachment content.</p>
          36  +
    pub fn url(&self) -> ::std::option::Option<&str> {
          37  +
        self.url.as_deref()
          38  +
    }
          39  +
}
          40  +
static ATTACHMENTCONTENT_MEMBER_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          41  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#AttachmentContent$Name", "com.amazonaws.ssm", "AttachmentContent"),
          42  +
    ::aws_smithy_schema::ShapeType::String,
          43  +
    "Name",
          44  +
    0,
          45  +
);
          46  +
static ATTACHMENTCONTENT_MEMBER_SIZE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          47  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#AttachmentContent$Size", "com.amazonaws.ssm", "AttachmentContent"),
          48  +
    ::aws_smithy_schema::ShapeType::Long,
          49  +
    "Size",
          50  +
    1,
          51  +
);
          52  +
static ATTACHMENTCONTENT_MEMBER_HASH: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          53  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#AttachmentContent$Hash", "com.amazonaws.ssm", "AttachmentContent"),
          54  +
    ::aws_smithy_schema::ShapeType::String,
          55  +
    "Hash",
          56  +
    2,
          57  +
);
          58  +
static ATTACHMENTCONTENT_MEMBER_HASH_TYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          59  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#AttachmentContent$HashType", "com.amazonaws.ssm", "AttachmentContent"),
          60  +
    ::aws_smithy_schema::ShapeType::String,
          61  +
    "HashType",
          62  +
    3,
          63  +
);
          64  +
static ATTACHMENTCONTENT_MEMBER_URL: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          65  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#AttachmentContent$Url", "com.amazonaws.ssm", "AttachmentContent"),
          66  +
    ::aws_smithy_schema::ShapeType::String,
          67  +
    "Url",
          68  +
    4,
          69  +
);
          70  +
static ATTACHMENTCONTENT_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
          71  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#AttachmentContent", "com.amazonaws.ssm", "AttachmentContent"),
          72  +
    ::aws_smithy_schema::ShapeType::Structure,
          73  +
    &[
          74  +
        &ATTACHMENTCONTENT_MEMBER_NAME,
          75  +
        &ATTACHMENTCONTENT_MEMBER_SIZE,
          76  +
        &ATTACHMENTCONTENT_MEMBER_HASH,
          77  +
        &ATTACHMENTCONTENT_MEMBER_HASH_TYPE,
          78  +
        &ATTACHMENTCONTENT_MEMBER_URL,
          79  +
    ],
          80  +
);
          81  +
impl AttachmentContent {
          82  +
    /// The schema for this shape.
          83  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &ATTACHMENTCONTENT_SCHEMA;
          84  +
}
          85  +
impl ::aws_smithy_schema::serde::SerializableStruct for AttachmentContent {
          86  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
          87  +
    fn serialize_members(
          88  +
        &self,
          89  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
          90  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
          91  +
        if let Some(ref val) = self.name {
          92  +
            ser.write_string(&ATTACHMENTCONTENT_MEMBER_NAME, val)?;
          93  +
        }
          94  +
        {
          95  +
            let val = &self.size;
          96  +
            ser.write_long(&ATTACHMENTCONTENT_MEMBER_SIZE, *val)?;
          97  +
        }
          98  +
        if let Some(ref val) = self.hash {
          99  +
            ser.write_string(&ATTACHMENTCONTENT_MEMBER_HASH, val)?;
         100  +
        }
         101  +
        if let Some(ref val) = self.hash_type {
         102  +
            ser.write_string(&ATTACHMENTCONTENT_MEMBER_HASH_TYPE, val.as_str())?;
         103  +
        }
         104  +
        if let Some(ref val) = self.url {
         105  +
            ser.write_string(&ATTACHMENTCONTENT_MEMBER_URL, val)?;
         106  +
        }
         107  +
        Ok(())
         108  +
    }
         109  +
}
         110  +
impl AttachmentContent {
         111  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         112  +
    pub fn deserialize(
         113  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         114  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         115  +
        #[allow(unused_variables, unused_mut)]
         116  +
        let mut builder = Self::builder();
         117  +
        #[allow(
         118  +
            unused_variables,
         119  +
            unreachable_code,
         120  +
            clippy::single_match,
         121  +
            clippy::match_single_binding,
         122  +
            clippy::diverging_sub_expression
         123  +
        )]
         124  +
        deserializer.read_struct(&ATTACHMENTCONTENT_SCHEMA, &mut |member, deser| {
         125  +
            match member.member_index() {
         126  +
                Some(0) => {
         127  +
                    if deser.is_null() {
         128  +
                        deser.read_null()?;
         129  +
                    } else {
         130  +
                        builder.name = Some(deser.read_string(member)?);
         131  +
                    }
         132  +
                }
         133  +
                Some(1) => {
         134  +
                    builder.size = Some(deser.read_long(member)?);
         135  +
                }
         136  +
                Some(2) => {
         137  +
                    if deser.is_null() {
         138  +
                        deser.read_null()?;
         139  +
                    } else {
         140  +
                        builder.hash = Some(deser.read_string(member)?);
         141  +
                    }
         142  +
                }
         143  +
                Some(3) => {
         144  +
                    if deser.is_null() {
         145  +
                        deser.read_null()?;
         146  +
                    } else {
         147  +
                        builder.hash_type = Some(crate::types::AttachmentHashType::from(deser.read_string(member)?.as_str()));
         148  +
                    }
         149  +
                }
         150  +
                Some(4) => {
         151  +
                    if deser.is_null() {
         152  +
                        deser.read_null()?;
         153  +
                    } else {
         154  +
                        builder.url = Some(deser.read_string(member)?);
         155  +
                    }
         156  +
                }
         157  +
                _ => {}
         158  +
            }
         159  +
            Ok(())
         160  +
        })?;
         161  +
        Ok(builder.build())
         162  +
    }
         163  +
}
         164  +
impl AttachmentContent {
         165  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         166  +
    pub fn deserialize_with_response(
         167  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         168  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         169  +
        _status: u16,
         170  +
        _body: &[u8],
         171  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         172  +
        Self::deserialize(deserializer)
         173  +
    }
         174  +
}
         175  +
impl AttachmentContent {
         176  +
    /// Creates a new builder-style object to manufacture [`AttachmentContent`](crate::types::AttachmentContent).
         177  +
    pub fn builder() -> crate::types::builders::AttachmentContentBuilder {
         178  +
        crate::types::builders::AttachmentContentBuilder::default()
         179  +
    }
         180  +
}
         181  +
         182  +
/// A builder for [`AttachmentContent`](crate::types::AttachmentContent).
         183  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         184  +
#[non_exhaustive]
         185  +
pub struct AttachmentContentBuilder {
         186  +
    pub(crate) name: ::std::option::Option<::std::string::String>,
         187  +
    pub(crate) size: ::std::option::Option<i64>,
         188  +
    pub(crate) hash: ::std::option::Option<::std::string::String>,
         189  +
    pub(crate) hash_type: ::std::option::Option<crate::types::AttachmentHashType>,
         190  +
    pub(crate) url: ::std::option::Option<::std::string::String>,
         191  +
}
         192  +
impl AttachmentContentBuilder {
         193  +
    /// <p>The name of an attachment.</p>
         194  +
    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         195  +
        self.name = ::std::option::Option::Some(input.into());
         196  +
        self
         197  +
    }
         198  +
    /// <p>The name of an attachment.</p>
         199  +
    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         200  +
        self.name = input;
         201  +
        self
         202  +
    }
         203  +
    /// <p>The name of an attachment.</p>
         204  +
    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
         205  +
        &self.name
         206  +
    }
         207  +
    /// <p>The size of an attachment in bytes.</p>
         208  +
    pub fn size(mut self, input: i64) -> Self {
         209  +
        self.size = ::std::option::Option::Some(input);
         210  +
        self
         211  +
    }
         212  +
    /// <p>The size of an attachment in bytes.</p>
         213  +
    pub fn set_size(mut self, input: ::std::option::Option<i64>) -> Self {
         214  +
        self.size = input;
         215  +
        self
         216  +
    }
         217  +
    /// <p>The size of an attachment in bytes.</p>
         218  +
    pub fn get_size(&self) -> &::std::option::Option<i64> {
         219  +
        &self.size
         220  +
    }
         221  +
    /// <p>The cryptographic hash value of the document content.</p>
         222  +
    pub fn hash(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         223  +
        self.hash = ::std::option::Option::Some(input.into());
         224  +
        self
         225  +
    }
         226  +
    /// <p>The cryptographic hash value of the document content.</p>
         227  +
    pub fn set_hash(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         228  +
        self.hash = input;
         229  +
        self
         230  +
    }
         231  +
    /// <p>The cryptographic hash value of the document content.</p>
         232  +
    pub fn get_hash(&self) -> &::std::option::Option<::std::string::String> {
         233  +
        &self.hash
         234  +
    }
         235  +
    /// <p>The hash algorithm used to calculate the hash value.</p>
         236  +
    pub fn hash_type(mut self, input: crate::types::AttachmentHashType) -> Self {
         237  +
        self.hash_type = ::std::option::Option::Some(input);
         238  +
        self
         239  +
    }
         240  +
    /// <p>The hash algorithm used to calculate the hash value.</p>
         241  +
    pub fn set_hash_type(mut self, input: ::std::option::Option<crate::types::AttachmentHashType>) -> Self {
         242  +
        self.hash_type = input;
         243  +
        self
         244  +
    }
         245  +
    /// <p>The hash algorithm used to calculate the hash value.</p>
         246  +
    pub fn get_hash_type(&self) -> &::std::option::Option<crate::types::AttachmentHashType> {
         247  +
        &self.hash_type
         248  +
    }
         249  +
    /// <p>The URL location of the attachment content.</p>
         250  +
    pub fn url(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         251  +
        self.url = ::std::option::Option::Some(input.into());
         252  +
        self
         253  +
    }
         254  +
    /// <p>The URL location of the attachment content.</p>
         255  +
    pub fn set_url(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         256  +
        self.url = input;
         257  +
        self
         258  +
    }
         259  +
    /// <p>The URL location of the attachment content.</p>
         260  +
    pub fn get_url(&self) -> &::std::option::Option<::std::string::String> {
         261  +
        &self.url
         262  +
    }
         263  +
    /// Consumes the builder and constructs a [`AttachmentContent`](crate::types::AttachmentContent).
         264  +
    pub fn build(self) -> crate::types::AttachmentContent {
         265  +
        crate::types::AttachmentContent {
         266  +
            name: self.name,
         267  +
            size: self.size.unwrap_or_default(),
         268  +
            hash: self.hash,
         269  +
            hash_type: self.hash_type,
         270  +
            url: self.url,
         271  +
        }
         272  +
    }
         273  +
}

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

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

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

@@ -0,1 +0,120 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>An attribute of an attachment, such as the attachment name.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           6  +
pub struct AttachmentInformation {
           7  +
    /// <p>The name of the attachment.</p>
           8  +
    pub name: ::std::option::Option<::std::string::String>,
           9  +
}
          10  +
impl AttachmentInformation {
          11  +
    /// <p>The name of the attachment.</p>
          12  +
    pub fn name(&self) -> ::std::option::Option<&str> {
          13  +
        self.name.as_deref()
          14  +
    }
          15  +
}
          16  +
static ATTACHMENTINFORMATION_MEMBER_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          17  +
    ::aws_smithy_schema::ShapeId::from_parts(
          18  +
        "com.amazonaws.ssm#AttachmentInformation$Name",
          19  +
        "com.amazonaws.ssm",
          20  +
        "AttachmentInformation",
          21  +
    ),
          22  +
    ::aws_smithy_schema::ShapeType::String,
          23  +
    "Name",
          24  +
    0,
          25  +
);
          26  +
static ATTACHMENTINFORMATION_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
          27  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#AttachmentInformation", "com.amazonaws.ssm", "AttachmentInformation"),
          28  +
    ::aws_smithy_schema::ShapeType::Structure,
          29  +
    &[&ATTACHMENTINFORMATION_MEMBER_NAME],
          30  +
);
          31  +
impl AttachmentInformation {
          32  +
    /// The schema for this shape.
          33  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &ATTACHMENTINFORMATION_SCHEMA;
          34  +
}
          35  +
impl ::aws_smithy_schema::serde::SerializableStruct for AttachmentInformation {
          36  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
          37  +
    fn serialize_members(
          38  +
        &self,
          39  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
          40  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
          41  +
        if let Some(ref val) = self.name {
          42  +
            ser.write_string(&ATTACHMENTINFORMATION_MEMBER_NAME, val)?;
          43  +
        }
          44  +
        Ok(())
          45  +
    }
          46  +
}
          47  +
impl AttachmentInformation {
          48  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
          49  +
    pub fn deserialize(
          50  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          51  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          52  +
        #[allow(unused_variables, unused_mut)]
          53  +
        let mut builder = Self::builder();
          54  +
        #[allow(
          55  +
            unused_variables,
          56  +
            unreachable_code,
          57  +
            clippy::single_match,
          58  +
            clippy::match_single_binding,
          59  +
            clippy::diverging_sub_expression
          60  +
        )]
          61  +
        deserializer.read_struct(&ATTACHMENTINFORMATION_SCHEMA, &mut |member, deser| {
          62  +
            match member.member_index() {
          63  +
                Some(0) => {
          64  +
                    if deser.is_null() {
          65  +
                        deser.read_null()?;
          66  +
                    } else {
          67  +
                        builder.name = Some(deser.read_string(member)?);
          68  +
                    }
          69  +
                }
          70  +
                _ => {}
          71  +
            }
          72  +
            Ok(())
          73  +
        })?;
          74  +
        Ok(builder.build())
          75  +
    }
          76  +
}
          77  +
impl AttachmentInformation {
          78  +
    /// Deserializes this structure from a body deserializer and HTTP response.
          79  +
    pub fn deserialize_with_response(
          80  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          81  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
          82  +
        _status: u16,
          83  +
        _body: &[u8],
          84  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          85  +
        Self::deserialize(deserializer)
          86  +
    }
          87  +
}
          88  +
impl AttachmentInformation {
          89  +
    /// Creates a new builder-style object to manufacture [`AttachmentInformation`](crate::types::AttachmentInformation).
          90  +
    pub fn builder() -> crate::types::builders::AttachmentInformationBuilder {
          91  +
        crate::types::builders::AttachmentInformationBuilder::default()
          92  +
    }
          93  +
}
          94  +
          95  +
/// A builder for [`AttachmentInformation`](crate::types::AttachmentInformation).
          96  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          97  +
#[non_exhaustive]
          98  +
pub struct AttachmentInformationBuilder {
          99  +
    pub(crate) name: ::std::option::Option<::std::string::String>,
         100  +
}
         101  +
impl AttachmentInformationBuilder {
         102  +
    /// <p>The name of the attachment.</p>
         103  +
    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         104  +
        self.name = ::std::option::Option::Some(input.into());
         105  +
        self
         106  +
    }
         107  +
    /// <p>The name of the attachment.</p>
         108  +
    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         109  +
        self.name = input;
         110  +
        self
         111  +
    }
         112  +
    /// <p>The name of the attachment.</p>
         113  +
    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
         114  +
        &self.name
         115  +
    }
         116  +
    /// Consumes the builder and constructs a [`AttachmentInformation`](crate::types::AttachmentInformation).
         117  +
    pub fn build(self) -> crate::types::AttachmentInformation {
         118  +
        crate::types::AttachmentInformation { name: self.name }
         119  +
    }
         120  +
}

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

@@ -0,1 +0,290 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>Identifying information about a document attachment, including the file name and a key-value pair that identifies the location of an attachment to a document.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           6  +
pub struct AttachmentsSource {
           7  +
    /// <p>The key of a key-value pair that identifies the location of an attachment to a document.</p>
           8  +
    pub key: ::std::option::Option<crate::types::AttachmentsSourceKey>,
           9  +
    /// <p>The value of a key-value pair that identifies the location of an attachment to a document. The format for <b>Value</b> depends on the type of key you specify.</p>
          10  +
    /// <ul>
          11  +
    /// <li>
          12  +
    /// <p>For the key <i>SourceUrl</i>, the value is an S3 bucket location. For example:</p>
          13  +
    /// <p><code>"Values": \[ "s3://amzn-s3-demo-bucket/my-prefix" \]</code></p></li>
          14  +
    /// <li>
          15  +
    /// <p>For the key <i>S3FileUrl</i>, the value is a file in an S3 bucket. For example:</p>
          16  +
    /// <p><code>"Values": \[ "s3://amzn-s3-demo-bucket/my-prefix/my-file.py" \]</code></p></li>
          17  +
    /// <li>
          18  +
    /// <p>For the key <i>AttachmentReference</i>, the value is constructed from the name of another SSM document in your account, a version number of that document, and a file attached to that document version that you want to reuse. For example:</p>
          19  +
    /// <p><code>"Values": \[ "MyOtherDocument/3/my-other-file.py" \]</code></p>
          20  +
    /// <p>However, if the SSM document is shared with you from another account, the full SSM document ARN must be specified instead of the document name only. For example:</p>
          21  +
    /// <p><code>"Values": \[ "arn:aws:ssm:us-east-2:111122223333:document/OtherAccountDocument/3/their-file.py" \]</code></p></li>
          22  +
    /// </ul>
          23  +
    pub values: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
          24  +
    /// <p>The name of the document attachment file.</p>
          25  +
    pub name: ::std::option::Option<::std::string::String>,
          26  +
}
          27  +
impl AttachmentsSource {
          28  +
    /// <p>The key of a key-value pair that identifies the location of an attachment to a document.</p>
          29  +
    pub fn key(&self) -> ::std::option::Option<&crate::types::AttachmentsSourceKey> {
          30  +
        self.key.as_ref()
          31  +
    }
          32  +
    /// <p>The value of a key-value pair that identifies the location of an attachment to a document. The format for <b>Value</b> depends on the type of key you specify.</p>
          33  +
    /// <ul>
          34  +
    /// <li>
          35  +
    /// <p>For the key <i>SourceUrl</i>, the value is an S3 bucket location. For example:</p>
          36  +
    /// <p><code>"Values": \[ "s3://amzn-s3-demo-bucket/my-prefix" \]</code></p></li>
          37  +
    /// <li>
          38  +
    /// <p>For the key <i>S3FileUrl</i>, the value is a file in an S3 bucket. For example:</p>
          39  +
    /// <p><code>"Values": \[ "s3://amzn-s3-demo-bucket/my-prefix/my-file.py" \]</code></p></li>
          40  +
    /// <li>
          41  +
    /// <p>For the key <i>AttachmentReference</i>, the value is constructed from the name of another SSM document in your account, a version number of that document, and a file attached to that document version that you want to reuse. For example:</p>
          42  +
    /// <p><code>"Values": \[ "MyOtherDocument/3/my-other-file.py" \]</code></p>
          43  +
    /// <p>However, if the SSM document is shared with you from another account, the full SSM document ARN must be specified instead of the document name only. For example:</p>
          44  +
    /// <p><code>"Values": \[ "arn:aws:ssm:us-east-2:111122223333:document/OtherAccountDocument/3/their-file.py" \]</code></p></li>
          45  +
    /// </ul>
          46  +
    ///
          47  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.values.is_none()`.
          48  +
    pub fn values(&self) -> &[::std::string::String] {
          49  +
        self.values.as_deref().unwrap_or_default()
          50  +
    }
          51  +
    /// <p>The name of the document attachment file.</p>
          52  +
    pub fn name(&self) -> ::std::option::Option<&str> {
          53  +
        self.name.as_deref()
          54  +
    }
          55  +
}
          56  +
static ATTACHMENTSSOURCE_MEMBER_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          57  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#AttachmentsSource$Key", "com.amazonaws.ssm", "AttachmentsSource"),
          58  +
    ::aws_smithy_schema::ShapeType::String,
          59  +
    "Key",
          60  +
    0,
          61  +
);
          62  +
static ATTACHMENTSSOURCE_MEMBER_VALUES_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          63  +
    ::aws_smithy_schema::ShapeId::from_parts(
          64  +
        "com.amazonaws.ssm#AttachmentsSourceValues$member",
          65  +
        "com.amazonaws.ssm",
          66  +
        "AttachmentsSourceValues",
          67  +
    ),
          68  +
    ::aws_smithy_schema::ShapeType::String,
          69  +
    "member",
          70  +
    0,
          71  +
);
          72  +
static ATTACHMENTSSOURCE_MEMBER_VALUES: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          73  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#AttachmentsSource$Values", "com.amazonaws.ssm", "AttachmentsSource"),
          74  +
    ::aws_smithy_schema::ShapeType::List,
          75  +
    "Values",
          76  +
    1,
          77  +
)
          78  +
.with_list_member(&ATTACHMENTSSOURCE_MEMBER_VALUES_MEMBER);
          79  +
static ATTACHMENTSSOURCE_MEMBER_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          80  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#AttachmentsSource$Name", "com.amazonaws.ssm", "AttachmentsSource"),
          81  +
    ::aws_smithy_schema::ShapeType::String,
          82  +
    "Name",
          83  +
    2,
          84  +
);
          85  +
static ATTACHMENTSSOURCE_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
          86  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#AttachmentsSource", "com.amazonaws.ssm", "AttachmentsSource"),
          87  +
    ::aws_smithy_schema::ShapeType::Structure,
          88  +
    &[
          89  +
        &ATTACHMENTSSOURCE_MEMBER_KEY,
          90  +
        &ATTACHMENTSSOURCE_MEMBER_VALUES,
          91  +
        &ATTACHMENTSSOURCE_MEMBER_NAME,
          92  +
    ],
          93  +
);
          94  +
impl AttachmentsSource {
          95  +
    /// The schema for this shape.
          96  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &ATTACHMENTSSOURCE_SCHEMA;
          97  +
}
          98  +
impl ::aws_smithy_schema::serde::SerializableStruct for AttachmentsSource {
          99  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         100  +
    fn serialize_members(
         101  +
        &self,
         102  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         103  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         104  +
        if let Some(ref val) = self.key {
         105  +
            ser.write_string(&ATTACHMENTSSOURCE_MEMBER_KEY, val.as_str())?;
         106  +
        }
         107  +
        if let Some(ref val) = self.values {
         108  +
            ser.write_list(
         109  +
                &ATTACHMENTSSOURCE_MEMBER_VALUES,
         110  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         111  +
                    for item in val {
         112  +
                        ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
         113  +
                    }
         114  +
                    Ok(())
         115  +
                },
         116  +
            )?;
         117  +
        }
         118  +
        if let Some(ref val) = self.name {
         119  +
            ser.write_string(&ATTACHMENTSSOURCE_MEMBER_NAME, val)?;
         120  +
        }
         121  +
        Ok(())
         122  +
    }
         123  +
}
         124  +
impl AttachmentsSource {
         125  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         126  +
    pub fn deserialize(
         127  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         128  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         129  +
        #[allow(unused_variables, unused_mut)]
         130  +
        let mut builder = Self::builder();
         131  +
        #[allow(
         132  +
            unused_variables,
         133  +
            unreachable_code,
         134  +
            clippy::single_match,
         135  +
            clippy::match_single_binding,
         136  +
            clippy::diverging_sub_expression
         137  +
        )]
         138  +
        deserializer.read_struct(&ATTACHMENTSSOURCE_SCHEMA, &mut |member, deser| {
         139  +
            match member.member_index() {
         140  +
                Some(0) => {
         141  +
                    if deser.is_null() {
         142  +
                        deser.read_null()?;
         143  +
                    } else {
         144  +
                        builder.key = Some(crate::types::AttachmentsSourceKey::from(deser.read_string(member)?.as_str()));
         145  +
                    }
         146  +
                }
         147  +
                Some(1) => {
         148  +
                    if deser.is_null() {
         149  +
                        deser.read_null()?;
         150  +
                    } else {
         151  +
                        builder.values = Some(deser.read_string_list(member)?);
         152  +
                    }
         153  +
                }
         154  +
                Some(2) => {
         155  +
                    if deser.is_null() {
         156  +
                        deser.read_null()?;
         157  +
                    } else {
         158  +
                        builder.name = Some(deser.read_string(member)?);
         159  +
                    }
         160  +
                }
         161  +
                _ => {}
         162  +
            }
         163  +
            Ok(())
         164  +
        })?;
         165  +
        Ok(builder.build())
         166  +
    }
         167  +
}
         168  +
impl AttachmentsSource {
         169  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         170  +
    pub fn deserialize_with_response(
         171  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         172  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         173  +
        _status: u16,
         174  +
        _body: &[u8],
         175  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         176  +
        Self::deserialize(deserializer)
         177  +
    }
         178  +
}
         179  +
impl AttachmentsSource {
         180  +
    /// Creates a new builder-style object to manufacture [`AttachmentsSource`](crate::types::AttachmentsSource).
         181  +
    pub fn builder() -> crate::types::builders::AttachmentsSourceBuilder {
         182  +
        crate::types::builders::AttachmentsSourceBuilder::default()
         183  +
    }
         184  +
}
         185  +
         186  +
/// A builder for [`AttachmentsSource`](crate::types::AttachmentsSource).
         187  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         188  +
#[non_exhaustive]
         189  +
pub struct AttachmentsSourceBuilder {
         190  +
    pub(crate) key: ::std::option::Option<crate::types::AttachmentsSourceKey>,
         191  +
    pub(crate) values: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         192  +
    pub(crate) name: ::std::option::Option<::std::string::String>,
         193  +
}
         194  +
impl AttachmentsSourceBuilder {
         195  +
    /// <p>The key of a key-value pair that identifies the location of an attachment to a document.</p>
         196  +
    pub fn key(mut self, input: crate::types::AttachmentsSourceKey) -> Self {
         197  +
        self.key = ::std::option::Option::Some(input);
         198  +
        self
         199  +
    }
         200  +
    /// <p>The key of a key-value pair that identifies the location of an attachment to a document.</p>
         201  +
    pub fn set_key(mut self, input: ::std::option::Option<crate::types::AttachmentsSourceKey>) -> Self {
         202  +
        self.key = input;
         203  +
        self
         204  +
    }
         205  +
    /// <p>The key of a key-value pair that identifies the location of an attachment to a document.</p>
         206  +
    pub fn get_key(&self) -> &::std::option::Option<crate::types::AttachmentsSourceKey> {
         207  +
        &self.key
         208  +
    }
         209  +
    /// Appends an item to `values`.
         210  +
    ///
         211  +
    /// To override the contents of this collection use [`set_values`](Self::set_values).
         212  +
    ///
         213  +
    /// <p>The value of a key-value pair that identifies the location of an attachment to a document. The format for <b>Value</b> depends on the type of key you specify.</p>
         214  +
    /// <ul>
         215  +
    /// <li>
         216  +
    /// <p>For the key <i>SourceUrl</i>, the value is an S3 bucket location. For example:</p>
         217  +
    /// <p><code>"Values": \[ "s3://amzn-s3-demo-bucket/my-prefix" \]</code></p></li>
         218  +
    /// <li>
         219  +
    /// <p>For the key <i>S3FileUrl</i>, the value is a file in an S3 bucket. For example:</p>
         220  +
    /// <p><code>"Values": \[ "s3://amzn-s3-demo-bucket/my-prefix/my-file.py" \]</code></p></li>
         221  +
    /// <li>
         222  +
    /// <p>For the key <i>AttachmentReference</i>, the value is constructed from the name of another SSM document in your account, a version number of that document, and a file attached to that document version that you want to reuse. For example:</p>
         223  +
    /// <p><code>"Values": \[ "MyOtherDocument/3/my-other-file.py" \]</code></p>
         224  +
    /// <p>However, if the SSM document is shared with you from another account, the full SSM document ARN must be specified instead of the document name only. For example:</p>
         225  +
    /// <p><code>"Values": \[ "arn:aws:ssm:us-east-2:111122223333:document/OtherAccountDocument/3/their-file.py" \]</code></p></li>
         226  +
    /// </ul>
         227  +
    pub fn values(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         228  +
        let mut v = self.values.unwrap_or_default();
         229  +
        v.push(input.into());
         230  +
        self.values = ::std::option::Option::Some(v);
         231  +
        self
         232  +
    }
         233  +
    /// <p>The value of a key-value pair that identifies the location of an attachment to a document. The format for <b>Value</b> depends on the type of key you specify.</p>
         234  +
    /// <ul>
         235  +
    /// <li>
         236  +
    /// <p>For the key <i>SourceUrl</i>, the value is an S3 bucket location. For example:</p>
         237  +
    /// <p><code>"Values": \[ "s3://amzn-s3-demo-bucket/my-prefix" \]</code></p></li>
         238  +
    /// <li>
         239  +
    /// <p>For the key <i>S3FileUrl</i>, the value is a file in an S3 bucket. For example:</p>
         240  +
    /// <p><code>"Values": \[ "s3://amzn-s3-demo-bucket/my-prefix/my-file.py" \]</code></p></li>
         241  +
    /// <li>
         242  +
    /// <p>For the key <i>AttachmentReference</i>, the value is constructed from the name of another SSM document in your account, a version number of that document, and a file attached to that document version that you want to reuse. For example:</p>
         243  +
    /// <p><code>"Values": \[ "MyOtherDocument/3/my-other-file.py" \]</code></p>
         244  +
    /// <p>However, if the SSM document is shared with you from another account, the full SSM document ARN must be specified instead of the document name only. For example:</p>
         245  +
    /// <p><code>"Values": \[ "arn:aws:ssm:us-east-2:111122223333:document/OtherAccountDocument/3/their-file.py" \]</code></p></li>
         246  +
    /// </ul>
         247  +
    pub fn set_values(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
         248  +
        self.values = input;
         249  +
        self
         250  +
    }
         251  +
    /// <p>The value of a key-value pair that identifies the location of an attachment to a document. The format for <b>Value</b> depends on the type of key you specify.</p>
         252  +
    /// <ul>
         253  +
    /// <li>
         254  +
    /// <p>For the key <i>SourceUrl</i>, the value is an S3 bucket location. For example:</p>
         255  +
    /// <p><code>"Values": \[ "s3://amzn-s3-demo-bucket/my-prefix" \]</code></p></li>
         256  +
    /// <li>
         257  +
    /// <p>For the key <i>S3FileUrl</i>, the value is a file in an S3 bucket. For example:</p>
         258  +
    /// <p><code>"Values": \[ "s3://amzn-s3-demo-bucket/my-prefix/my-file.py" \]</code></p></li>
         259  +
    /// <li>
         260  +
    /// <p>For the key <i>AttachmentReference</i>, the value is constructed from the name of another SSM document in your account, a version number of that document, and a file attached to that document version that you want to reuse. For example:</p>
         261  +
    /// <p><code>"Values": \[ "MyOtherDocument/3/my-other-file.py" \]</code></p>
         262  +
    /// <p>However, if the SSM document is shared with you from another account, the full SSM document ARN must be specified instead of the document name only. For example:</p>
         263  +
    /// <p><code>"Values": \[ "arn:aws:ssm:us-east-2:111122223333:document/OtherAccountDocument/3/their-file.py" \]</code></p></li>
         264  +
    /// </ul>
         265  +
    pub fn get_values(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
         266  +
        &self.values
         267  +
    }
         268  +
    /// <p>The name of the document attachment file.</p>
         269  +
    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         270  +
        self.name = ::std::option::Option::Some(input.into());
         271  +
        self
         272  +
    }
         273  +
    /// <p>The name of the document attachment file.</p>
         274  +
    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         275  +
        self.name = input;
         276  +
        self
         277  +
    }
         278  +
    /// <p>The name of the document attachment file.</p>
         279  +
    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
         280  +
        &self.name
         281  +
    }
         282  +
    /// Consumes the builder and constructs a [`AttachmentsSource`](crate::types::AttachmentsSource).
         283  +
    pub fn build(self) -> crate::types::AttachmentsSource {
         284  +
        crate::types::AttachmentsSource {
         285  +
            key: self.key,
         286  +
            values: self.values,
         287  +
            name: self.name,
         288  +
        }
         289  +
    }
         290  +
}

tmp-codegen-diff/aws-sdk/sdk/ssm/src/types/_attachments_source_key.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 `AttachmentsSourceKey`, 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 attachmentssourcekey = unimplemented!();
          14  +
/// match attachmentssourcekey {
          15  +
///     AttachmentsSourceKey::AttachmentReference => { /* ... */ },
          16  +
///     AttachmentsSourceKey::S3FileUrl => { /* ... */ },
          17  +
///     AttachmentsSourceKey::SourceUrl => { /* ... */ },
          18  +
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
          19  +
///     _ => { /* ... */ },
          20  +
/// }
          21  +
/// ```
          22  +
/// The above code demonstrates that when `attachmentssourcekey` represents
          23  +
/// `NewFeature`, the execution path will lead to the second last match arm,
          24  +
/// even though the enum does not contain a variant `AttachmentsSourceKey::NewFeature`
          25  +
/// in the current version of SDK. The reason is that the variable `other`,
          26  +
/// created by the `@` operator, is bound to
          27  +
/// `AttachmentsSourceKey::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 `AttachmentsSourceKey::NewFeature` is defined.
          31  +
/// Specifically, when `attachmentssourcekey` represents `NewFeature`,
          32  +
/// the execution path will hit the second last match arm as before by virtue of
          33  +
/// calling `as_str` on `AttachmentsSourceKey::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 AttachmentsSourceKey {
          46  +
    #[allow(missing_docs)] // documentation missing in model
          47  +
    AttachmentReference,
          48  +
    #[allow(missing_docs)] // documentation missing in model
          49  +
    S3FileUrl,
          50  +
    #[allow(missing_docs)] // documentation missing in model
          51  +
    SourceUrl,
          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 AttachmentsSourceKey {
          57  +
    fn from(s: &str) -> Self {
          58  +
        match s {
          59  +
            "AttachmentReference" => AttachmentsSourceKey::AttachmentReference,
          60  +
            "S3FileUrl" => AttachmentsSourceKey::S3FileUrl,
          61  +
            "SourceUrl" => AttachmentsSourceKey::SourceUrl,
          62  +
            other => AttachmentsSourceKey::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
          63  +
        }
          64  +
    }
          65  +
}
          66  +
impl ::std::str::FromStr for AttachmentsSourceKey {
          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(AttachmentsSourceKey::from(s))
          71  +
    }
          72  +
}
          73  +
impl AttachmentsSourceKey {
          74  +
    /// Returns the `&str` value of the enum member.
          75  +
    pub fn as_str(&self) -> &str {
          76  +
        match self {
          77  +
            AttachmentsSourceKey::AttachmentReference => "AttachmentReference",
          78  +
            AttachmentsSourceKey::S3FileUrl => "S3FileUrl",
          79  +
            AttachmentsSourceKey::SourceUrl => "SourceUrl",
          80  +
            AttachmentsSourceKey::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  +
        &["AttachmentReference", "S3FileUrl", "SourceUrl"]
          86  +
    }
          87  +
}
          88  +
impl ::std::convert::AsRef<str> for AttachmentsSourceKey {
          89  +
    fn as_ref(&self) -> &str {
          90  +
        self.as_str()
          91  +
    }
          92  +
}
          93  +
impl AttachmentsSourceKey {
          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 AttachmentsSourceKey {
         106  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         107  +
        match self {
         108  +
            AttachmentsSourceKey::AttachmentReference => write!(f, "AttachmentReference"),
         109  +
            AttachmentsSourceKey::S3FileUrl => write!(f, "S3FileUrl"),
         110  +
            AttachmentsSourceKey::SourceUrl => write!(f, "SourceUrl"),
         111  +
            AttachmentsSourceKey::Unknown(value) => write!(f, "{value}"),
         112  +
        }
         113  +
    }
         114  +
}

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

@@ -0,1 +0,2099 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>Detailed information about the current state of an individual Automation execution.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           6  +
pub struct AutomationExecution {
           7  +
    /// <p>The execution ID.</p>
           8  +
    pub automation_execution_id: ::std::option::Option<::std::string::String>,
           9  +
    /// <p>The name of the Automation runbook used during the execution.</p>
          10  +
    pub document_name: ::std::option::Option<::std::string::String>,
          11  +
    /// <p>The version of the document to use during execution.</p>
          12  +
    pub document_version: ::std::option::Option<::std::string::String>,
          13  +
    /// <p>The time the execution started.</p>
          14  +
    pub execution_start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
          15  +
    /// <p>The time the execution finished.</p>
          16  +
    pub execution_end_time: ::std::option::Option<::aws_smithy_types::DateTime>,
          17  +
    /// <p>The execution status of the Automation.</p>
          18  +
    pub automation_execution_status: ::std::option::Option<crate::types::AutomationExecutionStatus>,
          19  +
    /// <p>A list of details about the current state of all steps that comprise an execution. An Automation runbook contains a list of steps that are run in order.</p>
          20  +
    pub step_executions: ::std::option::Option<::std::vec::Vec<crate::types::StepExecution>>,
          21  +
    /// <p>A boolean value that indicates if the response contains the full list of the Automation step executions. If true, use the DescribeAutomationStepExecutions API operation to get the full list of step executions.</p>
          22  +
    pub step_executions_truncated: bool,
          23  +
    /// <p>The key-value map of execution parameters, which were supplied when calling <code>StartAutomationExecution</code>.</p>
          24  +
    pub parameters: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
          25  +
    /// <p>The list of execution outputs as defined in the Automation runbook.</p>
          26  +
    pub outputs: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
          27  +
    /// <p>A message describing why an execution has failed, if the status is set to Failed.</p>
          28  +
    pub failure_message: ::std::option::Option<::std::string::String>,
          29  +
    /// <p>A message that describes a non-critical issue that occurred during the automation execution.</p>
          30  +
    pub warning_message: ::std::option::Option<::std::string::String>,
          31  +
    /// <p>The automation execution mode.</p>
          32  +
    pub mode: ::std::option::Option<crate::types::ExecutionMode>,
          33  +
    /// <p>The AutomationExecutionId of the parent automation.</p>
          34  +
    pub parent_automation_execution_id: ::std::option::Option<::std::string::String>,
          35  +
    /// <p>The Amazon Resource Name (ARN) of the user who ran the automation.</p>
          36  +
    pub executed_by: ::std::option::Option<::std::string::String>,
          37  +
    /// <p>The name of the step that is currently running.</p>
          38  +
    pub current_step_name: ::std::option::Option<::std::string::String>,
          39  +
    /// <p>The action of the step that is currently running.</p>
          40  +
    pub current_action: ::std::option::Option<::std::string::String>,
          41  +
    /// <p>The parameter name.</p>
          42  +
    pub target_parameter_name: ::std::option::Option<::std::string::String>,
          43  +
    /// <p>The specified targets.</p>
          44  +
    pub targets: ::std::option::Option<::std::vec::Vec<crate::types::Target>>,
          45  +
    /// <p>The specified key-value mapping of document parameters to target resources.</p>
          46  +
    pub target_maps:
          47  +
        ::std::option::Option<::std::vec::Vec<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>>,
          48  +
    /// <p>A list of resolved targets in the rate control execution.</p>
          49  +
    pub resolved_targets: ::std::option::Option<crate::types::ResolvedTargets>,
          50  +
    /// <p>The <code>MaxConcurrency</code> value specified by the user when the execution started.</p>
          51  +
    pub max_concurrency: ::std::option::Option<::std::string::String>,
          52  +
    /// <p>The MaxErrors value specified by the user when the execution started.</p>
          53  +
    pub max_errors: ::std::option::Option<::std::string::String>,
          54  +
    /// <p>The target of the execution.</p>
          55  +
    pub target: ::std::option::Option<::std::string::String>,
          56  +
    /// <p>The combination of Amazon Web Services Regions and/or Amazon Web Services accounts where you want to run the Automation.</p>
          57  +
    pub target_locations: ::std::option::Option<::std::vec::Vec<crate::types::TargetLocation>>,
          58  +
    /// <p>An aggregate of step execution statuses displayed in the Amazon Web Services Systems Manager console for a multi-Region and multi-account Automation execution.</p>
          59  +
    pub progress_counters: ::std::option::Option<crate::types::ProgressCounters>,
          60  +
    /// <p>The details for the CloudWatch alarm applied to your automation.</p>
          61  +
    pub alarm_configuration: ::std::option::Option<crate::types::AlarmConfiguration>,
          62  +
    /// <p>The CloudWatch alarm that was invoked by the automation.</p>
          63  +
    pub triggered_alarms: ::std::option::Option<::std::vec::Vec<crate::types::AlarmStateInformation>>,
          64  +
    /// <p>A publicly accessible URL for a file that contains the <code>TargetLocations</code> body. Currently, only files in presigned Amazon S3 buckets are supported</p>
          65  +
    pub target_locations_url: ::std::option::Option<::std::string::String>,
          66  +
    /// <p>The subtype of the Automation operation. Currently, the only supported value is <code>ChangeRequest</code>.</p>
          67  +
    pub automation_subtype: ::std::option::Option<crate::types::AutomationSubtype>,
          68  +
    /// <p>The date and time the Automation operation is scheduled to start.</p>
          69  +
    pub scheduled_time: ::std::option::Option<::aws_smithy_types::DateTime>,
          70  +
    /// <p>Information about the Automation runbooks that are run as part of a runbook workflow.</p><note>
          71  +
    /// <p>The Automation runbooks specified for the runbook workflow can't run until all required approvals for the change request have been received.</p>
          72  +
    /// </note>
          73  +
    pub runbooks: ::std::option::Option<::std::vec::Vec<crate::types::Runbook>>,
          74  +
    /// <p>The ID of an OpsItem that is created to represent a Change Manager change request.</p>
          75  +
    pub ops_item_id: ::std::option::Option<::std::string::String>,
          76  +
    /// <p>The ID of a State Manager association used in the Automation operation.</p>
          77  +
    pub association_id: ::std::option::Option<::std::string::String>,
          78  +
    /// <p>The name of the Change Manager change request.</p>
          79  +
    pub change_request_name: ::std::option::Option<::std::string::String>,
          80  +
    /// <p>Variables defined for the automation.</p>
          81  +
    pub variables: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
          82  +
}
          83  +
impl AutomationExecution {
          84  +
    /// <p>The execution ID.</p>
          85  +
    pub fn automation_execution_id(&self) -> ::std::option::Option<&str> {
          86  +
        self.automation_execution_id.as_deref()
          87  +
    }
          88  +
    /// <p>The name of the Automation runbook used during the execution.</p>
          89  +
    pub fn document_name(&self) -> ::std::option::Option<&str> {
          90  +
        self.document_name.as_deref()
          91  +
    }
          92  +
    /// <p>The version of the document to use during execution.</p>
          93  +
    pub fn document_version(&self) -> ::std::option::Option<&str> {
          94  +
        self.document_version.as_deref()
          95  +
    }
          96  +
    /// <p>The time the execution started.</p>
          97  +
    pub fn execution_start_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
          98  +
        self.execution_start_time.as_ref()
          99  +
    }
         100  +
    /// <p>The time the execution finished.</p>
         101  +
    pub fn execution_end_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         102  +
        self.execution_end_time.as_ref()
         103  +
    }
         104  +
    /// <p>The execution status of the Automation.</p>
         105  +
    pub fn automation_execution_status(&self) -> ::std::option::Option<&crate::types::AutomationExecutionStatus> {
         106  +
        self.automation_execution_status.as_ref()
         107  +
    }
         108  +
    /// <p>A list of details about the current state of all steps that comprise an execution. An Automation runbook contains a list of steps that are run in order.</p>
         109  +
    ///
         110  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.step_executions.is_none()`.
         111  +
    pub fn step_executions(&self) -> &[crate::types::StepExecution] {
         112  +
        self.step_executions.as_deref().unwrap_or_default()
         113  +
    }
         114  +
    /// <p>A boolean value that indicates if the response contains the full list of the Automation step executions. If true, use the DescribeAutomationStepExecutions API operation to get the full list of step executions.</p>
         115  +
    pub fn step_executions_truncated(&self) -> bool {
         116  +
        self.step_executions_truncated
         117  +
    }
         118  +
    /// <p>The key-value map of execution parameters, which were supplied when calling <code>StartAutomationExecution</code>.</p>
         119  +
    pub fn parameters(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
         120  +
        self.parameters.as_ref()
         121  +
    }
         122  +
    /// <p>The list of execution outputs as defined in the Automation runbook.</p>
         123  +
    pub fn outputs(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
         124  +
        self.outputs.as_ref()
         125  +
    }
         126  +
    /// <p>A message describing why an execution has failed, if the status is set to Failed.</p>
         127  +
    pub fn failure_message(&self) -> ::std::option::Option<&str> {
         128  +
        self.failure_message.as_deref()
         129  +
    }
         130  +
    /// <p>A message that describes a non-critical issue that occurred during the automation execution.</p>
         131  +
    pub fn warning_message(&self) -> ::std::option::Option<&str> {
         132  +
        self.warning_message.as_deref()
         133  +
    }
         134  +
    /// <p>The automation execution mode.</p>
         135  +
    pub fn mode(&self) -> ::std::option::Option<&crate::types::ExecutionMode> {
         136  +
        self.mode.as_ref()
         137  +
    }
         138  +
    /// <p>The AutomationExecutionId of the parent automation.</p>
         139  +
    pub fn parent_automation_execution_id(&self) -> ::std::option::Option<&str> {
         140  +
        self.parent_automation_execution_id.as_deref()
         141  +
    }
         142  +
    /// <p>The Amazon Resource Name (ARN) of the user who ran the automation.</p>
         143  +
    pub fn executed_by(&self) -> ::std::option::Option<&str> {
         144  +
        self.executed_by.as_deref()
         145  +
    }
         146  +
    /// <p>The name of the step that is currently running.</p>
         147  +
    pub fn current_step_name(&self) -> ::std::option::Option<&str> {
         148  +
        self.current_step_name.as_deref()
         149  +
    }
         150  +
    /// <p>The action of the step that is currently running.</p>
         151  +
    pub fn current_action(&self) -> ::std::option::Option<&str> {
         152  +
        self.current_action.as_deref()
         153  +
    }
         154  +
    /// <p>The parameter name.</p>
         155  +
    pub fn target_parameter_name(&self) -> ::std::option::Option<&str> {
         156  +
        self.target_parameter_name.as_deref()
         157  +
    }
         158  +
    /// <p>The specified targets.</p>
         159  +
    ///
         160  +
    /// 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()`.
         161  +
    pub fn targets(&self) -> &[crate::types::Target] {
         162  +
        self.targets.as_deref().unwrap_or_default()
         163  +
    }
         164  +
    /// <p>The specified key-value mapping of document parameters to target resources.</p>
         165  +
    ///
         166  +
    /// 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()`.
         167  +
    pub fn target_maps(&self) -> &[::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>] {
         168  +
        self.target_maps.as_deref().unwrap_or_default()
         169  +
    }
         170  +
    /// <p>A list of resolved targets in the rate control execution.</p>
         171  +
    pub fn resolved_targets(&self) -> ::std::option::Option<&crate::types::ResolvedTargets> {
         172  +
        self.resolved_targets.as_ref()
         173  +
    }
         174  +
    /// <p>The <code>MaxConcurrency</code> value specified by the user when the execution started.</p>
         175  +
    pub fn max_concurrency(&self) -> ::std::option::Option<&str> {
         176  +
        self.max_concurrency.as_deref()
         177  +
    }
         178  +
    /// <p>The MaxErrors value specified by the user when the execution started.</p>
         179  +
    pub fn max_errors(&self) -> ::std::option::Option<&str> {
         180  +
        self.max_errors.as_deref()
         181  +
    }
         182  +
    /// <p>The target of the execution.</p>
         183  +
    pub fn target(&self) -> ::std::option::Option<&str> {
         184  +
        self.target.as_deref()
         185  +
    }
         186  +
    /// <p>The combination of Amazon Web Services Regions and/or Amazon Web Services accounts where you want to run the Automation.</p>
         187  +
    ///
         188  +
    /// 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()`.
         189  +
    pub fn target_locations(&self) -> &[crate::types::TargetLocation] {
         190  +
        self.target_locations.as_deref().unwrap_or_default()
         191  +
    }
         192  +
    /// <p>An aggregate of step execution statuses displayed in the Amazon Web Services Systems Manager console for a multi-Region and multi-account Automation execution.</p>
         193  +
    pub fn progress_counters(&self) -> ::std::option::Option<&crate::types::ProgressCounters> {
         194  +
        self.progress_counters.as_ref()
         195  +
    }
         196  +
    /// <p>The details for the CloudWatch alarm applied to your automation.</p>
         197  +
    pub fn alarm_configuration(&self) -> ::std::option::Option<&crate::types::AlarmConfiguration> {
         198  +
        self.alarm_configuration.as_ref()
         199  +
    }
         200  +
    /// <p>The CloudWatch alarm that was invoked by the automation.</p>
         201  +
    ///
         202  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.triggered_alarms.is_none()`.
         203  +
    pub fn triggered_alarms(&self) -> &[crate::types::AlarmStateInformation] {
         204  +
        self.triggered_alarms.as_deref().unwrap_or_default()
         205  +
    }
         206  +
    /// <p>A publicly accessible URL for a file that contains the <code>TargetLocations</code> body. Currently, only files in presigned Amazon S3 buckets are supported</p>
         207  +
    pub fn target_locations_url(&self) -> ::std::option::Option<&str> {
         208  +
        self.target_locations_url.as_deref()
         209  +
    }
         210  +
    /// <p>The subtype of the Automation operation. Currently, the only supported value is <code>ChangeRequest</code>.</p>
         211  +
    pub fn automation_subtype(&self) -> ::std::option::Option<&crate::types::AutomationSubtype> {
         212  +
        self.automation_subtype.as_ref()
         213  +
    }
         214  +
    /// <p>The date and time the Automation operation is scheduled to start.</p>
         215  +
    pub fn scheduled_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         216  +
        self.scheduled_time.as_ref()
         217  +
    }
         218  +
    /// <p>Information about the Automation runbooks that are run as part of a runbook workflow.</p><note>
         219  +
    /// <p>The Automation runbooks specified for the runbook workflow can't run until all required approvals for the change request have been received.</p>
         220  +
    /// </note>
         221  +
    ///
         222  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.runbooks.is_none()`.
         223  +
    pub fn runbooks(&self) -> &[crate::types::Runbook] {
         224  +
        self.runbooks.as_deref().unwrap_or_default()
         225  +
    }
         226  +
    /// <p>The ID of an OpsItem that is created to represent a Change Manager change request.</p>
         227  +
    pub fn ops_item_id(&self) -> ::std::option::Option<&str> {
         228  +
        self.ops_item_id.as_deref()
         229  +
    }
         230  +
    /// <p>The ID of a State Manager association used in the Automation operation.</p>
         231  +
    pub fn association_id(&self) -> ::std::option::Option<&str> {
         232  +
        self.association_id.as_deref()
         233  +
    }
         234  +
    /// <p>The name of the Change Manager change request.</p>
         235  +
    pub fn change_request_name(&self) -> ::std::option::Option<&str> {
         236  +
        self.change_request_name.as_deref()
         237  +
    }
         238  +
    /// <p>Variables defined for the automation.</p>
         239  +
    pub fn variables(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
         240  +
        self.variables.as_ref()
         241  +
    }
         242  +
}
         243  +
static AUTOMATIONEXECUTION_MEMBER_AUTOMATION_EXECUTION_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         244  +
    ::aws_smithy_schema::ShapeId::from_parts(
         245  +
        "com.amazonaws.ssm#AutomationExecution$AutomationExecutionId",
         246  +
        "com.amazonaws.ssm",
         247  +
        "AutomationExecution",
         248  +
    ),
         249  +
    ::aws_smithy_schema::ShapeType::String,
         250  +
    "AutomationExecutionId",
         251  +
    0,
         252  +
);
         253  +
static AUTOMATIONEXECUTION_MEMBER_DOCUMENT_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         254  +
    ::aws_smithy_schema::ShapeId::from_parts(
         255  +
        "com.amazonaws.ssm#AutomationExecution$DocumentName",
         256  +
        "com.amazonaws.ssm",
         257  +
        "AutomationExecution",
         258  +
    ),
         259  +
    ::aws_smithy_schema::ShapeType::String,
         260  +
    "DocumentName",
         261  +
    1,
         262  +
);
         263  +
static AUTOMATIONEXECUTION_MEMBER_DOCUMENT_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         264  +
    ::aws_smithy_schema::ShapeId::from_parts(
         265  +
        "com.amazonaws.ssm#AutomationExecution$DocumentVersion",
         266  +
        "com.amazonaws.ssm",
         267  +
        "AutomationExecution",
         268  +
    ),
         269  +
    ::aws_smithy_schema::ShapeType::String,
         270  +
    "DocumentVersion",
         271  +
    2,
         272  +
);
         273  +
static AUTOMATIONEXECUTION_MEMBER_EXECUTION_START_TIME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         274  +
    ::aws_smithy_schema::ShapeId::from_parts(
         275  +
        "com.amazonaws.ssm#AutomationExecution$ExecutionStartTime",
         276  +
        "com.amazonaws.ssm",
         277  +
        "AutomationExecution",
         278  +
    ),
         279  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         280  +
    "ExecutionStartTime",
         281  +
    3,
         282  +
);
         283  +
static AUTOMATIONEXECUTION_MEMBER_EXECUTION_END_TIME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         284  +
    ::aws_smithy_schema::ShapeId::from_parts(
         285  +
        "com.amazonaws.ssm#AutomationExecution$ExecutionEndTime",
         286  +
        "com.amazonaws.ssm",
         287  +
        "AutomationExecution",
         288  +
    ),
         289  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         290  +
    "ExecutionEndTime",
         291  +
    4,
         292  +
);
         293  +
static AUTOMATIONEXECUTION_MEMBER_AUTOMATION_EXECUTION_STATUS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         294  +
    ::aws_smithy_schema::ShapeId::from_parts(
         295  +
        "com.amazonaws.ssm#AutomationExecution$AutomationExecutionStatus",
         296  +
        "com.amazonaws.ssm",
         297  +
        "AutomationExecution",
         298  +
    ),
         299  +
    ::aws_smithy_schema::ShapeType::String,
         300  +
    "AutomationExecutionStatus",
         301  +
    5,
         302  +
);
         303  +
static AUTOMATIONEXECUTION_MEMBER_STEP_EXECUTIONS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         304  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#StepExecutionList$member", "com.amazonaws.ssm", "StepExecutionList"),
         305  +
    ::aws_smithy_schema::ShapeType::Structure,
         306  +
    "member",
         307  +
    0,
         308  +
);
         309  +
static AUTOMATIONEXECUTION_MEMBER_STEP_EXECUTIONS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         310  +
    ::aws_smithy_schema::ShapeId::from_parts(
         311  +
        "com.amazonaws.ssm#AutomationExecution$StepExecutions",
         312  +
        "com.amazonaws.ssm",
         313  +
        "AutomationExecution",
         314  +
    ),
         315  +
    ::aws_smithy_schema::ShapeType::List,
         316  +
    "StepExecutions",
         317  +
    6,
         318  +
)
         319  +
.with_list_member(&AUTOMATIONEXECUTION_MEMBER_STEP_EXECUTIONS_MEMBER);
         320  +
static AUTOMATIONEXECUTION_MEMBER_STEP_EXECUTIONS_TRUNCATED: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         321  +
    ::aws_smithy_schema::ShapeId::from_parts(
         322  +
        "com.amazonaws.ssm#AutomationExecution$StepExecutionsTruncated",
         323  +
        "com.amazonaws.ssm",
         324  +
        "AutomationExecution",
         325  +
    ),
         326  +
    ::aws_smithy_schema::ShapeType::Boolean,
         327  +
    "StepExecutionsTruncated",
         328  +
    7,
         329  +
);
         330  +
static AUTOMATIONEXECUTION_MEMBER_PARAMETERS_VALUE_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         331  +
    ::aws_smithy_schema::ShapeId::from_parts(
         332  +
        "com.amazonaws.ssm#AutomationParameterValueList$member",
         333  +
        "com.amazonaws.ssm",
         334  +
        "AutomationParameterValueList",
         335  +
    ),
         336  +
    ::aws_smithy_schema::ShapeType::String,
         337  +
    "member",
         338  +
    0,
         339  +
);
         340  +
static AUTOMATIONEXECUTION_MEMBER_PARAMETERS_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         341  +
    ::aws_smithy_schema::ShapeId::from_parts(
         342  +
        "com.amazonaws.ssm#AutomationParameterMap$key",
         343  +
        "com.amazonaws.ssm",
         344  +
        "AutomationParameterMap",
         345  +
    ),
         346  +
    ::aws_smithy_schema::ShapeType::String,
         347  +
    "key",
         348  +
    0,
         349  +
);
         350  +
static AUTOMATIONEXECUTION_MEMBER_PARAMETERS_VALUE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         351  +
    ::aws_smithy_schema::ShapeId::from_parts(
         352  +
        "com.amazonaws.ssm#AutomationParameterMap$value",
         353  +
        "com.amazonaws.ssm",
         354  +
        "AutomationParameterMap",
         355  +
    ),
         356  +
    ::aws_smithy_schema::ShapeType::List,
         357  +
    "value",
         358  +
    1,
         359  +
)
         360  +
.with_list_member(&AUTOMATIONEXECUTION_MEMBER_PARAMETERS_VALUE_MEMBER);
         361  +
static AUTOMATIONEXECUTION_MEMBER_PARAMETERS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         362  +
    ::aws_smithy_schema::ShapeId::from_parts(
         363  +
        "com.amazonaws.ssm#AutomationExecution$Parameters",
         364  +
        "com.amazonaws.ssm",
         365  +
        "AutomationExecution",
         366  +
    ),
         367  +
    ::aws_smithy_schema::ShapeType::Map,
         368  +
    "Parameters",
         369  +
    8,
         370  +
)
         371  +
.with_map_members(&AUTOMATIONEXECUTION_MEMBER_PARAMETERS_KEY, &AUTOMATIONEXECUTION_MEMBER_PARAMETERS_VALUE);
         372  +
static AUTOMATIONEXECUTION_MEMBER_OUTPUTS_VALUE_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         373  +
    ::aws_smithy_schema::ShapeId::from_parts(
         374  +
        "com.amazonaws.ssm#AutomationParameterValueList$member",
         375  +
        "com.amazonaws.ssm",
         376  +
        "AutomationParameterValueList",
         377  +
    ),
         378  +
    ::aws_smithy_schema::ShapeType::String,
         379  +
    "member",
         380  +
    0,
         381  +
);
         382  +
static AUTOMATIONEXECUTION_MEMBER_OUTPUTS_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         383  +
    ::aws_smithy_schema::ShapeId::from_parts(
         384  +
        "com.amazonaws.ssm#AutomationParameterMap$key",
         385  +
        "com.amazonaws.ssm",
         386  +
        "AutomationParameterMap",
         387  +
    ),
         388  +
    ::aws_smithy_schema::ShapeType::String,
         389  +
    "key",
         390  +
    0,
         391  +
);
         392  +
static AUTOMATIONEXECUTION_MEMBER_OUTPUTS_VALUE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         393  +
    ::aws_smithy_schema::ShapeId::from_parts(
         394  +
        "com.amazonaws.ssm#AutomationParameterMap$value",
         395  +
        "com.amazonaws.ssm",
         396  +
        "AutomationParameterMap",
         397  +
    ),
         398  +
    ::aws_smithy_schema::ShapeType::List,
         399  +
    "value",
         400  +
    1,
         401  +
)
         402  +
.with_list_member(&AUTOMATIONEXECUTION_MEMBER_OUTPUTS_VALUE_MEMBER);
         403  +
static AUTOMATIONEXECUTION_MEMBER_OUTPUTS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         404  +
    ::aws_smithy_schema::ShapeId::from_parts(
         405  +
        "com.amazonaws.ssm#AutomationExecution$Outputs",
         406  +
        "com.amazonaws.ssm",
         407  +
        "AutomationExecution",
         408  +
    ),
         409  +
    ::aws_smithy_schema::ShapeType::Map,
         410  +
    "Outputs",
         411  +
    9,
         412  +
)
         413  +
.with_map_members(&AUTOMATIONEXECUTION_MEMBER_OUTPUTS_KEY, &AUTOMATIONEXECUTION_MEMBER_OUTPUTS_VALUE);
         414  +
static AUTOMATIONEXECUTION_MEMBER_FAILURE_MESSAGE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         415  +
    ::aws_smithy_schema::ShapeId::from_parts(
         416  +
        "com.amazonaws.ssm#AutomationExecution$FailureMessage",
         417  +
        "com.amazonaws.ssm",
         418  +
        "AutomationExecution",
         419  +
    ),
         420  +
    ::aws_smithy_schema::ShapeType::String,
         421  +
    "FailureMessage",
         422  +
    10,
         423  +
);
         424  +
static AUTOMATIONEXECUTION_MEMBER_WARNING_MESSAGE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         425  +
    ::aws_smithy_schema::ShapeId::from_parts(
         426  +
        "com.amazonaws.ssm#AutomationExecution$WarningMessage",
         427  +
        "com.amazonaws.ssm",
         428  +
        "AutomationExecution",
         429  +
    ),
         430  +
    ::aws_smithy_schema::ShapeType::String,
         431  +
    "WarningMessage",
         432  +
    11,
         433  +
);
         434  +
static AUTOMATIONEXECUTION_MEMBER_MODE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         435  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#AutomationExecution$Mode", "com.amazonaws.ssm", "AutomationExecution"),
         436  +
    ::aws_smithy_schema::ShapeType::String,
         437  +
    "Mode",
         438  +
    12,
         439  +
);
         440  +
static AUTOMATIONEXECUTION_MEMBER_PARENT_AUTOMATION_EXECUTION_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         441  +
    ::aws_smithy_schema::ShapeId::from_parts(
         442  +
        "com.amazonaws.ssm#AutomationExecution$ParentAutomationExecutionId",
         443  +
        "com.amazonaws.ssm",
         444  +
        "AutomationExecution",
         445  +
    ),
         446  +
    ::aws_smithy_schema::ShapeType::String,
         447  +
    "ParentAutomationExecutionId",
         448  +
    13,
         449  +
);
         450  +
static AUTOMATIONEXECUTION_MEMBER_EXECUTED_BY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         451  +
    ::aws_smithy_schema::ShapeId::from_parts(
         452  +
        "com.amazonaws.ssm#AutomationExecution$ExecutedBy",
         453  +
        "com.amazonaws.ssm",
         454  +
        "AutomationExecution",
         455  +
    ),
         456  +
    ::aws_smithy_schema::ShapeType::String,
         457  +
    "ExecutedBy",
         458  +
    14,
         459  +
);
         460  +
static AUTOMATIONEXECUTION_MEMBER_CURRENT_STEP_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         461  +
    ::aws_smithy_schema::ShapeId::from_parts(
         462  +
        "com.amazonaws.ssm#AutomationExecution$CurrentStepName",
         463  +
        "com.amazonaws.ssm",
         464  +
        "AutomationExecution",
         465  +
    ),
         466  +
    ::aws_smithy_schema::ShapeType::String,
         467  +
    "CurrentStepName",
         468  +
    15,
         469  +
);
         470  +
static AUTOMATIONEXECUTION_MEMBER_CURRENT_ACTION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         471  +
    ::aws_smithy_schema::ShapeId::from_parts(
         472  +
        "com.amazonaws.ssm#AutomationExecution$CurrentAction",
         473  +
        "com.amazonaws.ssm",
         474  +
        "AutomationExecution",
         475  +
    ),
         476  +
    ::aws_smithy_schema::ShapeType::String,
         477  +
    "CurrentAction",
         478  +
    16,
         479  +
);
         480  +
static AUTOMATIONEXECUTION_MEMBER_TARGET_PARAMETER_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         481  +
    ::aws_smithy_schema::ShapeId::from_parts(
         482  +
        "com.amazonaws.ssm#AutomationExecution$TargetParameterName",
         483  +
        "com.amazonaws.ssm",
         484  +
        "AutomationExecution",
         485  +
    ),
         486  +
    ::aws_smithy_schema::ShapeType::String,
         487  +
    "TargetParameterName",
         488  +
    17,
         489  +
);
         490  +
static AUTOMATIONEXECUTION_MEMBER_TARGETS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         491  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Targets$member", "com.amazonaws.ssm", "Targets"),
         492  +
    ::aws_smithy_schema::ShapeType::Structure,
         493  +
    "member",
         494  +
    0,
         495  +
);
         496  +
static AUTOMATIONEXECUTION_MEMBER_TARGETS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         497  +
    ::aws_smithy_schema::ShapeId::from_parts(
         498  +
        "com.amazonaws.ssm#AutomationExecution$Targets",
         499  +
        "com.amazonaws.ssm",
         500  +
        "AutomationExecution",
         501  +
    ),
         502  +
    ::aws_smithy_schema::ShapeType::List,
         503  +
    "Targets",
         504  +
    18,
         505  +
)
         506  +
.with_list_member(&AUTOMATIONEXECUTION_MEMBER_TARGETS_MEMBER);
         507  +
static AUTOMATIONEXECUTION_MEMBER_TARGET_MAPS_MEMBER_VALUE_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         508  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#TargetMapValueList$member", "com.amazonaws.ssm", "TargetMapValueList"),
         509  +
    ::aws_smithy_schema::ShapeType::String,
         510  +
    "member",
         511  +
    0,
         512  +
);
         513  +
static AUTOMATIONEXECUTION_MEMBER_TARGET_MAPS_MEMBER_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         514  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#TargetMap$key", "com.amazonaws.ssm", "TargetMap"),
         515  +
    ::aws_smithy_schema::ShapeType::String,
         516  +
    "key",
         517  +
    0,
         518  +
);
         519  +
static AUTOMATIONEXECUTION_MEMBER_TARGET_MAPS_MEMBER_VALUE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         520  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#TargetMap$value", "com.amazonaws.ssm", "TargetMap"),
         521  +
    ::aws_smithy_schema::ShapeType::List,
         522  +
    "value",
         523  +
    1,
         524  +
)
         525  +
.with_list_member(&AUTOMATIONEXECUTION_MEMBER_TARGET_MAPS_MEMBER_VALUE_MEMBER);
         526  +
static AUTOMATIONEXECUTION_MEMBER_TARGET_MAPS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         527  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#TargetMaps$member", "com.amazonaws.ssm", "TargetMaps"),
         528  +
    ::aws_smithy_schema::ShapeType::Map,
         529  +
    "member",
         530  +
    0,
         531  +
)
         532  +
.with_map_members(
         533  +
    &AUTOMATIONEXECUTION_MEMBER_TARGET_MAPS_MEMBER_KEY,
         534  +
    &AUTOMATIONEXECUTION_MEMBER_TARGET_MAPS_MEMBER_VALUE,
         535  +
);
         536  +
static AUTOMATIONEXECUTION_MEMBER_TARGET_MAPS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         537  +
    ::aws_smithy_schema::ShapeId::from_parts(
         538  +
        "com.amazonaws.ssm#AutomationExecution$TargetMaps",
         539  +
        "com.amazonaws.ssm",
         540  +
        "AutomationExecution",
         541  +
    ),
         542  +
    ::aws_smithy_schema::ShapeType::List,
         543  +
    "TargetMaps",
         544  +
    19,
         545  +
)
         546  +
.with_list_member(&AUTOMATIONEXECUTION_MEMBER_TARGET_MAPS_MEMBER);
         547  +
static AUTOMATIONEXECUTION_MEMBER_RESOLVED_TARGETS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         548  +
    ::aws_smithy_schema::ShapeId::from_parts(
         549  +
        "com.amazonaws.ssm#AutomationExecution$ResolvedTargets",
         550  +
        "com.amazonaws.ssm",
         551  +
        "AutomationExecution",
         552  +
    ),
         553  +
    ::aws_smithy_schema::ShapeType::Structure,
         554  +
    "ResolvedTargets",
         555  +
    20,
         556  +
);
         557  +
static AUTOMATIONEXECUTION_MEMBER_MAX_CONCURRENCY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         558  +
    ::aws_smithy_schema::ShapeId::from_parts(
         559  +
        "com.amazonaws.ssm#AutomationExecution$MaxConcurrency",
         560  +
        "com.amazonaws.ssm",
         561  +
        "AutomationExecution",
         562  +
    ),
         563  +
    ::aws_smithy_schema::ShapeType::String,
         564  +
    "MaxConcurrency",
         565  +
    21,
         566  +
);
         567  +
static AUTOMATIONEXECUTION_MEMBER_MAX_ERRORS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         568  +
    ::aws_smithy_schema::ShapeId::from_parts(
         569  +
        "com.amazonaws.ssm#AutomationExecution$MaxErrors",
         570  +
        "com.amazonaws.ssm",
         571  +
        "AutomationExecution",
         572  +
    ),
         573  +
    ::aws_smithy_schema::ShapeType::String,
         574  +
    "MaxErrors",
         575  +
    22,
         576  +
);
         577  +
static AUTOMATIONEXECUTION_MEMBER_TARGET: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         578  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#AutomationExecution$Target", "com.amazonaws.ssm", "AutomationExecution"),
         579  +
    ::aws_smithy_schema::ShapeType::String,
         580  +
    "Target",
         581  +
    23,
         582  +
);
         583  +
static AUTOMATIONEXECUTION_MEMBER_TARGET_LOCATIONS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         584  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#TargetLocations$member", "com.amazonaws.ssm", "TargetLocations"),
         585  +
    ::aws_smithy_schema::ShapeType::Structure,
         586  +
    "member",
         587  +
    0,
         588  +
);
         589  +
static AUTOMATIONEXECUTION_MEMBER_TARGET_LOCATIONS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         590  +
    ::aws_smithy_schema::ShapeId::from_parts(
         591  +
        "com.amazonaws.ssm#AutomationExecution$TargetLocations",
         592  +
        "com.amazonaws.ssm",
         593  +
        "AutomationExecution",
         594  +
    ),
         595  +
    ::aws_smithy_schema::ShapeType::List,
         596  +
    "TargetLocations",
         597  +
    24,
         598  +
)
         599  +
.with_list_member(&AUTOMATIONEXECUTION_MEMBER_TARGET_LOCATIONS_MEMBER);
         600  +
static AUTOMATIONEXECUTION_MEMBER_PROGRESS_COUNTERS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         601  +
    ::aws_smithy_schema::ShapeId::from_parts(
         602  +
        "com.amazonaws.ssm#AutomationExecution$ProgressCounters",
         603  +
        "com.amazonaws.ssm",
         604  +
        "AutomationExecution",
         605  +
    ),
         606  +
    ::aws_smithy_schema::ShapeType::Structure,
         607  +
    "ProgressCounters",
         608  +
    25,
         609  +
);
         610  +
static AUTOMATIONEXECUTION_MEMBER_ALARM_CONFIGURATION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         611  +
    ::aws_smithy_schema::ShapeId::from_parts(
         612  +
        "com.amazonaws.ssm#AutomationExecution$AlarmConfiguration",
         613  +
        "com.amazonaws.ssm",
         614  +
        "AutomationExecution",
         615  +
    ),
         616  +
    ::aws_smithy_schema::ShapeType::Structure,
         617  +
    "AlarmConfiguration",
         618  +
    26,
         619  +
);
         620  +
static AUTOMATIONEXECUTION_MEMBER_TRIGGERED_ALARMS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         621  +
    ::aws_smithy_schema::ShapeId::from_parts(
         622  +
        "com.amazonaws.ssm#AlarmStateInformationList$member",
         623  +
        "com.amazonaws.ssm",
         624  +
        "AlarmStateInformationList",
         625  +
    ),
         626  +
    ::aws_smithy_schema::ShapeType::Structure,
         627  +
    "member",
         628  +
    0,
         629  +
);
         630  +
static AUTOMATIONEXECUTION_MEMBER_TRIGGERED_ALARMS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         631  +
    ::aws_smithy_schema::ShapeId::from_parts(
         632  +
        "com.amazonaws.ssm#AutomationExecution$TriggeredAlarms",
         633  +
        "com.amazonaws.ssm",
         634  +
        "AutomationExecution",
         635  +
    ),
         636  +
    ::aws_smithy_schema::ShapeType::List,
         637  +
    "TriggeredAlarms",
         638  +
    27,
         639  +
)
         640  +
.with_list_member(&AUTOMATIONEXECUTION_MEMBER_TRIGGERED_ALARMS_MEMBER);
         641  +
static AUTOMATIONEXECUTION_MEMBER_TARGET_LOCATIONS_URL: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         642  +
    ::aws_smithy_schema::ShapeId::from_parts(
         643  +
        "com.amazonaws.ssm#AutomationExecution$TargetLocationsURL",
         644  +
        "com.amazonaws.ssm",
         645  +
        "AutomationExecution",
         646  +
    ),
         647  +
    ::aws_smithy_schema::ShapeType::String,
         648  +
    "TargetLocationsURL",
         649  +
    28,
         650  +
);
         651  +
static AUTOMATIONEXECUTION_MEMBER_AUTOMATION_SUBTYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         652  +
    ::aws_smithy_schema::ShapeId::from_parts(
         653  +
        "com.amazonaws.ssm#AutomationExecution$AutomationSubtype",
         654  +
        "com.amazonaws.ssm",
         655  +
        "AutomationExecution",
         656  +
    ),
         657  +
    ::aws_smithy_schema::ShapeType::String,
         658  +
    "AutomationSubtype",
         659  +
    29,
         660  +
);
         661  +
static AUTOMATIONEXECUTION_MEMBER_SCHEDULED_TIME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         662  +
    ::aws_smithy_schema::ShapeId::from_parts(
         663  +
        "com.amazonaws.ssm#AutomationExecution$ScheduledTime",
         664  +
        "com.amazonaws.ssm",
         665  +
        "AutomationExecution",
         666  +
    ),
         667  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         668  +
    "ScheduledTime",
         669  +
    30,
         670  +
);
         671  +
static AUTOMATIONEXECUTION_MEMBER_RUNBOOKS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         672  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Runbooks$member", "com.amazonaws.ssm", "Runbooks"),
         673  +
    ::aws_smithy_schema::ShapeType::Structure,
         674  +
    "member",
         675  +
    0,
         676  +
);
         677  +
static AUTOMATIONEXECUTION_MEMBER_RUNBOOKS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         678  +
    ::aws_smithy_schema::ShapeId::from_parts(
         679  +
        "com.amazonaws.ssm#AutomationExecution$Runbooks",
         680  +
        "com.amazonaws.ssm",
         681  +
        "AutomationExecution",
         682  +
    ),
         683  +
    ::aws_smithy_schema::ShapeType::List,
         684  +
    "Runbooks",
         685  +
    31,
         686  +
)
         687  +
.with_list_member(&AUTOMATIONEXECUTION_MEMBER_RUNBOOKS_MEMBER);
         688  +
static AUTOMATIONEXECUTION_MEMBER_OPS_ITEM_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         689  +
    ::aws_smithy_schema::ShapeId::from_parts(
         690  +
        "com.amazonaws.ssm#AutomationExecution$OpsItemId",
         691  +
        "com.amazonaws.ssm",
         692  +
        "AutomationExecution",
         693  +
    ),
         694  +
    ::aws_smithy_schema::ShapeType::String,
         695  +
    "OpsItemId",
         696  +
    32,
         697  +
);
         698  +
static AUTOMATIONEXECUTION_MEMBER_ASSOCIATION_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         699  +
    ::aws_smithy_schema::ShapeId::from_parts(
         700  +
        "com.amazonaws.ssm#AutomationExecution$AssociationId",
         701  +
        "com.amazonaws.ssm",
         702  +
        "AutomationExecution",
         703  +
    ),
         704  +
    ::aws_smithy_schema::ShapeType::String,
         705  +
    "AssociationId",
         706  +
    33,
         707  +
);
         708  +
static AUTOMATIONEXECUTION_MEMBER_CHANGE_REQUEST_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         709  +
    ::aws_smithy_schema::ShapeId::from_parts(
         710  +
        "com.amazonaws.ssm#AutomationExecution$ChangeRequestName",
         711  +
        "com.amazonaws.ssm",
         712  +
        "AutomationExecution",
         713  +
    ),
         714  +
    ::aws_smithy_schema::ShapeType::String,
         715  +
    "ChangeRequestName",
         716  +
    34,
         717  +
);
         718  +
static AUTOMATIONEXECUTION_MEMBER_VARIABLES_VALUE_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         719  +
    ::aws_smithy_schema::ShapeId::from_parts(
         720  +
        "com.amazonaws.ssm#AutomationParameterValueList$member",
         721  +
        "com.amazonaws.ssm",
         722  +
        "AutomationParameterValueList",
         723  +
    ),
         724  +
    ::aws_smithy_schema::ShapeType::String,
         725  +
    "member",
         726  +
    0,
         727  +
);
         728  +
static AUTOMATIONEXECUTION_MEMBER_VARIABLES_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         729  +
    ::aws_smithy_schema::ShapeId::from_parts(
         730  +
        "com.amazonaws.ssm#AutomationParameterMap$key",
         731  +
        "com.amazonaws.ssm",
         732  +
        "AutomationParameterMap",
         733  +
    ),
         734  +
    ::aws_smithy_schema::ShapeType::String,
         735  +
    "key",
         736  +
    0,
         737  +
);
         738  +
static AUTOMATIONEXECUTION_MEMBER_VARIABLES_VALUE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         739  +
    ::aws_smithy_schema::ShapeId::from_parts(
         740  +
        "com.amazonaws.ssm#AutomationParameterMap$value",
         741  +
        "com.amazonaws.ssm",
         742  +
        "AutomationParameterMap",
         743  +
    ),
         744  +
    ::aws_smithy_schema::ShapeType::List,
         745  +
    "value",
         746  +
    1,
         747  +
)
         748  +
.with_list_member(&AUTOMATIONEXECUTION_MEMBER_VARIABLES_VALUE_MEMBER);
         749  +
static AUTOMATIONEXECUTION_MEMBER_VARIABLES: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         750  +
    ::aws_smithy_schema::ShapeId::from_parts(
         751  +
        "com.amazonaws.ssm#AutomationExecution$Variables",
         752  +
        "com.amazonaws.ssm",
         753  +
        "AutomationExecution",
         754  +
    ),
         755  +
    ::aws_smithy_schema::ShapeType::Map,
         756  +
    "Variables",
         757  +
    35,
         758  +
)
         759  +
.with_map_members(&AUTOMATIONEXECUTION_MEMBER_VARIABLES_KEY, &AUTOMATIONEXECUTION_MEMBER_VARIABLES_VALUE);
         760  +
static AUTOMATIONEXECUTION_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
         761  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#AutomationExecution", "com.amazonaws.ssm", "AutomationExecution"),
         762  +
    ::aws_smithy_schema::ShapeType::Structure,
         763  +
    &[
         764  +
        &AUTOMATIONEXECUTION_MEMBER_AUTOMATION_EXECUTION_ID,
         765  +
        &AUTOMATIONEXECUTION_MEMBER_DOCUMENT_NAME,
         766  +
        &AUTOMATIONEXECUTION_MEMBER_DOCUMENT_VERSION,
         767  +
        &AUTOMATIONEXECUTION_MEMBER_EXECUTION_START_TIME,
         768  +
        &AUTOMATIONEXECUTION_MEMBER_EXECUTION_END_TIME,
         769  +
        &AUTOMATIONEXECUTION_MEMBER_AUTOMATION_EXECUTION_STATUS,
         770  +
        &AUTOMATIONEXECUTION_MEMBER_STEP_EXECUTIONS,
         771  +
        &AUTOMATIONEXECUTION_MEMBER_STEP_EXECUTIONS_TRUNCATED,
         772  +
        &AUTOMATIONEXECUTION_MEMBER_PARAMETERS,
         773  +
        &AUTOMATIONEXECUTION_MEMBER_OUTPUTS,
         774  +
        &AUTOMATIONEXECUTION_MEMBER_FAILURE_MESSAGE,
         775  +
        &AUTOMATIONEXECUTION_MEMBER_WARNING_MESSAGE,
         776  +
        &AUTOMATIONEXECUTION_MEMBER_MODE,
         777  +
        &AUTOMATIONEXECUTION_MEMBER_PARENT_AUTOMATION_EXECUTION_ID,
         778  +
        &AUTOMATIONEXECUTION_MEMBER_EXECUTED_BY,
         779  +
        &AUTOMATIONEXECUTION_MEMBER_CURRENT_STEP_NAME,
         780  +
        &AUTOMATIONEXECUTION_MEMBER_CURRENT_ACTION,
         781  +
        &AUTOMATIONEXECUTION_MEMBER_TARGET_PARAMETER_NAME,
         782  +
        &AUTOMATIONEXECUTION_MEMBER_TARGETS,
         783  +
        &AUTOMATIONEXECUTION_MEMBER_TARGET_MAPS,
         784  +
        &AUTOMATIONEXECUTION_MEMBER_RESOLVED_TARGETS,
         785  +
        &AUTOMATIONEXECUTION_MEMBER_MAX_CONCURRENCY,
         786  +
        &AUTOMATIONEXECUTION_MEMBER_MAX_ERRORS,
         787  +
        &AUTOMATIONEXECUTION_MEMBER_TARGET,
         788  +
        &AUTOMATIONEXECUTION_MEMBER_TARGET_LOCATIONS,
         789  +
        &AUTOMATIONEXECUTION_MEMBER_PROGRESS_COUNTERS,
         790  +
        &AUTOMATIONEXECUTION_MEMBER_ALARM_CONFIGURATION,
         791  +
        &AUTOMATIONEXECUTION_MEMBER_TRIGGERED_ALARMS,
         792  +
        &AUTOMATIONEXECUTION_MEMBER_TARGET_LOCATIONS_URL,
         793  +
        &AUTOMATIONEXECUTION_MEMBER_AUTOMATION_SUBTYPE,
         794  +
        &AUTOMATIONEXECUTION_MEMBER_SCHEDULED_TIME,
         795  +
        &AUTOMATIONEXECUTION_MEMBER_RUNBOOKS,
         796  +
        &AUTOMATIONEXECUTION_MEMBER_OPS_ITEM_ID,
         797  +
        &AUTOMATIONEXECUTION_MEMBER_ASSOCIATION_ID,
         798  +
        &AUTOMATIONEXECUTION_MEMBER_CHANGE_REQUEST_NAME,
         799  +
        &AUTOMATIONEXECUTION_MEMBER_VARIABLES,
         800  +
    ],
         801  +
);
         802  +
impl AutomationExecution {
         803  +
    /// The schema for this shape.
         804  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &AUTOMATIONEXECUTION_SCHEMA;
         805  +
}
         806  +
impl ::aws_smithy_schema::serde::SerializableStruct for AutomationExecution {
         807  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         808  +
    fn serialize_members(
         809  +
        &self,
         810  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         811  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         812  +
        if let Some(ref val) = self.automation_execution_id {
         813  +
            ser.write_string(&AUTOMATIONEXECUTION_MEMBER_AUTOMATION_EXECUTION_ID, val)?;
         814  +
        }
         815  +
        if let Some(ref val) = self.document_name {
         816  +
            ser.write_string(&AUTOMATIONEXECUTION_MEMBER_DOCUMENT_NAME, val)?;
         817  +
        }
         818  +
        if let Some(ref val) = self.document_version {
         819  +
            ser.write_string(&AUTOMATIONEXECUTION_MEMBER_DOCUMENT_VERSION, val)?;
         820  +
        }
         821  +
        if let Some(ref val) = self.execution_start_time {
         822  +
            ser.write_timestamp(&AUTOMATIONEXECUTION_MEMBER_EXECUTION_START_TIME, val)?;
         823  +
        }
         824  +
        if let Some(ref val) = self.execution_end_time {
         825  +
            ser.write_timestamp(&AUTOMATIONEXECUTION_MEMBER_EXECUTION_END_TIME, val)?;
         826  +
        }
         827  +
        if let Some(ref val) = self.automation_execution_status {
         828  +
            ser.write_string(&AUTOMATIONEXECUTION_MEMBER_AUTOMATION_EXECUTION_STATUS, val.as_str())?;
         829  +
        }
         830  +
        if let Some(ref val) = self.step_executions {
         831  +
            ser.write_list(
         832  +
                &AUTOMATIONEXECUTION_MEMBER_STEP_EXECUTIONS,
         833  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         834  +
                    for item in val {
         835  +
                        ser.write_struct(crate::types::StepExecution::SCHEMA, item)?;
         836  +
                    }
         837  +
                    Ok(())
         838  +
                },
         839  +
            )?;
         840  +
        }
         841  +
        {
         842  +
            let val = &self.step_executions_truncated;
         843  +
            ser.write_boolean(&AUTOMATIONEXECUTION_MEMBER_STEP_EXECUTIONS_TRUNCATED, *val)?;
         844  +
        }
         845  +
        if let Some(ref val) = self.parameters {
         846  +
            ser.write_map(
         847  +
                &AUTOMATIONEXECUTION_MEMBER_PARAMETERS,
         848  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         849  +
                    for (key, value) in val {
         850  +
                        ser.write_string(&::aws_smithy_schema::prelude::STRING, key)?;
         851  +
         852  +
                        ser.write_list(
         853  +
                            &AUTOMATIONEXECUTION_MEMBER_PARAMETERS_VALUE,
         854  +
                            &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         855  +
                                for item in value {
         856  +
                                    ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
         857  +
                                }
         858  +
                                Ok(())
         859  +
                            },
         860  +
                        )?;
         861  +
                    }
         862  +
                    Ok(())
         863  +
                },
         864  +
            )?;
         865  +
        }
         866  +
        if let Some(ref val) = self.outputs {
         867  +
            ser.write_map(
         868  +
                &AUTOMATIONEXECUTION_MEMBER_OUTPUTS,
         869  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         870  +
                    for (key, value) in val {
         871  +
                        ser.write_string(&::aws_smithy_schema::prelude::STRING, key)?;
         872  +
         873  +
                        ser.write_list(
         874  +
                            &AUTOMATIONEXECUTION_MEMBER_OUTPUTS_VALUE,
         875  +
                            &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         876  +
                                for item in value {
         877  +
                                    ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
         878  +
                                }
         879  +
                                Ok(())
         880  +
                            },
         881  +
                        )?;
         882  +
                    }
         883  +
                    Ok(())
         884  +
                },
         885  +
            )?;
         886  +
        }
         887  +
        if let Some(ref val) = self.failure_message {
         888  +
            ser.write_string(&AUTOMATIONEXECUTION_MEMBER_FAILURE_MESSAGE, val)?;
         889  +
        }
         890  +
        if let Some(ref val) = self.warning_message {
         891  +
            ser.write_string(&AUTOMATIONEXECUTION_MEMBER_WARNING_MESSAGE, val)?;
         892  +
        }
         893  +
        if let Some(ref val) = self.mode {
         894  +
            ser.write_string(&AUTOMATIONEXECUTION_MEMBER_MODE, val.as_str())?;
         895  +
        }
         896  +
        if let Some(ref val) = self.parent_automation_execution_id {
         897  +
            ser.write_string(&AUTOMATIONEXECUTION_MEMBER_PARENT_AUTOMATION_EXECUTION_ID, val)?;
         898  +
        }
         899  +
        if let Some(ref val) = self.executed_by {
         900  +
            ser.write_string(&AUTOMATIONEXECUTION_MEMBER_EXECUTED_BY, val)?;
         901  +
        }
         902  +
        if let Some(ref val) = self.current_step_name {
         903  +
            ser.write_string(&AUTOMATIONEXECUTION_MEMBER_CURRENT_STEP_NAME, val)?;
         904  +
        }
         905  +
        if let Some(ref val) = self.current_action {
         906  +
            ser.write_string(&AUTOMATIONEXECUTION_MEMBER_CURRENT_ACTION, val)?;
         907  +
        }
         908  +
        if let Some(ref val) = self.target_parameter_name {
         909  +
            ser.write_string(&AUTOMATIONEXECUTION_MEMBER_TARGET_PARAMETER_NAME, val)?;
         910  +
        }
         911  +
        if let Some(ref val) = self.targets {
         912  +
            ser.write_list(
         913  +
                &AUTOMATIONEXECUTION_MEMBER_TARGETS,
         914  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         915  +
                    for item in val {
         916  +
                        ser.write_struct(crate::types::Target::SCHEMA, item)?;
         917  +
                    }
         918  +
                    Ok(())
         919  +
                },
         920  +
            )?;
         921  +
        }
         922  +
        if let Some(ref val) = self.target_maps {
         923  +
            ser.write_list(
         924  +
                &AUTOMATIONEXECUTION_MEMBER_TARGET_MAPS,
         925  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         926  +
                    for item in val {
         927  +
                        ser.write_map(
         928  +
                            &AUTOMATIONEXECUTION_MEMBER_TARGET_MAPS_MEMBER,
         929  +
                            &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         930  +
                                for (key, value) in item {
         931  +
                                    ser.write_string(&::aws_smithy_schema::prelude::STRING, key)?;
         932  +
         933  +
                                    ser.write_list(
         934  +
                                        &AUTOMATIONEXECUTION_MEMBER_TARGET_MAPS_MEMBER_VALUE,
         935  +
                                        &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         936  +
                                            for item in value {
         937  +
                                                ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
         938  +
                                            }
         939  +
                                            Ok(())
         940  +
                                        },
         941  +
                                    )?;
         942  +
                                }
         943  +
                                Ok(())
         944  +
                            },
         945  +
                        )?;
         946  +
                    }
         947  +
                    Ok(())
         948  +
                },
         949  +
            )?;
         950  +
        }
         951  +
        if let Some(ref val) = self.resolved_targets {
         952  +
            ser.write_struct(&AUTOMATIONEXECUTION_MEMBER_RESOLVED_TARGETS, val)?;
         953  +
        }
         954  +
        if let Some(ref val) = self.max_concurrency {
         955  +
            ser.write_string(&AUTOMATIONEXECUTION_MEMBER_MAX_CONCURRENCY, val)?;
         956  +
        }
         957  +
        if let Some(ref val) = self.max_errors {
         958  +
            ser.write_string(&AUTOMATIONEXECUTION_MEMBER_MAX_ERRORS, val)?;
         959  +
        }
         960  +
        if let Some(ref val) = self.target {
         961  +
            ser.write_string(&AUTOMATIONEXECUTION_MEMBER_TARGET, val)?;
         962  +
        }
         963  +
        if let Some(ref val) = self.target_locations {
         964  +
            ser.write_list(
         965  +
                &AUTOMATIONEXECUTION_MEMBER_TARGET_LOCATIONS,
         966  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         967  +
                    for item in val {
         968  +
                        ser.write_struct(crate::types::TargetLocation::SCHEMA, item)?;
         969  +
                    }
         970  +
                    Ok(())
         971  +
                },
         972  +
            )?;
         973  +
        }
         974  +
        if let Some(ref val) = self.progress_counters {
         975  +
            ser.write_struct(&AUTOMATIONEXECUTION_MEMBER_PROGRESS_COUNTERS, val)?;
         976  +
        }
         977  +
        if let Some(ref val) = self.alarm_configuration {
         978  +
            ser.write_struct(&AUTOMATIONEXECUTION_MEMBER_ALARM_CONFIGURATION, val)?;
         979  +
        }
         980  +
        if let Some(ref val) = self.triggered_alarms {
         981  +
            ser.write_list(
         982  +
                &AUTOMATIONEXECUTION_MEMBER_TRIGGERED_ALARMS,
         983  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         984  +
                    for item in val {
         985  +
                        ser.write_struct(crate::types::AlarmStateInformation::SCHEMA, item)?;
         986  +
                    }
         987  +
                    Ok(())
         988  +
                },
         989  +
            )?;
         990  +
        }
         991  +
        if let Some(ref val) = self.target_locations_url {
         992  +
            ser.write_string(&AUTOMATIONEXECUTION_MEMBER_TARGET_LOCATIONS_URL, val)?;
         993  +
        }
         994  +
        if let Some(ref val) = self.automation_subtype {
         995  +
            ser.write_string(&AUTOMATIONEXECUTION_MEMBER_AUTOMATION_SUBTYPE, val.as_str())?;
         996  +
        }
         997  +
        if let Some(ref val) = self.scheduled_time {
         998  +
            ser.write_timestamp(&AUTOMATIONEXECUTION_MEMBER_SCHEDULED_TIME, val)?;
         999  +
        }
        1000  +
        if let Some(ref val) = self.runbooks {
        1001  +
            ser.write_list(
        1002  +
                &AUTOMATIONEXECUTION_MEMBER_RUNBOOKS,
        1003  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
        1004  +
                    for item in val {
        1005  +
                        ser.write_struct(crate::types::Runbook::SCHEMA, item)?;
        1006  +
                    }
        1007  +
                    Ok(())
        1008  +
                },
        1009  +
            )?;
        1010  +
        }
        1011  +
        if let Some(ref val) = self.ops_item_id {
        1012  +
            ser.write_string(&AUTOMATIONEXECUTION_MEMBER_OPS_ITEM_ID, val)?;
        1013  +
        }
        1014  +
        if let Some(ref val) = self.association_id {
        1015  +
            ser.write_string(&AUTOMATIONEXECUTION_MEMBER_ASSOCIATION_ID, val)?;
        1016  +
        }
        1017  +
        if let Some(ref val) = self.change_request_name {
        1018  +
            ser.write_string(&AUTOMATIONEXECUTION_MEMBER_CHANGE_REQUEST_NAME, val)?;
        1019  +
        }
        1020  +
        if let Some(ref val) = self.variables {
        1021  +
            ser.write_map(
        1022  +
                &AUTOMATIONEXECUTION_MEMBER_VARIABLES,
        1023  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
        1024  +
                    for (key, value) in val {
        1025  +
                        ser.write_string(&::aws_smithy_schema::prelude::STRING, key)?;
        1026  +
        1027  +
                        ser.write_list(
        1028  +
                            &AUTOMATIONEXECUTION_MEMBER_VARIABLES_VALUE,
        1029  +
                            &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
        1030  +
                                for item in value {
        1031  +
                                    ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
        1032  +
                                }
        1033  +
                                Ok(())
        1034  +
                            },
        1035  +
                        )?;
        1036  +
                    }
        1037  +
                    Ok(())
        1038  +
                },
        1039  +
            )?;
        1040  +
        }
        1041  +
        Ok(())
        1042  +
    }
        1043  +
}
        1044  +
impl AutomationExecution {
        1045  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
        1046  +
    pub fn deserialize(
        1047  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
        1048  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
        1049  +
        #[allow(unused_variables, unused_mut)]
        1050  +
        let mut builder = Self::builder();
        1051  +
        #[allow(
        1052  +
            unused_variables,
        1053  +
            unreachable_code,
        1054  +
            clippy::single_match,
        1055  +
            clippy::match_single_binding,
        1056  +
            clippy::diverging_sub_expression
        1057  +
        )]
        1058  +
        deserializer.read_struct(&AUTOMATIONEXECUTION_SCHEMA, &mut |member, deser| {
        1059  +
            match member.member_index() {
        1060  +
                Some(0) => {
        1061  +
                    if deser.is_null() {
        1062  +
                        deser.read_null()?;
        1063  +
                    } else {
        1064  +
                        builder.automation_execution_id = Some(deser.read_string(member)?);
        1065  +
                    }
        1066  +
                }
        1067  +
                Some(1) => {
        1068  +
                    if deser.is_null() {
        1069  +
                        deser.read_null()?;
        1070  +
                    } else {
        1071  +
                        builder.document_name = Some(deser.read_string(member)?);
        1072  +
                    }
        1073  +
                }
        1074  +
                Some(2) => {
        1075  +
                    if deser.is_null() {
        1076  +
                        deser.read_null()?;
        1077  +
                    } else {
        1078  +
                        builder.document_version = Some(deser.read_string(member)?);
        1079  +
                    }
        1080  +
                }
        1081  +
                Some(3) => {
        1082  +
                    if deser.is_null() {
        1083  +
                        deser.read_null()?;
        1084  +
                    } else {
        1085  +
                        builder.execution_start_time = Some(deser.read_timestamp(member)?);
        1086  +
                    }
        1087  +
                }
        1088  +
                Some(4) => {
        1089  +
                    if deser.is_null() {
        1090  +
                        deser.read_null()?;
        1091  +
                    } else {
        1092  +
                        builder.execution_end_time = Some(deser.read_timestamp(member)?);
        1093  +
                    }
        1094  +
                }
        1095  +
                Some(5) => {
        1096  +
                    if deser.is_null() {
        1097  +
                        deser.read_null()?;
        1098  +
                    } else {
        1099  +
                        builder.automation_execution_status =
        1100  +
                            Some(crate::types::AutomationExecutionStatus::from(deser.read_string(member)?.as_str()));
        1101  +
                    }
        1102  +
                }
        1103  +
                Some(6) => {
        1104  +
                    if deser.is_null() {
        1105  +
                        deser.read_null()?;
        1106  +
                    } else {
        1107  +
                        builder.step_executions = Some({
        1108  +
                            let mut container = Vec::new();
        1109  +
                            deser.read_list(member, &mut |deser| {
        1110  +
                                container.push(crate::types::StepExecution::deserialize(deser)?);
        1111  +
                                Ok(())
        1112  +
                            })?;
        1113  +
                            container
        1114  +
                        });
        1115  +
                    }
        1116  +
                }
        1117  +
                Some(7) => {
        1118  +
                    builder.step_executions_truncated = Some(deser.read_boolean(member)?);
        1119  +
                }
        1120  +
                Some(8) => {
        1121  +
                    if deser.is_null() {
        1122  +
                        deser.read_null()?;
        1123  +
                    } else {
        1124  +
                        builder.parameters = Some({
        1125  +
                            let mut container = std::collections::HashMap::new();
        1126  +
                            deser.read_map(member, &mut |key, deser| {
        1127  +
                                container.insert(key, {
        1128  +
                                    let mut list = Vec::new();
        1129  +
                                    deser.read_list(&AUTOMATIONEXECUTION_MEMBER_PARAMETERS_VALUE, &mut |deser| {
        1130  +
                                        list.push(deser.read_string(&::aws_smithy_schema::prelude::STRING)?);
        1131  +
                                        Ok(())
        1132  +
                                    })?;
        1133  +
                                    list
        1134  +
                                });
        1135  +
                                Ok(())
        1136  +
                            })?;
        1137  +
                            container
        1138  +
                        });
        1139  +
                    }
        1140  +
                }
        1141  +
                Some(9) => {
        1142  +
                    if deser.is_null() {
        1143  +
                        deser.read_null()?;
        1144  +
                    } else {
        1145  +
                        builder.outputs = Some({
        1146  +
                            let mut container = std::collections::HashMap::new();
        1147  +
                            deser.read_map(member, &mut |key, deser| {
        1148  +
                                container.insert(key, {
        1149  +
                                    let mut list = Vec::new();
        1150  +
                                    deser.read_list(&AUTOMATIONEXECUTION_MEMBER_OUTPUTS_VALUE, &mut |deser| {
        1151  +
                                        list.push(deser.read_string(&::aws_smithy_schema::prelude::STRING)?);
        1152  +
                                        Ok(())
        1153  +
                                    })?;
        1154  +
                                    list
        1155  +
                                });
        1156  +
                                Ok(())
        1157  +
                            })?;
        1158  +
                            container
        1159  +
                        });
        1160  +
                    }
        1161  +
                }
        1162  +
                Some(10) => {
        1163  +
                    if deser.is_null() {
        1164  +
                        deser.read_null()?;
        1165  +
                    } else {
        1166  +
                        builder.failure_message = Some(deser.read_string(member)?);
        1167  +
                    }
        1168  +
                }
        1169  +
                Some(11) => {
        1170  +
                    if deser.is_null() {
        1171  +
                        deser.read_null()?;
        1172  +
                    } else {
        1173  +
                        builder.warning_message = Some(deser.read_string(member)?);
        1174  +
                    }
        1175  +
                }
        1176  +
                Some(12) => {
        1177  +
                    if deser.is_null() {
        1178  +
                        deser.read_null()?;
        1179  +
                    } else {
        1180  +
                        builder.mode = Some(crate::types::ExecutionMode::from(deser.read_string(member)?.as_str()));
        1181  +
                    }
        1182  +
                }
        1183  +
                Some(13) => {
        1184  +
                    if deser.is_null() {
        1185  +
                        deser.read_null()?;
        1186  +
                    } else {
        1187  +
                        builder.parent_automation_execution_id = Some(deser.read_string(member)?);
        1188  +
                    }
        1189  +
                }
        1190  +
                Some(14) => {
        1191  +
                    if deser.is_null() {
        1192  +
                        deser.read_null()?;
        1193  +
                    } else {
        1194  +
                        builder.executed_by = Some(deser.read_string(member)?);
        1195  +
                    }
        1196  +
                }
        1197  +
                Some(15) => {
        1198  +
                    if deser.is_null() {
        1199  +
                        deser.read_null()?;
        1200  +
                    } else {
        1201  +
                        builder.current_step_name = Some(deser.read_string(member)?);
        1202  +
                    }
        1203  +
                }
        1204  +
                Some(16) => {
        1205  +
                    if deser.is_null() {
        1206  +
                        deser.read_null()?;
        1207  +
                    } else {
        1208  +
                        builder.current_action = Some(deser.read_string(member)?);
        1209  +
                    }
        1210  +
                }
        1211  +
                Some(17) => {
        1212  +
                    if deser.is_null() {
        1213  +
                        deser.read_null()?;
        1214  +
                    } else {
        1215  +
                        builder.target_parameter_name = Some(deser.read_string(member)?);
        1216  +
                    }
        1217  +
                }
        1218  +
                Some(18) => {
        1219  +
                    if deser.is_null() {
        1220  +
                        deser.read_null()?;
        1221  +
                    } else {
        1222  +
                        builder.targets = Some({
        1223  +
                            let mut container = Vec::new();
        1224  +
                            deser.read_list(member, &mut |deser| {
        1225  +
                                container.push(crate::types::Target::deserialize(deser)?);
        1226  +
                                Ok(())
        1227  +
                            })?;
        1228  +
                            container
        1229  +
                        });
        1230  +
                    }
        1231  +
                }
        1232  +
                Some(19) => {
        1233  +
                    if deser.is_null() {
        1234  +
                        deser.read_null()?;
        1235  +
                    } else {
        1236  +
                        builder.target_maps = Some({
        1237  +
                            let mut container = Vec::new();
        1238  +
                            deser.read_list(member, &mut |deser| {
        1239  +
                                container.push({
        1240  +
                                    let mut map = ::std::collections::HashMap::new();
        1241  +
                                    deser.read_map(&AUTOMATIONEXECUTION_MEMBER_TARGET_MAPS_MEMBER, &mut |key, deser| {
        1242  +
                                        let value = {
        1243  +
                                            let mut list = Vec::new();
        1244  +
                                            deser.read_list(&AUTOMATIONEXECUTION_MEMBER_TARGET_MAPS_MEMBER_VALUE, &mut |deser| {
        1245  +
                                                list.push(deser.read_string(&::aws_smithy_schema::prelude::STRING)?);
        1246  +
                                                Ok(())
        1247  +
                                            })?;
        1248  +
                                            list
        1249  +
                                        };
        1250  +
                                        map.insert(key, value);
        1251  +
                                        Ok(())
        1252  +
                                    })?;
        1253  +
                                    map
        1254  +
                                });
        1255  +
                                Ok(())
        1256  +
                            })?;
        1257  +
                            container
        1258  +
                        });
        1259  +
                    }
        1260  +
                }
        1261  +
                Some(20) => {
        1262  +
                    if deser.is_null() {
        1263  +
                        deser.read_null()?;
        1264  +
                    } else {
        1265  +
                        builder.resolved_targets = Some(crate::types::ResolvedTargets::deserialize(deser)?);
        1266  +
                    }
        1267  +
                }
        1268  +
                Some(21) => {
        1269  +
                    if deser.is_null() {
        1270  +
                        deser.read_null()?;
        1271  +
                    } else {
        1272  +
                        builder.max_concurrency = Some(deser.read_string(member)?);
        1273  +
                    }
        1274  +
                }
        1275  +
                Some(22) => {
        1276  +
                    if deser.is_null() {
        1277  +
                        deser.read_null()?;
        1278  +
                    } else {
        1279  +
                        builder.max_errors = Some(deser.read_string(member)?);
        1280  +
                    }
        1281  +
                }
        1282  +
                Some(23) => {
        1283  +
                    if deser.is_null() {
        1284  +
                        deser.read_null()?;
        1285  +
                    } else {
        1286  +
                        builder.target = Some(deser.read_string(member)?);
        1287  +
                    }
        1288  +
                }
        1289  +
                Some(24) => {
        1290  +
                    if deser.is_null() {
        1291  +
                        deser.read_null()?;
        1292  +
                    } else {
        1293  +
                        builder.target_locations = Some({
        1294  +
                            let mut container = Vec::new();
        1295  +
                            deser.read_list(member, &mut |deser| {
        1296  +
                                container.push(crate::types::TargetLocation::deserialize(deser)?);
        1297  +
                                Ok(())
        1298  +
                            })?;
        1299  +
                            container
        1300  +
                        });
        1301  +
                    }
        1302  +
                }
        1303  +
                Some(25) => {
        1304  +
                    if deser.is_null() {
        1305  +
                        deser.read_null()?;
        1306  +
                    } else {
        1307  +
                        builder.progress_counters = Some(crate::types::ProgressCounters::deserialize(deser)?);
        1308  +
                    }
        1309  +
                }
        1310  +
                Some(26) => {
        1311  +
                    if deser.is_null() {
        1312  +
                        deser.read_null()?;
        1313  +
                    } else {
        1314  +
                        builder.alarm_configuration = Some(crate::types::AlarmConfiguration::deserialize(deser)?);
        1315  +
                    }
        1316  +
                }
        1317  +
                Some(27) => {
        1318  +
                    if deser.is_null() {
        1319  +
                        deser.read_null()?;
        1320  +
                    } else {
        1321  +
                        builder.triggered_alarms = Some({
        1322  +
                            let mut container = Vec::new();
        1323  +
                            deser.read_list(member, &mut |deser| {
        1324  +
                                container.push(crate::types::AlarmStateInformation::deserialize(deser)?);
        1325  +
                                Ok(())
        1326  +
                            })?;
        1327  +
                            container
        1328  +
                        });
        1329  +
                    }
        1330  +
                }
        1331  +
                Some(28) => {
        1332  +
                    if deser.is_null() {
        1333  +
                        deser.read_null()?;
        1334  +
                    } else {
        1335  +
                        builder.target_locations_url = Some(deser.read_string(member)?);
        1336  +
                    }
        1337  +
                }
        1338  +
                Some(29) => {
        1339  +
                    if deser.is_null() {
        1340  +
                        deser.read_null()?;
        1341  +
                    } else {
        1342  +
                        builder.automation_subtype = Some(crate::types::AutomationSubtype::from(deser.read_string(member)?.as_str()));
        1343  +
                    }
        1344  +
                }
        1345  +
                Some(30) => {
        1346  +
                    if deser.is_null() {
        1347  +
                        deser.read_null()?;
        1348  +
                    } else {
        1349  +
                        builder.scheduled_time = Some(deser.read_timestamp(member)?);
        1350  +
                    }
        1351  +
                }
        1352  +
                Some(31) => {
        1353  +
                    if deser.is_null() {
        1354  +
                        deser.read_null()?;
        1355  +
                    } else {
        1356  +
                        builder.runbooks = Some({
        1357  +
                            let mut container = Vec::new();
        1358  +
                            deser.read_list(member, &mut |deser| {
        1359  +
                                container.push(crate::types::Runbook::deserialize(deser)?);
        1360  +
                                Ok(())
        1361  +
                            })?;
        1362  +
                            container
        1363  +
                        });
        1364  +
                    }
        1365  +
                }
        1366  +
                Some(32) => {
        1367  +
                    if deser.is_null() {
        1368  +
                        deser.read_null()?;
        1369  +
                    } else {
        1370  +
                        builder.ops_item_id = Some(deser.read_string(member)?);
        1371  +
                    }
        1372  +
                }
        1373  +
                Some(33) => {
        1374  +
                    if deser.is_null() {
        1375  +
                        deser.read_null()?;
        1376  +
                    } else {
        1377  +
                        builder.association_id = Some(deser.read_string(member)?);
        1378  +
                    }
        1379  +
                }
        1380  +
                Some(34) => {
        1381  +
                    if deser.is_null() {
        1382  +
                        deser.read_null()?;
        1383  +
                    } else {
        1384  +
                        builder.change_request_name = Some(deser.read_string(member)?);
        1385  +
                    }
        1386  +
                }
        1387  +
                Some(35) => {
        1388  +
                    if deser.is_null() {
        1389  +
                        deser.read_null()?;
        1390  +
                    } else {
        1391  +
                        builder.variables = Some({
        1392  +
                            let mut container = std::collections::HashMap::new();
        1393  +
                            deser.read_map(member, &mut |key, deser| {
        1394  +
                                container.insert(key, {
        1395  +
                                    let mut list = Vec::new();
        1396  +
                                    deser.read_list(&AUTOMATIONEXECUTION_MEMBER_VARIABLES_VALUE, &mut |deser| {
        1397  +
                                        list.push(deser.read_string(&::aws_smithy_schema::prelude::STRING)?);
        1398  +
                                        Ok(())
        1399  +
                                    })?;
        1400  +
                                    list
        1401  +
                                });
        1402  +
                                Ok(())
        1403  +
                            })?;
        1404  +
                            container
        1405  +
                        });
        1406  +
                    }
        1407  +
                }
        1408  +
                _ => {}
        1409  +
            }
        1410  +
            Ok(())
        1411  +
        })?;
        1412  +
        Ok(builder.build())
        1413  +
    }
        1414  +
}
        1415  +
impl AutomationExecution {
        1416  +
    /// Deserializes this structure from a body deserializer and HTTP response.
        1417  +
    pub fn deserialize_with_response(
        1418  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
        1419  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
        1420  +
        _status: u16,
        1421  +
        _body: &[u8],
        1422  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
        1423  +
        Self::deserialize(deserializer)
        1424  +
    }
        1425  +
}
        1426  +
impl AutomationExecution {
        1427  +
    /// Creates a new builder-style object to manufacture [`AutomationExecution`](crate::types::AutomationExecution).
        1428  +
    pub fn builder() -> crate::types::builders::AutomationExecutionBuilder {
        1429  +
        crate::types::builders::AutomationExecutionBuilder::default()
        1430  +
    }
        1431  +
}
        1432  +
        1433  +
/// A builder for [`AutomationExecution`](crate::types::AutomationExecution).
        1434  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
        1435  +
#[non_exhaustive]
        1436  +
pub struct AutomationExecutionBuilder {
        1437  +
    pub(crate) automation_execution_id: ::std::option::Option<::std::string::String>,
        1438  +
    pub(crate) document_name: ::std::option::Option<::std::string::String>,
        1439  +
    pub(crate) document_version: ::std::option::Option<::std::string::String>,
        1440  +
    pub(crate) execution_start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
        1441  +
    pub(crate) execution_end_time: ::std::option::Option<::aws_smithy_types::DateTime>,
        1442  +
    pub(crate) automation_execution_status: ::std::option::Option<crate::types::AutomationExecutionStatus>,
        1443  +
    pub(crate) step_executions: ::std::option::Option<::std::vec::Vec<crate::types::StepExecution>>,
        1444  +
    pub(crate) step_executions_truncated: ::std::option::Option<bool>,
        1445  +
    pub(crate) parameters: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
        1446  +
    pub(crate) outputs: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
        1447  +
    pub(crate) failure_message: ::std::option::Option<::std::string::String>,
        1448  +
    pub(crate) warning_message: ::std::option::Option<::std::string::String>,
        1449  +
    pub(crate) mode: ::std::option::Option<crate::types::ExecutionMode>,
        1450  +
    pub(crate) parent_automation_execution_id: ::std::option::Option<::std::string::String>,
        1451  +
    pub(crate) executed_by: ::std::option::Option<::std::string::String>,
        1452  +
    pub(crate) current_step_name: ::std::option::Option<::std::string::String>,
        1453  +
    pub(crate) current_action: ::std::option::Option<::std::string::String>,
        1454  +
    pub(crate) target_parameter_name: ::std::option::Option<::std::string::String>,
        1455  +
    pub(crate) targets: ::std::option::Option<::std::vec::Vec<crate::types::Target>>,
        1456  +
    pub(crate) target_maps:
        1457  +
        ::std::option::Option<::std::vec::Vec<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>>,
        1458  +
    pub(crate) resolved_targets: ::std::option::Option<crate::types::ResolvedTargets>,
        1459  +
    pub(crate) max_concurrency: ::std::option::Option<::std::string::String>,
        1460  +
    pub(crate) max_errors: ::std::option::Option<::std::string::String>,
        1461  +
    pub(crate) target: ::std::option::Option<::std::string::String>,
        1462  +
    pub(crate) target_locations: ::std::option::Option<::std::vec::Vec<crate::types::TargetLocation>>,
        1463  +
    pub(crate) progress_counters: ::std::option::Option<crate::types::ProgressCounters>,
        1464  +
    pub(crate) alarm_configuration: ::std::option::Option<crate::types::AlarmConfiguration>,
        1465  +
    pub(crate) triggered_alarms: ::std::option::Option<::std::vec::Vec<crate::types::AlarmStateInformation>>,
        1466  +
    pub(crate) target_locations_url: ::std::option::Option<::std::string::String>,
        1467  +
    pub(crate) automation_subtype: ::std::option::Option<crate::types::AutomationSubtype>,
        1468  +
    pub(crate) scheduled_time: ::std::option::Option<::aws_smithy_types::DateTime>,
        1469  +
    pub(crate) runbooks: ::std::option::Option<::std::vec::Vec<crate::types::Runbook>>,
        1470  +
    pub(crate) ops_item_id: ::std::option::Option<::std::string::String>,
        1471  +
    pub(crate) association_id: ::std::option::Option<::std::string::String>,
        1472  +
    pub(crate) change_request_name: ::std::option::Option<::std::string::String>,
        1473  +
    pub(crate) variables: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
        1474  +
}
        1475  +
impl AutomationExecutionBuilder {
        1476  +
    /// <p>The execution ID.</p>
        1477  +
    pub fn automation_execution_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1478  +
        self.automation_execution_id = ::std::option::Option::Some(input.into());
        1479  +
        self
        1480  +
    }
        1481  +
    /// <p>The execution ID.</p>
        1482  +
    pub fn set_automation_execution_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1483  +
        self.automation_execution_id = input;
        1484  +
        self
        1485  +
    }
        1486  +
    /// <p>The execution ID.</p>
        1487  +
    pub fn get_automation_execution_id(&self) -> &::std::option::Option<::std::string::String> {
        1488  +
        &self.automation_execution_id
        1489  +
    }
        1490  +
    /// <p>The name of the Automation runbook used during the execution.</p>
        1491  +
    pub fn document_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1492  +
        self.document_name = ::std::option::Option::Some(input.into());
        1493  +
        self
        1494  +
    }
        1495  +
    /// <p>The name of the Automation runbook used during the execution.</p>
        1496  +
    pub fn set_document_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1497  +
        self.document_name = input;
        1498  +
        self
        1499  +
    }
        1500  +
    /// <p>The name of the Automation runbook used during the execution.</p>
        1501  +
    pub fn get_document_name(&self) -> &::std::option::Option<::std::string::String> {
        1502  +
        &self.document_name
        1503  +
    }
        1504  +
    /// <p>The version of the document to use during execution.</p>
        1505  +
    pub fn document_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1506  +
        self.document_version = ::std::option::Option::Some(input.into());
        1507  +
        self
        1508  +
    }
        1509  +
    /// <p>The version of the document to use during execution.</p>
        1510  +
    pub fn set_document_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1511  +
        self.document_version = input;
        1512  +
        self
        1513  +
    }
        1514  +
    /// <p>The version of the document to use during execution.</p>
        1515  +
    pub fn get_document_version(&self) -> &::std::option::Option<::std::string::String> {
        1516  +
        &self.document_version
        1517  +
    }
        1518  +
    /// <p>The time the execution started.</p>
        1519  +
    pub fn execution_start_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        1520  +
        self.execution_start_time = ::std::option::Option::Some(input);
        1521  +
        self
        1522  +
    }
        1523  +
    /// <p>The time the execution started.</p>
        1524  +
    pub fn set_execution_start_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        1525  +
        self.execution_start_time = input;
        1526  +
        self
        1527  +
    }
        1528  +
    /// <p>The time the execution started.</p>
        1529  +
    pub fn get_execution_start_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        1530  +
        &self.execution_start_time
        1531  +
    }
        1532  +
    /// <p>The time the execution finished.</p>
        1533  +
    pub fn execution_end_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        1534  +
        self.execution_end_time = ::std::option::Option::Some(input);
        1535  +
        self
        1536  +
    }
        1537  +
    /// <p>The time the execution finished.</p>
        1538  +
    pub fn set_execution_end_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        1539  +
        self.execution_end_time = input;
        1540  +
        self
        1541  +
    }
        1542  +
    /// <p>The time the execution finished.</p>
        1543  +
    pub fn get_execution_end_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        1544  +
        &self.execution_end_time
        1545  +
    }
        1546  +
    /// <p>The execution status of the Automation.</p>
        1547  +
    pub fn automation_execution_status(mut self, input: crate::types::AutomationExecutionStatus) -> Self {
        1548  +
        self.automation_execution_status = ::std::option::Option::Some(input);
        1549  +
        self
        1550  +
    }
        1551  +
    /// <p>The execution status of the Automation.</p>
        1552  +
    pub fn set_automation_execution_status(mut self, input: ::std::option::Option<crate::types::AutomationExecutionStatus>) -> Self {
        1553  +
        self.automation_execution_status = input;
        1554  +
        self
        1555  +
    }
        1556  +
    /// <p>The execution status of the Automation.</p>
        1557  +
    pub fn get_automation_execution_status(&self) -> &::std::option::Option<crate::types::AutomationExecutionStatus> {
        1558  +
        &self.automation_execution_status
        1559  +
    }
        1560  +
    /// Appends an item to `step_executions`.
        1561  +
    ///
        1562  +
    /// To override the contents of this collection use [`set_step_executions`](Self::set_step_executions).
        1563  +
    ///
        1564  +
    /// <p>A list of details about the current state of all steps that comprise an execution. An Automation runbook contains a list of steps that are run in order.</p>
        1565  +
    pub fn step_executions(mut self, input: crate::types::StepExecution) -> Self {
        1566  +
        let mut v = self.step_executions.unwrap_or_default();
        1567  +
        v.push(input);
        1568  +
        self.step_executions = ::std::option::Option::Some(v);
        1569  +
        self
        1570  +
    }
        1571  +
    /// <p>A list of details about the current state of all steps that comprise an execution. An Automation runbook contains a list of steps that are run in order.</p>
        1572  +
    pub fn set_step_executions(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::StepExecution>>) -> Self {
        1573  +
        self.step_executions = input;
        1574  +
        self
        1575  +
    }
        1576  +
    /// <p>A list of details about the current state of all steps that comprise an execution. An Automation runbook contains a list of steps that are run in order.</p>
        1577  +
    pub fn get_step_executions(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::StepExecution>> {
        1578  +
        &self.step_executions
        1579  +
    }
        1580  +
    /// <p>A boolean value that indicates if the response contains the full list of the Automation step executions. If true, use the DescribeAutomationStepExecutions API operation to get the full list of step executions.</p>
        1581  +
    pub fn step_executions_truncated(mut self, input: bool) -> Self {
        1582  +
        self.step_executions_truncated = ::std::option::Option::Some(input);
        1583  +
        self
        1584  +
    }
        1585  +
    /// <p>A boolean value that indicates if the response contains the full list of the Automation step executions. If true, use the DescribeAutomationStepExecutions API operation to get the full list of step executions.</p>
        1586  +
    pub fn set_step_executions_truncated(mut self, input: ::std::option::Option<bool>) -> Self {
        1587  +
        self.step_executions_truncated = input;
        1588  +
        self
        1589  +
    }
        1590  +
    /// <p>A boolean value that indicates if the response contains the full list of the Automation step executions. If true, use the DescribeAutomationStepExecutions API operation to get the full list of step executions.</p>
        1591  +
    pub fn get_step_executions_truncated(&self) -> &::std::option::Option<bool> {
        1592  +
        &self.step_executions_truncated
        1593  +
    }
        1594  +
    /// Adds a key-value pair to `parameters`.
        1595  +
    ///
        1596  +
    /// To override the contents of this collection use [`set_parameters`](Self::set_parameters).
        1597  +
    ///
        1598  +
    /// <p>The key-value map of execution parameters, which were supplied when calling <code>StartAutomationExecution</code>.</p>
        1599  +
    pub fn parameters(mut self, k: impl ::std::convert::Into<::std::string::String>, v: ::std::vec::Vec<::std::string::String>) -> Self {
        1600  +
        let mut hash_map = self.parameters.unwrap_or_default();
        1601  +
        hash_map.insert(k.into(), v);
        1602  +
        self.parameters = ::std::option::Option::Some(hash_map);
        1603  +
        self
        1604  +
    }
        1605  +
    /// <p>The key-value map of execution parameters, which were supplied when calling <code>StartAutomationExecution</code>.</p>
        1606  +
    pub fn set_parameters(
        1607  +
        mut self,
        1608  +
        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
        1609  +
    ) -> Self {
        1610  +
        self.parameters = input;
        1611  +
        self
        1612  +
    }
        1613  +
    /// <p>The key-value map of execution parameters, which were supplied when calling <code>StartAutomationExecution</code>.</p>
        1614  +
    pub fn get_parameters(
        1615  +
        &self,
        1616  +
    ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
        1617  +
        &self.parameters
        1618  +
    }
        1619  +
    /// Adds a key-value pair to `outputs`.
        1620  +
    ///
        1621  +
    /// To override the contents of this collection use [`set_outputs`](Self::set_outputs).
        1622  +
    ///
        1623  +
    /// <p>The list of execution outputs as defined in the Automation runbook.</p>
        1624  +
    pub fn outputs(mut self, k: impl ::std::convert::Into<::std::string::String>, v: ::std::vec::Vec<::std::string::String>) -> Self {
        1625  +
        let mut hash_map = self.outputs.unwrap_or_default();
        1626  +
        hash_map.insert(k.into(), v);
        1627  +
        self.outputs = ::std::option::Option::Some(hash_map);
        1628  +
        self
        1629  +
    }
        1630  +
    /// <p>The list of execution outputs as defined in the Automation runbook.</p>
        1631  +
    pub fn set_outputs(
        1632  +
        mut self,
        1633  +
        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
        1634  +
    ) -> Self {
        1635  +
        self.outputs = input;
        1636  +
        self
        1637  +
    }
        1638  +
    /// <p>The list of execution outputs as defined in the Automation runbook.</p>
        1639  +
    pub fn get_outputs(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
        1640  +
        &self.outputs
        1641  +
    }
        1642  +
    /// <p>A message describing why an execution has failed, if the status is set to Failed.</p>
        1643  +
    pub fn failure_message(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1644  +
        self.failure_message = ::std::option::Option::Some(input.into());
        1645  +
        self
        1646  +
    }
        1647  +
    /// <p>A message describing why an execution has failed, if the status is set to Failed.</p>
        1648  +
    pub fn set_failure_message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1649  +
        self.failure_message = input;
        1650  +
        self
        1651  +
    }
        1652  +
    /// <p>A message describing why an execution has failed, if the status is set to Failed.</p>
        1653  +
    pub fn get_failure_message(&self) -> &::std::option::Option<::std::string::String> {
        1654  +
        &self.failure_message
        1655  +
    }
        1656  +
    /// <p>A message that describes a non-critical issue that occurred during the automation execution.</p>
        1657  +
    pub fn warning_message(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1658  +
        self.warning_message = ::std::option::Option::Some(input.into());
        1659  +
        self
        1660  +
    }
        1661  +
    /// <p>A message that describes a non-critical issue that occurred during the automation execution.</p>
        1662  +
    pub fn set_warning_message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1663  +
        self.warning_message = input;
        1664  +
        self
        1665  +
    }
        1666  +
    /// <p>A message that describes a non-critical issue that occurred during the automation execution.</p>
        1667  +
    pub fn get_warning_message(&self) -> &::std::option::Option<::std::string::String> {
        1668  +
        &self.warning_message
        1669  +
    }
        1670  +
    /// <p>The automation execution mode.</p>
        1671  +
    pub fn mode(mut self, input: crate::types::ExecutionMode) -> Self {
        1672  +
        self.mode = ::std::option::Option::Some(input);
        1673  +
        self
        1674  +
    }
        1675  +
    /// <p>The automation execution mode.</p>
        1676  +
    pub fn set_mode(mut self, input: ::std::option::Option<crate::types::ExecutionMode>) -> Self {
        1677  +
        self.mode = input;
        1678  +
        self
        1679  +
    }
        1680  +
    /// <p>The automation execution mode.</p>
        1681  +
    pub fn get_mode(&self) -> &::std::option::Option<crate::types::ExecutionMode> {
        1682  +
        &self.mode
        1683  +
    }
        1684  +
    /// <p>The AutomationExecutionId of the parent automation.</p>
        1685  +
    pub fn parent_automation_execution_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1686  +
        self.parent_automation_execution_id = ::std::option::Option::Some(input.into());
        1687  +
        self
        1688  +
    }
        1689  +
    /// <p>The AutomationExecutionId of the parent automation.</p>
        1690  +
    pub fn set_parent_automation_execution_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1691  +
        self.parent_automation_execution_id = input;
        1692  +
        self
        1693  +
    }
        1694  +
    /// <p>The AutomationExecutionId of the parent automation.</p>
        1695  +
    pub fn get_parent_automation_execution_id(&self) -> &::std::option::Option<::std::string::String> {
        1696  +
        &self.parent_automation_execution_id
        1697  +
    }
        1698  +
    /// <p>The Amazon Resource Name (ARN) of the user who ran the automation.</p>
        1699  +
    pub fn executed_by(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1700  +
        self.executed_by = ::std::option::Option::Some(input.into());
        1701  +
        self
        1702  +
    }
        1703  +
    /// <p>The Amazon Resource Name (ARN) of the user who ran the automation.</p>
        1704  +
    pub fn set_executed_by(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1705  +
        self.executed_by = input;
        1706  +
        self
        1707  +
    }
        1708  +
    /// <p>The Amazon Resource Name (ARN) of the user who ran the automation.</p>
        1709  +
    pub fn get_executed_by(&self) -> &::std::option::Option<::std::string::String> {
        1710  +
        &self.executed_by
        1711  +
    }
        1712  +
    /// <p>The name of the step that is currently running.</p>
        1713  +
    pub fn current_step_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1714  +
        self.current_step_name = ::std::option::Option::Some(input.into());
        1715  +
        self
        1716  +
    }
        1717  +
    /// <p>The name of the step that is currently running.</p>
        1718  +
    pub fn set_current_step_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1719  +
        self.current_step_name = input;
        1720  +
        self
        1721  +
    }
        1722  +
    /// <p>The name of the step that is currently running.</p>
        1723  +
    pub fn get_current_step_name(&self) -> &::std::option::Option<::std::string::String> {
        1724  +
        &self.current_step_name
        1725  +
    }
        1726  +
    /// <p>The action of the step that is currently running.</p>
        1727  +
    pub fn current_action(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1728  +
        self.current_action = ::std::option::Option::Some(input.into());
        1729  +
        self
        1730  +
    }
        1731  +
    /// <p>The action of the step that is currently running.</p>
        1732  +
    pub fn set_current_action(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1733  +
        self.current_action = input;
        1734  +
        self
        1735  +
    }
        1736  +
    /// <p>The action of the step that is currently running.</p>
        1737  +
    pub fn get_current_action(&self) -> &::std::option::Option<::std::string::String> {
        1738  +
        &self.current_action
        1739  +
    }
        1740  +
    /// <p>The parameter name.</p>
        1741  +
    pub fn target_parameter_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1742  +
        self.target_parameter_name = ::std::option::Option::Some(input.into());
        1743  +
        self
        1744  +
    }
        1745  +
    /// <p>The parameter name.</p>
        1746  +
    pub fn set_target_parameter_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1747  +
        self.target_parameter_name = input;
        1748  +
        self
        1749  +
    }
        1750  +
    /// <p>The parameter name.</p>
        1751  +
    pub fn get_target_parameter_name(&self) -> &::std::option::Option<::std::string::String> {
        1752  +
        &self.target_parameter_name
        1753  +
    }
        1754  +
    /// Appends an item to `targets`.
        1755  +
    ///
        1756  +
    /// To override the contents of this collection use [`set_targets`](Self::set_targets).
        1757  +
    ///
        1758  +
    /// <p>The specified targets.</p>
        1759  +
    pub fn targets(mut self, input: crate::types::Target) -> Self {
        1760  +
        let mut v = self.targets.unwrap_or_default();
        1761  +
        v.push(input);
        1762  +
        self.targets = ::std::option::Option::Some(v);
        1763  +
        self
        1764  +
    }
        1765  +
    /// <p>The specified targets.</p>
        1766  +
    pub fn set_targets(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Target>>) -> Self {
        1767  +
        self.targets = input;
        1768  +
        self
        1769  +
    }
        1770  +
    /// <p>The specified targets.</p>
        1771  +
    pub fn get_targets(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Target>> {
        1772  +
        &self.targets
        1773  +
    }
        1774  +
    /// Appends an item to `target_maps`.
        1775  +
    ///
        1776  +
    /// To override the contents of this collection use [`set_target_maps`](Self::set_target_maps).
        1777  +
    ///
        1778  +
    /// <p>The specified key-value mapping of document parameters to target resources.</p>
        1779  +
    pub fn target_maps(mut self, input: ::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>) -> Self {
        1780  +
        let mut v = self.target_maps.unwrap_or_default();
        1781  +
        v.push(input);
        1782  +
        self.target_maps = ::std::option::Option::Some(v);
        1783  +
        self
        1784  +
    }
        1785  +
    /// <p>The specified key-value mapping of document parameters to target resources.</p>
        1786  +
    pub fn set_target_maps(
        1787  +
        mut self,
        1788  +
        input: ::std::option::Option<::std::vec::Vec<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>>,
        1789  +
    ) -> Self {
        1790  +
        self.target_maps = input;
        1791  +
        self
        1792  +
    }
        1793  +
    /// <p>The specified key-value mapping of document parameters to target resources.</p>
        1794  +
    pub fn get_target_maps(
        1795  +
        &self,
        1796  +
    ) -> &::std::option::Option<::std::vec::Vec<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>> {
        1797  +
        &self.target_maps
        1798  +
    }
        1799  +
    /// <p>A list of resolved targets in the rate control execution.</p>
        1800  +
    pub fn resolved_targets(mut self, input: crate::types::ResolvedTargets) -> Self {
        1801  +
        self.resolved_targets = ::std::option::Option::Some(input);
        1802  +
        self
        1803  +
    }
        1804  +
    /// <p>A list of resolved targets in the rate control execution.</p>
        1805  +
    pub fn set_resolved_targets(mut self, input: ::std::option::Option<crate::types::ResolvedTargets>) -> Self {
        1806  +
        self.resolved_targets = input;
        1807  +
        self
        1808  +
    }
        1809  +
    /// <p>A list of resolved targets in the rate control execution.</p>
        1810  +
    pub fn get_resolved_targets(&self) -> &::std::option::Option<crate::types::ResolvedTargets> {
        1811  +
        &self.resolved_targets
        1812  +
    }
        1813  +
    /// <p>The <code>MaxConcurrency</code> value specified by the user when the execution started.</p>
        1814  +
    pub fn max_concurrency(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1815  +
        self.max_concurrency = ::std::option::Option::Some(input.into());
        1816  +
        self
        1817  +
    }
        1818  +
    /// <p>The <code>MaxConcurrency</code> value specified by the user when the execution started.</p>
        1819  +
    pub fn set_max_concurrency(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1820  +
        self.max_concurrency = input;
        1821  +
        self
        1822  +
    }
        1823  +
    /// <p>The <code>MaxConcurrency</code> value specified by the user when the execution started.</p>
        1824  +
    pub fn get_max_concurrency(&self) -> &::std::option::Option<::std::string::String> {
        1825  +
        &self.max_concurrency
        1826  +
    }
        1827  +
    /// <p>The MaxErrors value specified by the user when the execution started.</p>
        1828  +
    pub fn max_errors(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1829  +
        self.max_errors = ::std::option::Option::Some(input.into());
        1830  +
        self
        1831  +
    }
        1832  +
    /// <p>The MaxErrors value specified by the user when the execution started.</p>
        1833  +
    pub fn set_max_errors(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1834  +
        self.max_errors = input;
        1835  +
        self
        1836  +
    }
        1837  +
    /// <p>The MaxErrors value specified by the user when the execution started.</p>
        1838  +
    pub fn get_max_errors(&self) -> &::std::option::Option<::std::string::String> {
        1839  +
        &self.max_errors
        1840  +
    }
        1841  +
    /// <p>The target of the execution.</p>
        1842  +
    pub fn target(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1843  +
        self.target = ::std::option::Option::Some(input.into());
        1844  +
        self
        1845  +
    }
        1846  +
    /// <p>The target of the execution.</p>
        1847  +
    pub fn set_target(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1848  +
        self.target = input;
        1849  +
        self
        1850  +
    }
        1851  +
    /// <p>The target of the execution.</p>
        1852  +
    pub fn get_target(&self) -> &::std::option::Option<::std::string::String> {
        1853  +
        &self.target
        1854  +
    }
        1855  +
    /// Appends an item to `target_locations`.
        1856  +
    ///
        1857  +
    /// To override the contents of this collection use [`set_target_locations`](Self::set_target_locations).
        1858  +
    ///
        1859  +
    /// <p>The combination of Amazon Web Services Regions and/or Amazon Web Services accounts where you want to run the Automation.</p>
        1860  +
    pub fn target_locations(mut self, input: crate::types::TargetLocation) -> Self {
        1861  +
        let mut v = self.target_locations.unwrap_or_default();
        1862  +
        v.push(input);
        1863  +
        self.target_locations = ::std::option::Option::Some(v);
        1864  +
        self
        1865  +
    }
        1866  +
    /// <p>The combination of Amazon Web Services Regions and/or Amazon Web Services accounts where you want to run the Automation.</p>
        1867  +
    pub fn set_target_locations(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::TargetLocation>>) -> Self {
        1868  +
        self.target_locations = input;
        1869  +
        self
        1870  +
    }
        1871  +
    /// <p>The combination of Amazon Web Services Regions and/or Amazon Web Services accounts where you want to run the Automation.</p>
        1872  +
    pub fn get_target_locations(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::TargetLocation>> {
        1873  +
        &self.target_locations
        1874  +
    }
        1875  +
    /// <p>An aggregate of step execution statuses displayed in the Amazon Web Services Systems Manager console for a multi-Region and multi-account Automation execution.</p>
        1876  +
    pub fn progress_counters(mut self, input: crate::types::ProgressCounters) -> Self {
        1877  +
        self.progress_counters = ::std::option::Option::Some(input);
        1878  +
        self
        1879  +
    }
        1880  +
    /// <p>An aggregate of step execution statuses displayed in the Amazon Web Services Systems Manager console for a multi-Region and multi-account Automation execution.</p>
        1881  +
    pub fn set_progress_counters(mut self, input: ::std::option::Option<crate::types::ProgressCounters>) -> Self {
        1882  +
        self.progress_counters = input;
        1883  +
        self
        1884  +
    }
        1885  +
    /// <p>An aggregate of step execution statuses displayed in the Amazon Web Services Systems Manager console for a multi-Region and multi-account Automation execution.</p>
        1886  +
    pub fn get_progress_counters(&self) -> &::std::option::Option<crate::types::ProgressCounters> {
        1887  +
        &self.progress_counters
        1888  +
    }
        1889  +
    /// <p>The details for the CloudWatch alarm applied to your automation.</p>
        1890  +
    pub fn alarm_configuration(mut self, input: crate::types::AlarmConfiguration) -> Self {
        1891  +
        self.alarm_configuration = ::std::option::Option::Some(input);
        1892  +
        self
        1893  +
    }
        1894  +
    /// <p>The details for the CloudWatch alarm applied to your automation.</p>
        1895  +
    pub fn set_alarm_configuration(mut self, input: ::std::option::Option<crate::types::AlarmConfiguration>) -> Self {
        1896  +
        self.alarm_configuration = input;
        1897  +
        self
        1898  +
    }
        1899  +
    /// <p>The details for the CloudWatch alarm applied to your automation.</p>
        1900  +
    pub fn get_alarm_configuration(&self) -> &::std::option::Option<crate::types::AlarmConfiguration> {
        1901  +
        &self.alarm_configuration
        1902  +
    }
        1903  +
    /// Appends an item to `triggered_alarms`.
        1904  +
    ///
        1905  +
    /// To override the contents of this collection use [`set_triggered_alarms`](Self::set_triggered_alarms).
        1906  +
    ///
        1907  +
    /// <p>The CloudWatch alarm that was invoked by the automation.</p>
        1908  +
    pub fn triggered_alarms(mut self, input: crate::types::AlarmStateInformation) -> Self {
        1909  +
        let mut v = self.triggered_alarms.unwrap_or_default();
        1910  +
        v.push(input);
        1911  +
        self.triggered_alarms = ::std::option::Option::Some(v);
        1912  +
        self
        1913  +
    }
        1914  +
    /// <p>The CloudWatch alarm that was invoked by the automation.</p>
        1915  +
    pub fn set_triggered_alarms(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::AlarmStateInformation>>) -> Self {
        1916  +
        self.triggered_alarms = input;
        1917  +
        self
        1918  +
    }
        1919  +
    /// <p>The CloudWatch alarm that was invoked by the automation.</p>
        1920  +
    pub fn get_triggered_alarms(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::AlarmStateInformation>> {
        1921  +
        &self.triggered_alarms
        1922  +
    }
        1923  +
    /// <p>A publicly accessible URL for a file that contains the <code>TargetLocations</code> body. Currently, only files in presigned Amazon S3 buckets are supported</p>
        1924  +
    pub fn target_locations_url(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1925  +
        self.target_locations_url = ::std::option::Option::Some(input.into());
        1926  +
        self
        1927  +
    }
        1928  +
    /// <p>A publicly accessible URL for a file that contains the <code>TargetLocations</code> body. Currently, only files in presigned Amazon S3 buckets are supported</p>
        1929  +
    pub fn set_target_locations_url(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1930  +
        self.target_locations_url = input;
        1931  +
        self
        1932  +
    }
        1933  +
    /// <p>A publicly accessible URL for a file that contains the <code>TargetLocations</code> body. Currently, only files in presigned Amazon S3 buckets are supported</p>
        1934  +
    pub fn get_target_locations_url(&self) -> &::std::option::Option<::std::string::String> {
        1935  +
        &self.target_locations_url
        1936  +
    }
        1937  +
    /// <p>The subtype of the Automation operation. Currently, the only supported value is <code>ChangeRequest</code>.</p>
        1938  +
    pub fn automation_subtype(mut self, input: crate::types::AutomationSubtype) -> Self {
        1939  +
        self.automation_subtype = ::std::option::Option::Some(input);
        1940  +
        self
        1941  +
    }
        1942  +
    /// <p>The subtype of the Automation operation. Currently, the only supported value is <code>ChangeRequest</code>.</p>
        1943  +
    pub fn set_automation_subtype(mut self, input: ::std::option::Option<crate::types::AutomationSubtype>) -> Self {
        1944  +
        self.automation_subtype = input;
        1945  +
        self
        1946  +
    }
        1947  +
    /// <p>The subtype of the Automation operation. Currently, the only supported value is <code>ChangeRequest</code>.</p>
        1948  +
    pub fn get_automation_subtype(&self) -> &::std::option::Option<crate::types::AutomationSubtype> {
        1949  +
        &self.automation_subtype
        1950  +
    }
        1951  +
    /// <p>The date and time the Automation operation is scheduled to start.</p>
        1952  +
    pub fn scheduled_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        1953  +
        self.scheduled_time = ::std::option::Option::Some(input);
        1954  +
        self
        1955  +
    }
        1956  +
    /// <p>The date and time the Automation operation is scheduled to start.</p>
        1957  +
    pub fn set_scheduled_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        1958  +
        self.scheduled_time = input;
        1959  +
        self
        1960  +
    }
        1961  +
    /// <p>The date and time the Automation operation is scheduled to start.</p>
        1962  +
    pub fn get_scheduled_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        1963  +
        &self.scheduled_time
        1964  +
    }
        1965  +
    /// Appends an item to `runbooks`.
        1966  +
    ///
        1967  +
    /// To override the contents of this collection use [`set_runbooks`](Self::set_runbooks).
        1968  +
    ///
        1969  +
    /// <p>Information about the Automation runbooks that are run as part of a runbook workflow.</p><note>
        1970  +
    /// <p>The Automation runbooks specified for the runbook workflow can't run until all required approvals for the change request have been received.</p>
        1971  +
    /// </note>
        1972  +
    pub fn runbooks(mut self, input: crate::types::Runbook) -> Self {
        1973  +
        let mut v = self.runbooks.unwrap_or_default();
        1974  +
        v.push(input);
        1975  +
        self.runbooks = ::std::option::Option::Some(v);
        1976  +
        self
        1977  +
    }
        1978  +
    /// <p>Information about the Automation runbooks that are run as part of a runbook workflow.</p><note>
        1979  +
    /// <p>The Automation runbooks specified for the runbook workflow can't run until all required approvals for the change request have been received.</p>
        1980  +
    /// </note>
        1981  +
    pub fn set_runbooks(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Runbook>>) -> Self {
        1982  +
        self.runbooks = input;
        1983  +
        self
        1984  +
    }
        1985  +
    /// <p>Information about the Automation runbooks that are run as part of a runbook workflow.</p><note>
        1986  +
    /// <p>The Automation runbooks specified for the runbook workflow can't run until all required approvals for the change request have been received.</p>
        1987  +
    /// </note>
        1988  +
    pub fn get_runbooks(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Runbook>> {
        1989  +
        &self.runbooks
        1990  +
    }
        1991  +
    /// <p>The ID of an OpsItem that is created to represent a Change Manager change request.</p>
        1992  +
    pub fn ops_item_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1993  +
        self.ops_item_id = ::std::option::Option::Some(input.into());
        1994  +
        self
        1995  +
    }
        1996  +
    /// <p>The ID of an OpsItem that is created to represent a Change Manager change request.</p>
        1997  +
    pub fn set_ops_item_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1998  +
        self.ops_item_id = input;
        1999  +
        self
        2000  +
    }
        2001  +
    /// <p>The ID of an OpsItem that is created to represent a Change Manager change request.</p>
        2002  +
    pub fn get_ops_item_id(&self) -> &::std::option::Option<::std::string::String> {
        2003  +
        &self.ops_item_id
        2004  +
    }
        2005  +
    /// <p>The ID of a State Manager association used in the Automation operation.</p>
        2006  +
    pub fn association_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        2007  +
        self.association_id = ::std::option::Option::Some(input.into());
        2008  +
        self
        2009  +
    }
        2010  +
    /// <p>The ID of a State Manager association used in the Automation operation.</p>
        2011  +
    pub fn set_association_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        2012  +
        self.association_id = input;
        2013  +
        self
        2014  +
    }
        2015  +
    /// <p>The ID of a State Manager association used in the Automation operation.</p>
        2016  +
    pub fn get_association_id(&self) -> &::std::option::Option<::std::string::String> {
        2017  +
        &self.association_id
        2018  +
    }
        2019  +
    /// <p>The name of the Change Manager change request.</p>
        2020  +
    pub fn change_request_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        2021  +
        self.change_request_name = ::std::option::Option::Some(input.into());
        2022  +
        self
        2023  +
    }
        2024  +
    /// <p>The name of the Change Manager change request.</p>
        2025  +
    pub fn set_change_request_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        2026  +
        self.change_request_name = input;
        2027  +
        self
        2028  +
    }
        2029  +
    /// <p>The name of the Change Manager change request.</p>
        2030  +
    pub fn get_change_request_name(&self) -> &::std::option::Option<::std::string::String> {
        2031  +
        &self.change_request_name
        2032  +
    }
        2033  +
    /// Adds a key-value pair to `variables`.
        2034  +
    ///
        2035  +
    /// To override the contents of this collection use [`set_variables`](Self::set_variables).
        2036  +
    ///
        2037  +
    /// <p>Variables defined for the automation.</p>
        2038  +
    pub fn variables(mut self, k: impl ::std::convert::Into<::std::string::String>, v: ::std::vec::Vec<::std::string::String>) -> Self {
        2039  +
        let mut hash_map = self.variables.unwrap_or_default();
        2040  +
        hash_map.insert(k.into(), v);
        2041  +
        self.variables = ::std::option::Option::Some(hash_map);
        2042  +
        self
        2043  +
    }
        2044  +
    /// <p>Variables defined for the automation.</p>
        2045  +
    pub fn set_variables(
        2046  +
        mut self,
        2047  +
        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
        2048  +
    ) -> Self {
        2049  +
        self.variables = input;
        2050  +
        self
        2051  +
    }
        2052  +
    /// <p>Variables defined for the automation.</p>
        2053  +
    pub fn get_variables(
        2054  +
        &self,
        2055  +
    ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
        2056  +
        &self.variables
        2057  +
    }
        2058  +
    /// Consumes the builder and constructs a [`AutomationExecution`](crate::types::AutomationExecution).
        2059  +
    pub fn build(self) -> crate::types::AutomationExecution {
        2060  +
        crate::types::AutomationExecution {
        2061  +
            automation_execution_id: self.automation_execution_id,
        2062  +
            document_name: self.document_name,
        2063  +
            document_version: self.document_version,
        2064  +
            execution_start_time: self.execution_start_time,
        2065  +
            execution_end_time: self.execution_end_time,
        2066  +
            automation_execution_status: self.automation_execution_status,
        2067  +
            step_executions: self.step_executions,
        2068  +
            step_executions_truncated: self.step_executions_truncated.unwrap_or_default(),
        2069  +
            parameters: self.parameters,
        2070  +
            outputs: self.outputs,
        2071  +
            failure_message: self.failure_message,
        2072  +
            warning_message: self.warning_message,
        2073  +
            mode: self.mode,
        2074  +
            parent_automation_execution_id: self.parent_automation_execution_id,
        2075  +
            executed_by: self.executed_by,
        2076  +
            current_step_name: self.current_step_name,
        2077  +
            current_action: self.current_action,
        2078  +
            target_parameter_name: self.target_parameter_name,
        2079  +
            targets: self.targets,
        2080  +
            target_maps: self.target_maps,
        2081  +
            resolved_targets: self.resolved_targets,
        2082  +
            max_concurrency: self.max_concurrency,
        2083  +
            max_errors: self.max_errors,
        2084  +
            target: self.target,
        2085  +
            target_locations: self.target_locations,
        2086  +
            progress_counters: self.progress_counters,
        2087  +
            alarm_configuration: self.alarm_configuration,
        2088  +
            triggered_alarms: self.triggered_alarms,
        2089  +
            target_locations_url: self.target_locations_url,
        2090  +
            automation_subtype: self.automation_subtype,
        2091  +
            scheduled_time: self.scheduled_time,
        2092  +
            runbooks: self.runbooks,
        2093  +
            ops_item_id: self.ops_item_id,
        2094  +
            association_id: self.association_id,
        2095  +
            change_request_name: self.change_request_name,
        2096  +
            variables: self.variables,
        2097  +
        }
        2098  +
    }
        2099  +
}