#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct Instance {
#[doc(hidden)]
pub image_id: std::option::Option<std::string::String>,
#[doc(hidden)]
pub ami_launch_index: std::option::Option<i32>,
#[doc(hidden)]
pub instance_id: std::option::Option<std::string::String>,
#[doc(hidden)]
pub state: std::option::Option<crate::types::InstanceState>,
#[doc(hidden)]
pub instance_type: std::option::Option<std::string::String>,
#[doc(hidden)]
pub private_ip_address: std::option::Option<std::string::String>,
#[doc(hidden)]
pub public_ip_address: std::option::Option<std::string::String>,
#[doc(hidden)]
pub created_at: std::option::Option<aws_smithy_types::DateTime>,
#[doc(hidden)]
pub updated_at: std::option::Option<aws_smithy_types::DateTime>,
#[doc(hidden)]
pub block_device_mappings:
std::option::Option<std::vec::Vec<crate::types::InstanceBlockDeviceMapping>>,
#[doc(hidden)]
pub security_groups: std::option::Option<std::vec::Vec<crate::types::SecurityGroupIdentifier>>,
#[doc(hidden)]
pub cpu_options: std::option::Option<crate::types::CpuOptions>,
#[doc(hidden)]
pub root_device_name: std::option::Option<std::string::String>,
}
impl Instance {
pub fn image_id(&self) -> std::option::Option<&str> {
self.image_id.as_deref()
}
pub fn ami_launch_index(&self) -> std::option::Option<i32> {
self.ami_launch_index
}
pub fn instance_id(&self) -> std::option::Option<&str> {
self.instance_id.as_deref()
}
pub fn state(&self) -> std::option::Option<&crate::types::InstanceState> {
self.state.as_ref()
}
pub fn instance_type(&self) -> std::option::Option<&str> {
self.instance_type.as_deref()
}
pub fn private_ip_address(&self) -> std::option::Option<&str> {
self.private_ip_address.as_deref()
}
pub fn public_ip_address(&self) -> std::option::Option<&str> {
self.public_ip_address.as_deref()
}
pub fn created_at(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
self.created_at.as_ref()
}
pub fn updated_at(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
self.updated_at.as_ref()
}
pub fn block_device_mappings(
&self,
) -> std::option::Option<&[crate::types::InstanceBlockDeviceMapping]> {
self.block_device_mappings.as_deref()
}
pub fn security_groups(&self) -> std::option::Option<&[crate::types::SecurityGroupIdentifier]> {
self.security_groups.as_deref()
}
pub fn cpu_options(&self) -> std::option::Option<&crate::types::CpuOptions> {
self.cpu_options.as_ref()
}
pub fn root_device_name(&self) -> std::option::Option<&str> {
self.root_device_name.as_deref()
}
}
impl Instance {
pub fn builder() -> crate::types::builders::InstanceBuilder {
crate::types::builders::InstanceBuilder::default()
}
}
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
pub struct InstanceBuilder {
pub(crate) image_id: std::option::Option<std::string::String>,
pub(crate) ami_launch_index: std::option::Option<i32>,
pub(crate) instance_id: std::option::Option<std::string::String>,
pub(crate) state: std::option::Option<crate::types::InstanceState>,
pub(crate) instance_type: std::option::Option<std::string::String>,
pub(crate) private_ip_address: std::option::Option<std::string::String>,
pub(crate) public_ip_address: std::option::Option<std::string::String>,
pub(crate) created_at: std::option::Option<aws_smithy_types::DateTime>,
pub(crate) updated_at: std::option::Option<aws_smithy_types::DateTime>,
pub(crate) block_device_mappings:
std::option::Option<std::vec::Vec<crate::types::InstanceBlockDeviceMapping>>,
pub(crate) security_groups:
std::option::Option<std::vec::Vec<crate::types::SecurityGroupIdentifier>>,
pub(crate) cpu_options: std::option::Option<crate::types::CpuOptions>,
pub(crate) root_device_name: std::option::Option<std::string::String>,
}
impl InstanceBuilder {
pub fn image_id(mut self, input: impl Into<std::string::String>) -> Self {
self.image_id = Some(input.into());
self
}
pub fn set_image_id(mut self, input: std::option::Option<std::string::String>) -> Self {
self.image_id = input;
self
}
pub fn ami_launch_index(mut self, input: i32) -> Self {
self.ami_launch_index = Some(input);
self
}
pub fn set_ami_launch_index(mut self, input: std::option::Option<i32>) -> Self {
self.ami_launch_index = input;
self
}
pub fn instance_id(mut self, input: impl Into<std::string::String>) -> Self {
self.instance_id = Some(input.into());
self
}
pub fn set_instance_id(mut self, input: std::option::Option<std::string::String>) -> Self {
self.instance_id = input;
self
}
pub fn state(mut self, input: crate::types::InstanceState) -> Self {
self.state = Some(input);
self
}
pub fn set_state(mut self, input: std::option::Option<crate::types::InstanceState>) -> Self {
self.state = input;
self
}
pub fn instance_type(mut self, input: impl Into<std::string::String>) -> Self {
self.instance_type = Some(input.into());
self
}
pub fn set_instance_type(mut self, input: std::option::Option<std::string::String>) -> Self {
self.instance_type = input;
self
}
pub fn private_ip_address(mut self, input: impl Into<std::string::String>) -> Self {
self.private_ip_address = Some(input.into());
self
}
pub fn set_private_ip_address(
mut self,
input: std::option::Option<std::string::String>,
) -> Self {
self.private_ip_address = input;
self
}
pub fn public_ip_address(mut self, input: impl Into<std::string::String>) -> Self {
self.public_ip_address = Some(input.into());
self
}
pub fn set_public_ip_address(
mut self,
input: std::option::Option<std::string::String>,
) -> Self {
self.public_ip_address = input;
self
}
pub fn created_at(mut self, input: aws_smithy_types::DateTime) -> Self {
self.created_at = Some(input);
self
}
pub fn set_created_at(
mut self,
input: std::option::Option<aws_smithy_types::DateTime>,
) -> Self {
self.created_at = input;
self
}
pub fn updated_at(mut self, input: aws_smithy_types::DateTime) -> Self {
self.updated_at = Some(input);
self
}
pub fn set_updated_at(
mut self,
input: std::option::Option<aws_smithy_types::DateTime>,
) -> Self {
self.updated_at = input;
self
}
pub fn block_device_mappings(
mut self,
input: crate::types::InstanceBlockDeviceMapping,
) -> Self {
let mut v = self.block_device_mappings.unwrap_or_default();
v.push(input);
self.block_device_mappings = Some(v);
self
}
pub fn set_block_device_mappings(
mut self,
input: std::option::Option<std::vec::Vec<crate::types::InstanceBlockDeviceMapping>>,
) -> Self {
self.block_device_mappings = input;
self
}
pub fn security_groups(mut self, input: crate::types::SecurityGroupIdentifier) -> Self {
let mut v = self.security_groups.unwrap_or_default();
v.push(input);
self.security_groups = Some(v);
self
}
pub fn set_security_groups(
mut self,
input: std::option::Option<std::vec::Vec<crate::types::SecurityGroupIdentifier>>,
) -> Self {
self.security_groups = input;
self
}
pub fn cpu_options(mut self, input: crate::types::CpuOptions) -> Self {
self.cpu_options = Some(input);
self
}
pub fn set_cpu_options(mut self, input: std::option::Option<crate::types::CpuOptions>) -> Self {
self.cpu_options = input;
self
}
pub fn root_device_name(mut self, input: impl Into<std::string::String>) -> Self {
self.root_device_name = Some(input.into());
self
}
pub fn set_root_device_name(mut self, input: std::option::Option<std::string::String>) -> Self {
self.root_device_name = input;
self
}
pub fn build(self) -> crate::types::Instance {
crate::types::Instance {
image_id: self.image_id,
ami_launch_index: self.ami_launch_index,
instance_id: self.instance_id,
state: self.state,
instance_type: self.instance_type,
private_ip_address: self.private_ip_address,
public_ip_address: self.public_ip_address,
created_at: self.created_at,
updated_at: self.updated_at,
block_device_mappings: self.block_device_mappings,
security_groups: self.security_groups,
cpu_options: self.cpu_options,
root_device_name: self.root_device_name,
}
}
}