aws_sdk_applicationautoscaling/operation/get_predictive_scaling_forecast/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::get_predictive_scaling_forecast::_get_predictive_scaling_forecast_output::GetPredictiveScalingForecastOutputBuilder;
3
4pub use crate::operation::get_predictive_scaling_forecast::_get_predictive_scaling_forecast_input::GetPredictiveScalingForecastInputBuilder;
5
6impl crate::operation::get_predictive_scaling_forecast::builders::GetPredictiveScalingForecastInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::get_predictive_scaling_forecast::GetPredictiveScalingForecastOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::get_predictive_scaling_forecast::GetPredictiveScalingForecastError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.get_predictive_scaling_forecast();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `GetPredictiveScalingForecast`.
24///
25/// <p>Retrieves the forecast data for a predictive scaling policy.</p>
26/// <p>Load forecasts are predictions of the hourly load values using historical load data from CloudWatch and an analysis of historical trends. Capacity forecasts are represented as predicted values for the minimum capacity that is needed on an hourly basis, based on the hourly load forecast.</p>
27/// <p>A minimum of 24 hours of data is required to create the initial forecasts. However, having a full 14 days of historical data results in more accurate forecasts.</p>
28#[derive(::std::clone::Clone, ::std::fmt::Debug)]
29pub struct GetPredictiveScalingForecastFluentBuilder {
30    handle: ::std::sync::Arc<crate::client::Handle>,
31    inner: crate::operation::get_predictive_scaling_forecast::builders::GetPredictiveScalingForecastInputBuilder,
32    config_override: ::std::option::Option<crate::config::Builder>,
33}
34impl
35    crate::client::customize::internal::CustomizableSend<
36        crate::operation::get_predictive_scaling_forecast::GetPredictiveScalingForecastOutput,
37        crate::operation::get_predictive_scaling_forecast::GetPredictiveScalingForecastError,
38    > for GetPredictiveScalingForecastFluentBuilder
39{
40    fn send(
41        self,
42        config_override: crate::config::Builder,
43    ) -> crate::client::customize::internal::BoxFuture<
44        crate::client::customize::internal::SendResult<
45            crate::operation::get_predictive_scaling_forecast::GetPredictiveScalingForecastOutput,
46            crate::operation::get_predictive_scaling_forecast::GetPredictiveScalingForecastError,
47        >,
48    > {
49        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
50    }
51}
52impl GetPredictiveScalingForecastFluentBuilder {
53    /// Creates a new `GetPredictiveScalingForecastFluentBuilder`.
54    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
55        Self {
56            handle,
57            inner: ::std::default::Default::default(),
58            config_override: ::std::option::Option::None,
59        }
60    }
61    /// Access the GetPredictiveScalingForecast as a reference.
62    pub fn as_input(&self) -> &crate::operation::get_predictive_scaling_forecast::builders::GetPredictiveScalingForecastInputBuilder {
63        &self.inner
64    }
65    /// Sends the request and returns the response.
66    ///
67    /// If an error occurs, an `SdkError` will be returned with additional details that
68    /// can be matched against.
69    ///
70    /// By default, any retryable failures will be retried twice. Retry behavior
71    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
72    /// set when configuring the client.
73    pub async fn send(
74        self,
75    ) -> ::std::result::Result<
76        crate::operation::get_predictive_scaling_forecast::GetPredictiveScalingForecastOutput,
77        ::aws_smithy_runtime_api::client::result::SdkError<
78            crate::operation::get_predictive_scaling_forecast::GetPredictiveScalingForecastError,
79            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
80        >,
81    > {
82        let input = self
83            .inner
84            .build()
85            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
86        let runtime_plugins = crate::operation::get_predictive_scaling_forecast::GetPredictiveScalingForecast::operation_runtime_plugins(
87            self.handle.runtime_plugins.clone(),
88            &self.handle.conf,
89            self.config_override,
90        );
91        crate::operation::get_predictive_scaling_forecast::GetPredictiveScalingForecast::orchestrate(&runtime_plugins, input).await
92    }
93
94    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
95    pub fn customize(
96        self,
97    ) -> crate::client::customize::CustomizableOperation<
98        crate::operation::get_predictive_scaling_forecast::GetPredictiveScalingForecastOutput,
99        crate::operation::get_predictive_scaling_forecast::GetPredictiveScalingForecastError,
100        Self,
101    > {
102        crate::client::customize::CustomizableOperation::new(self)
103    }
104    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
105        self.set_config_override(::std::option::Option::Some(config_override.into()));
106        self
107    }
108
109    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
110        self.config_override = config_override;
111        self
112    }
113    /// <p>The namespace of the Amazon Web Services service that provides the resource. For a resource provided by your own application or service, use <code>custom-resource</code> instead.</p>
114    pub fn service_namespace(mut self, input: crate::types::ServiceNamespace) -> Self {
115        self.inner = self.inner.service_namespace(input);
116        self
117    }
118    /// <p>The namespace of the Amazon Web Services service that provides the resource. For a resource provided by your own application or service, use <code>custom-resource</code> instead.</p>
119    pub fn set_service_namespace(mut self, input: ::std::option::Option<crate::types::ServiceNamespace>) -> Self {
120        self.inner = self.inner.set_service_namespace(input);
121        self
122    }
123    /// <p>The namespace of the Amazon Web Services service that provides the resource. For a resource provided by your own application or service, use <code>custom-resource</code> instead.</p>
124    pub fn get_service_namespace(&self) -> &::std::option::Option<crate::types::ServiceNamespace> {
125        self.inner.get_service_namespace()
126    }
127    /// <p>The identifier of the resource.</p>
128    pub fn resource_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
129        self.inner = self.inner.resource_id(input.into());
130        self
131    }
132    /// <p>The identifier of the resource.</p>
133    pub fn set_resource_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
134        self.inner = self.inner.set_resource_id(input);
135        self
136    }
137    /// <p>The identifier of the resource.</p>
138    pub fn get_resource_id(&self) -> &::std::option::Option<::std::string::String> {
139        self.inner.get_resource_id()
140    }
141    /// <p>The scalable dimension.</p>
142    pub fn scalable_dimension(mut self, input: crate::types::ScalableDimension) -> Self {
143        self.inner = self.inner.scalable_dimension(input);
144        self
145    }
146    /// <p>The scalable dimension.</p>
147    pub fn set_scalable_dimension(mut self, input: ::std::option::Option<crate::types::ScalableDimension>) -> Self {
148        self.inner = self.inner.set_scalable_dimension(input);
149        self
150    }
151    /// <p>The scalable dimension.</p>
152    pub fn get_scalable_dimension(&self) -> &::std::option::Option<crate::types::ScalableDimension> {
153        self.inner.get_scalable_dimension()
154    }
155    /// <p>The name of the policy.</p>
156    pub fn policy_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
157        self.inner = self.inner.policy_name(input.into());
158        self
159    }
160    /// <p>The name of the policy.</p>
161    pub fn set_policy_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
162        self.inner = self.inner.set_policy_name(input);
163        self
164    }
165    /// <p>The name of the policy.</p>
166    pub fn get_policy_name(&self) -> &::std::option::Option<::std::string::String> {
167        self.inner.get_policy_name()
168    }
169    /// <p>The inclusive start time of the time range for the forecast data to get. At most, the date and time can be one year before the current date and time</p>
170    pub fn start_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
171        self.inner = self.inner.start_time(input);
172        self
173    }
174    /// <p>The inclusive start time of the time range for the forecast data to get. At most, the date and time can be one year before the current date and time</p>
175    pub fn set_start_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
176        self.inner = self.inner.set_start_time(input);
177        self
178    }
179    /// <p>The inclusive start time of the time range for the forecast data to get. At most, the date and time can be one year before the current date and time</p>
180    pub fn get_start_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
181        self.inner.get_start_time()
182    }
183    /// <p>The exclusive end time of the time range for the forecast data to get. The maximum time duration between the start and end time is 30 days.</p>
184    pub fn end_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
185        self.inner = self.inner.end_time(input);
186        self
187    }
188    /// <p>The exclusive end time of the time range for the forecast data to get. The maximum time duration between the start and end time is 30 days.</p>
189    pub fn set_end_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
190        self.inner = self.inner.set_end_time(input);
191        self
192    }
193    /// <p>The exclusive end time of the time range for the forecast data to get. The maximum time duration between the start and end time is 30 days.</p>
194    pub fn get_end_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
195        self.inner.get_end_time()
196    }
197}