aws-sdk-storagegateway 1.115.0

AWS SDK for AWS Storage Gateway
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::describe_bandwidth_rate_limit_schedule::_describe_bandwidth_rate_limit_schedule_input::DescribeBandwidthRateLimitScheduleInputBuilder;

pub use crate::operation::describe_bandwidth_rate_limit_schedule::_describe_bandwidth_rate_limit_schedule_output::DescribeBandwidthRateLimitScheduleOutputBuilder;

impl crate::operation::describe_bandwidth_rate_limit_schedule::builders::DescribeBandwidthRateLimitScheduleInputBuilder {
    /// Sends a request with this input using the given client.
    pub async fn send_with(
        self,
        client: &crate::Client,
    ) -> ::std::result::Result<
        crate::operation::describe_bandwidth_rate_limit_schedule::DescribeBandwidthRateLimitScheduleOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::describe_bandwidth_rate_limit_schedule::DescribeBandwidthRateLimitScheduleError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.describe_bandwidth_rate_limit_schedule();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// Fluent builder constructing a request to `DescribeBandwidthRateLimitSchedule`.
///
/// <p>Returns information about the bandwidth rate limit schedule of a gateway. By default, gateways do not have bandwidth rate limit schedules, which means no bandwidth rate limiting is in effect. This operation is supported only for volume, tape and S3 file gateways. FSx file gateways do not support bandwidth rate limits.</p>
/// <p>This operation returns information about a gateway's bandwidth rate limit schedule. A bandwidth rate limit schedule consists of one or more bandwidth rate limit intervals. A bandwidth rate limit interval defines a period of time on one or more days of the week, during which bandwidth rate limits are specified for uploading, downloading, or both.</p>
/// <p>A bandwidth rate limit interval consists of one or more days of the week, a start hour and minute, an ending hour and minute, and bandwidth rate limits for uploading and downloading</p>
/// <p>If no bandwidth rate limit schedule intervals are set for the gateway, this operation returns an empty response. To specify which gateway to describe, use the Amazon Resource Name (ARN) of the gateway in your request.</p>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct DescribeBandwidthRateLimitScheduleFluentBuilder {
    handle: ::std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::describe_bandwidth_rate_limit_schedule::builders::DescribeBandwidthRateLimitScheduleInputBuilder,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::describe_bandwidth_rate_limit_schedule::DescribeBandwidthRateLimitScheduleOutput,
        crate::operation::describe_bandwidth_rate_limit_schedule::DescribeBandwidthRateLimitScheduleError,
    > for DescribeBandwidthRateLimitScheduleFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::describe_bandwidth_rate_limit_schedule::DescribeBandwidthRateLimitScheduleOutput,
            crate::operation::describe_bandwidth_rate_limit_schedule::DescribeBandwidthRateLimitScheduleError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl DescribeBandwidthRateLimitScheduleFluentBuilder {
    /// Creates a new `DescribeBandwidthRateLimitScheduleFluentBuilder`.
    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 DescribeBandwidthRateLimitSchedule as a reference.
    pub fn as_input(&self) -> &crate::operation::describe_bandwidth_rate_limit_schedule::builders::DescribeBandwidthRateLimitScheduleInputBuilder {
        &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::describe_bandwidth_rate_limit_schedule::DescribeBandwidthRateLimitScheduleOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::describe_bandwidth_rate_limit_schedule::DescribeBandwidthRateLimitScheduleError,
            ::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::describe_bandwidth_rate_limit_schedule::DescribeBandwidthRateLimitSchedule::operation_runtime_plugins(
            self.handle.runtime_plugins.clone(),
            &self.handle.conf,
            self.config_override,
        );
        crate::operation::describe_bandwidth_rate_limit_schedule::DescribeBandwidthRateLimitSchedule::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::describe_bandwidth_rate_limit_schedule::DescribeBandwidthRateLimitScheduleOutput,
        crate::operation::describe_bandwidth_rate_limit_schedule::DescribeBandwidthRateLimitScheduleError,
        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
    }
    /// <p>The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and Amazon Web Services Region.</p>
    pub fn gateway_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.gateway_arn(input.into());
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and Amazon Web Services Region.</p>
    pub fn set_gateway_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_gateway_arn(input);
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and Amazon Web Services Region.</p>
    pub fn get_gateway_arn(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_gateway_arn()
    }
}