AWS SDK

AWS SDK

rev. aa190e630077955f0bc8f58dee6a16530c1e0578

Files changed:

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

@@ -0,1 +0,206 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>Describes a filter for a specific list of managed nodes. You can filter node information by using tags. You specify tags by using a key-value mapping.</p>
           4  +
/// <p>Use this operation instead of the <code>DescribeInstanceInformationRequest$InstanceInformationFilterList</code> method. The <code>InstanceInformationFilterList</code> method is a legacy method and doesn't support tags.</p>
           5  +
#[non_exhaustive]
           6  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           7  +
pub struct InstanceInformationFilter {
           8  +
    /// <p>The name of the filter.</p>
           9  +
    pub key: crate::types::InstanceInformationFilterKey,
          10  +
    /// <p>The filter values.</p>
          11  +
    pub value_set: ::std::vec::Vec<::std::string::String>,
          12  +
}
          13  +
impl InstanceInformationFilter {
          14  +
    /// <p>The name of the filter.</p>
          15  +
    pub fn key(&self) -> &crate::types::InstanceInformationFilterKey {
          16  +
        &self.key
          17  +
    }
          18  +
    /// <p>The filter values.</p>
          19  +
    pub fn value_set(&self) -> &[::std::string::String] {
          20  +
        use std::ops::Deref;
          21  +
        self.value_set.deref()
          22  +
    }
          23  +
}
          24  +
static INSTANCEINFORMATIONFILTER_MEMBER_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          25  +
    ::aws_smithy_schema::ShapeId::from_parts(
          26  +
        "com.amazonaws.ssm#InstanceInformationFilter$key",
          27  +
        "com.amazonaws.ssm",
          28  +
        "InstanceInformationFilter",
          29  +
    ),
          30  +
    ::aws_smithy_schema::ShapeType::String,
          31  +
    "key",
          32  +
    0,
          33  +
);
          34  +
static INSTANCEINFORMATIONFILTER_MEMBER_VALUE_SET_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          35  +
    ::aws_smithy_schema::ShapeId::from_parts(
          36  +
        "com.amazonaws.ssm#InstanceInformationFilterValueSet$member",
          37  +
        "com.amazonaws.ssm",
          38  +
        "InstanceInformationFilterValueSet",
          39  +
    ),
          40  +
    ::aws_smithy_schema::ShapeType::String,
          41  +
    "member",
          42  +
    0,
          43  +
)
          44  +
.with_xml_name("InstanceInformationFilterValue");
          45  +
static INSTANCEINFORMATIONFILTER_MEMBER_VALUE_SET: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          46  +
    ::aws_smithy_schema::ShapeId::from_parts(
          47  +
        "com.amazonaws.ssm#InstanceInformationFilter$valueSet",
          48  +
        "com.amazonaws.ssm",
          49  +
        "InstanceInformationFilter",
          50  +
    ),
          51  +
    ::aws_smithy_schema::ShapeType::List,
          52  +
    "valueSet",
          53  +
    1,
          54  +
)
          55  +
.with_list_member(&INSTANCEINFORMATIONFILTER_MEMBER_VALUE_SET_MEMBER);
          56  +
static INSTANCEINFORMATIONFILTER_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
          57  +
    ::aws_smithy_schema::ShapeId::from_parts(
          58  +
        "com.amazonaws.ssm#InstanceInformationFilter",
          59  +
        "com.amazonaws.ssm",
          60  +
        "InstanceInformationFilter",
          61  +
    ),
          62  +
    ::aws_smithy_schema::ShapeType::Structure,
          63  +
    &[&INSTANCEINFORMATIONFILTER_MEMBER_KEY, &INSTANCEINFORMATIONFILTER_MEMBER_VALUE_SET],
          64  +
);
          65  +
impl InstanceInformationFilter {
          66  +
    /// The schema for this shape.
          67  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &INSTANCEINFORMATIONFILTER_SCHEMA;
          68  +
}
          69  +
impl ::aws_smithy_schema::serde::SerializableStruct for InstanceInformationFilter {
          70  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
          71  +
    fn serialize_members(
          72  +
        &self,
          73  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
          74  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
          75  +
        {
          76  +
            let val = &self.key;
          77  +
            ser.write_string(&INSTANCEINFORMATIONFILTER_MEMBER_KEY, val.as_str())?;
          78  +
        }
          79  +
        {
          80  +
            let val = &self.value_set;
          81  +
          82  +
            ser.write_list(
          83  +
                &INSTANCEINFORMATIONFILTER_MEMBER_VALUE_SET,
          84  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
          85  +
                    for item in val {
          86  +
                        ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
          87  +
                    }
          88  +
                    Ok(())
          89  +
                },
          90  +
            )?;
          91  +
        }
          92  +
        Ok(())
          93  +
    }
          94  +
}
          95  +
impl InstanceInformationFilter {
          96  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
          97  +
    pub fn deserialize(
          98  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          99  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         100  +
        #[allow(unused_variables, unused_mut)]
         101  +
        let mut builder = Self::builder();
         102  +
        #[allow(
         103  +
            unused_variables,
         104  +
            unreachable_code,
         105  +
            clippy::single_match,
         106  +
            clippy::match_single_binding,
         107  +
            clippy::diverging_sub_expression
         108  +
        )]
         109  +
        deserializer.read_struct(&INSTANCEINFORMATIONFILTER_SCHEMA, &mut |member, deser| {
         110  +
            match member.member_index() {
         111  +
                Some(0) => {
         112  +
                    builder.key = Some(crate::types::InstanceInformationFilterKey::from(deser.read_string(member)?.as_str()));
         113  +
                }
         114  +
                Some(1) => {
         115  +
                    builder.value_set = Some(deser.read_string_list(member)?);
         116  +
                }
         117  +
                _ => {}
         118  +
            }
         119  +
            Ok(())
         120  +
        })?;
         121  +
        builder.value_set = builder.value_set.or(Some(Vec::new()));
         122  +
        builder.build().map_err(|e| aws_smithy_schema::serde::SerdeError::custom(e.to_string()))
         123  +
    }
         124  +
}
         125  +
impl InstanceInformationFilter {
         126  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         127  +
    pub fn deserialize_with_response(
         128  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         129  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         130  +
        _status: u16,
         131  +
        _body: &[u8],
         132  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         133  +
        Self::deserialize(deserializer)
         134  +
    }
         135  +
}
         136  +
impl InstanceInformationFilter {
         137  +
    /// Creates a new builder-style object to manufacture [`InstanceInformationFilter`](crate::types::InstanceInformationFilter).
         138  +
    pub fn builder() -> crate::types::builders::InstanceInformationFilterBuilder {
         139  +
        crate::types::builders::InstanceInformationFilterBuilder::default()
         140  +
    }
         141  +
}
         142  +
         143  +
/// A builder for [`InstanceInformationFilter`](crate::types::InstanceInformationFilter).
         144  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         145  +
#[non_exhaustive]
         146  +
pub struct InstanceInformationFilterBuilder {
         147  +
    pub(crate) key: ::std::option::Option<crate::types::InstanceInformationFilterKey>,
         148  +
    pub(crate) value_set: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         149  +
}
         150  +
impl InstanceInformationFilterBuilder {
         151  +
    /// <p>The name of the filter.</p>
         152  +
    /// This field is required.
         153  +
    pub fn key(mut self, input: crate::types::InstanceInformationFilterKey) -> Self {
         154  +
        self.key = ::std::option::Option::Some(input);
         155  +
        self
         156  +
    }
         157  +
    /// <p>The name of the filter.</p>
         158  +
    pub fn set_key(mut self, input: ::std::option::Option<crate::types::InstanceInformationFilterKey>) -> Self {
         159  +
        self.key = input;
         160  +
        self
         161  +
    }
         162  +
    /// <p>The name of the filter.</p>
         163  +
    pub fn get_key(&self) -> &::std::option::Option<crate::types::InstanceInformationFilterKey> {
         164  +
        &self.key
         165  +
    }
         166  +
    /// Appends an item to `value_set`.
         167  +
    ///
         168  +
    /// To override the contents of this collection use [`set_value_set`](Self::set_value_set).
         169  +
    ///
         170  +
    /// <p>The filter values.</p>
         171  +
    pub fn value_set(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         172  +
        let mut v = self.value_set.unwrap_or_default();
         173  +
        v.push(input.into());
         174  +
        self.value_set = ::std::option::Option::Some(v);
         175  +
        self
         176  +
    }
         177  +
    /// <p>The filter values.</p>
         178  +
    pub fn set_value_set(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
         179  +
        self.value_set = input;
         180  +
        self
         181  +
    }
         182  +
    /// <p>The filter values.</p>
         183  +
    pub fn get_value_set(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
         184  +
        &self.value_set
         185  +
    }
         186  +
    /// Consumes the builder and constructs a [`InstanceInformationFilter`](crate::types::InstanceInformationFilter).
         187  +
    /// This method will fail if any of the following fields are not set:
         188  +
    /// - [`key`](crate::types::builders::InstanceInformationFilterBuilder::key)
         189  +
    /// - [`value_set`](crate::types::builders::InstanceInformationFilterBuilder::value_set)
         190  +
    pub fn build(self) -> ::std::result::Result<crate::types::InstanceInformationFilter, ::aws_smithy_types::error::operation::BuildError> {
         191  +
        ::std::result::Result::Ok(crate::types::InstanceInformationFilter {
         192  +
            key: self.key.ok_or_else(|| {
         193  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
         194  +
                    "key",
         195  +
                    "key was not specified but it is required when building InstanceInformationFilter",
         196  +
                )
         197  +
            })?,
         198  +
            value_set: self.value_set.ok_or_else(|| {
         199  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
         200  +
                    "value_set",
         201  +
                    "value_set was not specified but it is required when building InstanceInformationFilter",
         202  +
                )
         203  +
            })?,
         204  +
        })
         205  +
    }
         206  +
}

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

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

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

@@ -0,1 +0,285 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>The filters to describe or get information about your managed nodes.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           6  +
pub struct InstanceInformationStringFilter {
           7  +
    /// <p>The filter key name to describe your managed nodes.</p>
           8  +
    /// <p>Valid filter key values: ActivationIds | AgentVersion | AssociationStatus | IamRole | InstanceIds | PingStatus | PlatformTypes | ResourceType | SourceIds | SourceTypes | "tag-key" | "tag:<code>{keyname}</code></p>
           9  +
    /// <ul>
          10  +
    /// <li>
          11  +
    /// <p>Valid values for the <code>AssociationStatus</code> filter key: Success | Pending | Failed</p></li>
          12  +
    /// <li>
          13  +
    /// <p>Valid values for the <code>PingStatus</code> filter key: Online | ConnectionLost | Inactive (deprecated)</p></li>
          14  +
    /// <li>
          15  +
    /// <p>Valid values for the <code>PlatformTypes</code> filter key: Windows | Linux | MacOS</p></li>
          16  +
    /// <li>
          17  +
    /// <p>Valid values for the <code>ResourceType</code> filter key: EC2Instance | ManagedInstance</p></li>
          18  +
    /// <li>
          19  +
    /// <p>Valid values for the <code>SourceType</code> filter key: AWS::EC2::Instance | AWS::SSM::ManagedInstance | AWS::IoT::Thing | Microsoft.Compute/virtualMachines</p></li>
          20  +
    /// <li>
          21  +
    /// <p>Valid tag examples: <code>Key=tag-key,Values=Purpose</code> | <code>Key=tag:Purpose,Values=Test</code>.</p></li>
          22  +
    /// </ul>
          23  +
    pub key: ::std::string::String,
          24  +
    /// <p>The filter values.</p>
          25  +
    pub values: ::std::vec::Vec<::std::string::String>,
          26  +
}
          27  +
impl InstanceInformationStringFilter {
          28  +
    /// <p>The filter key name to describe your managed nodes.</p>
          29  +
    /// <p>Valid filter key values: ActivationIds | AgentVersion | AssociationStatus | IamRole | InstanceIds | PingStatus | PlatformTypes | ResourceType | SourceIds | SourceTypes | "tag-key" | "tag:<code>{keyname}</code></p>
          30  +
    /// <ul>
          31  +
    /// <li>
          32  +
    /// <p>Valid values for the <code>AssociationStatus</code> filter key: Success | Pending | Failed</p></li>
          33  +
    /// <li>
          34  +
    /// <p>Valid values for the <code>PingStatus</code> filter key: Online | ConnectionLost | Inactive (deprecated)</p></li>
          35  +
    /// <li>
          36  +
    /// <p>Valid values for the <code>PlatformTypes</code> filter key: Windows | Linux | MacOS</p></li>
          37  +
    /// <li>
          38  +
    /// <p>Valid values for the <code>ResourceType</code> filter key: EC2Instance | ManagedInstance</p></li>
          39  +
    /// <li>
          40  +
    /// <p>Valid values for the <code>SourceType</code> filter key: AWS::EC2::Instance | AWS::SSM::ManagedInstance | AWS::IoT::Thing | Microsoft.Compute/virtualMachines</p></li>
          41  +
    /// <li>
          42  +
    /// <p>Valid tag examples: <code>Key=tag-key,Values=Purpose</code> | <code>Key=tag:Purpose,Values=Test</code>.</p></li>
          43  +
    /// </ul>
          44  +
    pub fn key(&self) -> &str {
          45  +
        use std::ops::Deref;
          46  +
        self.key.deref()
          47  +
    }
          48  +
    /// <p>The filter values.</p>
          49  +
    pub fn values(&self) -> &[::std::string::String] {
          50  +
        use std::ops::Deref;
          51  +
        self.values.deref()
          52  +
    }
          53  +
}
          54  +
static INSTANCEINFORMATIONSTRINGFILTER_MEMBER_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          55  +
    ::aws_smithy_schema::ShapeId::from_parts(
          56  +
        "com.amazonaws.ssm#InstanceInformationStringFilter$Key",
          57  +
        "com.amazonaws.ssm",
          58  +
        "InstanceInformationStringFilter",
          59  +
    ),
          60  +
    ::aws_smithy_schema::ShapeType::String,
          61  +
    "Key",
          62  +
    0,
          63  +
);
          64  +
static INSTANCEINFORMATIONSTRINGFILTER_MEMBER_VALUES_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          65  +
    ::aws_smithy_schema::ShapeId::from_parts(
          66  +
        "com.amazonaws.ssm#InstanceInformationFilterValueSet$member",
          67  +
        "com.amazonaws.ssm",
          68  +
        "InstanceInformationFilterValueSet",
          69  +
    ),
          70  +
    ::aws_smithy_schema::ShapeType::String,
          71  +
    "member",
          72  +
    0,
          73  +
)
          74  +
.with_xml_name("InstanceInformationFilterValue");
          75  +
static INSTANCEINFORMATIONSTRINGFILTER_MEMBER_VALUES: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          76  +
    ::aws_smithy_schema::ShapeId::from_parts(
          77  +
        "com.amazonaws.ssm#InstanceInformationStringFilter$Values",
          78  +
        "com.amazonaws.ssm",
          79  +
        "InstanceInformationStringFilter",
          80  +
    ),
          81  +
    ::aws_smithy_schema::ShapeType::List,
          82  +
    "Values",
          83  +
    1,
          84  +
)
          85  +
.with_list_member(&INSTANCEINFORMATIONSTRINGFILTER_MEMBER_VALUES_MEMBER);
          86  +
static INSTANCEINFORMATIONSTRINGFILTER_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
          87  +
    ::aws_smithy_schema::ShapeId::from_parts(
          88  +
        "com.amazonaws.ssm#InstanceInformationStringFilter",
          89  +
        "com.amazonaws.ssm",
          90  +
        "InstanceInformationStringFilter",
          91  +
    ),
          92  +
    ::aws_smithy_schema::ShapeType::Structure,
          93  +
    &[
          94  +
        &INSTANCEINFORMATIONSTRINGFILTER_MEMBER_KEY,
          95  +
        &INSTANCEINFORMATIONSTRINGFILTER_MEMBER_VALUES,
          96  +
    ],
          97  +
);
          98  +
impl InstanceInformationStringFilter {
          99  +
    /// The schema for this shape.
         100  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &INSTANCEINFORMATIONSTRINGFILTER_SCHEMA;
         101  +
}
         102  +
impl ::aws_smithy_schema::serde::SerializableStruct for InstanceInformationStringFilter {
         103  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         104  +
    fn serialize_members(
         105  +
        &self,
         106  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         107  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         108  +
        {
         109  +
            let val = &self.key;
         110  +
            ser.write_string(&INSTANCEINFORMATIONSTRINGFILTER_MEMBER_KEY, val)?;
         111  +
        }
         112  +
        {
         113  +
            let val = &self.values;
         114  +
         115  +
            ser.write_list(
         116  +
                &INSTANCEINFORMATIONSTRINGFILTER_MEMBER_VALUES,
         117  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         118  +
                    for item in val {
         119  +
                        ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
         120  +
                    }
         121  +
                    Ok(())
         122  +
                },
         123  +
            )?;
         124  +
        }
         125  +
        Ok(())
         126  +
    }
         127  +
}
         128  +
impl InstanceInformationStringFilter {
         129  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         130  +
    pub fn deserialize(
         131  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         132  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         133  +
        #[allow(unused_variables, unused_mut)]
         134  +
        let mut builder = Self::builder();
         135  +
        #[allow(
         136  +
            unused_variables,
         137  +
            unreachable_code,
         138  +
            clippy::single_match,
         139  +
            clippy::match_single_binding,
         140  +
            clippy::diverging_sub_expression
         141  +
        )]
         142  +
        deserializer.read_struct(&INSTANCEINFORMATIONSTRINGFILTER_SCHEMA, &mut |member, deser| {
         143  +
            match member.member_index() {
         144  +
                Some(0) => {
         145  +
                    builder.key = Some(deser.read_string(member)?);
         146  +
                }
         147  +
                Some(1) => {
         148  +
                    builder.values = Some(deser.read_string_list(member)?);
         149  +
                }
         150  +
                _ => {}
         151  +
            }
         152  +
            Ok(())
         153  +
        })?;
         154  +
        builder.key = builder.key.or(Some(String::new()));
         155  +
        builder.values = builder.values.or(Some(Vec::new()));
         156  +
        builder.build().map_err(|e| aws_smithy_schema::serde::SerdeError::custom(e.to_string()))
         157  +
    }
         158  +
}
         159  +
impl InstanceInformationStringFilter {
         160  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         161  +
    pub fn deserialize_with_response(
         162  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         163  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         164  +
        _status: u16,
         165  +
        _body: &[u8],
         166  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         167  +
        Self::deserialize(deserializer)
         168  +
    }
         169  +
}
         170  +
impl InstanceInformationStringFilter {
         171  +
    /// Creates a new builder-style object to manufacture [`InstanceInformationStringFilter`](crate::types::InstanceInformationStringFilter).
         172  +
    pub fn builder() -> crate::types::builders::InstanceInformationStringFilterBuilder {
         173  +
        crate::types::builders::InstanceInformationStringFilterBuilder::default()
         174  +
    }
         175  +
}
         176  +
         177  +
/// A builder for [`InstanceInformationStringFilter`](crate::types::InstanceInformationStringFilter).
         178  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         179  +
#[non_exhaustive]
         180  +
pub struct InstanceInformationStringFilterBuilder {
         181  +
    pub(crate) key: ::std::option::Option<::std::string::String>,
         182  +
    pub(crate) values: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         183  +
}
         184  +
impl InstanceInformationStringFilterBuilder {
         185  +
    /// <p>The filter key name to describe your managed nodes.</p>
         186  +
    /// <p>Valid filter key values: ActivationIds | AgentVersion | AssociationStatus | IamRole | InstanceIds | PingStatus | PlatformTypes | ResourceType | SourceIds | SourceTypes | "tag-key" | "tag:<code>{keyname}</code></p>
         187  +
    /// <ul>
         188  +
    /// <li>
         189  +
    /// <p>Valid values for the <code>AssociationStatus</code> filter key: Success | Pending | Failed</p></li>
         190  +
    /// <li>
         191  +
    /// <p>Valid values for the <code>PingStatus</code> filter key: Online | ConnectionLost | Inactive (deprecated)</p></li>
         192  +
    /// <li>
         193  +
    /// <p>Valid values for the <code>PlatformTypes</code> filter key: Windows | Linux | MacOS</p></li>
         194  +
    /// <li>
         195  +
    /// <p>Valid values for the <code>ResourceType</code> filter key: EC2Instance | ManagedInstance</p></li>
         196  +
    /// <li>
         197  +
    /// <p>Valid values for the <code>SourceType</code> filter key: AWS::EC2::Instance | AWS::SSM::ManagedInstance | AWS::IoT::Thing | Microsoft.Compute/virtualMachines</p></li>
         198  +
    /// <li>
         199  +
    /// <p>Valid tag examples: <code>Key=tag-key,Values=Purpose</code> | <code>Key=tag:Purpose,Values=Test</code>.</p></li>
         200  +
    /// </ul>
         201  +
    /// This field is required.
         202  +
    pub fn key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         203  +
        self.key = ::std::option::Option::Some(input.into());
         204  +
        self
         205  +
    }
         206  +
    /// <p>The filter key name to describe your managed nodes.</p>
         207  +
    /// <p>Valid filter key values: ActivationIds | AgentVersion | AssociationStatus | IamRole | InstanceIds | PingStatus | PlatformTypes | ResourceType | SourceIds | SourceTypes | "tag-key" | "tag:<code>{keyname}</code></p>
         208  +
    /// <ul>
         209  +
    /// <li>
         210  +
    /// <p>Valid values for the <code>AssociationStatus</code> filter key: Success | Pending | Failed</p></li>
         211  +
    /// <li>
         212  +
    /// <p>Valid values for the <code>PingStatus</code> filter key: Online | ConnectionLost | Inactive (deprecated)</p></li>
         213  +
    /// <li>
         214  +
    /// <p>Valid values for the <code>PlatformTypes</code> filter key: Windows | Linux | MacOS</p></li>
         215  +
    /// <li>
         216  +
    /// <p>Valid values for the <code>ResourceType</code> filter key: EC2Instance | ManagedInstance</p></li>
         217  +
    /// <li>
         218  +
    /// <p>Valid values for the <code>SourceType</code> filter key: AWS::EC2::Instance | AWS::SSM::ManagedInstance | AWS::IoT::Thing | Microsoft.Compute/virtualMachines</p></li>
         219  +
    /// <li>
         220  +
    /// <p>Valid tag examples: <code>Key=tag-key,Values=Purpose</code> | <code>Key=tag:Purpose,Values=Test</code>.</p></li>
         221  +
    /// </ul>
         222  +
    pub fn set_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         223  +
        self.key = input;
         224  +
        self
         225  +
    }
         226  +
    /// <p>The filter key name to describe your managed nodes.</p>
         227  +
    /// <p>Valid filter key values: ActivationIds | AgentVersion | AssociationStatus | IamRole | InstanceIds | PingStatus | PlatformTypes | ResourceType | SourceIds | SourceTypes | "tag-key" | "tag:<code>{keyname}</code></p>
         228  +
    /// <ul>
         229  +
    /// <li>
         230  +
    /// <p>Valid values for the <code>AssociationStatus</code> filter key: Success | Pending | Failed</p></li>
         231  +
    /// <li>
         232  +
    /// <p>Valid values for the <code>PingStatus</code> filter key: Online | ConnectionLost | Inactive (deprecated)</p></li>
         233  +
    /// <li>
         234  +
    /// <p>Valid values for the <code>PlatformTypes</code> filter key: Windows | Linux | MacOS</p></li>
         235  +
    /// <li>
         236  +
    /// <p>Valid values for the <code>ResourceType</code> filter key: EC2Instance | ManagedInstance</p></li>
         237  +
    /// <li>
         238  +
    /// <p>Valid values for the <code>SourceType</code> filter key: AWS::EC2::Instance | AWS::SSM::ManagedInstance | AWS::IoT::Thing | Microsoft.Compute/virtualMachines</p></li>
         239  +
    /// <li>
         240  +
    /// <p>Valid tag examples: <code>Key=tag-key,Values=Purpose</code> | <code>Key=tag:Purpose,Values=Test</code>.</p></li>
         241  +
    /// </ul>
         242  +
    pub fn get_key(&self) -> &::std::option::Option<::std::string::String> {
         243  +
        &self.key
         244  +
    }
         245  +
    /// Appends an item to `values`.
         246  +
    ///
         247  +
    /// To override the contents of this collection use [`set_values`](Self::set_values).
         248  +
    ///
         249  +
    /// <p>The filter values.</p>
         250  +
    pub fn values(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         251  +
        let mut v = self.values.unwrap_or_default();
         252  +
        v.push(input.into());
         253  +
        self.values = ::std::option::Option::Some(v);
         254  +
        self
         255  +
    }
         256  +
    /// <p>The filter values.</p>
         257  +
    pub fn set_values(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
         258  +
        self.values = input;
         259  +
        self
         260  +
    }
         261  +
    /// <p>The filter values.</p>
         262  +
    pub fn get_values(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
         263  +
        &self.values
         264  +
    }
         265  +
    /// Consumes the builder and constructs a [`InstanceInformationStringFilter`](crate::types::InstanceInformationStringFilter).
         266  +
    /// This method will fail if any of the following fields are not set:
         267  +
    /// - [`key`](crate::types::builders::InstanceInformationStringFilterBuilder::key)
         268  +
    /// - [`values`](crate::types::builders::InstanceInformationStringFilterBuilder::values)
         269  +
    pub fn build(self) -> ::std::result::Result<crate::types::InstanceInformationStringFilter, ::aws_smithy_types::error::operation::BuildError> {
         270  +
        ::std::result::Result::Ok(crate::types::InstanceInformationStringFilter {
         271  +
            key: self.key.ok_or_else(|| {
         272  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
         273  +
                    "key",
         274  +
                    "key was not specified but it is required when building InstanceInformationStringFilter",
         275  +
                )
         276  +
            })?,
         277  +
            values: self.values.ok_or_else(|| {
         278  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
         279  +
                    "values",
         280  +
                    "values was not specified but it is required when building InstanceInformationStringFilter",
         281  +
                )
         282  +
            })?,
         283  +
        })
         284  +
    }
         285  +
}

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

@@ -0,1 +0,1237 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>Defines the high-level patch compliance state for a managed node, providing information about the number of installed, missing, not applicable, and failed patches along with metadata about the operation when this information was gathered for the managed node.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
           6  +
pub struct InstancePatchState {
           7  +
    /// <p>The ID of the managed node the high-level patch compliance information was collected for.</p>
           8  +
    pub instance_id: ::std::string::String,
           9  +
    /// <p>The name of the patch group the managed node belongs to.</p>
          10  +
    pub patch_group: ::std::string::String,
          11  +
    /// <p>The ID of the patch baseline used to patch the managed node.</p>
          12  +
    pub baseline_id: ::std::string::String,
          13  +
    /// <p>The ID of the patch baseline snapshot used during the patching operation when this compliance data was collected.</p>
          14  +
    pub snapshot_id: ::std::option::Option<::std::string::String>,
          15  +
    /// <p>An https URL or an Amazon Simple Storage Service (Amazon S3) path-style URL to a list of patches to be installed. This patch installation list, which you maintain in an S3 bucket in YAML format and specify in the SSM document <code>AWS-RunPatchBaseline</code>, overrides the patches specified by the default patch baseline.</p>
          16  +
    /// <p>For more information about the <code>InstallOverrideList</code> parameter, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-about-aws-runpatchbaseline.html">SSM Command document for patching: <code>AWS-RunPatchBaseline</code> </a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
          17  +
    pub install_override_list: ::std::option::Option<::std::string::String>,
          18  +
    /// <p>Placeholder information. This field will always be empty in the current release of the service.</p>
          19  +
    pub owner_information: ::std::option::Option<::std::string::String>,
          20  +
    /// <p>The number of patches from the patch baseline that are installed on the managed node.</p>
          21  +
    pub installed_count: i32,
          22  +
    /// <p>The number of patches not specified in the patch baseline that are installed on the managed node.</p>
          23  +
    pub installed_other_count: i32,
          24  +
    /// <p>The number of patches installed by Patch Manager since the last time the managed node was rebooted.</p>
          25  +
    pub installed_pending_reboot_count: ::std::option::Option<i32>,
          26  +
    /// <p>The number of patches installed on a managed node that are specified in a <code>RejectedPatches</code> list. Patches with a status of <code>InstalledRejected</code> were typically installed before they were added to a <code>RejectedPatches</code> list.</p><note>
          27  +
    /// <p>If <code>ALLOW_AS_DEPENDENCY</code> is the specified option for <code>RejectedPatchesAction</code>, the value of <code>InstalledRejectedCount</code> will always be <code>0</code> (zero).</p>
          28  +
    /// </note>
          29  +
    pub installed_rejected_count: ::std::option::Option<i32>,
          30  +
    /// <p>The number of patches from the patch baseline that are applicable for the managed node but aren't currently installed.</p>
          31  +
    pub missing_count: i32,
          32  +
    /// <p>The number of patches from the patch baseline that were attempted to be installed during the last patching operation, but failed to install.</p>
          33  +
    pub failed_count: i32,
          34  +
    /// <p>The number of patches beyond the supported limit of <code>NotApplicableCount</code> that aren't reported by name to Inventory. Inventory is a tool in Amazon Web Services Systems Manager.</p>
          35  +
    pub unreported_not_applicable_count: ::std::option::Option<i32>,
          36  +
    /// <p>The number of patches from the patch baseline that aren't applicable for the managed node and therefore aren't installed on the node. This number may be truncated if the list of patch names is very large. The number of patches beyond this limit are reported in <code>UnreportedNotApplicableCount</code>.</p>
          37  +
    pub not_applicable_count: i32,
          38  +
    /// <p>The number of security-related patches that are available but not approved because they didn't meet the patch baseline requirements. For example, an updated version of a patch might have been released before the specified auto-approval period was over.</p>
          39  +
    /// <p>Applies to Windows Server managed nodes only.</p>
          40  +
    pub available_security_update_count: ::std::option::Option<i32>,
          41  +
    /// <p>The time the most recent patching operation was started on the managed node.</p>
          42  +
    pub operation_start_time: ::aws_smithy_types::DateTime,
          43  +
    /// <p>The time the most recent patching operation completed on the managed node.</p>
          44  +
    pub operation_end_time: ::aws_smithy_types::DateTime,
          45  +
    /// <p>The type of patching operation that was performed: or</p>
          46  +
    /// <ul>
          47  +
    /// <li>
          48  +
    /// <p><code>SCAN</code> assesses the patch compliance state.</p></li>
          49  +
    /// <li>
          50  +
    /// <p><code>INSTALL</code> installs missing patches.</p></li>
          51  +
    /// </ul>
          52  +
    pub operation: crate::types::PatchOperationType,
          53  +
    /// <p>The time of the last attempt to patch the managed node with <code>NoReboot</code> specified as the reboot option.</p>
          54  +
    pub last_no_reboot_install_operation_time: ::std::option::Option<::aws_smithy_types::DateTime>,
          55  +
    /// <p>Indicates the reboot option specified in the patch baseline.</p><note>
          56  +
    /// <p>Reboot options apply to <code>Install</code> operations only. Reboots aren't attempted for Patch Manager <code>Scan</code> operations.</p>
          57  +
    /// </note>
          58  +
    /// <ul>
          59  +
    /// <li>
          60  +
    /// <p><code>RebootIfNeeded</code>: Patch Manager tries to reboot the managed node if it installed any patches, or if any patches are detected with a status of <code>InstalledPendingReboot</code>.</p></li>
          61  +
    /// <li>
          62  +
    /// <p><code>NoReboot</code>: Patch Manager attempts to install missing packages without trying to reboot the system. Patches installed with this option are assigned a status of <code>InstalledPendingReboot</code>. These patches might not be in effect until a reboot is performed.</p></li>
          63  +
    /// </ul>
          64  +
    pub reboot_option: ::std::option::Option<crate::types::RebootOption>,
          65  +
    /// <p>The number of patches per node that are specified as <code>Critical</code> for compliance reporting in the patch baseline aren't installed. These patches might be missing, have failed installation, were rejected, or were installed but awaiting a required managed node reboot. The status of these managed nodes is <code>NON_COMPLIANT</code>.</p>
          66  +
    pub critical_non_compliant_count: ::std::option::Option<i32>,
          67  +
    /// <p>The number of patches per node that are specified as <code>Security</code> in a patch advisory aren't installed. These patches might be missing, have failed installation, were rejected, or were installed but awaiting a required managed node reboot. The status of these managed nodes is <code>NON_COMPLIANT</code>.</p>
          68  +
    pub security_non_compliant_count: ::std::option::Option<i32>,
          69  +
    /// <p>The number of patches per node that are specified as other than <code>Critical</code> or <code>Security</code> but aren't compliant with the patch baseline. The status of these managed nodes is <code>NON_COMPLIANT</code>.</p>
          70  +
    pub other_non_compliant_count: ::std::option::Option<i32>,
          71  +
}
          72  +
impl InstancePatchState {
          73  +
    /// <p>The ID of the managed node the high-level patch compliance information was collected for.</p>
          74  +
    pub fn instance_id(&self) -> &str {
          75  +
        use std::ops::Deref;
          76  +
        self.instance_id.deref()
          77  +
    }
          78  +
    /// <p>The name of the patch group the managed node belongs to.</p>
          79  +
    pub fn patch_group(&self) -> &str {
          80  +
        use std::ops::Deref;
          81  +
        self.patch_group.deref()
          82  +
    }
          83  +
    /// <p>The ID of the patch baseline used to patch the managed node.</p>
          84  +
    pub fn baseline_id(&self) -> &str {
          85  +
        use std::ops::Deref;
          86  +
        self.baseline_id.deref()
          87  +
    }
          88  +
    /// <p>The ID of the patch baseline snapshot used during the patching operation when this compliance data was collected.</p>
          89  +
    pub fn snapshot_id(&self) -> ::std::option::Option<&str> {
          90  +
        self.snapshot_id.as_deref()
          91  +
    }
          92  +
    /// <p>An https URL or an Amazon Simple Storage Service (Amazon S3) path-style URL to a list of patches to be installed. This patch installation list, which you maintain in an S3 bucket in YAML format and specify in the SSM document <code>AWS-RunPatchBaseline</code>, overrides the patches specified by the default patch baseline.</p>
          93  +
    /// <p>For more information about the <code>InstallOverrideList</code> parameter, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-about-aws-runpatchbaseline.html">SSM Command document for patching: <code>AWS-RunPatchBaseline</code> </a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
          94  +
    pub fn install_override_list(&self) -> ::std::option::Option<&str> {
          95  +
        self.install_override_list.as_deref()
          96  +
    }
          97  +
    /// <p>Placeholder information. This field will always be empty in the current release of the service.</p>
          98  +
    pub fn owner_information(&self) -> ::std::option::Option<&str> {
          99  +
        self.owner_information.as_deref()
         100  +
    }
         101  +
    /// <p>The number of patches from the patch baseline that are installed on the managed node.</p>
         102  +
    pub fn installed_count(&self) -> i32 {
         103  +
        self.installed_count
         104  +
    }
         105  +
    /// <p>The number of patches not specified in the patch baseline that are installed on the managed node.</p>
         106  +
    pub fn installed_other_count(&self) -> i32 {
         107  +
        self.installed_other_count
         108  +
    }
         109  +
    /// <p>The number of patches installed by Patch Manager since the last time the managed node was rebooted.</p>
         110  +
    pub fn installed_pending_reboot_count(&self) -> ::std::option::Option<i32> {
         111  +
        self.installed_pending_reboot_count
         112  +
    }
         113  +
    /// <p>The number of patches installed on a managed node that are specified in a <code>RejectedPatches</code> list. Patches with a status of <code>InstalledRejected</code> were typically installed before they were added to a <code>RejectedPatches</code> list.</p><note>
         114  +
    /// <p>If <code>ALLOW_AS_DEPENDENCY</code> is the specified option for <code>RejectedPatchesAction</code>, the value of <code>InstalledRejectedCount</code> will always be <code>0</code> (zero).</p>
         115  +
    /// </note>
         116  +
    pub fn installed_rejected_count(&self) -> ::std::option::Option<i32> {
         117  +
        self.installed_rejected_count
         118  +
    }
         119  +
    /// <p>The number of patches from the patch baseline that are applicable for the managed node but aren't currently installed.</p>
         120  +
    pub fn missing_count(&self) -> i32 {
         121  +
        self.missing_count
         122  +
    }
         123  +
    /// <p>The number of patches from the patch baseline that were attempted to be installed during the last patching operation, but failed to install.</p>
         124  +
    pub fn failed_count(&self) -> i32 {
         125  +
        self.failed_count
         126  +
    }
         127  +
    /// <p>The number of patches beyond the supported limit of <code>NotApplicableCount</code> that aren't reported by name to Inventory. Inventory is a tool in Amazon Web Services Systems Manager.</p>
         128  +
    pub fn unreported_not_applicable_count(&self) -> ::std::option::Option<i32> {
         129  +
        self.unreported_not_applicable_count
         130  +
    }
         131  +
    /// <p>The number of patches from the patch baseline that aren't applicable for the managed node and therefore aren't installed on the node. This number may be truncated if the list of patch names is very large. The number of patches beyond this limit are reported in <code>UnreportedNotApplicableCount</code>.</p>
         132  +
    pub fn not_applicable_count(&self) -> i32 {
         133  +
        self.not_applicable_count
         134  +
    }
         135  +
    /// <p>The number of security-related patches that are available but not approved because they didn't meet the patch baseline requirements. For example, an updated version of a patch might have been released before the specified auto-approval period was over.</p>
         136  +
    /// <p>Applies to Windows Server managed nodes only.</p>
         137  +
    pub fn available_security_update_count(&self) -> ::std::option::Option<i32> {
         138  +
        self.available_security_update_count
         139  +
    }
         140  +
    /// <p>The time the most recent patching operation was started on the managed node.</p>
         141  +
    pub fn operation_start_time(&self) -> &::aws_smithy_types::DateTime {
         142  +
        &self.operation_start_time
         143  +
    }
         144  +
    /// <p>The time the most recent patching operation completed on the managed node.</p>
         145  +
    pub fn operation_end_time(&self) -> &::aws_smithy_types::DateTime {
         146  +
        &self.operation_end_time
         147  +
    }
         148  +
    /// <p>The type of patching operation that was performed: or</p>
         149  +
    /// <ul>
         150  +
    /// <li>
         151  +
    /// <p><code>SCAN</code> assesses the patch compliance state.</p></li>
         152  +
    /// <li>
         153  +
    /// <p><code>INSTALL</code> installs missing patches.</p></li>
         154  +
    /// </ul>
         155  +
    pub fn operation(&self) -> &crate::types::PatchOperationType {
         156  +
        &self.operation
         157  +
    }
         158  +
    /// <p>The time of the last attempt to patch the managed node with <code>NoReboot</code> specified as the reboot option.</p>
         159  +
    pub fn last_no_reboot_install_operation_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         160  +
        self.last_no_reboot_install_operation_time.as_ref()
         161  +
    }
         162  +
    /// <p>Indicates the reboot option specified in the patch baseline.</p><note>
         163  +
    /// <p>Reboot options apply to <code>Install</code> operations only. Reboots aren't attempted for Patch Manager <code>Scan</code> operations.</p>
         164  +
    /// </note>
         165  +
    /// <ul>
         166  +
    /// <li>
         167  +
    /// <p><code>RebootIfNeeded</code>: Patch Manager tries to reboot the managed node if it installed any patches, or if any patches are detected with a status of <code>InstalledPendingReboot</code>.</p></li>
         168  +
    /// <li>
         169  +
    /// <p><code>NoReboot</code>: Patch Manager attempts to install missing packages without trying to reboot the system. Patches installed with this option are assigned a status of <code>InstalledPendingReboot</code>. These patches might not be in effect until a reboot is performed.</p></li>
         170  +
    /// </ul>
         171  +
    pub fn reboot_option(&self) -> ::std::option::Option<&crate::types::RebootOption> {
         172  +
        self.reboot_option.as_ref()
         173  +
    }
         174  +
    /// <p>The number of patches per node that are specified as <code>Critical</code> for compliance reporting in the patch baseline aren't installed. These patches might be missing, have failed installation, were rejected, or were installed but awaiting a required managed node reboot. The status of these managed nodes is <code>NON_COMPLIANT</code>.</p>
         175  +
    pub fn critical_non_compliant_count(&self) -> ::std::option::Option<i32> {
         176  +
        self.critical_non_compliant_count
         177  +
    }
         178  +
    /// <p>The number of patches per node that are specified as <code>Security</code> in a patch advisory aren't installed. These patches might be missing, have failed installation, were rejected, or were installed but awaiting a required managed node reboot. The status of these managed nodes is <code>NON_COMPLIANT</code>.</p>
         179  +
    pub fn security_non_compliant_count(&self) -> ::std::option::Option<i32> {
         180  +
        self.security_non_compliant_count
         181  +
    }
         182  +
    /// <p>The number of patches per node that are specified as other than <code>Critical</code> or <code>Security</code> but aren't compliant with the patch baseline. The status of these managed nodes is <code>NON_COMPLIANT</code>.</p>
         183  +
    pub fn other_non_compliant_count(&self) -> ::std::option::Option<i32> {
         184  +
        self.other_non_compliant_count
         185  +
    }
         186  +
}
         187  +
impl ::std::fmt::Debug for InstancePatchState {
         188  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         189  +
        let mut formatter = f.debug_struct("InstancePatchState");
         190  +
        formatter.field("instance_id", &self.instance_id);
         191  +
        formatter.field("patch_group", &self.patch_group);
         192  +
        formatter.field("baseline_id", &self.baseline_id);
         193  +
        formatter.field("snapshot_id", &self.snapshot_id);
         194  +
        formatter.field("install_override_list", &self.install_override_list);
         195  +
        formatter.field("owner_information", &"*** Sensitive Data Redacted ***");
         196  +
        formatter.field("installed_count", &self.installed_count);
         197  +
        formatter.field("installed_other_count", &self.installed_other_count);
         198  +
        formatter.field("installed_pending_reboot_count", &self.installed_pending_reboot_count);
         199  +
        formatter.field("installed_rejected_count", &self.installed_rejected_count);
         200  +
        formatter.field("missing_count", &self.missing_count);
         201  +
        formatter.field("failed_count", &self.failed_count);
         202  +
        formatter.field("unreported_not_applicable_count", &self.unreported_not_applicable_count);
         203  +
        formatter.field("not_applicable_count", &self.not_applicable_count);
         204  +
        formatter.field("available_security_update_count", &self.available_security_update_count);
         205  +
        formatter.field("operation_start_time", &self.operation_start_time);
         206  +
        formatter.field("operation_end_time", &self.operation_end_time);
         207  +
        formatter.field("operation", &self.operation);
         208  +
        formatter.field("last_no_reboot_install_operation_time", &self.last_no_reboot_install_operation_time);
         209  +
        formatter.field("reboot_option", &self.reboot_option);
         210  +
        formatter.field("critical_non_compliant_count", &self.critical_non_compliant_count);
         211  +
        formatter.field("security_non_compliant_count", &self.security_non_compliant_count);
         212  +
        formatter.field("other_non_compliant_count", &self.other_non_compliant_count);
         213  +
        formatter.finish()
         214  +
    }
         215  +
}
         216  +
static INSTANCEPATCHSTATE_MEMBER_INSTANCE_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         217  +
    ::aws_smithy_schema::ShapeId::from_parts(
         218  +
        "com.amazonaws.ssm#InstancePatchState$InstanceId",
         219  +
        "com.amazonaws.ssm",
         220  +
        "InstancePatchState",
         221  +
    ),
         222  +
    ::aws_smithy_schema::ShapeType::String,
         223  +
    "InstanceId",
         224  +
    0,
         225  +
);
         226  +
static INSTANCEPATCHSTATE_MEMBER_PATCH_GROUP: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         227  +
    ::aws_smithy_schema::ShapeId::from_parts(
         228  +
        "com.amazonaws.ssm#InstancePatchState$PatchGroup",
         229  +
        "com.amazonaws.ssm",
         230  +
        "InstancePatchState",
         231  +
    ),
         232  +
    ::aws_smithy_schema::ShapeType::String,
         233  +
    "PatchGroup",
         234  +
    1,
         235  +
);
         236  +
static INSTANCEPATCHSTATE_MEMBER_BASELINE_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         237  +
    ::aws_smithy_schema::ShapeId::from_parts(
         238  +
        "com.amazonaws.ssm#InstancePatchState$BaselineId",
         239  +
        "com.amazonaws.ssm",
         240  +
        "InstancePatchState",
         241  +
    ),
         242  +
    ::aws_smithy_schema::ShapeType::String,
         243  +
    "BaselineId",
         244  +
    2,
         245  +
);
         246  +
static INSTANCEPATCHSTATE_MEMBER_SNAPSHOT_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         247  +
    ::aws_smithy_schema::ShapeId::from_parts(
         248  +
        "com.amazonaws.ssm#InstancePatchState$SnapshotId",
         249  +
        "com.amazonaws.ssm",
         250  +
        "InstancePatchState",
         251  +
    ),
         252  +
    ::aws_smithy_schema::ShapeType::String,
         253  +
    "SnapshotId",
         254  +
    3,
         255  +
);
         256  +
static INSTANCEPATCHSTATE_MEMBER_INSTALL_OVERRIDE_LIST: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         257  +
    ::aws_smithy_schema::ShapeId::from_parts(
         258  +
        "com.amazonaws.ssm#InstancePatchState$InstallOverrideList",
         259  +
        "com.amazonaws.ssm",
         260  +
        "InstancePatchState",
         261  +
    ),
         262  +
    ::aws_smithy_schema::ShapeType::String,
         263  +
    "InstallOverrideList",
         264  +
    4,
         265  +
);
         266  +
static INSTANCEPATCHSTATE_MEMBER_OWNER_INFORMATION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         267  +
    ::aws_smithy_schema::ShapeId::from_parts(
         268  +
        "com.amazonaws.ssm#InstancePatchState$OwnerInformation",
         269  +
        "com.amazonaws.ssm",
         270  +
        "InstancePatchState",
         271  +
    ),
         272  +
    ::aws_smithy_schema::ShapeType::String,
         273  +
    "OwnerInformation",
         274  +
    5,
         275  +
);
         276  +
static INSTANCEPATCHSTATE_MEMBER_INSTALLED_COUNT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         277  +
    ::aws_smithy_schema::ShapeId::from_parts(
         278  +
        "com.amazonaws.ssm#InstancePatchState$InstalledCount",
         279  +
        "com.amazonaws.ssm",
         280  +
        "InstancePatchState",
         281  +
    ),
         282  +
    ::aws_smithy_schema::ShapeType::Integer,
         283  +
    "InstalledCount",
         284  +
    6,
         285  +
);
         286  +
static INSTANCEPATCHSTATE_MEMBER_INSTALLED_OTHER_COUNT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         287  +
    ::aws_smithy_schema::ShapeId::from_parts(
         288  +
        "com.amazonaws.ssm#InstancePatchState$InstalledOtherCount",
         289  +
        "com.amazonaws.ssm",
         290  +
        "InstancePatchState",
         291  +
    ),
         292  +
    ::aws_smithy_schema::ShapeType::Integer,
         293  +
    "InstalledOtherCount",
         294  +
    7,
         295  +
);
         296  +
static INSTANCEPATCHSTATE_MEMBER_INSTALLED_PENDING_REBOOT_COUNT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         297  +
    ::aws_smithy_schema::ShapeId::from_parts(
         298  +
        "com.amazonaws.ssm#InstancePatchState$InstalledPendingRebootCount",
         299  +
        "com.amazonaws.ssm",
         300  +
        "InstancePatchState",
         301  +
    ),
         302  +
    ::aws_smithy_schema::ShapeType::Integer,
         303  +
    "InstalledPendingRebootCount",
         304  +
    8,
         305  +
);
         306  +
static INSTANCEPATCHSTATE_MEMBER_INSTALLED_REJECTED_COUNT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         307  +
    ::aws_smithy_schema::ShapeId::from_parts(
         308  +
        "com.amazonaws.ssm#InstancePatchState$InstalledRejectedCount",
         309  +
        "com.amazonaws.ssm",
         310  +
        "InstancePatchState",
         311  +
    ),
         312  +
    ::aws_smithy_schema::ShapeType::Integer,
         313  +
    "InstalledRejectedCount",
         314  +
    9,
         315  +
);
         316  +
static INSTANCEPATCHSTATE_MEMBER_MISSING_COUNT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         317  +
    ::aws_smithy_schema::ShapeId::from_parts(
         318  +
        "com.amazonaws.ssm#InstancePatchState$MissingCount",
         319  +
        "com.amazonaws.ssm",
         320  +
        "InstancePatchState",
         321  +
    ),
         322  +
    ::aws_smithy_schema::ShapeType::Integer,
         323  +
    "MissingCount",
         324  +
    10,
         325  +
);
         326  +
static INSTANCEPATCHSTATE_MEMBER_FAILED_COUNT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         327  +
    ::aws_smithy_schema::ShapeId::from_parts(
         328  +
        "com.amazonaws.ssm#InstancePatchState$FailedCount",
         329  +
        "com.amazonaws.ssm",
         330  +
        "InstancePatchState",
         331  +
    ),
         332  +
    ::aws_smithy_schema::ShapeType::Integer,
         333  +
    "FailedCount",
         334  +
    11,
         335  +
);
         336  +
static INSTANCEPATCHSTATE_MEMBER_UNREPORTED_NOT_APPLICABLE_COUNT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         337  +
    ::aws_smithy_schema::ShapeId::from_parts(
         338  +
        "com.amazonaws.ssm#InstancePatchState$UnreportedNotApplicableCount",
         339  +
        "com.amazonaws.ssm",
         340  +
        "InstancePatchState",
         341  +
    ),
         342  +
    ::aws_smithy_schema::ShapeType::Integer,
         343  +
    "UnreportedNotApplicableCount",
         344  +
    12,
         345  +
);
         346  +
static INSTANCEPATCHSTATE_MEMBER_NOT_APPLICABLE_COUNT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         347  +
    ::aws_smithy_schema::ShapeId::from_parts(
         348  +
        "com.amazonaws.ssm#InstancePatchState$NotApplicableCount",
         349  +
        "com.amazonaws.ssm",
         350  +
        "InstancePatchState",
         351  +
    ),
         352  +
    ::aws_smithy_schema::ShapeType::Integer,
         353  +
    "NotApplicableCount",
         354  +
    13,
         355  +
);
         356  +
static INSTANCEPATCHSTATE_MEMBER_AVAILABLE_SECURITY_UPDATE_COUNT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         357  +
    ::aws_smithy_schema::ShapeId::from_parts(
         358  +
        "com.amazonaws.ssm#InstancePatchState$AvailableSecurityUpdateCount",
         359  +
        "com.amazonaws.ssm",
         360  +
        "InstancePatchState",
         361  +
    ),
         362  +
    ::aws_smithy_schema::ShapeType::Integer,
         363  +
    "AvailableSecurityUpdateCount",
         364  +
    14,
         365  +
);
         366  +
static INSTANCEPATCHSTATE_MEMBER_OPERATION_START_TIME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         367  +
    ::aws_smithy_schema::ShapeId::from_parts(
         368  +
        "com.amazonaws.ssm#InstancePatchState$OperationStartTime",
         369  +
        "com.amazonaws.ssm",
         370  +
        "InstancePatchState",
         371  +
    ),
         372  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         373  +
    "OperationStartTime",
         374  +
    15,
         375  +
);
         376  +
static INSTANCEPATCHSTATE_MEMBER_OPERATION_END_TIME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         377  +
    ::aws_smithy_schema::ShapeId::from_parts(
         378  +
        "com.amazonaws.ssm#InstancePatchState$OperationEndTime",
         379  +
        "com.amazonaws.ssm",
         380  +
        "InstancePatchState",
         381  +
    ),
         382  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         383  +
    "OperationEndTime",
         384  +
    16,
         385  +
);
         386  +
static INSTANCEPATCHSTATE_MEMBER_OPERATION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         387  +
    ::aws_smithy_schema::ShapeId::from_parts(
         388  +
        "com.amazonaws.ssm#InstancePatchState$Operation",
         389  +
        "com.amazonaws.ssm",
         390  +
        "InstancePatchState",
         391  +
    ),
         392  +
    ::aws_smithy_schema::ShapeType::String,
         393  +
    "Operation",
         394  +
    17,
         395  +
);
         396  +
static INSTANCEPATCHSTATE_MEMBER_LAST_NO_REBOOT_INSTALL_OPERATION_TIME: ::aws_smithy_schema::Schema<'static> =
         397  +
    ::aws_smithy_schema::Schema::new_member(
         398  +
        ::aws_smithy_schema::ShapeId::from_parts(
         399  +
            "com.amazonaws.ssm#InstancePatchState$LastNoRebootInstallOperationTime",
         400  +
            "com.amazonaws.ssm",
         401  +
            "InstancePatchState",
         402  +
        ),
         403  +
        ::aws_smithy_schema::ShapeType::Timestamp,
         404  +
        "LastNoRebootInstallOperationTime",
         405  +
        18,
         406  +
    );
         407  +
static INSTANCEPATCHSTATE_MEMBER_REBOOT_OPTION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         408  +
    ::aws_smithy_schema::ShapeId::from_parts(
         409  +
        "com.amazonaws.ssm#InstancePatchState$RebootOption",
         410  +
        "com.amazonaws.ssm",
         411  +
        "InstancePatchState",
         412  +
    ),
         413  +
    ::aws_smithy_schema::ShapeType::String,
         414  +
    "RebootOption",
         415  +
    19,
         416  +
);
         417  +
static INSTANCEPATCHSTATE_MEMBER_CRITICAL_NON_COMPLIANT_COUNT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         418  +
    ::aws_smithy_schema::ShapeId::from_parts(
         419  +
        "com.amazonaws.ssm#InstancePatchState$CriticalNonCompliantCount",
         420  +
        "com.amazonaws.ssm",
         421  +
        "InstancePatchState",
         422  +
    ),
         423  +
    ::aws_smithy_schema::ShapeType::Integer,
         424  +
    "CriticalNonCompliantCount",
         425  +
    20,
         426  +
);
         427  +
static INSTANCEPATCHSTATE_MEMBER_SECURITY_NON_COMPLIANT_COUNT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         428  +
    ::aws_smithy_schema::ShapeId::from_parts(
         429  +
        "com.amazonaws.ssm#InstancePatchState$SecurityNonCompliantCount",
         430  +
        "com.amazonaws.ssm",
         431  +
        "InstancePatchState",
         432  +
    ),
         433  +
    ::aws_smithy_schema::ShapeType::Integer,
         434  +
    "SecurityNonCompliantCount",
         435  +
    21,
         436  +
);
         437  +
static INSTANCEPATCHSTATE_MEMBER_OTHER_NON_COMPLIANT_COUNT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         438  +
    ::aws_smithy_schema::ShapeId::from_parts(
         439  +
        "com.amazonaws.ssm#InstancePatchState$OtherNonCompliantCount",
         440  +
        "com.amazonaws.ssm",
         441  +
        "InstancePatchState",
         442  +
    ),
         443  +
    ::aws_smithy_schema::ShapeType::Integer,
         444  +
    "OtherNonCompliantCount",
         445  +
    22,
         446  +
);
         447  +
static INSTANCEPATCHSTATE_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
         448  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstancePatchState", "com.amazonaws.ssm", "InstancePatchState"),
         449  +
    ::aws_smithy_schema::ShapeType::Structure,
         450  +
    &[
         451  +
        &INSTANCEPATCHSTATE_MEMBER_INSTANCE_ID,
         452  +
        &INSTANCEPATCHSTATE_MEMBER_PATCH_GROUP,
         453  +
        &INSTANCEPATCHSTATE_MEMBER_BASELINE_ID,
         454  +
        &INSTANCEPATCHSTATE_MEMBER_SNAPSHOT_ID,
         455  +
        &INSTANCEPATCHSTATE_MEMBER_INSTALL_OVERRIDE_LIST,
         456  +
        &INSTANCEPATCHSTATE_MEMBER_OWNER_INFORMATION,
         457  +
        &INSTANCEPATCHSTATE_MEMBER_INSTALLED_COUNT,
         458  +
        &INSTANCEPATCHSTATE_MEMBER_INSTALLED_OTHER_COUNT,
         459  +
        &INSTANCEPATCHSTATE_MEMBER_INSTALLED_PENDING_REBOOT_COUNT,
         460  +
        &INSTANCEPATCHSTATE_MEMBER_INSTALLED_REJECTED_COUNT,
         461  +
        &INSTANCEPATCHSTATE_MEMBER_MISSING_COUNT,
         462  +
        &INSTANCEPATCHSTATE_MEMBER_FAILED_COUNT,
         463  +
        &INSTANCEPATCHSTATE_MEMBER_UNREPORTED_NOT_APPLICABLE_COUNT,
         464  +
        &INSTANCEPATCHSTATE_MEMBER_NOT_APPLICABLE_COUNT,
         465  +
        &INSTANCEPATCHSTATE_MEMBER_AVAILABLE_SECURITY_UPDATE_COUNT,
         466  +
        &INSTANCEPATCHSTATE_MEMBER_OPERATION_START_TIME,
         467  +
        &INSTANCEPATCHSTATE_MEMBER_OPERATION_END_TIME,
         468  +
        &INSTANCEPATCHSTATE_MEMBER_OPERATION,
         469  +
        &INSTANCEPATCHSTATE_MEMBER_LAST_NO_REBOOT_INSTALL_OPERATION_TIME,
         470  +
        &INSTANCEPATCHSTATE_MEMBER_REBOOT_OPTION,
         471  +
        &INSTANCEPATCHSTATE_MEMBER_CRITICAL_NON_COMPLIANT_COUNT,
         472  +
        &INSTANCEPATCHSTATE_MEMBER_SECURITY_NON_COMPLIANT_COUNT,
         473  +
        &INSTANCEPATCHSTATE_MEMBER_OTHER_NON_COMPLIANT_COUNT,
         474  +
    ],
         475  +
);
         476  +
impl InstancePatchState {
         477  +
    /// The schema for this shape.
         478  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &INSTANCEPATCHSTATE_SCHEMA;
         479  +
}
         480  +
impl ::aws_smithy_schema::serde::SerializableStruct for InstancePatchState {
         481  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         482  +
    fn serialize_members(
         483  +
        &self,
         484  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         485  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         486  +
        {
         487  +
            let val = &self.instance_id;
         488  +
            ser.write_string(&INSTANCEPATCHSTATE_MEMBER_INSTANCE_ID, val)?;
         489  +
        }
         490  +
        {
         491  +
            let val = &self.patch_group;
         492  +
            ser.write_string(&INSTANCEPATCHSTATE_MEMBER_PATCH_GROUP, val)?;
         493  +
        }
         494  +
        {
         495  +
            let val = &self.baseline_id;
         496  +
            ser.write_string(&INSTANCEPATCHSTATE_MEMBER_BASELINE_ID, val)?;
         497  +
        }
         498  +
        if let Some(ref val) = self.snapshot_id {
         499  +
            ser.write_string(&INSTANCEPATCHSTATE_MEMBER_SNAPSHOT_ID, val)?;
         500  +
        }
         501  +
        if let Some(ref val) = self.install_override_list {
         502  +
            ser.write_string(&INSTANCEPATCHSTATE_MEMBER_INSTALL_OVERRIDE_LIST, val)?;
         503  +
        }
         504  +
        if let Some(ref val) = self.owner_information {
         505  +
            ser.write_string(&INSTANCEPATCHSTATE_MEMBER_OWNER_INFORMATION, val)?;
         506  +
        }
         507  +
        {
         508  +
            let val = &self.installed_count;
         509  +
            ser.write_integer(&INSTANCEPATCHSTATE_MEMBER_INSTALLED_COUNT, *val)?;
         510  +
        }
         511  +
        {
         512  +
            let val = &self.installed_other_count;
         513  +
            ser.write_integer(&INSTANCEPATCHSTATE_MEMBER_INSTALLED_OTHER_COUNT, *val)?;
         514  +
        }
         515  +
        if let Some(ref val) = self.installed_pending_reboot_count {
         516  +
            ser.write_integer(&INSTANCEPATCHSTATE_MEMBER_INSTALLED_PENDING_REBOOT_COUNT, *val)?;
         517  +
        }
         518  +
        if let Some(ref val) = self.installed_rejected_count {
         519  +
            ser.write_integer(&INSTANCEPATCHSTATE_MEMBER_INSTALLED_REJECTED_COUNT, *val)?;
         520  +
        }
         521  +
        {
         522  +
            let val = &self.missing_count;
         523  +
            ser.write_integer(&INSTANCEPATCHSTATE_MEMBER_MISSING_COUNT, *val)?;
         524  +
        }
         525  +
        {
         526  +
            let val = &self.failed_count;
         527  +
            ser.write_integer(&INSTANCEPATCHSTATE_MEMBER_FAILED_COUNT, *val)?;
         528  +
        }
         529  +
        if let Some(ref val) = self.unreported_not_applicable_count {
         530  +
            ser.write_integer(&INSTANCEPATCHSTATE_MEMBER_UNREPORTED_NOT_APPLICABLE_COUNT, *val)?;
         531  +
        }
         532  +
        {
         533  +
            let val = &self.not_applicable_count;
         534  +
            ser.write_integer(&INSTANCEPATCHSTATE_MEMBER_NOT_APPLICABLE_COUNT, *val)?;
         535  +
        }
         536  +
        if let Some(ref val) = self.available_security_update_count {
         537  +
            ser.write_integer(&INSTANCEPATCHSTATE_MEMBER_AVAILABLE_SECURITY_UPDATE_COUNT, *val)?;
         538  +
        }
         539  +
        {
         540  +
            let val = &self.operation_start_time;
         541  +
            ser.write_timestamp(&INSTANCEPATCHSTATE_MEMBER_OPERATION_START_TIME, val)?;
         542  +
        }
         543  +
        {
         544  +
            let val = &self.operation_end_time;
         545  +
            ser.write_timestamp(&INSTANCEPATCHSTATE_MEMBER_OPERATION_END_TIME, val)?;
         546  +
        }
         547  +
        {
         548  +
            let val = &self.operation;
         549  +
            ser.write_string(&INSTANCEPATCHSTATE_MEMBER_OPERATION, val.as_str())?;
         550  +
        }
         551  +
        if let Some(ref val) = self.last_no_reboot_install_operation_time {
         552  +
            ser.write_timestamp(&INSTANCEPATCHSTATE_MEMBER_LAST_NO_REBOOT_INSTALL_OPERATION_TIME, val)?;
         553  +
        }
         554  +
        if let Some(ref val) = self.reboot_option {
         555  +
            ser.write_string(&INSTANCEPATCHSTATE_MEMBER_REBOOT_OPTION, val.as_str())?;
         556  +
        }
         557  +
        if let Some(ref val) = self.critical_non_compliant_count {
         558  +
            ser.write_integer(&INSTANCEPATCHSTATE_MEMBER_CRITICAL_NON_COMPLIANT_COUNT, *val)?;
         559  +
        }
         560  +
        if let Some(ref val) = self.security_non_compliant_count {
         561  +
            ser.write_integer(&INSTANCEPATCHSTATE_MEMBER_SECURITY_NON_COMPLIANT_COUNT, *val)?;
         562  +
        }
         563  +
        if let Some(ref val) = self.other_non_compliant_count {
         564  +
            ser.write_integer(&INSTANCEPATCHSTATE_MEMBER_OTHER_NON_COMPLIANT_COUNT, *val)?;
         565  +
        }
         566  +
        Ok(())
         567  +
    }
         568  +
}
         569  +
impl InstancePatchState {
         570  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         571  +
    pub fn deserialize(
         572  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         573  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         574  +
        #[allow(unused_variables, unused_mut)]
         575  +
        let mut builder = Self::builder();
         576  +
        #[allow(
         577  +
            unused_variables,
         578  +
            unreachable_code,
         579  +
            clippy::single_match,
         580  +
            clippy::match_single_binding,
         581  +
            clippy::diverging_sub_expression
         582  +
        )]
         583  +
        deserializer.read_struct(&INSTANCEPATCHSTATE_SCHEMA, &mut |member, deser| {
         584  +
            match member.member_index() {
         585  +
                Some(0) => {
         586  +
                    builder.instance_id = Some(deser.read_string(member)?);
         587  +
                }
         588  +
                Some(1) => {
         589  +
                    builder.patch_group = Some(deser.read_string(member)?);
         590  +
                }
         591  +
                Some(2) => {
         592  +
                    builder.baseline_id = Some(deser.read_string(member)?);
         593  +
                }
         594  +
                Some(3) => {
         595  +
                    if deser.is_null() {
         596  +
                        deser.read_null()?;
         597  +
                    } else {
         598  +
                        builder.snapshot_id = Some(deser.read_string(member)?);
         599  +
                    }
         600  +
                }
         601  +
                Some(4) => {
         602  +
                    if deser.is_null() {
         603  +
                        deser.read_null()?;
         604  +
                    } else {
         605  +
                        builder.install_override_list = Some(deser.read_string(member)?);
         606  +
                    }
         607  +
                }
         608  +
                Some(5) => {
         609  +
                    if deser.is_null() {
         610  +
                        deser.read_null()?;
         611  +
                    } else {
         612  +
                        builder.owner_information = Some(deser.read_string(member)?);
         613  +
                    }
         614  +
                }
         615  +
                Some(6) => {
         616  +
                    builder.installed_count = Some(deser.read_integer(member)?);
         617  +
                }
         618  +
                Some(7) => {
         619  +
                    builder.installed_other_count = Some(deser.read_integer(member)?);
         620  +
                }
         621  +
                Some(8) => {
         622  +
                    if deser.is_null() {
         623  +
                        deser.read_null()?;
         624  +
                    } else {
         625  +
                        builder.installed_pending_reboot_count = Some(deser.read_integer(member)?);
         626  +
                    }
         627  +
                }
         628  +
                Some(9) => {
         629  +
                    if deser.is_null() {
         630  +
                        deser.read_null()?;
         631  +
                    } else {
         632  +
                        builder.installed_rejected_count = Some(deser.read_integer(member)?);
         633  +
                    }
         634  +
                }
         635  +
                Some(10) => {
         636  +
                    builder.missing_count = Some(deser.read_integer(member)?);
         637  +
                }
         638  +
                Some(11) => {
         639  +
                    builder.failed_count = Some(deser.read_integer(member)?);
         640  +
                }
         641  +
                Some(12) => {
         642  +
                    if deser.is_null() {
         643  +
                        deser.read_null()?;
         644  +
                    } else {
         645  +
                        builder.unreported_not_applicable_count = Some(deser.read_integer(member)?);
         646  +
                    }
         647  +
                }
         648  +
                Some(13) => {
         649  +
                    builder.not_applicable_count = Some(deser.read_integer(member)?);
         650  +
                }
         651  +
                Some(14) => {
         652  +
                    if deser.is_null() {
         653  +
                        deser.read_null()?;
         654  +
                    } else {
         655  +
                        builder.available_security_update_count = Some(deser.read_integer(member)?);
         656  +
                    }
         657  +
                }
         658  +
                Some(15) => {
         659  +
                    builder.operation_start_time = Some(deser.read_timestamp(member)?);
         660  +
                }
         661  +
                Some(16) => {
         662  +
                    builder.operation_end_time = Some(deser.read_timestamp(member)?);
         663  +
                }
         664  +
                Some(17) => {
         665  +
                    builder.operation = Some(crate::types::PatchOperationType::from(deser.read_string(member)?.as_str()));
         666  +
                }
         667  +
                Some(18) => {
         668  +
                    if deser.is_null() {
         669  +
                        deser.read_null()?;
         670  +
                    } else {
         671  +
                        builder.last_no_reboot_install_operation_time = Some(deser.read_timestamp(member)?);
         672  +
                    }
         673  +
                }
         674  +
                Some(19) => {
         675  +
                    if deser.is_null() {
         676  +
                        deser.read_null()?;
         677  +
                    } else {
         678  +
                        builder.reboot_option = Some(crate::types::RebootOption::from(deser.read_string(member)?.as_str()));
         679  +
                    }
         680  +
                }
         681  +
                Some(20) => {
         682  +
                    if deser.is_null() {
         683  +
                        deser.read_null()?;
         684  +
                    } else {
         685  +
                        builder.critical_non_compliant_count = Some(deser.read_integer(member)?);
         686  +
                    }
         687  +
                }
         688  +
                Some(21) => {
         689  +
                    if deser.is_null() {
         690  +
                        deser.read_null()?;
         691  +
                    } else {
         692  +
                        builder.security_non_compliant_count = Some(deser.read_integer(member)?);
         693  +
                    }
         694  +
                }
         695  +
                Some(22) => {
         696  +
                    if deser.is_null() {
         697  +
                        deser.read_null()?;
         698  +
                    } else {
         699  +
                        builder.other_non_compliant_count = Some(deser.read_integer(member)?);
         700  +
                    }
         701  +
                }
         702  +
                _ => {}
         703  +
            }
         704  +
            Ok(())
         705  +
        })?;
         706  +
        builder.instance_id = builder.instance_id.or(Some(String::new()));
         707  +
        builder.patch_group = builder.patch_group.or(Some(String::new()));
         708  +
        builder.baseline_id = builder.baseline_id.or(Some(String::new()));
         709  +
        builder.operation_start_time = builder.operation_start_time.or(Some(::aws_smithy_types::DateTime::from_secs(0)));
         710  +
        builder.operation_end_time = builder.operation_end_time.or(Some(::aws_smithy_types::DateTime::from_secs(0)));
         711  +
        builder.build().map_err(|e| aws_smithy_schema::serde::SerdeError::custom(e.to_string()))
         712  +
    }
         713  +
}
         714  +
impl InstancePatchState {
         715  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         716  +
    pub fn deserialize_with_response(
         717  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         718  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         719  +
        _status: u16,
         720  +
        _body: &[u8],
         721  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         722  +
        Self::deserialize(deserializer)
         723  +
    }
         724  +
}
         725  +
impl InstancePatchState {
         726  +
    /// Creates a new builder-style object to manufacture [`InstancePatchState`](crate::types::InstancePatchState).
         727  +
    pub fn builder() -> crate::types::builders::InstancePatchStateBuilder {
         728  +
        crate::types::builders::InstancePatchStateBuilder::default()
         729  +
    }
         730  +
}
         731  +
         732  +
/// A builder for [`InstancePatchState`](crate::types::InstancePatchState).
         733  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
         734  +
#[non_exhaustive]
         735  +
pub struct InstancePatchStateBuilder {
         736  +
    pub(crate) instance_id: ::std::option::Option<::std::string::String>,
         737  +
    pub(crate) patch_group: ::std::option::Option<::std::string::String>,
         738  +
    pub(crate) baseline_id: ::std::option::Option<::std::string::String>,
         739  +
    pub(crate) snapshot_id: ::std::option::Option<::std::string::String>,
         740  +
    pub(crate) install_override_list: ::std::option::Option<::std::string::String>,
         741  +
    pub(crate) owner_information: ::std::option::Option<::std::string::String>,
         742  +
    pub(crate) installed_count: ::std::option::Option<i32>,
         743  +
    pub(crate) installed_other_count: ::std::option::Option<i32>,
         744  +
    pub(crate) installed_pending_reboot_count: ::std::option::Option<i32>,
         745  +
    pub(crate) installed_rejected_count: ::std::option::Option<i32>,
         746  +
    pub(crate) missing_count: ::std::option::Option<i32>,
         747  +
    pub(crate) failed_count: ::std::option::Option<i32>,
         748  +
    pub(crate) unreported_not_applicable_count: ::std::option::Option<i32>,
         749  +
    pub(crate) not_applicable_count: ::std::option::Option<i32>,
         750  +
    pub(crate) available_security_update_count: ::std::option::Option<i32>,
         751  +
    pub(crate) operation_start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
         752  +
    pub(crate) operation_end_time: ::std::option::Option<::aws_smithy_types::DateTime>,
         753  +
    pub(crate) operation: ::std::option::Option<crate::types::PatchOperationType>,
         754  +
    pub(crate) last_no_reboot_install_operation_time: ::std::option::Option<::aws_smithy_types::DateTime>,
         755  +
    pub(crate) reboot_option: ::std::option::Option<crate::types::RebootOption>,
         756  +
    pub(crate) critical_non_compliant_count: ::std::option::Option<i32>,
         757  +
    pub(crate) security_non_compliant_count: ::std::option::Option<i32>,
         758  +
    pub(crate) other_non_compliant_count: ::std::option::Option<i32>,
         759  +
}
         760  +
impl InstancePatchStateBuilder {
         761  +
    /// <p>The ID of the managed node the high-level patch compliance information was collected for.</p>
         762  +
    /// This field is required.
         763  +
    pub fn instance_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         764  +
        self.instance_id = ::std::option::Option::Some(input.into());
         765  +
        self
         766  +
    }
         767  +
    /// <p>The ID of the managed node the high-level patch compliance information was collected for.</p>
         768  +
    pub fn set_instance_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         769  +
        self.instance_id = input;
         770  +
        self
         771  +
    }
         772  +
    /// <p>The ID of the managed node the high-level patch compliance information was collected for.</p>
         773  +
    pub fn get_instance_id(&self) -> &::std::option::Option<::std::string::String> {
         774  +
        &self.instance_id
         775  +
    }
         776  +
    /// <p>The name of the patch group the managed node belongs to.</p>
         777  +
    /// This field is required.
         778  +
    pub fn patch_group(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         779  +
        self.patch_group = ::std::option::Option::Some(input.into());
         780  +
        self
         781  +
    }
         782  +
    /// <p>The name of the patch group the managed node belongs to.</p>
         783  +
    pub fn set_patch_group(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         784  +
        self.patch_group = input;
         785  +
        self
         786  +
    }
         787  +
    /// <p>The name of the patch group the managed node belongs to.</p>
         788  +
    pub fn get_patch_group(&self) -> &::std::option::Option<::std::string::String> {
         789  +
        &self.patch_group
         790  +
    }
         791  +
    /// <p>The ID of the patch baseline used to patch the managed node.</p>
         792  +
    /// This field is required.
         793  +
    pub fn baseline_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         794  +
        self.baseline_id = ::std::option::Option::Some(input.into());
         795  +
        self
         796  +
    }
         797  +
    /// <p>The ID of the patch baseline used to patch the managed node.</p>
         798  +
    pub fn set_baseline_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         799  +
        self.baseline_id = input;
         800  +
        self
         801  +
    }
         802  +
    /// <p>The ID of the patch baseline used to patch the managed node.</p>
         803  +
    pub fn get_baseline_id(&self) -> &::std::option::Option<::std::string::String> {
         804  +
        &self.baseline_id
         805  +
    }
         806  +
    /// <p>The ID of the patch baseline snapshot used during the patching operation when this compliance data was collected.</p>
         807  +
    pub fn snapshot_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         808  +
        self.snapshot_id = ::std::option::Option::Some(input.into());
         809  +
        self
         810  +
    }
         811  +
    /// <p>The ID of the patch baseline snapshot used during the patching operation when this compliance data was collected.</p>
         812  +
    pub fn set_snapshot_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         813  +
        self.snapshot_id = input;
         814  +
        self
         815  +
    }
         816  +
    /// <p>The ID of the patch baseline snapshot used during the patching operation when this compliance data was collected.</p>
         817  +
    pub fn get_snapshot_id(&self) -> &::std::option::Option<::std::string::String> {
         818  +
        &self.snapshot_id
         819  +
    }
         820  +
    /// <p>An https URL or an Amazon Simple Storage Service (Amazon S3) path-style URL to a list of patches to be installed. This patch installation list, which you maintain in an S3 bucket in YAML format and specify in the SSM document <code>AWS-RunPatchBaseline</code>, overrides the patches specified by the default patch baseline.</p>
         821  +
    /// <p>For more information about the <code>InstallOverrideList</code> parameter, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-about-aws-runpatchbaseline.html">SSM Command document for patching: <code>AWS-RunPatchBaseline</code> </a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         822  +
    pub fn install_override_list(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         823  +
        self.install_override_list = ::std::option::Option::Some(input.into());
         824  +
        self
         825  +
    }
         826  +
    /// <p>An https URL or an Amazon Simple Storage Service (Amazon S3) path-style URL to a list of patches to be installed. This patch installation list, which you maintain in an S3 bucket in YAML format and specify in the SSM document <code>AWS-RunPatchBaseline</code>, overrides the patches specified by the default patch baseline.</p>
         827  +
    /// <p>For more information about the <code>InstallOverrideList</code> parameter, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-about-aws-runpatchbaseline.html">SSM Command document for patching: <code>AWS-RunPatchBaseline</code> </a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         828  +
    pub fn set_install_override_list(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         829  +
        self.install_override_list = input;
         830  +
        self
         831  +
    }
         832  +
    /// <p>An https URL or an Amazon Simple Storage Service (Amazon S3) path-style URL to a list of patches to be installed. This patch installation list, which you maintain in an S3 bucket in YAML format and specify in the SSM document <code>AWS-RunPatchBaseline</code>, overrides the patches specified by the default patch baseline.</p>
         833  +
    /// <p>For more information about the <code>InstallOverrideList</code> parameter, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-about-aws-runpatchbaseline.html">SSM Command document for patching: <code>AWS-RunPatchBaseline</code> </a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         834  +
    pub fn get_install_override_list(&self) -> &::std::option::Option<::std::string::String> {
         835  +
        &self.install_override_list
         836  +
    }
         837  +
    /// <p>Placeholder information. This field will always be empty in the current release of the service.</p>
         838  +
    pub fn owner_information(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         839  +
        self.owner_information = ::std::option::Option::Some(input.into());
         840  +
        self
         841  +
    }
         842  +
    /// <p>Placeholder information. This field will always be empty in the current release of the service.</p>
         843  +
    pub fn set_owner_information(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         844  +
        self.owner_information = input;
         845  +
        self
         846  +
    }
         847  +
    /// <p>Placeholder information. This field will always be empty in the current release of the service.</p>
         848  +
    pub fn get_owner_information(&self) -> &::std::option::Option<::std::string::String> {
         849  +
        &self.owner_information
         850  +
    }
         851  +
    /// <p>The number of patches from the patch baseline that are installed on the managed node.</p>
         852  +
    pub fn installed_count(mut self, input: i32) -> Self {
         853  +
        self.installed_count = ::std::option::Option::Some(input);
         854  +
        self
         855  +
    }
         856  +
    /// <p>The number of patches from the patch baseline that are installed on the managed node.</p>
         857  +
    pub fn set_installed_count(mut self, input: ::std::option::Option<i32>) -> Self {
         858  +
        self.installed_count = input;
         859  +
        self
         860  +
    }
         861  +
    /// <p>The number of patches from the patch baseline that are installed on the managed node.</p>
         862  +
    pub fn get_installed_count(&self) -> &::std::option::Option<i32> {
         863  +
        &self.installed_count
         864  +
    }
         865  +
    /// <p>The number of patches not specified in the patch baseline that are installed on the managed node.</p>
         866  +
    pub fn installed_other_count(mut self, input: i32) -> Self {
         867  +
        self.installed_other_count = ::std::option::Option::Some(input);
         868  +
        self
         869  +
    }
         870  +
    /// <p>The number of patches not specified in the patch baseline that are installed on the managed node.</p>
         871  +
    pub fn set_installed_other_count(mut self, input: ::std::option::Option<i32>) -> Self {
         872  +
        self.installed_other_count = input;
         873  +
        self
         874  +
    }
         875  +
    /// <p>The number of patches not specified in the patch baseline that are installed on the managed node.</p>
         876  +
    pub fn get_installed_other_count(&self) -> &::std::option::Option<i32> {
         877  +
        &self.installed_other_count
         878  +
    }
         879  +
    /// <p>The number of patches installed by Patch Manager since the last time the managed node was rebooted.</p>
         880  +
    pub fn installed_pending_reboot_count(mut self, input: i32) -> Self {
         881  +
        self.installed_pending_reboot_count = ::std::option::Option::Some(input);
         882  +
        self
         883  +
    }
         884  +
    /// <p>The number of patches installed by Patch Manager since the last time the managed node was rebooted.</p>
         885  +
    pub fn set_installed_pending_reboot_count(mut self, input: ::std::option::Option<i32>) -> Self {
         886  +
        self.installed_pending_reboot_count = input;
         887  +
        self
         888  +
    }
         889  +
    /// <p>The number of patches installed by Patch Manager since the last time the managed node was rebooted.</p>
         890  +
    pub fn get_installed_pending_reboot_count(&self) -> &::std::option::Option<i32> {
         891  +
        &self.installed_pending_reboot_count
         892  +
    }
         893  +
    /// <p>The number of patches installed on a managed node that are specified in a <code>RejectedPatches</code> list. Patches with a status of <code>InstalledRejected</code> were typically installed before they were added to a <code>RejectedPatches</code> list.</p><note>
         894  +
    /// <p>If <code>ALLOW_AS_DEPENDENCY</code> is the specified option for <code>RejectedPatchesAction</code>, the value of <code>InstalledRejectedCount</code> will always be <code>0</code> (zero).</p>
         895  +
    /// </note>
         896  +
    pub fn installed_rejected_count(mut self, input: i32) -> Self {
         897  +
        self.installed_rejected_count = ::std::option::Option::Some(input);
         898  +
        self
         899  +
    }
         900  +
    /// <p>The number of patches installed on a managed node that are specified in a <code>RejectedPatches</code> list. Patches with a status of <code>InstalledRejected</code> were typically installed before they were added to a <code>RejectedPatches</code> list.</p><note>
         901  +
    /// <p>If <code>ALLOW_AS_DEPENDENCY</code> is the specified option for <code>RejectedPatchesAction</code>, the value of <code>InstalledRejectedCount</code> will always be <code>0</code> (zero).</p>
         902  +
    /// </note>
         903  +
    pub fn set_installed_rejected_count(mut self, input: ::std::option::Option<i32>) -> Self {
         904  +
        self.installed_rejected_count = input;
         905  +
        self
         906  +
    }
         907  +
    /// <p>The number of patches installed on a managed node that are specified in a <code>RejectedPatches</code> list. Patches with a status of <code>InstalledRejected</code> were typically installed before they were added to a <code>RejectedPatches</code> list.</p><note>
         908  +
    /// <p>If <code>ALLOW_AS_DEPENDENCY</code> is the specified option for <code>RejectedPatchesAction</code>, the value of <code>InstalledRejectedCount</code> will always be <code>0</code> (zero).</p>
         909  +
    /// </note>
         910  +
    pub fn get_installed_rejected_count(&self) -> &::std::option::Option<i32> {
         911  +
        &self.installed_rejected_count
         912  +
    }
         913  +
    /// <p>The number of patches from the patch baseline that are applicable for the managed node but aren't currently installed.</p>
         914  +
    pub fn missing_count(mut self, input: i32) -> Self {
         915  +
        self.missing_count = ::std::option::Option::Some(input);
         916  +
        self
         917  +
    }
         918  +
    /// <p>The number of patches from the patch baseline that are applicable for the managed node but aren't currently installed.</p>
         919  +
    pub fn set_missing_count(mut self, input: ::std::option::Option<i32>) -> Self {
         920  +
        self.missing_count = input;
         921  +
        self
         922  +
    }
         923  +
    /// <p>The number of patches from the patch baseline that are applicable for the managed node but aren't currently installed.</p>
         924  +
    pub fn get_missing_count(&self) -> &::std::option::Option<i32> {
         925  +
        &self.missing_count
         926  +
    }
         927  +
    /// <p>The number of patches from the patch baseline that were attempted to be installed during the last patching operation, but failed to install.</p>
         928  +
    pub fn failed_count(mut self, input: i32) -> Self {
         929  +
        self.failed_count = ::std::option::Option::Some(input);
         930  +
        self
         931  +
    }
         932  +
    /// <p>The number of patches from the patch baseline that were attempted to be installed during the last patching operation, but failed to install.</p>
         933  +
    pub fn set_failed_count(mut self, input: ::std::option::Option<i32>) -> Self {
         934  +
        self.failed_count = input;
         935  +
        self
         936  +
    }
         937  +
    /// <p>The number of patches from the patch baseline that were attempted to be installed during the last patching operation, but failed to install.</p>
         938  +
    pub fn get_failed_count(&self) -> &::std::option::Option<i32> {
         939  +
        &self.failed_count
         940  +
    }
         941  +
    /// <p>The number of patches beyond the supported limit of <code>NotApplicableCount</code> that aren't reported by name to Inventory. Inventory is a tool in Amazon Web Services Systems Manager.</p>
         942  +
    pub fn unreported_not_applicable_count(mut self, input: i32) -> Self {
         943  +
        self.unreported_not_applicable_count = ::std::option::Option::Some(input);
         944  +
        self
         945  +
    }
         946  +
    /// <p>The number of patches beyond the supported limit of <code>NotApplicableCount</code> that aren't reported by name to Inventory. Inventory is a tool in Amazon Web Services Systems Manager.</p>
         947  +
    pub fn set_unreported_not_applicable_count(mut self, input: ::std::option::Option<i32>) -> Self {
         948  +
        self.unreported_not_applicable_count = input;
         949  +
        self
         950  +
    }
         951  +
    /// <p>The number of patches beyond the supported limit of <code>NotApplicableCount</code> that aren't reported by name to Inventory. Inventory is a tool in Amazon Web Services Systems Manager.</p>
         952  +
    pub fn get_unreported_not_applicable_count(&self) -> &::std::option::Option<i32> {
         953  +
        &self.unreported_not_applicable_count
         954  +
    }
         955  +
    /// <p>The number of patches from the patch baseline that aren't applicable for the managed node and therefore aren't installed on the node. This number may be truncated if the list of patch names is very large. The number of patches beyond this limit are reported in <code>UnreportedNotApplicableCount</code>.</p>
         956  +
    pub fn not_applicable_count(mut self, input: i32) -> Self {
         957  +
        self.not_applicable_count = ::std::option::Option::Some(input);
         958  +
        self
         959  +
    }
         960  +
    /// <p>The number of patches from the patch baseline that aren't applicable for the managed node and therefore aren't installed on the node. This number may be truncated if the list of patch names is very large. The number of patches beyond this limit are reported in <code>UnreportedNotApplicableCount</code>.</p>
         961  +
    pub fn set_not_applicable_count(mut self, input: ::std::option::Option<i32>) -> Self {
         962  +
        self.not_applicable_count = input;
         963  +
        self
         964  +
    }
         965  +
    /// <p>The number of patches from the patch baseline that aren't applicable for the managed node and therefore aren't installed on the node. This number may be truncated if the list of patch names is very large. The number of patches beyond this limit are reported in <code>UnreportedNotApplicableCount</code>.</p>
         966  +
    pub fn get_not_applicable_count(&self) -> &::std::option::Option<i32> {
         967  +
        &self.not_applicable_count
         968  +
    }
         969  +
    /// <p>The number of security-related patches that are available but not approved because they didn't meet the patch baseline requirements. For example, an updated version of a patch might have been released before the specified auto-approval period was over.</p>
         970  +
    /// <p>Applies to Windows Server managed nodes only.</p>
         971  +
    pub fn available_security_update_count(mut self, input: i32) -> Self {
         972  +
        self.available_security_update_count = ::std::option::Option::Some(input);
         973  +
        self
         974  +
    }
         975  +
    /// <p>The number of security-related patches that are available but not approved because they didn't meet the patch baseline requirements. For example, an updated version of a patch might have been released before the specified auto-approval period was over.</p>
         976  +
    /// <p>Applies to Windows Server managed nodes only.</p>
         977  +
    pub fn set_available_security_update_count(mut self, input: ::std::option::Option<i32>) -> Self {
         978  +
        self.available_security_update_count = input;
         979  +
        self
         980  +
    }
         981  +
    /// <p>The number of security-related patches that are available but not approved because they didn't meet the patch baseline requirements. For example, an updated version of a patch might have been released before the specified auto-approval period was over.</p>
         982  +
    /// <p>Applies to Windows Server managed nodes only.</p>
         983  +
    pub fn get_available_security_update_count(&self) -> &::std::option::Option<i32> {
         984  +
        &self.available_security_update_count
         985  +
    }
         986  +
    /// <p>The time the most recent patching operation was started on the managed node.</p>
         987  +
    /// This field is required.
         988  +
    pub fn operation_start_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         989  +
        self.operation_start_time = ::std::option::Option::Some(input);
         990  +
        self
         991  +
    }
         992  +
    /// <p>The time the most recent patching operation was started on the managed node.</p>
         993  +
    pub fn set_operation_start_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         994  +
        self.operation_start_time = input;
         995  +
        self
         996  +
    }
         997  +
    /// <p>The time the most recent patching operation was started on the managed node.</p>
         998  +
    pub fn get_operation_start_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         999  +
        &self.operation_start_time
        1000  +
    }
        1001  +
    /// <p>The time the most recent patching operation completed on the managed node.</p>
        1002  +
    /// This field is required.
        1003  +
    pub fn operation_end_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        1004  +
        self.operation_end_time = ::std::option::Option::Some(input);
        1005  +
        self
        1006  +
    }
        1007  +
    /// <p>The time the most recent patching operation completed on the managed node.</p>
        1008  +
    pub fn set_operation_end_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        1009  +
        self.operation_end_time = input;
        1010  +
        self
        1011  +
    }
        1012  +
    /// <p>The time the most recent patching operation completed on the managed node.</p>
        1013  +
    pub fn get_operation_end_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        1014  +
        &self.operation_end_time
        1015  +
    }
        1016  +
    /// <p>The type of patching operation that was performed: or</p>
        1017  +
    /// <ul>
        1018  +
    /// <li>
        1019  +
    /// <p><code>SCAN</code> assesses the patch compliance state.</p></li>
        1020  +
    /// <li>
        1021  +
    /// <p><code>INSTALL</code> installs missing patches.</p></li>
        1022  +
    /// </ul>
        1023  +
    /// This field is required.
        1024  +
    pub fn operation(mut self, input: crate::types::PatchOperationType) -> Self {
        1025  +
        self.operation = ::std::option::Option::Some(input);
        1026  +
        self
        1027  +
    }
        1028  +
    /// <p>The type of patching operation that was performed: or</p>
        1029  +
    /// <ul>
        1030  +
    /// <li>
        1031  +
    /// <p><code>SCAN</code> assesses the patch compliance state.</p></li>
        1032  +
    /// <li>
        1033  +
    /// <p><code>INSTALL</code> installs missing patches.</p></li>
        1034  +
    /// </ul>
        1035  +
    pub fn set_operation(mut self, input: ::std::option::Option<crate::types::PatchOperationType>) -> Self {
        1036  +
        self.operation = input;
        1037  +
        self
        1038  +
    }
        1039  +
    /// <p>The type of patching operation that was performed: or</p>
        1040  +
    /// <ul>
        1041  +
    /// <li>
        1042  +
    /// <p><code>SCAN</code> assesses the patch compliance state.</p></li>
        1043  +
    /// <li>
        1044  +
    /// <p><code>INSTALL</code> installs missing patches.</p></li>
        1045  +
    /// </ul>
        1046  +
    pub fn get_operation(&self) -> &::std::option::Option<crate::types::PatchOperationType> {
        1047  +
        &self.operation
        1048  +
    }
        1049  +
    /// <p>The time of the last attempt to patch the managed node with <code>NoReboot</code> specified as the reboot option.</p>
        1050  +
    pub fn last_no_reboot_install_operation_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        1051  +
        self.last_no_reboot_install_operation_time = ::std::option::Option::Some(input);
        1052  +
        self
        1053  +
    }
        1054  +
    /// <p>The time of the last attempt to patch the managed node with <code>NoReboot</code> specified as the reboot option.</p>
        1055  +
    pub fn set_last_no_reboot_install_operation_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        1056  +
        self.last_no_reboot_install_operation_time = input;
        1057  +
        self
        1058  +
    }
        1059  +
    /// <p>The time of the last attempt to patch the managed node with <code>NoReboot</code> specified as the reboot option.</p>
        1060  +
    pub fn get_last_no_reboot_install_operation_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        1061  +
        &self.last_no_reboot_install_operation_time
        1062  +
    }
        1063  +
    /// <p>Indicates the reboot option specified in the patch baseline.</p><note>
        1064  +
    /// <p>Reboot options apply to <code>Install</code> operations only. Reboots aren't attempted for Patch Manager <code>Scan</code> operations.</p>
        1065  +
    /// </note>
        1066  +
    /// <ul>
        1067  +
    /// <li>
        1068  +
    /// <p><code>RebootIfNeeded</code>: Patch Manager tries to reboot the managed node if it installed any patches, or if any patches are detected with a status of <code>InstalledPendingReboot</code>.</p></li>
        1069  +
    /// <li>
        1070  +
    /// <p><code>NoReboot</code>: Patch Manager attempts to install missing packages without trying to reboot the system. Patches installed with this option are assigned a status of <code>InstalledPendingReboot</code>. These patches might not be in effect until a reboot is performed.</p></li>
        1071  +
    /// </ul>
        1072  +
    pub fn reboot_option(mut self, input: crate::types::RebootOption) -> Self {
        1073  +
        self.reboot_option = ::std::option::Option::Some(input);
        1074  +
        self
        1075  +
    }
        1076  +
    /// <p>Indicates the reboot option specified in the patch baseline.</p><note>
        1077  +
    /// <p>Reboot options apply to <code>Install</code> operations only. Reboots aren't attempted for Patch Manager <code>Scan</code> operations.</p>
        1078  +
    /// </note>
        1079  +
    /// <ul>
        1080  +
    /// <li>
        1081  +
    /// <p><code>RebootIfNeeded</code>: Patch Manager tries to reboot the managed node if it installed any patches, or if any patches are detected with a status of <code>InstalledPendingReboot</code>.</p></li>
        1082  +
    /// <li>
        1083  +
    /// <p><code>NoReboot</code>: Patch Manager attempts to install missing packages without trying to reboot the system. Patches installed with this option are assigned a status of <code>InstalledPendingReboot</code>. These patches might not be in effect until a reboot is performed.</p></li>
        1084  +
    /// </ul>
        1085  +
    pub fn set_reboot_option(mut self, input: ::std::option::Option<crate::types::RebootOption>) -> Self {
        1086  +
        self.reboot_option = input;
        1087  +
        self
        1088  +
    }
        1089  +
    /// <p>Indicates the reboot option specified in the patch baseline.</p><note>
        1090  +
    /// <p>Reboot options apply to <code>Install</code> operations only. Reboots aren't attempted for Patch Manager <code>Scan</code> operations.</p>
        1091  +
    /// </note>
        1092  +
    /// <ul>
        1093  +
    /// <li>
        1094  +
    /// <p><code>RebootIfNeeded</code>: Patch Manager tries to reboot the managed node if it installed any patches, or if any patches are detected with a status of <code>InstalledPendingReboot</code>.</p></li>
        1095  +
    /// <li>
        1096  +
    /// <p><code>NoReboot</code>: Patch Manager attempts to install missing packages without trying to reboot the system. Patches installed with this option are assigned a status of <code>InstalledPendingReboot</code>. These patches might not be in effect until a reboot is performed.</p></li>
        1097  +
    /// </ul>
        1098  +
    pub fn get_reboot_option(&self) -> &::std::option::Option<crate::types::RebootOption> {
        1099  +
        &self.reboot_option
        1100  +
    }
        1101  +
    /// <p>The number of patches per node that are specified as <code>Critical</code> for compliance reporting in the patch baseline aren't installed. These patches might be missing, have failed installation, were rejected, or were installed but awaiting a required managed node reboot. The status of these managed nodes is <code>NON_COMPLIANT</code>.</p>
        1102  +
    pub fn critical_non_compliant_count(mut self, input: i32) -> Self {
        1103  +
        self.critical_non_compliant_count = ::std::option::Option::Some(input);
        1104  +
        self
        1105  +
    }
        1106  +
    /// <p>The number of patches per node that are specified as <code>Critical</code> for compliance reporting in the patch baseline aren't installed. These patches might be missing, have failed installation, were rejected, or were installed but awaiting a required managed node reboot. The status of these managed nodes is <code>NON_COMPLIANT</code>.</p>
        1107  +
    pub fn set_critical_non_compliant_count(mut self, input: ::std::option::Option<i32>) -> Self {
        1108  +
        self.critical_non_compliant_count = input;
        1109  +
        self
        1110  +
    }
        1111  +
    /// <p>The number of patches per node that are specified as <code>Critical</code> for compliance reporting in the patch baseline aren't installed. These patches might be missing, have failed installation, were rejected, or were installed but awaiting a required managed node reboot. The status of these managed nodes is <code>NON_COMPLIANT</code>.</p>
        1112  +
    pub fn get_critical_non_compliant_count(&self) -> &::std::option::Option<i32> {
        1113  +
        &self.critical_non_compliant_count
        1114  +
    }
        1115  +
    /// <p>The number of patches per node that are specified as <code>Security</code> in a patch advisory aren't installed. These patches might be missing, have failed installation, were rejected, or were installed but awaiting a required managed node reboot. The status of these managed nodes is <code>NON_COMPLIANT</code>.</p>
        1116  +
    pub fn security_non_compliant_count(mut self, input: i32) -> Self {
        1117  +
        self.security_non_compliant_count = ::std::option::Option::Some(input);
        1118  +
        self
        1119  +
    }
        1120  +
    /// <p>The number of patches per node that are specified as <code>Security</code> in a patch advisory aren't installed. These patches might be missing, have failed installation, were rejected, or were installed but awaiting a required managed node reboot. The status of these managed nodes is <code>NON_COMPLIANT</code>.</p>
        1121  +
    pub fn set_security_non_compliant_count(mut self, input: ::std::option::Option<i32>) -> Self {
        1122  +
        self.security_non_compliant_count = input;
        1123  +
        self
        1124  +
    }
        1125  +
    /// <p>The number of patches per node that are specified as <code>Security</code> in a patch advisory aren't installed. These patches might be missing, have failed installation, were rejected, or were installed but awaiting a required managed node reboot. The status of these managed nodes is <code>NON_COMPLIANT</code>.</p>
        1126  +
    pub fn get_security_non_compliant_count(&self) -> &::std::option::Option<i32> {
        1127  +
        &self.security_non_compliant_count
        1128  +
    }
        1129  +
    /// <p>The number of patches per node that are specified as other than <code>Critical</code> or <code>Security</code> but aren't compliant with the patch baseline. The status of these managed nodes is <code>NON_COMPLIANT</code>.</p>
        1130  +
    pub fn other_non_compliant_count(mut self, input: i32) -> Self {
        1131  +
        self.other_non_compliant_count = ::std::option::Option::Some(input);
        1132  +
        self
        1133  +
    }
        1134  +
    /// <p>The number of patches per node that are specified as other than <code>Critical</code> or <code>Security</code> but aren't compliant with the patch baseline. The status of these managed nodes is <code>NON_COMPLIANT</code>.</p>
        1135  +
    pub fn set_other_non_compliant_count(mut self, input: ::std::option::Option<i32>) -> Self {
        1136  +
        self.other_non_compliant_count = input;
        1137  +
        self
        1138  +
    }
        1139  +
    /// <p>The number of patches per node that are specified as other than <code>Critical</code> or <code>Security</code> but aren't compliant with the patch baseline. The status of these managed nodes is <code>NON_COMPLIANT</code>.</p>
        1140  +
    pub fn get_other_non_compliant_count(&self) -> &::std::option::Option<i32> {
        1141  +
        &self.other_non_compliant_count
        1142  +
    }
        1143  +
    /// Consumes the builder and constructs a [`InstancePatchState`](crate::types::InstancePatchState).
        1144  +
    /// This method will fail if any of the following fields are not set:
        1145  +
    /// - [`instance_id`](crate::types::builders::InstancePatchStateBuilder::instance_id)
        1146  +
    /// - [`patch_group`](crate::types::builders::InstancePatchStateBuilder::patch_group)
        1147  +
    /// - [`baseline_id`](crate::types::builders::InstancePatchStateBuilder::baseline_id)
        1148  +
    /// - [`operation_start_time`](crate::types::builders::InstancePatchStateBuilder::operation_start_time)
        1149  +
    /// - [`operation_end_time`](crate::types::builders::InstancePatchStateBuilder::operation_end_time)
        1150  +
    /// - [`operation`](crate::types::builders::InstancePatchStateBuilder::operation)
        1151  +
    pub fn build(self) -> ::std::result::Result<crate::types::InstancePatchState, ::aws_smithy_types::error::operation::BuildError> {
        1152  +
        ::std::result::Result::Ok(crate::types::InstancePatchState {
        1153  +
            instance_id: self.instance_id.ok_or_else(|| {
        1154  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
        1155  +
                    "instance_id",
        1156  +
                    "instance_id was not specified but it is required when building InstancePatchState",
        1157  +
                )
        1158  +
            })?,
        1159  +
            patch_group: self.patch_group.ok_or_else(|| {
        1160  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
        1161  +
                    "patch_group",
        1162  +
                    "patch_group was not specified but it is required when building InstancePatchState",
        1163  +
                )
        1164  +
            })?,
        1165  +
            baseline_id: self.baseline_id.ok_or_else(|| {
        1166  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
        1167  +
                    "baseline_id",
        1168  +
                    "baseline_id was not specified but it is required when building InstancePatchState",
        1169  +
                )
        1170  +
            })?,
        1171  +
            snapshot_id: self.snapshot_id,
        1172  +
            install_override_list: self.install_override_list,
        1173  +
            owner_information: self.owner_information,
        1174  +
            installed_count: self.installed_count.unwrap_or_default(),
        1175  +
            installed_other_count: self.installed_other_count.unwrap_or_default(),
        1176  +
            installed_pending_reboot_count: self.installed_pending_reboot_count,
        1177  +
            installed_rejected_count: self.installed_rejected_count,
        1178  +
            missing_count: self.missing_count.unwrap_or_default(),
        1179  +
            failed_count: self.failed_count.unwrap_or_default(),
        1180  +
            unreported_not_applicable_count: self.unreported_not_applicable_count,
        1181  +
            not_applicable_count: self.not_applicable_count.unwrap_or_default(),
        1182  +
            available_security_update_count: self.available_security_update_count,
        1183  +
            operation_start_time: self.operation_start_time.ok_or_else(|| {
        1184  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
        1185  +
                    "operation_start_time",
        1186  +
                    "operation_start_time was not specified but it is required when building InstancePatchState",
        1187  +
                )
        1188  +
            })?,
        1189  +
            operation_end_time: self.operation_end_time.ok_or_else(|| {
        1190  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
        1191  +
                    "operation_end_time",
        1192  +
                    "operation_end_time was not specified but it is required when building InstancePatchState",
        1193  +
                )
        1194  +
            })?,
        1195  +
            operation: self.operation.ok_or_else(|| {
        1196  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
        1197  +
                    "operation",
        1198  +
                    "operation was not specified but it is required when building InstancePatchState",
        1199  +
                )
        1200  +
            })?,
        1201  +
            last_no_reboot_install_operation_time: self.last_no_reboot_install_operation_time,
        1202  +
            reboot_option: self.reboot_option,
        1203  +
            critical_non_compliant_count: self.critical_non_compliant_count,
        1204  +
            security_non_compliant_count: self.security_non_compliant_count,
        1205  +
            other_non_compliant_count: self.other_non_compliant_count,
        1206  +
        })
        1207  +
    }
        1208  +
}
        1209  +
impl ::std::fmt::Debug for InstancePatchStateBuilder {
        1210  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        1211  +
        let mut formatter = f.debug_struct("InstancePatchStateBuilder");
        1212  +
        formatter.field("instance_id", &self.instance_id);
        1213  +
        formatter.field("patch_group", &self.patch_group);
        1214  +
        formatter.field("baseline_id", &self.baseline_id);
        1215  +
        formatter.field("snapshot_id", &self.snapshot_id);
        1216  +
        formatter.field("install_override_list", &self.install_override_list);
        1217  +
        formatter.field("owner_information", &"*** Sensitive Data Redacted ***");
        1218  +
        formatter.field("installed_count", &self.installed_count);
        1219  +
        formatter.field("installed_other_count", &self.installed_other_count);
        1220  +
        formatter.field("installed_pending_reboot_count", &self.installed_pending_reboot_count);
        1221  +
        formatter.field("installed_rejected_count", &self.installed_rejected_count);
        1222  +
        formatter.field("missing_count", &self.missing_count);
        1223  +
        formatter.field("failed_count", &self.failed_count);
        1224  +
        formatter.field("unreported_not_applicable_count", &self.unreported_not_applicable_count);
        1225  +
        formatter.field("not_applicable_count", &self.not_applicable_count);
        1226  +
        formatter.field("available_security_update_count", &self.available_security_update_count);
        1227  +
        formatter.field("operation_start_time", &self.operation_start_time);
        1228  +
        formatter.field("operation_end_time", &self.operation_end_time);
        1229  +
        formatter.field("operation", &self.operation);
        1230  +
        formatter.field("last_no_reboot_install_operation_time", &self.last_no_reboot_install_operation_time);
        1231  +
        formatter.field("reboot_option", &self.reboot_option);
        1232  +
        formatter.field("critical_non_compliant_count", &self.critical_non_compliant_count);
        1233  +
        formatter.field("security_non_compliant_count", &self.security_non_compliant_count);
        1234  +
        formatter.field("other_non_compliant_count", &self.other_non_compliant_count);
        1235  +
        formatter.finish()
        1236  +
    }
        1237  +
}