aws-sdk-iotfleetwise 0.5.0

AWS SDK for AWS IoT FleetWise
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DisassociateVehicleFleetOutput {}
/// See [`DisassociateVehicleFleetOutput`](crate::output::DisassociateVehicleFleetOutput).
pub mod disassociate_vehicle_fleet_output {

    /// A builder for [`DisassociateVehicleFleetOutput`](crate::output::DisassociateVehicleFleetOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`DisassociateVehicleFleetOutput`](crate::output::DisassociateVehicleFleetOutput).
        pub fn build(self) -> crate::output::DisassociateVehicleFleetOutput {
            crate::output::DisassociateVehicleFleetOutput {}
        }
    }
}
impl DisassociateVehicleFleetOutput {
    /// Creates a new builder-style object to manufacture [`DisassociateVehicleFleetOutput`](crate::output::DisassociateVehicleFleetOutput).
    pub fn builder() -> crate::output::disassociate_vehicle_fleet_output::Builder {
        crate::output::disassociate_vehicle_fleet_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct AssociateVehicleFleetOutput {}
/// See [`AssociateVehicleFleetOutput`](crate::output::AssociateVehicleFleetOutput).
pub mod associate_vehicle_fleet_output {

    /// A builder for [`AssociateVehicleFleetOutput`](crate::output::AssociateVehicleFleetOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`AssociateVehicleFleetOutput`](crate::output::AssociateVehicleFleetOutput).
        pub fn build(self) -> crate::output::AssociateVehicleFleetOutput {
            crate::output::AssociateVehicleFleetOutput {}
        }
    }
}
impl AssociateVehicleFleetOutput {
    /// Creates a new builder-style object to manufacture [`AssociateVehicleFleetOutput`](crate::output::AssociateVehicleFleetOutput).
    pub fn builder() -> crate::output::associate_vehicle_fleet_output::Builder {
        crate::output::associate_vehicle_fleet_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListVehiclesOutput {
    /// <p> A list of vehicles and information about them. </p>
    #[doc(hidden)]
    pub vehicle_summaries: std::option::Option<std::vec::Vec<crate::model::VehicleSummary>>,
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListVehiclesOutput {
    /// <p> A list of vehicles and information about them. </p>
    pub fn vehicle_summaries(&self) -> std::option::Option<&[crate::model::VehicleSummary]> {
        self.vehicle_summaries.as_deref()
    }
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListVehiclesOutput`](crate::output::ListVehiclesOutput).
pub mod list_vehicles_output {

    /// A builder for [`ListVehiclesOutput`](crate::output::ListVehiclesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) vehicle_summaries:
            std::option::Option<std::vec::Vec<crate::model::VehicleSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `vehicle_summaries`.
        ///
        /// To override the contents of this collection use [`set_vehicle_summaries`](Self::set_vehicle_summaries).
        ///
        /// <p> A list of vehicles and information about them. </p>
        pub fn vehicle_summaries(mut self, input: crate::model::VehicleSummary) -> Self {
            let mut v = self.vehicle_summaries.unwrap_or_default();
            v.push(input);
            self.vehicle_summaries = Some(v);
            self
        }
        /// <p> A list of vehicles and information about them. </p>
        pub fn set_vehicle_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::VehicleSummary>>,
        ) -> Self {
            self.vehicle_summaries = input;
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListVehiclesOutput`](crate::output::ListVehiclesOutput).
        pub fn build(self) -> crate::output::ListVehiclesOutput {
            crate::output::ListVehiclesOutput {
                vehicle_summaries: self.vehicle_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListVehiclesOutput {
    /// Creates a new builder-style object to manufacture [`ListVehiclesOutput`](crate::output::ListVehiclesOutput).
    pub fn builder() -> crate::output::list_vehicles_output::Builder {
        crate::output::list_vehicles_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateVehicleOutput {
    /// <p>The unique ID of the created vehicle.</p>
    #[doc(hidden)]
    pub vehicle_name: std::option::Option<std::string::String>,
    /// <p> The ARN of the created vehicle. </p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
    /// <p> The ARN of a created or validated Amazon Web Services IoT thing. </p>
    #[doc(hidden)]
    pub thing_arn: std::option::Option<std::string::String>,
}
impl CreateVehicleOutput {
    /// <p>The unique ID of the created vehicle.</p>
    pub fn vehicle_name(&self) -> std::option::Option<&str> {
        self.vehicle_name.as_deref()
    }
    /// <p> The ARN of the created vehicle. </p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
    /// <p> The ARN of a created or validated Amazon Web Services IoT thing. </p>
    pub fn thing_arn(&self) -> std::option::Option<&str> {
        self.thing_arn.as_deref()
    }
}
/// See [`CreateVehicleOutput`](crate::output::CreateVehicleOutput).
pub mod create_vehicle_output {

    /// A builder for [`CreateVehicleOutput`](crate::output::CreateVehicleOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) vehicle_name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
        pub(crate) thing_arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The unique ID of the created vehicle.</p>
        pub fn vehicle_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.vehicle_name = Some(input.into());
            self
        }
        /// <p>The unique ID of the created vehicle.</p>
        pub fn set_vehicle_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.vehicle_name = input;
            self
        }
        /// <p> The ARN of the created vehicle. </p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p> The ARN of the created vehicle. </p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// <p> The ARN of a created or validated Amazon Web Services IoT thing. </p>
        pub fn thing_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.thing_arn = Some(input.into());
            self
        }
        /// <p> The ARN of a created or validated Amazon Web Services IoT thing. </p>
        pub fn set_thing_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.thing_arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateVehicleOutput`](crate::output::CreateVehicleOutput).
        pub fn build(self) -> crate::output::CreateVehicleOutput {
            crate::output::CreateVehicleOutput {
                vehicle_name: self.vehicle_name,
                arn: self.arn,
                thing_arn: self.thing_arn,
            }
        }
    }
}
impl CreateVehicleOutput {
    /// Creates a new builder-style object to manufacture [`CreateVehicleOutput`](crate::output::CreateVehicleOutput).
    pub fn builder() -> crate::output::create_vehicle_output::Builder {
        crate::output::create_vehicle_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteVehicleOutput {
    /// <p>The ID of the deleted vehicle.</p>
    #[doc(hidden)]
    pub vehicle_name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the deleted vehicle.</p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
}
impl DeleteVehicleOutput {
    /// <p>The ID of the deleted vehicle.</p>
    pub fn vehicle_name(&self) -> std::option::Option<&str> {
        self.vehicle_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the deleted vehicle.</p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
}
/// See [`DeleteVehicleOutput`](crate::output::DeleteVehicleOutput).
pub mod delete_vehicle_output {

    /// A builder for [`DeleteVehicleOutput`](crate::output::DeleteVehicleOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) vehicle_name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ID of the deleted vehicle.</p>
        pub fn vehicle_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.vehicle_name = Some(input.into());
            self
        }
        /// <p>The ID of the deleted vehicle.</p>
        pub fn set_vehicle_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.vehicle_name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the deleted vehicle.</p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the deleted vehicle.</p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// Consumes the builder and constructs a [`DeleteVehicleOutput`](crate::output::DeleteVehicleOutput).
        pub fn build(self) -> crate::output::DeleteVehicleOutput {
            crate::output::DeleteVehicleOutput {
                vehicle_name: self.vehicle_name,
                arn: self.arn,
            }
        }
    }
}
impl DeleteVehicleOutput {
    /// Creates a new builder-style object to manufacture [`DeleteVehicleOutput`](crate::output::DeleteVehicleOutput).
    pub fn builder() -> crate::output::delete_vehicle_output::Builder {
        crate::output::delete_vehicle_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateVehicleOutput {
    /// <p>The ID of the updated vehicle.</p>
    #[doc(hidden)]
    pub vehicle_name: std::option::Option<std::string::String>,
    /// <p>The ARN of the updated vehicle.</p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
}
impl UpdateVehicleOutput {
    /// <p>The ID of the updated vehicle.</p>
    pub fn vehicle_name(&self) -> std::option::Option<&str> {
        self.vehicle_name.as_deref()
    }
    /// <p>The ARN of the updated vehicle.</p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
}
/// See [`UpdateVehicleOutput`](crate::output::UpdateVehicleOutput).
pub mod update_vehicle_output {

    /// A builder for [`UpdateVehicleOutput`](crate::output::UpdateVehicleOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) vehicle_name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ID of the updated vehicle.</p>
        pub fn vehicle_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.vehicle_name = Some(input.into());
            self
        }
        /// <p>The ID of the updated vehicle.</p>
        pub fn set_vehicle_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.vehicle_name = input;
            self
        }
        /// <p>The ARN of the updated vehicle.</p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p>The ARN of the updated vehicle.</p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateVehicleOutput`](crate::output::UpdateVehicleOutput).
        pub fn build(self) -> crate::output::UpdateVehicleOutput {
            crate::output::UpdateVehicleOutput {
                vehicle_name: self.vehicle_name,
                arn: self.arn,
            }
        }
    }
}
impl UpdateVehicleOutput {
    /// Creates a new builder-style object to manufacture [`UpdateVehicleOutput`](crate::output::UpdateVehicleOutput).
    pub fn builder() -> crate::output::update_vehicle_output::Builder {
        crate::output::update_vehicle_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetVehicleOutput {
    /// <p>The ID of the vehicle.</p>
    #[doc(hidden)]
    pub vehicle_name: std::option::Option<std::string::String>,
    /// <p> The Amazon Resource Name (ARN) of the vehicle to retrieve information about. </p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
    /// <p> The ARN of a vehicle model (model manifest) associated with the vehicle. </p>
    #[doc(hidden)]
    pub model_manifest_arn: std::option::Option<std::string::String>,
    /// <p> The ARN of a decoder manifest associated with the vehicle. </p>
    #[doc(hidden)]
    pub decoder_manifest_arn: std::option::Option<std::string::String>,
    /// <p>Static information about a vehicle in a key-value pair. For example:</p>
    /// <p> <code>"engineType"</code> : <code>"1.3 L R2"</code> </p>
    #[doc(hidden)]
    pub attributes:
        std::option::Option<std::collections::HashMap<std::string::String, std::string::String>>,
    /// <p> The time the vehicle was created in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p> The time the vehicle was last updated in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    #[doc(hidden)]
    pub last_modification_time: std::option::Option<aws_smithy_types::DateTime>,
}
impl GetVehicleOutput {
    /// <p>The ID of the vehicle.</p>
    pub fn vehicle_name(&self) -> std::option::Option<&str> {
        self.vehicle_name.as_deref()
    }
    /// <p> The Amazon Resource Name (ARN) of the vehicle to retrieve information about. </p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
    /// <p> The ARN of a vehicle model (model manifest) associated with the vehicle. </p>
    pub fn model_manifest_arn(&self) -> std::option::Option<&str> {
        self.model_manifest_arn.as_deref()
    }
    /// <p> The ARN of a decoder manifest associated with the vehicle. </p>
    pub fn decoder_manifest_arn(&self) -> std::option::Option<&str> {
        self.decoder_manifest_arn.as_deref()
    }
    /// <p>Static information about a vehicle in a key-value pair. For example:</p>
    /// <p> <code>"engineType"</code> : <code>"1.3 L R2"</code> </p>
    pub fn attributes(
        &self,
    ) -> std::option::Option<&std::collections::HashMap<std::string::String, std::string::String>>
    {
        self.attributes.as_ref()
    }
    /// <p> The time the vehicle was created in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p> The time the vehicle was last updated in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    pub fn last_modification_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modification_time.as_ref()
    }
}
/// See [`GetVehicleOutput`](crate::output::GetVehicleOutput).
pub mod get_vehicle_output {

    /// A builder for [`GetVehicleOutput`](crate::output::GetVehicleOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) vehicle_name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
        pub(crate) model_manifest_arn: std::option::Option<std::string::String>,
        pub(crate) decoder_manifest_arn: std::option::Option<std::string::String>,
        pub(crate) attributes: std::option::Option<
            std::collections::HashMap<std::string::String, std::string::String>,
        >,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modification_time: std::option::Option<aws_smithy_types::DateTime>,
    }
    impl Builder {
        /// <p>The ID of the vehicle.</p>
        pub fn vehicle_name(mut self, input: impl Into<std::string::String>) -> Self {
            self.vehicle_name = Some(input.into());
            self
        }
        /// <p>The ID of the vehicle.</p>
        pub fn set_vehicle_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.vehicle_name = input;
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the vehicle to retrieve information about. </p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the vehicle to retrieve information about. </p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// <p> The ARN of a vehicle model (model manifest) associated with the vehicle. </p>
        pub fn model_manifest_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_manifest_arn = Some(input.into());
            self
        }
        /// <p> The ARN of a vehicle model (model manifest) associated with the vehicle. </p>
        pub fn set_model_manifest_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_manifest_arn = input;
            self
        }
        /// <p> The ARN of a decoder manifest associated with the vehicle. </p>
        pub fn decoder_manifest_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.decoder_manifest_arn = Some(input.into());
            self
        }
        /// <p> The ARN of a decoder manifest associated with the vehicle. </p>
        pub fn set_decoder_manifest_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.decoder_manifest_arn = input;
            self
        }
        /// Adds a key-value pair to `attributes`.
        ///
        /// To override the contents of this collection use [`set_attributes`](Self::set_attributes).
        ///
        /// <p>Static information about a vehicle in a key-value pair. For example:</p>
        /// <p> <code>"engineType"</code> : <code>"1.3 L R2"</code> </p>
        pub fn attributes(
            mut self,
            k: impl Into<std::string::String>,
            v: impl Into<std::string::String>,
        ) -> Self {
            let mut hash_map = self.attributes.unwrap_or_default();
            hash_map.insert(k.into(), v.into());
            self.attributes = Some(hash_map);
            self
        }
        /// <p>Static information about a vehicle in a key-value pair. For example:</p>
        /// <p> <code>"engineType"</code> : <code>"1.3 L R2"</code> </p>
        pub fn set_attributes(
            mut self,
            input: std::option::Option<
                std::collections::HashMap<std::string::String, std::string::String>,
            >,
        ) -> Self {
            self.attributes = input;
            self
        }
        /// <p> The time the vehicle was created in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p> The time the vehicle was created in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p> The time the vehicle was last updated in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn last_modification_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modification_time = Some(input);
            self
        }
        /// <p> The time the vehicle was last updated in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn set_last_modification_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modification_time = input;
            self
        }
        /// Consumes the builder and constructs a [`GetVehicleOutput`](crate::output::GetVehicleOutput).
        pub fn build(self) -> crate::output::GetVehicleOutput {
            crate::output::GetVehicleOutput {
                vehicle_name: self.vehicle_name,
                arn: self.arn,
                model_manifest_arn: self.model_manifest_arn,
                decoder_manifest_arn: self.decoder_manifest_arn,
                attributes: self.attributes,
                creation_time: self.creation_time,
                last_modification_time: self.last_modification_time,
            }
        }
    }
}
impl GetVehicleOutput {
    /// Creates a new builder-style object to manufacture [`GetVehicleOutput`](crate::output::GetVehicleOutput).
    pub fn builder() -> crate::output::get_vehicle_output::Builder {
        crate::output::get_vehicle_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListFleetsForVehicleOutput {
    /// <p> A list of fleet IDs that the vehicle is associated with. </p>
    #[doc(hidden)]
    pub fleets: std::option::Option<std::vec::Vec<std::string::String>>,
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListFleetsForVehicleOutput {
    /// <p> A list of fleet IDs that the vehicle is associated with. </p>
    pub fn fleets(&self) -> std::option::Option<&[std::string::String]> {
        self.fleets.as_deref()
    }
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListFleetsForVehicleOutput`](crate::output::ListFleetsForVehicleOutput).
pub mod list_fleets_for_vehicle_output {

    /// A builder for [`ListFleetsForVehicleOutput`](crate::output::ListFleetsForVehicleOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) fleets: std::option::Option<std::vec::Vec<std::string::String>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `fleets`.
        ///
        /// To override the contents of this collection use [`set_fleets`](Self::set_fleets).
        ///
        /// <p> A list of fleet IDs that the vehicle is associated with. </p>
        pub fn fleets(mut self, input: impl Into<std::string::String>) -> Self {
            let mut v = self.fleets.unwrap_or_default();
            v.push(input.into());
            self.fleets = Some(v);
            self
        }
        /// <p> A list of fleet IDs that the vehicle is associated with. </p>
        pub fn set_fleets(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.fleets = input;
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListFleetsForVehicleOutput`](crate::output::ListFleetsForVehicleOutput).
        pub fn build(self) -> crate::output::ListFleetsForVehicleOutput {
            crate::output::ListFleetsForVehicleOutput {
                fleets: self.fleets,
                next_token: self.next_token,
            }
        }
    }
}
impl ListFleetsForVehicleOutput {
    /// Creates a new builder-style object to manufacture [`ListFleetsForVehicleOutput`](crate::output::ListFleetsForVehicleOutput).
    pub fn builder() -> crate::output::list_fleets_for_vehicle_output::Builder {
        crate::output::list_fleets_for_vehicle_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListSignalCatalogNodesOutput {
    /// <p> A list of information about nodes. </p>
    #[doc(hidden)]
    pub nodes: std::option::Option<std::vec::Vec<crate::model::Node>>,
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListSignalCatalogNodesOutput {
    /// <p> A list of information about nodes. </p>
    pub fn nodes(&self) -> std::option::Option<&[crate::model::Node]> {
        self.nodes.as_deref()
    }
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListSignalCatalogNodesOutput`](crate::output::ListSignalCatalogNodesOutput).
pub mod list_signal_catalog_nodes_output {

    /// A builder for [`ListSignalCatalogNodesOutput`](crate::output::ListSignalCatalogNodesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) nodes: std::option::Option<std::vec::Vec<crate::model::Node>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `nodes`.
        ///
        /// To override the contents of this collection use [`set_nodes`](Self::set_nodes).
        ///
        /// <p> A list of information about nodes. </p>
        pub fn nodes(mut self, input: crate::model::Node) -> Self {
            let mut v = self.nodes.unwrap_or_default();
            v.push(input);
            self.nodes = Some(v);
            self
        }
        /// <p> A list of information about nodes. </p>
        pub fn set_nodes(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Node>>,
        ) -> Self {
            self.nodes = input;
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListSignalCatalogNodesOutput`](crate::output::ListSignalCatalogNodesOutput).
        pub fn build(self) -> crate::output::ListSignalCatalogNodesOutput {
            crate::output::ListSignalCatalogNodesOutput {
                nodes: self.nodes,
                next_token: self.next_token,
            }
        }
    }
}
impl ListSignalCatalogNodesOutput {
    /// Creates a new builder-style object to manufacture [`ListSignalCatalogNodesOutput`](crate::output::ListSignalCatalogNodesOutput).
    pub fn builder() -> crate::output::list_signal_catalog_nodes_output::Builder {
        crate::output::list_signal_catalog_nodes_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ImportSignalCatalogOutput {
    /// <p> The name of the imported signal catalog. </p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p> The Amazon Resource Name (ARN) of the imported signal catalog.</p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
}
impl ImportSignalCatalogOutput {
    /// <p> The name of the imported signal catalog. </p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p> The Amazon Resource Name (ARN) of the imported signal catalog.</p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
}
/// See [`ImportSignalCatalogOutput`](crate::output::ImportSignalCatalogOutput).
pub mod import_signal_catalog_output {

    /// A builder for [`ImportSignalCatalogOutput`](crate::output::ImportSignalCatalogOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p> The name of the imported signal catalog. </p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p> The name of the imported signal catalog. </p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the imported signal catalog.</p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the imported signal catalog.</p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// Consumes the builder and constructs a [`ImportSignalCatalogOutput`](crate::output::ImportSignalCatalogOutput).
        pub fn build(self) -> crate::output::ImportSignalCatalogOutput {
            crate::output::ImportSignalCatalogOutput {
                name: self.name,
                arn: self.arn,
            }
        }
    }
}
impl ImportSignalCatalogOutput {
    /// Creates a new builder-style object to manufacture [`ImportSignalCatalogOutput`](crate::output::ImportSignalCatalogOutput).
    pub fn builder() -> crate::output::import_signal_catalog_output::Builder {
        crate::output::import_signal_catalog_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListSignalCatalogsOutput {
    /// <p> A list of information about each signal catalog. </p>
    #[doc(hidden)]
    pub summaries: std::option::Option<std::vec::Vec<crate::model::SignalCatalogSummary>>,
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListSignalCatalogsOutput {
    /// <p> A list of information about each signal catalog. </p>
    pub fn summaries(&self) -> std::option::Option<&[crate::model::SignalCatalogSummary]> {
        self.summaries.as_deref()
    }
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListSignalCatalogsOutput`](crate::output::ListSignalCatalogsOutput).
pub mod list_signal_catalogs_output {

    /// A builder for [`ListSignalCatalogsOutput`](crate::output::ListSignalCatalogsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) summaries:
            std::option::Option<std::vec::Vec<crate::model::SignalCatalogSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `summaries`.
        ///
        /// To override the contents of this collection use [`set_summaries`](Self::set_summaries).
        ///
        /// <p> A list of information about each signal catalog. </p>
        pub fn summaries(mut self, input: crate::model::SignalCatalogSummary) -> Self {
            let mut v = self.summaries.unwrap_or_default();
            v.push(input);
            self.summaries = Some(v);
            self
        }
        /// <p> A list of information about each signal catalog. </p>
        pub fn set_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::SignalCatalogSummary>>,
        ) -> Self {
            self.summaries = input;
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListSignalCatalogsOutput`](crate::output::ListSignalCatalogsOutput).
        pub fn build(self) -> crate::output::ListSignalCatalogsOutput {
            crate::output::ListSignalCatalogsOutput {
                summaries: self.summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListSignalCatalogsOutput {
    /// Creates a new builder-style object to manufacture [`ListSignalCatalogsOutput`](crate::output::ListSignalCatalogsOutput).
    pub fn builder() -> crate::output::list_signal_catalogs_output::Builder {
        crate::output::list_signal_catalogs_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateSignalCatalogOutput {
    /// <p> The name of the created signal catalog. </p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p> The ARN of the created signal catalog. </p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
}
impl CreateSignalCatalogOutput {
    /// <p> The name of the created signal catalog. </p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p> The ARN of the created signal catalog. </p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
}
/// See [`CreateSignalCatalogOutput`](crate::output::CreateSignalCatalogOutput).
pub mod create_signal_catalog_output {

    /// A builder for [`CreateSignalCatalogOutput`](crate::output::CreateSignalCatalogOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p> The name of the created signal catalog. </p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p> The name of the created signal catalog. </p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p> The ARN of the created signal catalog. </p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p> The ARN of the created signal catalog. </p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateSignalCatalogOutput`](crate::output::CreateSignalCatalogOutput).
        pub fn build(self) -> crate::output::CreateSignalCatalogOutput {
            crate::output::CreateSignalCatalogOutput {
                name: self.name,
                arn: self.arn,
            }
        }
    }
}
impl CreateSignalCatalogOutput {
    /// Creates a new builder-style object to manufacture [`CreateSignalCatalogOutput`](crate::output::CreateSignalCatalogOutput).
    pub fn builder() -> crate::output::create_signal_catalog_output::Builder {
        crate::output::create_signal_catalog_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteSignalCatalogOutput {
    /// <p>The name of the deleted signal catalog.</p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the deleted signal catalog.</p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
}
impl DeleteSignalCatalogOutput {
    /// <p>The name of the deleted signal catalog.</p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the deleted signal catalog.</p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
}
/// See [`DeleteSignalCatalogOutput`](crate::output::DeleteSignalCatalogOutput).
pub mod delete_signal_catalog_output {

    /// A builder for [`DeleteSignalCatalogOutput`](crate::output::DeleteSignalCatalogOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The name of the deleted signal catalog.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p>The name of the deleted signal catalog.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the deleted signal catalog.</p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the deleted signal catalog.</p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// Consumes the builder and constructs a [`DeleteSignalCatalogOutput`](crate::output::DeleteSignalCatalogOutput).
        pub fn build(self) -> crate::output::DeleteSignalCatalogOutput {
            crate::output::DeleteSignalCatalogOutput {
                name: self.name,
                arn: self.arn,
            }
        }
    }
}
impl DeleteSignalCatalogOutput {
    /// Creates a new builder-style object to manufacture [`DeleteSignalCatalogOutput`](crate::output::DeleteSignalCatalogOutput).
    pub fn builder() -> crate::output::delete_signal_catalog_output::Builder {
        crate::output::delete_signal_catalog_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateSignalCatalogOutput {
    /// <p> The name of the updated signal catalog. </p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p> The ARN of the updated signal catalog. </p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
}
impl UpdateSignalCatalogOutput {
    /// <p> The name of the updated signal catalog. </p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p> The ARN of the updated signal catalog. </p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
}
/// See [`UpdateSignalCatalogOutput`](crate::output::UpdateSignalCatalogOutput).
pub mod update_signal_catalog_output {

    /// A builder for [`UpdateSignalCatalogOutput`](crate::output::UpdateSignalCatalogOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p> The name of the updated signal catalog. </p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p> The name of the updated signal catalog. </p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p> The ARN of the updated signal catalog. </p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p> The ARN of the updated signal catalog. </p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateSignalCatalogOutput`](crate::output::UpdateSignalCatalogOutput).
        pub fn build(self) -> crate::output::UpdateSignalCatalogOutput {
            crate::output::UpdateSignalCatalogOutput {
                name: self.name,
                arn: self.arn,
            }
        }
    }
}
impl UpdateSignalCatalogOutput {
    /// Creates a new builder-style object to manufacture [`UpdateSignalCatalogOutput`](crate::output::UpdateSignalCatalogOutput).
    pub fn builder() -> crate::output::update_signal_catalog_output::Builder {
        crate::output::update_signal_catalog_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetSignalCatalogOutput {
    /// <p> The name of the signal catalog. </p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p> The Amazon Resource Name (ARN) of the signal catalog. </p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
    /// <p> A brief description of the signal catalog. </p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p> The total number of network nodes specified in a signal catalog. </p>
    #[doc(hidden)]
    pub node_counts: std::option::Option<crate::model::NodeCounts>,
    /// <p> The time the signal catalog was created in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The last time the signal catalog was modified.</p>
    #[doc(hidden)]
    pub last_modification_time: std::option::Option<aws_smithy_types::DateTime>,
}
impl GetSignalCatalogOutput {
    /// <p> The name of the signal catalog. </p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p> The Amazon Resource Name (ARN) of the signal catalog. </p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
    /// <p> A brief description of the signal catalog. </p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p> The total number of network nodes specified in a signal catalog. </p>
    pub fn node_counts(&self) -> std::option::Option<&crate::model::NodeCounts> {
        self.node_counts.as_ref()
    }
    /// <p> The time the signal catalog was created in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The last time the signal catalog was modified.</p>
    pub fn last_modification_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modification_time.as_ref()
    }
}
/// See [`GetSignalCatalogOutput`](crate::output::GetSignalCatalogOutput).
pub mod get_signal_catalog_output {

    /// A builder for [`GetSignalCatalogOutput`](crate::output::GetSignalCatalogOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
        pub(crate) description: std::option::Option<std::string::String>,
        pub(crate) node_counts: std::option::Option<crate::model::NodeCounts>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modification_time: std::option::Option<aws_smithy_types::DateTime>,
    }
    impl Builder {
        /// <p> The name of the signal catalog. </p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p> The name of the signal catalog. </p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the signal catalog. </p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the signal catalog. </p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// <p> A brief description of the signal catalog. </p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.description = Some(input.into());
            self
        }
        /// <p> A brief description of the signal catalog. </p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.description = input;
            self
        }
        /// <p> The total number of network nodes specified in a signal catalog. </p>
        pub fn node_counts(mut self, input: crate::model::NodeCounts) -> Self {
            self.node_counts = Some(input);
            self
        }
        /// <p> The total number of network nodes specified in a signal catalog. </p>
        pub fn set_node_counts(
            mut self,
            input: std::option::Option<crate::model::NodeCounts>,
        ) -> Self {
            self.node_counts = input;
            self
        }
        /// <p> The time the signal catalog was created in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p> The time the signal catalog was created in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The last time the signal catalog was modified.</p>
        pub fn last_modification_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modification_time = Some(input);
            self
        }
        /// <p>The last time the signal catalog was modified.</p>
        pub fn set_last_modification_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modification_time = input;
            self
        }
        /// Consumes the builder and constructs a [`GetSignalCatalogOutput`](crate::output::GetSignalCatalogOutput).
        pub fn build(self) -> crate::output::GetSignalCatalogOutput {
            crate::output::GetSignalCatalogOutput {
                name: self.name,
                arn: self.arn,
                description: self.description,
                node_counts: self.node_counts,
                creation_time: self.creation_time,
                last_modification_time: self.last_modification_time,
            }
        }
    }
}
impl GetSignalCatalogOutput {
    /// Creates a new builder-style object to manufacture [`GetSignalCatalogOutput`](crate::output::GetSignalCatalogOutput).
    pub fn builder() -> crate::output::get_signal_catalog_output::Builder {
        crate::output::get_signal_catalog_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListModelManifestNodesOutput {
    /// <p> A list of information about nodes. </p>
    #[doc(hidden)]
    pub nodes: std::option::Option<std::vec::Vec<crate::model::Node>>,
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListModelManifestNodesOutput {
    /// <p> A list of information about nodes. </p>
    pub fn nodes(&self) -> std::option::Option<&[crate::model::Node]> {
        self.nodes.as_deref()
    }
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListModelManifestNodesOutput`](crate::output::ListModelManifestNodesOutput).
pub mod list_model_manifest_nodes_output {

    /// A builder for [`ListModelManifestNodesOutput`](crate::output::ListModelManifestNodesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) nodes: std::option::Option<std::vec::Vec<crate::model::Node>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `nodes`.
        ///
        /// To override the contents of this collection use [`set_nodes`](Self::set_nodes).
        ///
        /// <p> A list of information about nodes. </p>
        pub fn nodes(mut self, input: crate::model::Node) -> Self {
            let mut v = self.nodes.unwrap_or_default();
            v.push(input);
            self.nodes = Some(v);
            self
        }
        /// <p> A list of information about nodes. </p>
        pub fn set_nodes(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Node>>,
        ) -> Self {
            self.nodes = input;
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListModelManifestNodesOutput`](crate::output::ListModelManifestNodesOutput).
        pub fn build(self) -> crate::output::ListModelManifestNodesOutput {
            crate::output::ListModelManifestNodesOutput {
                nodes: self.nodes,
                next_token: self.next_token,
            }
        }
    }
}
impl ListModelManifestNodesOutput {
    /// Creates a new builder-style object to manufacture [`ListModelManifestNodesOutput`](crate::output::ListModelManifestNodesOutput).
    pub fn builder() -> crate::output::list_model_manifest_nodes_output::Builder {
        crate::output::list_model_manifest_nodes_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListModelManifestsOutput {
    /// <p> A list of information about vehicle models.</p>
    #[doc(hidden)]
    pub summaries: std::option::Option<std::vec::Vec<crate::model::ModelManifestSummary>>,
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListModelManifestsOutput {
    /// <p> A list of information about vehicle models.</p>
    pub fn summaries(&self) -> std::option::Option<&[crate::model::ModelManifestSummary]> {
        self.summaries.as_deref()
    }
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListModelManifestsOutput`](crate::output::ListModelManifestsOutput).
pub mod list_model_manifests_output {

    /// A builder for [`ListModelManifestsOutput`](crate::output::ListModelManifestsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) summaries:
            std::option::Option<std::vec::Vec<crate::model::ModelManifestSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `summaries`.
        ///
        /// To override the contents of this collection use [`set_summaries`](Self::set_summaries).
        ///
        /// <p> A list of information about vehicle models.</p>
        pub fn summaries(mut self, input: crate::model::ModelManifestSummary) -> Self {
            let mut v = self.summaries.unwrap_or_default();
            v.push(input);
            self.summaries = Some(v);
            self
        }
        /// <p> A list of information about vehicle models.</p>
        pub fn set_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::ModelManifestSummary>>,
        ) -> Self {
            self.summaries = input;
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListModelManifestsOutput`](crate::output::ListModelManifestsOutput).
        pub fn build(self) -> crate::output::ListModelManifestsOutput {
            crate::output::ListModelManifestsOutput {
                summaries: self.summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListModelManifestsOutput {
    /// Creates a new builder-style object to manufacture [`ListModelManifestsOutput`](crate::output::ListModelManifestsOutput).
    pub fn builder() -> crate::output::list_model_manifests_output::Builder {
        crate::output::list_model_manifests_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateModelManifestOutput {
    /// <p> The name of the created vehicle model.</p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p> The ARN of the created vehicle model.</p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
}
impl CreateModelManifestOutput {
    /// <p> The name of the created vehicle model.</p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p> The ARN of the created vehicle model.</p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
}
/// See [`CreateModelManifestOutput`](crate::output::CreateModelManifestOutput).
pub mod create_model_manifest_output {

    /// A builder for [`CreateModelManifestOutput`](crate::output::CreateModelManifestOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p> The name of the created vehicle model.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p> The name of the created vehicle model.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p> The ARN of the created vehicle model.</p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p> The ARN of the created vehicle model.</p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateModelManifestOutput`](crate::output::CreateModelManifestOutput).
        pub fn build(self) -> crate::output::CreateModelManifestOutput {
            crate::output::CreateModelManifestOutput {
                name: self.name,
                arn: self.arn,
            }
        }
    }
}
impl CreateModelManifestOutput {
    /// Creates a new builder-style object to manufacture [`CreateModelManifestOutput`](crate::output::CreateModelManifestOutput).
    pub fn builder() -> crate::output::create_model_manifest_output::Builder {
        crate::output::create_model_manifest_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteModelManifestOutput {
    /// <p>The name of the deleted model manifest.</p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the deleted model manifest.</p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
}
impl DeleteModelManifestOutput {
    /// <p>The name of the deleted model manifest.</p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the deleted model manifest.</p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
}
/// See [`DeleteModelManifestOutput`](crate::output::DeleteModelManifestOutput).
pub mod delete_model_manifest_output {

    /// A builder for [`DeleteModelManifestOutput`](crate::output::DeleteModelManifestOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The name of the deleted model manifest.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p>The name of the deleted model manifest.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the deleted model manifest.</p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the deleted model manifest.</p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// Consumes the builder and constructs a [`DeleteModelManifestOutput`](crate::output::DeleteModelManifestOutput).
        pub fn build(self) -> crate::output::DeleteModelManifestOutput {
            crate::output::DeleteModelManifestOutput {
                name: self.name,
                arn: self.arn,
            }
        }
    }
}
impl DeleteModelManifestOutput {
    /// Creates a new builder-style object to manufacture [`DeleteModelManifestOutput`](crate::output::DeleteModelManifestOutput).
    pub fn builder() -> crate::output::delete_model_manifest_output::Builder {
        crate::output::delete_model_manifest_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateModelManifestOutput {
    /// <p> The name of the updated vehicle model. </p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p> The Amazon Resource Name (ARN) of the updated vehicle model. </p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
}
impl UpdateModelManifestOutput {
    /// <p> The name of the updated vehicle model. </p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p> The Amazon Resource Name (ARN) of the updated vehicle model. </p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
}
/// See [`UpdateModelManifestOutput`](crate::output::UpdateModelManifestOutput).
pub mod update_model_manifest_output {

    /// A builder for [`UpdateModelManifestOutput`](crate::output::UpdateModelManifestOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p> The name of the updated vehicle model. </p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p> The name of the updated vehicle model. </p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the updated vehicle model. </p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the updated vehicle model. </p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateModelManifestOutput`](crate::output::UpdateModelManifestOutput).
        pub fn build(self) -> crate::output::UpdateModelManifestOutput {
            crate::output::UpdateModelManifestOutput {
                name: self.name,
                arn: self.arn,
            }
        }
    }
}
impl UpdateModelManifestOutput {
    /// Creates a new builder-style object to manufacture [`UpdateModelManifestOutput`](crate::output::UpdateModelManifestOutput).
    pub fn builder() -> crate::output::update_model_manifest_output::Builder {
        crate::output::update_model_manifest_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetModelManifestOutput {
    /// <p> The name of the vehicle model. </p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p> The Amazon Resource Name (ARN) of the vehicle model. </p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
    /// <p> A brief description of the vehicle model. </p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p> The ARN of the signal catalog associated with the vehicle model. </p>
    #[doc(hidden)]
    pub signal_catalog_arn: std::option::Option<std::string::String>,
    /// <p> The state of the vehicle model. If the status is <code>ACTIVE</code>, the vehicle model can't be edited. You can edit the vehicle model if the status is marked <code>DRAFT</code>.</p>
    #[doc(hidden)]
    pub status: std::option::Option<crate::model::ManifestStatus>,
    /// <p>The time the vehicle model was created, in seconds since epoch (January 1, 1970 at midnight UTC time).</p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The last time the vehicle model was modified.</p>
    #[doc(hidden)]
    pub last_modification_time: std::option::Option<aws_smithy_types::DateTime>,
}
impl GetModelManifestOutput {
    /// <p> The name of the vehicle model. </p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p> The Amazon Resource Name (ARN) of the vehicle model. </p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
    /// <p> A brief description of the vehicle model. </p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p> The ARN of the signal catalog associated with the vehicle model. </p>
    pub fn signal_catalog_arn(&self) -> std::option::Option<&str> {
        self.signal_catalog_arn.as_deref()
    }
    /// <p> The state of the vehicle model. If the status is <code>ACTIVE</code>, the vehicle model can't be edited. You can edit the vehicle model if the status is marked <code>DRAFT</code>.</p>
    pub fn status(&self) -> std::option::Option<&crate::model::ManifestStatus> {
        self.status.as_ref()
    }
    /// <p>The time the vehicle model was created, in seconds since epoch (January 1, 1970 at midnight UTC time).</p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The last time the vehicle model was modified.</p>
    pub fn last_modification_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modification_time.as_ref()
    }
}
/// See [`GetModelManifestOutput`](crate::output::GetModelManifestOutput).
pub mod get_model_manifest_output {

    /// A builder for [`GetModelManifestOutput`](crate::output::GetModelManifestOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
        pub(crate) description: std::option::Option<std::string::String>,
        pub(crate) signal_catalog_arn: std::option::Option<std::string::String>,
        pub(crate) status: std::option::Option<crate::model::ManifestStatus>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modification_time: std::option::Option<aws_smithy_types::DateTime>,
    }
    impl Builder {
        /// <p> The name of the vehicle model. </p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p> The name of the vehicle model. </p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the vehicle model. </p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the vehicle model. </p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// <p> A brief description of the vehicle model. </p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.description = Some(input.into());
            self
        }
        /// <p> A brief description of the vehicle model. </p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.description = input;
            self
        }
        /// <p> The ARN of the signal catalog associated with the vehicle model. </p>
        pub fn signal_catalog_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.signal_catalog_arn = Some(input.into());
            self
        }
        /// <p> The ARN of the signal catalog associated with the vehicle model. </p>
        pub fn set_signal_catalog_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.signal_catalog_arn = input;
            self
        }
        /// <p> The state of the vehicle model. If the status is <code>ACTIVE</code>, the vehicle model can't be edited. You can edit the vehicle model if the status is marked <code>DRAFT</code>.</p>
        pub fn status(mut self, input: crate::model::ManifestStatus) -> Self {
            self.status = Some(input);
            self
        }
        /// <p> The state of the vehicle model. If the status is <code>ACTIVE</code>, the vehicle model can't be edited. You can edit the vehicle model if the status is marked <code>DRAFT</code>.</p>
        pub fn set_status(
            mut self,
            input: std::option::Option<crate::model::ManifestStatus>,
        ) -> Self {
            self.status = input;
            self
        }
        /// <p>The time the vehicle model was created, in seconds since epoch (January 1, 1970 at midnight UTC time).</p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p>The time the vehicle model was created, in seconds since epoch (January 1, 1970 at midnight UTC time).</p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The last time the vehicle model was modified.</p>
        pub fn last_modification_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modification_time = Some(input);
            self
        }
        /// <p>The last time the vehicle model was modified.</p>
        pub fn set_last_modification_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modification_time = input;
            self
        }
        /// Consumes the builder and constructs a [`GetModelManifestOutput`](crate::output::GetModelManifestOutput).
        pub fn build(self) -> crate::output::GetModelManifestOutput {
            crate::output::GetModelManifestOutput {
                name: self.name,
                arn: self.arn,
                description: self.description,
                signal_catalog_arn: self.signal_catalog_arn,
                status: self.status,
                creation_time: self.creation_time,
                last_modification_time: self.last_modification_time,
            }
        }
    }
}
impl GetModelManifestOutput {
    /// Creates a new builder-style object to manufacture [`GetModelManifestOutput`](crate::output::GetModelManifestOutput).
    pub fn builder() -> crate::output::get_model_manifest_output::Builder {
        crate::output::get_model_manifest_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListFleetsOutput {
    /// <p> A list of information for each fleet. </p>
    #[doc(hidden)]
    pub fleet_summaries: std::option::Option<std::vec::Vec<crate::model::FleetSummary>>,
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListFleetsOutput {
    /// <p> A list of information for each fleet. </p>
    pub fn fleet_summaries(&self) -> std::option::Option<&[crate::model::FleetSummary]> {
        self.fleet_summaries.as_deref()
    }
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListFleetsOutput`](crate::output::ListFleetsOutput).
pub mod list_fleets_output {

    /// A builder for [`ListFleetsOutput`](crate::output::ListFleetsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) fleet_summaries: std::option::Option<std::vec::Vec<crate::model::FleetSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `fleet_summaries`.
        ///
        /// To override the contents of this collection use [`set_fleet_summaries`](Self::set_fleet_summaries).
        ///
        /// <p> A list of information for each fleet. </p>
        pub fn fleet_summaries(mut self, input: crate::model::FleetSummary) -> Self {
            let mut v = self.fleet_summaries.unwrap_or_default();
            v.push(input);
            self.fleet_summaries = Some(v);
            self
        }
        /// <p> A list of information for each fleet. </p>
        pub fn set_fleet_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::FleetSummary>>,
        ) -> Self {
            self.fleet_summaries = input;
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListFleetsOutput`](crate::output::ListFleetsOutput).
        pub fn build(self) -> crate::output::ListFleetsOutput {
            crate::output::ListFleetsOutput {
                fleet_summaries: self.fleet_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListFleetsOutput {
    /// Creates a new builder-style object to manufacture [`ListFleetsOutput`](crate::output::ListFleetsOutput).
    pub fn builder() -> crate::output::list_fleets_output::Builder {
        crate::output::list_fleets_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateFleetOutput {
    /// <p> The ID of the created fleet. </p>
    #[doc(hidden)]
    pub id: std::option::Option<std::string::String>,
    /// <p> The ARN of the created fleet. </p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
}
impl CreateFleetOutput {
    /// <p> The ID of the created fleet. </p>
    pub fn id(&self) -> std::option::Option<&str> {
        self.id.as_deref()
    }
    /// <p> The ARN of the created fleet. </p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
}
/// See [`CreateFleetOutput`](crate::output::CreateFleetOutput).
pub mod create_fleet_output {

    /// A builder for [`CreateFleetOutput`](crate::output::CreateFleetOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) id: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p> The ID of the created fleet. </p>
        pub fn id(mut self, input: impl Into<std::string::String>) -> Self {
            self.id = Some(input.into());
            self
        }
        /// <p> The ID of the created fleet. </p>
        pub fn set_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.id = input;
            self
        }
        /// <p> The ARN of the created fleet. </p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p> The ARN of the created fleet. </p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateFleetOutput`](crate::output::CreateFleetOutput).
        pub fn build(self) -> crate::output::CreateFleetOutput {
            crate::output::CreateFleetOutput {
                id: self.id,
                arn: self.arn,
            }
        }
    }
}
impl CreateFleetOutput {
    /// Creates a new builder-style object to manufacture [`CreateFleetOutput`](crate::output::CreateFleetOutput).
    pub fn builder() -> crate::output::create_fleet_output::Builder {
        crate::output::create_fleet_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteFleetOutput {
    /// <p>The ID of the deleted fleet.</p>
    #[doc(hidden)]
    pub id: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the deleted fleet.</p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
}
impl DeleteFleetOutput {
    /// <p>The ID of the deleted fleet.</p>
    pub fn id(&self) -> std::option::Option<&str> {
        self.id.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the deleted fleet.</p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
}
/// See [`DeleteFleetOutput`](crate::output::DeleteFleetOutput).
pub mod delete_fleet_output {

    /// A builder for [`DeleteFleetOutput`](crate::output::DeleteFleetOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) id: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ID of the deleted fleet.</p>
        pub fn id(mut self, input: impl Into<std::string::String>) -> Self {
            self.id = Some(input.into());
            self
        }
        /// <p>The ID of the deleted fleet.</p>
        pub fn set_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.id = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the deleted fleet.</p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the deleted fleet.</p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// Consumes the builder and constructs a [`DeleteFleetOutput`](crate::output::DeleteFleetOutput).
        pub fn build(self) -> crate::output::DeleteFleetOutput {
            crate::output::DeleteFleetOutput {
                id: self.id,
                arn: self.arn,
            }
        }
    }
}
impl DeleteFleetOutput {
    /// Creates a new builder-style object to manufacture [`DeleteFleetOutput`](crate::output::DeleteFleetOutput).
    pub fn builder() -> crate::output::delete_fleet_output::Builder {
        crate::output::delete_fleet_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateFleetOutput {
    /// <p>The ID of the updated fleet.</p>
    #[doc(hidden)]
    pub id: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the updated fleet.</p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
}
impl UpdateFleetOutput {
    /// <p>The ID of the updated fleet.</p>
    pub fn id(&self) -> std::option::Option<&str> {
        self.id.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the updated fleet.</p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
}
/// See [`UpdateFleetOutput`](crate::output::UpdateFleetOutput).
pub mod update_fleet_output {

    /// A builder for [`UpdateFleetOutput`](crate::output::UpdateFleetOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) id: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The ID of the updated fleet.</p>
        pub fn id(mut self, input: impl Into<std::string::String>) -> Self {
            self.id = Some(input.into());
            self
        }
        /// <p>The ID of the updated fleet.</p>
        pub fn set_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.id = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the updated fleet.</p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the updated fleet.</p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateFleetOutput`](crate::output::UpdateFleetOutput).
        pub fn build(self) -> crate::output::UpdateFleetOutput {
            crate::output::UpdateFleetOutput {
                id: self.id,
                arn: self.arn,
            }
        }
    }
}
impl UpdateFleetOutput {
    /// Creates a new builder-style object to manufacture [`UpdateFleetOutput`](crate::output::UpdateFleetOutput).
    pub fn builder() -> crate::output::update_fleet_output::Builder {
        crate::output::update_fleet_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetFleetOutput {
    /// <p> The ID of the fleet.</p>
    #[doc(hidden)]
    pub id: std::option::Option<std::string::String>,
    /// <p> The Amazon Resource Name (ARN) of the fleet. </p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
    /// <p> A brief description of the fleet. </p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p> The ARN of a signal catalog associated with the fleet. </p>
    #[doc(hidden)]
    pub signal_catalog_arn: std::option::Option<std::string::String>,
    /// <p> The time the fleet was created in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p> The time the fleet was last updated, in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    #[doc(hidden)]
    pub last_modification_time: std::option::Option<aws_smithy_types::DateTime>,
}
impl GetFleetOutput {
    /// <p> The ID of the fleet.</p>
    pub fn id(&self) -> std::option::Option<&str> {
        self.id.as_deref()
    }
    /// <p> The Amazon Resource Name (ARN) of the fleet. </p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
    /// <p> A brief description of the fleet. </p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p> The ARN of a signal catalog associated with the fleet. </p>
    pub fn signal_catalog_arn(&self) -> std::option::Option<&str> {
        self.signal_catalog_arn.as_deref()
    }
    /// <p> The time the fleet was created in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p> The time the fleet was last updated, in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    pub fn last_modification_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modification_time.as_ref()
    }
}
/// See [`GetFleetOutput`](crate::output::GetFleetOutput).
pub mod get_fleet_output {

    /// A builder for [`GetFleetOutput`](crate::output::GetFleetOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) id: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
        pub(crate) description: std::option::Option<std::string::String>,
        pub(crate) signal_catalog_arn: std::option::Option<std::string::String>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modification_time: std::option::Option<aws_smithy_types::DateTime>,
    }
    impl Builder {
        /// <p> The ID of the fleet.</p>
        pub fn id(mut self, input: impl Into<std::string::String>) -> Self {
            self.id = Some(input.into());
            self
        }
        /// <p> The ID of the fleet.</p>
        pub fn set_id(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.id = input;
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the fleet. </p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the fleet. </p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// <p> A brief description of the fleet. </p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.description = Some(input.into());
            self
        }
        /// <p> A brief description of the fleet. </p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.description = input;
            self
        }
        /// <p> The ARN of a signal catalog associated with the fleet. </p>
        pub fn signal_catalog_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.signal_catalog_arn = Some(input.into());
            self
        }
        /// <p> The ARN of a signal catalog associated with the fleet. </p>
        pub fn set_signal_catalog_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.signal_catalog_arn = input;
            self
        }
        /// <p> The time the fleet was created in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p> The time the fleet was created in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p> The time the fleet was last updated, in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn last_modification_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modification_time = Some(input);
            self
        }
        /// <p> The time the fleet was last updated, in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn set_last_modification_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modification_time = input;
            self
        }
        /// Consumes the builder and constructs a [`GetFleetOutput`](crate::output::GetFleetOutput).
        pub fn build(self) -> crate::output::GetFleetOutput {
            crate::output::GetFleetOutput {
                id: self.id,
                arn: self.arn,
                description: self.description,
                signal_catalog_arn: self.signal_catalog_arn,
                creation_time: self.creation_time,
                last_modification_time: self.last_modification_time,
            }
        }
    }
}
impl GetFleetOutput {
    /// Creates a new builder-style object to manufacture [`GetFleetOutput`](crate::output::GetFleetOutput).
    pub fn builder() -> crate::output::get_fleet_output::Builder {
        crate::output::get_fleet_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListVehiclesInFleetOutput {
    /// <p> A list of vehicles associated with the fleet. </p>
    #[doc(hidden)]
    pub vehicles: std::option::Option<std::vec::Vec<std::string::String>>,
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListVehiclesInFleetOutput {
    /// <p> A list of vehicles associated with the fleet. </p>
    pub fn vehicles(&self) -> std::option::Option<&[std::string::String]> {
        self.vehicles.as_deref()
    }
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListVehiclesInFleetOutput`](crate::output::ListVehiclesInFleetOutput).
pub mod list_vehicles_in_fleet_output {

    /// A builder for [`ListVehiclesInFleetOutput`](crate::output::ListVehiclesInFleetOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) vehicles: std::option::Option<std::vec::Vec<std::string::String>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `vehicles`.
        ///
        /// To override the contents of this collection use [`set_vehicles`](Self::set_vehicles).
        ///
        /// <p> A list of vehicles associated with the fleet. </p>
        pub fn vehicles(mut self, input: impl Into<std::string::String>) -> Self {
            let mut v = self.vehicles.unwrap_or_default();
            v.push(input.into());
            self.vehicles = Some(v);
            self
        }
        /// <p> A list of vehicles associated with the fleet. </p>
        pub fn set_vehicles(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.vehicles = input;
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListVehiclesInFleetOutput`](crate::output::ListVehiclesInFleetOutput).
        pub fn build(self) -> crate::output::ListVehiclesInFleetOutput {
            crate::output::ListVehiclesInFleetOutput {
                vehicles: self.vehicles,
                next_token: self.next_token,
            }
        }
    }
}
impl ListVehiclesInFleetOutput {
    /// Creates a new builder-style object to manufacture [`ListVehiclesInFleetOutput`](crate::output::ListVehiclesInFleetOutput).
    pub fn builder() -> crate::output::list_vehicles_in_fleet_output::Builder {
        crate::output::list_vehicles_in_fleet_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListDecoderManifestSignalsOutput {
    /// <p> Information about a list of signals to decode. </p>
    #[doc(hidden)]
    pub signal_decoders: std::option::Option<std::vec::Vec<crate::model::SignalDecoder>>,
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListDecoderManifestSignalsOutput {
    /// <p> Information about a list of signals to decode. </p>
    pub fn signal_decoders(&self) -> std::option::Option<&[crate::model::SignalDecoder]> {
        self.signal_decoders.as_deref()
    }
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListDecoderManifestSignalsOutput`](crate::output::ListDecoderManifestSignalsOutput).
pub mod list_decoder_manifest_signals_output {

    /// A builder for [`ListDecoderManifestSignalsOutput`](crate::output::ListDecoderManifestSignalsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) signal_decoders: std::option::Option<std::vec::Vec<crate::model::SignalDecoder>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `signal_decoders`.
        ///
        /// To override the contents of this collection use [`set_signal_decoders`](Self::set_signal_decoders).
        ///
        /// <p> Information about a list of signals to decode. </p>
        pub fn signal_decoders(mut self, input: crate::model::SignalDecoder) -> Self {
            let mut v = self.signal_decoders.unwrap_or_default();
            v.push(input);
            self.signal_decoders = Some(v);
            self
        }
        /// <p> Information about a list of signals to decode. </p>
        pub fn set_signal_decoders(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::SignalDecoder>>,
        ) -> Self {
            self.signal_decoders = input;
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListDecoderManifestSignalsOutput`](crate::output::ListDecoderManifestSignalsOutput).
        pub fn build(self) -> crate::output::ListDecoderManifestSignalsOutput {
            crate::output::ListDecoderManifestSignalsOutput {
                signal_decoders: self.signal_decoders,
                next_token: self.next_token,
            }
        }
    }
}
impl ListDecoderManifestSignalsOutput {
    /// Creates a new builder-style object to manufacture [`ListDecoderManifestSignalsOutput`](crate::output::ListDecoderManifestSignalsOutput).
    pub fn builder() -> crate::output::list_decoder_manifest_signals_output::Builder {
        crate::output::list_decoder_manifest_signals_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListDecoderManifestNetworkInterfacesOutput {
    /// <p> A list of information about network interfaces. </p>
    #[doc(hidden)]
    pub network_interfaces: std::option::Option<std::vec::Vec<crate::model::NetworkInterface>>,
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListDecoderManifestNetworkInterfacesOutput {
    /// <p> A list of information about network interfaces. </p>
    pub fn network_interfaces(&self) -> std::option::Option<&[crate::model::NetworkInterface]> {
        self.network_interfaces.as_deref()
    }
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListDecoderManifestNetworkInterfacesOutput`](crate::output::ListDecoderManifestNetworkInterfacesOutput).
pub mod list_decoder_manifest_network_interfaces_output {

    /// A builder for [`ListDecoderManifestNetworkInterfacesOutput`](crate::output::ListDecoderManifestNetworkInterfacesOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) network_interfaces:
            std::option::Option<std::vec::Vec<crate::model::NetworkInterface>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `network_interfaces`.
        ///
        /// To override the contents of this collection use [`set_network_interfaces`](Self::set_network_interfaces).
        ///
        /// <p> A list of information about network interfaces. </p>
        pub fn network_interfaces(mut self, input: crate::model::NetworkInterface) -> Self {
            let mut v = self.network_interfaces.unwrap_or_default();
            v.push(input);
            self.network_interfaces = Some(v);
            self
        }
        /// <p> A list of information about network interfaces. </p>
        pub fn set_network_interfaces(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::NetworkInterface>>,
        ) -> Self {
            self.network_interfaces = input;
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListDecoderManifestNetworkInterfacesOutput`](crate::output::ListDecoderManifestNetworkInterfacesOutput).
        pub fn build(self) -> crate::output::ListDecoderManifestNetworkInterfacesOutput {
            crate::output::ListDecoderManifestNetworkInterfacesOutput {
                network_interfaces: self.network_interfaces,
                next_token: self.next_token,
            }
        }
    }
}
impl ListDecoderManifestNetworkInterfacesOutput {
    /// Creates a new builder-style object to manufacture [`ListDecoderManifestNetworkInterfacesOutput`](crate::output::ListDecoderManifestNetworkInterfacesOutput).
    pub fn builder() -> crate::output::list_decoder_manifest_network_interfaces_output::Builder {
        crate::output::list_decoder_manifest_network_interfaces_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ImportDecoderManifestOutput {
    /// <p> The name of the imported decoder manifest. </p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p> The Amazon Resource Name (ARN) of the decoder manifest that was imported. </p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
}
impl ImportDecoderManifestOutput {
    /// <p> The name of the imported decoder manifest. </p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p> The Amazon Resource Name (ARN) of the decoder manifest that was imported. </p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
}
/// See [`ImportDecoderManifestOutput`](crate::output::ImportDecoderManifestOutput).
pub mod import_decoder_manifest_output {

    /// A builder for [`ImportDecoderManifestOutput`](crate::output::ImportDecoderManifestOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p> The name of the imported decoder manifest. </p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p> The name of the imported decoder manifest. </p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the decoder manifest that was imported. </p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the decoder manifest that was imported. </p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// Consumes the builder and constructs a [`ImportDecoderManifestOutput`](crate::output::ImportDecoderManifestOutput).
        pub fn build(self) -> crate::output::ImportDecoderManifestOutput {
            crate::output::ImportDecoderManifestOutput {
                name: self.name,
                arn: self.arn,
            }
        }
    }
}
impl ImportDecoderManifestOutput {
    /// Creates a new builder-style object to manufacture [`ImportDecoderManifestOutput`](crate::output::ImportDecoderManifestOutput).
    pub fn builder() -> crate::output::import_decoder_manifest_output::Builder {
        crate::output::import_decoder_manifest_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListDecoderManifestsOutput {
    /// <p> A list of information about each decoder manifest. </p>
    #[doc(hidden)]
    pub summaries: std::option::Option<std::vec::Vec<crate::model::DecoderManifestSummary>>,
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListDecoderManifestsOutput {
    /// <p> A list of information about each decoder manifest. </p>
    pub fn summaries(&self) -> std::option::Option<&[crate::model::DecoderManifestSummary]> {
        self.summaries.as_deref()
    }
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListDecoderManifestsOutput`](crate::output::ListDecoderManifestsOutput).
pub mod list_decoder_manifests_output {

    /// A builder for [`ListDecoderManifestsOutput`](crate::output::ListDecoderManifestsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) summaries:
            std::option::Option<std::vec::Vec<crate::model::DecoderManifestSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `summaries`.
        ///
        /// To override the contents of this collection use [`set_summaries`](Self::set_summaries).
        ///
        /// <p> A list of information about each decoder manifest. </p>
        pub fn summaries(mut self, input: crate::model::DecoderManifestSummary) -> Self {
            let mut v = self.summaries.unwrap_or_default();
            v.push(input);
            self.summaries = Some(v);
            self
        }
        /// <p> A list of information about each decoder manifest. </p>
        pub fn set_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::DecoderManifestSummary>>,
        ) -> Self {
            self.summaries = input;
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListDecoderManifestsOutput`](crate::output::ListDecoderManifestsOutput).
        pub fn build(self) -> crate::output::ListDecoderManifestsOutput {
            crate::output::ListDecoderManifestsOutput {
                summaries: self.summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListDecoderManifestsOutput {
    /// Creates a new builder-style object to manufacture [`ListDecoderManifestsOutput`](crate::output::ListDecoderManifestsOutput).
    pub fn builder() -> crate::output::list_decoder_manifests_output::Builder {
        crate::output::list_decoder_manifests_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateDecoderManifestOutput {
    /// <p> The name of the created decoder manifest. </p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p> The ARN of the created decoder manifest. </p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
}
impl CreateDecoderManifestOutput {
    /// <p> The name of the created decoder manifest. </p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p> The ARN of the created decoder manifest. </p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
}
/// See [`CreateDecoderManifestOutput`](crate::output::CreateDecoderManifestOutput).
pub mod create_decoder_manifest_output {

    /// A builder for [`CreateDecoderManifestOutput`](crate::output::CreateDecoderManifestOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p> The name of the created decoder manifest. </p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p> The name of the created decoder manifest. </p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p> The ARN of the created decoder manifest. </p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p> The ARN of the created decoder manifest. </p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateDecoderManifestOutput`](crate::output::CreateDecoderManifestOutput).
        pub fn build(self) -> crate::output::CreateDecoderManifestOutput {
            crate::output::CreateDecoderManifestOutput {
                name: self.name,
                arn: self.arn,
            }
        }
    }
}
impl CreateDecoderManifestOutput {
    /// Creates a new builder-style object to manufacture [`CreateDecoderManifestOutput`](crate::output::CreateDecoderManifestOutput).
    pub fn builder() -> crate::output::create_decoder_manifest_output::Builder {
        crate::output::create_decoder_manifest_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteDecoderManifestOutput {
    /// <p>The name of the deleted decoder manifest.</p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the deleted decoder manifest.</p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
}
impl DeleteDecoderManifestOutput {
    /// <p>The name of the deleted decoder manifest.</p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the deleted decoder manifest.</p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
}
/// See [`DeleteDecoderManifestOutput`](crate::output::DeleteDecoderManifestOutput).
pub mod delete_decoder_manifest_output {

    /// A builder for [`DeleteDecoderManifestOutput`](crate::output::DeleteDecoderManifestOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The name of the deleted decoder manifest.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p>The name of the deleted decoder manifest.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the deleted decoder manifest.</p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p>The Amazon Resource Name (ARN) of the deleted decoder manifest.</p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// Consumes the builder and constructs a [`DeleteDecoderManifestOutput`](crate::output::DeleteDecoderManifestOutput).
        pub fn build(self) -> crate::output::DeleteDecoderManifestOutput {
            crate::output::DeleteDecoderManifestOutput {
                name: self.name,
                arn: self.arn,
            }
        }
    }
}
impl DeleteDecoderManifestOutput {
    /// Creates a new builder-style object to manufacture [`DeleteDecoderManifestOutput`](crate::output::DeleteDecoderManifestOutput).
    pub fn builder() -> crate::output::delete_decoder_manifest_output::Builder {
        crate::output::delete_decoder_manifest_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateDecoderManifestOutput {
    /// <p> The name of the updated decoder manifest. </p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p> The Amazon Resource Name (ARN) of the updated decoder manifest. </p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
}
impl UpdateDecoderManifestOutput {
    /// <p> The name of the updated decoder manifest. </p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p> The Amazon Resource Name (ARN) of the updated decoder manifest. </p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
}
/// See [`UpdateDecoderManifestOutput`](crate::output::UpdateDecoderManifestOutput).
pub mod update_decoder_manifest_output {

    /// A builder for [`UpdateDecoderManifestOutput`](crate::output::UpdateDecoderManifestOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p> The name of the updated decoder manifest. </p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p> The name of the updated decoder manifest. </p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the updated decoder manifest. </p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the updated decoder manifest. </p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateDecoderManifestOutput`](crate::output::UpdateDecoderManifestOutput).
        pub fn build(self) -> crate::output::UpdateDecoderManifestOutput {
            crate::output::UpdateDecoderManifestOutput {
                name: self.name,
                arn: self.arn,
            }
        }
    }
}
impl UpdateDecoderManifestOutput {
    /// Creates a new builder-style object to manufacture [`UpdateDecoderManifestOutput`](crate::output::UpdateDecoderManifestOutput).
    pub fn builder() -> crate::output::update_decoder_manifest_output::Builder {
        crate::output::update_decoder_manifest_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetDecoderManifestOutput {
    /// <p> The name of the decoder manifest. </p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p> The Amazon Resource Name (ARN) of the decoder manifest. </p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
    /// <p> A brief description of the decoder manifest.</p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p> The ARN of a vehicle model (model manifest) associated with the decoder manifest.</p>
    #[doc(hidden)]
    pub model_manifest_arn: std::option::Option<std::string::String>,
    /// <p> The state of the decoder manifest. If the status is <code>ACTIVE</code>, the decoder manifest can't be edited. If the status is marked <code>DRAFT</code>, you can edit the decoder manifest.</p>
    #[doc(hidden)]
    pub status: std::option::Option<crate::model::ManifestStatus>,
    /// <p> The time the decoder manifest was created in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p> The time the decoder manifest was last updated in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    #[doc(hidden)]
    pub last_modification_time: std::option::Option<aws_smithy_types::DateTime>,
}
impl GetDecoderManifestOutput {
    /// <p> The name of the decoder manifest. </p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p> The Amazon Resource Name (ARN) of the decoder manifest. </p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
    /// <p> A brief description of the decoder manifest.</p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p> The ARN of a vehicle model (model manifest) associated with the decoder manifest.</p>
    pub fn model_manifest_arn(&self) -> std::option::Option<&str> {
        self.model_manifest_arn.as_deref()
    }
    /// <p> The state of the decoder manifest. If the status is <code>ACTIVE</code>, the decoder manifest can't be edited. If the status is marked <code>DRAFT</code>, you can edit the decoder manifest.</p>
    pub fn status(&self) -> std::option::Option<&crate::model::ManifestStatus> {
        self.status.as_ref()
    }
    /// <p> The time the decoder manifest was created in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p> The time the decoder manifest was last updated in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    pub fn last_modification_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modification_time.as_ref()
    }
}
/// See [`GetDecoderManifestOutput`](crate::output::GetDecoderManifestOutput).
pub mod get_decoder_manifest_output {

    /// A builder for [`GetDecoderManifestOutput`](crate::output::GetDecoderManifestOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
        pub(crate) description: std::option::Option<std::string::String>,
        pub(crate) model_manifest_arn: std::option::Option<std::string::String>,
        pub(crate) status: std::option::Option<crate::model::ManifestStatus>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modification_time: std::option::Option<aws_smithy_types::DateTime>,
    }
    impl Builder {
        /// <p> The name of the decoder manifest. </p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p> The name of the decoder manifest. </p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the decoder manifest. </p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the decoder manifest. </p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// <p> A brief description of the decoder manifest.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.description = Some(input.into());
            self
        }
        /// <p> A brief description of the decoder manifest.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.description = input;
            self
        }
        /// <p> The ARN of a vehicle model (model manifest) associated with the decoder manifest.</p>
        pub fn model_manifest_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.model_manifest_arn = Some(input.into());
            self
        }
        /// <p> The ARN of a vehicle model (model manifest) associated with the decoder manifest.</p>
        pub fn set_model_manifest_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.model_manifest_arn = input;
            self
        }
        /// <p> The state of the decoder manifest. If the status is <code>ACTIVE</code>, the decoder manifest can't be edited. If the status is marked <code>DRAFT</code>, you can edit the decoder manifest.</p>
        pub fn status(mut self, input: crate::model::ManifestStatus) -> Self {
            self.status = Some(input);
            self
        }
        /// <p> The state of the decoder manifest. If the status is <code>ACTIVE</code>, the decoder manifest can't be edited. If the status is marked <code>DRAFT</code>, you can edit the decoder manifest.</p>
        pub fn set_status(
            mut self,
            input: std::option::Option<crate::model::ManifestStatus>,
        ) -> Self {
            self.status = input;
            self
        }
        /// <p> The time the decoder manifest was created in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p> The time the decoder manifest was created in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p> The time the decoder manifest was last updated in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn last_modification_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modification_time = Some(input);
            self
        }
        /// <p> The time the decoder manifest was last updated in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn set_last_modification_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modification_time = input;
            self
        }
        /// Consumes the builder and constructs a [`GetDecoderManifestOutput`](crate::output::GetDecoderManifestOutput).
        pub fn build(self) -> crate::output::GetDecoderManifestOutput {
            crate::output::GetDecoderManifestOutput {
                name: self.name,
                arn: self.arn,
                description: self.description,
                model_manifest_arn: self.model_manifest_arn,
                status: self.status,
                creation_time: self.creation_time,
                last_modification_time: self.last_modification_time,
            }
        }
    }
}
impl GetDecoderManifestOutput {
    /// Creates a new builder-style object to manufacture [`GetDecoderManifestOutput`](crate::output::GetDecoderManifestOutput).
    pub fn builder() -> crate::output::get_decoder_manifest_output::Builder {
        crate::output::get_decoder_manifest_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListCampaignsOutput {
    /// <p> A summary of information about each campaign. </p>
    #[doc(hidden)]
    pub campaign_summaries: std::option::Option<std::vec::Vec<crate::model::CampaignSummary>>,
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl ListCampaignsOutput {
    /// <p> A summary of information about each campaign. </p>
    pub fn campaign_summaries(&self) -> std::option::Option<&[crate::model::CampaignSummary]> {
        self.campaign_summaries.as_deref()
    }
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`ListCampaignsOutput`](crate::output::ListCampaignsOutput).
pub mod list_campaigns_output {

    /// A builder for [`ListCampaignsOutput`](crate::output::ListCampaignsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) campaign_summaries:
            std::option::Option<std::vec::Vec<crate::model::CampaignSummary>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `campaign_summaries`.
        ///
        /// To override the contents of this collection use [`set_campaign_summaries`](Self::set_campaign_summaries).
        ///
        /// <p> A summary of information about each campaign. </p>
        pub fn campaign_summaries(mut self, input: crate::model::CampaignSummary) -> Self {
            let mut v = self.campaign_summaries.unwrap_or_default();
            v.push(input);
            self.campaign_summaries = Some(v);
            self
        }
        /// <p> A summary of information about each campaign. </p>
        pub fn set_campaign_summaries(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::CampaignSummary>>,
        ) -> Self {
            self.campaign_summaries = input;
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`ListCampaignsOutput`](crate::output::ListCampaignsOutput).
        pub fn build(self) -> crate::output::ListCampaignsOutput {
            crate::output::ListCampaignsOutput {
                campaign_summaries: self.campaign_summaries,
                next_token: self.next_token,
            }
        }
    }
}
impl ListCampaignsOutput {
    /// Creates a new builder-style object to manufacture [`ListCampaignsOutput`](crate::output::ListCampaignsOutput).
    pub fn builder() -> crate::output::list_campaigns_output::Builder {
        crate::output::list_campaigns_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct CreateCampaignOutput {
    /// <p>The name of the created campaign.</p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p> The ARN of the created campaign. </p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
}
impl CreateCampaignOutput {
    /// <p>The name of the created campaign.</p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p> The ARN of the created campaign. </p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
}
/// See [`CreateCampaignOutput`](crate::output::CreateCampaignOutput).
pub mod create_campaign_output {

    /// A builder for [`CreateCampaignOutput`](crate::output::CreateCampaignOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The name of the created campaign.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p>The name of the created campaign.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p> The ARN of the created campaign. </p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p> The ARN of the created campaign. </p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// Consumes the builder and constructs a [`CreateCampaignOutput`](crate::output::CreateCampaignOutput).
        pub fn build(self) -> crate::output::CreateCampaignOutput {
            crate::output::CreateCampaignOutput {
                name: self.name,
                arn: self.arn,
            }
        }
    }
}
impl CreateCampaignOutput {
    /// Creates a new builder-style object to manufacture [`CreateCampaignOutput`](crate::output::CreateCampaignOutput).
    pub fn builder() -> crate::output::create_campaign_output::Builder {
        crate::output::create_campaign_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct DeleteCampaignOutput {
    /// <p>The name of the deleted campaign.</p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p> The Amazon Resource Name (ARN) of the deleted campaign.</p> <note>
    /// <p>The ARN isn’t returned if a campaign doesn’t exist.</p>
    /// </note>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
}
impl DeleteCampaignOutput {
    /// <p>The name of the deleted campaign.</p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p> The Amazon Resource Name (ARN) of the deleted campaign.</p> <note>
    /// <p>The ARN isn’t returned if a campaign doesn’t exist.</p>
    /// </note>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
}
/// See [`DeleteCampaignOutput`](crate::output::DeleteCampaignOutput).
pub mod delete_campaign_output {

    /// A builder for [`DeleteCampaignOutput`](crate::output::DeleteCampaignOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// <p>The name of the deleted campaign.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p>The name of the deleted campaign.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the deleted campaign.</p> <note>
        /// <p>The ARN isn’t returned if a campaign doesn’t exist.</p>
        /// </note>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the deleted campaign.</p> <note>
        /// <p>The ARN isn’t returned if a campaign doesn’t exist.</p>
        /// </note>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// Consumes the builder and constructs a [`DeleteCampaignOutput`](crate::output::DeleteCampaignOutput).
        pub fn build(self) -> crate::output::DeleteCampaignOutput {
            crate::output::DeleteCampaignOutput {
                name: self.name,
                arn: self.arn,
            }
        }
    }
}
impl DeleteCampaignOutput {
    /// Creates a new builder-style object to manufacture [`DeleteCampaignOutput`](crate::output::DeleteCampaignOutput).
    pub fn builder() -> crate::output::delete_campaign_output::Builder {
        crate::output::delete_campaign_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UpdateCampaignOutput {
    /// <p> The Amazon Resource Name (ARN) of the campaign. </p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
    /// <p>The name of the updated campaign.</p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p>The state of a campaign. The status can be one of:</p>
    /// <ul>
    /// <li> <p> <code>CREATING</code> - Amazon Web Services IoT FleetWise is processing your request to create the campaign. </p> </li>
    /// <li> <p> <code>WAITING_FOR_APPROVAL</code> - After a campaign is created, it enters the <code>WAITING_FOR_APPROVAL</code> state. To allow Amazon Web Services IoT FleetWise to deploy the campaign to the target vehicle or fleet, use the API operation to approve the campaign. </p> </li>
    /// <li> <p> <code>RUNNING</code> - The campaign is active. </p> </li>
    /// <li> <p> <code>SUSPENDED</code> - The campaign is suspended. To resume the campaign, use the API operation. </p> </li>
    /// </ul>
    #[doc(hidden)]
    pub status: std::option::Option<crate::model::CampaignStatus>,
}
impl UpdateCampaignOutput {
    /// <p> The Amazon Resource Name (ARN) of the campaign. </p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
    /// <p>The name of the updated campaign.</p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p>The state of a campaign. The status can be one of:</p>
    /// <ul>
    /// <li> <p> <code>CREATING</code> - Amazon Web Services IoT FleetWise is processing your request to create the campaign. </p> </li>
    /// <li> <p> <code>WAITING_FOR_APPROVAL</code> - After a campaign is created, it enters the <code>WAITING_FOR_APPROVAL</code> state. To allow Amazon Web Services IoT FleetWise to deploy the campaign to the target vehicle or fleet, use the API operation to approve the campaign. </p> </li>
    /// <li> <p> <code>RUNNING</code> - The campaign is active. </p> </li>
    /// <li> <p> <code>SUSPENDED</code> - The campaign is suspended. To resume the campaign, use the API operation. </p> </li>
    /// </ul>
    pub fn status(&self) -> std::option::Option<&crate::model::CampaignStatus> {
        self.status.as_ref()
    }
}
/// See [`UpdateCampaignOutput`](crate::output::UpdateCampaignOutput).
pub mod update_campaign_output {

    /// A builder for [`UpdateCampaignOutput`](crate::output::UpdateCampaignOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) arn: std::option::Option<std::string::String>,
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) status: std::option::Option<crate::model::CampaignStatus>,
    }
    impl Builder {
        /// <p> The Amazon Resource Name (ARN) of the campaign. </p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the campaign. </p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// <p>The name of the updated campaign.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p>The name of the updated campaign.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p>The state of a campaign. The status can be one of:</p>
        /// <ul>
        /// <li> <p> <code>CREATING</code> - Amazon Web Services IoT FleetWise is processing your request to create the campaign. </p> </li>
        /// <li> <p> <code>WAITING_FOR_APPROVAL</code> - After a campaign is created, it enters the <code>WAITING_FOR_APPROVAL</code> state. To allow Amazon Web Services IoT FleetWise to deploy the campaign to the target vehicle or fleet, use the API operation to approve the campaign. </p> </li>
        /// <li> <p> <code>RUNNING</code> - The campaign is active. </p> </li>
        /// <li> <p> <code>SUSPENDED</code> - The campaign is suspended. To resume the campaign, use the API operation. </p> </li>
        /// </ul>
        pub fn status(mut self, input: crate::model::CampaignStatus) -> Self {
            self.status = Some(input);
            self
        }
        /// <p>The state of a campaign. The status can be one of:</p>
        /// <ul>
        /// <li> <p> <code>CREATING</code> - Amazon Web Services IoT FleetWise is processing your request to create the campaign. </p> </li>
        /// <li> <p> <code>WAITING_FOR_APPROVAL</code> - After a campaign is created, it enters the <code>WAITING_FOR_APPROVAL</code> state. To allow Amazon Web Services IoT FleetWise to deploy the campaign to the target vehicle or fleet, use the API operation to approve the campaign. </p> </li>
        /// <li> <p> <code>RUNNING</code> - The campaign is active. </p> </li>
        /// <li> <p> <code>SUSPENDED</code> - The campaign is suspended. To resume the campaign, use the API operation. </p> </li>
        /// </ul>
        pub fn set_status(
            mut self,
            input: std::option::Option<crate::model::CampaignStatus>,
        ) -> Self {
            self.status = input;
            self
        }
        /// Consumes the builder and constructs a [`UpdateCampaignOutput`](crate::output::UpdateCampaignOutput).
        pub fn build(self) -> crate::output::UpdateCampaignOutput {
            crate::output::UpdateCampaignOutput {
                arn: self.arn,
                name: self.name,
                status: self.status,
            }
        }
    }
}
impl UpdateCampaignOutput {
    /// Creates a new builder-style object to manufacture [`UpdateCampaignOutput`](crate::output::UpdateCampaignOutput).
    pub fn builder() -> crate::output::update_campaign_output::Builder {
        crate::output::update_campaign_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetCampaignOutput {
    /// <p>The name of the campaign.</p>
    #[doc(hidden)]
    pub name: std::option::Option<std::string::String>,
    /// <p> The Amazon Resource Name (ARN) of the campaign. </p>
    #[doc(hidden)]
    pub arn: std::option::Option<std::string::String>,
    /// <p>The description of the campaign.</p>
    #[doc(hidden)]
    pub description: std::option::Option<std::string::String>,
    /// <p> The ARN of a signal catalog. </p>
    #[doc(hidden)]
    pub signal_catalog_arn: std::option::Option<std::string::String>,
    /// <p> The ARN of the vehicle or the fleet targeted by the campaign. </p>
    #[doc(hidden)]
    pub target_arn: std::option::Option<std::string::String>,
    /// <p>The state of the campaign. The status can be one of: <code>CREATING</code>, <code>WAITING_FOR_APPROVAL</code>, <code>RUNNING</code>, and <code>SUSPENDED</code>. </p>
    #[doc(hidden)]
    pub status: std::option::Option<crate::model::CampaignStatus>,
    /// <p> The time, in milliseconds, to deliver a campaign after it was approved.</p>
    #[doc(hidden)]
    pub start_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p> The time the campaign expires, in seconds since epoch (January 1, 1970 at midnight UTC time). Vehicle data won't be collected after the campaign expires.</p>
    #[doc(hidden)]
    pub expiry_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p> How long (in seconds) to collect raw data after a triggering event initiates the collection. </p>
    #[doc(hidden)]
    pub post_trigger_collection_duration: std::option::Option<i64>,
    /// <p> Option for a vehicle to send diagnostic trouble codes to Amazon Web Services IoT FleetWise. </p>
    #[doc(hidden)]
    pub diagnostics_mode: std::option::Option<crate::model::DiagnosticsMode>,
    /// <p> Whether to store collected data after a vehicle lost a connection with the cloud. After a connection is re-established, the data is automatically forwarded to Amazon Web Services IoT FleetWise. </p>
    #[doc(hidden)]
    pub spooling_mode: std::option::Option<crate::model::SpoolingMode>,
    /// <p> Whether to compress signals before transmitting data to Amazon Web Services IoT FleetWise. If <code>OFF</code> is specified, the signals aren't compressed. If it's not specified, <code>SNAPPY</code> is used. </p>
    #[doc(hidden)]
    pub compression: std::option::Option<crate::model::Compression>,
    /// <p> A number indicating the priority of one campaign over another campaign for a certain vehicle or fleet. A campaign with the lowest value is deployed to vehicles before any other campaigns.</p>
    #[doc(hidden)]
    pub priority: std::option::Option<i32>,
    /// <p> Information about a list of signals to collect data on. </p>
    #[doc(hidden)]
    pub signals_to_collect: std::option::Option<std::vec::Vec<crate::model::SignalInformation>>,
    /// <p> Information about the data collection scheme associated with the campaign. </p>
    #[doc(hidden)]
    pub collection_scheme: std::option::Option<crate::model::CollectionScheme>,
    /// <p> A list of vehicle attributes associated with the campaign. </p>
    #[doc(hidden)]
    pub data_extra_dimensions: std::option::Option<std::vec::Vec<std::string::String>>,
    /// <p> The time the campaign was created in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p>The last time the campaign was modified.</p>
    #[doc(hidden)]
    pub last_modification_time: std::option::Option<aws_smithy_types::DateTime>,
}
impl GetCampaignOutput {
    /// <p>The name of the campaign.</p>
    pub fn name(&self) -> std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p> The Amazon Resource Name (ARN) of the campaign. </p>
    pub fn arn(&self) -> std::option::Option<&str> {
        self.arn.as_deref()
    }
    /// <p>The description of the campaign.</p>
    pub fn description(&self) -> std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p> The ARN of a signal catalog. </p>
    pub fn signal_catalog_arn(&self) -> std::option::Option<&str> {
        self.signal_catalog_arn.as_deref()
    }
    /// <p> The ARN of the vehicle or the fleet targeted by the campaign. </p>
    pub fn target_arn(&self) -> std::option::Option<&str> {
        self.target_arn.as_deref()
    }
    /// <p>The state of the campaign. The status can be one of: <code>CREATING</code>, <code>WAITING_FOR_APPROVAL</code>, <code>RUNNING</code>, and <code>SUSPENDED</code>. </p>
    pub fn status(&self) -> std::option::Option<&crate::model::CampaignStatus> {
        self.status.as_ref()
    }
    /// <p> The time, in milliseconds, to deliver a campaign after it was approved.</p>
    pub fn start_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.start_time.as_ref()
    }
    /// <p> The time the campaign expires, in seconds since epoch (January 1, 1970 at midnight UTC time). Vehicle data won't be collected after the campaign expires.</p>
    pub fn expiry_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.expiry_time.as_ref()
    }
    /// <p> How long (in seconds) to collect raw data after a triggering event initiates the collection. </p>
    pub fn post_trigger_collection_duration(&self) -> std::option::Option<i64> {
        self.post_trigger_collection_duration
    }
    /// <p> Option for a vehicle to send diagnostic trouble codes to Amazon Web Services IoT FleetWise. </p>
    pub fn diagnostics_mode(&self) -> std::option::Option<&crate::model::DiagnosticsMode> {
        self.diagnostics_mode.as_ref()
    }
    /// <p> Whether to store collected data after a vehicle lost a connection with the cloud. After a connection is re-established, the data is automatically forwarded to Amazon Web Services IoT FleetWise. </p>
    pub fn spooling_mode(&self) -> std::option::Option<&crate::model::SpoolingMode> {
        self.spooling_mode.as_ref()
    }
    /// <p> Whether to compress signals before transmitting data to Amazon Web Services IoT FleetWise. If <code>OFF</code> is specified, the signals aren't compressed. If it's not specified, <code>SNAPPY</code> is used. </p>
    pub fn compression(&self) -> std::option::Option<&crate::model::Compression> {
        self.compression.as_ref()
    }
    /// <p> A number indicating the priority of one campaign over another campaign for a certain vehicle or fleet. A campaign with the lowest value is deployed to vehicles before any other campaigns.</p>
    pub fn priority(&self) -> std::option::Option<i32> {
        self.priority
    }
    /// <p> Information about a list of signals to collect data on. </p>
    pub fn signals_to_collect(&self) -> std::option::Option<&[crate::model::SignalInformation]> {
        self.signals_to_collect.as_deref()
    }
    /// <p> Information about the data collection scheme associated with the campaign. </p>
    pub fn collection_scheme(&self) -> std::option::Option<&crate::model::CollectionScheme> {
        self.collection_scheme.as_ref()
    }
    /// <p> A list of vehicle attributes associated with the campaign. </p>
    pub fn data_extra_dimensions(&self) -> std::option::Option<&[std::string::String]> {
        self.data_extra_dimensions.as_deref()
    }
    /// <p> The time the campaign was created in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The last time the campaign was modified.</p>
    pub fn last_modification_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modification_time.as_ref()
    }
}
/// See [`GetCampaignOutput`](crate::output::GetCampaignOutput).
pub mod get_campaign_output {

    /// A builder for [`GetCampaignOutput`](crate::output::GetCampaignOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) name: std::option::Option<std::string::String>,
        pub(crate) arn: std::option::Option<std::string::String>,
        pub(crate) description: std::option::Option<std::string::String>,
        pub(crate) signal_catalog_arn: std::option::Option<std::string::String>,
        pub(crate) target_arn: std::option::Option<std::string::String>,
        pub(crate) status: std::option::Option<crate::model::CampaignStatus>,
        pub(crate) start_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) expiry_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) post_trigger_collection_duration: std::option::Option<i64>,
        pub(crate) diagnostics_mode: std::option::Option<crate::model::DiagnosticsMode>,
        pub(crate) spooling_mode: std::option::Option<crate::model::SpoolingMode>,
        pub(crate) compression: std::option::Option<crate::model::Compression>,
        pub(crate) priority: std::option::Option<i32>,
        pub(crate) signals_to_collect:
            std::option::Option<std::vec::Vec<crate::model::SignalInformation>>,
        pub(crate) collection_scheme: std::option::Option<crate::model::CollectionScheme>,
        pub(crate) data_extra_dimensions: std::option::Option<std::vec::Vec<std::string::String>>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modification_time: std::option::Option<aws_smithy_types::DateTime>,
    }
    impl Builder {
        /// <p>The name of the campaign.</p>
        pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
            self.name = Some(input.into());
            self
        }
        /// <p>The name of the campaign.</p>
        pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.name = input;
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the campaign. </p>
        pub fn arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.arn = Some(input.into());
            self
        }
        /// <p> The Amazon Resource Name (ARN) of the campaign. </p>
        pub fn set_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.arn = input;
            self
        }
        /// <p>The description of the campaign.</p>
        pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
            self.description = Some(input.into());
            self
        }
        /// <p>The description of the campaign.</p>
        pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.description = input;
            self
        }
        /// <p> The ARN of a signal catalog. </p>
        pub fn signal_catalog_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.signal_catalog_arn = Some(input.into());
            self
        }
        /// <p> The ARN of a signal catalog. </p>
        pub fn set_signal_catalog_arn(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.signal_catalog_arn = input;
            self
        }
        /// <p> The ARN of the vehicle or the fleet targeted by the campaign. </p>
        pub fn target_arn(mut self, input: impl Into<std::string::String>) -> Self {
            self.target_arn = Some(input.into());
            self
        }
        /// <p> The ARN of the vehicle or the fleet targeted by the campaign. </p>
        pub fn set_target_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.target_arn = input;
            self
        }
        /// <p>The state of the campaign. The status can be one of: <code>CREATING</code>, <code>WAITING_FOR_APPROVAL</code>, <code>RUNNING</code>, and <code>SUSPENDED</code>. </p>
        pub fn status(mut self, input: crate::model::CampaignStatus) -> Self {
            self.status = Some(input);
            self
        }
        /// <p>The state of the campaign. The status can be one of: <code>CREATING</code>, <code>WAITING_FOR_APPROVAL</code>, <code>RUNNING</code>, and <code>SUSPENDED</code>. </p>
        pub fn set_status(
            mut self,
            input: std::option::Option<crate::model::CampaignStatus>,
        ) -> Self {
            self.status = input;
            self
        }
        /// <p> The time, in milliseconds, to deliver a campaign after it was approved.</p>
        pub fn start_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.start_time = Some(input);
            self
        }
        /// <p> The time, in milliseconds, to deliver a campaign after it was approved.</p>
        pub fn set_start_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.start_time = input;
            self
        }
        /// <p> The time the campaign expires, in seconds since epoch (January 1, 1970 at midnight UTC time). Vehicle data won't be collected after the campaign expires.</p>
        pub fn expiry_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.expiry_time = Some(input);
            self
        }
        /// <p> The time the campaign expires, in seconds since epoch (January 1, 1970 at midnight UTC time). Vehicle data won't be collected after the campaign expires.</p>
        pub fn set_expiry_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.expiry_time = input;
            self
        }
        /// <p> How long (in seconds) to collect raw data after a triggering event initiates the collection. </p>
        pub fn post_trigger_collection_duration(mut self, input: i64) -> Self {
            self.post_trigger_collection_duration = Some(input);
            self
        }
        /// <p> How long (in seconds) to collect raw data after a triggering event initiates the collection. </p>
        pub fn set_post_trigger_collection_duration(
            mut self,
            input: std::option::Option<i64>,
        ) -> Self {
            self.post_trigger_collection_duration = input;
            self
        }
        /// <p> Option for a vehicle to send diagnostic trouble codes to Amazon Web Services IoT FleetWise. </p>
        pub fn diagnostics_mode(mut self, input: crate::model::DiagnosticsMode) -> Self {
            self.diagnostics_mode = Some(input);
            self
        }
        /// <p> Option for a vehicle to send diagnostic trouble codes to Amazon Web Services IoT FleetWise. </p>
        pub fn set_diagnostics_mode(
            mut self,
            input: std::option::Option<crate::model::DiagnosticsMode>,
        ) -> Self {
            self.diagnostics_mode = input;
            self
        }
        /// <p> Whether to store collected data after a vehicle lost a connection with the cloud. After a connection is re-established, the data is automatically forwarded to Amazon Web Services IoT FleetWise. </p>
        pub fn spooling_mode(mut self, input: crate::model::SpoolingMode) -> Self {
            self.spooling_mode = Some(input);
            self
        }
        /// <p> Whether to store collected data after a vehicle lost a connection with the cloud. After a connection is re-established, the data is automatically forwarded to Amazon Web Services IoT FleetWise. </p>
        pub fn set_spooling_mode(
            mut self,
            input: std::option::Option<crate::model::SpoolingMode>,
        ) -> Self {
            self.spooling_mode = input;
            self
        }
        /// <p> Whether to compress signals before transmitting data to Amazon Web Services IoT FleetWise. If <code>OFF</code> is specified, the signals aren't compressed. If it's not specified, <code>SNAPPY</code> is used. </p>
        pub fn compression(mut self, input: crate::model::Compression) -> Self {
            self.compression = Some(input);
            self
        }
        /// <p> Whether to compress signals before transmitting data to Amazon Web Services IoT FleetWise. If <code>OFF</code> is specified, the signals aren't compressed. If it's not specified, <code>SNAPPY</code> is used. </p>
        pub fn set_compression(
            mut self,
            input: std::option::Option<crate::model::Compression>,
        ) -> Self {
            self.compression = input;
            self
        }
        /// <p> A number indicating the priority of one campaign over another campaign for a certain vehicle or fleet. A campaign with the lowest value is deployed to vehicles before any other campaigns.</p>
        pub fn priority(mut self, input: i32) -> Self {
            self.priority = Some(input);
            self
        }
        /// <p> A number indicating the priority of one campaign over another campaign for a certain vehicle or fleet. A campaign with the lowest value is deployed to vehicles before any other campaigns.</p>
        pub fn set_priority(mut self, input: std::option::Option<i32>) -> Self {
            self.priority = input;
            self
        }
        /// Appends an item to `signals_to_collect`.
        ///
        /// To override the contents of this collection use [`set_signals_to_collect`](Self::set_signals_to_collect).
        ///
        /// <p> Information about a list of signals to collect data on. </p>
        pub fn signals_to_collect(mut self, input: crate::model::SignalInformation) -> Self {
            let mut v = self.signals_to_collect.unwrap_or_default();
            v.push(input);
            self.signals_to_collect = Some(v);
            self
        }
        /// <p> Information about a list of signals to collect data on. </p>
        pub fn set_signals_to_collect(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::SignalInformation>>,
        ) -> Self {
            self.signals_to_collect = input;
            self
        }
        /// <p> Information about the data collection scheme associated with the campaign. </p>
        pub fn collection_scheme(mut self, input: crate::model::CollectionScheme) -> Self {
            self.collection_scheme = Some(input);
            self
        }
        /// <p> Information about the data collection scheme associated with the campaign. </p>
        pub fn set_collection_scheme(
            mut self,
            input: std::option::Option<crate::model::CollectionScheme>,
        ) -> Self {
            self.collection_scheme = input;
            self
        }
        /// Appends an item to `data_extra_dimensions`.
        ///
        /// To override the contents of this collection use [`set_data_extra_dimensions`](Self::set_data_extra_dimensions).
        ///
        /// <p> A list of vehicle attributes associated with the campaign. </p>
        pub fn data_extra_dimensions(mut self, input: impl Into<std::string::String>) -> Self {
            let mut v = self.data_extra_dimensions.unwrap_or_default();
            v.push(input.into());
            self.data_extra_dimensions = Some(v);
            self
        }
        /// <p> A list of vehicle attributes associated with the campaign. </p>
        pub fn set_data_extra_dimensions(
            mut self,
            input: std::option::Option<std::vec::Vec<std::string::String>>,
        ) -> Self {
            self.data_extra_dimensions = input;
            self
        }
        /// <p> The time the campaign was created in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p> The time the campaign was created in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p>The last time the campaign was modified.</p>
        pub fn last_modification_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modification_time = Some(input);
            self
        }
        /// <p>The last time the campaign was modified.</p>
        pub fn set_last_modification_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modification_time = input;
            self
        }
        /// Consumes the builder and constructs a [`GetCampaignOutput`](crate::output::GetCampaignOutput).
        pub fn build(self) -> crate::output::GetCampaignOutput {
            crate::output::GetCampaignOutput {
                name: self.name,
                arn: self.arn,
                description: self.description,
                signal_catalog_arn: self.signal_catalog_arn,
                target_arn: self.target_arn,
                status: self.status,
                start_time: self.start_time,
                expiry_time: self.expiry_time,
                post_trigger_collection_duration: self.post_trigger_collection_duration,
                diagnostics_mode: self.diagnostics_mode,
                spooling_mode: self.spooling_mode,
                compression: self.compression,
                priority: self.priority,
                signals_to_collect: self.signals_to_collect,
                collection_scheme: self.collection_scheme,
                data_extra_dimensions: self.data_extra_dimensions,
                creation_time: self.creation_time,
                last_modification_time: self.last_modification_time,
            }
        }
    }
}
impl GetCampaignOutput {
    /// Creates a new builder-style object to manufacture [`GetCampaignOutput`](crate::output::GetCampaignOutput).
    pub fn builder() -> crate::output::get_campaign_output::Builder {
        crate::output::get_campaign_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct UntagResourceOutput {}
/// See [`UntagResourceOutput`](crate::output::UntagResourceOutput).
pub mod untag_resource_output {

    /// A builder for [`UntagResourceOutput`](crate::output::UntagResourceOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`UntagResourceOutput`](crate::output::UntagResourceOutput).
        pub fn build(self) -> crate::output::UntagResourceOutput {
            crate::output::UntagResourceOutput {}
        }
    }
}
impl UntagResourceOutput {
    /// Creates a new builder-style object to manufacture [`UntagResourceOutput`](crate::output::UntagResourceOutput).
    pub fn builder() -> crate::output::untag_resource_output::Builder {
        crate::output::untag_resource_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct TagResourceOutput {}
/// See [`TagResourceOutput`](crate::output::TagResourceOutput).
pub mod tag_resource_output {

    /// A builder for [`TagResourceOutput`](crate::output::TagResourceOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`TagResourceOutput`](crate::output::TagResourceOutput).
        pub fn build(self) -> crate::output::TagResourceOutput {
            crate::output::TagResourceOutput {}
        }
    }
}
impl TagResourceOutput {
    /// Creates a new builder-style object to manufacture [`TagResourceOutput`](crate::output::TagResourceOutput).
    pub fn builder() -> crate::output::tag_resource_output::Builder {
        crate::output::tag_resource_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct RegisterAccountOutput {
    /// <p> The status of registering your Amazon Web Services account, IAM role, and Timestream resources. </p>
    #[doc(hidden)]
    pub register_account_status: std::option::Option<crate::model::RegistrationStatus>,
    /// <p>The registered Amazon Timestream resources that Amazon Web Services IoT FleetWise edge agent software can transfer your vehicle data to.</p>
    #[doc(hidden)]
    pub timestream_resources: std::option::Option<crate::model::TimestreamResources>,
    /// <p> The registered IAM resource that allows Amazon Web Services IoT FleetWise to send data to Amazon Timestream. </p>
    #[doc(hidden)]
    pub iam_resources: std::option::Option<crate::model::IamResources>,
    /// <p> The time the account was registered, in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p> The time this registration was last updated, in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    #[doc(hidden)]
    pub last_modification_time: std::option::Option<aws_smithy_types::DateTime>,
}
impl RegisterAccountOutput {
    /// <p> The status of registering your Amazon Web Services account, IAM role, and Timestream resources. </p>
    pub fn register_account_status(
        &self,
    ) -> std::option::Option<&crate::model::RegistrationStatus> {
        self.register_account_status.as_ref()
    }
    /// <p>The registered Amazon Timestream resources that Amazon Web Services IoT FleetWise edge agent software can transfer your vehicle data to.</p>
    pub fn timestream_resources(&self) -> std::option::Option<&crate::model::TimestreamResources> {
        self.timestream_resources.as_ref()
    }
    /// <p> The registered IAM resource that allows Amazon Web Services IoT FleetWise to send data to Amazon Timestream. </p>
    pub fn iam_resources(&self) -> std::option::Option<&crate::model::IamResources> {
        self.iam_resources.as_ref()
    }
    /// <p> The time the account was registered, in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p> The time this registration was last updated, in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    pub fn last_modification_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modification_time.as_ref()
    }
}
/// See [`RegisterAccountOutput`](crate::output::RegisterAccountOutput).
pub mod register_account_output {

    /// A builder for [`RegisterAccountOutput`](crate::output::RegisterAccountOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) register_account_status: std::option::Option<crate::model::RegistrationStatus>,
        pub(crate) timestream_resources: std::option::Option<crate::model::TimestreamResources>,
        pub(crate) iam_resources: std::option::Option<crate::model::IamResources>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modification_time: std::option::Option<aws_smithy_types::DateTime>,
    }
    impl Builder {
        /// <p> The status of registering your Amazon Web Services account, IAM role, and Timestream resources. </p>
        pub fn register_account_status(mut self, input: crate::model::RegistrationStatus) -> Self {
            self.register_account_status = Some(input);
            self
        }
        /// <p> The status of registering your Amazon Web Services account, IAM role, and Timestream resources. </p>
        pub fn set_register_account_status(
            mut self,
            input: std::option::Option<crate::model::RegistrationStatus>,
        ) -> Self {
            self.register_account_status = input;
            self
        }
        /// <p>The registered Amazon Timestream resources that Amazon Web Services IoT FleetWise edge agent software can transfer your vehicle data to.</p>
        pub fn timestream_resources(mut self, input: crate::model::TimestreamResources) -> Self {
            self.timestream_resources = Some(input);
            self
        }
        /// <p>The registered Amazon Timestream resources that Amazon Web Services IoT FleetWise edge agent software can transfer your vehicle data to.</p>
        pub fn set_timestream_resources(
            mut self,
            input: std::option::Option<crate::model::TimestreamResources>,
        ) -> Self {
            self.timestream_resources = input;
            self
        }
        /// <p> The registered IAM resource that allows Amazon Web Services IoT FleetWise to send data to Amazon Timestream. </p>
        pub fn iam_resources(mut self, input: crate::model::IamResources) -> Self {
            self.iam_resources = Some(input);
            self
        }
        /// <p> The registered IAM resource that allows Amazon Web Services IoT FleetWise to send data to Amazon Timestream. </p>
        pub fn set_iam_resources(
            mut self,
            input: std::option::Option<crate::model::IamResources>,
        ) -> Self {
            self.iam_resources = input;
            self
        }
        /// <p> The time the account was registered, in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p> The time the account was registered, in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p> The time this registration was last updated, in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn last_modification_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modification_time = Some(input);
            self
        }
        /// <p> The time this registration was last updated, in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn set_last_modification_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modification_time = input;
            self
        }
        /// Consumes the builder and constructs a [`RegisterAccountOutput`](crate::output::RegisterAccountOutput).
        pub fn build(self) -> crate::output::RegisterAccountOutput {
            crate::output::RegisterAccountOutput {
                register_account_status: self.register_account_status,
                timestream_resources: self.timestream_resources,
                iam_resources: self.iam_resources,
                creation_time: self.creation_time,
                last_modification_time: self.last_modification_time,
            }
        }
    }
}
impl RegisterAccountOutput {
    /// Creates a new builder-style object to manufacture [`RegisterAccountOutput`](crate::output::RegisterAccountOutput).
    pub fn builder() -> crate::output::register_account_output::Builder {
        crate::output::register_account_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct PutLoggingOptionsOutput {}
/// See [`PutLoggingOptionsOutput`](crate::output::PutLoggingOptionsOutput).
pub mod put_logging_options_output {

    /// A builder for [`PutLoggingOptionsOutput`](crate::output::PutLoggingOptionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {}
    impl Builder {
        /// Consumes the builder and constructs a [`PutLoggingOptionsOutput`](crate::output::PutLoggingOptionsOutput).
        pub fn build(self) -> crate::output::PutLoggingOptionsOutput {
            crate::output::PutLoggingOptionsOutput {}
        }
    }
}
impl PutLoggingOptionsOutput {
    /// Creates a new builder-style object to manufacture [`PutLoggingOptionsOutput`](crate::output::PutLoggingOptionsOutput).
    pub fn builder() -> crate::output::put_logging_options_output::Builder {
        crate::output::put_logging_options_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct ListTagsForResourceOutput {
    /// <p>The list of tags assigned to the resource.</p>
    #[doc(hidden)]
    pub tags: std::option::Option<std::vec::Vec<crate::model::Tag>>,
}
impl ListTagsForResourceOutput {
    /// <p>The list of tags assigned to the resource.</p>
    pub fn tags(&self) -> std::option::Option<&[crate::model::Tag]> {
        self.tags.as_deref()
    }
}
/// See [`ListTagsForResourceOutput`](crate::output::ListTagsForResourceOutput).
pub mod list_tags_for_resource_output {

    /// A builder for [`ListTagsForResourceOutput`](crate::output::ListTagsForResourceOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) tags: std::option::Option<std::vec::Vec<crate::model::Tag>>,
    }
    impl Builder {
        /// Appends an item to `tags`.
        ///
        /// To override the contents of this collection use [`set_tags`](Self::set_tags).
        ///
        /// <p>The list of tags assigned to the resource.</p>
        pub fn tags(mut self, input: crate::model::Tag) -> Self {
            let mut v = self.tags.unwrap_or_default();
            v.push(input);
            self.tags = Some(v);
            self
        }
        /// <p>The list of tags assigned to the resource.</p>
        pub fn set_tags(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::Tag>>,
        ) -> Self {
            self.tags = input;
            self
        }
        /// Consumes the builder and constructs a [`ListTagsForResourceOutput`](crate::output::ListTagsForResourceOutput).
        pub fn build(self) -> crate::output::ListTagsForResourceOutput {
            crate::output::ListTagsForResourceOutput { tags: self.tags }
        }
    }
}
impl ListTagsForResourceOutput {
    /// Creates a new builder-style object to manufacture [`ListTagsForResourceOutput`](crate::output::ListTagsForResourceOutput).
    pub fn builder() -> crate::output::list_tags_for_resource_output::Builder {
        crate::output::list_tags_for_resource_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetVehicleStatusOutput {
    /// <p> Lists information about the state of the vehicle with deployed campaigns. </p>
    #[doc(hidden)]
    pub campaigns: std::option::Option<std::vec::Vec<crate::model::VehicleStatus>>,
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    #[doc(hidden)]
    pub next_token: std::option::Option<std::string::String>,
}
impl GetVehicleStatusOutput {
    /// <p> Lists information about the state of the vehicle with deployed campaigns. </p>
    pub fn campaigns(&self) -> std::option::Option<&[crate::model::VehicleStatus]> {
        self.campaigns.as_deref()
    }
    /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
    pub fn next_token(&self) -> std::option::Option<&str> {
        self.next_token.as_deref()
    }
}
/// See [`GetVehicleStatusOutput`](crate::output::GetVehicleStatusOutput).
pub mod get_vehicle_status_output {

    /// A builder for [`GetVehicleStatusOutput`](crate::output::GetVehicleStatusOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) campaigns: std::option::Option<std::vec::Vec<crate::model::VehicleStatus>>,
        pub(crate) next_token: std::option::Option<std::string::String>,
    }
    impl Builder {
        /// Appends an item to `campaigns`.
        ///
        /// To override the contents of this collection use [`set_campaigns`](Self::set_campaigns).
        ///
        /// <p> Lists information about the state of the vehicle with deployed campaigns. </p>
        pub fn campaigns(mut self, input: crate::model::VehicleStatus) -> Self {
            let mut v = self.campaigns.unwrap_or_default();
            v.push(input);
            self.campaigns = Some(v);
            self
        }
        /// <p> Lists information about the state of the vehicle with deployed campaigns. </p>
        pub fn set_campaigns(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::VehicleStatus>>,
        ) -> Self {
            self.campaigns = input;
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn next_token(mut self, input: impl Into<std::string::String>) -> Self {
            self.next_token = Some(input.into());
            self
        }
        /// <p> The token to retrieve the next set of results, or <code>null</code> if there are no more results. </p>
        pub fn set_next_token(mut self, input: std::option::Option<std::string::String>) -> Self {
            self.next_token = input;
            self
        }
        /// Consumes the builder and constructs a [`GetVehicleStatusOutput`](crate::output::GetVehicleStatusOutput).
        pub fn build(self) -> crate::output::GetVehicleStatusOutput {
            crate::output::GetVehicleStatusOutput {
                campaigns: self.campaigns,
                next_token: self.next_token,
            }
        }
    }
}
impl GetVehicleStatusOutput {
    /// Creates a new builder-style object to manufacture [`GetVehicleStatusOutput`](crate::output::GetVehicleStatusOutput).
    pub fn builder() -> crate::output::get_vehicle_status_output::Builder {
        crate::output::get_vehicle_status_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetRegisterAccountStatusOutput {
    /// <p> The unique ID of the Amazon Web Services account, provided at account creation. </p>
    #[doc(hidden)]
    pub customer_account_id: std::option::Option<std::string::String>,
    /// <p> The status of registering your account and resources. The status can be one of:</p>
    /// <ul>
    /// <li> <p> <code>REGISTRATION_SUCCESS</code> - The Amazon Web Services resource is successfully registered.</p> </li>
    /// <li> <p> <code>REGISTRATION_PENDING</code> - Amazon Web Services IoT FleetWise is processing the registration request. This process takes approximately five minutes to complete.</p> </li>
    /// <li> <p> <code>REGISTRATION_FAILURE</code> - Amazon Web Services IoT FleetWise can't register the AWS resource. Try again later.</p> </li>
    /// </ul>
    #[doc(hidden)]
    pub account_status: std::option::Option<crate::model::RegistrationStatus>,
    /// <p> Information about the registered Amazon Timestream resources or errors, if any.</p>
    #[doc(hidden)]
    pub timestream_registration_response:
        std::option::Option<crate::model::TimestreamRegistrationResponse>,
    /// <p> Information about the registered IAM resources or errors, if any. </p>
    #[doc(hidden)]
    pub iam_registration_response: std::option::Option<crate::model::IamRegistrationResponse>,
    /// <p> The time the account was registered, in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    #[doc(hidden)]
    pub creation_time: std::option::Option<aws_smithy_types::DateTime>,
    /// <p> The time this registration was last updated, in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    #[doc(hidden)]
    pub last_modification_time: std::option::Option<aws_smithy_types::DateTime>,
}
impl GetRegisterAccountStatusOutput {
    /// <p> The unique ID of the Amazon Web Services account, provided at account creation. </p>
    pub fn customer_account_id(&self) -> std::option::Option<&str> {
        self.customer_account_id.as_deref()
    }
    /// <p> The status of registering your account and resources. The status can be one of:</p>
    /// <ul>
    /// <li> <p> <code>REGISTRATION_SUCCESS</code> - The Amazon Web Services resource is successfully registered.</p> </li>
    /// <li> <p> <code>REGISTRATION_PENDING</code> - Amazon Web Services IoT FleetWise is processing the registration request. This process takes approximately five minutes to complete.</p> </li>
    /// <li> <p> <code>REGISTRATION_FAILURE</code> - Amazon Web Services IoT FleetWise can't register the AWS resource. Try again later.</p> </li>
    /// </ul>
    pub fn account_status(&self) -> std::option::Option<&crate::model::RegistrationStatus> {
        self.account_status.as_ref()
    }
    /// <p> Information about the registered Amazon Timestream resources or errors, if any.</p>
    pub fn timestream_registration_response(
        &self,
    ) -> std::option::Option<&crate::model::TimestreamRegistrationResponse> {
        self.timestream_registration_response.as_ref()
    }
    /// <p> Information about the registered IAM resources or errors, if any. </p>
    pub fn iam_registration_response(
        &self,
    ) -> std::option::Option<&crate::model::IamRegistrationResponse> {
        self.iam_registration_response.as_ref()
    }
    /// <p> The time the account was registered, in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    pub fn creation_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p> The time this registration was last updated, in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
    pub fn last_modification_time(&self) -> std::option::Option<&aws_smithy_types::DateTime> {
        self.last_modification_time.as_ref()
    }
}
/// See [`GetRegisterAccountStatusOutput`](crate::output::GetRegisterAccountStatusOutput).
pub mod get_register_account_status_output {

    /// A builder for [`GetRegisterAccountStatusOutput`](crate::output::GetRegisterAccountStatusOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) customer_account_id: std::option::Option<std::string::String>,
        pub(crate) account_status: std::option::Option<crate::model::RegistrationStatus>,
        pub(crate) timestream_registration_response:
            std::option::Option<crate::model::TimestreamRegistrationResponse>,
        pub(crate) iam_registration_response:
            std::option::Option<crate::model::IamRegistrationResponse>,
        pub(crate) creation_time: std::option::Option<aws_smithy_types::DateTime>,
        pub(crate) last_modification_time: std::option::Option<aws_smithy_types::DateTime>,
    }
    impl Builder {
        /// <p> The unique ID of the Amazon Web Services account, provided at account creation. </p>
        pub fn customer_account_id(mut self, input: impl Into<std::string::String>) -> Self {
            self.customer_account_id = Some(input.into());
            self
        }
        /// <p> The unique ID of the Amazon Web Services account, provided at account creation. </p>
        pub fn set_customer_account_id(
            mut self,
            input: std::option::Option<std::string::String>,
        ) -> Self {
            self.customer_account_id = input;
            self
        }
        /// <p> The status of registering your account and resources. The status can be one of:</p>
        /// <ul>
        /// <li> <p> <code>REGISTRATION_SUCCESS</code> - The Amazon Web Services resource is successfully registered.</p> </li>
        /// <li> <p> <code>REGISTRATION_PENDING</code> - Amazon Web Services IoT FleetWise is processing the registration request. This process takes approximately five minutes to complete.</p> </li>
        /// <li> <p> <code>REGISTRATION_FAILURE</code> - Amazon Web Services IoT FleetWise can't register the AWS resource. Try again later.</p> </li>
        /// </ul>
        pub fn account_status(mut self, input: crate::model::RegistrationStatus) -> Self {
            self.account_status = Some(input);
            self
        }
        /// <p> The status of registering your account and resources. The status can be one of:</p>
        /// <ul>
        /// <li> <p> <code>REGISTRATION_SUCCESS</code> - The Amazon Web Services resource is successfully registered.</p> </li>
        /// <li> <p> <code>REGISTRATION_PENDING</code> - Amazon Web Services IoT FleetWise is processing the registration request. This process takes approximately five minutes to complete.</p> </li>
        /// <li> <p> <code>REGISTRATION_FAILURE</code> - Amazon Web Services IoT FleetWise can't register the AWS resource. Try again later.</p> </li>
        /// </ul>
        pub fn set_account_status(
            mut self,
            input: std::option::Option<crate::model::RegistrationStatus>,
        ) -> Self {
            self.account_status = input;
            self
        }
        /// <p> Information about the registered Amazon Timestream resources or errors, if any.</p>
        pub fn timestream_registration_response(
            mut self,
            input: crate::model::TimestreamRegistrationResponse,
        ) -> Self {
            self.timestream_registration_response = Some(input);
            self
        }
        /// <p> Information about the registered Amazon Timestream resources or errors, if any.</p>
        pub fn set_timestream_registration_response(
            mut self,
            input: std::option::Option<crate::model::TimestreamRegistrationResponse>,
        ) -> Self {
            self.timestream_registration_response = input;
            self
        }
        /// <p> Information about the registered IAM resources or errors, if any. </p>
        pub fn iam_registration_response(
            mut self,
            input: crate::model::IamRegistrationResponse,
        ) -> Self {
            self.iam_registration_response = Some(input);
            self
        }
        /// <p> Information about the registered IAM resources or errors, if any. </p>
        pub fn set_iam_registration_response(
            mut self,
            input: std::option::Option<crate::model::IamRegistrationResponse>,
        ) -> Self {
            self.iam_registration_response = input;
            self
        }
        /// <p> The time the account was registered, in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn creation_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.creation_time = Some(input);
            self
        }
        /// <p> The time the account was registered, in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn set_creation_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.creation_time = input;
            self
        }
        /// <p> The time this registration was last updated, in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn last_modification_time(mut self, input: aws_smithy_types::DateTime) -> Self {
            self.last_modification_time = Some(input);
            self
        }
        /// <p> The time this registration was last updated, in seconds since epoch (January 1, 1970 at midnight UTC time). </p>
        pub fn set_last_modification_time(
            mut self,
            input: std::option::Option<aws_smithy_types::DateTime>,
        ) -> Self {
            self.last_modification_time = input;
            self
        }
        /// Consumes the builder and constructs a [`GetRegisterAccountStatusOutput`](crate::output::GetRegisterAccountStatusOutput).
        pub fn build(self) -> crate::output::GetRegisterAccountStatusOutput {
            crate::output::GetRegisterAccountStatusOutput {
                customer_account_id: self.customer_account_id,
                account_status: self.account_status,
                timestream_registration_response: self.timestream_registration_response,
                iam_registration_response: self.iam_registration_response,
                creation_time: self.creation_time,
                last_modification_time: self.last_modification_time,
            }
        }
    }
}
impl GetRegisterAccountStatusOutput {
    /// Creates a new builder-style object to manufacture [`GetRegisterAccountStatusOutput`](crate::output::GetRegisterAccountStatusOutput).
    pub fn builder() -> crate::output::get_register_account_status_output::Builder {
        crate::output::get_register_account_status_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct GetLoggingOptionsOutput {
    /// <p>Returns information about log delivery to Amazon CloudWatch Logs.</p>
    #[doc(hidden)]
    pub cloud_watch_log_delivery: std::option::Option<crate::model::CloudWatchLogDeliveryOptions>,
}
impl GetLoggingOptionsOutput {
    /// <p>Returns information about log delivery to Amazon CloudWatch Logs.</p>
    pub fn cloud_watch_log_delivery(
        &self,
    ) -> std::option::Option<&crate::model::CloudWatchLogDeliveryOptions> {
        self.cloud_watch_log_delivery.as_ref()
    }
}
/// See [`GetLoggingOptionsOutput`](crate::output::GetLoggingOptionsOutput).
pub mod get_logging_options_output {

    /// A builder for [`GetLoggingOptionsOutput`](crate::output::GetLoggingOptionsOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) cloud_watch_log_delivery:
            std::option::Option<crate::model::CloudWatchLogDeliveryOptions>,
    }
    impl Builder {
        /// <p>Returns information about log delivery to Amazon CloudWatch Logs.</p>
        pub fn cloud_watch_log_delivery(
            mut self,
            input: crate::model::CloudWatchLogDeliveryOptions,
        ) -> Self {
            self.cloud_watch_log_delivery = Some(input);
            self
        }
        /// <p>Returns information about log delivery to Amazon CloudWatch Logs.</p>
        pub fn set_cloud_watch_log_delivery(
            mut self,
            input: std::option::Option<crate::model::CloudWatchLogDeliveryOptions>,
        ) -> Self {
            self.cloud_watch_log_delivery = input;
            self
        }
        /// Consumes the builder and constructs a [`GetLoggingOptionsOutput`](crate::output::GetLoggingOptionsOutput).
        pub fn build(self) -> crate::output::GetLoggingOptionsOutput {
            crate::output::GetLoggingOptionsOutput {
                cloud_watch_log_delivery: self.cloud_watch_log_delivery,
            }
        }
    }
}
impl GetLoggingOptionsOutput {
    /// Creates a new builder-style object to manufacture [`GetLoggingOptionsOutput`](crate::output::GetLoggingOptionsOutput).
    pub fn builder() -> crate::output::get_logging_options_output::Builder {
        crate::output::get_logging_options_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct BatchUpdateVehicleOutput {
    /// <p> A list of information about the batch of updated vehicles. </p> <note>
    /// <p>This list contains only unique IDs for the vehicles that were updated.</p>
    /// </note>
    #[doc(hidden)]
    pub vehicles: std::option::Option<std::vec::Vec<crate::model::UpdateVehicleResponseItem>>,
    /// <p>A list of information about errors returned while updating a batch of vehicles, or, if there aren't any errors, an empty list.</p>
    #[doc(hidden)]
    pub errors: std::option::Option<std::vec::Vec<crate::model::UpdateVehicleError>>,
}
impl BatchUpdateVehicleOutput {
    /// <p> A list of information about the batch of updated vehicles. </p> <note>
    /// <p>This list contains only unique IDs for the vehicles that were updated.</p>
    /// </note>
    pub fn vehicles(&self) -> std::option::Option<&[crate::model::UpdateVehicleResponseItem]> {
        self.vehicles.as_deref()
    }
    /// <p>A list of information about errors returned while updating a batch of vehicles, or, if there aren't any errors, an empty list.</p>
    pub fn errors(&self) -> std::option::Option<&[crate::model::UpdateVehicleError]> {
        self.errors.as_deref()
    }
}
/// See [`BatchUpdateVehicleOutput`](crate::output::BatchUpdateVehicleOutput).
pub mod batch_update_vehicle_output {

    /// A builder for [`BatchUpdateVehicleOutput`](crate::output::BatchUpdateVehicleOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) vehicles:
            std::option::Option<std::vec::Vec<crate::model::UpdateVehicleResponseItem>>,
        pub(crate) errors: std::option::Option<std::vec::Vec<crate::model::UpdateVehicleError>>,
    }
    impl Builder {
        /// Appends an item to `vehicles`.
        ///
        /// To override the contents of this collection use [`set_vehicles`](Self::set_vehicles).
        ///
        /// <p> A list of information about the batch of updated vehicles. </p> <note>
        /// <p>This list contains only unique IDs for the vehicles that were updated.</p>
        /// </note>
        pub fn vehicles(mut self, input: crate::model::UpdateVehicleResponseItem) -> Self {
            let mut v = self.vehicles.unwrap_or_default();
            v.push(input);
            self.vehicles = Some(v);
            self
        }
        /// <p> A list of information about the batch of updated vehicles. </p> <note>
        /// <p>This list contains only unique IDs for the vehicles that were updated.</p>
        /// </note>
        pub fn set_vehicles(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::UpdateVehicleResponseItem>>,
        ) -> Self {
            self.vehicles = input;
            self
        }
        /// Appends an item to `errors`.
        ///
        /// To override the contents of this collection use [`set_errors`](Self::set_errors).
        ///
        /// <p>A list of information about errors returned while updating a batch of vehicles, or, if there aren't any errors, an empty list.</p>
        pub fn errors(mut self, input: crate::model::UpdateVehicleError) -> Self {
            let mut v = self.errors.unwrap_or_default();
            v.push(input);
            self.errors = Some(v);
            self
        }
        /// <p>A list of information about errors returned while updating a batch of vehicles, or, if there aren't any errors, an empty list.</p>
        pub fn set_errors(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::UpdateVehicleError>>,
        ) -> Self {
            self.errors = input;
            self
        }
        /// Consumes the builder and constructs a [`BatchUpdateVehicleOutput`](crate::output::BatchUpdateVehicleOutput).
        pub fn build(self) -> crate::output::BatchUpdateVehicleOutput {
            crate::output::BatchUpdateVehicleOutput {
                vehicles: self.vehicles,
                errors: self.errors,
            }
        }
    }
}
impl BatchUpdateVehicleOutput {
    /// Creates a new builder-style object to manufacture [`BatchUpdateVehicleOutput`](crate::output::BatchUpdateVehicleOutput).
    pub fn builder() -> crate::output::batch_update_vehicle_output::Builder {
        crate::output::batch_update_vehicle_output::Builder::default()
    }
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct BatchCreateVehicleOutput {
    /// <p> A list of information about a batch of created vehicles. For more information, see the API data type.</p>
    #[doc(hidden)]
    pub vehicles: std::option::Option<std::vec::Vec<crate::model::CreateVehicleResponseItem>>,
    /// <p>A list of information about creation errors, or an empty list if there aren't any errors. </p>
    #[doc(hidden)]
    pub errors: std::option::Option<std::vec::Vec<crate::model::CreateVehicleError>>,
}
impl BatchCreateVehicleOutput {
    /// <p> A list of information about a batch of created vehicles. For more information, see the API data type.</p>
    pub fn vehicles(&self) -> std::option::Option<&[crate::model::CreateVehicleResponseItem]> {
        self.vehicles.as_deref()
    }
    /// <p>A list of information about creation errors, or an empty list if there aren't any errors. </p>
    pub fn errors(&self) -> std::option::Option<&[crate::model::CreateVehicleError]> {
        self.errors.as_deref()
    }
}
/// See [`BatchCreateVehicleOutput`](crate::output::BatchCreateVehicleOutput).
pub mod batch_create_vehicle_output {

    /// A builder for [`BatchCreateVehicleOutput`](crate::output::BatchCreateVehicleOutput).
    #[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
    pub struct Builder {
        pub(crate) vehicles:
            std::option::Option<std::vec::Vec<crate::model::CreateVehicleResponseItem>>,
        pub(crate) errors: std::option::Option<std::vec::Vec<crate::model::CreateVehicleError>>,
    }
    impl Builder {
        /// Appends an item to `vehicles`.
        ///
        /// To override the contents of this collection use [`set_vehicles`](Self::set_vehicles).
        ///
        /// <p> A list of information about a batch of created vehicles. For more information, see the API data type.</p>
        pub fn vehicles(mut self, input: crate::model::CreateVehicleResponseItem) -> Self {
            let mut v = self.vehicles.unwrap_or_default();
            v.push(input);
            self.vehicles = Some(v);
            self
        }
        /// <p> A list of information about a batch of created vehicles. For more information, see the API data type.</p>
        pub fn set_vehicles(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::CreateVehicleResponseItem>>,
        ) -> Self {
            self.vehicles = input;
            self
        }
        /// Appends an item to `errors`.
        ///
        /// To override the contents of this collection use [`set_errors`](Self::set_errors).
        ///
        /// <p>A list of information about creation errors, or an empty list if there aren't any errors. </p>
        pub fn errors(mut self, input: crate::model::CreateVehicleError) -> Self {
            let mut v = self.errors.unwrap_or_default();
            v.push(input);
            self.errors = Some(v);
            self
        }
        /// <p>A list of information about creation errors, or an empty list if there aren't any errors. </p>
        pub fn set_errors(
            mut self,
            input: std::option::Option<std::vec::Vec<crate::model::CreateVehicleError>>,
        ) -> Self {
            self.errors = input;
            self
        }
        /// Consumes the builder and constructs a [`BatchCreateVehicleOutput`](crate::output::BatchCreateVehicleOutput).
        pub fn build(self) -> crate::output::BatchCreateVehicleOutput {
            crate::output::BatchCreateVehicleOutput {
                vehicles: self.vehicles,
                errors: self.errors,
            }
        }
    }
}
impl BatchCreateVehicleOutput {
    /// Creates a new builder-style object to manufacture [`BatchCreateVehicleOutput`](crate::output::BatchCreateVehicleOutput).
    pub fn builder() -> crate::output::batch_create_vehicle_output::Builder {
        crate::output::batch_create_vehicle_output::Builder::default()
    }
}