AWS SDK

AWS SDK

rev. 3388bf5e18f4269f2b46f39cdc814c5c39d413d0 (ignoring whitespace)

Files changed:

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

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

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

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

@@ -0,1 +0,169 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>Configuration options for sending command output to Amazon CloudWatch Logs.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           6  +
pub struct CloudWatchOutputConfig {
           7  +
    /// <p>The name of the CloudWatch Logs log group where you want to send command output. If you don't specify a group name, Amazon Web Services Systems Manager automatically creates a log group for you. The log group uses the following naming format:</p>
           8  +
    /// <p><code>aws/ssm/<i>SystemsManagerDocumentName</i> </code></p>
           9  +
    pub cloud_watch_log_group_name: ::std::option::Option<::std::string::String>,
          10  +
    /// <p>Enables Systems Manager to send command output to CloudWatch Logs.</p>
          11  +
    pub cloud_watch_output_enabled: bool,
          12  +
}
          13  +
impl CloudWatchOutputConfig {
          14  +
    /// <p>The name of the CloudWatch Logs log group where you want to send command output. If you don't specify a group name, Amazon Web Services Systems Manager automatically creates a log group for you. The log group uses the following naming format:</p>
          15  +
    /// <p><code>aws/ssm/<i>SystemsManagerDocumentName</i> </code></p>
          16  +
    pub fn cloud_watch_log_group_name(&self) -> ::std::option::Option<&str> {
          17  +
        self.cloud_watch_log_group_name.as_deref()
          18  +
    }
          19  +
    /// <p>Enables Systems Manager to send command output to CloudWatch Logs.</p>
          20  +
    pub fn cloud_watch_output_enabled(&self) -> bool {
          21  +
        self.cloud_watch_output_enabled
          22  +
    }
          23  +
}
          24  +
static CLOUDWATCHOUTPUTCONFIG_MEMBER_CLOUD_WATCH_LOG_GROUP_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          25  +
    ::aws_smithy_schema::ShapeId::from_parts(
          26  +
        "com.amazonaws.ssm#CloudWatchOutputConfig$CloudWatchLogGroupName",
          27  +
        "com.amazonaws.ssm",
          28  +
        "CloudWatchOutputConfig",
          29  +
    ),
          30  +
    ::aws_smithy_schema::ShapeType::String,
          31  +
    "CloudWatchLogGroupName",
          32  +
    0,
          33  +
);
          34  +
static CLOUDWATCHOUTPUTCONFIG_MEMBER_CLOUD_WATCH_OUTPUT_ENABLED: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          35  +
    ::aws_smithy_schema::ShapeId::from_parts(
          36  +
        "com.amazonaws.ssm#CloudWatchOutputConfig$CloudWatchOutputEnabled",
          37  +
        "com.amazonaws.ssm",
          38  +
        "CloudWatchOutputConfig",
          39  +
    ),
          40  +
    ::aws_smithy_schema::ShapeType::Boolean,
          41  +
    "CloudWatchOutputEnabled",
          42  +
    1,
          43  +
);
          44  +
static CLOUDWATCHOUTPUTCONFIG_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
          45  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#CloudWatchOutputConfig", "com.amazonaws.ssm", "CloudWatchOutputConfig"),
          46  +
    ::aws_smithy_schema::ShapeType::Structure,
          47  +
    &[
          48  +
        &CLOUDWATCHOUTPUTCONFIG_MEMBER_CLOUD_WATCH_LOG_GROUP_NAME,
          49  +
        &CLOUDWATCHOUTPUTCONFIG_MEMBER_CLOUD_WATCH_OUTPUT_ENABLED,
          50  +
    ],
          51  +
);
          52  +
impl CloudWatchOutputConfig {
          53  +
    /// The schema for this shape.
          54  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &CLOUDWATCHOUTPUTCONFIG_SCHEMA;
          55  +
}
          56  +
impl ::aws_smithy_schema::serde::SerializableStruct for CloudWatchOutputConfig {
          57  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
          58  +
    fn serialize_members(
          59  +
        &self,
          60  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
          61  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
          62  +
        if let Some(ref val) = self.cloud_watch_log_group_name {
          63  +
            ser.write_string(&CLOUDWATCHOUTPUTCONFIG_MEMBER_CLOUD_WATCH_LOG_GROUP_NAME, val)?;
          64  +
        }
          65  +
        {
          66  +
            let val = &self.cloud_watch_output_enabled;
          67  +
            ser.write_boolean(&CLOUDWATCHOUTPUTCONFIG_MEMBER_CLOUD_WATCH_OUTPUT_ENABLED, *val)?;
          68  +
        }
          69  +
        Ok(())
          70  +
    }
          71  +
}
          72  +
impl CloudWatchOutputConfig {
          73  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
          74  +
    pub fn deserialize(
          75  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          76  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          77  +
        #[allow(unused_variables, unused_mut)]
          78  +
        let mut builder = Self::builder();
          79  +
        #[allow(
          80  +
            unused_variables,
          81  +
            unreachable_code,
          82  +
            clippy::single_match,
          83  +
            clippy::match_single_binding,
          84  +
            clippy::diverging_sub_expression
          85  +
        )]
          86  +
        deserializer.read_struct(&CLOUDWATCHOUTPUTCONFIG_SCHEMA, &mut |member, deser| {
          87  +
            match member.member_index() {
          88  +
                Some(0) => {
          89  +
                    if deser.is_null() {
          90  +
                        deser.read_null()?;
          91  +
                    } else {
          92  +
                        builder.cloud_watch_log_group_name = Some(deser.read_string(member)?);
          93  +
                    }
          94  +
                }
          95  +
                Some(1) => {
          96  +
                    builder.cloud_watch_output_enabled = Some(deser.read_boolean(member)?);
          97  +
                }
          98  +
                _ => {}
          99  +
            }
         100  +
            Ok(())
         101  +
        })?;
         102  +
        Ok(builder.build())
         103  +
    }
         104  +
}
         105  +
impl CloudWatchOutputConfig {
         106  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         107  +
    pub fn deserialize_with_response(
         108  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         109  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         110  +
        _status: u16,
         111  +
        _body: &[u8],
         112  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         113  +
        Self::deserialize(deserializer)
         114  +
    }
         115  +
}
         116  +
impl CloudWatchOutputConfig {
         117  +
    /// Creates a new builder-style object to manufacture [`CloudWatchOutputConfig`](crate::types::CloudWatchOutputConfig).
         118  +
    pub fn builder() -> crate::types::builders::CloudWatchOutputConfigBuilder {
         119  +
        crate::types::builders::CloudWatchOutputConfigBuilder::default()
         120  +
    }
         121  +
}
         122  +
         123  +
/// A builder for [`CloudWatchOutputConfig`](crate::types::CloudWatchOutputConfig).
         124  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         125  +
#[non_exhaustive]
         126  +
pub struct CloudWatchOutputConfigBuilder {
         127  +
    pub(crate) cloud_watch_log_group_name: ::std::option::Option<::std::string::String>,
         128  +
    pub(crate) cloud_watch_output_enabled: ::std::option::Option<bool>,
         129  +
}
         130  +
impl CloudWatchOutputConfigBuilder {
         131  +
    /// <p>The name of the CloudWatch Logs log group where you want to send command output. If you don't specify a group name, Amazon Web Services Systems Manager automatically creates a log group for you. The log group uses the following naming format:</p>
         132  +
    /// <p><code>aws/ssm/<i>SystemsManagerDocumentName</i> </code></p>
         133  +
    pub fn cloud_watch_log_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         134  +
        self.cloud_watch_log_group_name = ::std::option::Option::Some(input.into());
         135  +
        self
         136  +
    }
         137  +
    /// <p>The name of the CloudWatch Logs log group where you want to send command output. If you don't specify a group name, Amazon Web Services Systems Manager automatically creates a log group for you. The log group uses the following naming format:</p>
         138  +
    /// <p><code>aws/ssm/<i>SystemsManagerDocumentName</i> </code></p>
         139  +
    pub fn set_cloud_watch_log_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         140  +
        self.cloud_watch_log_group_name = input;
         141  +
        self
         142  +
    }
         143  +
    /// <p>The name of the CloudWatch Logs log group where you want to send command output. If you don't specify a group name, Amazon Web Services Systems Manager automatically creates a log group for you. The log group uses the following naming format:</p>
         144  +
    /// <p><code>aws/ssm/<i>SystemsManagerDocumentName</i> </code></p>
         145  +
    pub fn get_cloud_watch_log_group_name(&self) -> &::std::option::Option<::std::string::String> {
         146  +
        &self.cloud_watch_log_group_name
         147  +
    }
         148  +
    /// <p>Enables Systems Manager to send command output to CloudWatch Logs.</p>
         149  +
    pub fn cloud_watch_output_enabled(mut self, input: bool) -> Self {
         150  +
        self.cloud_watch_output_enabled = ::std::option::Option::Some(input);
         151  +
        self
         152  +
    }
         153  +
    /// <p>Enables Systems Manager to send command output to CloudWatch Logs.</p>
         154  +
    pub fn set_cloud_watch_output_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
         155  +
        self.cloud_watch_output_enabled = input;
         156  +
        self
         157  +
    }
         158  +
    /// <p>Enables Systems Manager to send command output to CloudWatch Logs.</p>
         159  +
    pub fn get_cloud_watch_output_enabled(&self) -> &::std::option::Option<bool> {
         160  +
        &self.cloud_watch_output_enabled
         161  +
    }
         162  +
    /// Consumes the builder and constructs a [`CloudWatchOutputConfig`](crate::types::CloudWatchOutputConfig).
         163  +
    pub fn build(self) -> crate::types::CloudWatchOutputConfig {
         164  +
        crate::types::CloudWatchOutputConfig {
         165  +
            cloud_watch_log_group_name: self.cloud_watch_log_group_name,
         166  +
            cloud_watch_output_enabled: self.cloud_watch_output_enabled.unwrap_or_default(),
         167  +
        }
         168  +
    }
         169  +
}

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

@@ -0,1 +0,1404 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>Describes a command request.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
           6  +
pub struct Command {
           7  +
    /// <p>A unique identifier for this command.</p>
           8  +
    pub command_id: ::std::option::Option<::std::string::String>,
           9  +
    /// <p>The name of the document requested for execution.</p>
          10  +
    pub document_name: ::std::option::Option<::std::string::String>,
          11  +
    /// <p>The Systems Manager document (SSM document) version.</p>
          12  +
    pub document_version: ::std::option::Option<::std::string::String>,
          13  +
    /// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
          14  +
    pub comment: ::std::option::Option<::std::string::String>,
          15  +
    /// <p>If a command expires, it changes status to <code>DeliveryTimedOut</code> for all invocations that have the status <code>InProgress</code>, <code>Pending</code>, or <code>Delayed</code>. <code>ExpiresAfter</code> is calculated based on the total timeout for the overall command. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html?icmpid=docs_ec2_console#monitor-about-status-timeouts">Understanding command timeout values</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
          16  +
    pub expires_after: ::std::option::Option<::aws_smithy_types::DateTime>,
          17  +
    /// <p>The parameter values to be inserted in the document when running the command.</p>
          18  +
    pub parameters: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
          19  +
    /// <p>The managed node IDs against which this command was requested.</p>
          20  +
    pub instance_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
          21  +
    /// <p>An array of search criteria that targets managed nodes using a Key,Value combination that you specify. Targets is required if you don't provide one or more managed node IDs in the call.</p>
          22  +
    pub targets: ::std::option::Option<::std::vec::Vec<crate::types::Target>>,
          23  +
    /// <p>The date and time the command was requested.</p>
          24  +
    pub requested_date_time: ::std::option::Option<::aws_smithy_types::DateTime>,
          25  +
    /// <p>The status of the command.</p>
          26  +
    pub status: ::std::option::Option<crate::types::CommandStatus>,
          27  +
    /// <p>A detailed status of the command execution. <code>StatusDetails</code> includes more information than <code>Status</code> because it includes states resulting from error and concurrency control parameters. <code>StatusDetails</code> can show different results than Status. For more information about these statuses, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html">Understanding command statuses</a> in the <i>Amazon Web Services Systems Manager User Guide</i>. StatusDetails can be one of the following values:</p>
          28  +
    /// <ul>
          29  +
    /// <li>
          30  +
    /// <p>Pending: The command hasn't been sent to any managed nodes.</p></li>
          31  +
    /// <li>
          32  +
    /// <p>In Progress: The command has been sent to at least one managed node but hasn't reached a final state on all managed nodes.</p></li>
          33  +
    /// <li>
          34  +
    /// <p>Success: The command successfully ran on all invocations. This is a terminal state.</p></li>
          35  +
    /// <li>
          36  +
    /// <p>Delivery Timed Out: The value of MaxErrors or more command invocations shows a status of Delivery Timed Out. This is a terminal state.</p></li>
          37  +
    /// <li>
          38  +
    /// <p>Execution Timed Out: The value of MaxErrors or more command invocations shows a status of Execution Timed Out. This is a terminal state.</p></li>
          39  +
    /// <li>
          40  +
    /// <p>Failed: The value of MaxErrors or more command invocations shows a status of Failed. This is a terminal state.</p></li>
          41  +
    /// <li>
          42  +
    /// <p>Incomplete: The command was attempted on all managed nodes and one or more invocations doesn't have a value of Success but not enough invocations failed for the status to be Failed. This is a terminal state.</p></li>
          43  +
    /// <li>
          44  +
    /// <p>Cancelled: The command was terminated before it was completed. This is a terminal state.</p></li>
          45  +
    /// <li>
          46  +
    /// <p>Rate Exceeded: The number of managed nodes targeted by the command exceeded the account limit for pending invocations. The system has canceled the command before running it on any managed node. This is a terminal state.</p></li>
          47  +
    /// <li>
          48  +
    /// <p>Delayed: The system attempted to send the command to the managed node but wasn't successful. The system retries again.</p></li>
          49  +
    /// </ul>
          50  +
    pub status_details: ::std::option::Option<::std::string::String>,
          51  +
    /// <p>(Deprecated) You can no longer specify this parameter. The system ignores it. Instead, Systems Manager automatically determines the Amazon Web Services Region of the S3 bucket.</p>
          52  +
    pub output_s3_region: ::std::option::Option<::std::string::String>,
          53  +
    /// <p>The S3 bucket where the responses to the command executions should be stored. This was requested when issuing the command.</p>
          54  +
    pub output_s3_bucket_name: ::std::option::Option<::std::string::String>,
          55  +
    /// <p>The S3 directory path inside the bucket where the responses to the command executions should be stored. This was requested when issuing the command.</p>
          56  +
    pub output_s3_key_prefix: ::std::option::Option<::std::string::String>,
          57  +
    /// <p>The maximum number of managed nodes that are allowed to run the command at the same time. You can specify a number of managed nodes, such as 10, or a percentage of nodes, such as 10%. The default value is 50. For more information about how to use <code>MaxConcurrency</code>, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html">Amazon Web Services Systems Manager Run Command</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
          58  +
    pub max_concurrency: ::std::option::Option<::std::string::String>,
          59  +
    /// <p>The maximum number of errors allowed before the system stops sending the command to additional targets. You can specify a number of errors, such as 10, or a percentage or errors, such as 10%. The default value is <code>0</code>. For more information about how to use <code>MaxErrors</code>, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html">Amazon Web Services Systems Manager Run Command</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
          60  +
    pub max_errors: ::std::option::Option<::std::string::String>,
          61  +
    /// <p>The number of targets for the command.</p>
          62  +
    pub target_count: i32,
          63  +
    /// <p>The number of targets for which the command invocation reached a terminal state. Terminal states include the following: Success, Failed, Execution Timed Out, Delivery Timed Out, Cancelled, Terminated, or Undeliverable.</p>
          64  +
    pub completed_count: i32,
          65  +
    /// <p>The number of targets for which the status is Failed or Execution Timed Out.</p>
          66  +
    pub error_count: i32,
          67  +
    /// <p>The number of targets for which the status is Delivery Timed Out.</p>
          68  +
    pub delivery_timed_out_count: i32,
          69  +
    /// <p>The Identity and Access Management (IAM) service role that Run Command, a tool in Amazon Web Services Systems Manager, uses to act on your behalf when sending notifications about command status changes.</p>
          70  +
    pub service_role: ::std::option::Option<::std::string::String>,
          71  +
    /// <p>Configurations for sending notifications about command status changes.</p>
          72  +
    pub notification_config: ::std::option::Option<crate::types::NotificationConfig>,
          73  +
    /// <p>Amazon CloudWatch Logs information where you want Amazon Web Services Systems Manager to send the command output.</p>
          74  +
    pub cloud_watch_output_config: ::std::option::Option<crate::types::CloudWatchOutputConfig>,
          75  +
    /// <p>The <code>TimeoutSeconds</code> value specified for a command.</p>
          76  +
    pub timeout_seconds: ::std::option::Option<i32>,
          77  +
    /// <p>The details for the CloudWatch alarm applied to your command.</p>
          78  +
    pub alarm_configuration: ::std::option::Option<crate::types::AlarmConfiguration>,
          79  +
    /// <p>The CloudWatch alarm that was invoked by the command.</p>
          80  +
    pub triggered_alarms: ::std::option::Option<::std::vec::Vec<crate::types::AlarmStateInformation>>,
          81  +
}
          82  +
impl Command {
          83  +
    /// <p>A unique identifier for this command.</p>
          84  +
    pub fn command_id(&self) -> ::std::option::Option<&str> {
          85  +
        self.command_id.as_deref()
          86  +
    }
          87  +
    /// <p>The name of the document requested for execution.</p>
          88  +
    pub fn document_name(&self) -> ::std::option::Option<&str> {
          89  +
        self.document_name.as_deref()
          90  +
    }
          91  +
    /// <p>The Systems Manager document (SSM document) version.</p>
          92  +
    pub fn document_version(&self) -> ::std::option::Option<&str> {
          93  +
        self.document_version.as_deref()
          94  +
    }
          95  +
    /// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
          96  +
    pub fn comment(&self) -> ::std::option::Option<&str> {
          97  +
        self.comment.as_deref()
          98  +
    }
          99  +
    /// <p>If a command expires, it changes status to <code>DeliveryTimedOut</code> for all invocations that have the status <code>InProgress</code>, <code>Pending</code>, or <code>Delayed</code>. <code>ExpiresAfter</code> is calculated based on the total timeout for the overall command. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html?icmpid=docs_ec2_console#monitor-about-status-timeouts">Understanding command timeout values</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         100  +
    pub fn expires_after(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         101  +
        self.expires_after.as_ref()
         102  +
    }
         103  +
    /// <p>The parameter values to be inserted in the document when running the command.</p>
         104  +
    pub fn parameters(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
         105  +
        self.parameters.as_ref()
         106  +
    }
         107  +
    /// <p>The managed node IDs against which this command was requested.</p>
         108  +
    ///
         109  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.instance_ids.is_none()`.
         110  +
    pub fn instance_ids(&self) -> &[::std::string::String] {
         111  +
        self.instance_ids.as_deref().unwrap_or_default()
         112  +
    }
         113  +
    /// <p>An array of search criteria that targets managed nodes using a Key,Value combination that you specify. Targets is required if you don't provide one or more managed node IDs in the call.</p>
         114  +
    ///
         115  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.targets.is_none()`.
         116  +
    pub fn targets(&self) -> &[crate::types::Target] {
         117  +
        self.targets.as_deref().unwrap_or_default()
         118  +
    }
         119  +
    /// <p>The date and time the command was requested.</p>
         120  +
    pub fn requested_date_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         121  +
        self.requested_date_time.as_ref()
         122  +
    }
         123  +
    /// <p>The status of the command.</p>
         124  +
    pub fn status(&self) -> ::std::option::Option<&crate::types::CommandStatus> {
         125  +
        self.status.as_ref()
         126  +
    }
         127  +
    /// <p>A detailed status of the command execution. <code>StatusDetails</code> includes more information than <code>Status</code> because it includes states resulting from error and concurrency control parameters. <code>StatusDetails</code> can show different results than Status. For more information about these statuses, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html">Understanding command statuses</a> in the <i>Amazon Web Services Systems Manager User Guide</i>. StatusDetails can be one of the following values:</p>
         128  +
    /// <ul>
         129  +
    /// <li>
         130  +
    /// <p>Pending: The command hasn't been sent to any managed nodes.</p></li>
         131  +
    /// <li>
         132  +
    /// <p>In Progress: The command has been sent to at least one managed node but hasn't reached a final state on all managed nodes.</p></li>
         133  +
    /// <li>
         134  +
    /// <p>Success: The command successfully ran on all invocations. This is a terminal state.</p></li>
         135  +
    /// <li>
         136  +
    /// <p>Delivery Timed Out: The value of MaxErrors or more command invocations shows a status of Delivery Timed Out. This is a terminal state.</p></li>
         137  +
    /// <li>
         138  +
    /// <p>Execution Timed Out: The value of MaxErrors or more command invocations shows a status of Execution Timed Out. This is a terminal state.</p></li>
         139  +
    /// <li>
         140  +
    /// <p>Failed: The value of MaxErrors or more command invocations shows a status of Failed. This is a terminal state.</p></li>
         141  +
    /// <li>
         142  +
    /// <p>Incomplete: The command was attempted on all managed nodes and one or more invocations doesn't have a value of Success but not enough invocations failed for the status to be Failed. This is a terminal state.</p></li>
         143  +
    /// <li>
         144  +
    /// <p>Cancelled: The command was terminated before it was completed. This is a terminal state.</p></li>
         145  +
    /// <li>
         146  +
    /// <p>Rate Exceeded: The number of managed nodes targeted by the command exceeded the account limit for pending invocations. The system has canceled the command before running it on any managed node. This is a terminal state.</p></li>
         147  +
    /// <li>
         148  +
    /// <p>Delayed: The system attempted to send the command to the managed node but wasn't successful. The system retries again.</p></li>
         149  +
    /// </ul>
         150  +
    pub fn status_details(&self) -> ::std::option::Option<&str> {
         151  +
        self.status_details.as_deref()
         152  +
    }
         153  +
    /// <p>(Deprecated) You can no longer specify this parameter. The system ignores it. Instead, Systems Manager automatically determines the Amazon Web Services Region of the S3 bucket.</p>
         154  +
    pub fn output_s3_region(&self) -> ::std::option::Option<&str> {
         155  +
        self.output_s3_region.as_deref()
         156  +
    }
         157  +
    /// <p>The S3 bucket where the responses to the command executions should be stored. This was requested when issuing the command.</p>
         158  +
    pub fn output_s3_bucket_name(&self) -> ::std::option::Option<&str> {
         159  +
        self.output_s3_bucket_name.as_deref()
         160  +
    }
         161  +
    /// <p>The S3 directory path inside the bucket where the responses to the command executions should be stored. This was requested when issuing the command.</p>
         162  +
    pub fn output_s3_key_prefix(&self) -> ::std::option::Option<&str> {
         163  +
        self.output_s3_key_prefix.as_deref()
         164  +
    }
         165  +
    /// <p>The maximum number of managed nodes that are allowed to run the command at the same time. You can specify a number of managed nodes, such as 10, or a percentage of nodes, such as 10%. The default value is 50. For more information about how to use <code>MaxConcurrency</code>, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html">Amazon Web Services Systems Manager Run Command</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         166  +
    pub fn max_concurrency(&self) -> ::std::option::Option<&str> {
         167  +
        self.max_concurrency.as_deref()
         168  +
    }
         169  +
    /// <p>The maximum number of errors allowed before the system stops sending the command to additional targets. You can specify a number of errors, such as 10, or a percentage or errors, such as 10%. The default value is <code>0</code>. For more information about how to use <code>MaxErrors</code>, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html">Amazon Web Services Systems Manager Run Command</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         170  +
    pub fn max_errors(&self) -> ::std::option::Option<&str> {
         171  +
        self.max_errors.as_deref()
         172  +
    }
         173  +
    /// <p>The number of targets for the command.</p>
         174  +
    pub fn target_count(&self) -> i32 {
         175  +
        self.target_count
         176  +
    }
         177  +
    /// <p>The number of targets for which the command invocation reached a terminal state. Terminal states include the following: Success, Failed, Execution Timed Out, Delivery Timed Out, Cancelled, Terminated, or Undeliverable.</p>
         178  +
    pub fn completed_count(&self) -> i32 {
         179  +
        self.completed_count
         180  +
    }
         181  +
    /// <p>The number of targets for which the status is Failed or Execution Timed Out.</p>
         182  +
    pub fn error_count(&self) -> i32 {
         183  +
        self.error_count
         184  +
    }
         185  +
    /// <p>The number of targets for which the status is Delivery Timed Out.</p>
         186  +
    pub fn delivery_timed_out_count(&self) -> i32 {
         187  +
        self.delivery_timed_out_count
         188  +
    }
         189  +
    /// <p>The Identity and Access Management (IAM) service role that Run Command, a tool in Amazon Web Services Systems Manager, uses to act on your behalf when sending notifications about command status changes.</p>
         190  +
    pub fn service_role(&self) -> ::std::option::Option<&str> {
         191  +
        self.service_role.as_deref()
         192  +
    }
         193  +
    /// <p>Configurations for sending notifications about command status changes.</p>
         194  +
    pub fn notification_config(&self) -> ::std::option::Option<&crate::types::NotificationConfig> {
         195  +
        self.notification_config.as_ref()
         196  +
    }
         197  +
    /// <p>Amazon CloudWatch Logs information where you want Amazon Web Services Systems Manager to send the command output.</p>
         198  +
    pub fn cloud_watch_output_config(&self) -> ::std::option::Option<&crate::types::CloudWatchOutputConfig> {
         199  +
        self.cloud_watch_output_config.as_ref()
         200  +
    }
         201  +
    /// <p>The <code>TimeoutSeconds</code> value specified for a command.</p>
         202  +
    pub fn timeout_seconds(&self) -> ::std::option::Option<i32> {
         203  +
        self.timeout_seconds
         204  +
    }
         205  +
    /// <p>The details for the CloudWatch alarm applied to your command.</p>
         206  +
    pub fn alarm_configuration(&self) -> ::std::option::Option<&crate::types::AlarmConfiguration> {
         207  +
        self.alarm_configuration.as_ref()
         208  +
    }
         209  +
    /// <p>The CloudWatch alarm that was invoked by the command.</p>
         210  +
    ///
         211  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.triggered_alarms.is_none()`.
         212  +
    pub fn triggered_alarms(&self) -> &[crate::types::AlarmStateInformation] {
         213  +
        self.triggered_alarms.as_deref().unwrap_or_default()
         214  +
    }
         215  +
}
         216  +
impl ::std::fmt::Debug for Command {
         217  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         218  +
        let mut formatter = f.debug_struct("Command");
         219  +
        formatter.field("command_id", &self.command_id);
         220  +
        formatter.field("document_name", &self.document_name);
         221  +
        formatter.field("document_version", &self.document_version);
         222  +
        formatter.field("comment", &self.comment);
         223  +
        formatter.field("expires_after", &self.expires_after);
         224  +
        formatter.field("parameters", &"*** Sensitive Data Redacted ***");
         225  +
        formatter.field("instance_ids", &self.instance_ids);
         226  +
        formatter.field("targets", &self.targets);
         227  +
        formatter.field("requested_date_time", &self.requested_date_time);
         228  +
        formatter.field("status", &self.status);
         229  +
        formatter.field("status_details", &self.status_details);
         230  +
        formatter.field("output_s3_region", &self.output_s3_region);
         231  +
        formatter.field("output_s3_bucket_name", &self.output_s3_bucket_name);
         232  +
        formatter.field("output_s3_key_prefix", &self.output_s3_key_prefix);
         233  +
        formatter.field("max_concurrency", &self.max_concurrency);
         234  +
        formatter.field("max_errors", &self.max_errors);
         235  +
        formatter.field("target_count", &self.target_count);
         236  +
        formatter.field("completed_count", &self.completed_count);
         237  +
        formatter.field("error_count", &self.error_count);
         238  +
        formatter.field("delivery_timed_out_count", &self.delivery_timed_out_count);
         239  +
        formatter.field("service_role", &self.service_role);
         240  +
        formatter.field("notification_config", &self.notification_config);
         241  +
        formatter.field("cloud_watch_output_config", &self.cloud_watch_output_config);
         242  +
        formatter.field("timeout_seconds", &self.timeout_seconds);
         243  +
        formatter.field("alarm_configuration", &self.alarm_configuration);
         244  +
        formatter.field("triggered_alarms", &self.triggered_alarms);
         245  +
        formatter.finish()
         246  +
    }
         247  +
}
         248  +
static COMMAND_MEMBER_COMMAND_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         249  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$CommandId", "com.amazonaws.ssm", "Command"),
         250  +
    ::aws_smithy_schema::ShapeType::String,
         251  +
    "CommandId",
         252  +
    0,
         253  +
);
         254  +
static COMMAND_MEMBER_DOCUMENT_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         255  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$DocumentName", "com.amazonaws.ssm", "Command"),
         256  +
    ::aws_smithy_schema::ShapeType::String,
         257  +
    "DocumentName",
         258  +
    1,
         259  +
);
         260  +
static COMMAND_MEMBER_DOCUMENT_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         261  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$DocumentVersion", "com.amazonaws.ssm", "Command"),
         262  +
    ::aws_smithy_schema::ShapeType::String,
         263  +
    "DocumentVersion",
         264  +
    2,
         265  +
);
         266  +
static COMMAND_MEMBER_COMMENT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         267  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$Comment", "com.amazonaws.ssm", "Command"),
         268  +
    ::aws_smithy_schema::ShapeType::String,
         269  +
    "Comment",
         270  +
    3,
         271  +
);
         272  +
static COMMAND_MEMBER_EXPIRES_AFTER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         273  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$ExpiresAfter", "com.amazonaws.ssm", "Command"),
         274  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         275  +
    "ExpiresAfter",
         276  +
    4,
         277  +
);
         278  +
static COMMAND_MEMBER_PARAMETERS_VALUE_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         279  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#ParameterValueList$member", "com.amazonaws.ssm", "ParameterValueList"),
         280  +
    ::aws_smithy_schema::ShapeType::String,
         281  +
    "member",
         282  +
    0,
         283  +
);
         284  +
static COMMAND_MEMBER_PARAMETERS_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         285  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Parameters$key", "com.amazonaws.ssm", "Parameters"),
         286  +
    ::aws_smithy_schema::ShapeType::String,
         287  +
    "key",
         288  +
    0,
         289  +
);
         290  +
static COMMAND_MEMBER_PARAMETERS_VALUE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         291  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Parameters$value", "com.amazonaws.ssm", "Parameters"),
         292  +
    ::aws_smithy_schema::ShapeType::List,
         293  +
    "value",
         294  +
    1,
         295  +
)
         296  +
.with_list_member(&COMMAND_MEMBER_PARAMETERS_VALUE_MEMBER);
         297  +
static COMMAND_MEMBER_PARAMETERS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         298  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$Parameters", "com.amazonaws.ssm", "Command"),
         299  +
    ::aws_smithy_schema::ShapeType::Map,
         300  +
    "Parameters",
         301  +
    5,
         302  +
)
         303  +
.with_map_members(&COMMAND_MEMBER_PARAMETERS_KEY, &COMMAND_MEMBER_PARAMETERS_VALUE);
         304  +
static COMMAND_MEMBER_INSTANCE_IDS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         305  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceIdList$member", "com.amazonaws.ssm", "InstanceIdList"),
         306  +
    ::aws_smithy_schema::ShapeType::String,
         307  +
    "member",
         308  +
    0,
         309  +
);
         310  +
static COMMAND_MEMBER_INSTANCE_IDS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         311  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$InstanceIds", "com.amazonaws.ssm", "Command"),
         312  +
    ::aws_smithy_schema::ShapeType::List,
         313  +
    "InstanceIds",
         314  +
    6,
         315  +
)
         316  +
.with_list_member(&COMMAND_MEMBER_INSTANCE_IDS_MEMBER);
         317  +
static COMMAND_MEMBER_TARGETS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         318  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Targets$member", "com.amazonaws.ssm", "Targets"),
         319  +
    ::aws_smithy_schema::ShapeType::Structure,
         320  +
    "member",
         321  +
    0,
         322  +
);
         323  +
static COMMAND_MEMBER_TARGETS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         324  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$Targets", "com.amazonaws.ssm", "Command"),
         325  +
    ::aws_smithy_schema::ShapeType::List,
         326  +
    "Targets",
         327  +
    7,
         328  +
)
         329  +
.with_list_member(&COMMAND_MEMBER_TARGETS_MEMBER);
         330  +
static COMMAND_MEMBER_REQUESTED_DATE_TIME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         331  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$RequestedDateTime", "com.amazonaws.ssm", "Command"),
         332  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         333  +
    "RequestedDateTime",
         334  +
    8,
         335  +
);
         336  +
static COMMAND_MEMBER_STATUS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         337  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$Status", "com.amazonaws.ssm", "Command"),
         338  +
    ::aws_smithy_schema::ShapeType::String,
         339  +
    "Status",
         340  +
    9,
         341  +
);
         342  +
static COMMAND_MEMBER_STATUS_DETAILS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         343  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$StatusDetails", "com.amazonaws.ssm", "Command"),
         344  +
    ::aws_smithy_schema::ShapeType::String,
         345  +
    "StatusDetails",
         346  +
    10,
         347  +
);
         348  +
static COMMAND_MEMBER_OUTPUT_S3_REGION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         349  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$OutputS3Region", "com.amazonaws.ssm", "Command"),
         350  +
    ::aws_smithy_schema::ShapeType::String,
         351  +
    "OutputS3Region",
         352  +
    11,
         353  +
);
         354  +
static COMMAND_MEMBER_OUTPUT_S3_BUCKET_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         355  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$OutputS3BucketName", "com.amazonaws.ssm", "Command"),
         356  +
    ::aws_smithy_schema::ShapeType::String,
         357  +
    "OutputS3BucketName",
         358  +
    12,
         359  +
);
         360  +
static COMMAND_MEMBER_OUTPUT_S3_KEY_PREFIX: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         361  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$OutputS3KeyPrefix", "com.amazonaws.ssm", "Command"),
         362  +
    ::aws_smithy_schema::ShapeType::String,
         363  +
    "OutputS3KeyPrefix",
         364  +
    13,
         365  +
);
         366  +
static COMMAND_MEMBER_MAX_CONCURRENCY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         367  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$MaxConcurrency", "com.amazonaws.ssm", "Command"),
         368  +
    ::aws_smithy_schema::ShapeType::String,
         369  +
    "MaxConcurrency",
         370  +
    14,
         371  +
);
         372  +
static COMMAND_MEMBER_MAX_ERRORS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         373  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$MaxErrors", "com.amazonaws.ssm", "Command"),
         374  +
    ::aws_smithy_schema::ShapeType::String,
         375  +
    "MaxErrors",
         376  +
    15,
         377  +
);
         378  +
static COMMAND_MEMBER_TARGET_COUNT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         379  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$TargetCount", "com.amazonaws.ssm", "Command"),
         380  +
    ::aws_smithy_schema::ShapeType::Integer,
         381  +
    "TargetCount",
         382  +
    16,
         383  +
);
         384  +
static COMMAND_MEMBER_COMPLETED_COUNT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         385  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$CompletedCount", "com.amazonaws.ssm", "Command"),
         386  +
    ::aws_smithy_schema::ShapeType::Integer,
         387  +
    "CompletedCount",
         388  +
    17,
         389  +
);
         390  +
static COMMAND_MEMBER_ERROR_COUNT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         391  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$ErrorCount", "com.amazonaws.ssm", "Command"),
         392  +
    ::aws_smithy_schema::ShapeType::Integer,
         393  +
    "ErrorCount",
         394  +
    18,
         395  +
);
         396  +
static COMMAND_MEMBER_DELIVERY_TIMED_OUT_COUNT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         397  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$DeliveryTimedOutCount", "com.amazonaws.ssm", "Command"),
         398  +
    ::aws_smithy_schema::ShapeType::Integer,
         399  +
    "DeliveryTimedOutCount",
         400  +
    19,
         401  +
);
         402  +
static COMMAND_MEMBER_SERVICE_ROLE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         403  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$ServiceRole", "com.amazonaws.ssm", "Command"),
         404  +
    ::aws_smithy_schema::ShapeType::String,
         405  +
    "ServiceRole",
         406  +
    20,
         407  +
);
         408  +
static COMMAND_MEMBER_NOTIFICATION_CONFIG: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         409  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$NotificationConfig", "com.amazonaws.ssm", "Command"),
         410  +
    ::aws_smithy_schema::ShapeType::Structure,
         411  +
    "NotificationConfig",
         412  +
    21,
         413  +
);
         414  +
static COMMAND_MEMBER_CLOUD_WATCH_OUTPUT_CONFIG: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         415  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$CloudWatchOutputConfig", "com.amazonaws.ssm", "Command"),
         416  +
    ::aws_smithy_schema::ShapeType::Structure,
         417  +
    "CloudWatchOutputConfig",
         418  +
    22,
         419  +
);
         420  +
static COMMAND_MEMBER_TIMEOUT_SECONDS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         421  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$TimeoutSeconds", "com.amazonaws.ssm", "Command"),
         422  +
    ::aws_smithy_schema::ShapeType::Integer,
         423  +
    "TimeoutSeconds",
         424  +
    23,
         425  +
);
         426  +
static COMMAND_MEMBER_ALARM_CONFIGURATION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         427  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$AlarmConfiguration", "com.amazonaws.ssm", "Command"),
         428  +
    ::aws_smithy_schema::ShapeType::Structure,
         429  +
    "AlarmConfiguration",
         430  +
    24,
         431  +
);
         432  +
static COMMAND_MEMBER_TRIGGERED_ALARMS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         433  +
    ::aws_smithy_schema::ShapeId::from_parts(
         434  +
        "com.amazonaws.ssm#AlarmStateInformationList$member",
         435  +
        "com.amazonaws.ssm",
         436  +
        "AlarmStateInformationList",
         437  +
    ),
         438  +
    ::aws_smithy_schema::ShapeType::Structure,
         439  +
    "member",
         440  +
    0,
         441  +
);
         442  +
static COMMAND_MEMBER_TRIGGERED_ALARMS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         443  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command$TriggeredAlarms", "com.amazonaws.ssm", "Command"),
         444  +
    ::aws_smithy_schema::ShapeType::List,
         445  +
    "TriggeredAlarms",
         446  +
    25,
         447  +
)
         448  +
.with_list_member(&COMMAND_MEMBER_TRIGGERED_ALARMS_MEMBER);
         449  +
static COMMAND_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
         450  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Command", "com.amazonaws.ssm", "Command"),
         451  +
    ::aws_smithy_schema::ShapeType::Structure,
         452  +
    &[
         453  +
        &COMMAND_MEMBER_COMMAND_ID,
         454  +
        &COMMAND_MEMBER_DOCUMENT_NAME,
         455  +
        &COMMAND_MEMBER_DOCUMENT_VERSION,
         456  +
        &COMMAND_MEMBER_COMMENT,
         457  +
        &COMMAND_MEMBER_EXPIRES_AFTER,
         458  +
        &COMMAND_MEMBER_PARAMETERS,
         459  +
        &COMMAND_MEMBER_INSTANCE_IDS,
         460  +
        &COMMAND_MEMBER_TARGETS,
         461  +
        &COMMAND_MEMBER_REQUESTED_DATE_TIME,
         462  +
        &COMMAND_MEMBER_STATUS,
         463  +
        &COMMAND_MEMBER_STATUS_DETAILS,
         464  +
        &COMMAND_MEMBER_OUTPUT_S3_REGION,
         465  +
        &COMMAND_MEMBER_OUTPUT_S3_BUCKET_NAME,
         466  +
        &COMMAND_MEMBER_OUTPUT_S3_KEY_PREFIX,
         467  +
        &COMMAND_MEMBER_MAX_CONCURRENCY,
         468  +
        &COMMAND_MEMBER_MAX_ERRORS,
         469  +
        &COMMAND_MEMBER_TARGET_COUNT,
         470  +
        &COMMAND_MEMBER_COMPLETED_COUNT,
         471  +
        &COMMAND_MEMBER_ERROR_COUNT,
         472  +
        &COMMAND_MEMBER_DELIVERY_TIMED_OUT_COUNT,
         473  +
        &COMMAND_MEMBER_SERVICE_ROLE,
         474  +
        &COMMAND_MEMBER_NOTIFICATION_CONFIG,
         475  +
        &COMMAND_MEMBER_CLOUD_WATCH_OUTPUT_CONFIG,
         476  +
        &COMMAND_MEMBER_TIMEOUT_SECONDS,
         477  +
        &COMMAND_MEMBER_ALARM_CONFIGURATION,
         478  +
        &COMMAND_MEMBER_TRIGGERED_ALARMS,
         479  +
    ],
         480  +
);
         481  +
impl Command {
         482  +
    /// The schema for this shape.
         483  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &COMMAND_SCHEMA;
         484  +
}
         485  +
impl ::aws_smithy_schema::serde::SerializableStruct for Command {
         486  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         487  +
    fn serialize_members(
         488  +
        &self,
         489  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         490  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         491  +
        if let Some(ref val) = self.command_id {
         492  +
            ser.write_string(&COMMAND_MEMBER_COMMAND_ID, val)?;
         493  +
        }
         494  +
        if let Some(ref val) = self.document_name {
         495  +
            ser.write_string(&COMMAND_MEMBER_DOCUMENT_NAME, val)?;
         496  +
        }
         497  +
        if let Some(ref val) = self.document_version {
         498  +
            ser.write_string(&COMMAND_MEMBER_DOCUMENT_VERSION, val)?;
         499  +
        }
         500  +
        if let Some(ref val) = self.comment {
         501  +
            ser.write_string(&COMMAND_MEMBER_COMMENT, val)?;
         502  +
        }
         503  +
        if let Some(ref val) = self.expires_after {
         504  +
            ser.write_timestamp(&COMMAND_MEMBER_EXPIRES_AFTER, val)?;
         505  +
        }
         506  +
        if let Some(ref val) = self.parameters {
         507  +
            ser.write_map(
         508  +
                &COMMAND_MEMBER_PARAMETERS,
         509  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         510  +
                    for (key, value) in val {
         511  +
                        ser.write_string(&::aws_smithy_schema::prelude::STRING, key)?;
         512  +
         513  +
                        ser.write_list(
         514  +
                            &COMMAND_MEMBER_PARAMETERS_VALUE,
         515  +
                            &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         516  +
                                for item in value {
         517  +
                                    ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
         518  +
                                }
         519  +
                                Ok(())
         520  +
                            },
         521  +
                        )?;
         522  +
                    }
         523  +
                    Ok(())
         524  +
                },
         525  +
            )?;
         526  +
        }
         527  +
        if let Some(ref val) = self.instance_ids {
         528  +
            ser.write_list(
         529  +
                &COMMAND_MEMBER_INSTANCE_IDS,
         530  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         531  +
                    for item in val {
         532  +
                        ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
         533  +
                    }
         534  +
                    Ok(())
         535  +
                },
         536  +
            )?;
         537  +
        }
         538  +
        if let Some(ref val) = self.targets {
         539  +
            ser.write_list(&COMMAND_MEMBER_TARGETS, &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         540  +
                for item in val {
         541  +
                    ser.write_struct(crate::types::Target::SCHEMA, item)?;
         542  +
                }
         543  +
                Ok(())
         544  +
            })?;
         545  +
        }
         546  +
        if let Some(ref val) = self.requested_date_time {
         547  +
            ser.write_timestamp(&COMMAND_MEMBER_REQUESTED_DATE_TIME, val)?;
         548  +
        }
         549  +
        if let Some(ref val) = self.status {
         550  +
            ser.write_string(&COMMAND_MEMBER_STATUS, val.as_str())?;
         551  +
        }
         552  +
        if let Some(ref val) = self.status_details {
         553  +
            ser.write_string(&COMMAND_MEMBER_STATUS_DETAILS, val)?;
         554  +
        }
         555  +
        if let Some(ref val) = self.output_s3_region {
         556  +
            ser.write_string(&COMMAND_MEMBER_OUTPUT_S3_REGION, val)?;
         557  +
        }
         558  +
        if let Some(ref val) = self.output_s3_bucket_name {
         559  +
            ser.write_string(&COMMAND_MEMBER_OUTPUT_S3_BUCKET_NAME, val)?;
         560  +
        }
         561  +
        if let Some(ref val) = self.output_s3_key_prefix {
         562  +
            ser.write_string(&COMMAND_MEMBER_OUTPUT_S3_KEY_PREFIX, val)?;
         563  +
        }
         564  +
        if let Some(ref val) = self.max_concurrency {
         565  +
            ser.write_string(&COMMAND_MEMBER_MAX_CONCURRENCY, val)?;
         566  +
        }
         567  +
        if let Some(ref val) = self.max_errors {
         568  +
            ser.write_string(&COMMAND_MEMBER_MAX_ERRORS, val)?;
         569  +
        }
         570  +
        {
         571  +
            let val = &self.target_count;
         572  +
            ser.write_integer(&COMMAND_MEMBER_TARGET_COUNT, *val)?;
         573  +
        }
         574  +
        {
         575  +
            let val = &self.completed_count;
         576  +
            ser.write_integer(&COMMAND_MEMBER_COMPLETED_COUNT, *val)?;
         577  +
        }
         578  +
        {
         579  +
            let val = &self.error_count;
         580  +
            ser.write_integer(&COMMAND_MEMBER_ERROR_COUNT, *val)?;
         581  +
        }
         582  +
        {
         583  +
            let val = &self.delivery_timed_out_count;
         584  +
            ser.write_integer(&COMMAND_MEMBER_DELIVERY_TIMED_OUT_COUNT, *val)?;
         585  +
        }
         586  +
        if let Some(ref val) = self.service_role {
         587  +
            ser.write_string(&COMMAND_MEMBER_SERVICE_ROLE, val)?;
         588  +
        }
         589  +
        if let Some(ref val) = self.notification_config {
         590  +
            ser.write_struct(&COMMAND_MEMBER_NOTIFICATION_CONFIG, val)?;
         591  +
        }
         592  +
        if let Some(ref val) = self.cloud_watch_output_config {
         593  +
            ser.write_struct(&COMMAND_MEMBER_CLOUD_WATCH_OUTPUT_CONFIG, val)?;
         594  +
        }
         595  +
        if let Some(ref val) = self.timeout_seconds {
         596  +
            ser.write_integer(&COMMAND_MEMBER_TIMEOUT_SECONDS, *val)?;
         597  +
        }
         598  +
        if let Some(ref val) = self.alarm_configuration {
         599  +
            ser.write_struct(&COMMAND_MEMBER_ALARM_CONFIGURATION, val)?;
         600  +
        }
         601  +
        if let Some(ref val) = self.triggered_alarms {
         602  +
            ser.write_list(
         603  +
                &COMMAND_MEMBER_TRIGGERED_ALARMS,
         604  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         605  +
                    for item in val {
         606  +
                        ser.write_struct(crate::types::AlarmStateInformation::SCHEMA, item)?;
         607  +
                    }
         608  +
                    Ok(())
         609  +
                },
         610  +
            )?;
         611  +
        }
         612  +
        Ok(())
         613  +
    }
         614  +
}
         615  +
impl Command {
         616  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         617  +
    pub fn deserialize(
         618  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         619  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         620  +
        #[allow(unused_variables, unused_mut)]
         621  +
        let mut builder = Self::builder();
         622  +
        #[allow(
         623  +
            unused_variables,
         624  +
            unreachable_code,
         625  +
            clippy::single_match,
         626  +
            clippy::match_single_binding,
         627  +
            clippy::diverging_sub_expression
         628  +
        )]
         629  +
        deserializer.read_struct(&COMMAND_SCHEMA, &mut |member, deser| {
         630  +
            match member.member_index() {
         631  +
                Some(0) => {
         632  +
                    if deser.is_null() {
         633  +
                        deser.read_null()?;
         634  +
                    } else {
         635  +
                        builder.command_id = Some(deser.read_string(member)?);
         636  +
                    }
         637  +
                }
         638  +
                Some(1) => {
         639  +
                    if deser.is_null() {
         640  +
                        deser.read_null()?;
         641  +
                    } else {
         642  +
                        builder.document_name = Some(deser.read_string(member)?);
         643  +
                    }
         644  +
                }
         645  +
                Some(2) => {
         646  +
                    if deser.is_null() {
         647  +
                        deser.read_null()?;
         648  +
                    } else {
         649  +
                        builder.document_version = Some(deser.read_string(member)?);
         650  +
                    }
         651  +
                }
         652  +
                Some(3) => {
         653  +
                    if deser.is_null() {
         654  +
                        deser.read_null()?;
         655  +
                    } else {
         656  +
                        builder.comment = Some(deser.read_string(member)?);
         657  +
                    }
         658  +
                }
         659  +
                Some(4) => {
         660  +
                    if deser.is_null() {
         661  +
                        deser.read_null()?;
         662  +
                    } else {
         663  +
                        builder.expires_after = Some(deser.read_timestamp(member)?);
         664  +
                    }
         665  +
                }
         666  +
                Some(5) => {
         667  +
                    if deser.is_null() {
         668  +
                        deser.read_null()?;
         669  +
                    } else {
         670  +
                        builder.parameters = Some({
         671  +
                            let mut container = std::collections::HashMap::new();
         672  +
                            deser.read_map(member, &mut |key, deser| {
         673  +
                                container.insert(key, {
         674  +
                                    let mut list = Vec::new();
         675  +
                                    deser.read_list(&COMMAND_MEMBER_PARAMETERS_VALUE, &mut |deser| {
         676  +
                                        list.push(deser.read_string(&::aws_smithy_schema::prelude::STRING)?);
         677  +
                                        Ok(())
         678  +
                                    })?;
         679  +
                                    list
         680  +
                                });
         681  +
                                Ok(())
         682  +
                            })?;
         683  +
                            container
         684  +
                        });
         685  +
                    }
         686  +
                }
         687  +
                Some(6) => {
         688  +
                    if deser.is_null() {
         689  +
                        deser.read_null()?;
         690  +
                    } else {
         691  +
                        builder.instance_ids = Some(deser.read_string_list(member)?);
         692  +
                    }
         693  +
                }
         694  +
                Some(7) => {
         695  +
                    if deser.is_null() {
         696  +
                        deser.read_null()?;
         697  +
                    } else {
         698  +
                        builder.targets = Some({
         699  +
                            let mut container = Vec::new();
         700  +
                            deser.read_list(member, &mut |deser| {
         701  +
                                container.push(crate::types::Target::deserialize(deser)?);
         702  +
                                Ok(())
         703  +
                            })?;
         704  +
                            container
         705  +
                        });
         706  +
                    }
         707  +
                }
         708  +
                Some(8) => {
         709  +
                    if deser.is_null() {
         710  +
                        deser.read_null()?;
         711  +
                    } else {
         712  +
                        builder.requested_date_time = Some(deser.read_timestamp(member)?);
         713  +
                    }
         714  +
                }
         715  +
                Some(9) => {
         716  +
                    if deser.is_null() {
         717  +
                        deser.read_null()?;
         718  +
                    } else {
         719  +
                        builder.status = Some(crate::types::CommandStatus::from(deser.read_string(member)?.as_str()));
         720  +
                    }
         721  +
                }
         722  +
                Some(10) => {
         723  +
                    if deser.is_null() {
         724  +
                        deser.read_null()?;
         725  +
                    } else {
         726  +
                        builder.status_details = Some(deser.read_string(member)?);
         727  +
                    }
         728  +
                }
         729  +
                Some(11) => {
         730  +
                    if deser.is_null() {
         731  +
                        deser.read_null()?;
         732  +
                    } else {
         733  +
                        builder.output_s3_region = Some(deser.read_string(member)?);
         734  +
                    }
         735  +
                }
         736  +
                Some(12) => {
         737  +
                    if deser.is_null() {
         738  +
                        deser.read_null()?;
         739  +
                    } else {
         740  +
                        builder.output_s3_bucket_name = Some(deser.read_string(member)?);
         741  +
                    }
         742  +
                }
         743  +
                Some(13) => {
         744  +
                    if deser.is_null() {
         745  +
                        deser.read_null()?;
         746  +
                    } else {
         747  +
                        builder.output_s3_key_prefix = Some(deser.read_string(member)?);
         748  +
                    }
         749  +
                }
         750  +
                Some(14) => {
         751  +
                    if deser.is_null() {
         752  +
                        deser.read_null()?;
         753  +
                    } else {
         754  +
                        builder.max_concurrency = Some(deser.read_string(member)?);
         755  +
                    }
         756  +
                }
         757  +
                Some(15) => {
         758  +
                    if deser.is_null() {
         759  +
                        deser.read_null()?;
         760  +
                    } else {
         761  +
                        builder.max_errors = Some(deser.read_string(member)?);
         762  +
                    }
         763  +
                }
         764  +
                Some(16) => {
         765  +
                    builder.target_count = Some(deser.read_integer(member)?);
         766  +
                }
         767  +
                Some(17) => {
         768  +
                    builder.completed_count = Some(deser.read_integer(member)?);
         769  +
                }
         770  +
                Some(18) => {
         771  +
                    builder.error_count = Some(deser.read_integer(member)?);
         772  +
                }
         773  +
                Some(19) => {
         774  +
                    builder.delivery_timed_out_count = Some(deser.read_integer(member)?);
         775  +
                }
         776  +
                Some(20) => {
         777  +
                    if deser.is_null() {
         778  +
                        deser.read_null()?;
         779  +
                    } else {
         780  +
                        builder.service_role = Some(deser.read_string(member)?);
         781  +
                    }
         782  +
                }
         783  +
                Some(21) => {
         784  +
                    if deser.is_null() {
         785  +
                        deser.read_null()?;
         786  +
                    } else {
         787  +
                        builder.notification_config = Some(crate::types::NotificationConfig::deserialize(deser)?);
         788  +
                    }
         789  +
                }
         790  +
                Some(22) => {
         791  +
                    if deser.is_null() {
         792  +
                        deser.read_null()?;
         793  +
                    } else {
         794  +
                        builder.cloud_watch_output_config = Some(crate::types::CloudWatchOutputConfig::deserialize(deser)?);
         795  +
                    }
         796  +
                }
         797  +
                Some(23) => {
         798  +
                    if deser.is_null() {
         799  +
                        deser.read_null()?;
         800  +
                    } else {
         801  +
                        builder.timeout_seconds = Some(deser.read_integer(member)?);
         802  +
                    }
         803  +
                }
         804  +
                Some(24) => {
         805  +
                    if deser.is_null() {
         806  +
                        deser.read_null()?;
         807  +
                    } else {
         808  +
                        builder.alarm_configuration = Some(crate::types::AlarmConfiguration::deserialize(deser)?);
         809  +
                    }
         810  +
                }
         811  +
                Some(25) => {
         812  +
                    if deser.is_null() {
         813  +
                        deser.read_null()?;
         814  +
                    } else {
         815  +
                        builder.triggered_alarms = Some({
         816  +
                            let mut container = Vec::new();
         817  +
                            deser.read_list(member, &mut |deser| {
         818  +
                                container.push(crate::types::AlarmStateInformation::deserialize(deser)?);
         819  +
                                Ok(())
         820  +
                            })?;
         821  +
                            container
         822  +
                        });
         823  +
                    }
         824  +
                }
         825  +
                _ => {}
         826  +
            }
         827  +
            Ok(())
         828  +
        })?;
         829  +
        Ok(builder.build())
         830  +
    }
         831  +
}
         832  +
impl Command {
         833  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         834  +
    pub fn deserialize_with_response(
         835  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         836  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         837  +
        _status: u16,
         838  +
        _body: &[u8],
         839  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         840  +
        Self::deserialize(deserializer)
         841  +
    }
         842  +
}
         843  +
impl Command {
         844  +
    /// Creates a new builder-style object to manufacture [`Command`](crate::types::Command).
         845  +
    pub fn builder() -> crate::types::builders::CommandBuilder {
         846  +
        crate::types::builders::CommandBuilder::default()
         847  +
    }
         848  +
}
         849  +
         850  +
/// A builder for [`Command`](crate::types::Command).
         851  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
         852  +
#[non_exhaustive]
         853  +
pub struct CommandBuilder {
         854  +
    pub(crate) command_id: ::std::option::Option<::std::string::String>,
         855  +
    pub(crate) document_name: ::std::option::Option<::std::string::String>,
         856  +
    pub(crate) document_version: ::std::option::Option<::std::string::String>,
         857  +
    pub(crate) comment: ::std::option::Option<::std::string::String>,
         858  +
    pub(crate) expires_after: ::std::option::Option<::aws_smithy_types::DateTime>,
         859  +
    pub(crate) parameters: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
         860  +
    pub(crate) instance_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         861  +
    pub(crate) targets: ::std::option::Option<::std::vec::Vec<crate::types::Target>>,
         862  +
    pub(crate) requested_date_time: ::std::option::Option<::aws_smithy_types::DateTime>,
         863  +
    pub(crate) status: ::std::option::Option<crate::types::CommandStatus>,
         864  +
    pub(crate) status_details: ::std::option::Option<::std::string::String>,
         865  +
    pub(crate) output_s3_region: ::std::option::Option<::std::string::String>,
         866  +
    pub(crate) output_s3_bucket_name: ::std::option::Option<::std::string::String>,
         867  +
    pub(crate) output_s3_key_prefix: ::std::option::Option<::std::string::String>,
         868  +
    pub(crate) max_concurrency: ::std::option::Option<::std::string::String>,
         869  +
    pub(crate) max_errors: ::std::option::Option<::std::string::String>,
         870  +
    pub(crate) target_count: ::std::option::Option<i32>,
         871  +
    pub(crate) completed_count: ::std::option::Option<i32>,
         872  +
    pub(crate) error_count: ::std::option::Option<i32>,
         873  +
    pub(crate) delivery_timed_out_count: ::std::option::Option<i32>,
         874  +
    pub(crate) service_role: ::std::option::Option<::std::string::String>,
         875  +
    pub(crate) notification_config: ::std::option::Option<crate::types::NotificationConfig>,
         876  +
    pub(crate) cloud_watch_output_config: ::std::option::Option<crate::types::CloudWatchOutputConfig>,
         877  +
    pub(crate) timeout_seconds: ::std::option::Option<i32>,
         878  +
    pub(crate) alarm_configuration: ::std::option::Option<crate::types::AlarmConfiguration>,
         879  +
    pub(crate) triggered_alarms: ::std::option::Option<::std::vec::Vec<crate::types::AlarmStateInformation>>,
         880  +
}
         881  +
impl CommandBuilder {
         882  +
    /// <p>A unique identifier for this command.</p>
         883  +
    pub fn command_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         884  +
        self.command_id = ::std::option::Option::Some(input.into());
         885  +
        self
         886  +
    }
         887  +
    /// <p>A unique identifier for this command.</p>
         888  +
    pub fn set_command_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         889  +
        self.command_id = input;
         890  +
        self
         891  +
    }
         892  +
    /// <p>A unique identifier for this command.</p>
         893  +
    pub fn get_command_id(&self) -> &::std::option::Option<::std::string::String> {
         894  +
        &self.command_id
         895  +
    }
         896  +
    /// <p>The name of the document requested for execution.</p>
         897  +
    pub fn document_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         898  +
        self.document_name = ::std::option::Option::Some(input.into());
         899  +
        self
         900  +
    }
         901  +
    /// <p>The name of the document requested for execution.</p>
         902  +
    pub fn set_document_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         903  +
        self.document_name = input;
         904  +
        self
         905  +
    }
         906  +
    /// <p>The name of the document requested for execution.</p>
         907  +
    pub fn get_document_name(&self) -> &::std::option::Option<::std::string::String> {
         908  +
        &self.document_name
         909  +
    }
         910  +
    /// <p>The Systems Manager document (SSM document) version.</p>
         911  +
    pub fn document_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         912  +
        self.document_version = ::std::option::Option::Some(input.into());
         913  +
        self
         914  +
    }
         915  +
    /// <p>The Systems Manager document (SSM document) version.</p>
         916  +
    pub fn set_document_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         917  +
        self.document_version = input;
         918  +
        self
         919  +
    }
         920  +
    /// <p>The Systems Manager document (SSM document) version.</p>
         921  +
    pub fn get_document_version(&self) -> &::std::option::Option<::std::string::String> {
         922  +
        &self.document_version
         923  +
    }
         924  +
    /// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
         925  +
    pub fn comment(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         926  +
        self.comment = ::std::option::Option::Some(input.into());
         927  +
        self
         928  +
    }
         929  +
    /// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
         930  +
    pub fn set_comment(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         931  +
        self.comment = input;
         932  +
        self
         933  +
    }
         934  +
    /// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
         935  +
    pub fn get_comment(&self) -> &::std::option::Option<::std::string::String> {
         936  +
        &self.comment
         937  +
    }
         938  +
    /// <p>If a command expires, it changes status to <code>DeliveryTimedOut</code> for all invocations that have the status <code>InProgress</code>, <code>Pending</code>, or <code>Delayed</code>. <code>ExpiresAfter</code> is calculated based on the total timeout for the overall command. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html?icmpid=docs_ec2_console#monitor-about-status-timeouts">Understanding command timeout values</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         939  +
    pub fn expires_after(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         940  +
        self.expires_after = ::std::option::Option::Some(input);
         941  +
        self
         942  +
    }
         943  +
    /// <p>If a command expires, it changes status to <code>DeliveryTimedOut</code> for all invocations that have the status <code>InProgress</code>, <code>Pending</code>, or <code>Delayed</code>. <code>ExpiresAfter</code> is calculated based on the total timeout for the overall command. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html?icmpid=docs_ec2_console#monitor-about-status-timeouts">Understanding command timeout values</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         944  +
    pub fn set_expires_after(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         945  +
        self.expires_after = input;
         946  +
        self
         947  +
    }
         948  +
    /// <p>If a command expires, it changes status to <code>DeliveryTimedOut</code> for all invocations that have the status <code>InProgress</code>, <code>Pending</code>, or <code>Delayed</code>. <code>ExpiresAfter</code> is calculated based on the total timeout for the overall command. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html?icmpid=docs_ec2_console#monitor-about-status-timeouts">Understanding command timeout values</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         949  +
    pub fn get_expires_after(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         950  +
        &self.expires_after
         951  +
    }
         952  +
    /// Adds a key-value pair to `parameters`.
         953  +
    ///
         954  +
    /// To override the contents of this collection use [`set_parameters`](Self::set_parameters).
         955  +
    ///
         956  +
    /// <p>The parameter values to be inserted in the document when running the command.</p>
         957  +
    pub fn parameters(mut self, k: impl ::std::convert::Into<::std::string::String>, v: ::std::vec::Vec<::std::string::String>) -> Self {
         958  +
        let mut hash_map = self.parameters.unwrap_or_default();
         959  +
        hash_map.insert(k.into(), v);
         960  +
        self.parameters = ::std::option::Option::Some(hash_map);
         961  +
        self
         962  +
    }
         963  +
    /// <p>The parameter values to be inserted in the document when running the command.</p>
         964  +
    pub fn set_parameters(
         965  +
        mut self,
         966  +
        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
         967  +
    ) -> Self {
         968  +
        self.parameters = input;
         969  +
        self
         970  +
    }
         971  +
    /// <p>The parameter values to be inserted in the document when running the command.</p>
         972  +
    pub fn get_parameters(
         973  +
        &self,
         974  +
    ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
         975  +
        &self.parameters
         976  +
    }
         977  +
    /// Appends an item to `instance_ids`.
         978  +
    ///
         979  +
    /// To override the contents of this collection use [`set_instance_ids`](Self::set_instance_ids).
         980  +
    ///
         981  +
    /// <p>The managed node IDs against which this command was requested.</p>
         982  +
    pub fn instance_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         983  +
        let mut v = self.instance_ids.unwrap_or_default();
         984  +
        v.push(input.into());
         985  +
        self.instance_ids = ::std::option::Option::Some(v);
         986  +
        self
         987  +
    }
         988  +
    /// <p>The managed node IDs against which this command was requested.</p>
         989  +
    pub fn set_instance_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
         990  +
        self.instance_ids = input;
         991  +
        self
         992  +
    }
         993  +
    /// <p>The managed node IDs against which this command was requested.</p>
         994  +
    pub fn get_instance_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
         995  +
        &self.instance_ids
         996  +
    }
         997  +
    /// Appends an item to `targets`.
         998  +
    ///
         999  +
    /// To override the contents of this collection use [`set_targets`](Self::set_targets).
        1000  +
    ///
        1001  +
    /// <p>An array of search criteria that targets managed nodes using a Key,Value combination that you specify. Targets is required if you don't provide one or more managed node IDs in the call.</p>
        1002  +
    pub fn targets(mut self, input: crate::types::Target) -> Self {
        1003  +
        let mut v = self.targets.unwrap_or_default();
        1004  +
        v.push(input);
        1005  +
        self.targets = ::std::option::Option::Some(v);
        1006  +
        self
        1007  +
    }
        1008  +
    /// <p>An array of search criteria that targets managed nodes using a Key,Value combination that you specify. Targets is required if you don't provide one or more managed node IDs in the call.</p>
        1009  +
    pub fn set_targets(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Target>>) -> Self {
        1010  +
        self.targets = input;
        1011  +
        self
        1012  +
    }
        1013  +
    /// <p>An array of search criteria that targets managed nodes using a Key,Value combination that you specify. Targets is required if you don't provide one or more managed node IDs in the call.</p>
        1014  +
    pub fn get_targets(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Target>> {
        1015  +
        &self.targets
        1016  +
    }
        1017  +
    /// <p>The date and time the command was requested.</p>
        1018  +
    pub fn requested_date_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        1019  +
        self.requested_date_time = ::std::option::Option::Some(input);
        1020  +
        self
        1021  +
    }
        1022  +
    /// <p>The date and time the command was requested.</p>
        1023  +
    pub fn set_requested_date_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        1024  +
        self.requested_date_time = input;
        1025  +
        self
        1026  +
    }
        1027  +
    /// <p>The date and time the command was requested.</p>
        1028  +
    pub fn get_requested_date_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        1029  +
        &self.requested_date_time
        1030  +
    }
        1031  +
    /// <p>The status of the command.</p>
        1032  +
    pub fn status(mut self, input: crate::types::CommandStatus) -> Self {
        1033  +
        self.status = ::std::option::Option::Some(input);
        1034  +
        self
        1035  +
    }
        1036  +
    /// <p>The status of the command.</p>
        1037  +
    pub fn set_status(mut self, input: ::std::option::Option<crate::types::CommandStatus>) -> Self {
        1038  +
        self.status = input;
        1039  +
        self
        1040  +
    }
        1041  +
    /// <p>The status of the command.</p>
        1042  +
    pub fn get_status(&self) -> &::std::option::Option<crate::types::CommandStatus> {
        1043  +
        &self.status
        1044  +
    }
        1045  +
    /// <p>A detailed status of the command execution. <code>StatusDetails</code> includes more information than <code>Status</code> because it includes states resulting from error and concurrency control parameters. <code>StatusDetails</code> can show different results than Status. For more information about these statuses, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html">Understanding command statuses</a> in the <i>Amazon Web Services Systems Manager User Guide</i>. StatusDetails can be one of the following values:</p>
        1046  +
    /// <ul>
        1047  +
    /// <li>
        1048  +
    /// <p>Pending: The command hasn't been sent to any managed nodes.</p></li>
        1049  +
    /// <li>
        1050  +
    /// <p>In Progress: The command has been sent to at least one managed node but hasn't reached a final state on all managed nodes.</p></li>
        1051  +
    /// <li>
        1052  +
    /// <p>Success: The command successfully ran on all invocations. This is a terminal state.</p></li>
        1053  +
    /// <li>
        1054  +
    /// <p>Delivery Timed Out: The value of MaxErrors or more command invocations shows a status of Delivery Timed Out. This is a terminal state.</p></li>
        1055  +
    /// <li>
        1056  +
    /// <p>Execution Timed Out: The value of MaxErrors or more command invocations shows a status of Execution Timed Out. This is a terminal state.</p></li>
        1057  +
    /// <li>
        1058  +
    /// <p>Failed: The value of MaxErrors or more command invocations shows a status of Failed. This is a terminal state.</p></li>
        1059  +
    /// <li>
        1060  +
    /// <p>Incomplete: The command was attempted on all managed nodes and one or more invocations doesn't have a value of Success but not enough invocations failed for the status to be Failed. This is a terminal state.</p></li>
        1061  +
    /// <li>
        1062  +
    /// <p>Cancelled: The command was terminated before it was completed. This is a terminal state.</p></li>
        1063  +
    /// <li>
        1064  +
    /// <p>Rate Exceeded: The number of managed nodes targeted by the command exceeded the account limit for pending invocations. The system has canceled the command before running it on any managed node. This is a terminal state.</p></li>
        1065  +
    /// <li>
        1066  +
    /// <p>Delayed: The system attempted to send the command to the managed node but wasn't successful. The system retries again.</p></li>
        1067  +
    /// </ul>
        1068  +
    pub fn status_details(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1069  +
        self.status_details = ::std::option::Option::Some(input.into());
        1070  +
        self
        1071  +
    }
        1072  +
    /// <p>A detailed status of the command execution. <code>StatusDetails</code> includes more information than <code>Status</code> because it includes states resulting from error and concurrency control parameters. <code>StatusDetails</code> can show different results than Status. For more information about these statuses, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html">Understanding command statuses</a> in the <i>Amazon Web Services Systems Manager User Guide</i>. StatusDetails can be one of the following values:</p>
        1073  +
    /// <ul>
        1074  +
    /// <li>
        1075  +
    /// <p>Pending: The command hasn't been sent to any managed nodes.</p></li>
        1076  +
    /// <li>
        1077  +
    /// <p>In Progress: The command has been sent to at least one managed node but hasn't reached a final state on all managed nodes.</p></li>
        1078  +
    /// <li>
        1079  +
    /// <p>Success: The command successfully ran on all invocations. This is a terminal state.</p></li>
        1080  +
    /// <li>
        1081  +
    /// <p>Delivery Timed Out: The value of MaxErrors or more command invocations shows a status of Delivery Timed Out. This is a terminal state.</p></li>
        1082  +
    /// <li>
        1083  +
    /// <p>Execution Timed Out: The value of MaxErrors or more command invocations shows a status of Execution Timed Out. This is a terminal state.</p></li>
        1084  +
    /// <li>
        1085  +
    /// <p>Failed: The value of MaxErrors or more command invocations shows a status of Failed. This is a terminal state.</p></li>
        1086  +
    /// <li>
        1087  +
    /// <p>Incomplete: The command was attempted on all managed nodes and one or more invocations doesn't have a value of Success but not enough invocations failed for the status to be Failed. This is a terminal state.</p></li>
        1088  +
    /// <li>
        1089  +
    /// <p>Cancelled: The command was terminated before it was completed. This is a terminal state.</p></li>
        1090  +
    /// <li>
        1091  +
    /// <p>Rate Exceeded: The number of managed nodes targeted by the command exceeded the account limit for pending invocations. The system has canceled the command before running it on any managed node. This is a terminal state.</p></li>
        1092  +
    /// <li>
        1093  +
    /// <p>Delayed: The system attempted to send the command to the managed node but wasn't successful. The system retries again.</p></li>
        1094  +
    /// </ul>
        1095  +
    pub fn set_status_details(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1096  +
        self.status_details = input;
        1097  +
        self
        1098  +
    }
        1099  +
    /// <p>A detailed status of the command execution. <code>StatusDetails</code> includes more information than <code>Status</code> because it includes states resulting from error and concurrency control parameters. <code>StatusDetails</code> can show different results than Status. For more information about these statuses, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html">Understanding command statuses</a> in the <i>Amazon Web Services Systems Manager User Guide</i>. StatusDetails can be one of the following values:</p>
        1100  +
    /// <ul>
        1101  +
    /// <li>
        1102  +
    /// <p>Pending: The command hasn't been sent to any managed nodes.</p></li>
        1103  +
    /// <li>
        1104  +
    /// <p>In Progress: The command has been sent to at least one managed node but hasn't reached a final state on all managed nodes.</p></li>
        1105  +
    /// <li>
        1106  +
    /// <p>Success: The command successfully ran on all invocations. This is a terminal state.</p></li>
        1107  +
    /// <li>
        1108  +
    /// <p>Delivery Timed Out: The value of MaxErrors or more command invocations shows a status of Delivery Timed Out. This is a terminal state.</p></li>
        1109  +
    /// <li>
        1110  +
    /// <p>Execution Timed Out: The value of MaxErrors or more command invocations shows a status of Execution Timed Out. This is a terminal state.</p></li>
        1111  +
    /// <li>
        1112  +
    /// <p>Failed: The value of MaxErrors or more command invocations shows a status of Failed. This is a terminal state.</p></li>
        1113  +
    /// <li>
        1114  +
    /// <p>Incomplete: The command was attempted on all managed nodes and one or more invocations doesn't have a value of Success but not enough invocations failed for the status to be Failed. This is a terminal state.</p></li>
        1115  +
    /// <li>
        1116  +
    /// <p>Cancelled: The command was terminated before it was completed. This is a terminal state.</p></li>
        1117  +
    /// <li>
        1118  +
    /// <p>Rate Exceeded: The number of managed nodes targeted by the command exceeded the account limit for pending invocations. The system has canceled the command before running it on any managed node. This is a terminal state.</p></li>
        1119  +
    /// <li>
        1120  +
    /// <p>Delayed: The system attempted to send the command to the managed node but wasn't successful. The system retries again.</p></li>
        1121  +
    /// </ul>
        1122  +
    pub fn get_status_details(&self) -> &::std::option::Option<::std::string::String> {
        1123  +
        &self.status_details
        1124  +
    }
        1125  +
    /// <p>(Deprecated) You can no longer specify this parameter. The system ignores it. Instead, Systems Manager automatically determines the Amazon Web Services Region of the S3 bucket.</p>
        1126  +
    pub fn output_s3_region(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1127  +
        self.output_s3_region = ::std::option::Option::Some(input.into());
        1128  +
        self
        1129  +
    }
        1130  +
    /// <p>(Deprecated) You can no longer specify this parameter. The system ignores it. Instead, Systems Manager automatically determines the Amazon Web Services Region of the S3 bucket.</p>
        1131  +
    pub fn set_output_s3_region(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1132  +
        self.output_s3_region = input;
        1133  +
        self
        1134  +
    }
        1135  +
    /// <p>(Deprecated) You can no longer specify this parameter. The system ignores it. Instead, Systems Manager automatically determines the Amazon Web Services Region of the S3 bucket.</p>
        1136  +
    pub fn get_output_s3_region(&self) -> &::std::option::Option<::std::string::String> {
        1137  +
        &self.output_s3_region
        1138  +
    }
        1139  +
    /// <p>The S3 bucket where the responses to the command executions should be stored. This was requested when issuing the command.</p>
        1140  +
    pub fn output_s3_bucket_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1141  +
        self.output_s3_bucket_name = ::std::option::Option::Some(input.into());
        1142  +
        self
        1143  +
    }
        1144  +
    /// <p>The S3 bucket where the responses to the command executions should be stored. This was requested when issuing the command.</p>
        1145  +
    pub fn set_output_s3_bucket_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1146  +
        self.output_s3_bucket_name = input;
        1147  +
        self
        1148  +
    }
        1149  +
    /// <p>The S3 bucket where the responses to the command executions should be stored. This was requested when issuing the command.</p>
        1150  +
    pub fn get_output_s3_bucket_name(&self) -> &::std::option::Option<::std::string::String> {
        1151  +
        &self.output_s3_bucket_name
        1152  +
    }
        1153  +
    /// <p>The S3 directory path inside the bucket where the responses to the command executions should be stored. This was requested when issuing the command.</p>
        1154  +
    pub fn output_s3_key_prefix(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1155  +
        self.output_s3_key_prefix = ::std::option::Option::Some(input.into());
        1156  +
        self
        1157  +
    }
        1158  +
    /// <p>The S3 directory path inside the bucket where the responses to the command executions should be stored. This was requested when issuing the command.</p>
        1159  +
    pub fn set_output_s3_key_prefix(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1160  +
        self.output_s3_key_prefix = input;
        1161  +
        self
        1162  +
    }
        1163  +
    /// <p>The S3 directory path inside the bucket where the responses to the command executions should be stored. This was requested when issuing the command.</p>
        1164  +
    pub fn get_output_s3_key_prefix(&self) -> &::std::option::Option<::std::string::String> {
        1165  +
        &self.output_s3_key_prefix
        1166  +
    }
        1167  +
    /// <p>The maximum number of managed nodes that are allowed to run the command at the same time. You can specify a number of managed nodes, such as 10, or a percentage of nodes, such as 10%. The default value is 50. For more information about how to use <code>MaxConcurrency</code>, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html">Amazon Web Services Systems Manager Run Command</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
        1168  +
    pub fn max_concurrency(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1169  +
        self.max_concurrency = ::std::option::Option::Some(input.into());
        1170  +
        self
        1171  +
    }
        1172  +
    /// <p>The maximum number of managed nodes that are allowed to run the command at the same time. You can specify a number of managed nodes, such as 10, or a percentage of nodes, such as 10%. The default value is 50. For more information about how to use <code>MaxConcurrency</code>, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html">Amazon Web Services Systems Manager Run Command</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
        1173  +
    pub fn set_max_concurrency(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1174  +
        self.max_concurrency = input;
        1175  +
        self
        1176  +
    }
        1177  +
    /// <p>The maximum number of managed nodes that are allowed to run the command at the same time. You can specify a number of managed nodes, such as 10, or a percentage of nodes, such as 10%. The default value is 50. For more information about how to use <code>MaxConcurrency</code>, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html">Amazon Web Services Systems Manager Run Command</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
        1178  +
    pub fn get_max_concurrency(&self) -> &::std::option::Option<::std::string::String> {
        1179  +
        &self.max_concurrency
        1180  +
    }
        1181  +
    /// <p>The maximum number of errors allowed before the system stops sending the command to additional targets. You can specify a number of errors, such as 10, or a percentage or errors, such as 10%. The default value is <code>0</code>. For more information about how to use <code>MaxErrors</code>, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html">Amazon Web Services Systems Manager Run Command</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
        1182  +
    pub fn max_errors(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1183  +
        self.max_errors = ::std::option::Option::Some(input.into());
        1184  +
        self
        1185  +
    }
        1186  +
    /// <p>The maximum number of errors allowed before the system stops sending the command to additional targets. You can specify a number of errors, such as 10, or a percentage or errors, such as 10%. The default value is <code>0</code>. For more information about how to use <code>MaxErrors</code>, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html">Amazon Web Services Systems Manager Run Command</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
        1187  +
    pub fn set_max_errors(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1188  +
        self.max_errors = input;
        1189  +
        self
        1190  +
    }
        1191  +
    /// <p>The maximum number of errors allowed before the system stops sending the command to additional targets. You can specify a number of errors, such as 10, or a percentage or errors, such as 10%. The default value is <code>0</code>. For more information about how to use <code>MaxErrors</code>, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html">Amazon Web Services Systems Manager Run Command</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
        1192  +
    pub fn get_max_errors(&self) -> &::std::option::Option<::std::string::String> {
        1193  +
        &self.max_errors
        1194  +
    }
        1195  +
    /// <p>The number of targets for the command.</p>
        1196  +
    pub fn target_count(mut self, input: i32) -> Self {
        1197  +
        self.target_count = ::std::option::Option::Some(input);
        1198  +
        self
        1199  +
    }
        1200  +
    /// <p>The number of targets for the command.</p>
        1201  +
    pub fn set_target_count(mut self, input: ::std::option::Option<i32>) -> Self {
        1202  +
        self.target_count = input;
        1203  +
        self
        1204  +
    }
        1205  +
    /// <p>The number of targets for the command.</p>
        1206  +
    pub fn get_target_count(&self) -> &::std::option::Option<i32> {
        1207  +
        &self.target_count
        1208  +
    }
        1209  +
    /// <p>The number of targets for which the command invocation reached a terminal state. Terminal states include the following: Success, Failed, Execution Timed Out, Delivery Timed Out, Cancelled, Terminated, or Undeliverable.</p>
        1210  +
    pub fn completed_count(mut self, input: i32) -> Self {
        1211  +
        self.completed_count = ::std::option::Option::Some(input);
        1212  +
        self
        1213  +
    }
        1214  +
    /// <p>The number of targets for which the command invocation reached a terminal state. Terminal states include the following: Success, Failed, Execution Timed Out, Delivery Timed Out, Cancelled, Terminated, or Undeliverable.</p>
        1215  +
    pub fn set_completed_count(mut self, input: ::std::option::Option<i32>) -> Self {
        1216  +
        self.completed_count = input;
        1217  +
        self
        1218  +
    }
        1219  +
    /// <p>The number of targets for which the command invocation reached a terminal state. Terminal states include the following: Success, Failed, Execution Timed Out, Delivery Timed Out, Cancelled, Terminated, or Undeliverable.</p>
        1220  +
    pub fn get_completed_count(&self) -> &::std::option::Option<i32> {
        1221  +
        &self.completed_count
        1222  +
    }
        1223  +
    /// <p>The number of targets for which the status is Failed or Execution Timed Out.</p>
        1224  +
    pub fn error_count(mut self, input: i32) -> Self {
        1225  +
        self.error_count = ::std::option::Option::Some(input);
        1226  +
        self
        1227  +
    }
        1228  +
    /// <p>The number of targets for which the status is Failed or Execution Timed Out.</p>
        1229  +
    pub fn set_error_count(mut self, input: ::std::option::Option<i32>) -> Self {
        1230  +
        self.error_count = input;
        1231  +
        self
        1232  +
    }
        1233  +
    /// <p>The number of targets for which the status is Failed or Execution Timed Out.</p>
        1234  +
    pub fn get_error_count(&self) -> &::std::option::Option<i32> {
        1235  +
        &self.error_count
        1236  +
    }
        1237  +
    /// <p>The number of targets for which the status is Delivery Timed Out.</p>
        1238  +
    pub fn delivery_timed_out_count(mut self, input: i32) -> Self {
        1239  +
        self.delivery_timed_out_count = ::std::option::Option::Some(input);
        1240  +
        self
        1241  +
    }
        1242  +
    /// <p>The number of targets for which the status is Delivery Timed Out.</p>
        1243  +
    pub fn set_delivery_timed_out_count(mut self, input: ::std::option::Option<i32>) -> Self {
        1244  +
        self.delivery_timed_out_count = input;
        1245  +
        self
        1246  +
    }
        1247  +
    /// <p>The number of targets for which the status is Delivery Timed Out.</p>
        1248  +
    pub fn get_delivery_timed_out_count(&self) -> &::std::option::Option<i32> {
        1249  +
        &self.delivery_timed_out_count
        1250  +
    }
        1251  +
    /// <p>The Identity and Access Management (IAM) service role that Run Command, a tool in Amazon Web Services Systems Manager, uses to act on your behalf when sending notifications about command status changes.</p>
        1252  +
    pub fn service_role(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1253  +
        self.service_role = ::std::option::Option::Some(input.into());
        1254  +
        self
        1255  +
    }
        1256  +
    /// <p>The Identity and Access Management (IAM) service role that Run Command, a tool in Amazon Web Services Systems Manager, uses to act on your behalf when sending notifications about command status changes.</p>
        1257  +
    pub fn set_service_role(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1258  +
        self.service_role = input;
        1259  +
        self
        1260  +
    }
        1261  +
    /// <p>The Identity and Access Management (IAM) service role that Run Command, a tool in Amazon Web Services Systems Manager, uses to act on your behalf when sending notifications about command status changes.</p>
        1262  +
    pub fn get_service_role(&self) -> &::std::option::Option<::std::string::String> {
        1263  +
        &self.service_role
        1264  +
    }
        1265  +
    /// <p>Configurations for sending notifications about command status changes.</p>
        1266  +
    pub fn notification_config(mut self, input: crate::types::NotificationConfig) -> Self {
        1267  +
        self.notification_config = ::std::option::Option::Some(input);
        1268  +
        self
        1269  +
    }
        1270  +
    /// <p>Configurations for sending notifications about command status changes.</p>
        1271  +
    pub fn set_notification_config(mut self, input: ::std::option::Option<crate::types::NotificationConfig>) -> Self {
        1272  +
        self.notification_config = input;
        1273  +
        self
        1274  +
    }
        1275  +
    /// <p>Configurations for sending notifications about command status changes.</p>
        1276  +
    pub fn get_notification_config(&self) -> &::std::option::Option<crate::types::NotificationConfig> {
        1277  +
        &self.notification_config
        1278  +
    }
        1279  +
    /// <p>Amazon CloudWatch Logs information where you want Amazon Web Services Systems Manager to send the command output.</p>
        1280  +
    pub fn cloud_watch_output_config(mut self, input: crate::types::CloudWatchOutputConfig) -> Self {
        1281  +
        self.cloud_watch_output_config = ::std::option::Option::Some(input);
        1282  +
        self
        1283  +
    }
        1284  +
    /// <p>Amazon CloudWatch Logs information where you want Amazon Web Services Systems Manager to send the command output.</p>
        1285  +
    pub fn set_cloud_watch_output_config(mut self, input: ::std::option::Option<crate::types::CloudWatchOutputConfig>) -> Self {
        1286  +
        self.cloud_watch_output_config = input;
        1287  +
        self
        1288  +
    }
        1289  +
    /// <p>Amazon CloudWatch Logs information where you want Amazon Web Services Systems Manager to send the command output.</p>
        1290  +
    pub fn get_cloud_watch_output_config(&self) -> &::std::option::Option<crate::types::CloudWatchOutputConfig> {
        1291  +
        &self.cloud_watch_output_config
        1292  +
    }
        1293  +
    /// <p>The <code>TimeoutSeconds</code> value specified for a command.</p>
        1294  +
    pub fn timeout_seconds(mut self, input: i32) -> Self {
        1295  +
        self.timeout_seconds = ::std::option::Option::Some(input);
        1296  +
        self
        1297  +
    }
        1298  +
    /// <p>The <code>TimeoutSeconds</code> value specified for a command.</p>
        1299  +
    pub fn set_timeout_seconds(mut self, input: ::std::option::Option<i32>) -> Self {
        1300  +
        self.timeout_seconds = input;
        1301  +
        self
        1302  +
    }
        1303  +
    /// <p>The <code>TimeoutSeconds</code> value specified for a command.</p>
        1304  +
    pub fn get_timeout_seconds(&self) -> &::std::option::Option<i32> {
        1305  +
        &self.timeout_seconds
        1306  +
    }
        1307  +
    /// <p>The details for the CloudWatch alarm applied to your command.</p>
        1308  +
    pub fn alarm_configuration(mut self, input: crate::types::AlarmConfiguration) -> Self {
        1309  +
        self.alarm_configuration = ::std::option::Option::Some(input);
        1310  +
        self
        1311  +
    }
        1312  +
    /// <p>The details for the CloudWatch alarm applied to your command.</p>
        1313  +
    pub fn set_alarm_configuration(mut self, input: ::std::option::Option<crate::types::AlarmConfiguration>) -> Self {
        1314  +
        self.alarm_configuration = input;
        1315  +
        self
        1316  +
    }
        1317  +
    /// <p>The details for the CloudWatch alarm applied to your command.</p>
        1318  +
    pub fn get_alarm_configuration(&self) -> &::std::option::Option<crate::types::AlarmConfiguration> {
        1319  +
        &self.alarm_configuration
        1320  +
    }
        1321  +
    /// Appends an item to `triggered_alarms`.
        1322  +
    ///
        1323  +
    /// To override the contents of this collection use [`set_triggered_alarms`](Self::set_triggered_alarms).
        1324  +
    ///
        1325  +
    /// <p>The CloudWatch alarm that was invoked by the command.</p>
        1326  +
    pub fn triggered_alarms(mut self, input: crate::types::AlarmStateInformation) -> Self {
        1327  +
        let mut v = self.triggered_alarms.unwrap_or_default();
        1328  +
        v.push(input);
        1329  +
        self.triggered_alarms = ::std::option::Option::Some(v);
        1330  +
        self
        1331  +
    }
        1332  +
    /// <p>The CloudWatch alarm that was invoked by the command.</p>
        1333  +
    pub fn set_triggered_alarms(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::AlarmStateInformation>>) -> Self {
        1334  +
        self.triggered_alarms = input;
        1335  +
        self
        1336  +
    }
        1337  +
    /// <p>The CloudWatch alarm that was invoked by the command.</p>
        1338  +
    pub fn get_triggered_alarms(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::AlarmStateInformation>> {
        1339  +
        &self.triggered_alarms
        1340  +
    }
        1341  +
    /// Consumes the builder and constructs a [`Command`](crate::types::Command).
        1342  +
    pub fn build(self) -> crate::types::Command {
        1343  +
        crate::types::Command {
        1344  +
            command_id: self.command_id,
        1345  +
            document_name: self.document_name,
        1346  +
            document_version: self.document_version,
        1347  +
            comment: self.comment,
        1348  +
            expires_after: self.expires_after,
        1349  +
            parameters: self.parameters,
        1350  +
            instance_ids: self.instance_ids,
        1351  +
            targets: self.targets,
        1352  +
            requested_date_time: self.requested_date_time,
        1353  +
            status: self.status,
        1354  +
            status_details: self.status_details,
        1355  +
            output_s3_region: self.output_s3_region,
        1356  +
            output_s3_bucket_name: self.output_s3_bucket_name,
        1357  +
            output_s3_key_prefix: self.output_s3_key_prefix,
        1358  +
            max_concurrency: self.max_concurrency,
        1359  +
            max_errors: self.max_errors,
        1360  +
            target_count: self.target_count.unwrap_or_default(),
        1361  +
            completed_count: self.completed_count.unwrap_or_default(),
        1362  +
            error_count: self.error_count.unwrap_or_default(),
        1363  +
            delivery_timed_out_count: self.delivery_timed_out_count.unwrap_or_default(),
        1364  +
            service_role: self.service_role,
        1365  +
            notification_config: self.notification_config,
        1366  +
            cloud_watch_output_config: self.cloud_watch_output_config,
        1367  +
            timeout_seconds: self.timeout_seconds,
        1368  +
            alarm_configuration: self.alarm_configuration,
        1369  +
            triggered_alarms: self.triggered_alarms,
        1370  +
        }
        1371  +
    }
        1372  +
}
        1373  +
impl ::std::fmt::Debug for CommandBuilder {
        1374  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        1375  +
        let mut formatter = f.debug_struct("CommandBuilder");
        1376  +
        formatter.field("command_id", &self.command_id);
        1377  +
        formatter.field("document_name", &self.document_name);
        1378  +
        formatter.field("document_version", &self.document_version);
        1379  +
        formatter.field("comment", &self.comment);
        1380  +
        formatter.field("expires_after", &self.expires_after);
        1381  +
        formatter.field("parameters", &"*** Sensitive Data Redacted ***");
        1382  +
        formatter.field("instance_ids", &self.instance_ids);
        1383  +
        formatter.field("targets", &self.targets);
        1384  +
        formatter.field("requested_date_time", &self.requested_date_time);
        1385  +
        formatter.field("status", &self.status);
        1386  +
        formatter.field("status_details", &self.status_details);
        1387  +
        formatter.field("output_s3_region", &self.output_s3_region);
        1388  +
        formatter.field("output_s3_bucket_name", &self.output_s3_bucket_name);
        1389  +
        formatter.field("output_s3_key_prefix", &self.output_s3_key_prefix);
        1390  +
        formatter.field("max_concurrency", &self.max_concurrency);
        1391  +
        formatter.field("max_errors", &self.max_errors);
        1392  +
        formatter.field("target_count", &self.target_count);
        1393  +
        formatter.field("completed_count", &self.completed_count);
        1394  +
        formatter.field("error_count", &self.error_count);
        1395  +
        formatter.field("delivery_timed_out_count", &self.delivery_timed_out_count);
        1396  +
        formatter.field("service_role", &self.service_role);
        1397  +
        formatter.field("notification_config", &self.notification_config);
        1398  +
        formatter.field("cloud_watch_output_config", &self.cloud_watch_output_config);
        1399  +
        formatter.field("timeout_seconds", &self.timeout_seconds);
        1400  +
        formatter.field("alarm_configuration", &self.alarm_configuration);
        1401  +
        formatter.field("triggered_alarms", &self.triggered_alarms);
        1402  +
        formatter.finish()
        1403  +
    }
        1404  +
}