AWS SDK

AWS SDK

rev. 18b1dd205ff4335251e6dd0ecb88193de1b1cede (ignoring whitespace)

Files changed:

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

@@ -0,1 +0,749 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>Details about a specific managed node.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
           6  +
pub struct InstanceInfo {
           7  +
    /// <p>The type of agent installed on the node.</p>
           8  +
    pub agent_type: ::std::option::Option<::std::string::String>,
           9  +
    /// <p>The version number of the agent installed on the node.</p>
          10  +
    pub agent_version: ::std::option::Option<::std::string::String>,
          11  +
    /// <p>The fully qualified host name of the managed node.</p>
          12  +
    pub computer_name: ::std::option::Option<::std::string::String>,
          13  +
    /// <p>The current status of the managed node.</p>
          14  +
    pub instance_status: ::std::option::Option<::std::string::String>,
          15  +
    /// <p>The IP address of the managed node.</p>
          16  +
    pub ip_address: ::std::option::Option<::std::string::String>,
          17  +
    /// <p>Indicates whether the node is managed by Systems Manager.</p>
          18  +
    pub managed_status: ::std::option::Option<crate::types::ManagedStatus>,
          19  +
    /// <p>The name assigned to the managed node.</p>
          20  +
    pub name: ::std::option::Option<::std::string::String>,
          21  +
    /// <p>The operating system platform type of the managed node.</p>
          22  +
    pub platform_type: ::std::option::Option<crate::types::PlatformType>,
          23  +
    /// <p>The name of the operating system platform running on your managed node.</p>
          24  +
    pub platform_name: ::std::option::Option<::std::string::String>,
          25  +
    /// <p>The version of the OS platform running on your managed node.</p>
          26  +
    pub platform_version: ::std::option::Option<::std::string::String>,
          27  +
    /// <p>The type of instance, either an EC2 instance or another supported machine type in a hybrid fleet.</p>
          28  +
    pub resource_type: ::std::option::Option<crate::types::ResourceType>,
          29  +
    /// <p>The type of the source resource. For IoT Greengrass devices, <code>SourceType</code> is <code>AWS::IoT::Thing</code>.</p>
          30  +
    pub source_type: ::std::option::Option<crate::types::SourceType>,
          31  +
    /// <p>The ID of the source resource. For IoT Greengrass devices, <code>SourceId</code> is the Thing name.</p>
          32  +
    pub source_id: ::std::option::Option<::std::string::String>,
          33  +
    /// <p>The location of the source resource in the third-party cloud environment.</p>
          34  +
    pub source_location: ::std::option::Option<::std::string::String>,
          35  +
    /// <p>The Availability Zone where the managed node is located.</p>
          36  +
    pub availability_zone: ::std::option::Option<::std::string::String>,
          37  +
    /// <p>The Availability Zone ID where the managed node is located.</p>
          38  +
    pub availability_zone_id: ::std::option::Option<::std::string::String>,
          39  +
}
          40  +
impl InstanceInfo {
          41  +
    /// <p>The type of agent installed on the node.</p>
          42  +
    pub fn agent_type(&self) -> ::std::option::Option<&str> {
          43  +
        self.agent_type.as_deref()
          44  +
    }
          45  +
    /// <p>The version number of the agent installed on the node.</p>
          46  +
    pub fn agent_version(&self) -> ::std::option::Option<&str> {
          47  +
        self.agent_version.as_deref()
          48  +
    }
          49  +
    /// <p>The fully qualified host name of the managed node.</p>
          50  +
    pub fn computer_name(&self) -> ::std::option::Option<&str> {
          51  +
        self.computer_name.as_deref()
          52  +
    }
          53  +
    /// <p>The current status of the managed node.</p>
          54  +
    pub fn instance_status(&self) -> ::std::option::Option<&str> {
          55  +
        self.instance_status.as_deref()
          56  +
    }
          57  +
    /// <p>The IP address of the managed node.</p>
          58  +
    pub fn ip_address(&self) -> ::std::option::Option<&str> {
          59  +
        self.ip_address.as_deref()
          60  +
    }
          61  +
    /// <p>Indicates whether the node is managed by Systems Manager.</p>
          62  +
    pub fn managed_status(&self) -> ::std::option::Option<&crate::types::ManagedStatus> {
          63  +
        self.managed_status.as_ref()
          64  +
    }
          65  +
    /// <p>The name assigned to the managed node.</p>
          66  +
    pub fn name(&self) -> ::std::option::Option<&str> {
          67  +
        self.name.as_deref()
          68  +
    }
          69  +
    /// <p>The operating system platform type of the managed node.</p>
          70  +
    pub fn platform_type(&self) -> ::std::option::Option<&crate::types::PlatformType> {
          71  +
        self.platform_type.as_ref()
          72  +
    }
          73  +
    /// <p>The name of the operating system platform running on your managed node.</p>
          74  +
    pub fn platform_name(&self) -> ::std::option::Option<&str> {
          75  +
        self.platform_name.as_deref()
          76  +
    }
          77  +
    /// <p>The version of the OS platform running on your managed node.</p>
          78  +
    pub fn platform_version(&self) -> ::std::option::Option<&str> {
          79  +
        self.platform_version.as_deref()
          80  +
    }
          81  +
    /// <p>The type of instance, either an EC2 instance or another supported machine type in a hybrid fleet.</p>
          82  +
    pub fn resource_type(&self) -> ::std::option::Option<&crate::types::ResourceType> {
          83  +
        self.resource_type.as_ref()
          84  +
    }
          85  +
    /// <p>The type of the source resource. For IoT Greengrass devices, <code>SourceType</code> is <code>AWS::IoT::Thing</code>.</p>
          86  +
    pub fn source_type(&self) -> ::std::option::Option<&crate::types::SourceType> {
          87  +
        self.source_type.as_ref()
          88  +
    }
          89  +
    /// <p>The ID of the source resource. For IoT Greengrass devices, <code>SourceId</code> is the Thing name.</p>
          90  +
    pub fn source_id(&self) -> ::std::option::Option<&str> {
          91  +
        self.source_id.as_deref()
          92  +
    }
          93  +
    /// <p>The location of the source resource in the third-party cloud environment.</p>
          94  +
    pub fn source_location(&self) -> ::std::option::Option<&str> {
          95  +
        self.source_location.as_deref()
          96  +
    }
          97  +
    /// <p>The Availability Zone where the managed node is located.</p>
          98  +
    pub fn availability_zone(&self) -> ::std::option::Option<&str> {
          99  +
        self.availability_zone.as_deref()
         100  +
    }
         101  +
    /// <p>The Availability Zone ID where the managed node is located.</p>
         102  +
    pub fn availability_zone_id(&self) -> ::std::option::Option<&str> {
         103  +
        self.availability_zone_id.as_deref()
         104  +
    }
         105  +
}
         106  +
impl ::std::fmt::Debug for InstanceInfo {
         107  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         108  +
        let mut formatter = f.debug_struct("InstanceInfo");
         109  +
        formatter.field("agent_type", &self.agent_type);
         110  +
        formatter.field("agent_version", &self.agent_version);
         111  +
        formatter.field("computer_name", &self.computer_name);
         112  +
        formatter.field("instance_status", &self.instance_status);
         113  +
        formatter.field("ip_address", &"*** Sensitive Data Redacted ***");
         114  +
        formatter.field("managed_status", &self.managed_status);
         115  +
        formatter.field("name", &self.name);
         116  +
        formatter.field("platform_type", &self.platform_type);
         117  +
        formatter.field("platform_name", &self.platform_name);
         118  +
        formatter.field("platform_version", &self.platform_version);
         119  +
        formatter.field("resource_type", &self.resource_type);
         120  +
        formatter.field("source_type", &self.source_type);
         121  +
        formatter.field("source_id", &self.source_id);
         122  +
        formatter.field("source_location", &self.source_location);
         123  +
        formatter.field("availability_zone", &self.availability_zone);
         124  +
        formatter.field("availability_zone_id", &self.availability_zone_id);
         125  +
        formatter.finish()
         126  +
    }
         127  +
}
         128  +
static INSTANCEINFO_MEMBER_AGENT_TYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         129  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceInfo$AgentType", "com.amazonaws.ssm", "InstanceInfo"),
         130  +
    ::aws_smithy_schema::ShapeType::String,
         131  +
    "AgentType",
         132  +
    0,
         133  +
);
         134  +
static INSTANCEINFO_MEMBER_AGENT_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         135  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceInfo$AgentVersion", "com.amazonaws.ssm", "InstanceInfo"),
         136  +
    ::aws_smithy_schema::ShapeType::String,
         137  +
    "AgentVersion",
         138  +
    1,
         139  +
);
         140  +
static INSTANCEINFO_MEMBER_COMPUTER_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         141  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceInfo$ComputerName", "com.amazonaws.ssm", "InstanceInfo"),
         142  +
    ::aws_smithy_schema::ShapeType::String,
         143  +
    "ComputerName",
         144  +
    2,
         145  +
);
         146  +
static INSTANCEINFO_MEMBER_INSTANCE_STATUS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         147  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceInfo$InstanceStatus", "com.amazonaws.ssm", "InstanceInfo"),
         148  +
    ::aws_smithy_schema::ShapeType::String,
         149  +
    "InstanceStatus",
         150  +
    3,
         151  +
);
         152  +
static INSTANCEINFO_MEMBER_IP_ADDRESS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         153  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceInfo$IpAddress", "com.amazonaws.ssm", "InstanceInfo"),
         154  +
    ::aws_smithy_schema::ShapeType::String,
         155  +
    "IpAddress",
         156  +
    4,
         157  +
);
         158  +
static INSTANCEINFO_MEMBER_MANAGED_STATUS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         159  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceInfo$ManagedStatus", "com.amazonaws.ssm", "InstanceInfo"),
         160  +
    ::aws_smithy_schema::ShapeType::String,
         161  +
    "ManagedStatus",
         162  +
    5,
         163  +
);
         164  +
static INSTANCEINFO_MEMBER_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         165  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceInfo$Name", "com.amazonaws.ssm", "InstanceInfo"),
         166  +
    ::aws_smithy_schema::ShapeType::String,
         167  +
    "Name",
         168  +
    6,
         169  +
);
         170  +
static INSTANCEINFO_MEMBER_PLATFORM_TYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         171  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceInfo$PlatformType", "com.amazonaws.ssm", "InstanceInfo"),
         172  +
    ::aws_smithy_schema::ShapeType::String,
         173  +
    "PlatformType",
         174  +
    7,
         175  +
);
         176  +
static INSTANCEINFO_MEMBER_PLATFORM_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         177  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceInfo$PlatformName", "com.amazonaws.ssm", "InstanceInfo"),
         178  +
    ::aws_smithy_schema::ShapeType::String,
         179  +
    "PlatformName",
         180  +
    8,
         181  +
);
         182  +
static INSTANCEINFO_MEMBER_PLATFORM_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         183  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceInfo$PlatformVersion", "com.amazonaws.ssm", "InstanceInfo"),
         184  +
    ::aws_smithy_schema::ShapeType::String,
         185  +
    "PlatformVersion",
         186  +
    9,
         187  +
);
         188  +
static INSTANCEINFO_MEMBER_RESOURCE_TYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         189  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceInfo$ResourceType", "com.amazonaws.ssm", "InstanceInfo"),
         190  +
    ::aws_smithy_schema::ShapeType::String,
         191  +
    "ResourceType",
         192  +
    10,
         193  +
);
         194  +
static INSTANCEINFO_MEMBER_SOURCE_TYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         195  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceInfo$SourceType", "com.amazonaws.ssm", "InstanceInfo"),
         196  +
    ::aws_smithy_schema::ShapeType::String,
         197  +
    "SourceType",
         198  +
    11,
         199  +
);
         200  +
static INSTANCEINFO_MEMBER_SOURCE_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         201  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceInfo$SourceId", "com.amazonaws.ssm", "InstanceInfo"),
         202  +
    ::aws_smithy_schema::ShapeType::String,
         203  +
    "SourceId",
         204  +
    12,
         205  +
);
         206  +
static INSTANCEINFO_MEMBER_SOURCE_LOCATION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         207  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceInfo$SourceLocation", "com.amazonaws.ssm", "InstanceInfo"),
         208  +
    ::aws_smithy_schema::ShapeType::String,
         209  +
    "SourceLocation",
         210  +
    13,
         211  +
);
         212  +
static INSTANCEINFO_MEMBER_AVAILABILITY_ZONE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         213  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceInfo$AvailabilityZone", "com.amazonaws.ssm", "InstanceInfo"),
         214  +
    ::aws_smithy_schema::ShapeType::String,
         215  +
    "AvailabilityZone",
         216  +
    14,
         217  +
);
         218  +
static INSTANCEINFO_MEMBER_AVAILABILITY_ZONE_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         219  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceInfo$AvailabilityZoneId", "com.amazonaws.ssm", "InstanceInfo"),
         220  +
    ::aws_smithy_schema::ShapeType::String,
         221  +
    "AvailabilityZoneId",
         222  +
    15,
         223  +
);
         224  +
static INSTANCEINFO_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
         225  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceInfo", "com.amazonaws.ssm", "InstanceInfo"),
         226  +
    ::aws_smithy_schema::ShapeType::Structure,
         227  +
    &[
         228  +
        &INSTANCEINFO_MEMBER_AGENT_TYPE,
         229  +
        &INSTANCEINFO_MEMBER_AGENT_VERSION,
         230  +
        &INSTANCEINFO_MEMBER_COMPUTER_NAME,
         231  +
        &INSTANCEINFO_MEMBER_INSTANCE_STATUS,
         232  +
        &INSTANCEINFO_MEMBER_IP_ADDRESS,
         233  +
        &INSTANCEINFO_MEMBER_MANAGED_STATUS,
         234  +
        &INSTANCEINFO_MEMBER_NAME,
         235  +
        &INSTANCEINFO_MEMBER_PLATFORM_TYPE,
         236  +
        &INSTANCEINFO_MEMBER_PLATFORM_NAME,
         237  +
        &INSTANCEINFO_MEMBER_PLATFORM_VERSION,
         238  +
        &INSTANCEINFO_MEMBER_RESOURCE_TYPE,
         239  +
        &INSTANCEINFO_MEMBER_SOURCE_TYPE,
         240  +
        &INSTANCEINFO_MEMBER_SOURCE_ID,
         241  +
        &INSTANCEINFO_MEMBER_SOURCE_LOCATION,
         242  +
        &INSTANCEINFO_MEMBER_AVAILABILITY_ZONE,
         243  +
        &INSTANCEINFO_MEMBER_AVAILABILITY_ZONE_ID,
         244  +
    ],
         245  +
);
         246  +
impl InstanceInfo {
         247  +
    /// The schema for this shape.
         248  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &INSTANCEINFO_SCHEMA;
         249  +
}
         250  +
impl ::aws_smithy_schema::serde::SerializableStruct for InstanceInfo {
         251  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         252  +
    fn serialize_members(
         253  +
        &self,
         254  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         255  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         256  +
        if let Some(ref val) = self.agent_type {
         257  +
            ser.write_string(&INSTANCEINFO_MEMBER_AGENT_TYPE, val)?;
         258  +
        }
         259  +
        if let Some(ref val) = self.agent_version {
         260  +
            ser.write_string(&INSTANCEINFO_MEMBER_AGENT_VERSION, val)?;
         261  +
        }
         262  +
        if let Some(ref val) = self.computer_name {
         263  +
            ser.write_string(&INSTANCEINFO_MEMBER_COMPUTER_NAME, val)?;
         264  +
        }
         265  +
        if let Some(ref val) = self.instance_status {
         266  +
            ser.write_string(&INSTANCEINFO_MEMBER_INSTANCE_STATUS, val)?;
         267  +
        }
         268  +
        if let Some(ref val) = self.ip_address {
         269  +
            ser.write_string(&INSTANCEINFO_MEMBER_IP_ADDRESS, val)?;
         270  +
        }
         271  +
        if let Some(ref val) = self.managed_status {
         272  +
            ser.write_string(&INSTANCEINFO_MEMBER_MANAGED_STATUS, val.as_str())?;
         273  +
        }
         274  +
        if let Some(ref val) = self.name {
         275  +
            ser.write_string(&INSTANCEINFO_MEMBER_NAME, val)?;
         276  +
        }
         277  +
        if let Some(ref val) = self.platform_type {
         278  +
            ser.write_string(&INSTANCEINFO_MEMBER_PLATFORM_TYPE, val.as_str())?;
         279  +
        }
         280  +
        if let Some(ref val) = self.platform_name {
         281  +
            ser.write_string(&INSTANCEINFO_MEMBER_PLATFORM_NAME, val)?;
         282  +
        }
         283  +
        if let Some(ref val) = self.platform_version {
         284  +
            ser.write_string(&INSTANCEINFO_MEMBER_PLATFORM_VERSION, val)?;
         285  +
        }
         286  +
        if let Some(ref val) = self.resource_type {
         287  +
            ser.write_string(&INSTANCEINFO_MEMBER_RESOURCE_TYPE, val.as_str())?;
         288  +
        }
         289  +
        if let Some(ref val) = self.source_type {
         290  +
            ser.write_string(&INSTANCEINFO_MEMBER_SOURCE_TYPE, val.as_str())?;
         291  +
        }
         292  +
        if let Some(ref val) = self.source_id {
         293  +
            ser.write_string(&INSTANCEINFO_MEMBER_SOURCE_ID, val)?;
         294  +
        }
         295  +
        if let Some(ref val) = self.source_location {
         296  +
            ser.write_string(&INSTANCEINFO_MEMBER_SOURCE_LOCATION, val)?;
         297  +
        }
         298  +
        if let Some(ref val) = self.availability_zone {
         299  +
            ser.write_string(&INSTANCEINFO_MEMBER_AVAILABILITY_ZONE, val)?;
         300  +
        }
         301  +
        if let Some(ref val) = self.availability_zone_id {
         302  +
            ser.write_string(&INSTANCEINFO_MEMBER_AVAILABILITY_ZONE_ID, val)?;
         303  +
        }
         304  +
        Ok(())
         305  +
    }
         306  +
}
         307  +
impl InstanceInfo {
         308  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         309  +
    pub fn deserialize(
         310  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         311  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         312  +
        #[allow(unused_variables, unused_mut)]
         313  +
        let mut builder = Self::builder();
         314  +
        #[allow(
         315  +
            unused_variables,
         316  +
            unreachable_code,
         317  +
            clippy::single_match,
         318  +
            clippy::match_single_binding,
         319  +
            clippy::diverging_sub_expression
         320  +
        )]
         321  +
        deserializer.read_struct(&INSTANCEINFO_SCHEMA, &mut |member, deser| {
         322  +
            match member.member_index() {
         323  +
                Some(0) => {
         324  +
                    if deser.is_null() {
         325  +
                        deser.read_null()?;
         326  +
                    } else {
         327  +
                        builder.agent_type = Some(deser.read_string(member)?);
         328  +
                    }
         329  +
                }
         330  +
                Some(1) => {
         331  +
                    if deser.is_null() {
         332  +
                        deser.read_null()?;
         333  +
                    } else {
         334  +
                        builder.agent_version = Some(deser.read_string(member)?);
         335  +
                    }
         336  +
                }
         337  +
                Some(2) => {
         338  +
                    if deser.is_null() {
         339  +
                        deser.read_null()?;
         340  +
                    } else {
         341  +
                        builder.computer_name = Some(deser.read_string(member)?);
         342  +
                    }
         343  +
                }
         344  +
                Some(3) => {
         345  +
                    if deser.is_null() {
         346  +
                        deser.read_null()?;
         347  +
                    } else {
         348  +
                        builder.instance_status = Some(deser.read_string(member)?);
         349  +
                    }
         350  +
                }
         351  +
                Some(4) => {
         352  +
                    if deser.is_null() {
         353  +
                        deser.read_null()?;
         354  +
                    } else {
         355  +
                        builder.ip_address = Some(deser.read_string(member)?);
         356  +
                    }
         357  +
                }
         358  +
                Some(5) => {
         359  +
                    if deser.is_null() {
         360  +
                        deser.read_null()?;
         361  +
                    } else {
         362  +
                        builder.managed_status = Some(crate::types::ManagedStatus::from(deser.read_string(member)?.as_str()));
         363  +
                    }
         364  +
                }
         365  +
                Some(6) => {
         366  +
                    if deser.is_null() {
         367  +
                        deser.read_null()?;
         368  +
                    } else {
         369  +
                        builder.name = Some(deser.read_string(member)?);
         370  +
                    }
         371  +
                }
         372  +
                Some(7) => {
         373  +
                    if deser.is_null() {
         374  +
                        deser.read_null()?;
         375  +
                    } else {
         376  +
                        builder.platform_type = Some(crate::types::PlatformType::from(deser.read_string(member)?.as_str()));
         377  +
                    }
         378  +
                }
         379  +
                Some(8) => {
         380  +
                    if deser.is_null() {
         381  +
                        deser.read_null()?;
         382  +
                    } else {
         383  +
                        builder.platform_name = Some(deser.read_string(member)?);
         384  +
                    }
         385  +
                }
         386  +
                Some(9) => {
         387  +
                    if deser.is_null() {
         388  +
                        deser.read_null()?;
         389  +
                    } else {
         390  +
                        builder.platform_version = Some(deser.read_string(member)?);
         391  +
                    }
         392  +
                }
         393  +
                Some(10) => {
         394  +
                    if deser.is_null() {
         395  +
                        deser.read_null()?;
         396  +
                    } else {
         397  +
                        builder.resource_type = Some(crate::types::ResourceType::from(deser.read_string(member)?.as_str()));
         398  +
                    }
         399  +
                }
         400  +
                Some(11) => {
         401  +
                    if deser.is_null() {
         402  +
                        deser.read_null()?;
         403  +
                    } else {
         404  +
                        builder.source_type = Some(crate::types::SourceType::from(deser.read_string(member)?.as_str()));
         405  +
                    }
         406  +
                }
         407  +
                Some(12) => {
         408  +
                    if deser.is_null() {
         409  +
                        deser.read_null()?;
         410  +
                    } else {
         411  +
                        builder.source_id = Some(deser.read_string(member)?);
         412  +
                    }
         413  +
                }
         414  +
                Some(13) => {
         415  +
                    if deser.is_null() {
         416  +
                        deser.read_null()?;
         417  +
                    } else {
         418  +
                        builder.source_location = Some(deser.read_string(member)?);
         419  +
                    }
         420  +
                }
         421  +
                Some(14) => {
         422  +
                    if deser.is_null() {
         423  +
                        deser.read_null()?;
         424  +
                    } else {
         425  +
                        builder.availability_zone = Some(deser.read_string(member)?);
         426  +
                    }
         427  +
                }
         428  +
                Some(15) => {
         429  +
                    if deser.is_null() {
         430  +
                        deser.read_null()?;
         431  +
                    } else {
         432  +
                        builder.availability_zone_id = Some(deser.read_string(member)?);
         433  +
                    }
         434  +
                }
         435  +
                _ => {}
         436  +
            }
         437  +
            Ok(())
         438  +
        })?;
         439  +
        Ok(builder.build())
         440  +
    }
         441  +
}
         442  +
impl InstanceInfo {
         443  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         444  +
    pub fn deserialize_with_response(
         445  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         446  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         447  +
        _status: u16,
         448  +
        _body: &[u8],
         449  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         450  +
        Self::deserialize(deserializer)
         451  +
    }
         452  +
}
         453  +
impl InstanceInfo {
         454  +
    /// Creates a new builder-style object to manufacture [`InstanceInfo`](crate::types::InstanceInfo).
         455  +
    pub fn builder() -> crate::types::builders::InstanceInfoBuilder {
         456  +
        crate::types::builders::InstanceInfoBuilder::default()
         457  +
    }
         458  +
}
         459  +
         460  +
/// A builder for [`InstanceInfo`](crate::types::InstanceInfo).
         461  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
         462  +
#[non_exhaustive]
         463  +
pub struct InstanceInfoBuilder {
         464  +
    pub(crate) agent_type: ::std::option::Option<::std::string::String>,
         465  +
    pub(crate) agent_version: ::std::option::Option<::std::string::String>,
         466  +
    pub(crate) computer_name: ::std::option::Option<::std::string::String>,
         467  +
    pub(crate) instance_status: ::std::option::Option<::std::string::String>,
         468  +
    pub(crate) ip_address: ::std::option::Option<::std::string::String>,
         469  +
    pub(crate) managed_status: ::std::option::Option<crate::types::ManagedStatus>,
         470  +
    pub(crate) name: ::std::option::Option<::std::string::String>,
         471  +
    pub(crate) platform_type: ::std::option::Option<crate::types::PlatformType>,
         472  +
    pub(crate) platform_name: ::std::option::Option<::std::string::String>,
         473  +
    pub(crate) platform_version: ::std::option::Option<::std::string::String>,
         474  +
    pub(crate) resource_type: ::std::option::Option<crate::types::ResourceType>,
         475  +
    pub(crate) source_type: ::std::option::Option<crate::types::SourceType>,
         476  +
    pub(crate) source_id: ::std::option::Option<::std::string::String>,
         477  +
    pub(crate) source_location: ::std::option::Option<::std::string::String>,
         478  +
    pub(crate) availability_zone: ::std::option::Option<::std::string::String>,
         479  +
    pub(crate) availability_zone_id: ::std::option::Option<::std::string::String>,
         480  +
}
         481  +
impl InstanceInfoBuilder {
         482  +
    /// <p>The type of agent installed on the node.</p>
         483  +
    pub fn agent_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         484  +
        self.agent_type = ::std::option::Option::Some(input.into());
         485  +
        self
         486  +
    }
         487  +
    /// <p>The type of agent installed on the node.</p>
         488  +
    pub fn set_agent_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         489  +
        self.agent_type = input;
         490  +
        self
         491  +
    }
         492  +
    /// <p>The type of agent installed on the node.</p>
         493  +
    pub fn get_agent_type(&self) -> &::std::option::Option<::std::string::String> {
         494  +
        &self.agent_type
         495  +
    }
         496  +
    /// <p>The version number of the agent installed on the node.</p>
         497  +
    pub fn agent_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         498  +
        self.agent_version = ::std::option::Option::Some(input.into());
         499  +
        self
         500  +
    }
         501  +
    /// <p>The version number of the agent installed on the node.</p>
         502  +
    pub fn set_agent_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         503  +
        self.agent_version = input;
         504  +
        self
         505  +
    }
         506  +
    /// <p>The version number of the agent installed on the node.</p>
         507  +
    pub fn get_agent_version(&self) -> &::std::option::Option<::std::string::String> {
         508  +
        &self.agent_version
         509  +
    }
         510  +
    /// <p>The fully qualified host name of the managed node.</p>
         511  +
    pub fn computer_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         512  +
        self.computer_name = ::std::option::Option::Some(input.into());
         513  +
        self
         514  +
    }
         515  +
    /// <p>The fully qualified host name of the managed node.</p>
         516  +
    pub fn set_computer_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         517  +
        self.computer_name = input;
         518  +
        self
         519  +
    }
         520  +
    /// <p>The fully qualified host name of the managed node.</p>
         521  +
    pub fn get_computer_name(&self) -> &::std::option::Option<::std::string::String> {
         522  +
        &self.computer_name
         523  +
    }
         524  +
    /// <p>The current status of the managed node.</p>
         525  +
    pub fn instance_status(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         526  +
        self.instance_status = ::std::option::Option::Some(input.into());
         527  +
        self
         528  +
    }
         529  +
    /// <p>The current status of the managed node.</p>
         530  +
    pub fn set_instance_status(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         531  +
        self.instance_status = input;
         532  +
        self
         533  +
    }
         534  +
    /// <p>The current status of the managed node.</p>
         535  +
    pub fn get_instance_status(&self) -> &::std::option::Option<::std::string::String> {
         536  +
        &self.instance_status
         537  +
    }
         538  +
    /// <p>The IP address of the managed node.</p>
         539  +
    pub fn ip_address(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         540  +
        self.ip_address = ::std::option::Option::Some(input.into());
         541  +
        self
         542  +
    }
         543  +
    /// <p>The IP address of the managed node.</p>
         544  +
    pub fn set_ip_address(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         545  +
        self.ip_address = input;
         546  +
        self
         547  +
    }
         548  +
    /// <p>The IP address of the managed node.</p>
         549  +
    pub fn get_ip_address(&self) -> &::std::option::Option<::std::string::String> {
         550  +
        &self.ip_address
         551  +
    }
         552  +
    /// <p>Indicates whether the node is managed by Systems Manager.</p>
         553  +
    pub fn managed_status(mut self, input: crate::types::ManagedStatus) -> Self {
         554  +
        self.managed_status = ::std::option::Option::Some(input);
         555  +
        self
         556  +
    }
         557  +
    /// <p>Indicates whether the node is managed by Systems Manager.</p>
         558  +
    pub fn set_managed_status(mut self, input: ::std::option::Option<crate::types::ManagedStatus>) -> Self {
         559  +
        self.managed_status = input;
         560  +
        self
         561  +
    }
         562  +
    /// <p>Indicates whether the node is managed by Systems Manager.</p>
         563  +
    pub fn get_managed_status(&self) -> &::std::option::Option<crate::types::ManagedStatus> {
         564  +
        &self.managed_status
         565  +
    }
         566  +
    /// <p>The name assigned to the managed node.</p>
         567  +
    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         568  +
        self.name = ::std::option::Option::Some(input.into());
         569  +
        self
         570  +
    }
         571  +
    /// <p>The name assigned to the managed node.</p>
         572  +
    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         573  +
        self.name = input;
         574  +
        self
         575  +
    }
         576  +
    /// <p>The name assigned to the managed node.</p>
         577  +
    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
         578  +
        &self.name
         579  +
    }
         580  +
    /// <p>The operating system platform type of the managed node.</p>
         581  +
    pub fn platform_type(mut self, input: crate::types::PlatformType) -> Self {
         582  +
        self.platform_type = ::std::option::Option::Some(input);
         583  +
        self
         584  +
    }
         585  +
    /// <p>The operating system platform type of the managed node.</p>
         586  +
    pub fn set_platform_type(mut self, input: ::std::option::Option<crate::types::PlatformType>) -> Self {
         587  +
        self.platform_type = input;
         588  +
        self
         589  +
    }
         590  +
    /// <p>The operating system platform type of the managed node.</p>
         591  +
    pub fn get_platform_type(&self) -> &::std::option::Option<crate::types::PlatformType> {
         592  +
        &self.platform_type
         593  +
    }
         594  +
    /// <p>The name of the operating system platform running on your managed node.</p>
         595  +
    pub fn platform_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         596  +
        self.platform_name = ::std::option::Option::Some(input.into());
         597  +
        self
         598  +
    }
         599  +
    /// <p>The name of the operating system platform running on your managed node.</p>
         600  +
    pub fn set_platform_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         601  +
        self.platform_name = input;
         602  +
        self
         603  +
    }
         604  +
    /// <p>The name of the operating system platform running on your managed node.</p>
         605  +
    pub fn get_platform_name(&self) -> &::std::option::Option<::std::string::String> {
         606  +
        &self.platform_name
         607  +
    }
         608  +
    /// <p>The version of the OS platform running on your managed node.</p>
         609  +
    pub fn platform_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         610  +
        self.platform_version = ::std::option::Option::Some(input.into());
         611  +
        self
         612  +
    }
         613  +
    /// <p>The version of the OS platform running on your managed node.</p>
         614  +
    pub fn set_platform_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         615  +
        self.platform_version = input;
         616  +
        self
         617  +
    }
         618  +
    /// <p>The version of the OS platform running on your managed node.</p>
         619  +
    pub fn get_platform_version(&self) -> &::std::option::Option<::std::string::String> {
         620  +
        &self.platform_version
         621  +
    }
         622  +
    /// <p>The type of instance, either an EC2 instance or another supported machine type in a hybrid fleet.</p>
         623  +
    pub fn resource_type(mut self, input: crate::types::ResourceType) -> Self {
         624  +
        self.resource_type = ::std::option::Option::Some(input);
         625  +
        self
         626  +
    }
         627  +
    /// <p>The type of instance, either an EC2 instance or another supported machine type in a hybrid fleet.</p>
         628  +
    pub fn set_resource_type(mut self, input: ::std::option::Option<crate::types::ResourceType>) -> Self {
         629  +
        self.resource_type = input;
         630  +
        self
         631  +
    }
         632  +
    /// <p>The type of instance, either an EC2 instance or another supported machine type in a hybrid fleet.</p>
         633  +
    pub fn get_resource_type(&self) -> &::std::option::Option<crate::types::ResourceType> {
         634  +
        &self.resource_type
         635  +
    }
         636  +
    /// <p>The type of the source resource. For IoT Greengrass devices, <code>SourceType</code> is <code>AWS::IoT::Thing</code>.</p>
         637  +
    pub fn source_type(mut self, input: crate::types::SourceType) -> Self {
         638  +
        self.source_type = ::std::option::Option::Some(input);
         639  +
        self
         640  +
    }
         641  +
    /// <p>The type of the source resource. For IoT Greengrass devices, <code>SourceType</code> is <code>AWS::IoT::Thing</code>.</p>
         642  +
    pub fn set_source_type(mut self, input: ::std::option::Option<crate::types::SourceType>) -> Self {
         643  +
        self.source_type = input;
         644  +
        self
         645  +
    }
         646  +
    /// <p>The type of the source resource. For IoT Greengrass devices, <code>SourceType</code> is <code>AWS::IoT::Thing</code>.</p>
         647  +
    pub fn get_source_type(&self) -> &::std::option::Option<crate::types::SourceType> {
         648  +
        &self.source_type
         649  +
    }
         650  +
    /// <p>The ID of the source resource. For IoT Greengrass devices, <code>SourceId</code> is the Thing name.</p>
         651  +
    pub fn source_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         652  +
        self.source_id = ::std::option::Option::Some(input.into());
         653  +
        self
         654  +
    }
         655  +
    /// <p>The ID of the source resource. For IoT Greengrass devices, <code>SourceId</code> is the Thing name.</p>
         656  +
    pub fn set_source_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         657  +
        self.source_id = input;
         658  +
        self
         659  +
    }
         660  +
    /// <p>The ID of the source resource. For IoT Greengrass devices, <code>SourceId</code> is the Thing name.</p>
         661  +
    pub fn get_source_id(&self) -> &::std::option::Option<::std::string::String> {
         662  +
        &self.source_id
         663  +
    }
         664  +
    /// <p>The location of the source resource in the third-party cloud environment.</p>
         665  +
    pub fn source_location(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         666  +
        self.source_location = ::std::option::Option::Some(input.into());
         667  +
        self
         668  +
    }
         669  +
    /// <p>The location of the source resource in the third-party cloud environment.</p>
         670  +
    pub fn set_source_location(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         671  +
        self.source_location = input;
         672  +
        self
         673  +
    }
         674  +
    /// <p>The location of the source resource in the third-party cloud environment.</p>
         675  +
    pub fn get_source_location(&self) -> &::std::option::Option<::std::string::String> {
         676  +
        &self.source_location
         677  +
    }
         678  +
    /// <p>The Availability Zone where the managed node is located.</p>
         679  +
    pub fn availability_zone(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         680  +
        self.availability_zone = ::std::option::Option::Some(input.into());
         681  +
        self
         682  +
    }
         683  +
    /// <p>The Availability Zone where the managed node is located.</p>
         684  +
    pub fn set_availability_zone(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         685  +
        self.availability_zone = input;
         686  +
        self
         687  +
    }
         688  +
    /// <p>The Availability Zone where the managed node is located.</p>
         689  +
    pub fn get_availability_zone(&self) -> &::std::option::Option<::std::string::String> {
         690  +
        &self.availability_zone
         691  +
    }
         692  +
    /// <p>The Availability Zone ID where the managed node is located.</p>
         693  +
    pub fn availability_zone_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         694  +
        self.availability_zone_id = ::std::option::Option::Some(input.into());
         695  +
        self
         696  +
    }
         697  +
    /// <p>The Availability Zone ID where the managed node is located.</p>
         698  +
    pub fn set_availability_zone_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         699  +
        self.availability_zone_id = input;
         700  +
        self
         701  +
    }
         702  +
    /// <p>The Availability Zone ID where the managed node is located.</p>
         703  +
    pub fn get_availability_zone_id(&self) -> &::std::option::Option<::std::string::String> {
         704  +
        &self.availability_zone_id
         705  +
    }
         706  +
    /// Consumes the builder and constructs a [`InstanceInfo`](crate::types::InstanceInfo).
         707  +
    pub fn build(self) -> crate::types::InstanceInfo {
         708  +
        crate::types::InstanceInfo {
         709  +
            agent_type: self.agent_type,
         710  +
            agent_version: self.agent_version,
         711  +
            computer_name: self.computer_name,
         712  +
            instance_status: self.instance_status,
         713  +
            ip_address: self.ip_address,
         714  +
            managed_status: self.managed_status,
         715  +
            name: self.name,
         716  +
            platform_type: self.platform_type,
         717  +
            platform_name: self.platform_name,
         718  +
            platform_version: self.platform_version,
         719  +
            resource_type: self.resource_type,
         720  +
            source_type: self.source_type,
         721  +
            source_id: self.source_id,
         722  +
            source_location: self.source_location,
         723  +
            availability_zone: self.availability_zone,
         724  +
            availability_zone_id: self.availability_zone_id,
         725  +
        }
         726  +
    }
         727  +
}
         728  +
impl ::std::fmt::Debug for InstanceInfoBuilder {
         729  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         730  +
        let mut formatter = f.debug_struct("InstanceInfoBuilder");
         731  +
        formatter.field("agent_type", &self.agent_type);
         732  +
        formatter.field("agent_version", &self.agent_version);
         733  +
        formatter.field("computer_name", &self.computer_name);
         734  +
        formatter.field("instance_status", &self.instance_status);
         735  +
        formatter.field("ip_address", &"*** Sensitive Data Redacted ***");
         736  +
        formatter.field("managed_status", &self.managed_status);
         737  +
        formatter.field("name", &self.name);
         738  +
        formatter.field("platform_type", &self.platform_type);
         739  +
        formatter.field("platform_name", &self.platform_name);
         740  +
        formatter.field("platform_version", &self.platform_version);
         741  +
        formatter.field("resource_type", &self.resource_type);
         742  +
        formatter.field("source_type", &self.source_type);
         743  +
        formatter.field("source_id", &self.source_id);
         744  +
        formatter.field("source_location", &self.source_location);
         745  +
        formatter.field("availability_zone", &self.availability_zone);
         746  +
        formatter.field("availability_zone_id", &self.availability_zone_id);
         747  +
        formatter.finish()
         748  +
    }
         749  +
}

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

@@ -0,1 +0,1101 @@
           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.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
           6  +
pub struct InstanceInformation {
           7  +
    /// <p>The managed node ID.</p>
           8  +
    pub instance_id: ::std::option::Option<::std::string::String>,
           9  +
    /// <p>Connection status of SSM Agent.</p><note>
          10  +
    /// <p>The status <code>Inactive</code> has been deprecated and is no longer in use.</p>
          11  +
    /// </note>
          12  +
    pub ping_status: ::std::option::Option<crate::types::PingStatus>,
          13  +
    /// <p>The date and time when the agent last pinged the Systems Manager service.</p>
          14  +
    pub last_ping_date_time: ::std::option::Option<::aws_smithy_types::DateTime>,
          15  +
    /// <p>The version of SSM Agent running on your Linux managed node.</p>
          16  +
    pub agent_version: ::std::option::Option<::std::string::String>,
          17  +
    /// <p>Indicates whether the latest version of SSM Agent is running on your Linux managed node. This field doesn't indicate whether or not the latest version is installed on Windows managed nodes, because some older versions of Windows Server use the EC2Config service to process Systems Manager requests.</p>
          18  +
    pub is_latest_version: ::std::option::Option<bool>,
          19  +
    /// <p>The operating system platform type.</p>
          20  +
    pub platform_type: ::std::option::Option<crate::types::PlatformType>,
          21  +
    /// <p>The name of the operating system platform running on your managed node.</p>
          22  +
    pub platform_name: ::std::option::Option<::std::string::String>,
          23  +
    /// <p>The version of the OS platform running on your managed node.</p>
          24  +
    pub platform_version: ::std::option::Option<::std::string::String>,
          25  +
    /// <p>The activation ID created by Amazon Web Services Systems Manager when the server or virtual machine (VM) was registered.</p>
          26  +
    pub activation_id: ::std::option::Option<::std::string::String>,
          27  +
    /// <p>The role assigned to an Amazon EC2 instance configured with a Systems Manager Quick Setup host management configuration or the role assigned to an on-premises managed node.</p>
          28  +
    /// <p>This call doesn't return the IAM role for <i>unmanaged</i> Amazon EC2 instances (instances not configured for Systems Manager). To retrieve the role for an unmanaged instance, use the Amazon EC2 <code>DescribeInstances</code> operation. For information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html">DescribeInstances</a> in the <i>Amazon EC2 API Reference</i> or <a href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html">describe-instances</a> in the <i>Amazon Web Services CLI Command Reference</i>.</p>
          29  +
    pub iam_role: ::std::option::Option<::std::string::String>,
          30  +
    /// <p>The date the server or VM was registered with Amazon Web Services as a managed node.</p>
          31  +
    pub registration_date: ::std::option::Option<::aws_smithy_types::DateTime>,
          32  +
    /// <p>The type of instance. Instances are either EC2 instances or managed instances.</p>
          33  +
    pub resource_type: ::std::option::Option<crate::types::ResourceType>,
          34  +
    /// <p>The name assigned to an on-premises server, edge device, or virtual machine (VM) when it is activated as a Systems Manager managed node. The name is specified as the <code>DefaultInstanceName</code> property using the <code>CreateActivation</code> command. It is applied to the managed node by specifying the Activation Code and Activation ID when you install SSM Agent on the node, as explained in <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/hybrid-multicloud-ssm-agent-install-linux.html">How to install SSM Agent on hybrid Linux nodes</a> and <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/hybrid-multicloud-ssm-agent-install-windows.html">How to install SSM Agent on hybrid Windows Server nodes</a>. To retrieve the <code>Name</code> tag of an EC2 instance, use the Amazon EC2 <code>DescribeInstances</code> operation. For information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html">DescribeInstances</a> in the <i>Amazon EC2 API Reference</i> or <a href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html">describe-instances</a> in the <i>Amazon Web Services CLI Command Reference</i>.</p>
          35  +
    pub name: ::std::option::Option<::std::string::String>,
          36  +
    /// <p>The IP address of the managed node.</p>
          37  +
    pub ip_address: ::std::option::Option<::std::string::String>,
          38  +
    /// <p>The fully qualified host name of the managed node.</p>
          39  +
    pub computer_name: ::std::option::Option<::std::string::String>,
          40  +
    /// <p>The status of the association.</p>
          41  +
    pub association_status: ::std::option::Option<::std::string::String>,
          42  +
    /// <p>The date the association was last run.</p>
          43  +
    pub last_association_execution_date: ::std::option::Option<::aws_smithy_types::DateTime>,
          44  +
    /// <p>The last date the association was successfully run.</p>
          45  +
    pub last_successful_association_execution_date: ::std::option::Option<::aws_smithy_types::DateTime>,
          46  +
    /// <p>Information about the association.</p>
          47  +
    pub association_overview: ::std::option::Option<crate::types::InstanceAggregatedAssociationOverview>,
          48  +
    /// <p>The ID of the source resource. For IoT Greengrass devices, <code>SourceId</code> is the Thing name.</p>
          49  +
    pub source_id: ::std::option::Option<::std::string::String>,
          50  +
    /// <p>The type of the source resource. For IoT Greengrass devices, <code>SourceType</code> is <code>AWS::IoT::Thing</code>. For Azure Virtual Machines, <code>SourceType</code> is <code>Microsoft.Compute/virtualMachines</code>.</p>
          51  +
    pub source_type: ::std::option::Option<crate::types::SourceType>,
          52  +
    /// <p>The location of the source resource in the third-party cloud environment.</p>
          53  +
    pub source_location: ::std::option::Option<::std::string::String>,
          54  +
}
          55  +
impl InstanceInformation {
          56  +
    /// <p>The managed node ID.</p>
          57  +
    pub fn instance_id(&self) -> ::std::option::Option<&str> {
          58  +
        self.instance_id.as_deref()
          59  +
    }
          60  +
    /// <p>Connection status of SSM Agent.</p><note>
          61  +
    /// <p>The status <code>Inactive</code> has been deprecated and is no longer in use.</p>
          62  +
    /// </note>
          63  +
    pub fn ping_status(&self) -> ::std::option::Option<&crate::types::PingStatus> {
          64  +
        self.ping_status.as_ref()
          65  +
    }
          66  +
    /// <p>The date and time when the agent last pinged the Systems Manager service.</p>
          67  +
    pub fn last_ping_date_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
          68  +
        self.last_ping_date_time.as_ref()
          69  +
    }
          70  +
    /// <p>The version of SSM Agent running on your Linux managed node.</p>
          71  +
    pub fn agent_version(&self) -> ::std::option::Option<&str> {
          72  +
        self.agent_version.as_deref()
          73  +
    }
          74  +
    /// <p>Indicates whether the latest version of SSM Agent is running on your Linux managed node. This field doesn't indicate whether or not the latest version is installed on Windows managed nodes, because some older versions of Windows Server use the EC2Config service to process Systems Manager requests.</p>
          75  +
    pub fn is_latest_version(&self) -> ::std::option::Option<bool> {
          76  +
        self.is_latest_version
          77  +
    }
          78  +
    /// <p>The operating system platform type.</p>
          79  +
    pub fn platform_type(&self) -> ::std::option::Option<&crate::types::PlatformType> {
          80  +
        self.platform_type.as_ref()
          81  +
    }
          82  +
    /// <p>The name of the operating system platform running on your managed node.</p>
          83  +
    pub fn platform_name(&self) -> ::std::option::Option<&str> {
          84  +
        self.platform_name.as_deref()
          85  +
    }
          86  +
    /// <p>The version of the OS platform running on your managed node.</p>
          87  +
    pub fn platform_version(&self) -> ::std::option::Option<&str> {
          88  +
        self.platform_version.as_deref()
          89  +
    }
          90  +
    /// <p>The activation ID created by Amazon Web Services Systems Manager when the server or virtual machine (VM) was registered.</p>
          91  +
    pub fn activation_id(&self) -> ::std::option::Option<&str> {
          92  +
        self.activation_id.as_deref()
          93  +
    }
          94  +
    /// <p>The role assigned to an Amazon EC2 instance configured with a Systems Manager Quick Setup host management configuration or the role assigned to an on-premises managed node.</p>
          95  +
    /// <p>This call doesn't return the IAM role for <i>unmanaged</i> Amazon EC2 instances (instances not configured for Systems Manager). To retrieve the role for an unmanaged instance, use the Amazon EC2 <code>DescribeInstances</code> operation. For information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html">DescribeInstances</a> in the <i>Amazon EC2 API Reference</i> or <a href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html">describe-instances</a> in the <i>Amazon Web Services CLI Command Reference</i>.</p>
          96  +
    pub fn iam_role(&self) -> ::std::option::Option<&str> {
          97  +
        self.iam_role.as_deref()
          98  +
    }
          99  +
    /// <p>The date the server or VM was registered with Amazon Web Services as a managed node.</p>
         100  +
    pub fn registration_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         101  +
        self.registration_date.as_ref()
         102  +
    }
         103  +
    /// <p>The type of instance. Instances are either EC2 instances or managed instances.</p>
         104  +
    pub fn resource_type(&self) -> ::std::option::Option<&crate::types::ResourceType> {
         105  +
        self.resource_type.as_ref()
         106  +
    }
         107  +
    /// <p>The name assigned to an on-premises server, edge device, or virtual machine (VM) when it is activated as a Systems Manager managed node. The name is specified as the <code>DefaultInstanceName</code> property using the <code>CreateActivation</code> command. It is applied to the managed node by specifying the Activation Code and Activation ID when you install SSM Agent on the node, as explained in <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/hybrid-multicloud-ssm-agent-install-linux.html">How to install SSM Agent on hybrid Linux nodes</a> and <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/hybrid-multicloud-ssm-agent-install-windows.html">How to install SSM Agent on hybrid Windows Server nodes</a>. To retrieve the <code>Name</code> tag of an EC2 instance, use the Amazon EC2 <code>DescribeInstances</code> operation. For information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html">DescribeInstances</a> in the <i>Amazon EC2 API Reference</i> or <a href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html">describe-instances</a> in the <i>Amazon Web Services CLI Command Reference</i>.</p>
         108  +
    pub fn name(&self) -> ::std::option::Option<&str> {
         109  +
        self.name.as_deref()
         110  +
    }
         111  +
    /// <p>The IP address of the managed node.</p>
         112  +
    pub fn ip_address(&self) -> ::std::option::Option<&str> {
         113  +
        self.ip_address.as_deref()
         114  +
    }
         115  +
    /// <p>The fully qualified host name of the managed node.</p>
         116  +
    pub fn computer_name(&self) -> ::std::option::Option<&str> {
         117  +
        self.computer_name.as_deref()
         118  +
    }
         119  +
    /// <p>The status of the association.</p>
         120  +
    pub fn association_status(&self) -> ::std::option::Option<&str> {
         121  +
        self.association_status.as_deref()
         122  +
    }
         123  +
    /// <p>The date the association was last run.</p>
         124  +
    pub fn last_association_execution_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         125  +
        self.last_association_execution_date.as_ref()
         126  +
    }
         127  +
    /// <p>The last date the association was successfully run.</p>
         128  +
    pub fn last_successful_association_execution_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         129  +
        self.last_successful_association_execution_date.as_ref()
         130  +
    }
         131  +
    /// <p>Information about the association.</p>
         132  +
    pub fn association_overview(&self) -> ::std::option::Option<&crate::types::InstanceAggregatedAssociationOverview> {
         133  +
        self.association_overview.as_ref()
         134  +
    }
         135  +
    /// <p>The ID of the source resource. For IoT Greengrass devices, <code>SourceId</code> is the Thing name.</p>
         136  +
    pub fn source_id(&self) -> ::std::option::Option<&str> {
         137  +
        self.source_id.as_deref()
         138  +
    }
         139  +
    /// <p>The type of the source resource. For IoT Greengrass devices, <code>SourceType</code> is <code>AWS::IoT::Thing</code>. For Azure Virtual Machines, <code>SourceType</code> is <code>Microsoft.Compute/virtualMachines</code>.</p>
         140  +
    pub fn source_type(&self) -> ::std::option::Option<&crate::types::SourceType> {
         141  +
        self.source_type.as_ref()
         142  +
    }
         143  +
    /// <p>The location of the source resource in the third-party cloud environment.</p>
         144  +
    pub fn source_location(&self) -> ::std::option::Option<&str> {
         145  +
        self.source_location.as_deref()
         146  +
    }
         147  +
}
         148  +
impl ::std::fmt::Debug for InstanceInformation {
         149  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         150  +
        let mut formatter = f.debug_struct("InstanceInformation");
         151  +
        formatter.field("instance_id", &self.instance_id);
         152  +
        formatter.field("ping_status", &self.ping_status);
         153  +
        formatter.field("last_ping_date_time", &self.last_ping_date_time);
         154  +
        formatter.field("agent_version", &self.agent_version);
         155  +
        formatter.field("is_latest_version", &self.is_latest_version);
         156  +
        formatter.field("platform_type", &self.platform_type);
         157  +
        formatter.field("platform_name", &self.platform_name);
         158  +
        formatter.field("platform_version", &self.platform_version);
         159  +
        formatter.field("activation_id", &self.activation_id);
         160  +
        formatter.field("iam_role", &self.iam_role);
         161  +
        formatter.field("registration_date", &self.registration_date);
         162  +
        formatter.field("resource_type", &self.resource_type);
         163  +
        formatter.field("name", &self.name);
         164  +
        formatter.field("ip_address", &"*** Sensitive Data Redacted ***");
         165  +
        formatter.field("computer_name", &self.computer_name);
         166  +
        formatter.field("association_status", &self.association_status);
         167  +
        formatter.field("last_association_execution_date", &self.last_association_execution_date);
         168  +
        formatter.field(
         169  +
            "last_successful_association_execution_date",
         170  +
            &self.last_successful_association_execution_date,
         171  +
        );
         172  +
        formatter.field("association_overview", &self.association_overview);
         173  +
        formatter.field("source_id", &self.source_id);
         174  +
        formatter.field("source_type", &self.source_type);
         175  +
        formatter.field("source_location", &self.source_location);
         176  +
        formatter.finish()
         177  +
    }
         178  +
}
         179  +
static INSTANCEINFORMATION_MEMBER_INSTANCE_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         180  +
    ::aws_smithy_schema::ShapeId::from_parts(
         181  +
        "com.amazonaws.ssm#InstanceInformation$InstanceId",
         182  +
        "com.amazonaws.ssm",
         183  +
        "InstanceInformation",
         184  +
    ),
         185  +
    ::aws_smithy_schema::ShapeType::String,
         186  +
    "InstanceId",
         187  +
    0,
         188  +
);
         189  +
static INSTANCEINFORMATION_MEMBER_PING_STATUS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         190  +
    ::aws_smithy_schema::ShapeId::from_parts(
         191  +
        "com.amazonaws.ssm#InstanceInformation$PingStatus",
         192  +
        "com.amazonaws.ssm",
         193  +
        "InstanceInformation",
         194  +
    ),
         195  +
    ::aws_smithy_schema::ShapeType::String,
         196  +
    "PingStatus",
         197  +
    1,
         198  +
);
         199  +
static INSTANCEINFORMATION_MEMBER_LAST_PING_DATE_TIME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         200  +
    ::aws_smithy_schema::ShapeId::from_parts(
         201  +
        "com.amazonaws.ssm#InstanceInformation$LastPingDateTime",
         202  +
        "com.amazonaws.ssm",
         203  +
        "InstanceInformation",
         204  +
    ),
         205  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         206  +
    "LastPingDateTime",
         207  +
    2,
         208  +
);
         209  +
static INSTANCEINFORMATION_MEMBER_AGENT_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         210  +
    ::aws_smithy_schema::ShapeId::from_parts(
         211  +
        "com.amazonaws.ssm#InstanceInformation$AgentVersion",
         212  +
        "com.amazonaws.ssm",
         213  +
        "InstanceInformation",
         214  +
    ),
         215  +
    ::aws_smithy_schema::ShapeType::String,
         216  +
    "AgentVersion",
         217  +
    3,
         218  +
);
         219  +
static INSTANCEINFORMATION_MEMBER_IS_LATEST_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         220  +
    ::aws_smithy_schema::ShapeId::from_parts(
         221  +
        "com.amazonaws.ssm#InstanceInformation$IsLatestVersion",
         222  +
        "com.amazonaws.ssm",
         223  +
        "InstanceInformation",
         224  +
    ),
         225  +
    ::aws_smithy_schema::ShapeType::Boolean,
         226  +
    "IsLatestVersion",
         227  +
    4,
         228  +
);
         229  +
static INSTANCEINFORMATION_MEMBER_PLATFORM_TYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         230  +
    ::aws_smithy_schema::ShapeId::from_parts(
         231  +
        "com.amazonaws.ssm#InstanceInformation$PlatformType",
         232  +
        "com.amazonaws.ssm",
         233  +
        "InstanceInformation",
         234  +
    ),
         235  +
    ::aws_smithy_schema::ShapeType::String,
         236  +
    "PlatformType",
         237  +
    5,
         238  +
);
         239  +
static INSTANCEINFORMATION_MEMBER_PLATFORM_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         240  +
    ::aws_smithy_schema::ShapeId::from_parts(
         241  +
        "com.amazonaws.ssm#InstanceInformation$PlatformName",
         242  +
        "com.amazonaws.ssm",
         243  +
        "InstanceInformation",
         244  +
    ),
         245  +
    ::aws_smithy_schema::ShapeType::String,
         246  +
    "PlatformName",
         247  +
    6,
         248  +
);
         249  +
static INSTANCEINFORMATION_MEMBER_PLATFORM_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         250  +
    ::aws_smithy_schema::ShapeId::from_parts(
         251  +
        "com.amazonaws.ssm#InstanceInformation$PlatformVersion",
         252  +
        "com.amazonaws.ssm",
         253  +
        "InstanceInformation",
         254  +
    ),
         255  +
    ::aws_smithy_schema::ShapeType::String,
         256  +
    "PlatformVersion",
         257  +
    7,
         258  +
);
         259  +
static INSTANCEINFORMATION_MEMBER_ACTIVATION_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         260  +
    ::aws_smithy_schema::ShapeId::from_parts(
         261  +
        "com.amazonaws.ssm#InstanceInformation$ActivationId",
         262  +
        "com.amazonaws.ssm",
         263  +
        "InstanceInformation",
         264  +
    ),
         265  +
    ::aws_smithy_schema::ShapeType::String,
         266  +
    "ActivationId",
         267  +
    8,
         268  +
);
         269  +
static INSTANCEINFORMATION_MEMBER_IAM_ROLE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         270  +
    ::aws_smithy_schema::ShapeId::from_parts(
         271  +
        "com.amazonaws.ssm#InstanceInformation$IamRole",
         272  +
        "com.amazonaws.ssm",
         273  +
        "InstanceInformation",
         274  +
    ),
         275  +
    ::aws_smithy_schema::ShapeType::String,
         276  +
    "IamRole",
         277  +
    9,
         278  +
);
         279  +
static INSTANCEINFORMATION_MEMBER_REGISTRATION_DATE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         280  +
    ::aws_smithy_schema::ShapeId::from_parts(
         281  +
        "com.amazonaws.ssm#InstanceInformation$RegistrationDate",
         282  +
        "com.amazonaws.ssm",
         283  +
        "InstanceInformation",
         284  +
    ),
         285  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         286  +
    "RegistrationDate",
         287  +
    10,
         288  +
);
         289  +
static INSTANCEINFORMATION_MEMBER_RESOURCE_TYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         290  +
    ::aws_smithy_schema::ShapeId::from_parts(
         291  +
        "com.amazonaws.ssm#InstanceInformation$ResourceType",
         292  +
        "com.amazonaws.ssm",
         293  +
        "InstanceInformation",
         294  +
    ),
         295  +
    ::aws_smithy_schema::ShapeType::String,
         296  +
    "ResourceType",
         297  +
    11,
         298  +
);
         299  +
static INSTANCEINFORMATION_MEMBER_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         300  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceInformation$Name", "com.amazonaws.ssm", "InstanceInformation"),
         301  +
    ::aws_smithy_schema::ShapeType::String,
         302  +
    "Name",
         303  +
    12,
         304  +
);
         305  +
static INSTANCEINFORMATION_MEMBER_IP_ADDRESS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         306  +
    ::aws_smithy_schema::ShapeId::from_parts(
         307  +
        "com.amazonaws.ssm#InstanceInformation$IPAddress",
         308  +
        "com.amazonaws.ssm",
         309  +
        "InstanceInformation",
         310  +
    ),
         311  +
    ::aws_smithy_schema::ShapeType::String,
         312  +
    "IPAddress",
         313  +
    13,
         314  +
);
         315  +
static INSTANCEINFORMATION_MEMBER_COMPUTER_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         316  +
    ::aws_smithy_schema::ShapeId::from_parts(
         317  +
        "com.amazonaws.ssm#InstanceInformation$ComputerName",
         318  +
        "com.amazonaws.ssm",
         319  +
        "InstanceInformation",
         320  +
    ),
         321  +
    ::aws_smithy_schema::ShapeType::String,
         322  +
    "ComputerName",
         323  +
    14,
         324  +
);
         325  +
static INSTANCEINFORMATION_MEMBER_ASSOCIATION_STATUS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         326  +
    ::aws_smithy_schema::ShapeId::from_parts(
         327  +
        "com.amazonaws.ssm#InstanceInformation$AssociationStatus",
         328  +
        "com.amazonaws.ssm",
         329  +
        "InstanceInformation",
         330  +
    ),
         331  +
    ::aws_smithy_schema::ShapeType::String,
         332  +
    "AssociationStatus",
         333  +
    15,
         334  +
);
         335  +
static INSTANCEINFORMATION_MEMBER_LAST_ASSOCIATION_EXECUTION_DATE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         336  +
    ::aws_smithy_schema::ShapeId::from_parts(
         337  +
        "com.amazonaws.ssm#InstanceInformation$LastAssociationExecutionDate",
         338  +
        "com.amazonaws.ssm",
         339  +
        "InstanceInformation",
         340  +
    ),
         341  +
    ::aws_smithy_schema::ShapeType::Timestamp,
         342  +
    "LastAssociationExecutionDate",
         343  +
    16,
         344  +
);
         345  +
static INSTANCEINFORMATION_MEMBER_LAST_SUCCESSFUL_ASSOCIATION_EXECUTION_DATE: ::aws_smithy_schema::Schema<'static> =
         346  +
    ::aws_smithy_schema::Schema::new_member(
         347  +
        ::aws_smithy_schema::ShapeId::from_parts(
         348  +
            "com.amazonaws.ssm#InstanceInformation$LastSuccessfulAssociationExecutionDate",
         349  +
            "com.amazonaws.ssm",
         350  +
            "InstanceInformation",
         351  +
        ),
         352  +
        ::aws_smithy_schema::ShapeType::Timestamp,
         353  +
        "LastSuccessfulAssociationExecutionDate",
         354  +
        17,
         355  +
    );
         356  +
static INSTANCEINFORMATION_MEMBER_ASSOCIATION_OVERVIEW: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         357  +
    ::aws_smithy_schema::ShapeId::from_parts(
         358  +
        "com.amazonaws.ssm#InstanceInformation$AssociationOverview",
         359  +
        "com.amazonaws.ssm",
         360  +
        "InstanceInformation",
         361  +
    ),
         362  +
    ::aws_smithy_schema::ShapeType::Structure,
         363  +
    "AssociationOverview",
         364  +
    18,
         365  +
);
         366  +
static INSTANCEINFORMATION_MEMBER_SOURCE_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         367  +
    ::aws_smithy_schema::ShapeId::from_parts(
         368  +
        "com.amazonaws.ssm#InstanceInformation$SourceId",
         369  +
        "com.amazonaws.ssm",
         370  +
        "InstanceInformation",
         371  +
    ),
         372  +
    ::aws_smithy_schema::ShapeType::String,
         373  +
    "SourceId",
         374  +
    19,
         375  +
);
         376  +
static INSTANCEINFORMATION_MEMBER_SOURCE_TYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         377  +
    ::aws_smithy_schema::ShapeId::from_parts(
         378  +
        "com.amazonaws.ssm#InstanceInformation$SourceType",
         379  +
        "com.amazonaws.ssm",
         380  +
        "InstanceInformation",
         381  +
    ),
         382  +
    ::aws_smithy_schema::ShapeType::String,
         383  +
    "SourceType",
         384  +
    20,
         385  +
);
         386  +
static INSTANCEINFORMATION_MEMBER_SOURCE_LOCATION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         387  +
    ::aws_smithy_schema::ShapeId::from_parts(
         388  +
        "com.amazonaws.ssm#InstanceInformation$SourceLocation",
         389  +
        "com.amazonaws.ssm",
         390  +
        "InstanceInformation",
         391  +
    ),
         392  +
    ::aws_smithy_schema::ShapeType::String,
         393  +
    "SourceLocation",
         394  +
    21,
         395  +
);
         396  +
static INSTANCEINFORMATION_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
         397  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceInformation", "com.amazonaws.ssm", "InstanceInformation"),
         398  +
    ::aws_smithy_schema::ShapeType::Structure,
         399  +
    &[
         400  +
        &INSTANCEINFORMATION_MEMBER_INSTANCE_ID,
         401  +
        &INSTANCEINFORMATION_MEMBER_PING_STATUS,
         402  +
        &INSTANCEINFORMATION_MEMBER_LAST_PING_DATE_TIME,
         403  +
        &INSTANCEINFORMATION_MEMBER_AGENT_VERSION,
         404  +
        &INSTANCEINFORMATION_MEMBER_IS_LATEST_VERSION,
         405  +
        &INSTANCEINFORMATION_MEMBER_PLATFORM_TYPE,
         406  +
        &INSTANCEINFORMATION_MEMBER_PLATFORM_NAME,
         407  +
        &INSTANCEINFORMATION_MEMBER_PLATFORM_VERSION,
         408  +
        &INSTANCEINFORMATION_MEMBER_ACTIVATION_ID,
         409  +
        &INSTANCEINFORMATION_MEMBER_IAM_ROLE,
         410  +
        &INSTANCEINFORMATION_MEMBER_REGISTRATION_DATE,
         411  +
        &INSTANCEINFORMATION_MEMBER_RESOURCE_TYPE,
         412  +
        &INSTANCEINFORMATION_MEMBER_NAME,
         413  +
        &INSTANCEINFORMATION_MEMBER_IP_ADDRESS,
         414  +
        &INSTANCEINFORMATION_MEMBER_COMPUTER_NAME,
         415  +
        &INSTANCEINFORMATION_MEMBER_ASSOCIATION_STATUS,
         416  +
        &INSTANCEINFORMATION_MEMBER_LAST_ASSOCIATION_EXECUTION_DATE,
         417  +
        &INSTANCEINFORMATION_MEMBER_LAST_SUCCESSFUL_ASSOCIATION_EXECUTION_DATE,
         418  +
        &INSTANCEINFORMATION_MEMBER_ASSOCIATION_OVERVIEW,
         419  +
        &INSTANCEINFORMATION_MEMBER_SOURCE_ID,
         420  +
        &INSTANCEINFORMATION_MEMBER_SOURCE_TYPE,
         421  +
        &INSTANCEINFORMATION_MEMBER_SOURCE_LOCATION,
         422  +
    ],
         423  +
);
         424  +
impl InstanceInformation {
         425  +
    /// The schema for this shape.
         426  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &INSTANCEINFORMATION_SCHEMA;
         427  +
}
         428  +
impl ::aws_smithy_schema::serde::SerializableStruct for InstanceInformation {
         429  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         430  +
    fn serialize_members(
         431  +
        &self,
         432  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         433  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         434  +
        if let Some(ref val) = self.instance_id {
         435  +
            ser.write_string(&INSTANCEINFORMATION_MEMBER_INSTANCE_ID, val)?;
         436  +
        }
         437  +
        if let Some(ref val) = self.ping_status {
         438  +
            ser.write_string(&INSTANCEINFORMATION_MEMBER_PING_STATUS, val.as_str())?;
         439  +
        }
         440  +
        if let Some(ref val) = self.last_ping_date_time {
         441  +
            ser.write_timestamp(&INSTANCEINFORMATION_MEMBER_LAST_PING_DATE_TIME, val)?;
         442  +
        }
         443  +
        if let Some(ref val) = self.agent_version {
         444  +
            ser.write_string(&INSTANCEINFORMATION_MEMBER_AGENT_VERSION, val)?;
         445  +
        }
         446  +
        if let Some(ref val) = self.is_latest_version {
         447  +
            ser.write_boolean(&INSTANCEINFORMATION_MEMBER_IS_LATEST_VERSION, *val)?;
         448  +
        }
         449  +
        if let Some(ref val) = self.platform_type {
         450  +
            ser.write_string(&INSTANCEINFORMATION_MEMBER_PLATFORM_TYPE, val.as_str())?;
         451  +
        }
         452  +
        if let Some(ref val) = self.platform_name {
         453  +
            ser.write_string(&INSTANCEINFORMATION_MEMBER_PLATFORM_NAME, val)?;
         454  +
        }
         455  +
        if let Some(ref val) = self.platform_version {
         456  +
            ser.write_string(&INSTANCEINFORMATION_MEMBER_PLATFORM_VERSION, val)?;
         457  +
        }
         458  +
        if let Some(ref val) = self.activation_id {
         459  +
            ser.write_string(&INSTANCEINFORMATION_MEMBER_ACTIVATION_ID, val)?;
         460  +
        }
         461  +
        if let Some(ref val) = self.iam_role {
         462  +
            ser.write_string(&INSTANCEINFORMATION_MEMBER_IAM_ROLE, val)?;
         463  +
        }
         464  +
        if let Some(ref val) = self.registration_date {
         465  +
            ser.write_timestamp(&INSTANCEINFORMATION_MEMBER_REGISTRATION_DATE, val)?;
         466  +
        }
         467  +
        if let Some(ref val) = self.resource_type {
         468  +
            ser.write_string(&INSTANCEINFORMATION_MEMBER_RESOURCE_TYPE, val.as_str())?;
         469  +
        }
         470  +
        if let Some(ref val) = self.name {
         471  +
            ser.write_string(&INSTANCEINFORMATION_MEMBER_NAME, val)?;
         472  +
        }
         473  +
        if let Some(ref val) = self.ip_address {
         474  +
            ser.write_string(&INSTANCEINFORMATION_MEMBER_IP_ADDRESS, val)?;
         475  +
        }
         476  +
        if let Some(ref val) = self.computer_name {
         477  +
            ser.write_string(&INSTANCEINFORMATION_MEMBER_COMPUTER_NAME, val)?;
         478  +
        }
         479  +
        if let Some(ref val) = self.association_status {
         480  +
            ser.write_string(&INSTANCEINFORMATION_MEMBER_ASSOCIATION_STATUS, val)?;
         481  +
        }
         482  +
        if let Some(ref val) = self.last_association_execution_date {
         483  +
            ser.write_timestamp(&INSTANCEINFORMATION_MEMBER_LAST_ASSOCIATION_EXECUTION_DATE, val)?;
         484  +
        }
         485  +
        if let Some(ref val) = self.last_successful_association_execution_date {
         486  +
            ser.write_timestamp(&INSTANCEINFORMATION_MEMBER_LAST_SUCCESSFUL_ASSOCIATION_EXECUTION_DATE, val)?;
         487  +
        }
         488  +
        if let Some(ref val) = self.association_overview {
         489  +
            ser.write_struct(&INSTANCEINFORMATION_MEMBER_ASSOCIATION_OVERVIEW, val)?;
         490  +
        }
         491  +
        if let Some(ref val) = self.source_id {
         492  +
            ser.write_string(&INSTANCEINFORMATION_MEMBER_SOURCE_ID, val)?;
         493  +
        }
         494  +
        if let Some(ref val) = self.source_type {
         495  +
            ser.write_string(&INSTANCEINFORMATION_MEMBER_SOURCE_TYPE, val.as_str())?;
         496  +
        }
         497  +
        if let Some(ref val) = self.source_location {
         498  +
            ser.write_string(&INSTANCEINFORMATION_MEMBER_SOURCE_LOCATION, val)?;
         499  +
        }
         500  +
        Ok(())
         501  +
    }
         502  +
}
         503  +
impl InstanceInformation {
         504  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         505  +
    pub fn deserialize(
         506  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         507  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         508  +
        #[allow(unused_variables, unused_mut)]
         509  +
        let mut builder = Self::builder();
         510  +
        #[allow(
         511  +
            unused_variables,
         512  +
            unreachable_code,
         513  +
            clippy::single_match,
         514  +
            clippy::match_single_binding,
         515  +
            clippy::diverging_sub_expression
         516  +
        )]
         517  +
        deserializer.read_struct(&INSTANCEINFORMATION_SCHEMA, &mut |member, deser| {
         518  +
            match member.member_index() {
         519  +
                Some(0) => {
         520  +
                    if deser.is_null() {
         521  +
                        deser.read_null()?;
         522  +
                    } else {
         523  +
                        builder.instance_id = Some(deser.read_string(member)?);
         524  +
                    }
         525  +
                }
         526  +
                Some(1) => {
         527  +
                    if deser.is_null() {
         528  +
                        deser.read_null()?;
         529  +
                    } else {
         530  +
                        builder.ping_status = Some(crate::types::PingStatus::from(deser.read_string(member)?.as_str()));
         531  +
                    }
         532  +
                }
         533  +
                Some(2) => {
         534  +
                    if deser.is_null() {
         535  +
                        deser.read_null()?;
         536  +
                    } else {
         537  +
                        builder.last_ping_date_time = Some(deser.read_timestamp(member)?);
         538  +
                    }
         539  +
                }
         540  +
                Some(3) => {
         541  +
                    if deser.is_null() {
         542  +
                        deser.read_null()?;
         543  +
                    } else {
         544  +
                        builder.agent_version = Some(deser.read_string(member)?);
         545  +
                    }
         546  +
                }
         547  +
                Some(4) => {
         548  +
                    if deser.is_null() {
         549  +
                        deser.read_null()?;
         550  +
                    } else {
         551  +
                        builder.is_latest_version = Some(deser.read_boolean(member)?);
         552  +
                    }
         553  +
                }
         554  +
                Some(5) => {
         555  +
                    if deser.is_null() {
         556  +
                        deser.read_null()?;
         557  +
                    } else {
         558  +
                        builder.platform_type = Some(crate::types::PlatformType::from(deser.read_string(member)?.as_str()));
         559  +
                    }
         560  +
                }
         561  +
                Some(6) => {
         562  +
                    if deser.is_null() {
         563  +
                        deser.read_null()?;
         564  +
                    } else {
         565  +
                        builder.platform_name = Some(deser.read_string(member)?);
         566  +
                    }
         567  +
                }
         568  +
                Some(7) => {
         569  +
                    if deser.is_null() {
         570  +
                        deser.read_null()?;
         571  +
                    } else {
         572  +
                        builder.platform_version = Some(deser.read_string(member)?);
         573  +
                    }
         574  +
                }
         575  +
                Some(8) => {
         576  +
                    if deser.is_null() {
         577  +
                        deser.read_null()?;
         578  +
                    } else {
         579  +
                        builder.activation_id = Some(deser.read_string(member)?);
         580  +
                    }
         581  +
                }
         582  +
                Some(9) => {
         583  +
                    if deser.is_null() {
         584  +
                        deser.read_null()?;
         585  +
                    } else {
         586  +
                        builder.iam_role = Some(deser.read_string(member)?);
         587  +
                    }
         588  +
                }
         589  +
                Some(10) => {
         590  +
                    if deser.is_null() {
         591  +
                        deser.read_null()?;
         592  +
                    } else {
         593  +
                        builder.registration_date = Some(deser.read_timestamp(member)?);
         594  +
                    }
         595  +
                }
         596  +
                Some(11) => {
         597  +
                    if deser.is_null() {
         598  +
                        deser.read_null()?;
         599  +
                    } else {
         600  +
                        builder.resource_type = Some(crate::types::ResourceType::from(deser.read_string(member)?.as_str()));
         601  +
                    }
         602  +
                }
         603  +
                Some(12) => {
         604  +
                    if deser.is_null() {
         605  +
                        deser.read_null()?;
         606  +
                    } else {
         607  +
                        builder.name = Some(deser.read_string(member)?);
         608  +
                    }
         609  +
                }
         610  +
                Some(13) => {
         611  +
                    if deser.is_null() {
         612  +
                        deser.read_null()?;
         613  +
                    } else {
         614  +
                        builder.ip_address = Some(deser.read_string(member)?);
         615  +
                    }
         616  +
                }
         617  +
                Some(14) => {
         618  +
                    if deser.is_null() {
         619  +
                        deser.read_null()?;
         620  +
                    } else {
         621  +
                        builder.computer_name = Some(deser.read_string(member)?);
         622  +
                    }
         623  +
                }
         624  +
                Some(15) => {
         625  +
                    if deser.is_null() {
         626  +
                        deser.read_null()?;
         627  +
                    } else {
         628  +
                        builder.association_status = Some(deser.read_string(member)?);
         629  +
                    }
         630  +
                }
         631  +
                Some(16) => {
         632  +
                    if deser.is_null() {
         633  +
                        deser.read_null()?;
         634  +
                    } else {
         635  +
                        builder.last_association_execution_date = Some(deser.read_timestamp(member)?);
         636  +
                    }
         637  +
                }
         638  +
                Some(17) => {
         639  +
                    if deser.is_null() {
         640  +
                        deser.read_null()?;
         641  +
                    } else {
         642  +
                        builder.last_successful_association_execution_date = Some(deser.read_timestamp(member)?);
         643  +
                    }
         644  +
                }
         645  +
                Some(18) => {
         646  +
                    if deser.is_null() {
         647  +
                        deser.read_null()?;
         648  +
                    } else {
         649  +
                        builder.association_overview = Some(crate::types::InstanceAggregatedAssociationOverview::deserialize(deser)?);
         650  +
                    }
         651  +
                }
         652  +
                Some(19) => {
         653  +
                    if deser.is_null() {
         654  +
                        deser.read_null()?;
         655  +
                    } else {
         656  +
                        builder.source_id = Some(deser.read_string(member)?);
         657  +
                    }
         658  +
                }
         659  +
                Some(20) => {
         660  +
                    if deser.is_null() {
         661  +
                        deser.read_null()?;
         662  +
                    } else {
         663  +
                        builder.source_type = Some(crate::types::SourceType::from(deser.read_string(member)?.as_str()));
         664  +
                    }
         665  +
                }
         666  +
                Some(21) => {
         667  +
                    if deser.is_null() {
         668  +
                        deser.read_null()?;
         669  +
                    } else {
         670  +
                        builder.source_location = Some(deser.read_string(member)?);
         671  +
                    }
         672  +
                }
         673  +
                _ => {}
         674  +
            }
         675  +
            Ok(())
         676  +
        })?;
         677  +
        Ok(builder.build())
         678  +
    }
         679  +
}
         680  +
impl InstanceInformation {
         681  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         682  +
    pub fn deserialize_with_response(
         683  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         684  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         685  +
        _status: u16,
         686  +
        _body: &[u8],
         687  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         688  +
        Self::deserialize(deserializer)
         689  +
    }
         690  +
}
         691  +
impl InstanceInformation {
         692  +
    /// Creates a new builder-style object to manufacture [`InstanceInformation`](crate::types::InstanceInformation).
         693  +
    pub fn builder() -> crate::types::builders::InstanceInformationBuilder {
         694  +
        crate::types::builders::InstanceInformationBuilder::default()
         695  +
    }
         696  +
}
         697  +
         698  +
/// A builder for [`InstanceInformation`](crate::types::InstanceInformation).
         699  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
         700  +
#[non_exhaustive]
         701  +
pub struct InstanceInformationBuilder {
         702  +
    pub(crate) instance_id: ::std::option::Option<::std::string::String>,
         703  +
    pub(crate) ping_status: ::std::option::Option<crate::types::PingStatus>,
         704  +
    pub(crate) last_ping_date_time: ::std::option::Option<::aws_smithy_types::DateTime>,
         705  +
    pub(crate) agent_version: ::std::option::Option<::std::string::String>,
         706  +
    pub(crate) is_latest_version: ::std::option::Option<bool>,
         707  +
    pub(crate) platform_type: ::std::option::Option<crate::types::PlatformType>,
         708  +
    pub(crate) platform_name: ::std::option::Option<::std::string::String>,
         709  +
    pub(crate) platform_version: ::std::option::Option<::std::string::String>,
         710  +
    pub(crate) activation_id: ::std::option::Option<::std::string::String>,
         711  +
    pub(crate) iam_role: ::std::option::Option<::std::string::String>,
         712  +
    pub(crate) registration_date: ::std::option::Option<::aws_smithy_types::DateTime>,
         713  +
    pub(crate) resource_type: ::std::option::Option<crate::types::ResourceType>,
         714  +
    pub(crate) name: ::std::option::Option<::std::string::String>,
         715  +
    pub(crate) ip_address: ::std::option::Option<::std::string::String>,
         716  +
    pub(crate) computer_name: ::std::option::Option<::std::string::String>,
         717  +
    pub(crate) association_status: ::std::option::Option<::std::string::String>,
         718  +
    pub(crate) last_association_execution_date: ::std::option::Option<::aws_smithy_types::DateTime>,
         719  +
    pub(crate) last_successful_association_execution_date: ::std::option::Option<::aws_smithy_types::DateTime>,
         720  +
    pub(crate) association_overview: ::std::option::Option<crate::types::InstanceAggregatedAssociationOverview>,
         721  +
    pub(crate) source_id: ::std::option::Option<::std::string::String>,
         722  +
    pub(crate) source_type: ::std::option::Option<crate::types::SourceType>,
         723  +
    pub(crate) source_location: ::std::option::Option<::std::string::String>,
         724  +
}
         725  +
impl InstanceInformationBuilder {
         726  +
    /// <p>The managed node ID.</p>
         727  +
    pub fn instance_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         728  +
        self.instance_id = ::std::option::Option::Some(input.into());
         729  +
        self
         730  +
    }
         731  +
    /// <p>The managed node ID.</p>
         732  +
    pub fn set_instance_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         733  +
        self.instance_id = input;
         734  +
        self
         735  +
    }
         736  +
    /// <p>The managed node ID.</p>
         737  +
    pub fn get_instance_id(&self) -> &::std::option::Option<::std::string::String> {
         738  +
        &self.instance_id
         739  +
    }
         740  +
    /// <p>Connection status of SSM Agent.</p><note>
         741  +
    /// <p>The status <code>Inactive</code> has been deprecated and is no longer in use.</p>
         742  +
    /// </note>
         743  +
    pub fn ping_status(mut self, input: crate::types::PingStatus) -> Self {
         744  +
        self.ping_status = ::std::option::Option::Some(input);
         745  +
        self
         746  +
    }
         747  +
    /// <p>Connection status of SSM Agent.</p><note>
         748  +
    /// <p>The status <code>Inactive</code> has been deprecated and is no longer in use.</p>
         749  +
    /// </note>
         750  +
    pub fn set_ping_status(mut self, input: ::std::option::Option<crate::types::PingStatus>) -> Self {
         751  +
        self.ping_status = input;
         752  +
        self
         753  +
    }
         754  +
    /// <p>Connection status of SSM Agent.</p><note>
         755  +
    /// <p>The status <code>Inactive</code> has been deprecated and is no longer in use.</p>
         756  +
    /// </note>
         757  +
    pub fn get_ping_status(&self) -> &::std::option::Option<crate::types::PingStatus> {
         758  +
        &self.ping_status
         759  +
    }
         760  +
    /// <p>The date and time when the agent last pinged the Systems Manager service.</p>
         761  +
    pub fn last_ping_date_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         762  +
        self.last_ping_date_time = ::std::option::Option::Some(input);
         763  +
        self
         764  +
    }
         765  +
    /// <p>The date and time when the agent last pinged the Systems Manager service.</p>
         766  +
    pub fn set_last_ping_date_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         767  +
        self.last_ping_date_time = input;
         768  +
        self
         769  +
    }
         770  +
    /// <p>The date and time when the agent last pinged the Systems Manager service.</p>
         771  +
    pub fn get_last_ping_date_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         772  +
        &self.last_ping_date_time
         773  +
    }
         774  +
    /// <p>The version of SSM Agent running on your Linux managed node.</p>
         775  +
    pub fn agent_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         776  +
        self.agent_version = ::std::option::Option::Some(input.into());
         777  +
        self
         778  +
    }
         779  +
    /// <p>The version of SSM Agent running on your Linux managed node.</p>
         780  +
    pub fn set_agent_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         781  +
        self.agent_version = input;
         782  +
        self
         783  +
    }
         784  +
    /// <p>The version of SSM Agent running on your Linux managed node.</p>
         785  +
    pub fn get_agent_version(&self) -> &::std::option::Option<::std::string::String> {
         786  +
        &self.agent_version
         787  +
    }
         788  +
    /// <p>Indicates whether the latest version of SSM Agent is running on your Linux managed node. This field doesn't indicate whether or not the latest version is installed on Windows managed nodes, because some older versions of Windows Server use the EC2Config service to process Systems Manager requests.</p>
         789  +
    pub fn is_latest_version(mut self, input: bool) -> Self {
         790  +
        self.is_latest_version = ::std::option::Option::Some(input);
         791  +
        self
         792  +
    }
         793  +
    /// <p>Indicates whether the latest version of SSM Agent is running on your Linux managed node. This field doesn't indicate whether or not the latest version is installed on Windows managed nodes, because some older versions of Windows Server use the EC2Config service to process Systems Manager requests.</p>
         794  +
    pub fn set_is_latest_version(mut self, input: ::std::option::Option<bool>) -> Self {
         795  +
        self.is_latest_version = input;
         796  +
        self
         797  +
    }
         798  +
    /// <p>Indicates whether the latest version of SSM Agent is running on your Linux managed node. This field doesn't indicate whether or not the latest version is installed on Windows managed nodes, because some older versions of Windows Server use the EC2Config service to process Systems Manager requests.</p>
         799  +
    pub fn get_is_latest_version(&self) -> &::std::option::Option<bool> {
         800  +
        &self.is_latest_version
         801  +
    }
         802  +
    /// <p>The operating system platform type.</p>
         803  +
    pub fn platform_type(mut self, input: crate::types::PlatformType) -> Self {
         804  +
        self.platform_type = ::std::option::Option::Some(input);
         805  +
        self
         806  +
    }
         807  +
    /// <p>The operating system platform type.</p>
         808  +
    pub fn set_platform_type(mut self, input: ::std::option::Option<crate::types::PlatformType>) -> Self {
         809  +
        self.platform_type = input;
         810  +
        self
         811  +
    }
         812  +
    /// <p>The operating system platform type.</p>
         813  +
    pub fn get_platform_type(&self) -> &::std::option::Option<crate::types::PlatformType> {
         814  +
        &self.platform_type
         815  +
    }
         816  +
    /// <p>The name of the operating system platform running on your managed node.</p>
         817  +
    pub fn platform_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         818  +
        self.platform_name = ::std::option::Option::Some(input.into());
         819  +
        self
         820  +
    }
         821  +
    /// <p>The name of the operating system platform running on your managed node.</p>
         822  +
    pub fn set_platform_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         823  +
        self.platform_name = input;
         824  +
        self
         825  +
    }
         826  +
    /// <p>The name of the operating system platform running on your managed node.</p>
         827  +
    pub fn get_platform_name(&self) -> &::std::option::Option<::std::string::String> {
         828  +
        &self.platform_name
         829  +
    }
         830  +
    /// <p>The version of the OS platform running on your managed node.</p>
         831  +
    pub fn platform_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         832  +
        self.platform_version = ::std::option::Option::Some(input.into());
         833  +
        self
         834  +
    }
         835  +
    /// <p>The version of the OS platform running on your managed node.</p>
         836  +
    pub fn set_platform_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         837  +
        self.platform_version = input;
         838  +
        self
         839  +
    }
         840  +
    /// <p>The version of the OS platform running on your managed node.</p>
         841  +
    pub fn get_platform_version(&self) -> &::std::option::Option<::std::string::String> {
         842  +
        &self.platform_version
         843  +
    }
         844  +
    /// <p>The activation ID created by Amazon Web Services Systems Manager when the server or virtual machine (VM) was registered.</p>
         845  +
    pub fn activation_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         846  +
        self.activation_id = ::std::option::Option::Some(input.into());
         847  +
        self
         848  +
    }
         849  +
    /// <p>The activation ID created by Amazon Web Services Systems Manager when the server or virtual machine (VM) was registered.</p>
         850  +
    pub fn set_activation_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         851  +
        self.activation_id = input;
         852  +
        self
         853  +
    }
         854  +
    /// <p>The activation ID created by Amazon Web Services Systems Manager when the server or virtual machine (VM) was registered.</p>
         855  +
    pub fn get_activation_id(&self) -> &::std::option::Option<::std::string::String> {
         856  +
        &self.activation_id
         857  +
    }
         858  +
    /// <p>The role assigned to an Amazon EC2 instance configured with a Systems Manager Quick Setup host management configuration or the role assigned to an on-premises managed node.</p>
         859  +
    /// <p>This call doesn't return the IAM role for <i>unmanaged</i> Amazon EC2 instances (instances not configured for Systems Manager). To retrieve the role for an unmanaged instance, use the Amazon EC2 <code>DescribeInstances</code> operation. For information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html">DescribeInstances</a> in the <i>Amazon EC2 API Reference</i> or <a href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html">describe-instances</a> in the <i>Amazon Web Services CLI Command Reference</i>.</p>
         860  +
    pub fn iam_role(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         861  +
        self.iam_role = ::std::option::Option::Some(input.into());
         862  +
        self
         863  +
    }
         864  +
    /// <p>The role assigned to an Amazon EC2 instance configured with a Systems Manager Quick Setup host management configuration or the role assigned to an on-premises managed node.</p>
         865  +
    /// <p>This call doesn't return the IAM role for <i>unmanaged</i> Amazon EC2 instances (instances not configured for Systems Manager). To retrieve the role for an unmanaged instance, use the Amazon EC2 <code>DescribeInstances</code> operation. For information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html">DescribeInstances</a> in the <i>Amazon EC2 API Reference</i> or <a href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html">describe-instances</a> in the <i>Amazon Web Services CLI Command Reference</i>.</p>
         866  +
    pub fn set_iam_role(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         867  +
        self.iam_role = input;
         868  +
        self
         869  +
    }
         870  +
    /// <p>The role assigned to an Amazon EC2 instance configured with a Systems Manager Quick Setup host management configuration or the role assigned to an on-premises managed node.</p>
         871  +
    /// <p>This call doesn't return the IAM role for <i>unmanaged</i> Amazon EC2 instances (instances not configured for Systems Manager). To retrieve the role for an unmanaged instance, use the Amazon EC2 <code>DescribeInstances</code> operation. For information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html">DescribeInstances</a> in the <i>Amazon EC2 API Reference</i> or <a href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html">describe-instances</a> in the <i>Amazon Web Services CLI Command Reference</i>.</p>
         872  +
    pub fn get_iam_role(&self) -> &::std::option::Option<::std::string::String> {
         873  +
        &self.iam_role
         874  +
    }
         875  +
    /// <p>The date the server or VM was registered with Amazon Web Services as a managed node.</p>
         876  +
    pub fn registration_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         877  +
        self.registration_date = ::std::option::Option::Some(input);
         878  +
        self
         879  +
    }
         880  +
    /// <p>The date the server or VM was registered with Amazon Web Services as a managed node.</p>
         881  +
    pub fn set_registration_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         882  +
        self.registration_date = input;
         883  +
        self
         884  +
    }
         885  +
    /// <p>The date the server or VM was registered with Amazon Web Services as a managed node.</p>
         886  +
    pub fn get_registration_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         887  +
        &self.registration_date
         888  +
    }
         889  +
    /// <p>The type of instance. Instances are either EC2 instances or managed instances.</p>
         890  +
    pub fn resource_type(mut self, input: crate::types::ResourceType) -> Self {
         891  +
        self.resource_type = ::std::option::Option::Some(input);
         892  +
        self
         893  +
    }
         894  +
    /// <p>The type of instance. Instances are either EC2 instances or managed instances.</p>
         895  +
    pub fn set_resource_type(mut self, input: ::std::option::Option<crate::types::ResourceType>) -> Self {
         896  +
        self.resource_type = input;
         897  +
        self
         898  +
    }
         899  +
    /// <p>The type of instance. Instances are either EC2 instances or managed instances.</p>
         900  +
    pub fn get_resource_type(&self) -> &::std::option::Option<crate::types::ResourceType> {
         901  +
        &self.resource_type
         902  +
    }
         903  +
    /// <p>The name assigned to an on-premises server, edge device, or virtual machine (VM) when it is activated as a Systems Manager managed node. The name is specified as the <code>DefaultInstanceName</code> property using the <code>CreateActivation</code> command. It is applied to the managed node by specifying the Activation Code and Activation ID when you install SSM Agent on the node, as explained in <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/hybrid-multicloud-ssm-agent-install-linux.html">How to install SSM Agent on hybrid Linux nodes</a> and <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/hybrid-multicloud-ssm-agent-install-windows.html">How to install SSM Agent on hybrid Windows Server nodes</a>. To retrieve the <code>Name</code> tag of an EC2 instance, use the Amazon EC2 <code>DescribeInstances</code> operation. For information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html">DescribeInstances</a> in the <i>Amazon EC2 API Reference</i> or <a href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html">describe-instances</a> in the <i>Amazon Web Services CLI Command Reference</i>.</p>
         904  +
    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         905  +
        self.name = ::std::option::Option::Some(input.into());
         906  +
        self
         907  +
    }
         908  +
    /// <p>The name assigned to an on-premises server, edge device, or virtual machine (VM) when it is activated as a Systems Manager managed node. The name is specified as the <code>DefaultInstanceName</code> property using the <code>CreateActivation</code> command. It is applied to the managed node by specifying the Activation Code and Activation ID when you install SSM Agent on the node, as explained in <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/hybrid-multicloud-ssm-agent-install-linux.html">How to install SSM Agent on hybrid Linux nodes</a> and <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/hybrid-multicloud-ssm-agent-install-windows.html">How to install SSM Agent on hybrid Windows Server nodes</a>. To retrieve the <code>Name</code> tag of an EC2 instance, use the Amazon EC2 <code>DescribeInstances</code> operation. For information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html">DescribeInstances</a> in the <i>Amazon EC2 API Reference</i> or <a href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html">describe-instances</a> in the <i>Amazon Web Services CLI Command Reference</i>.</p>
         909  +
    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         910  +
        self.name = input;
         911  +
        self
         912  +
    }
         913  +
    /// <p>The name assigned to an on-premises server, edge device, or virtual machine (VM) when it is activated as a Systems Manager managed node. The name is specified as the <code>DefaultInstanceName</code> property using the <code>CreateActivation</code> command. It is applied to the managed node by specifying the Activation Code and Activation ID when you install SSM Agent on the node, as explained in <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/hybrid-multicloud-ssm-agent-install-linux.html">How to install SSM Agent on hybrid Linux nodes</a> and <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/hybrid-multicloud-ssm-agent-install-windows.html">How to install SSM Agent on hybrid Windows Server nodes</a>. To retrieve the <code>Name</code> tag of an EC2 instance, use the Amazon EC2 <code>DescribeInstances</code> operation. For information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html">DescribeInstances</a> in the <i>Amazon EC2 API Reference</i> or <a href="https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html">describe-instances</a> in the <i>Amazon Web Services CLI Command Reference</i>.</p>
         914  +
    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
         915  +
        &self.name
         916  +
    }
         917  +
    /// <p>The IP address of the managed node.</p>
         918  +
    pub fn ip_address(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         919  +
        self.ip_address = ::std::option::Option::Some(input.into());
         920  +
        self
         921  +
    }
         922  +
    /// <p>The IP address of the managed node.</p>
         923  +
    pub fn set_ip_address(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         924  +
        self.ip_address = input;
         925  +
        self
         926  +
    }
         927  +
    /// <p>The IP address of the managed node.</p>
         928  +
    pub fn get_ip_address(&self) -> &::std::option::Option<::std::string::String> {
         929  +
        &self.ip_address
         930  +
    }
         931  +
    /// <p>The fully qualified host name of the managed node.</p>
         932  +
    pub fn computer_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         933  +
        self.computer_name = ::std::option::Option::Some(input.into());
         934  +
        self
         935  +
    }
         936  +
    /// <p>The fully qualified host name of the managed node.</p>
         937  +
    pub fn set_computer_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         938  +
        self.computer_name = input;
         939  +
        self
         940  +
    }
         941  +
    /// <p>The fully qualified host name of the managed node.</p>
         942  +
    pub fn get_computer_name(&self) -> &::std::option::Option<::std::string::String> {
         943  +
        &self.computer_name
         944  +
    }
         945  +
    /// <p>The status of the association.</p>
         946  +
    pub fn association_status(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         947  +
        self.association_status = ::std::option::Option::Some(input.into());
         948  +
        self
         949  +
    }
         950  +
    /// <p>The status of the association.</p>
         951  +
    pub fn set_association_status(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         952  +
        self.association_status = input;
         953  +
        self
         954  +
    }
         955  +
    /// <p>The status of the association.</p>
         956  +
    pub fn get_association_status(&self) -> &::std::option::Option<::std::string::String> {
         957  +
        &self.association_status
         958  +
    }
         959  +
    /// <p>The date the association was last run.</p>
         960  +
    pub fn last_association_execution_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         961  +
        self.last_association_execution_date = ::std::option::Option::Some(input);
         962  +
        self
         963  +
    }
         964  +
    /// <p>The date the association was last run.</p>
         965  +
    pub fn set_last_association_execution_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         966  +
        self.last_association_execution_date = input;
         967  +
        self
         968  +
    }
         969  +
    /// <p>The date the association was last run.</p>
         970  +
    pub fn get_last_association_execution_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         971  +
        &self.last_association_execution_date
         972  +
    }
         973  +
    /// <p>The last date the association was successfully run.</p>
         974  +
    pub fn last_successful_association_execution_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         975  +
        self.last_successful_association_execution_date = ::std::option::Option::Some(input);
         976  +
        self
         977  +
    }
         978  +
    /// <p>The last date the association was successfully run.</p>
         979  +
    pub fn set_last_successful_association_execution_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         980  +
        self.last_successful_association_execution_date = input;
         981  +
        self
         982  +
    }
         983  +
    /// <p>The last date the association was successfully run.</p>
         984  +
    pub fn get_last_successful_association_execution_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         985  +
        &self.last_successful_association_execution_date
         986  +
    }
         987  +
    /// <p>Information about the association.</p>
         988  +
    pub fn association_overview(mut self, input: crate::types::InstanceAggregatedAssociationOverview) -> Self {
         989  +
        self.association_overview = ::std::option::Option::Some(input);
         990  +
        self
         991  +
    }
         992  +
    /// <p>Information about the association.</p>
         993  +
    pub fn set_association_overview(mut self, input: ::std::option::Option<crate::types::InstanceAggregatedAssociationOverview>) -> Self {
         994  +
        self.association_overview = input;
         995  +
        self
         996  +
    }
         997  +
    /// <p>Information about the association.</p>
         998  +
    pub fn get_association_overview(&self) -> &::std::option::Option<crate::types::InstanceAggregatedAssociationOverview> {
         999  +
        &self.association_overview
        1000  +
    }
        1001  +
    /// <p>The ID of the source resource. For IoT Greengrass devices, <code>SourceId</code> is the Thing name.</p>
        1002  +
    pub fn source_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1003  +
        self.source_id = ::std::option::Option::Some(input.into());
        1004  +
        self
        1005  +
    }
        1006  +
    /// <p>The ID of the source resource. For IoT Greengrass devices, <code>SourceId</code> is the Thing name.</p>
        1007  +
    pub fn set_source_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1008  +
        self.source_id = input;
        1009  +
        self
        1010  +
    }
        1011  +
    /// <p>The ID of the source resource. For IoT Greengrass devices, <code>SourceId</code> is the Thing name.</p>
        1012  +
    pub fn get_source_id(&self) -> &::std::option::Option<::std::string::String> {
        1013  +
        &self.source_id
        1014  +
    }
        1015  +
    /// <p>The type of the source resource. For IoT Greengrass devices, <code>SourceType</code> is <code>AWS::IoT::Thing</code>. For Azure Virtual Machines, <code>SourceType</code> is <code>Microsoft.Compute/virtualMachines</code>.</p>
        1016  +
    pub fn source_type(mut self, input: crate::types::SourceType) -> Self {
        1017  +
        self.source_type = ::std::option::Option::Some(input);
        1018  +
        self
        1019  +
    }
        1020  +
    /// <p>The type of the source resource. For IoT Greengrass devices, <code>SourceType</code> is <code>AWS::IoT::Thing</code>. For Azure Virtual Machines, <code>SourceType</code> is <code>Microsoft.Compute/virtualMachines</code>.</p>
        1021  +
    pub fn set_source_type(mut self, input: ::std::option::Option<crate::types::SourceType>) -> Self {
        1022  +
        self.source_type = input;
        1023  +
        self
        1024  +
    }
        1025  +
    /// <p>The type of the source resource. For IoT Greengrass devices, <code>SourceType</code> is <code>AWS::IoT::Thing</code>. For Azure Virtual Machines, <code>SourceType</code> is <code>Microsoft.Compute/virtualMachines</code>.</p>
        1026  +
    pub fn get_source_type(&self) -> &::std::option::Option<crate::types::SourceType> {
        1027  +
        &self.source_type
        1028  +
    }
        1029  +
    /// <p>The location of the source resource in the third-party cloud environment.</p>
        1030  +
    pub fn source_location(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1031  +
        self.source_location = ::std::option::Option::Some(input.into());
        1032  +
        self
        1033  +
    }
        1034  +
    /// <p>The location of the source resource in the third-party cloud environment.</p>
        1035  +
    pub fn set_source_location(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1036  +
        self.source_location = input;
        1037  +
        self
        1038  +
    }
        1039  +
    /// <p>The location of the source resource in the third-party cloud environment.</p>
        1040  +
    pub fn get_source_location(&self) -> &::std::option::Option<::std::string::String> {
        1041  +
        &self.source_location
        1042  +
    }
        1043  +
    /// Consumes the builder and constructs a [`InstanceInformation`](crate::types::InstanceInformation).
        1044  +
    pub fn build(self) -> crate::types::InstanceInformation {
        1045  +
        crate::types::InstanceInformation {
        1046  +
            instance_id: self.instance_id,
        1047  +
            ping_status: self.ping_status,
        1048  +
            last_ping_date_time: self.last_ping_date_time,
        1049  +
            agent_version: self.agent_version,
        1050  +
            is_latest_version: self.is_latest_version,
        1051  +
            platform_type: self.platform_type,
        1052  +
            platform_name: self.platform_name,
        1053  +
            platform_version: self.platform_version,
        1054  +
            activation_id: self.activation_id,
        1055  +
            iam_role: self.iam_role,
        1056  +
            registration_date: self.registration_date,
        1057  +
            resource_type: self.resource_type,
        1058  +
            name: self.name,
        1059  +
            ip_address: self.ip_address,
        1060  +
            computer_name: self.computer_name,
        1061  +
            association_status: self.association_status,
        1062  +
            last_association_execution_date: self.last_association_execution_date,
        1063  +
            last_successful_association_execution_date: self.last_successful_association_execution_date,
        1064  +
            association_overview: self.association_overview,
        1065  +
            source_id: self.source_id,
        1066  +
            source_type: self.source_type,
        1067  +
            source_location: self.source_location,
        1068  +
        }
        1069  +
    }
        1070  +
}
        1071  +
impl ::std::fmt::Debug for InstanceInformationBuilder {
        1072  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        1073  +
        let mut formatter = f.debug_struct("InstanceInformationBuilder");
        1074  +
        formatter.field("instance_id", &self.instance_id);
        1075  +
        formatter.field("ping_status", &self.ping_status);
        1076  +
        formatter.field("last_ping_date_time", &self.last_ping_date_time);
        1077  +
        formatter.field("agent_version", &self.agent_version);
        1078  +
        formatter.field("is_latest_version", &self.is_latest_version);
        1079  +
        formatter.field("platform_type", &self.platform_type);
        1080  +
        formatter.field("platform_name", &self.platform_name);
        1081  +
        formatter.field("platform_version", &self.platform_version);
        1082  +
        formatter.field("activation_id", &self.activation_id);
        1083  +
        formatter.field("iam_role", &self.iam_role);
        1084  +
        formatter.field("registration_date", &self.registration_date);
        1085  +
        formatter.field("resource_type", &self.resource_type);
        1086  +
        formatter.field("name", &self.name);
        1087  +
        formatter.field("ip_address", &"*** Sensitive Data Redacted ***");
        1088  +
        formatter.field("computer_name", &self.computer_name);
        1089  +
        formatter.field("association_status", &self.association_status);
        1090  +
        formatter.field("last_association_execution_date", &self.last_association_execution_date);
        1091  +
        formatter.field(
        1092  +
            "last_successful_association_execution_date",
        1093  +
            &self.last_successful_association_execution_date,
        1094  +
        );
        1095  +
        formatter.field("association_overview", &self.association_overview);
        1096  +
        formatter.field("source_id", &self.source_id);
        1097  +
        formatter.field("source_type", &self.source_type);
        1098  +
        formatter.field("source_location", &self.source_location);
        1099  +
        formatter.finish()
        1100  +
    }
        1101  +
}