AWS SDK

AWS SDK

rev. 18b1dd205ff4335251e6dd0ecb88193de1b1cede

Files changed:

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

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

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

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

@@ -0,1 +0,213 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>Information about an Amazon Simple Storage Service (Amazon S3) bucket to write managed node-level logs to.</p><note>
           4  +
/// <p><code>LoggingInfo</code> has been deprecated. To specify an Amazon Simple Storage Service (Amazon S3) bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Amazon Web Services Systems Manager handles these options for the supported maintenance window task types, see <code>MaintenanceWindowTaskInvocationParameters</code>.</p>
           5  +
/// </note>
           6  +
#[non_exhaustive]
           7  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           8  +
pub struct LoggingInfo {
           9  +
    /// <p>The name of an S3 bucket where execution logs are stored.</p>
          10  +
    pub s3_bucket_name: ::std::string::String,
          11  +
    /// <p>(Optional) The S3 bucket subfolder.</p>
          12  +
    pub s3_key_prefix: ::std::option::Option<::std::string::String>,
          13  +
    /// <p>The Amazon Web Services Region where the S3 bucket is located.</p>
          14  +
    pub s3_region: ::std::string::String,
          15  +
}
          16  +
impl LoggingInfo {
          17  +
    /// <p>The name of an S3 bucket where execution logs are stored.</p>
          18  +
    pub fn s3_bucket_name(&self) -> &str {
          19  +
        use std::ops::Deref;
          20  +
        self.s3_bucket_name.deref()
          21  +
    }
          22  +
    /// <p>(Optional) The S3 bucket subfolder.</p>
          23  +
    pub fn s3_key_prefix(&self) -> ::std::option::Option<&str> {
          24  +
        self.s3_key_prefix.as_deref()
          25  +
    }
          26  +
    /// <p>The Amazon Web Services Region where the S3 bucket is located.</p>
          27  +
    pub fn s3_region(&self) -> &str {
          28  +
        use std::ops::Deref;
          29  +
        self.s3_region.deref()
          30  +
    }
          31  +
}
          32  +
static LOGGINGINFO_MEMBER_S3_BUCKET_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          33  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#LoggingInfo$S3BucketName", "com.amazonaws.ssm", "LoggingInfo"),
          34  +
    ::aws_smithy_schema::ShapeType::String,
          35  +
    "S3BucketName",
          36  +
    0,
          37  +
);
          38  +
static LOGGINGINFO_MEMBER_S3_KEY_PREFIX: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          39  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#LoggingInfo$S3KeyPrefix", "com.amazonaws.ssm", "LoggingInfo"),
          40  +
    ::aws_smithy_schema::ShapeType::String,
          41  +
    "S3KeyPrefix",
          42  +
    1,
          43  +
);
          44  +
static LOGGINGINFO_MEMBER_S3_REGION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          45  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#LoggingInfo$S3Region", "com.amazonaws.ssm", "LoggingInfo"),
          46  +
    ::aws_smithy_schema::ShapeType::String,
          47  +
    "S3Region",
          48  +
    2,
          49  +
);
          50  +
static LOGGINGINFO_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
          51  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#LoggingInfo", "com.amazonaws.ssm", "LoggingInfo"),
          52  +
    ::aws_smithy_schema::ShapeType::Structure,
          53  +
    &[
          54  +
        &LOGGINGINFO_MEMBER_S3_BUCKET_NAME,
          55  +
        &LOGGINGINFO_MEMBER_S3_KEY_PREFIX,
          56  +
        &LOGGINGINFO_MEMBER_S3_REGION,
          57  +
    ],
          58  +
);
          59  +
impl LoggingInfo {
          60  +
    /// The schema for this shape.
          61  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &LOGGINGINFO_SCHEMA;
          62  +
}
          63  +
impl ::aws_smithy_schema::serde::SerializableStruct for LoggingInfo {
          64  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
          65  +
    fn serialize_members(
          66  +
        &self,
          67  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
          68  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
          69  +
        {
          70  +
            let val = &self.s3_bucket_name;
          71  +
            ser.write_string(&LOGGINGINFO_MEMBER_S3_BUCKET_NAME, val)?;
          72  +
        }
          73  +
        if let Some(ref val) = self.s3_key_prefix {
          74  +
            ser.write_string(&LOGGINGINFO_MEMBER_S3_KEY_PREFIX, val)?;
          75  +
        }
          76  +
        {
          77  +
            let val = &self.s3_region;
          78  +
            ser.write_string(&LOGGINGINFO_MEMBER_S3_REGION, val)?;
          79  +
        }
          80  +
        Ok(())
          81  +
    }
          82  +
}
          83  +
impl LoggingInfo {
          84  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
          85  +
    pub fn deserialize(
          86  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          87  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          88  +
        #[allow(unused_variables, unused_mut)]
          89  +
        let mut builder = Self::builder();
          90  +
        #[allow(
          91  +
            unused_variables,
          92  +
            unreachable_code,
          93  +
            clippy::single_match,
          94  +
            clippy::match_single_binding,
          95  +
            clippy::diverging_sub_expression
          96  +
        )]
          97  +
        deserializer.read_struct(&LOGGINGINFO_SCHEMA, &mut |member, deser| {
          98  +
            match member.member_index() {
          99  +
                Some(0) => {
         100  +
                    builder.s3_bucket_name = Some(deser.read_string(member)?);
         101  +
                }
         102  +
                Some(1) => {
         103  +
                    if deser.is_null() {
         104  +
                        deser.read_null()?;
         105  +
                    } else {
         106  +
                        builder.s3_key_prefix = Some(deser.read_string(member)?);
         107  +
                    }
         108  +
                }
         109  +
                Some(2) => {
         110  +
                    builder.s3_region = Some(deser.read_string(member)?);
         111  +
                }
         112  +
                _ => {}
         113  +
            }
         114  +
            Ok(())
         115  +
        })?;
         116  +
        builder.s3_bucket_name = builder.s3_bucket_name.or(Some(String::new()));
         117  +
        builder.s3_region = builder.s3_region.or(Some(String::new()));
         118  +
        builder.build().map_err(|e| aws_smithy_schema::serde::SerdeError::custom(e.to_string()))
         119  +
    }
         120  +
}
         121  +
impl LoggingInfo {
         122  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         123  +
    pub fn deserialize_with_response(
         124  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         125  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         126  +
        _status: u16,
         127  +
        _body: &[u8],
         128  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         129  +
        Self::deserialize(deserializer)
         130  +
    }
         131  +
}
         132  +
impl LoggingInfo {
         133  +
    /// Creates a new builder-style object to manufacture [`LoggingInfo`](crate::types::LoggingInfo).
         134  +
    pub fn builder() -> crate::types::builders::LoggingInfoBuilder {
         135  +
        crate::types::builders::LoggingInfoBuilder::default()
         136  +
    }
         137  +
}
         138  +
         139  +
/// A builder for [`LoggingInfo`](crate::types::LoggingInfo).
         140  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         141  +
#[non_exhaustive]
         142  +
pub struct LoggingInfoBuilder {
         143  +
    pub(crate) s3_bucket_name: ::std::option::Option<::std::string::String>,
         144  +
    pub(crate) s3_key_prefix: ::std::option::Option<::std::string::String>,
         145  +
    pub(crate) s3_region: ::std::option::Option<::std::string::String>,
         146  +
}
         147  +
impl LoggingInfoBuilder {
         148  +
    /// <p>The name of an S3 bucket where execution logs are stored.</p>
         149  +
    /// This field is required.
         150  +
    pub fn s3_bucket_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         151  +
        self.s3_bucket_name = ::std::option::Option::Some(input.into());
         152  +
        self
         153  +
    }
         154  +
    /// <p>The name of an S3 bucket where execution logs are stored.</p>
         155  +
    pub fn set_s3_bucket_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         156  +
        self.s3_bucket_name = input;
         157  +
        self
         158  +
    }
         159  +
    /// <p>The name of an S3 bucket where execution logs are stored.</p>
         160  +
    pub fn get_s3_bucket_name(&self) -> &::std::option::Option<::std::string::String> {
         161  +
        &self.s3_bucket_name
         162  +
    }
         163  +
    /// <p>(Optional) The S3 bucket subfolder.</p>
         164  +
    pub fn s3_key_prefix(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         165  +
        self.s3_key_prefix = ::std::option::Option::Some(input.into());
         166  +
        self
         167  +
    }
         168  +
    /// <p>(Optional) The S3 bucket subfolder.</p>
         169  +
    pub fn set_s3_key_prefix(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         170  +
        self.s3_key_prefix = input;
         171  +
        self
         172  +
    }
         173  +
    /// <p>(Optional) The S3 bucket subfolder.</p>
         174  +
    pub fn get_s3_key_prefix(&self) -> &::std::option::Option<::std::string::String> {
         175  +
        &self.s3_key_prefix
         176  +
    }
         177  +
    /// <p>The Amazon Web Services Region where the S3 bucket is located.</p>
         178  +
    /// This field is required.
         179  +
    pub fn s3_region(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         180  +
        self.s3_region = ::std::option::Option::Some(input.into());
         181  +
        self
         182  +
    }
         183  +
    /// <p>The Amazon Web Services Region where the S3 bucket is located.</p>
         184  +
    pub fn set_s3_region(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         185  +
        self.s3_region = input;
         186  +
        self
         187  +
    }
         188  +
    /// <p>The Amazon Web Services Region where the S3 bucket is located.</p>
         189  +
    pub fn get_s3_region(&self) -> &::std::option::Option<::std::string::String> {
         190  +
        &self.s3_region
         191  +
    }
         192  +
    /// Consumes the builder and constructs a [`LoggingInfo`](crate::types::LoggingInfo).
         193  +
    /// This method will fail if any of the following fields are not set:
         194  +
    /// - [`s3_bucket_name`](crate::types::builders::LoggingInfoBuilder::s3_bucket_name)
         195  +
    /// - [`s3_region`](crate::types::builders::LoggingInfoBuilder::s3_region)
         196  +
    pub fn build(self) -> ::std::result::Result<crate::types::LoggingInfo, ::aws_smithy_types::error::operation::BuildError> {
         197  +
        ::std::result::Result::Ok(crate::types::LoggingInfo {
         198  +
            s3_bucket_name: self.s3_bucket_name.ok_or_else(|| {
         199  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
         200  +
                    "s3_bucket_name",
         201  +
                    "s3_bucket_name was not specified but it is required when building LoggingInfo",
         202  +
                )
         203  +
            })?,
         204  +
            s3_key_prefix: self.s3_key_prefix,
         205  +
            s3_region: self.s3_region.ok_or_else(|| {
         206  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
         207  +
                    "s3_region",
         208  +
                    "s3_region was not specified but it is required when building LoggingInfo",
         209  +
                )
         210  +
            })?,
         211  +
        })
         212  +
    }
         213  +
}

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

@@ -0,1 +0,275 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>The parameters for an <code>AUTOMATION</code> task type.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           6  +
pub struct MaintenanceWindowAutomationParameters {
           7  +
    /// <p>The version of an Automation runbook to use during task execution.</p>
           8  +
    pub document_version: ::std::option::Option<::std::string::String>,
           9  +
    /// <p>The parameters for the <code>AUTOMATION</code> task.</p>
          10  +
    /// <p>For information about specifying and updating task parameters, see <code>RegisterTaskWithMaintenanceWindow</code> and <code>UpdateMaintenanceWindowTask</code>.</p><note>
          11  +
    /// <p><code>LoggingInfo</code> has been deprecated. To specify an Amazon Simple Storage Service (Amazon S3) bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Amazon Web Services Systems Manager handles these options for the supported maintenance window task types, see <code>MaintenanceWindowTaskInvocationParameters</code>.</p>
          12  +
    /// <p><code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <code>MaintenanceWindowTaskInvocationParameters</code>.</p>
          13  +
    /// <p>For <code>AUTOMATION</code> task types, Amazon Web Services Systems Manager ignores any values specified for these parameters.</p>
          14  +
    /// </note>
          15  +
    pub parameters: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
          16  +
}
          17  +
impl MaintenanceWindowAutomationParameters {
          18  +
    /// <p>The version of an Automation runbook to use during task execution.</p>
          19  +
    pub fn document_version(&self) -> ::std::option::Option<&str> {
          20  +
        self.document_version.as_deref()
          21  +
    }
          22  +
    /// <p>The parameters for the <code>AUTOMATION</code> task.</p>
          23  +
    /// <p>For information about specifying and updating task parameters, see <code>RegisterTaskWithMaintenanceWindow</code> and <code>UpdateMaintenanceWindowTask</code>.</p><note>
          24  +
    /// <p><code>LoggingInfo</code> has been deprecated. To specify an Amazon Simple Storage Service (Amazon S3) bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Amazon Web Services Systems Manager handles these options for the supported maintenance window task types, see <code>MaintenanceWindowTaskInvocationParameters</code>.</p>
          25  +
    /// <p><code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <code>MaintenanceWindowTaskInvocationParameters</code>.</p>
          26  +
    /// <p>For <code>AUTOMATION</code> task types, Amazon Web Services Systems Manager ignores any values specified for these parameters.</p>
          27  +
    /// </note>
          28  +
    pub fn parameters(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
          29  +
        self.parameters.as_ref()
          30  +
    }
          31  +
}
          32  +
static MAINTENANCEWINDOWAUTOMATIONPARAMETERS_MEMBER_DOCUMENT_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          33  +
    ::aws_smithy_schema::ShapeId::from_parts(
          34  +
        "com.amazonaws.ssm#MaintenanceWindowAutomationParameters$DocumentVersion",
          35  +
        "com.amazonaws.ssm",
          36  +
        "MaintenanceWindowAutomationParameters",
          37  +
    ),
          38  +
    ::aws_smithy_schema::ShapeType::String,
          39  +
    "DocumentVersion",
          40  +
    0,
          41  +
);
          42  +
static MAINTENANCEWINDOWAUTOMATIONPARAMETERS_MEMBER_PARAMETERS_VALUE_MEMBER: ::aws_smithy_schema::Schema<'static> =
          43  +
    ::aws_smithy_schema::Schema::new_member(
          44  +
        ::aws_smithy_schema::ShapeId::from_parts(
          45  +
            "com.amazonaws.ssm#AutomationParameterValueList$member",
          46  +
            "com.amazonaws.ssm",
          47  +
            "AutomationParameterValueList",
          48  +
        ),
          49  +
        ::aws_smithy_schema::ShapeType::String,
          50  +
        "member",
          51  +
        0,
          52  +
    );
          53  +
static MAINTENANCEWINDOWAUTOMATIONPARAMETERS_MEMBER_PARAMETERS_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          54  +
    ::aws_smithy_schema::ShapeId::from_parts(
          55  +
        "com.amazonaws.ssm#AutomationParameterMap$key",
          56  +
        "com.amazonaws.ssm",
          57  +
        "AutomationParameterMap",
          58  +
    ),
          59  +
    ::aws_smithy_schema::ShapeType::String,
          60  +
    "key",
          61  +
    0,
          62  +
);
          63  +
static MAINTENANCEWINDOWAUTOMATIONPARAMETERS_MEMBER_PARAMETERS_VALUE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          64  +
    ::aws_smithy_schema::ShapeId::from_parts(
          65  +
        "com.amazonaws.ssm#AutomationParameterMap$value",
          66  +
        "com.amazonaws.ssm",
          67  +
        "AutomationParameterMap",
          68  +
    ),
          69  +
    ::aws_smithy_schema::ShapeType::List,
          70  +
    "value",
          71  +
    1,
          72  +
)
          73  +
.with_list_member(&MAINTENANCEWINDOWAUTOMATIONPARAMETERS_MEMBER_PARAMETERS_VALUE_MEMBER);
          74  +
static MAINTENANCEWINDOWAUTOMATIONPARAMETERS_MEMBER_PARAMETERS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          75  +
    ::aws_smithy_schema::ShapeId::from_parts(
          76  +
        "com.amazonaws.ssm#MaintenanceWindowAutomationParameters$Parameters",
          77  +
        "com.amazonaws.ssm",
          78  +
        "MaintenanceWindowAutomationParameters",
          79  +
    ),
          80  +
    ::aws_smithy_schema::ShapeType::Map,
          81  +
    "Parameters",
          82  +
    1,
          83  +
)
          84  +
.with_map_members(
          85  +
    &MAINTENANCEWINDOWAUTOMATIONPARAMETERS_MEMBER_PARAMETERS_KEY,
          86  +
    &MAINTENANCEWINDOWAUTOMATIONPARAMETERS_MEMBER_PARAMETERS_VALUE,
          87  +
);
          88  +
static MAINTENANCEWINDOWAUTOMATIONPARAMETERS_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
          89  +
    ::aws_smithy_schema::ShapeId::from_parts(
          90  +
        "com.amazonaws.ssm#MaintenanceWindowAutomationParameters",
          91  +
        "com.amazonaws.ssm",
          92  +
        "MaintenanceWindowAutomationParameters",
          93  +
    ),
          94  +
    ::aws_smithy_schema::ShapeType::Structure,
          95  +
    &[
          96  +
        &MAINTENANCEWINDOWAUTOMATIONPARAMETERS_MEMBER_DOCUMENT_VERSION,
          97  +
        &MAINTENANCEWINDOWAUTOMATIONPARAMETERS_MEMBER_PARAMETERS,
          98  +
    ],
          99  +
);
         100  +
impl MaintenanceWindowAutomationParameters {
         101  +
    /// The schema for this shape.
         102  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &MAINTENANCEWINDOWAUTOMATIONPARAMETERS_SCHEMA;
         103  +
}
         104  +
impl ::aws_smithy_schema::serde::SerializableStruct for MaintenanceWindowAutomationParameters {
         105  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         106  +
    fn serialize_members(
         107  +
        &self,
         108  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         109  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         110  +
        if let Some(ref val) = self.document_version {
         111  +
            ser.write_string(&MAINTENANCEWINDOWAUTOMATIONPARAMETERS_MEMBER_DOCUMENT_VERSION, val)?;
         112  +
        }
         113  +
        if let Some(ref val) = self.parameters {
         114  +
            ser.write_map(
         115  +
                &MAINTENANCEWINDOWAUTOMATIONPARAMETERS_MEMBER_PARAMETERS,
         116  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         117  +
                    for (key, value) in val {
         118  +
                        ser.write_string(&::aws_smithy_schema::prelude::STRING, key)?;
         119  +
         120  +
                        ser.write_list(
         121  +
                            &MAINTENANCEWINDOWAUTOMATIONPARAMETERS_MEMBER_PARAMETERS_VALUE,
         122  +
                            &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         123  +
                                for item in value {
         124  +
                                    ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
         125  +
                                }
         126  +
                                Ok(())
         127  +
                            },
         128  +
                        )?;
         129  +
                    }
         130  +
                    Ok(())
         131  +
                },
         132  +
            )?;
         133  +
        }
         134  +
        Ok(())
         135  +
    }
         136  +
}
         137  +
impl MaintenanceWindowAutomationParameters {
         138  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         139  +
    pub fn deserialize(
         140  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         141  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         142  +
        #[allow(unused_variables, unused_mut)]
         143  +
        let mut builder = Self::builder();
         144  +
        #[allow(
         145  +
            unused_variables,
         146  +
            unreachable_code,
         147  +
            clippy::single_match,
         148  +
            clippy::match_single_binding,
         149  +
            clippy::diverging_sub_expression
         150  +
        )]
         151  +
        deserializer.read_struct(&MAINTENANCEWINDOWAUTOMATIONPARAMETERS_SCHEMA, &mut |member, deser| {
         152  +
            match member.member_index() {
         153  +
                Some(0) => {
         154  +
                    if deser.is_null() {
         155  +
                        deser.read_null()?;
         156  +
                    } else {
         157  +
                        builder.document_version = Some(deser.read_string(member)?);
         158  +
                    }
         159  +
                }
         160  +
                Some(1) => {
         161  +
                    if deser.is_null() {
         162  +
                        deser.read_null()?;
         163  +
                    } else {
         164  +
                        builder.parameters = Some({
         165  +
                            let mut container = std::collections::HashMap::new();
         166  +
                            deser.read_map(member, &mut |key, deser| {
         167  +
                                container.insert(key, {
         168  +
                                    let mut list = Vec::new();
         169  +
                                    deser.read_list(&MAINTENANCEWINDOWAUTOMATIONPARAMETERS_MEMBER_PARAMETERS_VALUE, &mut |deser| {
         170  +
                                        list.push(deser.read_string(&::aws_smithy_schema::prelude::STRING)?);
         171  +
                                        Ok(())
         172  +
                                    })?;
         173  +
                                    list
         174  +
                                });
         175  +
                                Ok(())
         176  +
                            })?;
         177  +
                            container
         178  +
                        });
         179  +
                    }
         180  +
                }
         181  +
                _ => {}
         182  +
            }
         183  +
            Ok(())
         184  +
        })?;
         185  +
        Ok(builder.build())
         186  +
    }
         187  +
}
         188  +
impl MaintenanceWindowAutomationParameters {
         189  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         190  +
    pub fn deserialize_with_response(
         191  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         192  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         193  +
        _status: u16,
         194  +
        _body: &[u8],
         195  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         196  +
        Self::deserialize(deserializer)
         197  +
    }
         198  +
}
         199  +
impl MaintenanceWindowAutomationParameters {
         200  +
    /// Creates a new builder-style object to manufacture [`MaintenanceWindowAutomationParameters`](crate::types::MaintenanceWindowAutomationParameters).
         201  +
    pub fn builder() -> crate::types::builders::MaintenanceWindowAutomationParametersBuilder {
         202  +
        crate::types::builders::MaintenanceWindowAutomationParametersBuilder::default()
         203  +
    }
         204  +
}
         205  +
         206  +
/// A builder for [`MaintenanceWindowAutomationParameters`](crate::types::MaintenanceWindowAutomationParameters).
         207  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         208  +
#[non_exhaustive]
         209  +
pub struct MaintenanceWindowAutomationParametersBuilder {
         210  +
    pub(crate) document_version: ::std::option::Option<::std::string::String>,
         211  +
    pub(crate) parameters: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
         212  +
}
         213  +
impl MaintenanceWindowAutomationParametersBuilder {
         214  +
    /// <p>The version of an Automation runbook to use during task execution.</p>
         215  +
    pub fn document_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         216  +
        self.document_version = ::std::option::Option::Some(input.into());
         217  +
        self
         218  +
    }
         219  +
    /// <p>The version of an Automation runbook to use during task execution.</p>
         220  +
    pub fn set_document_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         221  +
        self.document_version = input;
         222  +
        self
         223  +
    }
         224  +
    /// <p>The version of an Automation runbook to use during task execution.</p>
         225  +
    pub fn get_document_version(&self) -> &::std::option::Option<::std::string::String> {
         226  +
        &self.document_version
         227  +
    }
         228  +
    /// Adds a key-value pair to `parameters`.
         229  +
    ///
         230  +
    /// To override the contents of this collection use [`set_parameters`](Self::set_parameters).
         231  +
    ///
         232  +
    /// <p>The parameters for the <code>AUTOMATION</code> task.</p>
         233  +
    /// <p>For information about specifying and updating task parameters, see <code>RegisterTaskWithMaintenanceWindow</code> and <code>UpdateMaintenanceWindowTask</code>.</p><note>
         234  +
    /// <p><code>LoggingInfo</code> has been deprecated. To specify an Amazon Simple Storage Service (Amazon S3) bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Amazon Web Services Systems Manager handles these options for the supported maintenance window task types, see <code>MaintenanceWindowTaskInvocationParameters</code>.</p>
         235  +
    /// <p><code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <code>MaintenanceWindowTaskInvocationParameters</code>.</p>
         236  +
    /// <p>For <code>AUTOMATION</code> task types, Amazon Web Services Systems Manager ignores any values specified for these parameters.</p>
         237  +
    /// </note>
         238  +
    pub fn parameters(mut self, k: impl ::std::convert::Into<::std::string::String>, v: ::std::vec::Vec<::std::string::String>) -> Self {
         239  +
        let mut hash_map = self.parameters.unwrap_or_default();
         240  +
        hash_map.insert(k.into(), v);
         241  +
        self.parameters = ::std::option::Option::Some(hash_map);
         242  +
        self
         243  +
    }
         244  +
    /// <p>The parameters for the <code>AUTOMATION</code> task.</p>
         245  +
    /// <p>For information about specifying and updating task parameters, see <code>RegisterTaskWithMaintenanceWindow</code> and <code>UpdateMaintenanceWindowTask</code>.</p><note>
         246  +
    /// <p><code>LoggingInfo</code> has been deprecated. To specify an Amazon Simple Storage Service (Amazon S3) bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Amazon Web Services Systems Manager handles these options for the supported maintenance window task types, see <code>MaintenanceWindowTaskInvocationParameters</code>.</p>
         247  +
    /// <p><code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <code>MaintenanceWindowTaskInvocationParameters</code>.</p>
         248  +
    /// <p>For <code>AUTOMATION</code> task types, Amazon Web Services Systems Manager ignores any values specified for these parameters.</p>
         249  +
    /// </note>
         250  +
    pub fn set_parameters(
         251  +
        mut self,
         252  +
        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
         253  +
    ) -> Self {
         254  +
        self.parameters = input;
         255  +
        self
         256  +
    }
         257  +
    /// <p>The parameters for the <code>AUTOMATION</code> task.</p>
         258  +
    /// <p>For information about specifying and updating task parameters, see <code>RegisterTaskWithMaintenanceWindow</code> and <code>UpdateMaintenanceWindowTask</code>.</p><note>
         259  +
    /// <p><code>LoggingInfo</code> has been deprecated. To specify an Amazon Simple Storage Service (Amazon S3) bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Amazon Web Services Systems Manager handles these options for the supported maintenance window task types, see <code>MaintenanceWindowTaskInvocationParameters</code>.</p>
         260  +
    /// <p><code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <code>MaintenanceWindowTaskInvocationParameters</code>.</p>
         261  +
    /// <p>For <code>AUTOMATION</code> task types, Amazon Web Services Systems Manager ignores any values specified for these parameters.</p>
         262  +
    /// </note>
         263  +
    pub fn get_parameters(
         264  +
        &self,
         265  +
    ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
         266  +
        &self.parameters
         267  +
    }
         268  +
    /// Consumes the builder and constructs a [`MaintenanceWindowAutomationParameters`](crate::types::MaintenanceWindowAutomationParameters).
         269  +
    pub fn build(self) -> crate::types::MaintenanceWindowAutomationParameters {
         270  +
        crate::types::MaintenanceWindowAutomationParameters {
         271  +
            document_version: self.document_version,
         272  +
            parameters: self.parameters,
         273  +
        }
         274  +
    }
         275  +
}

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

@@ -0,1 +0,343 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>Describes the information about an execution of a maintenance window.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           6  +
pub struct MaintenanceWindowExecution {
           7  +
    /// <p>The ID of the maintenance window.</p>
           8  +
    pub window_id: ::std::option::Option<::std::string::String>,
           9  +
    /// <p>The ID of the maintenance window execution.</p>
          10  +
    pub window_execution_id: ::std::option::Option<::std::string::String>,
          11  +
    /// <p>The status of the execution.</p>
          12  +
    pub status: ::std::option::Option<crate::types::MaintenanceWindowExecutionStatus>,
          13  +
    /// <p>The details explaining the status. Not available for all status values.</p>
          14  +
    pub status_details: ::std::option::Option<::std::string::String>,
          15  +
    /// <p>The time the execution started.</p>
          16  +
    pub start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
          17  +
    /// <p>The time the execution finished.</p>
          18  +
    pub end_time: ::std::option::Option<::aws_smithy_types::DateTime>,
          19  +
}
          20  +
impl MaintenanceWindowExecution {
          21  +
    /// <p>The ID of the maintenance window.</p>
          22  +
    pub fn window_id(&self) -> ::std::option::Option<&str> {
          23  +
        self.window_id.as_deref()
          24  +
    }
          25  +
    /// <p>The ID of the maintenance window execution.</p>
          26  +
    pub fn window_execution_id(&self) -> ::std::option::Option<&str> {
          27  +
        self.window_execution_id.as_deref()
          28  +
    }
          29  +
    /// <p>The status of the execution.</p>
          30  +
    pub fn status(&self) -> ::std::option::Option<&crate::types::MaintenanceWindowExecutionStatus> {
          31  +
        self.status.as_ref()
          32  +
    }
          33  +
    /// <p>The details explaining the status. Not available for all status values.</p>
          34  +
    pub fn status_details(&self) -> ::std::option::Option<&str> {
          35  +
        self.status_details.as_deref()
          36  +
    }
          37  +
    /// <p>The time the execution started.</p>
          38  +
    pub fn start_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
          39  +
        self.start_time.as_ref()
          40  +
    }
          41  +
    /// <p>The time the execution finished.</p>
          42  +
    pub fn end_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
          43  +
        self.end_time.as_ref()
          44  +
    }
          45  +
}
          46  +
static MAINTENANCEWINDOWEXECUTION_MEMBER_WINDOW_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          47  +
    ::aws_smithy_schema::ShapeId::from_parts(
          48  +
        "com.amazonaws.ssm#MaintenanceWindowExecution$WindowId",
          49  +
        "com.amazonaws.ssm",
          50  +
        "MaintenanceWindowExecution",
          51  +
    ),
          52  +
    ::aws_smithy_schema::ShapeType::String,
          53  +
    "WindowId",
          54  +
    0,
          55  +
);
          56  +
static MAINTENANCEWINDOWEXECUTION_MEMBER_WINDOW_EXECUTION_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          57  +
    ::aws_smithy_schema::ShapeId::from_parts(
          58  +
        "com.amazonaws.ssm#MaintenanceWindowExecution$WindowExecutionId",
          59  +
        "com.amazonaws.ssm",
          60  +
        "MaintenanceWindowExecution",
          61  +
    ),
          62  +
    ::aws_smithy_schema::ShapeType::String,
          63  +
    "WindowExecutionId",
          64  +
    1,
          65  +
);
          66  +
static MAINTENANCEWINDOWEXECUTION_MEMBER_STATUS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          67  +
    ::aws_smithy_schema::ShapeId::from_parts(
          68  +
        "com.amazonaws.ssm#MaintenanceWindowExecution$Status",
          69  +
        "com.amazonaws.ssm",
          70  +
        "MaintenanceWindowExecution",
          71  +
    ),
          72  +
    ::aws_smithy_schema::ShapeType::String,
          73  +
    "Status",
          74  +
    2,
          75  +
);
          76  +
static MAINTENANCEWINDOWEXECUTION_MEMBER_STATUS_DETAILS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          77  +
    ::aws_smithy_schema::ShapeId::from_parts(
          78  +
        "com.amazonaws.ssm#MaintenanceWindowExecution$StatusDetails",
          79  +
        "com.amazonaws.ssm",
          80  +
        "MaintenanceWindowExecution",
          81  +
    ),
          82  +
    ::aws_smithy_schema::ShapeType::String,
          83  +
    "StatusDetails",
          84  +
    3,
          85  +
);
          86  +
static MAINTENANCEWINDOWEXECUTION_MEMBER_START_TIME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          87  +
    ::aws_smithy_schema::ShapeId::from_parts(
          88  +
        "com.amazonaws.ssm#MaintenanceWindowExecution$StartTime",
          89  +
        "com.amazonaws.ssm",
          90  +
        "MaintenanceWindowExecution",
          91  +
    ),
          92  +
    ::aws_smithy_schema::ShapeType::Timestamp,
          93  +
    "StartTime",
          94  +
    4,
          95  +
);
          96  +
static MAINTENANCEWINDOWEXECUTION_MEMBER_END_TIME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          97  +
    ::aws_smithy_schema::ShapeId::from_parts(
          98  +
        "com.amazonaws.ssm#MaintenanceWindowExecution$EndTime",
          99  +
        "com.amazonaws.ssm",
         100  +
        "MaintenanceWindowExecution",
         101  +
    ),
         102  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         103  +
    "EndTime",
         104  +
    5,
         105  +
);
         106  +
static MAINTENANCEWINDOWEXECUTION_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
         107  +
    ::aws_smithy_schema::ShapeId::from_parts(
         108  +
        "com.amazonaws.ssm#MaintenanceWindowExecution",
         109  +
        "com.amazonaws.ssm",
         110  +
        "MaintenanceWindowExecution",
         111  +
    ),
         112  +
    ::aws_smithy_schema::ShapeType::Structure,
         113  +
    &[
         114  +
        &MAINTENANCEWINDOWEXECUTION_MEMBER_WINDOW_ID,
         115  +
        &MAINTENANCEWINDOWEXECUTION_MEMBER_WINDOW_EXECUTION_ID,
         116  +
        &MAINTENANCEWINDOWEXECUTION_MEMBER_STATUS,
         117  +
        &MAINTENANCEWINDOWEXECUTION_MEMBER_STATUS_DETAILS,
         118  +
        &MAINTENANCEWINDOWEXECUTION_MEMBER_START_TIME,
         119  +
        &MAINTENANCEWINDOWEXECUTION_MEMBER_END_TIME,
         120  +
    ],
         121  +
);
         122  +
impl MaintenanceWindowExecution {
         123  +
    /// The schema for this shape.
         124  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &MAINTENANCEWINDOWEXECUTION_SCHEMA;
         125  +
}
         126  +
impl ::aws_smithy_schema::serde::SerializableStruct for MaintenanceWindowExecution {
         127  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         128  +
    fn serialize_members(
         129  +
        &self,
         130  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         131  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         132  +
        if let Some(ref val) = self.window_id {
         133  +
            ser.write_string(&MAINTENANCEWINDOWEXECUTION_MEMBER_WINDOW_ID, val)?;
         134  +
        }
         135  +
        if let Some(ref val) = self.window_execution_id {
         136  +
            ser.write_string(&MAINTENANCEWINDOWEXECUTION_MEMBER_WINDOW_EXECUTION_ID, val)?;
         137  +
        }
         138  +
        if let Some(ref val) = self.status {
         139  +
            ser.write_string(&MAINTENANCEWINDOWEXECUTION_MEMBER_STATUS, val.as_str())?;
         140  +
        }
         141  +
        if let Some(ref val) = self.status_details {
         142  +
            ser.write_string(&MAINTENANCEWINDOWEXECUTION_MEMBER_STATUS_DETAILS, val)?;
         143  +
        }
         144  +
        if let Some(ref val) = self.start_time {
         145  +
            ser.write_timestamp(&MAINTENANCEWINDOWEXECUTION_MEMBER_START_TIME, val)?;
         146  +
        }
         147  +
        if let Some(ref val) = self.end_time {
         148  +
            ser.write_timestamp(&MAINTENANCEWINDOWEXECUTION_MEMBER_END_TIME, val)?;
         149  +
        }
         150  +
        Ok(())
         151  +
    }
         152  +
}
         153  +
impl MaintenanceWindowExecution {
         154  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         155  +
    pub fn deserialize(
         156  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         157  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         158  +
        #[allow(unused_variables, unused_mut)]
         159  +
        let mut builder = Self::builder();
         160  +
        #[allow(
         161  +
            unused_variables,
         162  +
            unreachable_code,
         163  +
            clippy::single_match,
         164  +
            clippy::match_single_binding,
         165  +
            clippy::diverging_sub_expression
         166  +
        )]
         167  +
        deserializer.read_struct(&MAINTENANCEWINDOWEXECUTION_SCHEMA, &mut |member, deser| {
         168  +
            match member.member_index() {
         169  +
                Some(0) => {
         170  +
                    if deser.is_null() {
         171  +
                        deser.read_null()?;
         172  +
                    } else {
         173  +
                        builder.window_id = Some(deser.read_string(member)?);
         174  +
                    }
         175  +
                }
         176  +
                Some(1) => {
         177  +
                    if deser.is_null() {
         178  +
                        deser.read_null()?;
         179  +
                    } else {
         180  +
                        builder.window_execution_id = Some(deser.read_string(member)?);
         181  +
                    }
         182  +
                }
         183  +
                Some(2) => {
         184  +
                    if deser.is_null() {
         185  +
                        deser.read_null()?;
         186  +
                    } else {
         187  +
                        builder.status = Some(crate::types::MaintenanceWindowExecutionStatus::from(deser.read_string(member)?.as_str()));
         188  +
                    }
         189  +
                }
         190  +
                Some(3) => {
         191  +
                    if deser.is_null() {
         192  +
                        deser.read_null()?;
         193  +
                    } else {
         194  +
                        builder.status_details = Some(deser.read_string(member)?);
         195  +
                    }
         196  +
                }
         197  +
                Some(4) => {
         198  +
                    if deser.is_null() {
         199  +
                        deser.read_null()?;
         200  +
                    } else {
         201  +
                        builder.start_time = Some(deser.read_timestamp(member)?);
         202  +
                    }
         203  +
                }
         204  +
                Some(5) => {
         205  +
                    if deser.is_null() {
         206  +
                        deser.read_null()?;
         207  +
                    } else {
         208  +
                        builder.end_time = Some(deser.read_timestamp(member)?);
         209  +
                    }
         210  +
                }
         211  +
                _ => {}
         212  +
            }
         213  +
            Ok(())
         214  +
        })?;
         215  +
        Ok(builder.build())
         216  +
    }
         217  +
}
         218  +
impl MaintenanceWindowExecution {
         219  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         220  +
    pub fn deserialize_with_response(
         221  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         222  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         223  +
        _status: u16,
         224  +
        _body: &[u8],
         225  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         226  +
        Self::deserialize(deserializer)
         227  +
    }
         228  +
}
         229  +
impl MaintenanceWindowExecution {
         230  +
    /// Creates a new builder-style object to manufacture [`MaintenanceWindowExecution`](crate::types::MaintenanceWindowExecution).
         231  +
    pub fn builder() -> crate::types::builders::MaintenanceWindowExecutionBuilder {
         232  +
        crate::types::builders::MaintenanceWindowExecutionBuilder::default()
         233  +
    }
         234  +
}
         235  +
         236  +
/// A builder for [`MaintenanceWindowExecution`](crate::types::MaintenanceWindowExecution).
         237  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         238  +
#[non_exhaustive]
         239  +
pub struct MaintenanceWindowExecutionBuilder {
         240  +
    pub(crate) window_id: ::std::option::Option<::std::string::String>,
         241  +
    pub(crate) window_execution_id: ::std::option::Option<::std::string::String>,
         242  +
    pub(crate) status: ::std::option::Option<crate::types::MaintenanceWindowExecutionStatus>,
         243  +
    pub(crate) status_details: ::std::option::Option<::std::string::String>,
         244  +
    pub(crate) start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
         245  +
    pub(crate) end_time: ::std::option::Option<::aws_smithy_types::DateTime>,
         246  +
}
         247  +
impl MaintenanceWindowExecutionBuilder {
         248  +
    /// <p>The ID of the maintenance window.</p>
         249  +
    pub fn window_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         250  +
        self.window_id = ::std::option::Option::Some(input.into());
         251  +
        self
         252  +
    }
         253  +
    /// <p>The ID of the maintenance window.</p>
         254  +
    pub fn set_window_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         255  +
        self.window_id = input;
         256  +
        self
         257  +
    }
         258  +
    /// <p>The ID of the maintenance window.</p>
         259  +
    pub fn get_window_id(&self) -> &::std::option::Option<::std::string::String> {
         260  +
        &self.window_id
         261  +
    }
         262  +
    /// <p>The ID of the maintenance window execution.</p>
         263  +
    pub fn window_execution_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         264  +
        self.window_execution_id = ::std::option::Option::Some(input.into());
         265  +
        self
         266  +
    }
         267  +
    /// <p>The ID of the maintenance window execution.</p>
         268  +
    pub fn set_window_execution_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         269  +
        self.window_execution_id = input;
         270  +
        self
         271  +
    }
         272  +
    /// <p>The ID of the maintenance window execution.</p>
         273  +
    pub fn get_window_execution_id(&self) -> &::std::option::Option<::std::string::String> {
         274  +
        &self.window_execution_id
         275  +
    }
         276  +
    /// <p>The status of the execution.</p>
         277  +
    pub fn status(mut self, input: crate::types::MaintenanceWindowExecutionStatus) -> Self {
         278  +
        self.status = ::std::option::Option::Some(input);
         279  +
        self
         280  +
    }
         281  +
    /// <p>The status of the execution.</p>
         282  +
    pub fn set_status(mut self, input: ::std::option::Option<crate::types::MaintenanceWindowExecutionStatus>) -> Self {
         283  +
        self.status = input;
         284  +
        self
         285  +
    }
         286  +
    /// <p>The status of the execution.</p>
         287  +
    pub fn get_status(&self) -> &::std::option::Option<crate::types::MaintenanceWindowExecutionStatus> {
         288  +
        &self.status
         289  +
    }
         290  +
    /// <p>The details explaining the status. Not available for all status values.</p>
         291  +
    pub fn status_details(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         292  +
        self.status_details = ::std::option::Option::Some(input.into());
         293  +
        self
         294  +
    }
         295  +
    /// <p>The details explaining the status. Not available for all status values.</p>
         296  +
    pub fn set_status_details(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         297  +
        self.status_details = input;
         298  +
        self
         299  +
    }
         300  +
    /// <p>The details explaining the status. Not available for all status values.</p>
         301  +
    pub fn get_status_details(&self) -> &::std::option::Option<::std::string::String> {
         302  +
        &self.status_details
         303  +
    }
         304  +
    /// <p>The time the execution started.</p>
         305  +
    pub fn start_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         306  +
        self.start_time = ::std::option::Option::Some(input);
         307  +
        self
         308  +
    }
         309  +
    /// <p>The time the execution started.</p>
         310  +
    pub fn set_start_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         311  +
        self.start_time = input;
         312  +
        self
         313  +
    }
         314  +
    /// <p>The time the execution started.</p>
         315  +
    pub fn get_start_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         316  +
        &self.start_time
         317  +
    }
         318  +
    /// <p>The time the execution finished.</p>
         319  +
    pub fn end_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         320  +
        self.end_time = ::std::option::Option::Some(input);
         321  +
        self
         322  +
    }
         323  +
    /// <p>The time the execution finished.</p>
         324  +
    pub fn set_end_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         325  +
        self.end_time = input;
         326  +
        self
         327  +
    }
         328  +
    /// <p>The time the execution finished.</p>
         329  +
    pub fn get_end_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         330  +
        &self.end_time
         331  +
    }
         332  +
    /// Consumes the builder and constructs a [`MaintenanceWindowExecution`](crate::types::MaintenanceWindowExecution).
         333  +
    pub fn build(self) -> crate::types::MaintenanceWindowExecution {
         334  +
        crate::types::MaintenanceWindowExecution {
         335  +
            window_id: self.window_id,
         336  +
            window_execution_id: self.window_execution_id,
         337  +
            status: self.status,
         338  +
            status_details: self.status_details,
         339  +
            start_time: self.start_time,
         340  +
            end_time: self.end_time,
         341  +
        }
         342  +
    }
         343  +
}