// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::start_input_device_maintenance_window::_start_input_device_maintenance_window_output::StartInputDeviceMaintenanceWindowOutputBuilder;
pub use crate::operation::start_input_device_maintenance_window::_start_input_device_maintenance_window_input::StartInputDeviceMaintenanceWindowInputBuilder;
/// Fluent builder constructing a request to `StartInputDeviceMaintenanceWindow`.
///
/// Start a maintenance window for the specified input device. Starting a maintenance window will give the device up to two hours to install software. If the device was streaming prior to the maintenance, it will resume streaming when the software is fully installed. Devices automatically install updates while they are powered on and their MediaLive channels are stopped. A maintenance window allows you to update a device without having to stop MediaLive channels that use the device. The device must remain powered on and connected to the internet for the duration of the maintenance.
#[derive(std::clone::Clone, std::fmt::Debug)]
pub struct StartInputDeviceMaintenanceWindowFluentBuilder {
handle: std::sync::Arc<crate::client::Handle>,
inner: crate::operation::start_input_device_maintenance_window::builders::StartInputDeviceMaintenanceWindowInputBuilder
}
impl StartInputDeviceMaintenanceWindowFluentBuilder {
/// Creates a new `StartInputDeviceMaintenanceWindow`.
pub(crate) fn new(handle: std::sync::Arc<crate::client::Handle>) -> Self {
Self {
handle,
inner: Default::default(),
}
}
/// Consume this builder, creating a customizable operation that can be modified before being
/// sent. The operation's inner [http::Request] can be modified as well.
pub async fn customize(self) -> std::result::Result<
crate::client::customize::CustomizableOperation<crate::operation::start_input_device_maintenance_window::StartInputDeviceMaintenanceWindow, aws_http::retry::AwsResponseRetryClassifier,>,
aws_smithy_http::result::SdkError<crate::operation::start_input_device_maintenance_window::StartInputDeviceMaintenanceWindowError>
>{
let handle = self.handle.clone();
let operation = self
.inner
.build()
.map_err(aws_smithy_http::result::SdkError::construction_failure)?
.make_operation(&handle.conf)
.await
.map_err(aws_smithy_http::result::SdkError::construction_failure)?;
Ok(crate::client::customize::CustomizableOperation { handle, operation })
}
/// Sends the request and returns the response.
///
/// If an error occurs, an `SdkError` will be returned with additional details that
/// can be matched against.
///
/// By default, any retryable failures will be retried twice. Retry behavior
/// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
/// set when configuring the client.
pub async fn send(self) -> std::result::Result<crate::operation::start_input_device_maintenance_window::StartInputDeviceMaintenanceWindowOutput, aws_smithy_http::result::SdkError<crate::operation::start_input_device_maintenance_window::StartInputDeviceMaintenanceWindowError>>
{
let op = self
.inner
.build()
.map_err(aws_smithy_http::result::SdkError::construction_failure)?
.make_operation(&self.handle.conf)
.await
.map_err(aws_smithy_http::result::SdkError::construction_failure)?;
self.handle.client.call(op).await
}
/// The unique ID of the input device to start a maintenance window for. For example, hd-123456789abcdef.
pub fn input_device_id(mut self, input: impl Into<std::string::String>) -> Self {
self.inner = self.inner.input_device_id(input.into());
self
}
/// The unique ID of the input device to start a maintenance window for. For example, hd-123456789abcdef.
pub fn set_input_device_id(mut self, input: std::option::Option<std::string::String>) -> Self {
self.inner = self.inner.set_input_device_id(input);
self
}
}