#[allow(missing_docs)] #[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct GetTileInput {
    pub x: ::std::option::Option<i32>,
    pub y: ::std::option::Option<i32>,
    pub z: ::std::option::Option<i32>,
    pub image_assets: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
    pub target: ::std::option::Option<crate::types::TargetOptions>,
    pub arn: ::std::option::Option<::std::string::String>,
    pub image_mask: ::std::option::Option<bool>,
    pub output_format: ::std::option::Option<::std::string::String>,
    pub time_range_filter: ::std::option::Option<::std::string::String>,
    pub property_filters: ::std::option::Option<::std::string::String>,
    pub output_data_type: ::std::option::Option<crate::types::OutputType>,
    pub execution_role_arn: ::std::option::Option<::std::string::String>,
}
impl GetTileInput {
    pub fn x(&self) -> ::std::option::Option<i32> {
        self.x
    }
    pub fn y(&self) -> ::std::option::Option<i32> {
        self.y
    }
    pub fn z(&self) -> ::std::option::Option<i32> {
        self.z
    }
    pub fn image_assets(&self) -> &[::std::string::String] {
        self.image_assets.as_deref().unwrap_or_default()
    }
    pub fn target(&self) -> ::std::option::Option<&crate::types::TargetOptions> {
        self.target.as_ref()
    }
    pub fn arn(&self) -> ::std::option::Option<&str> {
        self.arn.as_deref()
    }
    pub fn image_mask(&self) -> ::std::option::Option<bool> {
        self.image_mask
    }
    pub fn output_format(&self) -> ::std::option::Option<&str> {
        self.output_format.as_deref()
    }
    pub fn time_range_filter(&self) -> ::std::option::Option<&str> {
        self.time_range_filter.as_deref()
    }
    pub fn property_filters(&self) -> ::std::option::Option<&str> {
        self.property_filters.as_deref()
    }
    pub fn output_data_type(&self) -> ::std::option::Option<&crate::types::OutputType> {
        self.output_data_type.as_ref()
    }
    pub fn execution_role_arn(&self) -> ::std::option::Option<&str> {
        self.execution_role_arn.as_deref()
    }
}
impl GetTileInput {
    pub fn builder() -> crate::operation::get_tile::builders::GetTileInputBuilder {
        crate::operation::get_tile::builders::GetTileInputBuilder::default()
    }
}
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct GetTileInputBuilder {
    pub(crate) x: ::std::option::Option<i32>,
    pub(crate) y: ::std::option::Option<i32>,
    pub(crate) z: ::std::option::Option<i32>,
    pub(crate) image_assets: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
    pub(crate) target: ::std::option::Option<crate::types::TargetOptions>,
    pub(crate) arn: ::std::option::Option<::std::string::String>,
    pub(crate) image_mask: ::std::option::Option<bool>,
    pub(crate) output_format: ::std::option::Option<::std::string::String>,
    pub(crate) time_range_filter: ::std::option::Option<::std::string::String>,
    pub(crate) property_filters: ::std::option::Option<::std::string::String>,
    pub(crate) output_data_type: ::std::option::Option<crate::types::OutputType>,
    pub(crate) execution_role_arn: ::std::option::Option<::std::string::String>,
}
impl GetTileInputBuilder {
    pub fn x(mut self, input: i32) -> Self {
        self.x = ::std::option::Option::Some(input);
        self
    }
    pub fn set_x(mut self, input: ::std::option::Option<i32>) -> Self {
        self.x = input;
        self
    }
    pub fn get_x(&self) -> &::std::option::Option<i32> {
        &self.x
    }
    pub fn y(mut self, input: i32) -> Self {
        self.y = ::std::option::Option::Some(input);
        self
    }
    pub fn set_y(mut self, input: ::std::option::Option<i32>) -> Self {
        self.y = input;
        self
    }
    pub fn get_y(&self) -> &::std::option::Option<i32> {
        &self.y
    }
    pub fn z(mut self, input: i32) -> Self {
        self.z = ::std::option::Option::Some(input);
        self
    }
    pub fn set_z(mut self, input: ::std::option::Option<i32>) -> Self {
        self.z = input;
        self
    }
    pub fn get_z(&self) -> &::std::option::Option<i32> {
        &self.z
    }
    pub fn image_assets(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        let mut v = self.image_assets.unwrap_or_default();
        v.push(input.into());
        self.image_assets = ::std::option::Option::Some(v);
        self
    }
    pub fn set_image_assets(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
        self.image_assets = input;
        self
    }
    pub fn get_image_assets(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
        &self.image_assets
    }
    pub fn target(mut self, input: crate::types::TargetOptions) -> Self {
        self.target = ::std::option::Option::Some(input);
        self
    }
    pub fn set_target(mut self, input: ::std::option::Option<crate::types::TargetOptions>) -> Self {
        self.target = input;
        self
    }
    pub fn get_target(&self) -> &::std::option::Option<crate::types::TargetOptions> {
        &self.target
    }
    pub fn arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.arn = ::std::option::Option::Some(input.into());
        self
    }
    pub fn set_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.arn = input;
        self
    }
    pub fn get_arn(&self) -> &::std::option::Option<::std::string::String> {
        &self.arn
    }
    pub fn image_mask(mut self, input: bool) -> Self {
        self.image_mask = ::std::option::Option::Some(input);
        self
    }
    pub fn set_image_mask(mut self, input: ::std::option::Option<bool>) -> Self {
        self.image_mask = input;
        self
    }
    pub fn get_image_mask(&self) -> &::std::option::Option<bool> {
        &self.image_mask
    }
    pub fn output_format(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.output_format = ::std::option::Option::Some(input.into());
        self
    }
    pub fn set_output_format(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.output_format = input;
        self
    }
    pub fn get_output_format(&self) -> &::std::option::Option<::std::string::String> {
        &self.output_format
    }
    pub fn time_range_filter(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.time_range_filter = ::std::option::Option::Some(input.into());
        self
    }
    pub fn set_time_range_filter(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.time_range_filter = input;
        self
    }
    pub fn get_time_range_filter(&self) -> &::std::option::Option<::std::string::String> {
        &self.time_range_filter
    }
    pub fn property_filters(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.property_filters = ::std::option::Option::Some(input.into());
        self
    }
    pub fn set_property_filters(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.property_filters = input;
        self
    }
    pub fn get_property_filters(&self) -> &::std::option::Option<::std::string::String> {
        &self.property_filters
    }
    pub fn output_data_type(mut self, input: crate::types::OutputType) -> Self {
        self.output_data_type = ::std::option::Option::Some(input);
        self
    }
    pub fn set_output_data_type(mut self, input: ::std::option::Option<crate::types::OutputType>) -> Self {
        self.output_data_type = input;
        self
    }
    pub fn get_output_data_type(&self) -> &::std::option::Option<crate::types::OutputType> {
        &self.output_data_type
    }
    pub fn execution_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.execution_role_arn = ::std::option::Option::Some(input.into());
        self
    }
    pub fn set_execution_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.execution_role_arn = input;
        self
    }
    pub fn get_execution_role_arn(&self) -> &::std::option::Option<::std::string::String> {
        &self.execution_role_arn
    }
    pub fn build(self) -> ::std::result::Result<crate::operation::get_tile::GetTileInput, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::operation::get_tile::GetTileInput {
            x: self.x,
            y: self.y,
            z: self.z,
            image_assets: self.image_assets,
            target: self.target,
            arn: self.arn,
            image_mask: self.image_mask,
            output_format: self.output_format,
            time_range_filter: self.time_range_filter,
            property_filters: self.property_filters,
            output_data_type: self.output_data_type,
            execution_role_arn: self.execution_role_arn,
        })
    }
}