AWS SDK

AWS SDK

rev. 97ba95e6039d206ffea5b866ddc214d34f7f88c3 (ignoring whitespace)

Files changed:

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

@@ -0,1 +0,237 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>The parameters for a <code>LAMBDA</code> task type.</p>
           4  +
/// <p>For information about specifying and updating task parameters, see <code>RegisterTaskWithMaintenanceWindow</code> and <code>UpdateMaintenanceWindowTask</code>.</p><note>
           5  +
/// <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>
           6  +
/// <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>
           7  +
/// <p>For Lambda tasks, Systems Manager ignores any values specified for TaskParameters and LoggingInfo.</p>
           8  +
/// </note>
           9  +
#[non_exhaustive]
          10  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
          11  +
pub struct MaintenanceWindowLambdaParameters {
          12  +
    /// <p>Pass client-specific information to the Lambda function that you are invoking. You can then process the client information in your Lambda function as you choose through the context variable.</p>
          13  +
    pub client_context: ::std::option::Option<::std::string::String>,
          14  +
    /// <p>(Optional) Specify an Lambda function version or alias name. If you specify a function version, the operation uses the qualified function Amazon Resource Name (ARN) to invoke a specific Lambda function. If you specify an alias name, the operation uses the alias ARN to invoke the Lambda function version to which the alias points.</p>
          15  +
    pub qualifier: ::std::option::Option<::std::string::String>,
          16  +
    /// <p>JSON to provide to your Lambda function as input.</p>
          17  +
    pub payload: ::std::option::Option<::aws_smithy_types::Blob>,
          18  +
}
          19  +
impl MaintenanceWindowLambdaParameters {
          20  +
    /// <p>Pass client-specific information to the Lambda function that you are invoking. You can then process the client information in your Lambda function as you choose through the context variable.</p>
          21  +
    pub fn client_context(&self) -> ::std::option::Option<&str> {
          22  +
        self.client_context.as_deref()
          23  +
    }
          24  +
    /// <p>(Optional) Specify an Lambda function version or alias name. If you specify a function version, the operation uses the qualified function Amazon Resource Name (ARN) to invoke a specific Lambda function. If you specify an alias name, the operation uses the alias ARN to invoke the Lambda function version to which the alias points.</p>
          25  +
    pub fn qualifier(&self) -> ::std::option::Option<&str> {
          26  +
        self.qualifier.as_deref()
          27  +
    }
          28  +
    /// <p>JSON to provide to your Lambda function as input.</p>
          29  +
    pub fn payload(&self) -> ::std::option::Option<&::aws_smithy_types::Blob> {
          30  +
        self.payload.as_ref()
          31  +
    }
          32  +
}
          33  +
impl ::std::fmt::Debug for MaintenanceWindowLambdaParameters {
          34  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
          35  +
        let mut formatter = f.debug_struct("MaintenanceWindowLambdaParameters");
          36  +
        formatter.field("client_context", &self.client_context);
          37  +
        formatter.field("qualifier", &self.qualifier);
          38  +
        formatter.field("payload", &"*** Sensitive Data Redacted ***");
          39  +
        formatter.finish()
          40  +
    }
          41  +
}
          42  +
static MAINTENANCEWINDOWLAMBDAPARAMETERS_MEMBER_CLIENT_CONTEXT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          43  +
    ::aws_smithy_schema::ShapeId::from_parts(
          44  +
        "com.amazonaws.ssm#MaintenanceWindowLambdaParameters$ClientContext",
          45  +
        "com.amazonaws.ssm",
          46  +
        "MaintenanceWindowLambdaParameters",
          47  +
    ),
          48  +
    ::aws_smithy_schema::ShapeType::String,
          49  +
    "ClientContext",
          50  +
    0,
          51  +
);
          52  +
static MAINTENANCEWINDOWLAMBDAPARAMETERS_MEMBER_QUALIFIER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          53  +
    ::aws_smithy_schema::ShapeId::from_parts(
          54  +
        "com.amazonaws.ssm#MaintenanceWindowLambdaParameters$Qualifier",
          55  +
        "com.amazonaws.ssm",
          56  +
        "MaintenanceWindowLambdaParameters",
          57  +
    ),
          58  +
    ::aws_smithy_schema::ShapeType::String,
          59  +
    "Qualifier",
          60  +
    1,
          61  +
);
          62  +
static MAINTENANCEWINDOWLAMBDAPARAMETERS_MEMBER_PAYLOAD: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          63  +
    ::aws_smithy_schema::ShapeId::from_parts(
          64  +
        "com.amazonaws.ssm#MaintenanceWindowLambdaParameters$Payload",
          65  +
        "com.amazonaws.ssm",
          66  +
        "MaintenanceWindowLambdaParameters",
          67  +
    ),
          68  +
    ::aws_smithy_schema::ShapeType::Blob,
          69  +
    "Payload",
          70  +
    2,
          71  +
);
          72  +
static MAINTENANCEWINDOWLAMBDAPARAMETERS_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
          73  +
    ::aws_smithy_schema::ShapeId::from_parts(
          74  +
        "com.amazonaws.ssm#MaintenanceWindowLambdaParameters",
          75  +
        "com.amazonaws.ssm",
          76  +
        "MaintenanceWindowLambdaParameters",
          77  +
    ),
          78  +
    ::aws_smithy_schema::ShapeType::Structure,
          79  +
    &[
          80  +
        &MAINTENANCEWINDOWLAMBDAPARAMETERS_MEMBER_CLIENT_CONTEXT,
          81  +
        &MAINTENANCEWINDOWLAMBDAPARAMETERS_MEMBER_QUALIFIER,
          82  +
        &MAINTENANCEWINDOWLAMBDAPARAMETERS_MEMBER_PAYLOAD,
          83  +
    ],
          84  +
);
          85  +
impl MaintenanceWindowLambdaParameters {
          86  +
    /// The schema for this shape.
          87  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &MAINTENANCEWINDOWLAMBDAPARAMETERS_SCHEMA;
          88  +
}
          89  +
impl ::aws_smithy_schema::serde::SerializableStruct for MaintenanceWindowLambdaParameters {
          90  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
          91  +
    fn serialize_members(
          92  +
        &self,
          93  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
          94  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
          95  +
        if let Some(ref val) = self.client_context {
          96  +
            ser.write_string(&MAINTENANCEWINDOWLAMBDAPARAMETERS_MEMBER_CLIENT_CONTEXT, val)?;
          97  +
        }
          98  +
        if let Some(ref val) = self.qualifier {
          99  +
            ser.write_string(&MAINTENANCEWINDOWLAMBDAPARAMETERS_MEMBER_QUALIFIER, val)?;
         100  +
        }
         101  +
        if let Some(ref val) = self.payload {
         102  +
            ser.write_blob(&MAINTENANCEWINDOWLAMBDAPARAMETERS_MEMBER_PAYLOAD, val.clone())?;
         103  +
        }
         104  +
        Ok(())
         105  +
    }
         106  +
}
         107  +
impl MaintenanceWindowLambdaParameters {
         108  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         109  +
    pub fn deserialize(
         110  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         111  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         112  +
        #[allow(unused_variables, unused_mut)]
         113  +
        let mut builder = Self::builder();
         114  +
        #[allow(
         115  +
            unused_variables,
         116  +
            unreachable_code,
         117  +
            clippy::single_match,
         118  +
            clippy::match_single_binding,
         119  +
            clippy::diverging_sub_expression
         120  +
        )]
         121  +
        deserializer.read_struct(&MAINTENANCEWINDOWLAMBDAPARAMETERS_SCHEMA, &mut |member, deser| {
         122  +
            match member.member_index() {
         123  +
                Some(0) => {
         124  +
                    if deser.is_null() {
         125  +
                        deser.read_null()?;
         126  +
                    } else {
         127  +
                        builder.client_context = Some(deser.read_string(member)?);
         128  +
                    }
         129  +
                }
         130  +
                Some(1) => {
         131  +
                    if deser.is_null() {
         132  +
                        deser.read_null()?;
         133  +
                    } else {
         134  +
                        builder.qualifier = Some(deser.read_string(member)?);
         135  +
                    }
         136  +
                }
         137  +
                Some(2) => {
         138  +
                    if deser.is_null() {
         139  +
                        deser.read_null()?;
         140  +
                    } else {
         141  +
                        builder.payload = Some(deser.read_blob(member)?);
         142  +
                    }
         143  +
                }
         144  +
                _ => {}
         145  +
            }
         146  +
            Ok(())
         147  +
        })?;
         148  +
        Ok(builder.build())
         149  +
    }
         150  +
}
         151  +
impl MaintenanceWindowLambdaParameters {
         152  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         153  +
    pub fn deserialize_with_response(
         154  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         155  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         156  +
        _status: u16,
         157  +
        _body: &[u8],
         158  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         159  +
        Self::deserialize(deserializer)
         160  +
    }
         161  +
}
         162  +
impl MaintenanceWindowLambdaParameters {
         163  +
    /// Creates a new builder-style object to manufacture [`MaintenanceWindowLambdaParameters`](crate::types::MaintenanceWindowLambdaParameters).
         164  +
    pub fn builder() -> crate::types::builders::MaintenanceWindowLambdaParametersBuilder {
         165  +
        crate::types::builders::MaintenanceWindowLambdaParametersBuilder::default()
         166  +
    }
         167  +
}
         168  +
         169  +
/// A builder for [`MaintenanceWindowLambdaParameters`](crate::types::MaintenanceWindowLambdaParameters).
         170  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
         171  +
#[non_exhaustive]
         172  +
pub struct MaintenanceWindowLambdaParametersBuilder {
         173  +
    pub(crate) client_context: ::std::option::Option<::std::string::String>,
         174  +
    pub(crate) qualifier: ::std::option::Option<::std::string::String>,
         175  +
    pub(crate) payload: ::std::option::Option<::aws_smithy_types::Blob>,
         176  +
}
         177  +
impl MaintenanceWindowLambdaParametersBuilder {
         178  +
    /// <p>Pass client-specific information to the Lambda function that you are invoking. You can then process the client information in your Lambda function as you choose through the context variable.</p>
         179  +
    pub fn client_context(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         180  +
        self.client_context = ::std::option::Option::Some(input.into());
         181  +
        self
         182  +
    }
         183  +
    /// <p>Pass client-specific information to the Lambda function that you are invoking. You can then process the client information in your Lambda function as you choose through the context variable.</p>
         184  +
    pub fn set_client_context(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         185  +
        self.client_context = input;
         186  +
        self
         187  +
    }
         188  +
    /// <p>Pass client-specific information to the Lambda function that you are invoking. You can then process the client information in your Lambda function as you choose through the context variable.</p>
         189  +
    pub fn get_client_context(&self) -> &::std::option::Option<::std::string::String> {
         190  +
        &self.client_context
         191  +
    }
         192  +
    /// <p>(Optional) Specify an Lambda function version or alias name. If you specify a function version, the operation uses the qualified function Amazon Resource Name (ARN) to invoke a specific Lambda function. If you specify an alias name, the operation uses the alias ARN to invoke the Lambda function version to which the alias points.</p>
         193  +
    pub fn qualifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         194  +
        self.qualifier = ::std::option::Option::Some(input.into());
         195  +
        self
         196  +
    }
         197  +
    /// <p>(Optional) Specify an Lambda function version or alias name. If you specify a function version, the operation uses the qualified function Amazon Resource Name (ARN) to invoke a specific Lambda function. If you specify an alias name, the operation uses the alias ARN to invoke the Lambda function version to which the alias points.</p>
         198  +
    pub fn set_qualifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         199  +
        self.qualifier = input;
         200  +
        self
         201  +
    }
         202  +
    /// <p>(Optional) Specify an Lambda function version or alias name. If you specify a function version, the operation uses the qualified function Amazon Resource Name (ARN) to invoke a specific Lambda function. If you specify an alias name, the operation uses the alias ARN to invoke the Lambda function version to which the alias points.</p>
         203  +
    pub fn get_qualifier(&self) -> &::std::option::Option<::std::string::String> {
         204  +
        &self.qualifier
         205  +
    }
         206  +
    /// <p>JSON to provide to your Lambda function as input.</p>
         207  +
    pub fn payload(mut self, input: ::aws_smithy_types::Blob) -> Self {
         208  +
        self.payload = ::std::option::Option::Some(input);
         209  +
        self
         210  +
    }
         211  +
    /// <p>JSON to provide to your Lambda function as input.</p>
         212  +
    pub fn set_payload(mut self, input: ::std::option::Option<::aws_smithy_types::Blob>) -> Self {
         213  +
        self.payload = input;
         214  +
        self
         215  +
    }
         216  +
    /// <p>JSON to provide to your Lambda function as input.</p>
         217  +
    pub fn get_payload(&self) -> &::std::option::Option<::aws_smithy_types::Blob> {
         218  +
        &self.payload
         219  +
    }
         220  +
    /// Consumes the builder and constructs a [`MaintenanceWindowLambdaParameters`](crate::types::MaintenanceWindowLambdaParameters).
         221  +
    pub fn build(self) -> crate::types::MaintenanceWindowLambdaParameters {
         222  +
        crate::types::MaintenanceWindowLambdaParameters {
         223  +
            client_context: self.client_context,
         224  +
            qualifier: self.qualifier,
         225  +
            payload: self.payload,
         226  +
        }
         227  +
    }
         228  +
}
         229  +
impl ::std::fmt::Debug for MaintenanceWindowLambdaParametersBuilder {
         230  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         231  +
        let mut formatter = f.debug_struct("MaintenanceWindowLambdaParametersBuilder");
         232  +
        formatter.field("client_context", &self.client_context);
         233  +
        formatter.field("qualifier", &self.qualifier);
         234  +
        formatter.field("payload", &"*** Sensitive Data Redacted ***");
         235  +
        formatter.finish()
         236  +
    }
         237  +
}

tmp-codegen-diff/aws-sdk/sdk/ssm/src/types/_maintenance_window_resource_type.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 `MaintenanceWindowResourceType`, 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 maintenancewindowresourcetype = unimplemented!();
          14  +
/// match maintenancewindowresourcetype {
          15  +
///     MaintenanceWindowResourceType::Instance => { /* ... */ },
          16  +
///     MaintenanceWindowResourceType::ResourceGroup => { /* ... */ },
          17  +
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
          18  +
///     _ => { /* ... */ },
          19  +
/// }
          20  +
/// ```
          21  +
/// The above code demonstrates that when `maintenancewindowresourcetype` represents
          22  +
/// `NewFeature`, the execution path will lead to the second last match arm,
          23  +
/// even though the enum does not contain a variant `MaintenanceWindowResourceType::NewFeature`
          24  +
/// in the current version of SDK. The reason is that the variable `other`,
          25  +
/// created by the `@` operator, is bound to
          26  +
/// `MaintenanceWindowResourceType::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 `MaintenanceWindowResourceType::NewFeature` is defined.
          30  +
/// Specifically, when `maintenancewindowresourcetype` represents `NewFeature`,
          31  +
/// the execution path will hit the second last match arm as before by virtue of
          32  +
/// calling `as_str` on `MaintenanceWindowResourceType::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 MaintenanceWindowResourceType {
          45  +
    #[allow(missing_docs)] // documentation missing in model
          46  +
    Instance,
          47  +
    #[allow(missing_docs)] // documentation missing in model
          48  +
    ResourceGroup,
          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 MaintenanceWindowResourceType {
          54  +
    fn from(s: &str) -> Self {
          55  +
        match s {
          56  +
            "INSTANCE" => MaintenanceWindowResourceType::Instance,
          57  +
            "RESOURCE_GROUP" => MaintenanceWindowResourceType::ResourceGroup,
          58  +
            other => MaintenanceWindowResourceType::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
          59  +
        }
          60  +
    }
          61  +
}
          62  +
impl ::std::str::FromStr for MaintenanceWindowResourceType {
          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(MaintenanceWindowResourceType::from(s))
          67  +
    }
          68  +
}
          69  +
impl MaintenanceWindowResourceType {
          70  +
    /// Returns the `&str` value of the enum member.
          71  +
    pub fn as_str(&self) -> &str {
          72  +
        match self {
          73  +
            MaintenanceWindowResourceType::Instance => "INSTANCE",
          74  +
            MaintenanceWindowResourceType::ResourceGroup => "RESOURCE_GROUP",
          75  +
            MaintenanceWindowResourceType::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  +
        &["INSTANCE", "RESOURCE_GROUP"]
          81  +
    }
          82  +
}
          83  +
impl ::std::convert::AsRef<str> for MaintenanceWindowResourceType {
          84  +
    fn as_ref(&self) -> &str {
          85  +
        self.as_str()
          86  +
    }
          87  +
}
          88  +
impl MaintenanceWindowResourceType {
          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 MaintenanceWindowResourceType {
         101  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         102  +
        match self {
         103  +
            MaintenanceWindowResourceType::Instance => write!(f, "INSTANCE"),
         104  +
            MaintenanceWindowResourceType::ResourceGroup => write!(f, "RESOURCE_GROUP"),
         105  +
            MaintenanceWindowResourceType::Unknown(value) => write!(f, "{value}"),
         106  +
        }
         107  +
    }
         108  +
}

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

@@ -0,1 +0,689 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>The parameters for a <code>RUN_COMMAND</code> task type.</p>
           4  +
/// <p>For information about specifying and updating task parameters, see <code>RegisterTaskWithMaintenanceWindow</code> and <code>UpdateMaintenanceWindowTask</code>.</p><note>
           5  +
/// <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>
           6  +
/// <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>
           7  +
/// <p>For <code>RUN_COMMAND</code> tasks, Systems Manager uses specified values for <code>TaskParameters</code> and <code>LoggingInfo</code> only if no values are specified for <code>TaskInvocationParameters</code>.</p>
           8  +
/// </note>
           9  +
#[non_exhaustive]
          10  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
          11  +
pub struct MaintenanceWindowRunCommandParameters {
          12  +
    /// <p>Information about the commands to run.</p>
          13  +
    pub comment: ::std::option::Option<::std::string::String>,
          14  +
    /// <p>Configuration options for sending command output to Amazon CloudWatch Logs.</p>
          15  +
    pub cloud_watch_output_config: ::std::option::Option<crate::types::CloudWatchOutputConfig>,
          16  +
    /// <p>The SHA-256 or SHA-1 hash created by the system when the document was created. SHA-1 hashes have been deprecated.</p>
          17  +
    pub document_hash: ::std::option::Option<::std::string::String>,
          18  +
    /// <p>SHA-256 or SHA-1. SHA-1 hashes have been deprecated.</p>
          19  +
    pub document_hash_type: ::std::option::Option<crate::types::DocumentHashType>,
          20  +
    /// <p>The Amazon Web Services Systems Manager document (SSM document) version to use in the request. You can specify <code>$DEFAULT</code>, <code>$LATEST</code>, or a specific version number. If you run commands by using the Amazon Web Services CLI, then you must escape the first two options by using a backslash. If you specify a version number, then you don't need to use the backslash. For example:</p>
          21  +
    /// <p><code>--document-version "\$DEFAULT"</code></p>
          22  +
    /// <p><code>--document-version "\$LATEST"</code></p>
          23  +
    /// <p><code>--document-version "3"</code></p>
          24  +
    pub document_version: ::std::option::Option<::std::string::String>,
          25  +
    /// <p>Configurations for sending notifications about command status changes on a per-managed node basis.</p>
          26  +
    pub notification_config: ::std::option::Option<crate::types::NotificationConfig>,
          27  +
    /// <p>The name of the Amazon Simple Storage Service (Amazon S3) bucket.</p>
          28  +
    pub output_s3_bucket_name: ::std::option::Option<::std::string::String>,
          29  +
    /// <p>The S3 bucket subfolder.</p>
          30  +
    pub output_s3_key_prefix: ::std::option::Option<::std::string::String>,
          31  +
    /// <p>The parameters for the <code>RUN_COMMAND</code> task execution.</p>
          32  +
    pub parameters: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
          33  +
    /// <p>The Amazon Resource Name (ARN) of the IAM service role for Amazon Web Services Systems Manager to assume when running a maintenance window task. If you do not specify a service role ARN, Systems Manager uses a service-linked role in your account. If no appropriate service-linked role for Systems Manager exists in your account, it is created when you run <code>RegisterTaskWithMaintenanceWindow</code>.</p>
          34  +
    /// <p>However, for an improved security posture, we strongly recommend creating a custom policy and custom service role for running your maintenance window tasks. The policy can be crafted to provide only the permissions needed for your particular maintenance window tasks. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-maintenance-permissions.html">Setting up Maintenance Windows</a> in the in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
          35  +
    pub service_role_arn: ::std::option::Option<::std::string::String>,
          36  +
    /// <p>If this time is reached and the command hasn't already started running, it doesn't run.</p>
          37  +
    pub timeout_seconds: ::std::option::Option<i32>,
          38  +
}
          39  +
impl MaintenanceWindowRunCommandParameters {
          40  +
    /// <p>Information about the commands to run.</p>
          41  +
    pub fn comment(&self) -> ::std::option::Option<&str> {
          42  +
        self.comment.as_deref()
          43  +
    }
          44  +
    /// <p>Configuration options for sending command output to Amazon CloudWatch Logs.</p>
          45  +
    pub fn cloud_watch_output_config(&self) -> ::std::option::Option<&crate::types::CloudWatchOutputConfig> {
          46  +
        self.cloud_watch_output_config.as_ref()
          47  +
    }
          48  +
    /// <p>The SHA-256 or SHA-1 hash created by the system when the document was created. SHA-1 hashes have been deprecated.</p>
          49  +
    pub fn document_hash(&self) -> ::std::option::Option<&str> {
          50  +
        self.document_hash.as_deref()
          51  +
    }
          52  +
    /// <p>SHA-256 or SHA-1. SHA-1 hashes have been deprecated.</p>
          53  +
    pub fn document_hash_type(&self) -> ::std::option::Option<&crate::types::DocumentHashType> {
          54  +
        self.document_hash_type.as_ref()
          55  +
    }
          56  +
    /// <p>The Amazon Web Services Systems Manager document (SSM document) version to use in the request. You can specify <code>$DEFAULT</code>, <code>$LATEST</code>, or a specific version number. If you run commands by using the Amazon Web Services CLI, then you must escape the first two options by using a backslash. If you specify a version number, then you don't need to use the backslash. For example:</p>
          57  +
    /// <p><code>--document-version "\$DEFAULT"</code></p>
          58  +
    /// <p><code>--document-version "\$LATEST"</code></p>
          59  +
    /// <p><code>--document-version "3"</code></p>
          60  +
    pub fn document_version(&self) -> ::std::option::Option<&str> {
          61  +
        self.document_version.as_deref()
          62  +
    }
          63  +
    /// <p>Configurations for sending notifications about command status changes on a per-managed node basis.</p>
          64  +
    pub fn notification_config(&self) -> ::std::option::Option<&crate::types::NotificationConfig> {
          65  +
        self.notification_config.as_ref()
          66  +
    }
          67  +
    /// <p>The name of the Amazon Simple Storage Service (Amazon S3) bucket.</p>
          68  +
    pub fn output_s3_bucket_name(&self) -> ::std::option::Option<&str> {
          69  +
        self.output_s3_bucket_name.as_deref()
          70  +
    }
          71  +
    /// <p>The S3 bucket subfolder.</p>
          72  +
    pub fn output_s3_key_prefix(&self) -> ::std::option::Option<&str> {
          73  +
        self.output_s3_key_prefix.as_deref()
          74  +
    }
          75  +
    /// <p>The parameters for the <code>RUN_COMMAND</code> task execution.</p>
          76  +
    pub fn parameters(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
          77  +
        self.parameters.as_ref()
          78  +
    }
          79  +
    /// <p>The Amazon Resource Name (ARN) of the IAM service role for Amazon Web Services Systems Manager to assume when running a maintenance window task. If you do not specify a service role ARN, Systems Manager uses a service-linked role in your account. If no appropriate service-linked role for Systems Manager exists in your account, it is created when you run <code>RegisterTaskWithMaintenanceWindow</code>.</p>
          80  +
    /// <p>However, for an improved security posture, we strongly recommend creating a custom policy and custom service role for running your maintenance window tasks. The policy can be crafted to provide only the permissions needed for your particular maintenance window tasks. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-maintenance-permissions.html">Setting up Maintenance Windows</a> in the in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
          81  +
    pub fn service_role_arn(&self) -> ::std::option::Option<&str> {
          82  +
        self.service_role_arn.as_deref()
          83  +
    }
          84  +
    /// <p>If this time is reached and the command hasn't already started running, it doesn't run.</p>
          85  +
    pub fn timeout_seconds(&self) -> ::std::option::Option<i32> {
          86  +
        self.timeout_seconds
          87  +
    }
          88  +
}
          89  +
impl ::std::fmt::Debug for MaintenanceWindowRunCommandParameters {
          90  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
          91  +
        let mut formatter = f.debug_struct("MaintenanceWindowRunCommandParameters");
          92  +
        formatter.field("comment", &self.comment);
          93  +
        formatter.field("cloud_watch_output_config", &self.cloud_watch_output_config);
          94  +
        formatter.field("document_hash", &self.document_hash);
          95  +
        formatter.field("document_hash_type", &self.document_hash_type);
          96  +
        formatter.field("document_version", &self.document_version);
          97  +
        formatter.field("notification_config", &self.notification_config);
          98  +
        formatter.field("output_s3_bucket_name", &self.output_s3_bucket_name);
          99  +
        formatter.field("output_s3_key_prefix", &self.output_s3_key_prefix);
         100  +
        formatter.field("parameters", &"*** Sensitive Data Redacted ***");
         101  +
        formatter.field("service_role_arn", &self.service_role_arn);
         102  +
        formatter.field("timeout_seconds", &self.timeout_seconds);
         103  +
        formatter.finish()
         104  +
    }
         105  +
}
         106  +
static MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_COMMENT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         107  +
    ::aws_smithy_schema::ShapeId::from_parts(
         108  +
        "com.amazonaws.ssm#MaintenanceWindowRunCommandParameters$Comment",
         109  +
        "com.amazonaws.ssm",
         110  +
        "MaintenanceWindowRunCommandParameters",
         111  +
    ),
         112  +
    ::aws_smithy_schema::ShapeType::String,
         113  +
    "Comment",
         114  +
    0,
         115  +
);
         116  +
static MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_CLOUD_WATCH_OUTPUT_CONFIG: ::aws_smithy_schema::Schema<'static> =
         117  +
    ::aws_smithy_schema::Schema::new_member(
         118  +
        ::aws_smithy_schema::ShapeId::from_parts(
         119  +
            "com.amazonaws.ssm#MaintenanceWindowRunCommandParameters$CloudWatchOutputConfig",
         120  +
            "com.amazonaws.ssm",
         121  +
            "MaintenanceWindowRunCommandParameters",
         122  +
        ),
         123  +
        ::aws_smithy_schema::ShapeType::Structure,
         124  +
        "CloudWatchOutputConfig",
         125  +
        1,
         126  +
    );
         127  +
static MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_DOCUMENT_HASH: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         128  +
    ::aws_smithy_schema::ShapeId::from_parts(
         129  +
        "com.amazonaws.ssm#MaintenanceWindowRunCommandParameters$DocumentHash",
         130  +
        "com.amazonaws.ssm",
         131  +
        "MaintenanceWindowRunCommandParameters",
         132  +
    ),
         133  +
    ::aws_smithy_schema::ShapeType::String,
         134  +
    "DocumentHash",
         135  +
    2,
         136  +
);
         137  +
static MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_DOCUMENT_HASH_TYPE: ::aws_smithy_schema::Schema<'static> =
         138  +
    ::aws_smithy_schema::Schema::new_member(
         139  +
        ::aws_smithy_schema::ShapeId::from_parts(
         140  +
            "com.amazonaws.ssm#MaintenanceWindowRunCommandParameters$DocumentHashType",
         141  +
            "com.amazonaws.ssm",
         142  +
            "MaintenanceWindowRunCommandParameters",
         143  +
        ),
         144  +
        ::aws_smithy_schema::ShapeType::String,
         145  +
        "DocumentHashType",
         146  +
        3,
         147  +
    );
         148  +
static MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_DOCUMENT_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         149  +
    ::aws_smithy_schema::ShapeId::from_parts(
         150  +
        "com.amazonaws.ssm#MaintenanceWindowRunCommandParameters$DocumentVersion",
         151  +
        "com.amazonaws.ssm",
         152  +
        "MaintenanceWindowRunCommandParameters",
         153  +
    ),
         154  +
    ::aws_smithy_schema::ShapeType::String,
         155  +
    "DocumentVersion",
         156  +
    4,
         157  +
);
         158  +
static MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_NOTIFICATION_CONFIG: ::aws_smithy_schema::Schema<'static> =
         159  +
    ::aws_smithy_schema::Schema::new_member(
         160  +
        ::aws_smithy_schema::ShapeId::from_parts(
         161  +
            "com.amazonaws.ssm#MaintenanceWindowRunCommandParameters$NotificationConfig",
         162  +
            "com.amazonaws.ssm",
         163  +
            "MaintenanceWindowRunCommandParameters",
         164  +
        ),
         165  +
        ::aws_smithy_schema::ShapeType::Structure,
         166  +
        "NotificationConfig",
         167  +
        5,
         168  +
    );
         169  +
static MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_OUTPUT_S3_BUCKET_NAME: ::aws_smithy_schema::Schema<'static> =
         170  +
    ::aws_smithy_schema::Schema::new_member(
         171  +
        ::aws_smithy_schema::ShapeId::from_parts(
         172  +
            "com.amazonaws.ssm#MaintenanceWindowRunCommandParameters$OutputS3BucketName",
         173  +
            "com.amazonaws.ssm",
         174  +
            "MaintenanceWindowRunCommandParameters",
         175  +
        ),
         176  +
        ::aws_smithy_schema::ShapeType::String,
         177  +
        "OutputS3BucketName",
         178  +
        6,
         179  +
    );
         180  +
static MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_OUTPUT_S3_KEY_PREFIX: ::aws_smithy_schema::Schema<'static> =
         181  +
    ::aws_smithy_schema::Schema::new_member(
         182  +
        ::aws_smithy_schema::ShapeId::from_parts(
         183  +
            "com.amazonaws.ssm#MaintenanceWindowRunCommandParameters$OutputS3KeyPrefix",
         184  +
            "com.amazonaws.ssm",
         185  +
            "MaintenanceWindowRunCommandParameters",
         186  +
        ),
         187  +
        ::aws_smithy_schema::ShapeType::String,
         188  +
        "OutputS3KeyPrefix",
         189  +
        7,
         190  +
    );
         191  +
static MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_PARAMETERS_VALUE_MEMBER: ::aws_smithy_schema::Schema<'static> =
         192  +
    ::aws_smithy_schema::Schema::new_member(
         193  +
        ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#ParameterValueList$member", "com.amazonaws.ssm", "ParameterValueList"),
         194  +
        ::aws_smithy_schema::ShapeType::String,
         195  +
        "member",
         196  +
        0,
         197  +
    );
         198  +
static MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_PARAMETERS_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         199  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Parameters$key", "com.amazonaws.ssm", "Parameters"),
         200  +
    ::aws_smithy_schema::ShapeType::String,
         201  +
    "key",
         202  +
    0,
         203  +
);
         204  +
static MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_PARAMETERS_VALUE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         205  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Parameters$value", "com.amazonaws.ssm", "Parameters"),
         206  +
    ::aws_smithy_schema::ShapeType::List,
         207  +
    "value",
         208  +
    1,
         209  +
)
         210  +
.with_list_member(&MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_PARAMETERS_VALUE_MEMBER);
         211  +
static MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_PARAMETERS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         212  +
    ::aws_smithy_schema::ShapeId::from_parts(
         213  +
        "com.amazonaws.ssm#MaintenanceWindowRunCommandParameters$Parameters",
         214  +
        "com.amazonaws.ssm",
         215  +
        "MaintenanceWindowRunCommandParameters",
         216  +
    ),
         217  +
    ::aws_smithy_schema::ShapeType::Map,
         218  +
    "Parameters",
         219  +
    8,
         220  +
)
         221  +
.with_map_members(
         222  +
    &MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_PARAMETERS_KEY,
         223  +
    &MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_PARAMETERS_VALUE,
         224  +
);
         225  +
static MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_SERVICE_ROLE_ARN: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         226  +
    ::aws_smithy_schema::ShapeId::from_parts(
         227  +
        "com.amazonaws.ssm#MaintenanceWindowRunCommandParameters$ServiceRoleArn",
         228  +
        "com.amazonaws.ssm",
         229  +
        "MaintenanceWindowRunCommandParameters",
         230  +
    ),
         231  +
    ::aws_smithy_schema::ShapeType::String,
         232  +
    "ServiceRoleArn",
         233  +
    9,
         234  +
);
         235  +
static MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_TIMEOUT_SECONDS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         236  +
    ::aws_smithy_schema::ShapeId::from_parts(
         237  +
        "com.amazonaws.ssm#MaintenanceWindowRunCommandParameters$TimeoutSeconds",
         238  +
        "com.amazonaws.ssm",
         239  +
        "MaintenanceWindowRunCommandParameters",
         240  +
    ),
         241  +
    ::aws_smithy_schema::ShapeType::Integer,
         242  +
    "TimeoutSeconds",
         243  +
    10,
         244  +
);
         245  +
static MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
         246  +
    ::aws_smithy_schema::ShapeId::from_parts(
         247  +
        "com.amazonaws.ssm#MaintenanceWindowRunCommandParameters",
         248  +
        "com.amazonaws.ssm",
         249  +
        "MaintenanceWindowRunCommandParameters",
         250  +
    ),
         251  +
    ::aws_smithy_schema::ShapeType::Structure,
         252  +
    &[
         253  +
        &MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_COMMENT,
         254  +
        &MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_CLOUD_WATCH_OUTPUT_CONFIG,
         255  +
        &MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_DOCUMENT_HASH,
         256  +
        &MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_DOCUMENT_HASH_TYPE,
         257  +
        &MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_DOCUMENT_VERSION,
         258  +
        &MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_NOTIFICATION_CONFIG,
         259  +
        &MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_OUTPUT_S3_BUCKET_NAME,
         260  +
        &MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_OUTPUT_S3_KEY_PREFIX,
         261  +
        &MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_PARAMETERS,
         262  +
        &MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_SERVICE_ROLE_ARN,
         263  +
        &MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_TIMEOUT_SECONDS,
         264  +
    ],
         265  +
);
         266  +
impl MaintenanceWindowRunCommandParameters {
         267  +
    /// The schema for this shape.
         268  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_SCHEMA;
         269  +
}
         270  +
impl ::aws_smithy_schema::serde::SerializableStruct for MaintenanceWindowRunCommandParameters {
         271  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         272  +
    fn serialize_members(
         273  +
        &self,
         274  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         275  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         276  +
        if let Some(ref val) = self.comment {
         277  +
            ser.write_string(&MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_COMMENT, val)?;
         278  +
        }
         279  +
        if let Some(ref val) = self.cloud_watch_output_config {
         280  +
            ser.write_struct(&MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_CLOUD_WATCH_OUTPUT_CONFIG, val)?;
         281  +
        }
         282  +
        if let Some(ref val) = self.document_hash {
         283  +
            ser.write_string(&MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_DOCUMENT_HASH, val)?;
         284  +
        }
         285  +
        if let Some(ref val) = self.document_hash_type {
         286  +
            ser.write_string(&MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_DOCUMENT_HASH_TYPE, val.as_str())?;
         287  +
        }
         288  +
        if let Some(ref val) = self.document_version {
         289  +
            ser.write_string(&MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_DOCUMENT_VERSION, val)?;
         290  +
        }
         291  +
        if let Some(ref val) = self.notification_config {
         292  +
            ser.write_struct(&MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_NOTIFICATION_CONFIG, val)?;
         293  +
        }
         294  +
        if let Some(ref val) = self.output_s3_bucket_name {
         295  +
            ser.write_string(&MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_OUTPUT_S3_BUCKET_NAME, val)?;
         296  +
        }
         297  +
        if let Some(ref val) = self.output_s3_key_prefix {
         298  +
            ser.write_string(&MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_OUTPUT_S3_KEY_PREFIX, val)?;
         299  +
        }
         300  +
        if let Some(ref val) = self.parameters {
         301  +
            ser.write_map(
         302  +
                &MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_PARAMETERS,
         303  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         304  +
                    for (key, value) in val {
         305  +
                        ser.write_string(&::aws_smithy_schema::prelude::STRING, key)?;
         306  +
         307  +
                        ser.write_list(
         308  +
                            &MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_PARAMETERS_VALUE,
         309  +
                            &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         310  +
                                for item in value {
         311  +
                                    ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
         312  +
                                }
         313  +
                                Ok(())
         314  +
                            },
         315  +
                        )?;
         316  +
                    }
         317  +
                    Ok(())
         318  +
                },
         319  +
            )?;
         320  +
        }
         321  +
        if let Some(ref val) = self.service_role_arn {
         322  +
            ser.write_string(&MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_SERVICE_ROLE_ARN, val)?;
         323  +
        }
         324  +
        if let Some(ref val) = self.timeout_seconds {
         325  +
            ser.write_integer(&MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_TIMEOUT_SECONDS, *val)?;
         326  +
        }
         327  +
        Ok(())
         328  +
    }
         329  +
}
         330  +
impl MaintenanceWindowRunCommandParameters {
         331  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         332  +
    pub fn deserialize(
         333  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         334  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         335  +
        #[allow(unused_variables, unused_mut)]
         336  +
        let mut builder = Self::builder();
         337  +
        #[allow(
         338  +
            unused_variables,
         339  +
            unreachable_code,
         340  +
            clippy::single_match,
         341  +
            clippy::match_single_binding,
         342  +
            clippy::diverging_sub_expression
         343  +
        )]
         344  +
        deserializer.read_struct(&MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_SCHEMA, &mut |member, deser| {
         345  +
            match member.member_index() {
         346  +
                Some(0) => {
         347  +
                    if deser.is_null() {
         348  +
                        deser.read_null()?;
         349  +
                    } else {
         350  +
                        builder.comment = Some(deser.read_string(member)?);
         351  +
                    }
         352  +
                }
         353  +
                Some(1) => {
         354  +
                    if deser.is_null() {
         355  +
                        deser.read_null()?;
         356  +
                    } else {
         357  +
                        builder.cloud_watch_output_config = Some(crate::types::CloudWatchOutputConfig::deserialize(deser)?);
         358  +
                    }
         359  +
                }
         360  +
                Some(2) => {
         361  +
                    if deser.is_null() {
         362  +
                        deser.read_null()?;
         363  +
                    } else {
         364  +
                        builder.document_hash = Some(deser.read_string(member)?);
         365  +
                    }
         366  +
                }
         367  +
                Some(3) => {
         368  +
                    if deser.is_null() {
         369  +
                        deser.read_null()?;
         370  +
                    } else {
         371  +
                        builder.document_hash_type = Some(crate::types::DocumentHashType::from(deser.read_string(member)?.as_str()));
         372  +
                    }
         373  +
                }
         374  +
                Some(4) => {
         375  +
                    if deser.is_null() {
         376  +
                        deser.read_null()?;
         377  +
                    } else {
         378  +
                        builder.document_version = Some(deser.read_string(member)?);
         379  +
                    }
         380  +
                }
         381  +
                Some(5) => {
         382  +
                    if deser.is_null() {
         383  +
                        deser.read_null()?;
         384  +
                    } else {
         385  +
                        builder.notification_config = Some(crate::types::NotificationConfig::deserialize(deser)?);
         386  +
                    }
         387  +
                }
         388  +
                Some(6) => {
         389  +
                    if deser.is_null() {
         390  +
                        deser.read_null()?;
         391  +
                    } else {
         392  +
                        builder.output_s3_bucket_name = Some(deser.read_string(member)?);
         393  +
                    }
         394  +
                }
         395  +
                Some(7) => {
         396  +
                    if deser.is_null() {
         397  +
                        deser.read_null()?;
         398  +
                    } else {
         399  +
                        builder.output_s3_key_prefix = Some(deser.read_string(member)?);
         400  +
                    }
         401  +
                }
         402  +
                Some(8) => {
         403  +
                    if deser.is_null() {
         404  +
                        deser.read_null()?;
         405  +
                    } else {
         406  +
                        builder.parameters = Some({
         407  +
                            let mut container = std::collections::HashMap::new();
         408  +
                            deser.read_map(member, &mut |key, deser| {
         409  +
                                container.insert(key, {
         410  +
                                    let mut list = Vec::new();
         411  +
                                    deser.read_list(&MAINTENANCEWINDOWRUNCOMMANDPARAMETERS_MEMBER_PARAMETERS_VALUE, &mut |deser| {
         412  +
                                        list.push(deser.read_string(&::aws_smithy_schema::prelude::STRING)?);
         413  +
                                        Ok(())
         414  +
                                    })?;
         415  +
                                    list
         416  +
                                });
         417  +
                                Ok(())
         418  +
                            })?;
         419  +
                            container
         420  +
                        });
         421  +
                    }
         422  +
                }
         423  +
                Some(9) => {
         424  +
                    if deser.is_null() {
         425  +
                        deser.read_null()?;
         426  +
                    } else {
         427  +
                        builder.service_role_arn = Some(deser.read_string(member)?);
         428  +
                    }
         429  +
                }
         430  +
                Some(10) => {
         431  +
                    if deser.is_null() {
         432  +
                        deser.read_null()?;
         433  +
                    } else {
         434  +
                        builder.timeout_seconds = Some(deser.read_integer(member)?);
         435  +
                    }
         436  +
                }
         437  +
                _ => {}
         438  +
            }
         439  +
            Ok(())
         440  +
        })?;
         441  +
        Ok(builder.build())
         442  +
    }
         443  +
}
         444  +
impl MaintenanceWindowRunCommandParameters {
         445  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         446  +
    pub fn deserialize_with_response(
         447  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         448  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         449  +
        _status: u16,
         450  +
        _body: &[u8],
         451  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         452  +
        Self::deserialize(deserializer)
         453  +
    }
         454  +
}
         455  +
impl MaintenanceWindowRunCommandParameters {
         456  +
    /// Creates a new builder-style object to manufacture [`MaintenanceWindowRunCommandParameters`](crate::types::MaintenanceWindowRunCommandParameters).
         457  +
    pub fn builder() -> crate::types::builders::MaintenanceWindowRunCommandParametersBuilder {
         458  +
        crate::types::builders::MaintenanceWindowRunCommandParametersBuilder::default()
         459  +
    }
         460  +
}
         461  +
         462  +
/// A builder for [`MaintenanceWindowRunCommandParameters`](crate::types::MaintenanceWindowRunCommandParameters).
         463  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
         464  +
#[non_exhaustive]
         465  +
pub struct MaintenanceWindowRunCommandParametersBuilder {
         466  +
    pub(crate) comment: ::std::option::Option<::std::string::String>,
         467  +
    pub(crate) cloud_watch_output_config: ::std::option::Option<crate::types::CloudWatchOutputConfig>,
         468  +
    pub(crate) document_hash: ::std::option::Option<::std::string::String>,
         469  +
    pub(crate) document_hash_type: ::std::option::Option<crate::types::DocumentHashType>,
         470  +
    pub(crate) document_version: ::std::option::Option<::std::string::String>,
         471  +
    pub(crate) notification_config: ::std::option::Option<crate::types::NotificationConfig>,
         472  +
    pub(crate) output_s3_bucket_name: ::std::option::Option<::std::string::String>,
         473  +
    pub(crate) output_s3_key_prefix: ::std::option::Option<::std::string::String>,
         474  +
    pub(crate) parameters: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
         475  +
    pub(crate) service_role_arn: ::std::option::Option<::std::string::String>,
         476  +
    pub(crate) timeout_seconds: ::std::option::Option<i32>,
         477  +
}
         478  +
impl MaintenanceWindowRunCommandParametersBuilder {
         479  +
    /// <p>Information about the commands to run.</p>
         480  +
    pub fn comment(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         481  +
        self.comment = ::std::option::Option::Some(input.into());
         482  +
        self
         483  +
    }
         484  +
    /// <p>Information about the commands to run.</p>
         485  +
    pub fn set_comment(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         486  +
        self.comment = input;
         487  +
        self
         488  +
    }
         489  +
    /// <p>Information about the commands to run.</p>
         490  +
    pub fn get_comment(&self) -> &::std::option::Option<::std::string::String> {
         491  +
        &self.comment
         492  +
    }
         493  +
    /// <p>Configuration options for sending command output to Amazon CloudWatch Logs.</p>
         494  +
    pub fn cloud_watch_output_config(mut self, input: crate::types::CloudWatchOutputConfig) -> Self {
         495  +
        self.cloud_watch_output_config = ::std::option::Option::Some(input);
         496  +
        self
         497  +
    }
         498  +
    /// <p>Configuration options for sending command output to Amazon CloudWatch Logs.</p>
         499  +
    pub fn set_cloud_watch_output_config(mut self, input: ::std::option::Option<crate::types::CloudWatchOutputConfig>) -> Self {
         500  +
        self.cloud_watch_output_config = input;
         501  +
        self
         502  +
    }
         503  +
    /// <p>Configuration options for sending command output to Amazon CloudWatch Logs.</p>
         504  +
    pub fn get_cloud_watch_output_config(&self) -> &::std::option::Option<crate::types::CloudWatchOutputConfig> {
         505  +
        &self.cloud_watch_output_config
         506  +
    }
         507  +
    /// <p>The SHA-256 or SHA-1 hash created by the system when the document was created. SHA-1 hashes have been deprecated.</p>
         508  +
    pub fn document_hash(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         509  +
        self.document_hash = ::std::option::Option::Some(input.into());
         510  +
        self
         511  +
    }
         512  +
    /// <p>The SHA-256 or SHA-1 hash created by the system when the document was created. SHA-1 hashes have been deprecated.</p>
         513  +
    pub fn set_document_hash(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         514  +
        self.document_hash = input;
         515  +
        self
         516  +
    }
         517  +
    /// <p>The SHA-256 or SHA-1 hash created by the system when the document was created. SHA-1 hashes have been deprecated.</p>
         518  +
    pub fn get_document_hash(&self) -> &::std::option::Option<::std::string::String> {
         519  +
        &self.document_hash
         520  +
    }
         521  +
    /// <p>SHA-256 or SHA-1. SHA-1 hashes have been deprecated.</p>
         522  +
    pub fn document_hash_type(mut self, input: crate::types::DocumentHashType) -> Self {
         523  +
        self.document_hash_type = ::std::option::Option::Some(input);
         524  +
        self
         525  +
    }
         526  +
    /// <p>SHA-256 or SHA-1. SHA-1 hashes have been deprecated.</p>
         527  +
    pub fn set_document_hash_type(mut self, input: ::std::option::Option<crate::types::DocumentHashType>) -> Self {
         528  +
        self.document_hash_type = input;
         529  +
        self
         530  +
    }
         531  +
    /// <p>SHA-256 or SHA-1. SHA-1 hashes have been deprecated.</p>
         532  +
    pub fn get_document_hash_type(&self) -> &::std::option::Option<crate::types::DocumentHashType> {
         533  +
        &self.document_hash_type
         534  +
    }
         535  +
    /// <p>The Amazon Web Services Systems Manager document (SSM document) version to use in the request. You can specify <code>$DEFAULT</code>, <code>$LATEST</code>, or a specific version number. If you run commands by using the Amazon Web Services CLI, then you must escape the first two options by using a backslash. If you specify a version number, then you don't need to use the backslash. For example:</p>
         536  +
    /// <p><code>--document-version "\$DEFAULT"</code></p>
         537  +
    /// <p><code>--document-version "\$LATEST"</code></p>
         538  +
    /// <p><code>--document-version "3"</code></p>
         539  +
    pub fn document_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         540  +
        self.document_version = ::std::option::Option::Some(input.into());
         541  +
        self
         542  +
    }
         543  +
    /// <p>The Amazon Web Services Systems Manager document (SSM document) version to use in the request. You can specify <code>$DEFAULT</code>, <code>$LATEST</code>, or a specific version number. If you run commands by using the Amazon Web Services CLI, then you must escape the first two options by using a backslash. If you specify a version number, then you don't need to use the backslash. For example:</p>
         544  +
    /// <p><code>--document-version "\$DEFAULT"</code></p>
         545  +
    /// <p><code>--document-version "\$LATEST"</code></p>
         546  +
    /// <p><code>--document-version "3"</code></p>
         547  +
    pub fn set_document_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         548  +
        self.document_version = input;
         549  +
        self
         550  +
    }
         551  +
    /// <p>The Amazon Web Services Systems Manager document (SSM document) version to use in the request. You can specify <code>$DEFAULT</code>, <code>$LATEST</code>, or a specific version number. If you run commands by using the Amazon Web Services CLI, then you must escape the first two options by using a backslash. If you specify a version number, then you don't need to use the backslash. For example:</p>
         552  +
    /// <p><code>--document-version "\$DEFAULT"</code></p>
         553  +
    /// <p><code>--document-version "\$LATEST"</code></p>
         554  +
    /// <p><code>--document-version "3"</code></p>
         555  +
    pub fn get_document_version(&self) -> &::std::option::Option<::std::string::String> {
         556  +
        &self.document_version
         557  +
    }
         558  +
    /// <p>Configurations for sending notifications about command status changes on a per-managed node basis.</p>
         559  +
    pub fn notification_config(mut self, input: crate::types::NotificationConfig) -> Self {
         560  +
        self.notification_config = ::std::option::Option::Some(input);
         561  +
        self
         562  +
    }
         563  +
    /// <p>Configurations for sending notifications about command status changes on a per-managed node basis.</p>
         564  +
    pub fn set_notification_config(mut self, input: ::std::option::Option<crate::types::NotificationConfig>) -> Self {
         565  +
        self.notification_config = input;
         566  +
        self
         567  +
    }
         568  +
    /// <p>Configurations for sending notifications about command status changes on a per-managed node basis.</p>
         569  +
    pub fn get_notification_config(&self) -> &::std::option::Option<crate::types::NotificationConfig> {
         570  +
        &self.notification_config
         571  +
    }
         572  +
    /// <p>The name of the Amazon Simple Storage Service (Amazon S3) bucket.</p>
         573  +
    pub fn output_s3_bucket_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         574  +
        self.output_s3_bucket_name = ::std::option::Option::Some(input.into());
         575  +
        self
         576  +
    }
         577  +
    /// <p>The name of the Amazon Simple Storage Service (Amazon S3) bucket.</p>
         578  +
    pub fn set_output_s3_bucket_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         579  +
        self.output_s3_bucket_name = input;
         580  +
        self
         581  +
    }
         582  +
    /// <p>The name of the Amazon Simple Storage Service (Amazon S3) bucket.</p>
         583  +
    pub fn get_output_s3_bucket_name(&self) -> &::std::option::Option<::std::string::String> {
         584  +
        &self.output_s3_bucket_name
         585  +
    }
         586  +
    /// <p>The S3 bucket subfolder.</p>
         587  +
    pub fn output_s3_key_prefix(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         588  +
        self.output_s3_key_prefix = ::std::option::Option::Some(input.into());
         589  +
        self
         590  +
    }
         591  +
    /// <p>The S3 bucket subfolder.</p>
         592  +
    pub fn set_output_s3_key_prefix(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         593  +
        self.output_s3_key_prefix = input;
         594  +
        self
         595  +
    }
         596  +
    /// <p>The S3 bucket subfolder.</p>
         597  +
    pub fn get_output_s3_key_prefix(&self) -> &::std::option::Option<::std::string::String> {
         598  +
        &self.output_s3_key_prefix
         599  +
    }
         600  +
    /// Adds a key-value pair to `parameters`.
         601  +
    ///
         602  +
    /// To override the contents of this collection use [`set_parameters`](Self::set_parameters).
         603  +
    ///
         604  +
    /// <p>The parameters for the <code>RUN_COMMAND</code> task execution.</p>
         605  +
    pub fn parameters(mut self, k: impl ::std::convert::Into<::std::string::String>, v: ::std::vec::Vec<::std::string::String>) -> Self {
         606  +
        let mut hash_map = self.parameters.unwrap_or_default();
         607  +
        hash_map.insert(k.into(), v);
         608  +
        self.parameters = ::std::option::Option::Some(hash_map);
         609  +
        self
         610  +
    }
         611  +
    /// <p>The parameters for the <code>RUN_COMMAND</code> task execution.</p>
         612  +
    pub fn set_parameters(
         613  +
        mut self,
         614  +
        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
         615  +
    ) -> Self {
         616  +
        self.parameters = input;
         617  +
        self
         618  +
    }
         619  +
    /// <p>The parameters for the <code>RUN_COMMAND</code> task execution.</p>
         620  +
    pub fn get_parameters(
         621  +
        &self,
         622  +
    ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
         623  +
        &self.parameters
         624  +
    }
         625  +
    /// <p>The Amazon Resource Name (ARN) of the IAM service role for Amazon Web Services Systems Manager to assume when running a maintenance window task. If you do not specify a service role ARN, Systems Manager uses a service-linked role in your account. If no appropriate service-linked role for Systems Manager exists in your account, it is created when you run <code>RegisterTaskWithMaintenanceWindow</code>.</p>
         626  +
    /// <p>However, for an improved security posture, we strongly recommend creating a custom policy and custom service role for running your maintenance window tasks. The policy can be crafted to provide only the permissions needed for your particular maintenance window tasks. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-maintenance-permissions.html">Setting up Maintenance Windows</a> in the in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         627  +
    pub fn service_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         628  +
        self.service_role_arn = ::std::option::Option::Some(input.into());
         629  +
        self
         630  +
    }
         631  +
    /// <p>The Amazon Resource Name (ARN) of the IAM service role for Amazon Web Services Systems Manager to assume when running a maintenance window task. If you do not specify a service role ARN, Systems Manager uses a service-linked role in your account. If no appropriate service-linked role for Systems Manager exists in your account, it is created when you run <code>RegisterTaskWithMaintenanceWindow</code>.</p>
         632  +
    /// <p>However, for an improved security posture, we strongly recommend creating a custom policy and custom service role for running your maintenance window tasks. The policy can be crafted to provide only the permissions needed for your particular maintenance window tasks. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-maintenance-permissions.html">Setting up Maintenance Windows</a> in the in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         633  +
    pub fn set_service_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         634  +
        self.service_role_arn = input;
         635  +
        self
         636  +
    }
         637  +
    /// <p>The Amazon Resource Name (ARN) of the IAM service role for Amazon Web Services Systems Manager to assume when running a maintenance window task. If you do not specify a service role ARN, Systems Manager uses a service-linked role in your account. If no appropriate service-linked role for Systems Manager exists in your account, it is created when you run <code>RegisterTaskWithMaintenanceWindow</code>.</p>
         638  +
    /// <p>However, for an improved security posture, we strongly recommend creating a custom policy and custom service role for running your maintenance window tasks. The policy can be crafted to provide only the permissions needed for your particular maintenance window tasks. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-maintenance-permissions.html">Setting up Maintenance Windows</a> in the in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         639  +
    pub fn get_service_role_arn(&self) -> &::std::option::Option<::std::string::String> {
         640  +
        &self.service_role_arn
         641  +
    }
         642  +
    /// <p>If this time is reached and the command hasn't already started running, it doesn't run.</p>
         643  +
    pub fn timeout_seconds(mut self, input: i32) -> Self {
         644  +
        self.timeout_seconds = ::std::option::Option::Some(input);
         645  +
        self
         646  +
    }
         647  +
    /// <p>If this time is reached and the command hasn't already started running, it doesn't run.</p>
         648  +
    pub fn set_timeout_seconds(mut self, input: ::std::option::Option<i32>) -> Self {
         649  +
        self.timeout_seconds = input;
         650  +
        self
         651  +
    }
         652  +
    /// <p>If this time is reached and the command hasn't already started running, it doesn't run.</p>
         653  +
    pub fn get_timeout_seconds(&self) -> &::std::option::Option<i32> {
         654  +
        &self.timeout_seconds
         655  +
    }
         656  +
    /// Consumes the builder and constructs a [`MaintenanceWindowRunCommandParameters`](crate::types::MaintenanceWindowRunCommandParameters).
         657  +
    pub fn build(self) -> crate::types::MaintenanceWindowRunCommandParameters {
         658  +
        crate::types::MaintenanceWindowRunCommandParameters {
         659  +
            comment: self.comment,
         660  +
            cloud_watch_output_config: self.cloud_watch_output_config,
         661  +
            document_hash: self.document_hash,
         662  +
            document_hash_type: self.document_hash_type,
         663  +
            document_version: self.document_version,
         664  +
            notification_config: self.notification_config,
         665  +
            output_s3_bucket_name: self.output_s3_bucket_name,
         666  +
            output_s3_key_prefix: self.output_s3_key_prefix,
         667  +
            parameters: self.parameters,
         668  +
            service_role_arn: self.service_role_arn,
         669  +
            timeout_seconds: self.timeout_seconds,
         670  +
        }
         671  +
    }
         672  +
}
         673  +
impl ::std::fmt::Debug for MaintenanceWindowRunCommandParametersBuilder {
         674  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         675  +
        let mut formatter = f.debug_struct("MaintenanceWindowRunCommandParametersBuilder");
         676  +
        formatter.field("comment", &self.comment);
         677  +
        formatter.field("cloud_watch_output_config", &self.cloud_watch_output_config);
         678  +
        formatter.field("document_hash", &self.document_hash);
         679  +
        formatter.field("document_hash_type", &self.document_hash_type);
         680  +
        formatter.field("document_version", &self.document_version);
         681  +
        formatter.field("notification_config", &self.notification_config);
         682  +
        formatter.field("output_s3_bucket_name", &self.output_s3_bucket_name);
         683  +
        formatter.field("output_s3_key_prefix", &self.output_s3_key_prefix);
         684  +
        formatter.field("parameters", &"*** Sensitive Data Redacted ***");
         685  +
        formatter.field("service_role_arn", &self.service_role_arn);
         686  +
        formatter.field("timeout_seconds", &self.timeout_seconds);
         687  +
        formatter.finish()
         688  +
    }
         689  +
}