// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`DescribeDevice`](crate::operation::describe_device::builders::DescribeDeviceFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`device_id(impl Into<String>)`](crate::operation::describe_device::builders::DescribeDeviceFluentBuilder::device_id) / [`set_device_id(Option<String>)`](crate::operation::describe_device::builders::DescribeDeviceFluentBuilder::set_device_id):<br>required: **true**<br><p>The device's ID.</p><br>
/// - On success, responds with [`DescribeDeviceOutput`](crate::operation::describe_device::DescribeDeviceOutput) with field(s):
/// - [`device_id(Option<String>)`](crate::operation::describe_device::DescribeDeviceOutput::device_id): <p>The device's ID.</p>
/// - [`name(Option<String>)`](crate::operation::describe_device::DescribeDeviceOutput::name): <p>The device's name.</p>
/// - [`arn(Option<String>)`](crate::operation::describe_device::DescribeDeviceOutput::arn): <p>The device's ARN.</p>
/// - [`description(Option<String>)`](crate::operation::describe_device::DescribeDeviceOutput::description): <p>The device's description.</p>
/// - [`r#type(Option<DeviceType>)`](crate::operation::describe_device::DescribeDeviceOutput::type): <p>The device's type.</p>
/// - [`device_connection_status(Option<DeviceConnectionStatus>)`](crate::operation::describe_device::DescribeDeviceOutput::device_connection_status): <p>The device's connection status.</p>
/// - [`created_time(Option<DateTime>)`](crate::operation::describe_device::DescribeDeviceOutput::created_time): <p>When the device was created.</p>
/// - [`provisioning_status(Option<DeviceStatus>)`](crate::operation::describe_device::DescribeDeviceOutput::provisioning_status): <p>The device's provisioning status.</p>
/// - [`latest_software(Option<String>)`](crate::operation::describe_device::DescribeDeviceOutput::latest_software): <p>The latest software version available for the device.</p>
/// - [`current_software(Option<String>)`](crate::operation::describe_device::DescribeDeviceOutput::current_software): <p>The device's current software version.</p>
/// - [`serial_number(Option<String>)`](crate::operation::describe_device::DescribeDeviceOutput::serial_number): <p>The device's serial number.</p>
/// - [`tags(Option<HashMap::<String, String>>)`](crate::operation::describe_device::DescribeDeviceOutput::tags): <p>The device's tags.</p>
/// - [`networking_configuration(Option<NetworkPayload>)`](crate::operation::describe_device::DescribeDeviceOutput::networking_configuration): <p>The device's networking configuration.</p>
/// - [`current_networking_status(Option<NetworkStatus>)`](crate::operation::describe_device::DescribeDeviceOutput::current_networking_status): <p>The device's networking status.</p>
/// - [`lease_expiration_time(Option<DateTime>)`](crate::operation::describe_device::DescribeDeviceOutput::lease_expiration_time): <p>The device's lease expiration time.</p>
/// - [`alternate_softwares(Option<Vec::<AlternateSoftwareMetadata>>)`](crate::operation::describe_device::DescribeDeviceOutput::alternate_softwares): <p>Beta software releases available for the device.</p>
/// - [`latest_alternate_software(Option<String>)`](crate::operation::describe_device::DescribeDeviceOutput::latest_alternate_software): <p>The most recent beta software release.</p>
/// - [`brand(Option<DeviceBrand>)`](crate::operation::describe_device::DescribeDeviceOutput::brand): <p>The device's maker.</p>
/// - [`latest_device_job(Option<LatestDeviceJob>)`](crate::operation::describe_device::DescribeDeviceOutput::latest_device_job): <p>A device's latest job. Includes the target image version, and the job status.</p>
/// - [`device_aggregated_status(Option<DeviceAggregatedStatus>)`](crate::operation::describe_device::DescribeDeviceOutput::device_aggregated_status): <p>A device's aggregated status. Including the device's connection status, provisioning status, and lease status.</p>
/// - On failure, responds with [`SdkError<DescribeDeviceError>`](crate::operation::describe_device::DescribeDeviceError)
pub fn describe_device(&self) -> crate::operation::describe_device::builders::DescribeDeviceFluentBuilder {
crate::operation::describe_device::builders::DescribeDeviceFluentBuilder::new(self.handle.clone())
}
}