aws_sdk_forecast/operation/create_auto_predictor/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_auto_predictor::_create_auto_predictor_output::CreateAutoPredictorOutputBuilder;
3
4pub use crate::operation::create_auto_predictor::_create_auto_predictor_input::CreateAutoPredictorInputBuilder;
5
6impl crate::operation::create_auto_predictor::builders::CreateAutoPredictorInputBuilder {
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::create_auto_predictor::CreateAutoPredictorOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::create_auto_predictor::CreateAutoPredictorError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.create_auto_predictor();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `CreateAutoPredictor`.
24///
25/// <p>Creates an Amazon Forecast predictor.</p>
26/// <p>Amazon Forecast creates predictors with AutoPredictor, which involves applying the optimal combination of algorithms to each time series in your datasets. You can use <code>CreateAutoPredictor</code> to create new predictors or upgrade/retrain existing predictors.</p>
27/// <p><b>Creating new predictors</b></p>
28/// <p>The following parameters are required when creating a new predictor:</p>
29/// <ul>
30/// <li>
31/// <p><code>PredictorName</code> - A unique name for the predictor.</p></li>
32/// <li>
33/// <p><code>DatasetGroupArn</code> - The ARN of the dataset group used to train the predictor.</p></li>
34/// <li>
35/// <p><code>ForecastFrequency</code> - The granularity of your forecasts (hourly, daily, weekly, etc).</p></li>
36/// <li>
37/// <p><code>ForecastHorizon</code> - The number of time-steps that the model predicts. The forecast horizon is also called the prediction length.</p></li>
38/// </ul>
39/// <p>When creating a new predictor, do not specify a value for <code>ReferencePredictorArn</code>.</p>
40/// <p><b>Upgrading and retraining predictors</b></p>
41/// <p>The following parameters are required when retraining or upgrading a predictor:</p>
42/// <ul>
43/// <li>
44/// <p><code>PredictorName</code> - A unique name for the predictor.</p></li>
45/// <li>
46/// <p><code>ReferencePredictorArn</code> - The ARN of the predictor to retrain or upgrade.</p></li>
47/// </ul>
48/// <p>When upgrading or retraining a predictor, only specify values for the <code>ReferencePredictorArn</code> and <code>PredictorName</code>.</p>
49#[derive(::std::clone::Clone, ::std::fmt::Debug)]
50pub struct CreateAutoPredictorFluentBuilder {
51 handle: ::std::sync::Arc<crate::client::Handle>,
52 inner: crate::operation::create_auto_predictor::builders::CreateAutoPredictorInputBuilder,
53 config_override: ::std::option::Option<crate::config::Builder>,
54}
55impl
56 crate::client::customize::internal::CustomizableSend<
57 crate::operation::create_auto_predictor::CreateAutoPredictorOutput,
58 crate::operation::create_auto_predictor::CreateAutoPredictorError,
59 > for CreateAutoPredictorFluentBuilder
60{
61 fn send(
62 self,
63 config_override: crate::config::Builder,
64 ) -> crate::client::customize::internal::BoxFuture<
65 crate::client::customize::internal::SendResult<
66 crate::operation::create_auto_predictor::CreateAutoPredictorOutput,
67 crate::operation::create_auto_predictor::CreateAutoPredictorError,
68 >,
69 > {
70 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
71 }
72}
73impl CreateAutoPredictorFluentBuilder {
74 /// Creates a new `CreateAutoPredictorFluentBuilder`.
75 pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
76 Self {
77 handle,
78 inner: ::std::default::Default::default(),
79 config_override: ::std::option::Option::None,
80 }
81 }
82 /// Access the CreateAutoPredictor as a reference.
83 pub fn as_input(&self) -> &crate::operation::create_auto_predictor::builders::CreateAutoPredictorInputBuilder {
84 &self.inner
85 }
86 /// Sends the request and returns the response.
87 ///
88 /// If an error occurs, an `SdkError` will be returned with additional details that
89 /// can be matched against.
90 ///
91 /// By default, any retryable failures will be retried twice. Retry behavior
92 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
93 /// set when configuring the client.
94 pub async fn send(
95 self,
96 ) -> ::std::result::Result<
97 crate::operation::create_auto_predictor::CreateAutoPredictorOutput,
98 ::aws_smithy_runtime_api::client::result::SdkError<
99 crate::operation::create_auto_predictor::CreateAutoPredictorError,
100 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
101 >,
102 > {
103 let input = self
104 .inner
105 .build()
106 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
107 let runtime_plugins = crate::operation::create_auto_predictor::CreateAutoPredictor::operation_runtime_plugins(
108 self.handle.runtime_plugins.clone(),
109 &self.handle.conf,
110 self.config_override,
111 );
112 crate::operation::create_auto_predictor::CreateAutoPredictor::orchestrate(&runtime_plugins, input).await
113 }
114
115 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
116 pub fn customize(
117 self,
118 ) -> crate::client::customize::CustomizableOperation<
119 crate::operation::create_auto_predictor::CreateAutoPredictorOutput,
120 crate::operation::create_auto_predictor::CreateAutoPredictorError,
121 Self,
122 > {
123 crate::client::customize::CustomizableOperation::new(self)
124 }
125 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
126 self.set_config_override(::std::option::Option::Some(config_override.into()));
127 self
128 }
129
130 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
131 self.config_override = config_override;
132 self
133 }
134 /// <p>A unique name for the predictor</p>
135 pub fn predictor_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
136 self.inner = self.inner.predictor_name(input.into());
137 self
138 }
139 /// <p>A unique name for the predictor</p>
140 pub fn set_predictor_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
141 self.inner = self.inner.set_predictor_name(input);
142 self
143 }
144 /// <p>A unique name for the predictor</p>
145 pub fn get_predictor_name(&self) -> &::std::option::Option<::std::string::String> {
146 self.inner.get_predictor_name()
147 }
148 /// <p>The number of time-steps that the model predicts. The forecast horizon is also called the prediction length.</p>
149 /// <p>The maximum forecast horizon is the lesser of 500 time-steps or 1/4 of the TARGET_TIME_SERIES dataset length. If you are retraining an existing AutoPredictor, then the maximum forecast horizon is the lesser of 500 time-steps or 1/3 of the TARGET_TIME_SERIES dataset length.</p>
150 /// <p>If you are upgrading to an AutoPredictor or retraining an existing AutoPredictor, you cannot update the forecast horizon parameter. You can meet this requirement by providing longer time-series in the dataset.</p>
151 pub fn forecast_horizon(mut self, input: i32) -> Self {
152 self.inner = self.inner.forecast_horizon(input);
153 self
154 }
155 /// <p>The number of time-steps that the model predicts. The forecast horizon is also called the prediction length.</p>
156 /// <p>The maximum forecast horizon is the lesser of 500 time-steps or 1/4 of the TARGET_TIME_SERIES dataset length. If you are retraining an existing AutoPredictor, then the maximum forecast horizon is the lesser of 500 time-steps or 1/3 of the TARGET_TIME_SERIES dataset length.</p>
157 /// <p>If you are upgrading to an AutoPredictor or retraining an existing AutoPredictor, you cannot update the forecast horizon parameter. You can meet this requirement by providing longer time-series in the dataset.</p>
158 pub fn set_forecast_horizon(mut self, input: ::std::option::Option<i32>) -> Self {
159 self.inner = self.inner.set_forecast_horizon(input);
160 self
161 }
162 /// <p>The number of time-steps that the model predicts. The forecast horizon is also called the prediction length.</p>
163 /// <p>The maximum forecast horizon is the lesser of 500 time-steps or 1/4 of the TARGET_TIME_SERIES dataset length. If you are retraining an existing AutoPredictor, then the maximum forecast horizon is the lesser of 500 time-steps or 1/3 of the TARGET_TIME_SERIES dataset length.</p>
164 /// <p>If you are upgrading to an AutoPredictor or retraining an existing AutoPredictor, you cannot update the forecast horizon parameter. You can meet this requirement by providing longer time-series in the dataset.</p>
165 pub fn get_forecast_horizon(&self) -> &::std::option::Option<i32> {
166 self.inner.get_forecast_horizon()
167 }
168 ///
169 /// Appends an item to `ForecastTypes`.
170 ///
171 /// To override the contents of this collection use [`set_forecast_types`](Self::set_forecast_types).
172 ///
173 /// <p>The forecast types used to train a predictor. You can specify up to five forecast types. Forecast types can be quantiles from 0.01 to 0.99, by increments of 0.01 or higher. You can also specify the mean forecast with <code>mean</code>.</p>
174 pub fn forecast_types(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
175 self.inner = self.inner.forecast_types(input.into());
176 self
177 }
178 /// <p>The forecast types used to train a predictor. You can specify up to five forecast types. Forecast types can be quantiles from 0.01 to 0.99, by increments of 0.01 or higher. You can also specify the mean forecast with <code>mean</code>.</p>
179 pub fn set_forecast_types(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
180 self.inner = self.inner.set_forecast_types(input);
181 self
182 }
183 /// <p>The forecast types used to train a predictor. You can specify up to five forecast types. Forecast types can be quantiles from 0.01 to 0.99, by increments of 0.01 or higher. You can also specify the mean forecast with <code>mean</code>.</p>
184 pub fn get_forecast_types(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
185 self.inner.get_forecast_types()
186 }
187 ///
188 /// Appends an item to `ForecastDimensions`.
189 ///
190 /// To override the contents of this collection use [`set_forecast_dimensions`](Self::set_forecast_dimensions).
191 ///
192 /// <p>An array of dimension (field) names that specify how to group the generated forecast.</p>
193 /// <p>For example, if you are generating forecasts for item sales across all your stores, and your dataset contains a <code>store_id</code> field, you would specify <code>store_id</code> as a dimension to group sales forecasts for each store.</p>
194 pub fn forecast_dimensions(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
195 self.inner = self.inner.forecast_dimensions(input.into());
196 self
197 }
198 /// <p>An array of dimension (field) names that specify how to group the generated forecast.</p>
199 /// <p>For example, if you are generating forecasts for item sales across all your stores, and your dataset contains a <code>store_id</code> field, you would specify <code>store_id</code> as a dimension to group sales forecasts for each store.</p>
200 pub fn set_forecast_dimensions(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
201 self.inner = self.inner.set_forecast_dimensions(input);
202 self
203 }
204 /// <p>An array of dimension (field) names that specify how to group the generated forecast.</p>
205 /// <p>For example, if you are generating forecasts for item sales across all your stores, and your dataset contains a <code>store_id</code> field, you would specify <code>store_id</code> as a dimension to group sales forecasts for each store.</p>
206 pub fn get_forecast_dimensions(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
207 self.inner.get_forecast_dimensions()
208 }
209 /// <p>The frequency of predictions in a forecast.</p>
210 /// <p>Valid intervals are an integer followed by Y (Year), M (Month), W (Week), D (Day), H (Hour), and min (Minute). For example, "1D" indicates every day and "15min" indicates every 15 minutes. You cannot specify a value that would overlap with the next larger frequency. That means, for example, you cannot specify a frequency of 60 minutes, because that is equivalent to 1 hour. The valid values for each frequency are the following:</p>
211 /// <ul>
212 /// <li>
213 /// <p>Minute - 1-59</p></li>
214 /// <li>
215 /// <p>Hour - 1-23</p></li>
216 /// <li>
217 /// <p>Day - 1-6</p></li>
218 /// <li>
219 /// <p>Week - 1-4</p></li>
220 /// <li>
221 /// <p>Month - 1-11</p></li>
222 /// <li>
223 /// <p>Year - 1</p></li>
224 /// </ul>
225 /// <p>Thus, if you want every other week forecasts, specify "2W". Or, if you want quarterly forecasts, you specify "3M".</p>
226 /// <p>The frequency must be greater than or equal to the TARGET_TIME_SERIES dataset frequency.</p>
227 /// <p>When a RELATED_TIME_SERIES dataset is provided, the frequency must be equal to the RELATED_TIME_SERIES dataset frequency.</p>
228 pub fn forecast_frequency(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
229 self.inner = self.inner.forecast_frequency(input.into());
230 self
231 }
232 /// <p>The frequency of predictions in a forecast.</p>
233 /// <p>Valid intervals are an integer followed by Y (Year), M (Month), W (Week), D (Day), H (Hour), and min (Minute). For example, "1D" indicates every day and "15min" indicates every 15 minutes. You cannot specify a value that would overlap with the next larger frequency. That means, for example, you cannot specify a frequency of 60 minutes, because that is equivalent to 1 hour. The valid values for each frequency are the following:</p>
234 /// <ul>
235 /// <li>
236 /// <p>Minute - 1-59</p></li>
237 /// <li>
238 /// <p>Hour - 1-23</p></li>
239 /// <li>
240 /// <p>Day - 1-6</p></li>
241 /// <li>
242 /// <p>Week - 1-4</p></li>
243 /// <li>
244 /// <p>Month - 1-11</p></li>
245 /// <li>
246 /// <p>Year - 1</p></li>
247 /// </ul>
248 /// <p>Thus, if you want every other week forecasts, specify "2W". Or, if you want quarterly forecasts, you specify "3M".</p>
249 /// <p>The frequency must be greater than or equal to the TARGET_TIME_SERIES dataset frequency.</p>
250 /// <p>When a RELATED_TIME_SERIES dataset is provided, the frequency must be equal to the RELATED_TIME_SERIES dataset frequency.</p>
251 pub fn set_forecast_frequency(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
252 self.inner = self.inner.set_forecast_frequency(input);
253 self
254 }
255 /// <p>The frequency of predictions in a forecast.</p>
256 /// <p>Valid intervals are an integer followed by Y (Year), M (Month), W (Week), D (Day), H (Hour), and min (Minute). For example, "1D" indicates every day and "15min" indicates every 15 minutes. You cannot specify a value that would overlap with the next larger frequency. That means, for example, you cannot specify a frequency of 60 minutes, because that is equivalent to 1 hour. The valid values for each frequency are the following:</p>
257 /// <ul>
258 /// <li>
259 /// <p>Minute - 1-59</p></li>
260 /// <li>
261 /// <p>Hour - 1-23</p></li>
262 /// <li>
263 /// <p>Day - 1-6</p></li>
264 /// <li>
265 /// <p>Week - 1-4</p></li>
266 /// <li>
267 /// <p>Month - 1-11</p></li>
268 /// <li>
269 /// <p>Year - 1</p></li>
270 /// </ul>
271 /// <p>Thus, if you want every other week forecasts, specify "2W". Or, if you want quarterly forecasts, you specify "3M".</p>
272 /// <p>The frequency must be greater than or equal to the TARGET_TIME_SERIES dataset frequency.</p>
273 /// <p>When a RELATED_TIME_SERIES dataset is provided, the frequency must be equal to the RELATED_TIME_SERIES dataset frequency.</p>
274 pub fn get_forecast_frequency(&self) -> &::std::option::Option<::std::string::String> {
275 self.inner.get_forecast_frequency()
276 }
277 /// <p>The data configuration for your dataset group and any additional datasets.</p>
278 pub fn data_config(mut self, input: crate::types::DataConfig) -> Self {
279 self.inner = self.inner.data_config(input);
280 self
281 }
282 /// <p>The data configuration for your dataset group and any additional datasets.</p>
283 pub fn set_data_config(mut self, input: ::std::option::Option<crate::types::DataConfig>) -> Self {
284 self.inner = self.inner.set_data_config(input);
285 self
286 }
287 /// <p>The data configuration for your dataset group and any additional datasets.</p>
288 pub fn get_data_config(&self) -> &::std::option::Option<crate::types::DataConfig> {
289 self.inner.get_data_config()
290 }
291 /// <p>An Key Management Service (KMS) key and an Identity and Access Management (IAM) role that Amazon Forecast can assume to access the key. You can specify this optional object in the <code>CreateDataset</code> and <code>CreatePredictor</code> requests.</p>
292 pub fn encryption_config(mut self, input: crate::types::EncryptionConfig) -> Self {
293 self.inner = self.inner.encryption_config(input);
294 self
295 }
296 /// <p>An Key Management Service (KMS) key and an Identity and Access Management (IAM) role that Amazon Forecast can assume to access the key. You can specify this optional object in the <code>CreateDataset</code> and <code>CreatePredictor</code> requests.</p>
297 pub fn set_encryption_config(mut self, input: ::std::option::Option<crate::types::EncryptionConfig>) -> Self {
298 self.inner = self.inner.set_encryption_config(input);
299 self
300 }
301 /// <p>An Key Management Service (KMS) key and an Identity and Access Management (IAM) role that Amazon Forecast can assume to access the key. You can specify this optional object in the <code>CreateDataset</code> and <code>CreatePredictor</code> requests.</p>
302 pub fn get_encryption_config(&self) -> &::std::option::Option<crate::types::EncryptionConfig> {
303 self.inner.get_encryption_config()
304 }
305 /// <p>The ARN of the predictor to retrain or upgrade. This parameter is only used when retraining or upgrading a predictor. When creating a new predictor, do not specify a value for this parameter.</p>
306 /// <p>When upgrading or retraining a predictor, only specify values for the <code>ReferencePredictorArn</code> and <code>PredictorName</code>. The value for <code>PredictorName</code> must be a unique predictor name.</p>
307 pub fn reference_predictor_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
308 self.inner = self.inner.reference_predictor_arn(input.into());
309 self
310 }
311 /// <p>The ARN of the predictor to retrain or upgrade. This parameter is only used when retraining or upgrading a predictor. When creating a new predictor, do not specify a value for this parameter.</p>
312 /// <p>When upgrading or retraining a predictor, only specify values for the <code>ReferencePredictorArn</code> and <code>PredictorName</code>. The value for <code>PredictorName</code> must be a unique predictor name.</p>
313 pub fn set_reference_predictor_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
314 self.inner = self.inner.set_reference_predictor_arn(input);
315 self
316 }
317 /// <p>The ARN of the predictor to retrain or upgrade. This parameter is only used when retraining or upgrading a predictor. When creating a new predictor, do not specify a value for this parameter.</p>
318 /// <p>When upgrading or retraining a predictor, only specify values for the <code>ReferencePredictorArn</code> and <code>PredictorName</code>. The value for <code>PredictorName</code> must be a unique predictor name.</p>
319 pub fn get_reference_predictor_arn(&self) -> &::std::option::Option<::std::string::String> {
320 self.inner.get_reference_predictor_arn()
321 }
322 /// <p>The accuracy metric used to optimize the predictor.</p>
323 pub fn optimization_metric(mut self, input: crate::types::OptimizationMetric) -> Self {
324 self.inner = self.inner.optimization_metric(input);
325 self
326 }
327 /// <p>The accuracy metric used to optimize the predictor.</p>
328 pub fn set_optimization_metric(mut self, input: ::std::option::Option<crate::types::OptimizationMetric>) -> Self {
329 self.inner = self.inner.set_optimization_metric(input);
330 self
331 }
332 /// <p>The accuracy metric used to optimize the predictor.</p>
333 pub fn get_optimization_metric(&self) -> &::std::option::Option<crate::types::OptimizationMetric> {
334 self.inner.get_optimization_metric()
335 }
336 /// <p>Create an Explainability resource for the predictor.</p>
337 pub fn explain_predictor(mut self, input: bool) -> Self {
338 self.inner = self.inner.explain_predictor(input);
339 self
340 }
341 /// <p>Create an Explainability resource for the predictor.</p>
342 pub fn set_explain_predictor(mut self, input: ::std::option::Option<bool>) -> Self {
343 self.inner = self.inner.set_explain_predictor(input);
344 self
345 }
346 /// <p>Create an Explainability resource for the predictor.</p>
347 pub fn get_explain_predictor(&self) -> &::std::option::Option<bool> {
348 self.inner.get_explain_predictor()
349 }
350 ///
351 /// Appends an item to `Tags`.
352 ///
353 /// To override the contents of this collection use [`set_tags`](Self::set_tags).
354 ///
355 /// <p>Optional metadata to help you categorize and organize your predictors. Each tag consists of a key and an optional value, both of which you define. Tag keys and values are case sensitive.</p>
356 /// <p>The following restrictions apply to tags:</p>
357 /// <ul>
358 /// <li>
359 /// <p>For each resource, each tag key must be unique and each tag key must have one value.</p></li>
360 /// <li>
361 /// <p>Maximum number of tags per resource: 50.</p></li>
362 /// <li>
363 /// <p>Maximum key length: 128 Unicode characters in UTF-8.</p></li>
364 /// <li>
365 /// <p>Maximum value length: 256 Unicode characters in UTF-8.</p></li>
366 /// <li>
367 /// <p>Accepted characters: all letters and numbers, spaces representable in UTF-8, and + - = . _ : / @. If your tagging schema is used across other services and resources, the character restrictions of those services also apply.</p></li>
368 /// <li>
369 /// <p>Key prefixes cannot include any upper or lowercase combination of <code>aws:</code> or <code>AWS:</code>. Values can have this prefix. If a tag value has <code>aws</code> as its prefix but the key does not, Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of <code>aws</code> do not count against your tags per resource limit. You cannot edit or delete tag keys with this prefix.</p></li>
370 /// </ul>
371 pub fn tags(mut self, input: crate::types::Tag) -> Self {
372 self.inner = self.inner.tags(input);
373 self
374 }
375 /// <p>Optional metadata to help you categorize and organize your predictors. Each tag consists of a key and an optional value, both of which you define. Tag keys and values are case sensitive.</p>
376 /// <p>The following restrictions apply to tags:</p>
377 /// <ul>
378 /// <li>
379 /// <p>For each resource, each tag key must be unique and each tag key must have one value.</p></li>
380 /// <li>
381 /// <p>Maximum number of tags per resource: 50.</p></li>
382 /// <li>
383 /// <p>Maximum key length: 128 Unicode characters in UTF-8.</p></li>
384 /// <li>
385 /// <p>Maximum value length: 256 Unicode characters in UTF-8.</p></li>
386 /// <li>
387 /// <p>Accepted characters: all letters and numbers, spaces representable in UTF-8, and + - = . _ : / @. If your tagging schema is used across other services and resources, the character restrictions of those services also apply.</p></li>
388 /// <li>
389 /// <p>Key prefixes cannot include any upper or lowercase combination of <code>aws:</code> or <code>AWS:</code>. Values can have this prefix. If a tag value has <code>aws</code> as its prefix but the key does not, Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of <code>aws</code> do not count against your tags per resource limit. You cannot edit or delete tag keys with this prefix.</p></li>
390 /// </ul>
391 pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
392 self.inner = self.inner.set_tags(input);
393 self
394 }
395 /// <p>Optional metadata to help you categorize and organize your predictors. Each tag consists of a key and an optional value, both of which you define. Tag keys and values are case sensitive.</p>
396 /// <p>The following restrictions apply to tags:</p>
397 /// <ul>
398 /// <li>
399 /// <p>For each resource, each tag key must be unique and each tag key must have one value.</p></li>
400 /// <li>
401 /// <p>Maximum number of tags per resource: 50.</p></li>
402 /// <li>
403 /// <p>Maximum key length: 128 Unicode characters in UTF-8.</p></li>
404 /// <li>
405 /// <p>Maximum value length: 256 Unicode characters in UTF-8.</p></li>
406 /// <li>
407 /// <p>Accepted characters: all letters and numbers, spaces representable in UTF-8, and + - = . _ : / @. If your tagging schema is used across other services and resources, the character restrictions of those services also apply.</p></li>
408 /// <li>
409 /// <p>Key prefixes cannot include any upper or lowercase combination of <code>aws:</code> or <code>AWS:</code>. Values can have this prefix. If a tag value has <code>aws</code> as its prefix but the key does not, Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of <code>aws</code> do not count against your tags per resource limit. You cannot edit or delete tag keys with this prefix.</p></li>
410 /// </ul>
411 pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
412 self.inner.get_tags()
413 }
414 /// <p>The configuration details for predictor monitoring. Provide a name for the monitor resource to enable predictor monitoring.</p>
415 /// <p>Predictor monitoring allows you to see how your predictor's performance changes over time. For more information, see <a href="https://docs.aws.amazon.com/forecast/latest/dg/predictor-monitoring.html">Predictor Monitoring</a>.</p>
416 pub fn monitor_config(mut self, input: crate::types::MonitorConfig) -> Self {
417 self.inner = self.inner.monitor_config(input);
418 self
419 }
420 /// <p>The configuration details for predictor monitoring. Provide a name for the monitor resource to enable predictor monitoring.</p>
421 /// <p>Predictor monitoring allows you to see how your predictor's performance changes over time. For more information, see <a href="https://docs.aws.amazon.com/forecast/latest/dg/predictor-monitoring.html">Predictor Monitoring</a>.</p>
422 pub fn set_monitor_config(mut self, input: ::std::option::Option<crate::types::MonitorConfig>) -> Self {
423 self.inner = self.inner.set_monitor_config(input);
424 self
425 }
426 /// <p>The configuration details for predictor monitoring. Provide a name for the monitor resource to enable predictor monitoring.</p>
427 /// <p>Predictor monitoring allows you to see how your predictor's performance changes over time. For more information, see <a href="https://docs.aws.amazon.com/forecast/latest/dg/predictor-monitoring.html">Predictor Monitoring</a>.</p>
428 pub fn get_monitor_config(&self) -> &::std::option::Option<crate::types::MonitorConfig> {
429 self.inner.get_monitor_config()
430 }
431 /// <p>The time boundary Forecast uses to align and aggregate any data that doesn't align with your forecast frequency. Provide the unit of time and the time boundary as a key value pair. For more information on specifying a time boundary, see <a href="https://docs.aws.amazon.com/forecast/latest/dg/data-aggregation.html#specifying-time-boundary">Specifying a Time Boundary</a>. If you don't provide a time boundary, Forecast uses a set of <a href="https://docs.aws.amazon.com/forecast/latest/dg/data-aggregation.html#default-time-boundaries">Default Time Boundaries</a>.</p>
432 pub fn time_alignment_boundary(mut self, input: crate::types::TimeAlignmentBoundary) -> Self {
433 self.inner = self.inner.time_alignment_boundary(input);
434 self
435 }
436 /// <p>The time boundary Forecast uses to align and aggregate any data that doesn't align with your forecast frequency. Provide the unit of time and the time boundary as a key value pair. For more information on specifying a time boundary, see <a href="https://docs.aws.amazon.com/forecast/latest/dg/data-aggregation.html#specifying-time-boundary">Specifying a Time Boundary</a>. If you don't provide a time boundary, Forecast uses a set of <a href="https://docs.aws.amazon.com/forecast/latest/dg/data-aggregation.html#default-time-boundaries">Default Time Boundaries</a>.</p>
437 pub fn set_time_alignment_boundary(mut self, input: ::std::option::Option<crate::types::TimeAlignmentBoundary>) -> Self {
438 self.inner = self.inner.set_time_alignment_boundary(input);
439 self
440 }
441 /// <p>The time boundary Forecast uses to align and aggregate any data that doesn't align with your forecast frequency. Provide the unit of time and the time boundary as a key value pair. For more information on specifying a time boundary, see <a href="https://docs.aws.amazon.com/forecast/latest/dg/data-aggregation.html#specifying-time-boundary">Specifying a Time Boundary</a>. If you don't provide a time boundary, Forecast uses a set of <a href="https://docs.aws.amazon.com/forecast/latest/dg/data-aggregation.html#default-time-boundaries">Default Time Boundaries</a>.</p>
442 pub fn get_time_alignment_boundary(&self) -> &::std::option::Option<crate::types::TimeAlignmentBoundary> {
443 self.inner.get_time_alignment_boundary()
444 }
445}