aws-sdk-medialive 1.97.0

AWS SDK for AWS Elemental MediaLive
Documentation
// 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;

impl crate::operation::start_input_device_maintenance_window::builders::StartInputDeviceMaintenanceWindowInputBuilder {
    /// Sends a request with this input using the given client.
    pub async fn send_with(
        self,
        client: &crate::Client,
    ) -> ::std::result::Result<
        crate::operation::start_input_device_maintenance_window::StartInputDeviceMaintenanceWindowOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::start_input_device_maintenance_window::StartInputDeviceMaintenanceWindowError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.start_input_device_maintenance_window();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// 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,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::start_input_device_maintenance_window::StartInputDeviceMaintenanceWindowOutput,
        crate::operation::start_input_device_maintenance_window::StartInputDeviceMaintenanceWindowError,
    > for StartInputDeviceMaintenanceWindowFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::start_input_device_maintenance_window::StartInputDeviceMaintenanceWindowOutput,
            crate::operation::start_input_device_maintenance_window::StartInputDeviceMaintenanceWindowError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl StartInputDeviceMaintenanceWindowFluentBuilder {
    /// Creates a new `StartInputDeviceMaintenanceWindowFluentBuilder`.
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
        Self {
            handle,
            inner: ::std::default::Default::default(),
            config_override: ::std::option::Option::None,
        }
    }
    /// Access the StartInputDeviceMaintenanceWindow as a reference.
    pub fn as_input(&self) -> &crate::operation::start_input_device_maintenance_window::builders::StartInputDeviceMaintenanceWindowInputBuilder {
        &self.inner
    }
    /// 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_runtime_api::client::result::SdkError<
            crate::operation::start_input_device_maintenance_window::StartInputDeviceMaintenanceWindowError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let input = self
            .inner
            .build()
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
        let runtime_plugins = crate::operation::start_input_device_maintenance_window::StartInputDeviceMaintenanceWindow::operation_runtime_plugins(
            self.handle.runtime_plugins.clone(),
            &self.handle.conf,
            self.config_override,
        );
        crate::operation::start_input_device_maintenance_window::StartInputDeviceMaintenanceWindow::orchestrate(&runtime_plugins, input).await
    }

    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
    pub fn customize(
        self,
    ) -> crate::client::customize::CustomizableOperation<
        crate::operation::start_input_device_maintenance_window::StartInputDeviceMaintenanceWindowOutput,
        crate::operation::start_input_device_maintenance_window::StartInputDeviceMaintenanceWindowError,
        Self,
    > {
        crate::client::customize::CustomizableOperation::new(self)
    }
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
        self.set_config_override(::std::option::Option::Some(config_override.into()));
        self
    }

    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
        self.config_override = config_override;
        self
    }
    /// 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 ::std::convert::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
    }
    /// The unique ID of the input device to start a maintenance window for. For example, hd-123456789abcdef.
    pub fn get_input_device_id(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_input_device_id()
    }
}