AWS SDK

AWS SDK

rev. aa190e630077955f0bc8f58dee6a16530c1e0578 (ignoring whitespace)

Files changed:

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

@@ -0,1 +0,281 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>The temporary security credentials, which include an access key ID, a secret access key, and a security (or session) token.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
           6  +
pub struct Credentials {
           7  +
    /// <p>The access key ID that identifies the temporary security credentials.</p>
           8  +
    pub access_key_id: ::std::string::String,
           9  +
    /// <p>The secret access key that can be used to sign requests.</p>
          10  +
    pub secret_access_key: ::std::string::String,
          11  +
    /// <p>The token that users must pass to the service API to use the temporary credentials.</p>
          12  +
    pub session_token: ::std::string::String,
          13  +
    /// <p>The datetime on which the current credentials expire.</p>
          14  +
    pub expiration_time: ::aws_smithy_types::DateTime,
          15  +
}
          16  +
impl Credentials {
          17  +
    /// <p>The access key ID that identifies the temporary security credentials.</p>
          18  +
    pub fn access_key_id(&self) -> &str {
          19  +
        use std::ops::Deref;
          20  +
        self.access_key_id.deref()
          21  +
    }
          22  +
    /// <p>The secret access key that can be used to sign requests.</p>
          23  +
    pub fn secret_access_key(&self) -> &str {
          24  +
        use std::ops::Deref;
          25  +
        self.secret_access_key.deref()
          26  +
    }
          27  +
    /// <p>The token that users must pass to the service API to use the temporary credentials.</p>
          28  +
    pub fn session_token(&self) -> &str {
          29  +
        use std::ops::Deref;
          30  +
        self.session_token.deref()
          31  +
    }
          32  +
    /// <p>The datetime on which the current credentials expire.</p>
          33  +
    pub fn expiration_time(&self) -> &::aws_smithy_types::DateTime {
          34  +
        &self.expiration_time
          35  +
    }
          36  +
}
          37  +
impl ::std::fmt::Debug for Credentials {
          38  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
          39  +
        let mut formatter = f.debug_struct("Credentials");
          40  +
        formatter.field("access_key_id", &self.access_key_id);
          41  +
        formatter.field("secret_access_key", &"*** Sensitive Data Redacted ***");
          42  +
        formatter.field("session_token", &"*** Sensitive Data Redacted ***");
          43  +
        formatter.field("expiration_time", &self.expiration_time);
          44  +
        formatter.finish()
          45  +
    }
          46  +
}
          47  +
static CREDENTIALS_MEMBER_ACCESS_KEY_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          48  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Credentials$AccessKeyId", "com.amazonaws.ssm", "Credentials"),
          49  +
    ::aws_smithy_schema::ShapeType::String,
          50  +
    "AccessKeyId",
          51  +
    0,
          52  +
);
          53  +
static CREDENTIALS_MEMBER_SECRET_ACCESS_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          54  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Credentials$SecretAccessKey", "com.amazonaws.ssm", "Credentials"),
          55  +
    ::aws_smithy_schema::ShapeType::String,
          56  +
    "SecretAccessKey",
          57  +
    1,
          58  +
);
          59  +
static CREDENTIALS_MEMBER_SESSION_TOKEN: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          60  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Credentials$SessionToken", "com.amazonaws.ssm", "Credentials"),
          61  +
    ::aws_smithy_schema::ShapeType::String,
          62  +
    "SessionToken",
          63  +
    2,
          64  +
);
          65  +
static CREDENTIALS_MEMBER_EXPIRATION_TIME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          66  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Credentials$ExpirationTime", "com.amazonaws.ssm", "Credentials"),
          67  +
    ::aws_smithy_schema::ShapeType::Timestamp,
          68  +
    "ExpirationTime",
          69  +
    3,
          70  +
);
          71  +
static CREDENTIALS_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
          72  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Credentials", "com.amazonaws.ssm", "Credentials"),
          73  +
    ::aws_smithy_schema::ShapeType::Structure,
          74  +
    &[
          75  +
        &CREDENTIALS_MEMBER_ACCESS_KEY_ID,
          76  +
        &CREDENTIALS_MEMBER_SECRET_ACCESS_KEY,
          77  +
        &CREDENTIALS_MEMBER_SESSION_TOKEN,
          78  +
        &CREDENTIALS_MEMBER_EXPIRATION_TIME,
          79  +
    ],
          80  +
);
          81  +
impl Credentials {
          82  +
    /// The schema for this shape.
          83  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &CREDENTIALS_SCHEMA;
          84  +
}
          85  +
impl ::aws_smithy_schema::serde::SerializableStruct for Credentials {
          86  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
          87  +
    fn serialize_members(
          88  +
        &self,
          89  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
          90  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
          91  +
        {
          92  +
            let val = &self.access_key_id;
          93  +
            ser.write_string(&CREDENTIALS_MEMBER_ACCESS_KEY_ID, val)?;
          94  +
        }
          95  +
        {
          96  +
            let val = &self.secret_access_key;
          97  +
            ser.write_string(&CREDENTIALS_MEMBER_SECRET_ACCESS_KEY, val)?;
          98  +
        }
          99  +
        {
         100  +
            let val = &self.session_token;
         101  +
            ser.write_string(&CREDENTIALS_MEMBER_SESSION_TOKEN, val)?;
         102  +
        }
         103  +
        {
         104  +
            let val = &self.expiration_time;
         105  +
            ser.write_timestamp(&CREDENTIALS_MEMBER_EXPIRATION_TIME, val)?;
         106  +
        }
         107  +
        Ok(())
         108  +
    }
         109  +
}
         110  +
impl Credentials {
         111  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         112  +
    pub fn deserialize(
         113  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         114  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         115  +
        #[allow(unused_variables, unused_mut)]
         116  +
        let mut builder = Self::builder();
         117  +
        #[allow(
         118  +
            unused_variables,
         119  +
            unreachable_code,
         120  +
            clippy::single_match,
         121  +
            clippy::match_single_binding,
         122  +
            clippy::diverging_sub_expression
         123  +
        )]
         124  +
        deserializer.read_struct(&CREDENTIALS_SCHEMA, &mut |member, deser| {
         125  +
            match member.member_index() {
         126  +
                Some(0) => {
         127  +
                    builder.access_key_id = Some(deser.read_string(member)?);
         128  +
                }
         129  +
                Some(1) => {
         130  +
                    builder.secret_access_key = Some(deser.read_string(member)?);
         131  +
                }
         132  +
                Some(2) => {
         133  +
                    builder.session_token = Some(deser.read_string(member)?);
         134  +
                }
         135  +
                Some(3) => {
         136  +
                    builder.expiration_time = Some(deser.read_timestamp(member)?);
         137  +
                }
         138  +
                _ => {}
         139  +
            }
         140  +
            Ok(())
         141  +
        })?;
         142  +
        builder.access_key_id = builder.access_key_id.or(Some(String::new()));
         143  +
        builder.secret_access_key = builder.secret_access_key.or(Some(String::new()));
         144  +
        builder.session_token = builder.session_token.or(Some(String::new()));
         145  +
        builder.expiration_time = builder.expiration_time.or(Some(::aws_smithy_types::DateTime::from_secs(0)));
         146  +
        builder.build().map_err(|e| aws_smithy_schema::serde::SerdeError::custom(e.to_string()))
         147  +
    }
         148  +
}
         149  +
impl Credentials {
         150  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         151  +
    pub fn deserialize_with_response(
         152  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         153  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         154  +
        _status: u16,
         155  +
        _body: &[u8],
         156  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         157  +
        Self::deserialize(deserializer)
         158  +
    }
         159  +
}
         160  +
impl Credentials {
         161  +
    /// Creates a new builder-style object to manufacture [`Credentials`](crate::types::Credentials).
         162  +
    pub fn builder() -> crate::types::builders::CredentialsBuilder {
         163  +
        crate::types::builders::CredentialsBuilder::default()
         164  +
    }
         165  +
}
         166  +
         167  +
/// A builder for [`Credentials`](crate::types::Credentials).
         168  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
         169  +
#[non_exhaustive]
         170  +
pub struct CredentialsBuilder {
         171  +
    pub(crate) access_key_id: ::std::option::Option<::std::string::String>,
         172  +
    pub(crate) secret_access_key: ::std::option::Option<::std::string::String>,
         173  +
    pub(crate) session_token: ::std::option::Option<::std::string::String>,
         174  +
    pub(crate) expiration_time: ::std::option::Option<::aws_smithy_types::DateTime>,
         175  +
}
         176  +
impl CredentialsBuilder {
         177  +
    /// <p>The access key ID that identifies the temporary security credentials.</p>
         178  +
    /// This field is required.
         179  +
    pub fn access_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         180  +
        self.access_key_id = ::std::option::Option::Some(input.into());
         181  +
        self
         182  +
    }
         183  +
    /// <p>The access key ID that identifies the temporary security credentials.</p>
         184  +
    pub fn set_access_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         185  +
        self.access_key_id = input;
         186  +
        self
         187  +
    }
         188  +
    /// <p>The access key ID that identifies the temporary security credentials.</p>
         189  +
    pub fn get_access_key_id(&self) -> &::std::option::Option<::std::string::String> {
         190  +
        &self.access_key_id
         191  +
    }
         192  +
    /// <p>The secret access key that can be used to sign requests.</p>
         193  +
    /// This field is required.
         194  +
    pub fn secret_access_key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         195  +
        self.secret_access_key = ::std::option::Option::Some(input.into());
         196  +
        self
         197  +
    }
         198  +
    /// <p>The secret access key that can be used to sign requests.</p>
         199  +
    pub fn set_secret_access_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         200  +
        self.secret_access_key = input;
         201  +
        self
         202  +
    }
         203  +
    /// <p>The secret access key that can be used to sign requests.</p>
         204  +
    pub fn get_secret_access_key(&self) -> &::std::option::Option<::std::string::String> {
         205  +
        &self.secret_access_key
         206  +
    }
         207  +
    /// <p>The token that users must pass to the service API to use the temporary credentials.</p>
         208  +
    /// This field is required.
         209  +
    pub fn session_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         210  +
        self.session_token = ::std::option::Option::Some(input.into());
         211  +
        self
         212  +
    }
         213  +
    /// <p>The token that users must pass to the service API to use the temporary credentials.</p>
         214  +
    pub fn set_session_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         215  +
        self.session_token = input;
         216  +
        self
         217  +
    }
         218  +
    /// <p>The token that users must pass to the service API to use the temporary credentials.</p>
         219  +
    pub fn get_session_token(&self) -> &::std::option::Option<::std::string::String> {
         220  +
        &self.session_token
         221  +
    }
         222  +
    /// <p>The datetime on which the current credentials expire.</p>
         223  +
    /// This field is required.
         224  +
    pub fn expiration_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         225  +
        self.expiration_time = ::std::option::Option::Some(input);
         226  +
        self
         227  +
    }
         228  +
    /// <p>The datetime on which the current credentials expire.</p>
         229  +
    pub fn set_expiration_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         230  +
        self.expiration_time = input;
         231  +
        self
         232  +
    }
         233  +
    /// <p>The datetime on which the current credentials expire.</p>
         234  +
    pub fn get_expiration_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         235  +
        &self.expiration_time
         236  +
    }
         237  +
    /// Consumes the builder and constructs a [`Credentials`](crate::types::Credentials).
         238  +
    /// This method will fail if any of the following fields are not set:
         239  +
    /// - [`access_key_id`](crate::types::builders::CredentialsBuilder::access_key_id)
         240  +
    /// - [`secret_access_key`](crate::types::builders::CredentialsBuilder::secret_access_key)
         241  +
    /// - [`session_token`](crate::types::builders::CredentialsBuilder::session_token)
         242  +
    /// - [`expiration_time`](crate::types::builders::CredentialsBuilder::expiration_time)
         243  +
    pub fn build(self) -> ::std::result::Result<crate::types::Credentials, ::aws_smithy_types::error::operation::BuildError> {
         244  +
        ::std::result::Result::Ok(crate::types::Credentials {
         245  +
            access_key_id: self.access_key_id.ok_or_else(|| {
         246  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
         247  +
                    "access_key_id",
         248  +
                    "access_key_id was not specified but it is required when building Credentials",
         249  +
                )
         250  +
            })?,
         251  +
            secret_access_key: self.secret_access_key.ok_or_else(|| {
         252  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
         253  +
                    "secret_access_key",
         254  +
                    "secret_access_key was not specified but it is required when building Credentials",
         255  +
                )
         256  +
            })?,
         257  +
            session_token: self.session_token.ok_or_else(|| {
         258  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
         259  +
                    "session_token",
         260  +
                    "session_token was not specified but it is required when building Credentials",
         261  +
                )
         262  +
            })?,
         263  +
            expiration_time: self.expiration_time.ok_or_else(|| {
         264  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
         265  +
                    "expiration_time",
         266  +
                    "expiration_time was not specified but it is required when building Credentials",
         267  +
                )
         268  +
            })?,
         269  +
        })
         270  +
    }
         271  +
}
         272  +
impl ::std::fmt::Debug for CredentialsBuilder {
         273  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         274  +
        let mut formatter = f.debug_struct("CredentialsBuilder");
         275  +
        formatter.field("access_key_id", &self.access_key_id);
         276  +
        formatter.field("secret_access_key", &"*** Sensitive Data Redacted ***");
         277  +
        formatter.field("session_token", &"*** Sensitive Data Redacted ***");
         278  +
        formatter.field("expiration_time", &self.expiration_time);
         279  +
        formatter.finish()
         280  +
    }
         281  +
}

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

@@ -0,1 +0,194 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>Filter for the DescribeActivation API.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           6  +
pub struct DescribeActivationsFilter {
           7  +
    /// <p>The name of the filter.</p>
           8  +
    pub filter_key: ::std::option::Option<crate::types::DescribeActivationsFilterKeys>,
           9  +
    /// <p>The filter values.</p>
          10  +
    pub filter_values: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
          11  +
}
          12  +
impl DescribeActivationsFilter {
          13  +
    /// <p>The name of the filter.</p>
          14  +
    pub fn filter_key(&self) -> ::std::option::Option<&crate::types::DescribeActivationsFilterKeys> {
          15  +
        self.filter_key.as_ref()
          16  +
    }
          17  +
    /// <p>The filter values.</p>
          18  +
    ///
          19  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.filter_values.is_none()`.
          20  +
    pub fn filter_values(&self) -> &[::std::string::String] {
          21  +
        self.filter_values.as_deref().unwrap_or_default()
          22  +
    }
          23  +
}
          24  +
static DESCRIBEACTIVATIONSFILTER_MEMBER_FILTER_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          25  +
    ::aws_smithy_schema::ShapeId::from_parts(
          26  +
        "com.amazonaws.ssm#DescribeActivationsFilter$FilterKey",
          27  +
        "com.amazonaws.ssm",
          28  +
        "DescribeActivationsFilter",
          29  +
    ),
          30  +
    ::aws_smithy_schema::ShapeType::String,
          31  +
    "FilterKey",
          32  +
    0,
          33  +
);
          34  +
static DESCRIBEACTIVATIONSFILTER_MEMBER_FILTER_VALUES_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          35  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#StringList$member", "com.amazonaws.ssm", "StringList"),
          36  +
    ::aws_smithy_schema::ShapeType::String,
          37  +
    "member",
          38  +
    0,
          39  +
);
          40  +
static DESCRIBEACTIVATIONSFILTER_MEMBER_FILTER_VALUES: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          41  +
    ::aws_smithy_schema::ShapeId::from_parts(
          42  +
        "com.amazonaws.ssm#DescribeActivationsFilter$FilterValues",
          43  +
        "com.amazonaws.ssm",
          44  +
        "DescribeActivationsFilter",
          45  +
    ),
          46  +
    ::aws_smithy_schema::ShapeType::List,
          47  +
    "FilterValues",
          48  +
    1,
          49  +
)
          50  +
.with_list_member(&DESCRIBEACTIVATIONSFILTER_MEMBER_FILTER_VALUES_MEMBER);
          51  +
static DESCRIBEACTIVATIONSFILTER_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
          52  +
    ::aws_smithy_schema::ShapeId::from_parts(
          53  +
        "com.amazonaws.ssm#DescribeActivationsFilter",
          54  +
        "com.amazonaws.ssm",
          55  +
        "DescribeActivationsFilter",
          56  +
    ),
          57  +
    ::aws_smithy_schema::ShapeType::Structure,
          58  +
    &[
          59  +
        &DESCRIBEACTIVATIONSFILTER_MEMBER_FILTER_KEY,
          60  +
        &DESCRIBEACTIVATIONSFILTER_MEMBER_FILTER_VALUES,
          61  +
    ],
          62  +
);
          63  +
impl DescribeActivationsFilter {
          64  +
    /// The schema for this shape.
          65  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &DESCRIBEACTIVATIONSFILTER_SCHEMA;
          66  +
}
          67  +
impl ::aws_smithy_schema::serde::SerializableStruct for DescribeActivationsFilter {
          68  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
          69  +
    fn serialize_members(
          70  +
        &self,
          71  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
          72  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
          73  +
        if let Some(ref val) = self.filter_key {
          74  +
            ser.write_string(&DESCRIBEACTIVATIONSFILTER_MEMBER_FILTER_KEY, val.as_str())?;
          75  +
        }
          76  +
        if let Some(ref val) = self.filter_values {
          77  +
            ser.write_list(
          78  +
                &DESCRIBEACTIVATIONSFILTER_MEMBER_FILTER_VALUES,
          79  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
          80  +
                    for item in val {
          81  +
                        ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
          82  +
                    }
          83  +
                    Ok(())
          84  +
                },
          85  +
            )?;
          86  +
        }
          87  +
        Ok(())
          88  +
    }
          89  +
}
          90  +
impl DescribeActivationsFilter {
          91  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
          92  +
    pub fn deserialize(
          93  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          94  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          95  +
        #[allow(unused_variables, unused_mut)]
          96  +
        let mut builder = Self::builder();
          97  +
        #[allow(
          98  +
            unused_variables,
          99  +
            unreachable_code,
         100  +
            clippy::single_match,
         101  +
            clippy::match_single_binding,
         102  +
            clippy::diverging_sub_expression
         103  +
        )]
         104  +
        deserializer.read_struct(&DESCRIBEACTIVATIONSFILTER_SCHEMA, &mut |member, deser| {
         105  +
            match member.member_index() {
         106  +
                Some(0) => {
         107  +
                    if deser.is_null() {
         108  +
                        deser.read_null()?;
         109  +
                    } else {
         110  +
                        builder.filter_key = Some(crate::types::DescribeActivationsFilterKeys::from(deser.read_string(member)?.as_str()));
         111  +
                    }
         112  +
                }
         113  +
                Some(1) => {
         114  +
                    if deser.is_null() {
         115  +
                        deser.read_null()?;
         116  +
                    } else {
         117  +
                        builder.filter_values = Some(deser.read_string_list(member)?);
         118  +
                    }
         119  +
                }
         120  +
                _ => {}
         121  +
            }
         122  +
            Ok(())
         123  +
        })?;
         124  +
        Ok(builder.build())
         125  +
    }
         126  +
}
         127  +
impl DescribeActivationsFilter {
         128  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         129  +
    pub fn deserialize_with_response(
         130  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         131  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         132  +
        _status: u16,
         133  +
        _body: &[u8],
         134  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         135  +
        Self::deserialize(deserializer)
         136  +
    }
         137  +
}
         138  +
impl DescribeActivationsFilter {
         139  +
    /// Creates a new builder-style object to manufacture [`DescribeActivationsFilter`](crate::types::DescribeActivationsFilter).
         140  +
    pub fn builder() -> crate::types::builders::DescribeActivationsFilterBuilder {
         141  +
        crate::types::builders::DescribeActivationsFilterBuilder::default()
         142  +
    }
         143  +
}
         144  +
         145  +
/// A builder for [`DescribeActivationsFilter`](crate::types::DescribeActivationsFilter).
         146  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         147  +
#[non_exhaustive]
         148  +
pub struct DescribeActivationsFilterBuilder {
         149  +
    pub(crate) filter_key: ::std::option::Option<crate::types::DescribeActivationsFilterKeys>,
         150  +
    pub(crate) filter_values: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         151  +
}
         152  +
impl DescribeActivationsFilterBuilder {
         153  +
    /// <p>The name of the filter.</p>
         154  +
    pub fn filter_key(mut self, input: crate::types::DescribeActivationsFilterKeys) -> Self {
         155  +
        self.filter_key = ::std::option::Option::Some(input);
         156  +
        self
         157  +
    }
         158  +
    /// <p>The name of the filter.</p>
         159  +
    pub fn set_filter_key(mut self, input: ::std::option::Option<crate::types::DescribeActivationsFilterKeys>) -> Self {
         160  +
        self.filter_key = input;
         161  +
        self
         162  +
    }
         163  +
    /// <p>The name of the filter.</p>
         164  +
    pub fn get_filter_key(&self) -> &::std::option::Option<crate::types::DescribeActivationsFilterKeys> {
         165  +
        &self.filter_key
         166  +
    }
         167  +
    /// Appends an item to `filter_values`.
         168  +
    ///
         169  +
    /// To override the contents of this collection use [`set_filter_values`](Self::set_filter_values).
         170  +
    ///
         171  +
    /// <p>The filter values.</p>
         172  +
    pub fn filter_values(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         173  +
        let mut v = self.filter_values.unwrap_or_default();
         174  +
        v.push(input.into());
         175  +
        self.filter_values = ::std::option::Option::Some(v);
         176  +
        self
         177  +
    }
         178  +
    /// <p>The filter values.</p>
         179  +
    pub fn set_filter_values(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
         180  +
        self.filter_values = input;
         181  +
        self
         182  +
    }
         183  +
    /// <p>The filter values.</p>
         184  +
    pub fn get_filter_values(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
         185  +
        &self.filter_values
         186  +
    }
         187  +
    /// Consumes the builder and constructs a [`DescribeActivationsFilter`](crate::types::DescribeActivationsFilter).
         188  +
    pub fn build(self) -> crate::types::DescribeActivationsFilter {
         189  +
        crate::types::DescribeActivationsFilter {
         190  +
            filter_key: self.filter_key,
         191  +
            filter_values: self.filter_values,
         192  +
        }
         193  +
    }
         194  +
}

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

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

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

@@ -0,1 +0,214 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>A default version of a document.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           6  +
pub struct DocumentDefaultVersionDescription {
           7  +
    /// <p>The name of the document.</p>
           8  +
    pub name: ::std::option::Option<::std::string::String>,
           9  +
    /// <p>The default version of the document.</p>
          10  +
    pub default_version: ::std::option::Option<::std::string::String>,
          11  +
    /// <p>The default version of the artifact associated with the document.</p>
          12  +
    pub default_version_name: ::std::option::Option<::std::string::String>,
          13  +
}
          14  +
impl DocumentDefaultVersionDescription {
          15  +
    /// <p>The name of the document.</p>
          16  +
    pub fn name(&self) -> ::std::option::Option<&str> {
          17  +
        self.name.as_deref()
          18  +
    }
          19  +
    /// <p>The default version of the document.</p>
          20  +
    pub fn default_version(&self) -> ::std::option::Option<&str> {
          21  +
        self.default_version.as_deref()
          22  +
    }
          23  +
    /// <p>The default version of the artifact associated with the document.</p>
          24  +
    pub fn default_version_name(&self) -> ::std::option::Option<&str> {
          25  +
        self.default_version_name.as_deref()
          26  +
    }
          27  +
}
          28  +
static DOCUMENTDEFAULTVERSIONDESCRIPTION_MEMBER_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          29  +
    ::aws_smithy_schema::ShapeId::from_parts(
          30  +
        "com.amazonaws.ssm#DocumentDefaultVersionDescription$Name",
          31  +
        "com.amazonaws.ssm",
          32  +
        "DocumentDefaultVersionDescription",
          33  +
    ),
          34  +
    ::aws_smithy_schema::ShapeType::String,
          35  +
    "Name",
          36  +
    0,
          37  +
);
          38  +
static DOCUMENTDEFAULTVERSIONDESCRIPTION_MEMBER_DEFAULT_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          39  +
    ::aws_smithy_schema::ShapeId::from_parts(
          40  +
        "com.amazonaws.ssm#DocumentDefaultVersionDescription$DefaultVersion",
          41  +
        "com.amazonaws.ssm",
          42  +
        "DocumentDefaultVersionDescription",
          43  +
    ),
          44  +
    ::aws_smithy_schema::ShapeType::String,
          45  +
    "DefaultVersion",
          46  +
    1,
          47  +
);
          48  +
static DOCUMENTDEFAULTVERSIONDESCRIPTION_MEMBER_DEFAULT_VERSION_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          49  +
    ::aws_smithy_schema::ShapeId::from_parts(
          50  +
        "com.amazonaws.ssm#DocumentDefaultVersionDescription$DefaultVersionName",
          51  +
        "com.amazonaws.ssm",
          52  +
        "DocumentDefaultVersionDescription",
          53  +
    ),
          54  +
    ::aws_smithy_schema::ShapeType::String,
          55  +
    "DefaultVersionName",
          56  +
    2,
          57  +
);
          58  +
static DOCUMENTDEFAULTVERSIONDESCRIPTION_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
          59  +
    ::aws_smithy_schema::ShapeId::from_parts(
          60  +
        "com.amazonaws.ssm#DocumentDefaultVersionDescription",
          61  +
        "com.amazonaws.ssm",
          62  +
        "DocumentDefaultVersionDescription",
          63  +
    ),
          64  +
    ::aws_smithy_schema::ShapeType::Structure,
          65  +
    &[
          66  +
        &DOCUMENTDEFAULTVERSIONDESCRIPTION_MEMBER_NAME,
          67  +
        &DOCUMENTDEFAULTVERSIONDESCRIPTION_MEMBER_DEFAULT_VERSION,
          68  +
        &DOCUMENTDEFAULTVERSIONDESCRIPTION_MEMBER_DEFAULT_VERSION_NAME,
          69  +
    ],
          70  +
);
          71  +
impl DocumentDefaultVersionDescription {
          72  +
    /// The schema for this shape.
          73  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &DOCUMENTDEFAULTVERSIONDESCRIPTION_SCHEMA;
          74  +
}
          75  +
impl ::aws_smithy_schema::serde::SerializableStruct for DocumentDefaultVersionDescription {
          76  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
          77  +
    fn serialize_members(
          78  +
        &self,
          79  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
          80  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
          81  +
        if let Some(ref val) = self.name {
          82  +
            ser.write_string(&DOCUMENTDEFAULTVERSIONDESCRIPTION_MEMBER_NAME, val)?;
          83  +
        }
          84  +
        if let Some(ref val) = self.default_version {
          85  +
            ser.write_string(&DOCUMENTDEFAULTVERSIONDESCRIPTION_MEMBER_DEFAULT_VERSION, val)?;
          86  +
        }
          87  +
        if let Some(ref val) = self.default_version_name {
          88  +
            ser.write_string(&DOCUMENTDEFAULTVERSIONDESCRIPTION_MEMBER_DEFAULT_VERSION_NAME, val)?;
          89  +
        }
          90  +
        Ok(())
          91  +
    }
          92  +
}
          93  +
impl DocumentDefaultVersionDescription {
          94  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
          95  +
    pub fn deserialize(
          96  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          97  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          98  +
        #[allow(unused_variables, unused_mut)]
          99  +
        let mut builder = Self::builder();
         100  +
        #[allow(
         101  +
            unused_variables,
         102  +
            unreachable_code,
         103  +
            clippy::single_match,
         104  +
            clippy::match_single_binding,
         105  +
            clippy::diverging_sub_expression
         106  +
        )]
         107  +
        deserializer.read_struct(&DOCUMENTDEFAULTVERSIONDESCRIPTION_SCHEMA, &mut |member, deser| {
         108  +
            match member.member_index() {
         109  +
                Some(0) => {
         110  +
                    if deser.is_null() {
         111  +
                        deser.read_null()?;
         112  +
                    } else {
         113  +
                        builder.name = Some(deser.read_string(member)?);
         114  +
                    }
         115  +
                }
         116  +
                Some(1) => {
         117  +
                    if deser.is_null() {
         118  +
                        deser.read_null()?;
         119  +
                    } else {
         120  +
                        builder.default_version = Some(deser.read_string(member)?);
         121  +
                    }
         122  +
                }
         123  +
                Some(2) => {
         124  +
                    if deser.is_null() {
         125  +
                        deser.read_null()?;
         126  +
                    } else {
         127  +
                        builder.default_version_name = Some(deser.read_string(member)?);
         128  +
                    }
         129  +
                }
         130  +
                _ => {}
         131  +
            }
         132  +
            Ok(())
         133  +
        })?;
         134  +
        Ok(builder.build())
         135  +
    }
         136  +
}
         137  +
impl DocumentDefaultVersionDescription {
         138  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         139  +
    pub fn deserialize_with_response(
         140  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         141  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         142  +
        _status: u16,
         143  +
        _body: &[u8],
         144  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         145  +
        Self::deserialize(deserializer)
         146  +
    }
         147  +
}
         148  +
impl DocumentDefaultVersionDescription {
         149  +
    /// Creates a new builder-style object to manufacture [`DocumentDefaultVersionDescription`](crate::types::DocumentDefaultVersionDescription).
         150  +
    pub fn builder() -> crate::types::builders::DocumentDefaultVersionDescriptionBuilder {
         151  +
        crate::types::builders::DocumentDefaultVersionDescriptionBuilder::default()
         152  +
    }
         153  +
}
         154  +
         155  +
/// A builder for [`DocumentDefaultVersionDescription`](crate::types::DocumentDefaultVersionDescription).
         156  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         157  +
#[non_exhaustive]
         158  +
pub struct DocumentDefaultVersionDescriptionBuilder {
         159  +
    pub(crate) name: ::std::option::Option<::std::string::String>,
         160  +
    pub(crate) default_version: ::std::option::Option<::std::string::String>,
         161  +
    pub(crate) default_version_name: ::std::option::Option<::std::string::String>,
         162  +
}
         163  +
impl DocumentDefaultVersionDescriptionBuilder {
         164  +
    /// <p>The name of the document.</p>
         165  +
    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         166  +
        self.name = ::std::option::Option::Some(input.into());
         167  +
        self
         168  +
    }
         169  +
    /// <p>The name of the document.</p>
         170  +
    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         171  +
        self.name = input;
         172  +
        self
         173  +
    }
         174  +
    /// <p>The name of the document.</p>
         175  +
    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
         176  +
        &self.name
         177  +
    }
         178  +
    /// <p>The default version of the document.</p>
         179  +
    pub fn default_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         180  +
        self.default_version = ::std::option::Option::Some(input.into());
         181  +
        self
         182  +
    }
         183  +
    /// <p>The default version of the document.</p>
         184  +
    pub fn set_default_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         185  +
        self.default_version = input;
         186  +
        self
         187  +
    }
         188  +
    /// <p>The default version of the document.</p>
         189  +
    pub fn get_default_version(&self) -> &::std::option::Option<::std::string::String> {
         190  +
        &self.default_version
         191  +
    }
         192  +
    /// <p>The default version of the artifact associated with the document.</p>
         193  +
    pub fn default_version_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         194  +
        self.default_version_name = ::std::option::Option::Some(input.into());
         195  +
        self
         196  +
    }
         197  +
    /// <p>The default version of the artifact associated with the document.</p>
         198  +
    pub fn set_default_version_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         199  +
        self.default_version_name = input;
         200  +
        self
         201  +
    }
         202  +
    /// <p>The default version of the artifact associated with the document.</p>
         203  +
    pub fn get_default_version_name(&self) -> &::std::option::Option<::std::string::String> {
         204  +
        &self.default_version_name
         205  +
    }
         206  +
    /// Consumes the builder and constructs a [`DocumentDefaultVersionDescription`](crate::types::DocumentDefaultVersionDescription).
         207  +
    pub fn build(self) -> crate::types::DocumentDefaultVersionDescription {
         208  +
        crate::types::DocumentDefaultVersionDescription {
         209  +
            name: self.name,
         210  +
            default_version: self.default_version,
         211  +
            default_version_name: self.default_version_name,
         212  +
        }
         213  +
    }
         214  +
}

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

@@ -0,1 +0,1611 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>Describes an Amazon Web Services Systems Manager document (SSM document).</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           6  +
pub struct DocumentDescription {
           7  +
    /// <p>The SHA1 hash of the document, which you can use for verification.</p>
           8  +
    pub sha1: ::std::option::Option<::std::string::String>,
           9  +
    /// <p>The Sha256 or Sha1 hash created by the system when the document was created.</p><note>
          10  +
    /// <p>Sha1 hashes have been deprecated.</p>
          11  +
    /// </note>
          12  +
    pub hash: ::std::option::Option<::std::string::String>,
          13  +
    /// <p>The hash type of the document. Valid values include <code>Sha256</code> or <code>Sha1</code>.</p><note>
          14  +
    /// <p>Sha1 hashes have been deprecated.</p>
          15  +
    /// </note>
          16  +
    pub hash_type: ::std::option::Option<crate::types::DocumentHashType>,
          17  +
    /// <p>The name of the SSM document.</p>
          18  +
    pub name: ::std::option::Option<::std::string::String>,
          19  +
    /// <p>The friendly name of the SSM document. This value can differ for each version of the document. If you want to update this value, see <code>UpdateDocument</code>.</p>
          20  +
    pub display_name: ::std::option::Option<::std::string::String>,
          21  +
    /// <p>The version of the artifact associated with the document.</p>
          22  +
    pub version_name: ::std::option::Option<::std::string::String>,
          23  +
    /// <p>The Amazon Web Services user that created the document.</p>
          24  +
    pub owner: ::std::option::Option<::std::string::String>,
          25  +
    /// <p>The date when the document was created.</p>
          26  +
    pub created_date: ::std::option::Option<::aws_smithy_types::DateTime>,
          27  +
    /// <p>The status of the SSM document.</p>
          28  +
    pub status: ::std::option::Option<crate::types::DocumentStatus>,
          29  +
    /// <p>A message returned by Amazon Web Services Systems Manager that explains the <code>Status</code> value. For example, a <code>Failed</code> status might be explained by the <code>StatusInformation</code> message, "The specified S3 bucket doesn't exist. Verify that the URL of the S3 bucket is correct."</p>
          30  +
    pub status_information: ::std::option::Option<::std::string::String>,
          31  +
    /// <p>The document version.</p>
          32  +
    pub document_version: ::std::option::Option<::std::string::String>,
          33  +
    /// <p>A description of the document.</p>
          34  +
    pub description: ::std::option::Option<::std::string::String>,
          35  +
    /// <p>A description of the parameters for a document.</p>
          36  +
    pub parameters: ::std::option::Option<::std::vec::Vec<crate::types::DocumentParameter>>,
          37  +
    /// <p>The list of operating system (OS) platforms compatible with this SSM document.</p>
          38  +
    pub platform_types: ::std::option::Option<::std::vec::Vec<crate::types::PlatformType>>,
          39  +
    /// <p>The type of document.</p>
          40  +
    pub document_type: ::std::option::Option<crate::types::DocumentType>,
          41  +
    /// <p>The schema version.</p>
          42  +
    pub schema_version: ::std::option::Option<::std::string::String>,
          43  +
    /// <p>The latest version of the document.</p>
          44  +
    pub latest_version: ::std::option::Option<::std::string::String>,
          45  +
    /// <p>The default version.</p>
          46  +
    pub default_version: ::std::option::Option<::std::string::String>,
          47  +
    /// <p>The document format, either JSON or YAML.</p>
          48  +
    pub document_format: ::std::option::Option<crate::types::DocumentFormat>,
          49  +
    /// <p>The target type which defines the kinds of resources the document can run on. For example, <code>/AWS::EC2::Instance</code>. For a list of valid resource types, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon Web Services resource and property types reference</a> in the <i>CloudFormation User Guide</i>.</p>
          50  +
    pub target_type: ::std::option::Option<::std::string::String>,
          51  +
    /// <p>The tags, or metadata, that have been applied to the document.</p>
          52  +
    pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
          53  +
    /// <p>Details about the document attachments, including names, locations, sizes, and so on.</p>
          54  +
    pub attachments_information: ::std::option::Option<::std::vec::Vec<crate::types::AttachmentInformation>>,
          55  +
    /// <p>A list of SSM documents required by a document. For example, an <code>ApplicationConfiguration</code> document requires an <code>ApplicationConfigurationSchema</code> document.</p>
          56  +
    pub requires: ::std::option::Option<::std::vec::Vec<crate::types::DocumentRequires>>,
          57  +
    /// <p>The user in your organization who created the document.</p>
          58  +
    pub author: ::std::option::Option<::std::string::String>,
          59  +
    /// <p>Details about the review of a document.</p>
          60  +
    pub review_information: ::std::option::Option<::std::vec::Vec<crate::types::ReviewInformation>>,
          61  +
    /// <p>The version of the document currently approved for use in the organization.</p>
          62  +
    pub approved_version: ::std::option::Option<::std::string::String>,
          63  +
    /// <p>The version of the document that is currently under review.</p>
          64  +
    pub pending_review_version: ::std::option::Option<::std::string::String>,
          65  +
    /// <p>The current status of the review.</p>
          66  +
    pub review_status: ::std::option::Option<crate::types::ReviewStatus>,
          67  +
    /// <p>The classification of a document to help you identify and categorize its use.</p>
          68  +
    pub category: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
          69  +
    /// <p>The value that identifies a document's category.</p>
          70  +
    pub category_enum: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
          71  +
}
          72  +
impl DocumentDescription {
          73  +
    /// <p>The SHA1 hash of the document, which you can use for verification.</p>
          74  +
    pub fn sha1(&self) -> ::std::option::Option<&str> {
          75  +
        self.sha1.as_deref()
          76  +
    }
          77  +
    /// <p>The Sha256 or Sha1 hash created by the system when the document was created.</p><note>
          78  +
    /// <p>Sha1 hashes have been deprecated.</p>
          79  +
    /// </note>
          80  +
    pub fn hash(&self) -> ::std::option::Option<&str> {
          81  +
        self.hash.as_deref()
          82  +
    }
          83  +
    /// <p>The hash type of the document. Valid values include <code>Sha256</code> or <code>Sha1</code>.</p><note>
          84  +
    /// <p>Sha1 hashes have been deprecated.</p>
          85  +
    /// </note>
          86  +
    pub fn hash_type(&self) -> ::std::option::Option<&crate::types::DocumentHashType> {
          87  +
        self.hash_type.as_ref()
          88  +
    }
          89  +
    /// <p>The name of the SSM document.</p>
          90  +
    pub fn name(&self) -> ::std::option::Option<&str> {
          91  +
        self.name.as_deref()
          92  +
    }
          93  +
    /// <p>The friendly name of the SSM document. This value can differ for each version of the document. If you want to update this value, see <code>UpdateDocument</code>.</p>
          94  +
    pub fn display_name(&self) -> ::std::option::Option<&str> {
          95  +
        self.display_name.as_deref()
          96  +
    }
          97  +
    /// <p>The version of the artifact associated with the document.</p>
          98  +
    pub fn version_name(&self) -> ::std::option::Option<&str> {
          99  +
        self.version_name.as_deref()
         100  +
    }
         101  +
    /// <p>The Amazon Web Services user that created the document.</p>
         102  +
    pub fn owner(&self) -> ::std::option::Option<&str> {
         103  +
        self.owner.as_deref()
         104  +
    }
         105  +
    /// <p>The date when the document was created.</p>
         106  +
    pub fn created_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         107  +
        self.created_date.as_ref()
         108  +
    }
         109  +
    /// <p>The status of the SSM document.</p>
         110  +
    pub fn status(&self) -> ::std::option::Option<&crate::types::DocumentStatus> {
         111  +
        self.status.as_ref()
         112  +
    }
         113  +
    /// <p>A message returned by Amazon Web Services Systems Manager that explains the <code>Status</code> value. For example, a <code>Failed</code> status might be explained by the <code>StatusInformation</code> message, "The specified S3 bucket doesn't exist. Verify that the URL of the S3 bucket is correct."</p>
         114  +
    pub fn status_information(&self) -> ::std::option::Option<&str> {
         115  +
        self.status_information.as_deref()
         116  +
    }
         117  +
    /// <p>The document version.</p>
         118  +
    pub fn document_version(&self) -> ::std::option::Option<&str> {
         119  +
        self.document_version.as_deref()
         120  +
    }
         121  +
    /// <p>A description of the document.</p>
         122  +
    pub fn description(&self) -> ::std::option::Option<&str> {
         123  +
        self.description.as_deref()
         124  +
    }
         125  +
    /// <p>A description of the parameters for a document.</p>
         126  +
    ///
         127  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.parameters.is_none()`.
         128  +
    pub fn parameters(&self) -> &[crate::types::DocumentParameter] {
         129  +
        self.parameters.as_deref().unwrap_or_default()
         130  +
    }
         131  +
    /// <p>The list of operating system (OS) platforms compatible with this SSM document.</p>
         132  +
    ///
         133  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.platform_types.is_none()`.
         134  +
    pub fn platform_types(&self) -> &[crate::types::PlatformType] {
         135  +
        self.platform_types.as_deref().unwrap_or_default()
         136  +
    }
         137  +
    /// <p>The type of document.</p>
         138  +
    pub fn document_type(&self) -> ::std::option::Option<&crate::types::DocumentType> {
         139  +
        self.document_type.as_ref()
         140  +
    }
         141  +
    /// <p>The schema version.</p>
         142  +
    pub fn schema_version(&self) -> ::std::option::Option<&str> {
         143  +
        self.schema_version.as_deref()
         144  +
    }
         145  +
    /// <p>The latest version of the document.</p>
         146  +
    pub fn latest_version(&self) -> ::std::option::Option<&str> {
         147  +
        self.latest_version.as_deref()
         148  +
    }
         149  +
    /// <p>The default version.</p>
         150  +
    pub fn default_version(&self) -> ::std::option::Option<&str> {
         151  +
        self.default_version.as_deref()
         152  +
    }
         153  +
    /// <p>The document format, either JSON or YAML.</p>
         154  +
    pub fn document_format(&self) -> ::std::option::Option<&crate::types::DocumentFormat> {
         155  +
        self.document_format.as_ref()
         156  +
    }
         157  +
    /// <p>The target type which defines the kinds of resources the document can run on. For example, <code>/AWS::EC2::Instance</code>. For a list of valid resource types, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon Web Services resource and property types reference</a> in the <i>CloudFormation User Guide</i>.</p>
         158  +
    pub fn target_type(&self) -> ::std::option::Option<&str> {
         159  +
        self.target_type.as_deref()
         160  +
    }
         161  +
    /// <p>The tags, or metadata, that have been applied to the document.</p>
         162  +
    ///
         163  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
         164  +
    pub fn tags(&self) -> &[crate::types::Tag] {
         165  +
        self.tags.as_deref().unwrap_or_default()
         166  +
    }
         167  +
    /// <p>Details about the document attachments, including names, locations, sizes, and so on.</p>
         168  +
    ///
         169  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.attachments_information.is_none()`.
         170  +
    pub fn attachments_information(&self) -> &[crate::types::AttachmentInformation] {
         171  +
        self.attachments_information.as_deref().unwrap_or_default()
         172  +
    }
         173  +
    /// <p>A list of SSM documents required by a document. For example, an <code>ApplicationConfiguration</code> document requires an <code>ApplicationConfigurationSchema</code> document.</p>
         174  +
    ///
         175  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.requires.is_none()`.
         176  +
    pub fn requires(&self) -> &[crate::types::DocumentRequires] {
         177  +
        self.requires.as_deref().unwrap_or_default()
         178  +
    }
         179  +
    /// <p>The user in your organization who created the document.</p>
         180  +
    pub fn author(&self) -> ::std::option::Option<&str> {
         181  +
        self.author.as_deref()
         182  +
    }
         183  +
    /// <p>Details about the review of a document.</p>
         184  +
    ///
         185  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.review_information.is_none()`.
         186  +
    pub fn review_information(&self) -> &[crate::types::ReviewInformation] {
         187  +
        self.review_information.as_deref().unwrap_or_default()
         188  +
    }
         189  +
    /// <p>The version of the document currently approved for use in the organization.</p>
         190  +
    pub fn approved_version(&self) -> ::std::option::Option<&str> {
         191  +
        self.approved_version.as_deref()
         192  +
    }
         193  +
    /// <p>The version of the document that is currently under review.</p>
         194  +
    pub fn pending_review_version(&self) -> ::std::option::Option<&str> {
         195  +
        self.pending_review_version.as_deref()
         196  +
    }
         197  +
    /// <p>The current status of the review.</p>
         198  +
    pub fn review_status(&self) -> ::std::option::Option<&crate::types::ReviewStatus> {
         199  +
        self.review_status.as_ref()
         200  +
    }
         201  +
    /// <p>The classification of a document to help you identify and categorize its use.</p>
         202  +
    ///
         203  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.category.is_none()`.
         204  +
    pub fn category(&self) -> &[::std::string::String] {
         205  +
        self.category.as_deref().unwrap_or_default()
         206  +
    }
         207  +
    /// <p>The value that identifies a document's category.</p>
         208  +
    ///
         209  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.category_enum.is_none()`.
         210  +
    pub fn category_enum(&self) -> &[::std::string::String] {
         211  +
        self.category_enum.as_deref().unwrap_or_default()
         212  +
    }
         213  +
}
         214  +
static DOCUMENTDESCRIPTION_MEMBER_SHA1: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         215  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#DocumentDescription$Sha1", "com.amazonaws.ssm", "DocumentDescription"),
         216  +
    ::aws_smithy_schema::ShapeType::String,
         217  +
    "Sha1",
         218  +
    0,
         219  +
);
         220  +
static DOCUMENTDESCRIPTION_MEMBER_HASH: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         221  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#DocumentDescription$Hash", "com.amazonaws.ssm", "DocumentDescription"),
         222  +
    ::aws_smithy_schema::ShapeType::String,
         223  +
    "Hash",
         224  +
    1,
         225  +
);
         226  +
static DOCUMENTDESCRIPTION_MEMBER_HASH_TYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         227  +
    ::aws_smithy_schema::ShapeId::from_parts(
         228  +
        "com.amazonaws.ssm#DocumentDescription$HashType",
         229  +
        "com.amazonaws.ssm",
         230  +
        "DocumentDescription",
         231  +
    ),
         232  +
    ::aws_smithy_schema::ShapeType::String,
         233  +
    "HashType",
         234  +
    2,
         235  +
);
         236  +
static DOCUMENTDESCRIPTION_MEMBER_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         237  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#DocumentDescription$Name", "com.amazonaws.ssm", "DocumentDescription"),
         238  +
    ::aws_smithy_schema::ShapeType::String,
         239  +
    "Name",
         240  +
    3,
         241  +
);
         242  +
static DOCUMENTDESCRIPTION_MEMBER_DISPLAY_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         243  +
    ::aws_smithy_schema::ShapeId::from_parts(
         244  +
        "com.amazonaws.ssm#DocumentDescription$DisplayName",
         245  +
        "com.amazonaws.ssm",
         246  +
        "DocumentDescription",
         247  +
    ),
         248  +
    ::aws_smithy_schema::ShapeType::String,
         249  +
    "DisplayName",
         250  +
    4,
         251  +
);
         252  +
static DOCUMENTDESCRIPTION_MEMBER_VERSION_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         253  +
    ::aws_smithy_schema::ShapeId::from_parts(
         254  +
        "com.amazonaws.ssm#DocumentDescription$VersionName",
         255  +
        "com.amazonaws.ssm",
         256  +
        "DocumentDescription",
         257  +
    ),
         258  +
    ::aws_smithy_schema::ShapeType::String,
         259  +
    "VersionName",
         260  +
    5,
         261  +
);
         262  +
static DOCUMENTDESCRIPTION_MEMBER_OWNER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         263  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#DocumentDescription$Owner", "com.amazonaws.ssm", "DocumentDescription"),
         264  +
    ::aws_smithy_schema::ShapeType::String,
         265  +
    "Owner",
         266  +
    6,
         267  +
);
         268  +
static DOCUMENTDESCRIPTION_MEMBER_CREATED_DATE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         269  +
    ::aws_smithy_schema::ShapeId::from_parts(
         270  +
        "com.amazonaws.ssm#DocumentDescription$CreatedDate",
         271  +
        "com.amazonaws.ssm",
         272  +
        "DocumentDescription",
         273  +
    ),
         274  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         275  +
    "CreatedDate",
         276  +
    7,
         277  +
);
         278  +
static DOCUMENTDESCRIPTION_MEMBER_STATUS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         279  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#DocumentDescription$Status", "com.amazonaws.ssm", "DocumentDescription"),
         280  +
    ::aws_smithy_schema::ShapeType::String,
         281  +
    "Status",
         282  +
    8,
         283  +
);
         284  +
static DOCUMENTDESCRIPTION_MEMBER_STATUS_INFORMATION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         285  +
    ::aws_smithy_schema::ShapeId::from_parts(
         286  +
        "com.amazonaws.ssm#DocumentDescription$StatusInformation",
         287  +
        "com.amazonaws.ssm",
         288  +
        "DocumentDescription",
         289  +
    ),
         290  +
    ::aws_smithy_schema::ShapeType::String,
         291  +
    "StatusInformation",
         292  +
    9,
         293  +
);
         294  +
static DOCUMENTDESCRIPTION_MEMBER_DOCUMENT_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         295  +
    ::aws_smithy_schema::ShapeId::from_parts(
         296  +
        "com.amazonaws.ssm#DocumentDescription$DocumentVersion",
         297  +
        "com.amazonaws.ssm",
         298  +
        "DocumentDescription",
         299  +
    ),
         300  +
    ::aws_smithy_schema::ShapeType::String,
         301  +
    "DocumentVersion",
         302  +
    10,
         303  +
);
         304  +
static DOCUMENTDESCRIPTION_MEMBER_DESCRIPTION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         305  +
    ::aws_smithy_schema::ShapeId::from_parts(
         306  +
        "com.amazonaws.ssm#DocumentDescription$Description",
         307  +
        "com.amazonaws.ssm",
         308  +
        "DocumentDescription",
         309  +
    ),
         310  +
    ::aws_smithy_schema::ShapeType::String,
         311  +
    "Description",
         312  +
    11,
         313  +
);
         314  +
static DOCUMENTDESCRIPTION_MEMBER_PARAMETERS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         315  +
    ::aws_smithy_schema::ShapeId::from_parts(
         316  +
        "com.amazonaws.ssm#DocumentParameterList$member",
         317  +
        "com.amazonaws.ssm",
         318  +
        "DocumentParameterList",
         319  +
    ),
         320  +
    ::aws_smithy_schema::ShapeType::Structure,
         321  +
    "member",
         322  +
    0,
         323  +
)
         324  +
.with_xml_name("DocumentParameter");
         325  +
static DOCUMENTDESCRIPTION_MEMBER_PARAMETERS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         326  +
    ::aws_smithy_schema::ShapeId::from_parts(
         327  +
        "com.amazonaws.ssm#DocumentDescription$Parameters",
         328  +
        "com.amazonaws.ssm",
         329  +
        "DocumentDescription",
         330  +
    ),
         331  +
    ::aws_smithy_schema::ShapeType::List,
         332  +
    "Parameters",
         333  +
    12,
         334  +
)
         335  +
.with_list_member(&DOCUMENTDESCRIPTION_MEMBER_PARAMETERS_MEMBER);
         336  +
static DOCUMENTDESCRIPTION_MEMBER_PLATFORM_TYPES_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         337  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#PlatformTypeList$member", "com.amazonaws.ssm", "PlatformTypeList"),
         338  +
    ::aws_smithy_schema::ShapeType::String,
         339  +
    "member",
         340  +
    0,
         341  +
)
         342  +
.with_xml_name("PlatformType");
         343  +
static DOCUMENTDESCRIPTION_MEMBER_PLATFORM_TYPES: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         344  +
    ::aws_smithy_schema::ShapeId::from_parts(
         345  +
        "com.amazonaws.ssm#DocumentDescription$PlatformTypes",
         346  +
        "com.amazonaws.ssm",
         347  +
        "DocumentDescription",
         348  +
    ),
         349  +
    ::aws_smithy_schema::ShapeType::List,
         350  +
    "PlatformTypes",
         351  +
    13,
         352  +
)
         353  +
.with_list_member(&DOCUMENTDESCRIPTION_MEMBER_PLATFORM_TYPES_MEMBER);
         354  +
static DOCUMENTDESCRIPTION_MEMBER_DOCUMENT_TYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         355  +
    ::aws_smithy_schema::ShapeId::from_parts(
         356  +
        "com.amazonaws.ssm#DocumentDescription$DocumentType",
         357  +
        "com.amazonaws.ssm",
         358  +
        "DocumentDescription",
         359  +
    ),
         360  +
    ::aws_smithy_schema::ShapeType::String,
         361  +
    "DocumentType",
         362  +
    14,
         363  +
);
         364  +
static DOCUMENTDESCRIPTION_MEMBER_SCHEMA_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         365  +
    ::aws_smithy_schema::ShapeId::from_parts(
         366  +
        "com.amazonaws.ssm#DocumentDescription$SchemaVersion",
         367  +
        "com.amazonaws.ssm",
         368  +
        "DocumentDescription",
         369  +
    ),
         370  +
    ::aws_smithy_schema::ShapeType::String,
         371  +
    "SchemaVersion",
         372  +
    15,
         373  +
);
         374  +
static DOCUMENTDESCRIPTION_MEMBER_LATEST_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         375  +
    ::aws_smithy_schema::ShapeId::from_parts(
         376  +
        "com.amazonaws.ssm#DocumentDescription$LatestVersion",
         377  +
        "com.amazonaws.ssm",
         378  +
        "DocumentDescription",
         379  +
    ),
         380  +
    ::aws_smithy_schema::ShapeType::String,
         381  +
    "LatestVersion",
         382  +
    16,
         383  +
);
         384  +
static DOCUMENTDESCRIPTION_MEMBER_DEFAULT_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         385  +
    ::aws_smithy_schema::ShapeId::from_parts(
         386  +
        "com.amazonaws.ssm#DocumentDescription$DefaultVersion",
         387  +
        "com.amazonaws.ssm",
         388  +
        "DocumentDescription",
         389  +
    ),
         390  +
    ::aws_smithy_schema::ShapeType::String,
         391  +
    "DefaultVersion",
         392  +
    17,
         393  +
);
         394  +
static DOCUMENTDESCRIPTION_MEMBER_DOCUMENT_FORMAT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         395  +
    ::aws_smithy_schema::ShapeId::from_parts(
         396  +
        "com.amazonaws.ssm#DocumentDescription$DocumentFormat",
         397  +
        "com.amazonaws.ssm",
         398  +
        "DocumentDescription",
         399  +
    ),
         400  +
    ::aws_smithy_schema::ShapeType::String,
         401  +
    "DocumentFormat",
         402  +
    18,
         403  +
);
         404  +
static DOCUMENTDESCRIPTION_MEMBER_TARGET_TYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         405  +
    ::aws_smithy_schema::ShapeId::from_parts(
         406  +
        "com.amazonaws.ssm#DocumentDescription$TargetType",
         407  +
        "com.amazonaws.ssm",
         408  +
        "DocumentDescription",
         409  +
    ),
         410  +
    ::aws_smithy_schema::ShapeType::String,
         411  +
    "TargetType",
         412  +
    19,
         413  +
);
         414  +
static DOCUMENTDESCRIPTION_MEMBER_TAGS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         415  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#TagList$member", "com.amazonaws.ssm", "TagList"),
         416  +
    ::aws_smithy_schema::ShapeType::Structure,
         417  +
    "member",
         418  +
    0,
         419  +
);
         420  +
static DOCUMENTDESCRIPTION_MEMBER_TAGS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         421  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#DocumentDescription$Tags", "com.amazonaws.ssm", "DocumentDescription"),
         422  +
    ::aws_smithy_schema::ShapeType::List,
         423  +
    "Tags",
         424  +
    20,
         425  +
)
         426  +
.with_list_member(&DOCUMENTDESCRIPTION_MEMBER_TAGS_MEMBER);
         427  +
static DOCUMENTDESCRIPTION_MEMBER_ATTACHMENTS_INFORMATION_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         428  +
    ::aws_smithy_schema::ShapeId::from_parts(
         429  +
        "com.amazonaws.ssm#AttachmentInformationList$member",
         430  +
        "com.amazonaws.ssm",
         431  +
        "AttachmentInformationList",
         432  +
    ),
         433  +
    ::aws_smithy_schema::ShapeType::Structure,
         434  +
    "member",
         435  +
    0,
         436  +
)
         437  +
.with_xml_name("AttachmentInformation");
         438  +
static DOCUMENTDESCRIPTION_MEMBER_ATTACHMENTS_INFORMATION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         439  +
    ::aws_smithy_schema::ShapeId::from_parts(
         440  +
        "com.amazonaws.ssm#DocumentDescription$AttachmentsInformation",
         441  +
        "com.amazonaws.ssm",
         442  +
        "DocumentDescription",
         443  +
    ),
         444  +
    ::aws_smithy_schema::ShapeType::List,
         445  +
    "AttachmentsInformation",
         446  +
    21,
         447  +
)
         448  +
.with_list_member(&DOCUMENTDESCRIPTION_MEMBER_ATTACHMENTS_INFORMATION_MEMBER);
         449  +
static DOCUMENTDESCRIPTION_MEMBER_REQUIRES_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         450  +
    ::aws_smithy_schema::ShapeId::from_parts(
         451  +
        "com.amazonaws.ssm#DocumentRequiresList$member",
         452  +
        "com.amazonaws.ssm",
         453  +
        "DocumentRequiresList",
         454  +
    ),
         455  +
    ::aws_smithy_schema::ShapeType::Structure,
         456  +
    "member",
         457  +
    0,
         458  +
);
         459  +
static DOCUMENTDESCRIPTION_MEMBER_REQUIRES: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         460  +
    ::aws_smithy_schema::ShapeId::from_parts(
         461  +
        "com.amazonaws.ssm#DocumentDescription$Requires",
         462  +
        "com.amazonaws.ssm",
         463  +
        "DocumentDescription",
         464  +
    ),
         465  +
    ::aws_smithy_schema::ShapeType::List,
         466  +
    "Requires",
         467  +
    22,
         468  +
)
         469  +
.with_list_member(&DOCUMENTDESCRIPTION_MEMBER_REQUIRES_MEMBER);
         470  +
static DOCUMENTDESCRIPTION_MEMBER_AUTHOR: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         471  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#DocumentDescription$Author", "com.amazonaws.ssm", "DocumentDescription"),
         472  +
    ::aws_smithy_schema::ShapeType::String,
         473  +
    "Author",
         474  +
    23,
         475  +
);
         476  +
static DOCUMENTDESCRIPTION_MEMBER_REVIEW_INFORMATION_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         477  +
    ::aws_smithy_schema::ShapeId::from_parts(
         478  +
        "com.amazonaws.ssm#ReviewInformationList$member",
         479  +
        "com.amazonaws.ssm",
         480  +
        "ReviewInformationList",
         481  +
    ),
         482  +
    ::aws_smithy_schema::ShapeType::Structure,
         483  +
    "member",
         484  +
    0,
         485  +
)
         486  +
.with_xml_name("ReviewInformation");
         487  +
static DOCUMENTDESCRIPTION_MEMBER_REVIEW_INFORMATION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         488  +
    ::aws_smithy_schema::ShapeId::from_parts(
         489  +
        "com.amazonaws.ssm#DocumentDescription$ReviewInformation",
         490  +
        "com.amazonaws.ssm",
         491  +
        "DocumentDescription",
         492  +
    ),
         493  +
    ::aws_smithy_schema::ShapeType::List,
         494  +
    "ReviewInformation",
         495  +
    24,
         496  +
)
         497  +
.with_list_member(&DOCUMENTDESCRIPTION_MEMBER_REVIEW_INFORMATION_MEMBER);
         498  +
static DOCUMENTDESCRIPTION_MEMBER_APPROVED_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         499  +
    ::aws_smithy_schema::ShapeId::from_parts(
         500  +
        "com.amazonaws.ssm#DocumentDescription$ApprovedVersion",
         501  +
        "com.amazonaws.ssm",
         502  +
        "DocumentDescription",
         503  +
    ),
         504  +
    ::aws_smithy_schema::ShapeType::String,
         505  +
    "ApprovedVersion",
         506  +
    25,
         507  +
);
         508  +
static DOCUMENTDESCRIPTION_MEMBER_PENDING_REVIEW_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         509  +
    ::aws_smithy_schema::ShapeId::from_parts(
         510  +
        "com.amazonaws.ssm#DocumentDescription$PendingReviewVersion",
         511  +
        "com.amazonaws.ssm",
         512  +
        "DocumentDescription",
         513  +
    ),
         514  +
    ::aws_smithy_schema::ShapeType::String,
         515  +
    "PendingReviewVersion",
         516  +
    26,
         517  +
);
         518  +
static DOCUMENTDESCRIPTION_MEMBER_REVIEW_STATUS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         519  +
    ::aws_smithy_schema::ShapeId::from_parts(
         520  +
        "com.amazonaws.ssm#DocumentDescription$ReviewStatus",
         521  +
        "com.amazonaws.ssm",
         522  +
        "DocumentDescription",
         523  +
    ),
         524  +
    ::aws_smithy_schema::ShapeType::String,
         525  +
    "ReviewStatus",
         526  +
    27,
         527  +
);
         528  +
static DOCUMENTDESCRIPTION_MEMBER_CATEGORY_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         529  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#CategoryList$member", "com.amazonaws.ssm", "CategoryList"),
         530  +
    ::aws_smithy_schema::ShapeType::String,
         531  +
    "member",
         532  +
    0,
         533  +
);
         534  +
static DOCUMENTDESCRIPTION_MEMBER_CATEGORY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         535  +
    ::aws_smithy_schema::ShapeId::from_parts(
         536  +
        "com.amazonaws.ssm#DocumentDescription$Category",
         537  +
        "com.amazonaws.ssm",
         538  +
        "DocumentDescription",
         539  +
    ),
         540  +
    ::aws_smithy_schema::ShapeType::List,
         541  +
    "Category",
         542  +
    28,
         543  +
)
         544  +
.with_list_member(&DOCUMENTDESCRIPTION_MEMBER_CATEGORY_MEMBER);
         545  +
static DOCUMENTDESCRIPTION_MEMBER_CATEGORY_ENUM_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         546  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#CategoryEnumList$member", "com.amazonaws.ssm", "CategoryEnumList"),
         547  +
    ::aws_smithy_schema::ShapeType::String,
         548  +
    "member",
         549  +
    0,
         550  +
);
         551  +
static DOCUMENTDESCRIPTION_MEMBER_CATEGORY_ENUM: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         552  +
    ::aws_smithy_schema::ShapeId::from_parts(
         553  +
        "com.amazonaws.ssm#DocumentDescription$CategoryEnum",
         554  +
        "com.amazonaws.ssm",
         555  +
        "DocumentDescription",
         556  +
    ),
         557  +
    ::aws_smithy_schema::ShapeType::List,
         558  +
    "CategoryEnum",
         559  +
    29,
         560  +
)
         561  +
.with_list_member(&DOCUMENTDESCRIPTION_MEMBER_CATEGORY_ENUM_MEMBER);
         562  +
static DOCUMENTDESCRIPTION_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
         563  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#DocumentDescription", "com.amazonaws.ssm", "DocumentDescription"),
         564  +
    ::aws_smithy_schema::ShapeType::Structure,
         565  +
    &[
         566  +
        &DOCUMENTDESCRIPTION_MEMBER_SHA1,
         567  +
        &DOCUMENTDESCRIPTION_MEMBER_HASH,
         568  +
        &DOCUMENTDESCRIPTION_MEMBER_HASH_TYPE,
         569  +
        &DOCUMENTDESCRIPTION_MEMBER_NAME,
         570  +
        &DOCUMENTDESCRIPTION_MEMBER_DISPLAY_NAME,
         571  +
        &DOCUMENTDESCRIPTION_MEMBER_VERSION_NAME,
         572  +
        &DOCUMENTDESCRIPTION_MEMBER_OWNER,
         573  +
        &DOCUMENTDESCRIPTION_MEMBER_CREATED_DATE,
         574  +
        &DOCUMENTDESCRIPTION_MEMBER_STATUS,
         575  +
        &DOCUMENTDESCRIPTION_MEMBER_STATUS_INFORMATION,
         576  +
        &DOCUMENTDESCRIPTION_MEMBER_DOCUMENT_VERSION,
         577  +
        &DOCUMENTDESCRIPTION_MEMBER_DESCRIPTION,
         578  +
        &DOCUMENTDESCRIPTION_MEMBER_PARAMETERS,
         579  +
        &DOCUMENTDESCRIPTION_MEMBER_PLATFORM_TYPES,
         580  +
        &DOCUMENTDESCRIPTION_MEMBER_DOCUMENT_TYPE,
         581  +
        &DOCUMENTDESCRIPTION_MEMBER_SCHEMA_VERSION,
         582  +
        &DOCUMENTDESCRIPTION_MEMBER_LATEST_VERSION,
         583  +
        &DOCUMENTDESCRIPTION_MEMBER_DEFAULT_VERSION,
         584  +
        &DOCUMENTDESCRIPTION_MEMBER_DOCUMENT_FORMAT,
         585  +
        &DOCUMENTDESCRIPTION_MEMBER_TARGET_TYPE,
         586  +
        &DOCUMENTDESCRIPTION_MEMBER_TAGS,
         587  +
        &DOCUMENTDESCRIPTION_MEMBER_ATTACHMENTS_INFORMATION,
         588  +
        &DOCUMENTDESCRIPTION_MEMBER_REQUIRES,
         589  +
        &DOCUMENTDESCRIPTION_MEMBER_AUTHOR,
         590  +
        &DOCUMENTDESCRIPTION_MEMBER_REVIEW_INFORMATION,
         591  +
        &DOCUMENTDESCRIPTION_MEMBER_APPROVED_VERSION,
         592  +
        &DOCUMENTDESCRIPTION_MEMBER_PENDING_REVIEW_VERSION,
         593  +
        &DOCUMENTDESCRIPTION_MEMBER_REVIEW_STATUS,
         594  +
        &DOCUMENTDESCRIPTION_MEMBER_CATEGORY,
         595  +
        &DOCUMENTDESCRIPTION_MEMBER_CATEGORY_ENUM,
         596  +
    ],
         597  +
);
         598  +
impl DocumentDescription {
         599  +
    /// The schema for this shape.
         600  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &DOCUMENTDESCRIPTION_SCHEMA;
         601  +
}
         602  +
impl ::aws_smithy_schema::serde::SerializableStruct for DocumentDescription {
         603  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         604  +
    fn serialize_members(
         605  +
        &self,
         606  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         607  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         608  +
        if let Some(ref val) = self.sha1 {
         609  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_SHA1, val)?;
         610  +
        }
         611  +
        if let Some(ref val) = self.hash {
         612  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_HASH, val)?;
         613  +
        }
         614  +
        if let Some(ref val) = self.hash_type {
         615  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_HASH_TYPE, val.as_str())?;
         616  +
        }
         617  +
        if let Some(ref val) = self.name {
         618  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_NAME, val)?;
         619  +
        }
         620  +
        if let Some(ref val) = self.display_name {
         621  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_DISPLAY_NAME, val)?;
         622  +
        }
         623  +
        if let Some(ref val) = self.version_name {
         624  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_VERSION_NAME, val)?;
         625  +
        }
         626  +
        if let Some(ref val) = self.owner {
         627  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_OWNER, val)?;
         628  +
        }
         629  +
        if let Some(ref val) = self.created_date {
         630  +
            ser.write_timestamp(&DOCUMENTDESCRIPTION_MEMBER_CREATED_DATE, val)?;
         631  +
        }
         632  +
        if let Some(ref val) = self.status {
         633  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_STATUS, val.as_str())?;
         634  +
        }
         635  +
        if let Some(ref val) = self.status_information {
         636  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_STATUS_INFORMATION, val)?;
         637  +
        }
         638  +
        if let Some(ref val) = self.document_version {
         639  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_DOCUMENT_VERSION, val)?;
         640  +
        }
         641  +
        if let Some(ref val) = self.description {
         642  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_DESCRIPTION, val)?;
         643  +
        }
         644  +
        if let Some(ref val) = self.parameters {
         645  +
            ser.write_list(
         646  +
                &DOCUMENTDESCRIPTION_MEMBER_PARAMETERS,
         647  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         648  +
                    for item in val {
         649  +
                        ser.write_struct(crate::types::DocumentParameter::SCHEMA, item)?;
         650  +
                    }
         651  +
                    Ok(())
         652  +
                },
         653  +
            )?;
         654  +
        }
         655  +
        if let Some(ref val) = self.platform_types {
         656  +
            ser.write_list(
         657  +
                &DOCUMENTDESCRIPTION_MEMBER_PLATFORM_TYPES,
         658  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         659  +
                    for item in val {
         660  +
                        ser.write_string(&aws_smithy_schema::prelude::STRING, item.as_str())?;
         661  +
                    }
         662  +
                    Ok(())
         663  +
                },
         664  +
            )?;
         665  +
        }
         666  +
        if let Some(ref val) = self.document_type {
         667  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_DOCUMENT_TYPE, val.as_str())?;
         668  +
        }
         669  +
        if let Some(ref val) = self.schema_version {
         670  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_SCHEMA_VERSION, val)?;
         671  +
        }
         672  +
        if let Some(ref val) = self.latest_version {
         673  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_LATEST_VERSION, val)?;
         674  +
        }
         675  +
        if let Some(ref val) = self.default_version {
         676  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_DEFAULT_VERSION, val)?;
         677  +
        }
         678  +
        if let Some(ref val) = self.document_format {
         679  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_DOCUMENT_FORMAT, val.as_str())?;
         680  +
        }
         681  +
        if let Some(ref val) = self.target_type {
         682  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_TARGET_TYPE, val)?;
         683  +
        }
         684  +
        if let Some(ref val) = self.tags {
         685  +
            ser.write_list(
         686  +
                &DOCUMENTDESCRIPTION_MEMBER_TAGS,
         687  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         688  +
                    for item in val {
         689  +
                        ser.write_struct(crate::types::Tag::SCHEMA, item)?;
         690  +
                    }
         691  +
                    Ok(())
         692  +
                },
         693  +
            )?;
         694  +
        }
         695  +
        if let Some(ref val) = self.attachments_information {
         696  +
            ser.write_list(
         697  +
                &DOCUMENTDESCRIPTION_MEMBER_ATTACHMENTS_INFORMATION,
         698  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         699  +
                    for item in val {
         700  +
                        ser.write_struct(crate::types::AttachmentInformation::SCHEMA, item)?;
         701  +
                    }
         702  +
                    Ok(())
         703  +
                },
         704  +
            )?;
         705  +
        }
         706  +
        if let Some(ref val) = self.requires {
         707  +
            ser.write_list(
         708  +
                &DOCUMENTDESCRIPTION_MEMBER_REQUIRES,
         709  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         710  +
                    for item in val {
         711  +
                        ser.write_struct(crate::types::DocumentRequires::SCHEMA, item)?;
         712  +
                    }
         713  +
                    Ok(())
         714  +
                },
         715  +
            )?;
         716  +
        }
         717  +
        if let Some(ref val) = self.author {
         718  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_AUTHOR, val)?;
         719  +
        }
         720  +
        if let Some(ref val) = self.review_information {
         721  +
            ser.write_list(
         722  +
                &DOCUMENTDESCRIPTION_MEMBER_REVIEW_INFORMATION,
         723  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         724  +
                    for item in val {
         725  +
                        ser.write_struct(crate::types::ReviewInformation::SCHEMA, item)?;
         726  +
                    }
         727  +
                    Ok(())
         728  +
                },
         729  +
            )?;
         730  +
        }
         731  +
        if let Some(ref val) = self.approved_version {
         732  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_APPROVED_VERSION, val)?;
         733  +
        }
         734  +
        if let Some(ref val) = self.pending_review_version {
         735  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_PENDING_REVIEW_VERSION, val)?;
         736  +
        }
         737  +
        if let Some(ref val) = self.review_status {
         738  +
            ser.write_string(&DOCUMENTDESCRIPTION_MEMBER_REVIEW_STATUS, val.as_str())?;
         739  +
        }
         740  +
        if let Some(ref val) = self.category {
         741  +
            ser.write_list(
         742  +
                &DOCUMENTDESCRIPTION_MEMBER_CATEGORY,
         743  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         744  +
                    for item in val {
         745  +
                        ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
         746  +
                    }
         747  +
                    Ok(())
         748  +
                },
         749  +
            )?;
         750  +
        }
         751  +
        if let Some(ref val) = self.category_enum {
         752  +
            ser.write_list(
         753  +
                &DOCUMENTDESCRIPTION_MEMBER_CATEGORY_ENUM,
         754  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         755  +
                    for item in val {
         756  +
                        ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
         757  +
                    }
         758  +
                    Ok(())
         759  +
                },
         760  +
            )?;
         761  +
        }
         762  +
        Ok(())
         763  +
    }
         764  +
}
         765  +
impl DocumentDescription {
         766  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         767  +
    pub fn deserialize(
         768  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         769  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         770  +
        #[allow(unused_variables, unused_mut)]
         771  +
        let mut builder = Self::builder();
         772  +
        #[allow(
         773  +
            unused_variables,
         774  +
            unreachable_code,
         775  +
            clippy::single_match,
         776  +
            clippy::match_single_binding,
         777  +
            clippy::diverging_sub_expression
         778  +
        )]
         779  +
        deserializer.read_struct(&DOCUMENTDESCRIPTION_SCHEMA, &mut |member, deser| {
         780  +
            match member.member_index() {
         781  +
                Some(0) => {
         782  +
                    if deser.is_null() {
         783  +
                        deser.read_null()?;
         784  +
                    } else {
         785  +
                        builder.sha1 = Some(deser.read_string(member)?);
         786  +
                    }
         787  +
                }
         788  +
                Some(1) => {
         789  +
                    if deser.is_null() {
         790  +
                        deser.read_null()?;
         791  +
                    } else {
         792  +
                        builder.hash = Some(deser.read_string(member)?);
         793  +
                    }
         794  +
                }
         795  +
                Some(2) => {
         796  +
                    if deser.is_null() {
         797  +
                        deser.read_null()?;
         798  +
                    } else {
         799  +
                        builder.hash_type = Some(crate::types::DocumentHashType::from(deser.read_string(member)?.as_str()));
         800  +
                    }
         801  +
                }
         802  +
                Some(3) => {
         803  +
                    if deser.is_null() {
         804  +
                        deser.read_null()?;
         805  +
                    } else {
         806  +
                        builder.name = Some(deser.read_string(member)?);
         807  +
                    }
         808  +
                }
         809  +
                Some(4) => {
         810  +
                    if deser.is_null() {
         811  +
                        deser.read_null()?;
         812  +
                    } else {
         813  +
                        builder.display_name = Some(deser.read_string(member)?);
         814  +
                    }
         815  +
                }
         816  +
                Some(5) => {
         817  +
                    if deser.is_null() {
         818  +
                        deser.read_null()?;
         819  +
                    } else {
         820  +
                        builder.version_name = Some(deser.read_string(member)?);
         821  +
                    }
         822  +
                }
         823  +
                Some(6) => {
         824  +
                    if deser.is_null() {
         825  +
                        deser.read_null()?;
         826  +
                    } else {
         827  +
                        builder.owner = Some(deser.read_string(member)?);
         828  +
                    }
         829  +
                }
         830  +
                Some(7) => {
         831  +
                    if deser.is_null() {
         832  +
                        deser.read_null()?;
         833  +
                    } else {
         834  +
                        builder.created_date = Some(deser.read_timestamp(member)?);
         835  +
                    }
         836  +
                }
         837  +
                Some(8) => {
         838  +
                    if deser.is_null() {
         839  +
                        deser.read_null()?;
         840  +
                    } else {
         841  +
                        builder.status = Some(crate::types::DocumentStatus::from(deser.read_string(member)?.as_str()));
         842  +
                    }
         843  +
                }
         844  +
                Some(9) => {
         845  +
                    if deser.is_null() {
         846  +
                        deser.read_null()?;
         847  +
                    } else {
         848  +
                        builder.status_information = Some(deser.read_string(member)?);
         849  +
                    }
         850  +
                }
         851  +
                Some(10) => {
         852  +
                    if deser.is_null() {
         853  +
                        deser.read_null()?;
         854  +
                    } else {
         855  +
                        builder.document_version = Some(deser.read_string(member)?);
         856  +
                    }
         857  +
                }
         858  +
                Some(11) => {
         859  +
                    if deser.is_null() {
         860  +
                        deser.read_null()?;
         861  +
                    } else {
         862  +
                        builder.description = Some(deser.read_string(member)?);
         863  +
                    }
         864  +
                }
         865  +
                Some(12) => {
         866  +
                    if deser.is_null() {
         867  +
                        deser.read_null()?;
         868  +
                    } else {
         869  +
                        builder.parameters = Some({
         870  +
                            let mut container = Vec::new();
         871  +
                            deser.read_list(member, &mut |deser| {
         872  +
                                container.push(crate::types::DocumentParameter::deserialize(deser)?);
         873  +
                                Ok(())
         874  +
                            })?;
         875  +
                            container
         876  +
                        });
         877  +
                    }
         878  +
                }
         879  +
                Some(13) => {
         880  +
                    if deser.is_null() {
         881  +
                        deser.read_null()?;
         882  +
                    } else {
         883  +
                        builder.platform_types = Some({
         884  +
                            let mut container = Vec::new();
         885  +
                            deser.read_list(member, &mut |deser| {
         886  +
                                container.push(crate::types::PlatformType::from(
         887  +
                                    deser.read_string(&::aws_smithy_schema::prelude::STRING)?.as_str(),
         888  +
                                ));
         889  +
                                Ok(())
         890  +
                            })?;
         891  +
                            container
         892  +
                        });
         893  +
                    }
         894  +
                }
         895  +
                Some(14) => {
         896  +
                    if deser.is_null() {
         897  +
                        deser.read_null()?;
         898  +
                    } else {
         899  +
                        builder.document_type = Some(crate::types::DocumentType::from(deser.read_string(member)?.as_str()));
         900  +
                    }
         901  +
                }
         902  +
                Some(15) => {
         903  +
                    if deser.is_null() {
         904  +
                        deser.read_null()?;
         905  +
                    } else {
         906  +
                        builder.schema_version = Some(deser.read_string(member)?);
         907  +
                    }
         908  +
                }
         909  +
                Some(16) => {
         910  +
                    if deser.is_null() {
         911  +
                        deser.read_null()?;
         912  +
                    } else {
         913  +
                        builder.latest_version = Some(deser.read_string(member)?);
         914  +
                    }
         915  +
                }
         916  +
                Some(17) => {
         917  +
                    if deser.is_null() {
         918  +
                        deser.read_null()?;
         919  +
                    } else {
         920  +
                        builder.default_version = Some(deser.read_string(member)?);
         921  +
                    }
         922  +
                }
         923  +
                Some(18) => {
         924  +
                    if deser.is_null() {
         925  +
                        deser.read_null()?;
         926  +
                    } else {
         927  +
                        builder.document_format = Some(crate::types::DocumentFormat::from(deser.read_string(member)?.as_str()));
         928  +
                    }
         929  +
                }
         930  +
                Some(19) => {
         931  +
                    if deser.is_null() {
         932  +
                        deser.read_null()?;
         933  +
                    } else {
         934  +
                        builder.target_type = Some(deser.read_string(member)?);
         935  +
                    }
         936  +
                }
         937  +
                Some(20) => {
         938  +
                    if deser.is_null() {
         939  +
                        deser.read_null()?;
         940  +
                    } else {
         941  +
                        builder.tags = Some({
         942  +
                            let mut container = Vec::new();
         943  +
                            deser.read_list(member, &mut |deser| {
         944  +
                                container.push(crate::types::Tag::deserialize(deser)?);
         945  +
                                Ok(())
         946  +
                            })?;
         947  +
                            container
         948  +
                        });
         949  +
                    }
         950  +
                }
         951  +
                Some(21) => {
         952  +
                    if deser.is_null() {
         953  +
                        deser.read_null()?;
         954  +
                    } else {
         955  +
                        builder.attachments_information = Some({
         956  +
                            let mut container = Vec::new();
         957  +
                            deser.read_list(member, &mut |deser| {
         958  +
                                container.push(crate::types::AttachmentInformation::deserialize(deser)?);
         959  +
                                Ok(())
         960  +
                            })?;
         961  +
                            container
         962  +
                        });
         963  +
                    }
         964  +
                }
         965  +
                Some(22) => {
         966  +
                    if deser.is_null() {
         967  +
                        deser.read_null()?;
         968  +
                    } else {
         969  +
                        builder.requires = Some({
         970  +
                            let mut container = Vec::new();
         971  +
                            deser.read_list(member, &mut |deser| {
         972  +
                                container.push(crate::types::DocumentRequires::deserialize(deser)?);
         973  +
                                Ok(())
         974  +
                            })?;
         975  +
                            container
         976  +
                        });
         977  +
                    }
         978  +
                }
         979  +
                Some(23) => {
         980  +
                    if deser.is_null() {
         981  +
                        deser.read_null()?;
         982  +
                    } else {
         983  +
                        builder.author = Some(deser.read_string(member)?);
         984  +
                    }
         985  +
                }
         986  +
                Some(24) => {
         987  +
                    if deser.is_null() {
         988  +
                        deser.read_null()?;
         989  +
                    } else {
         990  +
                        builder.review_information = Some({
         991  +
                            let mut container = Vec::new();
         992  +
                            deser.read_list(member, &mut |deser| {
         993  +
                                container.push(crate::types::ReviewInformation::deserialize(deser)?);
         994  +
                                Ok(())
         995  +
                            })?;
         996  +
                            container
         997  +
                        });
         998  +
                    }
         999  +
                }
        1000  +
                Some(25) => {
        1001  +
                    if deser.is_null() {
        1002  +
                        deser.read_null()?;
        1003  +
                    } else {
        1004  +
                        builder.approved_version = Some(deser.read_string(member)?);
        1005  +
                    }
        1006  +
                }
        1007  +
                Some(26) => {
        1008  +
                    if deser.is_null() {
        1009  +
                        deser.read_null()?;
        1010  +
                    } else {
        1011  +
                        builder.pending_review_version = Some(deser.read_string(member)?);
        1012  +
                    }
        1013  +
                }
        1014  +
                Some(27) => {
        1015  +
                    if deser.is_null() {
        1016  +
                        deser.read_null()?;
        1017  +
                    } else {
        1018  +
                        builder.review_status = Some(crate::types::ReviewStatus::from(deser.read_string(member)?.as_str()));
        1019  +
                    }
        1020  +
                }
        1021  +
                Some(28) => {
        1022  +
                    if deser.is_null() {
        1023  +
                        deser.read_null()?;
        1024  +
                    } else {
        1025  +
                        builder.category = Some(deser.read_string_list(member)?);
        1026  +
                    }
        1027  +
                }
        1028  +
                Some(29) => {
        1029  +
                    if deser.is_null() {
        1030  +
                        deser.read_null()?;
        1031  +
                    } else {
        1032  +
                        builder.category_enum = Some(deser.read_string_list(member)?);
        1033  +
                    }
        1034  +
                }
        1035  +
                _ => {}
        1036  +
            }
        1037  +
            Ok(())
        1038  +
        })?;
        1039  +
        Ok(builder.build())
        1040  +
    }
        1041  +
}
        1042  +
impl DocumentDescription {
        1043  +
    /// Deserializes this structure from a body deserializer and HTTP response.
        1044  +
    pub fn deserialize_with_response(
        1045  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
        1046  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
        1047  +
        _status: u16,
        1048  +
        _body: &[u8],
        1049  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
        1050  +
        Self::deserialize(deserializer)
        1051  +
    }
        1052  +
}
        1053  +
impl DocumentDescription {
        1054  +
    /// Creates a new builder-style object to manufacture [`DocumentDescription`](crate::types::DocumentDescription).
        1055  +
    pub fn builder() -> crate::types::builders::DocumentDescriptionBuilder {
        1056  +
        crate::types::builders::DocumentDescriptionBuilder::default()
        1057  +
    }
        1058  +
}
        1059  +
        1060  +
/// A builder for [`DocumentDescription`](crate::types::DocumentDescription).
        1061  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
        1062  +
#[non_exhaustive]
        1063  +
pub struct DocumentDescriptionBuilder {
        1064  +
    pub(crate) sha1: ::std::option::Option<::std::string::String>,
        1065  +
    pub(crate) hash: ::std::option::Option<::std::string::String>,
        1066  +
    pub(crate) hash_type: ::std::option::Option<crate::types::DocumentHashType>,
        1067  +
    pub(crate) name: ::std::option::Option<::std::string::String>,
        1068  +
    pub(crate) display_name: ::std::option::Option<::std::string::String>,
        1069  +
    pub(crate) version_name: ::std::option::Option<::std::string::String>,
        1070  +
    pub(crate) owner: ::std::option::Option<::std::string::String>,
        1071  +
    pub(crate) created_date: ::std::option::Option<::aws_smithy_types::DateTime>,
        1072  +
    pub(crate) status: ::std::option::Option<crate::types::DocumentStatus>,
        1073  +
    pub(crate) status_information: ::std::option::Option<::std::string::String>,
        1074  +
    pub(crate) document_version: ::std::option::Option<::std::string::String>,
        1075  +
    pub(crate) description: ::std::option::Option<::std::string::String>,
        1076  +
    pub(crate) parameters: ::std::option::Option<::std::vec::Vec<crate::types::DocumentParameter>>,
        1077  +
    pub(crate) platform_types: ::std::option::Option<::std::vec::Vec<crate::types::PlatformType>>,
        1078  +
    pub(crate) document_type: ::std::option::Option<crate::types::DocumentType>,
        1079  +
    pub(crate) schema_version: ::std::option::Option<::std::string::String>,
        1080  +
    pub(crate) latest_version: ::std::option::Option<::std::string::String>,
        1081  +
    pub(crate) default_version: ::std::option::Option<::std::string::String>,
        1082  +
    pub(crate) document_format: ::std::option::Option<crate::types::DocumentFormat>,
        1083  +
    pub(crate) target_type: ::std::option::Option<::std::string::String>,
        1084  +
    pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
        1085  +
    pub(crate) attachments_information: ::std::option::Option<::std::vec::Vec<crate::types::AttachmentInformation>>,
        1086  +
    pub(crate) requires: ::std::option::Option<::std::vec::Vec<crate::types::DocumentRequires>>,
        1087  +
    pub(crate) author: ::std::option::Option<::std::string::String>,
        1088  +
    pub(crate) review_information: ::std::option::Option<::std::vec::Vec<crate::types::ReviewInformation>>,
        1089  +
    pub(crate) approved_version: ::std::option::Option<::std::string::String>,
        1090  +
    pub(crate) pending_review_version: ::std::option::Option<::std::string::String>,
        1091  +
    pub(crate) review_status: ::std::option::Option<crate::types::ReviewStatus>,
        1092  +
    pub(crate) category: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        1093  +
    pub(crate) category_enum: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        1094  +
}
        1095  +
impl DocumentDescriptionBuilder {
        1096  +
    /// <p>The SHA1 hash of the document, which you can use for verification.</p>
        1097  +
    pub fn sha1(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1098  +
        self.sha1 = ::std::option::Option::Some(input.into());
        1099  +
        self
        1100  +
    }
        1101  +
    /// <p>The SHA1 hash of the document, which you can use for verification.</p>
        1102  +
    pub fn set_sha1(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1103  +
        self.sha1 = input;
        1104  +
        self
        1105  +
    }
        1106  +
    /// <p>The SHA1 hash of the document, which you can use for verification.</p>
        1107  +
    pub fn get_sha1(&self) -> &::std::option::Option<::std::string::String> {
        1108  +
        &self.sha1
        1109  +
    }
        1110  +
    /// <p>The Sha256 or Sha1 hash created by the system when the document was created.</p><note>
        1111  +
    /// <p>Sha1 hashes have been deprecated.</p>
        1112  +
    /// </note>
        1113  +
    pub fn hash(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1114  +
        self.hash = ::std::option::Option::Some(input.into());
        1115  +
        self
        1116  +
    }
        1117  +
    /// <p>The Sha256 or Sha1 hash created by the system when the document was created.</p><note>
        1118  +
    /// <p>Sha1 hashes have been deprecated.</p>
        1119  +
    /// </note>
        1120  +
    pub fn set_hash(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1121  +
        self.hash = input;
        1122  +
        self
        1123  +
    }
        1124  +
    /// <p>The Sha256 or Sha1 hash created by the system when the document was created.</p><note>
        1125  +
    /// <p>Sha1 hashes have been deprecated.</p>
        1126  +
    /// </note>
        1127  +
    pub fn get_hash(&self) -> &::std::option::Option<::std::string::String> {
        1128  +
        &self.hash
        1129  +
    }
        1130  +
    /// <p>The hash type of the document. Valid values include <code>Sha256</code> or <code>Sha1</code>.</p><note>
        1131  +
    /// <p>Sha1 hashes have been deprecated.</p>
        1132  +
    /// </note>
        1133  +
    pub fn hash_type(mut self, input: crate::types::DocumentHashType) -> Self {
        1134  +
        self.hash_type = ::std::option::Option::Some(input);
        1135  +
        self
        1136  +
    }
        1137  +
    /// <p>The hash type of the document. Valid values include <code>Sha256</code> or <code>Sha1</code>.</p><note>
        1138  +
    /// <p>Sha1 hashes have been deprecated.</p>
        1139  +
    /// </note>
        1140  +
    pub fn set_hash_type(mut self, input: ::std::option::Option<crate::types::DocumentHashType>) -> Self {
        1141  +
        self.hash_type = input;
        1142  +
        self
        1143  +
    }
        1144  +
    /// <p>The hash type of the document. Valid values include <code>Sha256</code> or <code>Sha1</code>.</p><note>
        1145  +
    /// <p>Sha1 hashes have been deprecated.</p>
        1146  +
    /// </note>
        1147  +
    pub fn get_hash_type(&self) -> &::std::option::Option<crate::types::DocumentHashType> {
        1148  +
        &self.hash_type
        1149  +
    }
        1150  +
    /// <p>The name of the SSM document.</p>
        1151  +
    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1152  +
        self.name = ::std::option::Option::Some(input.into());
        1153  +
        self
        1154  +
    }
        1155  +
    /// <p>The name of the SSM document.</p>
        1156  +
    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1157  +
        self.name = input;
        1158  +
        self
        1159  +
    }
        1160  +
    /// <p>The name of the SSM document.</p>
        1161  +
    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
        1162  +
        &self.name
        1163  +
    }
        1164  +
    /// <p>The friendly name of the SSM document. This value can differ for each version of the document. If you want to update this value, see <code>UpdateDocument</code>.</p>
        1165  +
    pub fn display_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1166  +
        self.display_name = ::std::option::Option::Some(input.into());
        1167  +
        self
        1168  +
    }
        1169  +
    /// <p>The friendly name of the SSM document. This value can differ for each version of the document. If you want to update this value, see <code>UpdateDocument</code>.</p>
        1170  +
    pub fn set_display_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1171  +
        self.display_name = input;
        1172  +
        self
        1173  +
    }
        1174  +
    /// <p>The friendly name of the SSM document. This value can differ for each version of the document. If you want to update this value, see <code>UpdateDocument</code>.</p>
        1175  +
    pub fn get_display_name(&self) -> &::std::option::Option<::std::string::String> {
        1176  +
        &self.display_name
        1177  +
    }
        1178  +
    /// <p>The version of the artifact associated with the document.</p>
        1179  +
    pub fn version_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1180  +
        self.version_name = ::std::option::Option::Some(input.into());
        1181  +
        self
        1182  +
    }
        1183  +
    /// <p>The version of the artifact associated with the document.</p>
        1184  +
    pub fn set_version_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1185  +
        self.version_name = input;
        1186  +
        self
        1187  +
    }
        1188  +
    /// <p>The version of the artifact associated with the document.</p>
        1189  +
    pub fn get_version_name(&self) -> &::std::option::Option<::std::string::String> {
        1190  +
        &self.version_name
        1191  +
    }
        1192  +
    /// <p>The Amazon Web Services user that created the document.</p>
        1193  +
    pub fn owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1194  +
        self.owner = ::std::option::Option::Some(input.into());
        1195  +
        self
        1196  +
    }
        1197  +
    /// <p>The Amazon Web Services user that created the document.</p>
        1198  +
    pub fn set_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1199  +
        self.owner = input;
        1200  +
        self
        1201  +
    }
        1202  +
    /// <p>The Amazon Web Services user that created the document.</p>
        1203  +
    pub fn get_owner(&self) -> &::std::option::Option<::std::string::String> {
        1204  +
        &self.owner
        1205  +
    }
        1206  +
    /// <p>The date when the document was created.</p>
        1207  +
    pub fn created_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        1208  +
        self.created_date = ::std::option::Option::Some(input);
        1209  +
        self
        1210  +
    }
        1211  +
    /// <p>The date when the document was created.</p>
        1212  +
    pub fn set_created_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        1213  +
        self.created_date = input;
        1214  +
        self
        1215  +
    }
        1216  +
    /// <p>The date when the document was created.</p>
        1217  +
    pub fn get_created_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        1218  +
        &self.created_date
        1219  +
    }
        1220  +
    /// <p>The status of the SSM document.</p>
        1221  +
    pub fn status(mut self, input: crate::types::DocumentStatus) -> Self {
        1222  +
        self.status = ::std::option::Option::Some(input);
        1223  +
        self
        1224  +
    }
        1225  +
    /// <p>The status of the SSM document.</p>
        1226  +
    pub fn set_status(mut self, input: ::std::option::Option<crate::types::DocumentStatus>) -> Self {
        1227  +
        self.status = input;
        1228  +
        self
        1229  +
    }
        1230  +
    /// <p>The status of the SSM document.</p>
        1231  +
    pub fn get_status(&self) -> &::std::option::Option<crate::types::DocumentStatus> {
        1232  +
        &self.status
        1233  +
    }
        1234  +
    /// <p>A message returned by Amazon Web Services Systems Manager that explains the <code>Status</code> value. For example, a <code>Failed</code> status might be explained by the <code>StatusInformation</code> message, "The specified S3 bucket doesn't exist. Verify that the URL of the S3 bucket is correct."</p>
        1235  +
    pub fn status_information(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1236  +
        self.status_information = ::std::option::Option::Some(input.into());
        1237  +
        self
        1238  +
    }
        1239  +
    /// <p>A message returned by Amazon Web Services Systems Manager that explains the <code>Status</code> value. For example, a <code>Failed</code> status might be explained by the <code>StatusInformation</code> message, "The specified S3 bucket doesn't exist. Verify that the URL of the S3 bucket is correct."</p>
        1240  +
    pub fn set_status_information(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1241  +
        self.status_information = input;
        1242  +
        self
        1243  +
    }
        1244  +
    /// <p>A message returned by Amazon Web Services Systems Manager that explains the <code>Status</code> value. For example, a <code>Failed</code> status might be explained by the <code>StatusInformation</code> message, "The specified S3 bucket doesn't exist. Verify that the URL of the S3 bucket is correct."</p>
        1245  +
    pub fn get_status_information(&self) -> &::std::option::Option<::std::string::String> {
        1246  +
        &self.status_information
        1247  +
    }
        1248  +
    /// <p>The document version.</p>
        1249  +
    pub fn document_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1250  +
        self.document_version = ::std::option::Option::Some(input.into());
        1251  +
        self
        1252  +
    }
        1253  +
    /// <p>The document version.</p>
        1254  +
    pub fn set_document_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1255  +
        self.document_version = input;
        1256  +
        self
        1257  +
    }
        1258  +
    /// <p>The document version.</p>
        1259  +
    pub fn get_document_version(&self) -> &::std::option::Option<::std::string::String> {
        1260  +
        &self.document_version
        1261  +
    }
        1262  +
    /// <p>A description of the document.</p>
        1263  +
    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1264  +
        self.description = ::std::option::Option::Some(input.into());
        1265  +
        self
        1266  +
    }
        1267  +
    /// <p>A description of the document.</p>
        1268  +
    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1269  +
        self.description = input;
        1270  +
        self
        1271  +
    }
        1272  +
    /// <p>A description of the document.</p>
        1273  +
    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
        1274  +
        &self.description
        1275  +
    }
        1276  +
    /// Appends an item to `parameters`.
        1277  +
    ///
        1278  +
    /// To override the contents of this collection use [`set_parameters`](Self::set_parameters).
        1279  +
    ///
        1280  +
    /// <p>A description of the parameters for a document.</p>
        1281  +
    pub fn parameters(mut self, input: crate::types::DocumentParameter) -> Self {
        1282  +
        let mut v = self.parameters.unwrap_or_default();
        1283  +
        v.push(input);
        1284  +
        self.parameters = ::std::option::Option::Some(v);
        1285  +
        self
        1286  +
    }
        1287  +
    /// <p>A description of the parameters for a document.</p>
        1288  +
    pub fn set_parameters(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::DocumentParameter>>) -> Self {
        1289  +
        self.parameters = input;
        1290  +
        self
        1291  +
    }
        1292  +
    /// <p>A description of the parameters for a document.</p>
        1293  +
    pub fn get_parameters(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::DocumentParameter>> {
        1294  +
        &self.parameters
        1295  +
    }
        1296  +
    /// Appends an item to `platform_types`.
        1297  +
    ///
        1298  +
    /// To override the contents of this collection use [`set_platform_types`](Self::set_platform_types).
        1299  +
    ///
        1300  +
    /// <p>The list of operating system (OS) platforms compatible with this SSM document.</p>
        1301  +
    pub fn platform_types(mut self, input: crate::types::PlatformType) -> Self {
        1302  +
        let mut v = self.platform_types.unwrap_or_default();
        1303  +
        v.push(input);
        1304  +
        self.platform_types = ::std::option::Option::Some(v);
        1305  +
        self
        1306  +
    }
        1307  +
    /// <p>The list of operating system (OS) platforms compatible with this SSM document.</p>
        1308  +
    pub fn set_platform_types(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::PlatformType>>) -> Self {
        1309  +
        self.platform_types = input;
        1310  +
        self
        1311  +
    }
        1312  +
    /// <p>The list of operating system (OS) platforms compatible with this SSM document.</p>
        1313  +
    pub fn get_platform_types(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::PlatformType>> {
        1314  +
        &self.platform_types
        1315  +
    }
        1316  +
    /// <p>The type of document.</p>
        1317  +
    pub fn document_type(mut self, input: crate::types::DocumentType) -> Self {
        1318  +
        self.document_type = ::std::option::Option::Some(input);
        1319  +
        self
        1320  +
    }
        1321  +
    /// <p>The type of document.</p>
        1322  +
    pub fn set_document_type(mut self, input: ::std::option::Option<crate::types::DocumentType>) -> Self {
        1323  +
        self.document_type = input;
        1324  +
        self
        1325  +
    }
        1326  +
    /// <p>The type of document.</p>
        1327  +
    pub fn get_document_type(&self) -> &::std::option::Option<crate::types::DocumentType> {
        1328  +
        &self.document_type
        1329  +
    }
        1330  +
    /// <p>The schema version.</p>
        1331  +
    pub fn schema_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1332  +
        self.schema_version = ::std::option::Option::Some(input.into());
        1333  +
        self
        1334  +
    }
        1335  +
    /// <p>The schema version.</p>
        1336  +
    pub fn set_schema_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1337  +
        self.schema_version = input;
        1338  +
        self
        1339  +
    }
        1340  +
    /// <p>The schema version.</p>
        1341  +
    pub fn get_schema_version(&self) -> &::std::option::Option<::std::string::String> {
        1342  +
        &self.schema_version
        1343  +
    }
        1344  +
    /// <p>The latest version of the document.</p>
        1345  +
    pub fn latest_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1346  +
        self.latest_version = ::std::option::Option::Some(input.into());
        1347  +
        self
        1348  +
    }
        1349  +
    /// <p>The latest version of the document.</p>
        1350  +
    pub fn set_latest_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1351  +
        self.latest_version = input;
        1352  +
        self
        1353  +
    }
        1354  +
    /// <p>The latest version of the document.</p>
        1355  +
    pub fn get_latest_version(&self) -> &::std::option::Option<::std::string::String> {
        1356  +
        &self.latest_version
        1357  +
    }
        1358  +
    /// <p>The default version.</p>
        1359  +
    pub fn default_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1360  +
        self.default_version = ::std::option::Option::Some(input.into());
        1361  +
        self
        1362  +
    }
        1363  +
    /// <p>The default version.</p>
        1364  +
    pub fn set_default_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1365  +
        self.default_version = input;
        1366  +
        self
        1367  +
    }
        1368  +
    /// <p>The default version.</p>
        1369  +
    pub fn get_default_version(&self) -> &::std::option::Option<::std::string::String> {
        1370  +
        &self.default_version
        1371  +
    }
        1372  +
    /// <p>The document format, either JSON or YAML.</p>
        1373  +
    pub fn document_format(mut self, input: crate::types::DocumentFormat) -> Self {
        1374  +
        self.document_format = ::std::option::Option::Some(input);
        1375  +
        self
        1376  +
    }
        1377  +
    /// <p>The document format, either JSON or YAML.</p>
        1378  +
    pub fn set_document_format(mut self, input: ::std::option::Option<crate::types::DocumentFormat>) -> Self {
        1379  +
        self.document_format = input;
        1380  +
        self
        1381  +
    }
        1382  +
    /// <p>The document format, either JSON or YAML.</p>
        1383  +
    pub fn get_document_format(&self) -> &::std::option::Option<crate::types::DocumentFormat> {
        1384  +
        &self.document_format
        1385  +
    }
        1386  +
    /// <p>The target type which defines the kinds of resources the document can run on. For example, <code>/AWS::EC2::Instance</code>. For a list of valid resource types, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon Web Services resource and property types reference</a> in the <i>CloudFormation User Guide</i>.</p>
        1387  +
    pub fn target_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1388  +
        self.target_type = ::std::option::Option::Some(input.into());
        1389  +
        self
        1390  +
    }
        1391  +
    /// <p>The target type which defines the kinds of resources the document can run on. For example, <code>/AWS::EC2::Instance</code>. For a list of valid resource types, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon Web Services resource and property types reference</a> in the <i>CloudFormation User Guide</i>.</p>
        1392  +
    pub fn set_target_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1393  +
        self.target_type = input;
        1394  +
        self
        1395  +
    }
        1396  +
    /// <p>The target type which defines the kinds of resources the document can run on. For example, <code>/AWS::EC2::Instance</code>. For a list of valid resource types, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">Amazon Web Services resource and property types reference</a> in the <i>CloudFormation User Guide</i>.</p>
        1397  +
    pub fn get_target_type(&self) -> &::std::option::Option<::std::string::String> {
        1398  +
        &self.target_type
        1399  +
    }
        1400  +
    /// Appends an item to `tags`.
        1401  +
    ///
        1402  +
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        1403  +
    ///
        1404  +
    /// <p>The tags, or metadata, that have been applied to the document.</p>
        1405  +
    pub fn tags(mut self, input: crate::types::Tag) -> Self {
        1406  +
        let mut v = self.tags.unwrap_or_default();
        1407  +
        v.push(input);
        1408  +
        self.tags = ::std::option::Option::Some(v);
        1409  +
        self
        1410  +
    }
        1411  +
    /// <p>The tags, or metadata, that have been applied to the document.</p>
        1412  +
    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
        1413  +
        self.tags = input;
        1414  +
        self
        1415  +
    }
        1416  +
    /// <p>The tags, or metadata, that have been applied to the document.</p>
        1417  +
    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
        1418  +
        &self.tags
        1419  +
    }
        1420  +
    /// Appends an item to `attachments_information`.
        1421  +
    ///
        1422  +
    /// To override the contents of this collection use [`set_attachments_information`](Self::set_attachments_information).
        1423  +
    ///
        1424  +
    /// <p>Details about the document attachments, including names, locations, sizes, and so on.</p>
        1425  +
    pub fn attachments_information(mut self, input: crate::types::AttachmentInformation) -> Self {
        1426  +
        let mut v = self.attachments_information.unwrap_or_default();
        1427  +
        v.push(input);
        1428  +
        self.attachments_information = ::std::option::Option::Some(v);
        1429  +
        self
        1430  +
    }
        1431  +
    /// <p>Details about the document attachments, including names, locations, sizes, and so on.</p>
        1432  +
    pub fn set_attachments_information(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::AttachmentInformation>>) -> Self {
        1433  +
        self.attachments_information = input;
        1434  +
        self
        1435  +
    }
        1436  +
    /// <p>Details about the document attachments, including names, locations, sizes, and so on.</p>
        1437  +
    pub fn get_attachments_information(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::AttachmentInformation>> {
        1438  +
        &self.attachments_information
        1439  +
    }
        1440  +
    /// Appends an item to `requires`.
        1441  +
    ///
        1442  +
    /// To override the contents of this collection use [`set_requires`](Self::set_requires).
        1443  +
    ///
        1444  +
    /// <p>A list of SSM documents required by a document. For example, an <code>ApplicationConfiguration</code> document requires an <code>ApplicationConfigurationSchema</code> document.</p>
        1445  +
    pub fn requires(mut self, input: crate::types::DocumentRequires) -> Self {
        1446  +
        let mut v = self.requires.unwrap_or_default();
        1447  +
        v.push(input);
        1448  +
        self.requires = ::std::option::Option::Some(v);
        1449  +
        self
        1450  +
    }
        1451  +
    /// <p>A list of SSM documents required by a document. For example, an <code>ApplicationConfiguration</code> document requires an <code>ApplicationConfigurationSchema</code> document.</p>
        1452  +
    pub fn set_requires(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::DocumentRequires>>) -> Self {
        1453  +
        self.requires = input;
        1454  +
        self
        1455  +
    }
        1456  +
    /// <p>A list of SSM documents required by a document. For example, an <code>ApplicationConfiguration</code> document requires an <code>ApplicationConfigurationSchema</code> document.</p>
        1457  +
    pub fn get_requires(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::DocumentRequires>> {
        1458  +
        &self.requires
        1459  +
    }
        1460  +
    /// <p>The user in your organization who created the document.</p>
        1461  +
    pub fn author(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1462  +
        self.author = ::std::option::Option::Some(input.into());
        1463  +
        self
        1464  +
    }
        1465  +
    /// <p>The user in your organization who created the document.</p>
        1466  +
    pub fn set_author(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1467  +
        self.author = input;
        1468  +
        self
        1469  +
    }
        1470  +
    /// <p>The user in your organization who created the document.</p>
        1471  +
    pub fn get_author(&self) -> &::std::option::Option<::std::string::String> {
        1472  +
        &self.author
        1473  +
    }
        1474  +
    /// Appends an item to `review_information`.
        1475  +
    ///
        1476  +
    /// To override the contents of this collection use [`set_review_information`](Self::set_review_information).
        1477  +
    ///
        1478  +
    /// <p>Details about the review of a document.</p>
        1479  +
    pub fn review_information(mut self, input: crate::types::ReviewInformation) -> Self {
        1480  +
        let mut v = self.review_information.unwrap_or_default();
        1481  +
        v.push(input);
        1482  +
        self.review_information = ::std::option::Option::Some(v);
        1483  +
        self
        1484  +
    }
        1485  +
    /// <p>Details about the review of a document.</p>
        1486  +
    pub fn set_review_information(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ReviewInformation>>) -> Self {
        1487  +
        self.review_information = input;
        1488  +
        self
        1489  +
    }
        1490  +
    /// <p>Details about the review of a document.</p>
        1491  +
    pub fn get_review_information(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ReviewInformation>> {
        1492  +
        &self.review_information
        1493  +
    }
        1494  +
    /// <p>The version of the document currently approved for use in the organization.</p>
        1495  +
    pub fn approved_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1496  +
        self.approved_version = ::std::option::Option::Some(input.into());
        1497  +
        self
        1498  +
    }
        1499  +
    /// <p>The version of the document currently approved for use in the organization.</p>
        1500  +
    pub fn set_approved_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1501  +
        self.approved_version = input;
        1502  +
        self
        1503  +
    }
        1504  +
    /// <p>The version of the document currently approved for use in the organization.</p>
        1505  +
    pub fn get_approved_version(&self) -> &::std::option::Option<::std::string::String> {
        1506  +
        &self.approved_version
        1507  +
    }
        1508  +
    /// <p>The version of the document that is currently under review.</p>
        1509  +
    pub fn pending_review_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1510  +
        self.pending_review_version = ::std::option::Option::Some(input.into());
        1511  +
        self
        1512  +
    }
        1513  +
    /// <p>The version of the document that is currently under review.</p>
        1514  +
    pub fn set_pending_review_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1515  +
        self.pending_review_version = input;
        1516  +
        self
        1517  +
    }
        1518  +
    /// <p>The version of the document that is currently under review.</p>
        1519  +
    pub fn get_pending_review_version(&self) -> &::std::option::Option<::std::string::String> {
        1520  +
        &self.pending_review_version
        1521  +
    }
        1522  +
    /// <p>The current status of the review.</p>
        1523  +
    pub fn review_status(mut self, input: crate::types::ReviewStatus) -> Self {
        1524  +
        self.review_status = ::std::option::Option::Some(input);
        1525  +
        self
        1526  +
    }
        1527  +
    /// <p>The current status of the review.</p>
        1528  +
    pub fn set_review_status(mut self, input: ::std::option::Option<crate::types::ReviewStatus>) -> Self {
        1529  +
        self.review_status = input;
        1530  +
        self
        1531  +
    }
        1532  +
    /// <p>The current status of the review.</p>
        1533  +
    pub fn get_review_status(&self) -> &::std::option::Option<crate::types::ReviewStatus> {
        1534  +
        &self.review_status
        1535  +
    }
        1536  +
    /// Appends an item to `category`.
        1537  +
    ///
        1538  +
    /// To override the contents of this collection use [`set_category`](Self::set_category).
        1539  +
    ///
        1540  +
    /// <p>The classification of a document to help you identify and categorize its use.</p>
        1541  +
    pub fn category(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1542  +
        let mut v = self.category.unwrap_or_default();
        1543  +
        v.push(input.into());
        1544  +
        self.category = ::std::option::Option::Some(v);
        1545  +
        self
        1546  +
    }
        1547  +
    /// <p>The classification of a document to help you identify and categorize its use.</p>
        1548  +
    pub fn set_category(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
        1549  +
        self.category = input;
        1550  +
        self
        1551  +
    }
        1552  +
    /// <p>The classification of a document to help you identify and categorize its use.</p>
        1553  +
    pub fn get_category(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
        1554  +
        &self.category
        1555  +
    }
        1556  +
    /// Appends an item to `category_enum`.
        1557  +
    ///
        1558  +
    /// To override the contents of this collection use [`set_category_enum`](Self::set_category_enum).
        1559  +
    ///
        1560  +
    /// <p>The value that identifies a document's category.</p>
        1561  +
    pub fn category_enum(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1562  +
        let mut v = self.category_enum.unwrap_or_default();
        1563  +
        v.push(input.into());
        1564  +
        self.category_enum = ::std::option::Option::Some(v);
        1565  +
        self
        1566  +
    }
        1567  +
    /// <p>The value that identifies a document's category.</p>
        1568  +
    pub fn set_category_enum(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
        1569  +
        self.category_enum = input;
        1570  +
        self
        1571  +
    }
        1572  +
    /// <p>The value that identifies a document's category.</p>
        1573  +
    pub fn get_category_enum(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
        1574  +
        &self.category_enum
        1575  +
    }
        1576  +
    /// Consumes the builder and constructs a [`DocumentDescription`](crate::types::DocumentDescription).
        1577  +
    pub fn build(self) -> crate::types::DocumentDescription {
        1578  +
        crate::types::DocumentDescription {
        1579  +
            sha1: self.sha1,
        1580  +
            hash: self.hash,
        1581  +
            hash_type: self.hash_type,
        1582  +
            name: self.name,
        1583  +
            display_name: self.display_name,
        1584  +
            version_name: self.version_name,
        1585  +
            owner: self.owner,
        1586  +
            created_date: self.created_date,
        1587  +
            status: self.status,
        1588  +
            status_information: self.status_information,
        1589  +
            document_version: self.document_version,
        1590  +
            description: self.description,
        1591  +
            parameters: self.parameters,
        1592  +
            platform_types: self.platform_types,
        1593  +
            document_type: self.document_type,
        1594  +
            schema_version: self.schema_version,
        1595  +
            latest_version: self.latest_version,
        1596  +
            default_version: self.default_version,
        1597  +
            document_format: self.document_format,
        1598  +
            target_type: self.target_type,
        1599  +
            tags: self.tags,
        1600  +
            attachments_information: self.attachments_information,
        1601  +
            requires: self.requires,
        1602  +
            author: self.author,
        1603  +
            review_information: self.review_information,
        1604  +
            approved_version: self.approved_version,
        1605  +
            pending_review_version: self.pending_review_version,
        1606  +
            review_status: self.review_status,
        1607  +
            category: self.category,
        1608  +
            category_enum: self.category_enum,
        1609  +
        }
        1610  +
    }
        1611  +
}