aws_sdk_forecast/operation/create_dataset/
_create_dataset_input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
5pub struct CreateDatasetInput {
6    /// <p>A name for the dataset.</p>
7    pub dataset_name: ::std::option::Option<::std::string::String>,
8    /// <p>The domain associated with the dataset. When you add a dataset to a dataset group, this value and the value specified for the <code>Domain</code> parameter of the <a href="https://docs.aws.amazon.com/forecast/latest/dg/API_CreateDatasetGroup.html">CreateDatasetGroup</a> operation must match.</p>
9    /// <p>The <code>Domain</code> and <code>DatasetType</code> that you choose determine the fields that must be present in the training data that you import to the dataset. For example, if you choose the <code>RETAIL</code> domain and <code>TARGET_TIME_SERIES</code> as the <code>DatasetType</code>, Amazon Forecast requires <code>item_id</code>, <code>timestamp</code>, and <code>demand</code> fields to be present in your data. For more information, see <a href="https://docs.aws.amazon.com/forecast/latest/dg/howitworks-datasets-groups.html">Importing datasets</a>.</p>
10    pub domain: ::std::option::Option<crate::types::Domain>,
11    /// <p>The dataset type. Valid values depend on the chosen <code>Domain</code>.</p>
12    pub dataset_type: ::std::option::Option<crate::types::DatasetType>,
13    /// <p>The frequency of data collection. This parameter is required for RELATED_TIME_SERIES datasets.</p>
14    /// <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>
15    /// <ul>
16    /// <li>
17    /// <p>Minute - 1-59</p></li>
18    /// <li>
19    /// <p>Hour - 1-23</p></li>
20    /// <li>
21    /// <p>Day - 1-6</p></li>
22    /// <li>
23    /// <p>Week - 1-4</p></li>
24    /// <li>
25    /// <p>Month - 1-11</p></li>
26    /// <li>
27    /// <p>Year - 1</p></li>
28    /// </ul>
29    /// <p>Thus, if you want every other week forecasts, specify "2W". Or, if you want quarterly forecasts, you specify "3M".</p>
30    pub data_frequency: ::std::option::Option<::std::string::String>,
31    /// <p>The schema for the dataset. The schema attributes and their order must match the fields in your data. The dataset <code>Domain</code> and <code>DatasetType</code> that you choose determine the minimum required fields in your training data. For information about the required fields for a specific dataset domain and type, see <a href="https://docs.aws.amazon.com/forecast/latest/dg/howitworks-domains-ds-types.html">Dataset Domains and Dataset Types</a>.</p>
32    pub schema: ::std::option::Option<crate::types::Schema>,
33    /// <p>An Key Management Service (KMS) key and the Identity and Access Management (IAM) role that Amazon Forecast can assume to access the key.</p>
34    pub encryption_config: ::std::option::Option<crate::types::EncryptionConfig>,
35    /// <p>The optional metadata that you apply to the dataset to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.</p>
36    /// <p>The following basic restrictions apply to tags:</p>
37    /// <ul>
38    /// <li>
39    /// <p>Maximum number of tags per resource - 50.</p></li>
40    /// <li>
41    /// <p>For each resource, each tag key must be unique, and each tag key can have only one value.</p></li>
42    /// <li>
43    /// <p>Maximum key length - 128 Unicode characters in UTF-8.</p></li>
44    /// <li>
45    /// <p>Maximum value length - 256 Unicode characters in UTF-8.</p></li>
46    /// <li>
47    /// <p>If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.</p></li>
48    /// <li>
49    /// <p>Tag keys and values are case sensitive.</p></li>
50    /// <li>
51    /// <p>Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for keys as it is reserved for Amazon Web Services use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has <code>aws</code> as its prefix but the key does not, then 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.</p></li>
52    /// </ul>
53    pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
54}
55impl CreateDatasetInput {
56    /// <p>A name for the dataset.</p>
57    pub fn dataset_name(&self) -> ::std::option::Option<&str> {
58        self.dataset_name.as_deref()
59    }
60    /// <p>The domain associated with the dataset. When you add a dataset to a dataset group, this value and the value specified for the <code>Domain</code> parameter of the <a href="https://docs.aws.amazon.com/forecast/latest/dg/API_CreateDatasetGroup.html">CreateDatasetGroup</a> operation must match.</p>
61    /// <p>The <code>Domain</code> and <code>DatasetType</code> that you choose determine the fields that must be present in the training data that you import to the dataset. For example, if you choose the <code>RETAIL</code> domain and <code>TARGET_TIME_SERIES</code> as the <code>DatasetType</code>, Amazon Forecast requires <code>item_id</code>, <code>timestamp</code>, and <code>demand</code> fields to be present in your data. For more information, see <a href="https://docs.aws.amazon.com/forecast/latest/dg/howitworks-datasets-groups.html">Importing datasets</a>.</p>
62    pub fn domain(&self) -> ::std::option::Option<&crate::types::Domain> {
63        self.domain.as_ref()
64    }
65    /// <p>The dataset type. Valid values depend on the chosen <code>Domain</code>.</p>
66    pub fn dataset_type(&self) -> ::std::option::Option<&crate::types::DatasetType> {
67        self.dataset_type.as_ref()
68    }
69    /// <p>The frequency of data collection. This parameter is required for RELATED_TIME_SERIES datasets.</p>
70    /// <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>
71    /// <ul>
72    /// <li>
73    /// <p>Minute - 1-59</p></li>
74    /// <li>
75    /// <p>Hour - 1-23</p></li>
76    /// <li>
77    /// <p>Day - 1-6</p></li>
78    /// <li>
79    /// <p>Week - 1-4</p></li>
80    /// <li>
81    /// <p>Month - 1-11</p></li>
82    /// <li>
83    /// <p>Year - 1</p></li>
84    /// </ul>
85    /// <p>Thus, if you want every other week forecasts, specify "2W". Or, if you want quarterly forecasts, you specify "3M".</p>
86    pub fn data_frequency(&self) -> ::std::option::Option<&str> {
87        self.data_frequency.as_deref()
88    }
89    /// <p>The schema for the dataset. The schema attributes and their order must match the fields in your data. The dataset <code>Domain</code> and <code>DatasetType</code> that you choose determine the minimum required fields in your training data. For information about the required fields for a specific dataset domain and type, see <a href="https://docs.aws.amazon.com/forecast/latest/dg/howitworks-domains-ds-types.html">Dataset Domains and Dataset Types</a>.</p>
90    pub fn schema(&self) -> ::std::option::Option<&crate::types::Schema> {
91        self.schema.as_ref()
92    }
93    /// <p>An Key Management Service (KMS) key and the Identity and Access Management (IAM) role that Amazon Forecast can assume to access the key.</p>
94    pub fn encryption_config(&self) -> ::std::option::Option<&crate::types::EncryptionConfig> {
95        self.encryption_config.as_ref()
96    }
97    /// <p>The optional metadata that you apply to the dataset to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.</p>
98    /// <p>The following basic restrictions apply to tags:</p>
99    /// <ul>
100    /// <li>
101    /// <p>Maximum number of tags per resource - 50.</p></li>
102    /// <li>
103    /// <p>For each resource, each tag key must be unique, and each tag key can have only one value.</p></li>
104    /// <li>
105    /// <p>Maximum key length - 128 Unicode characters in UTF-8.</p></li>
106    /// <li>
107    /// <p>Maximum value length - 256 Unicode characters in UTF-8.</p></li>
108    /// <li>
109    /// <p>If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.</p></li>
110    /// <li>
111    /// <p>Tag keys and values are case sensitive.</p></li>
112    /// <li>
113    /// <p>Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for keys as it is reserved for Amazon Web Services use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has <code>aws</code> as its prefix but the key does not, then 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.</p></li>
114    /// </ul>
115    ///
116    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
117    pub fn tags(&self) -> &[crate::types::Tag] {
118        self.tags.as_deref().unwrap_or_default()
119    }
120}
121impl CreateDatasetInput {
122    /// Creates a new builder-style object to manufacture [`CreateDatasetInput`](crate::operation::create_dataset::CreateDatasetInput).
123    pub fn builder() -> crate::operation::create_dataset::builders::CreateDatasetInputBuilder {
124        crate::operation::create_dataset::builders::CreateDatasetInputBuilder::default()
125    }
126}
127
128/// A builder for [`CreateDatasetInput`](crate::operation::create_dataset::CreateDatasetInput).
129#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
130#[non_exhaustive]
131pub struct CreateDatasetInputBuilder {
132    pub(crate) dataset_name: ::std::option::Option<::std::string::String>,
133    pub(crate) domain: ::std::option::Option<crate::types::Domain>,
134    pub(crate) dataset_type: ::std::option::Option<crate::types::DatasetType>,
135    pub(crate) data_frequency: ::std::option::Option<::std::string::String>,
136    pub(crate) schema: ::std::option::Option<crate::types::Schema>,
137    pub(crate) encryption_config: ::std::option::Option<crate::types::EncryptionConfig>,
138    pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
139}
140impl CreateDatasetInputBuilder {
141    /// <p>A name for the dataset.</p>
142    /// This field is required.
143    pub fn dataset_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
144        self.dataset_name = ::std::option::Option::Some(input.into());
145        self
146    }
147    /// <p>A name for the dataset.</p>
148    pub fn set_dataset_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
149        self.dataset_name = input;
150        self
151    }
152    /// <p>A name for the dataset.</p>
153    pub fn get_dataset_name(&self) -> &::std::option::Option<::std::string::String> {
154        &self.dataset_name
155    }
156    /// <p>The domain associated with the dataset. When you add a dataset to a dataset group, this value and the value specified for the <code>Domain</code> parameter of the <a href="https://docs.aws.amazon.com/forecast/latest/dg/API_CreateDatasetGroup.html">CreateDatasetGroup</a> operation must match.</p>
157    /// <p>The <code>Domain</code> and <code>DatasetType</code> that you choose determine the fields that must be present in the training data that you import to the dataset. For example, if you choose the <code>RETAIL</code> domain and <code>TARGET_TIME_SERIES</code> as the <code>DatasetType</code>, Amazon Forecast requires <code>item_id</code>, <code>timestamp</code>, and <code>demand</code> fields to be present in your data. For more information, see <a href="https://docs.aws.amazon.com/forecast/latest/dg/howitworks-datasets-groups.html">Importing datasets</a>.</p>
158    /// This field is required.
159    pub fn domain(mut self, input: crate::types::Domain) -> Self {
160        self.domain = ::std::option::Option::Some(input);
161        self
162    }
163    /// <p>The domain associated with the dataset. When you add a dataset to a dataset group, this value and the value specified for the <code>Domain</code> parameter of the <a href="https://docs.aws.amazon.com/forecast/latest/dg/API_CreateDatasetGroup.html">CreateDatasetGroup</a> operation must match.</p>
164    /// <p>The <code>Domain</code> and <code>DatasetType</code> that you choose determine the fields that must be present in the training data that you import to the dataset. For example, if you choose the <code>RETAIL</code> domain and <code>TARGET_TIME_SERIES</code> as the <code>DatasetType</code>, Amazon Forecast requires <code>item_id</code>, <code>timestamp</code>, and <code>demand</code> fields to be present in your data. For more information, see <a href="https://docs.aws.amazon.com/forecast/latest/dg/howitworks-datasets-groups.html">Importing datasets</a>.</p>
165    pub fn set_domain(mut self, input: ::std::option::Option<crate::types::Domain>) -> Self {
166        self.domain = input;
167        self
168    }
169    /// <p>The domain associated with the dataset. When you add a dataset to a dataset group, this value and the value specified for the <code>Domain</code> parameter of the <a href="https://docs.aws.amazon.com/forecast/latest/dg/API_CreateDatasetGroup.html">CreateDatasetGroup</a> operation must match.</p>
170    /// <p>The <code>Domain</code> and <code>DatasetType</code> that you choose determine the fields that must be present in the training data that you import to the dataset. For example, if you choose the <code>RETAIL</code> domain and <code>TARGET_TIME_SERIES</code> as the <code>DatasetType</code>, Amazon Forecast requires <code>item_id</code>, <code>timestamp</code>, and <code>demand</code> fields to be present in your data. For more information, see <a href="https://docs.aws.amazon.com/forecast/latest/dg/howitworks-datasets-groups.html">Importing datasets</a>.</p>
171    pub fn get_domain(&self) -> &::std::option::Option<crate::types::Domain> {
172        &self.domain
173    }
174    /// <p>The dataset type. Valid values depend on the chosen <code>Domain</code>.</p>
175    /// This field is required.
176    pub fn dataset_type(mut self, input: crate::types::DatasetType) -> Self {
177        self.dataset_type = ::std::option::Option::Some(input);
178        self
179    }
180    /// <p>The dataset type. Valid values depend on the chosen <code>Domain</code>.</p>
181    pub fn set_dataset_type(mut self, input: ::std::option::Option<crate::types::DatasetType>) -> Self {
182        self.dataset_type = input;
183        self
184    }
185    /// <p>The dataset type. Valid values depend on the chosen <code>Domain</code>.</p>
186    pub fn get_dataset_type(&self) -> &::std::option::Option<crate::types::DatasetType> {
187        &self.dataset_type
188    }
189    /// <p>The frequency of data collection. This parameter is required for RELATED_TIME_SERIES datasets.</p>
190    /// <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>
191    /// <ul>
192    /// <li>
193    /// <p>Minute - 1-59</p></li>
194    /// <li>
195    /// <p>Hour - 1-23</p></li>
196    /// <li>
197    /// <p>Day - 1-6</p></li>
198    /// <li>
199    /// <p>Week - 1-4</p></li>
200    /// <li>
201    /// <p>Month - 1-11</p></li>
202    /// <li>
203    /// <p>Year - 1</p></li>
204    /// </ul>
205    /// <p>Thus, if you want every other week forecasts, specify "2W". Or, if you want quarterly forecasts, you specify "3M".</p>
206    pub fn data_frequency(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
207        self.data_frequency = ::std::option::Option::Some(input.into());
208        self
209    }
210    /// <p>The frequency of data collection. This parameter is required for RELATED_TIME_SERIES datasets.</p>
211    /// <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>
212    /// <ul>
213    /// <li>
214    /// <p>Minute - 1-59</p></li>
215    /// <li>
216    /// <p>Hour - 1-23</p></li>
217    /// <li>
218    /// <p>Day - 1-6</p></li>
219    /// <li>
220    /// <p>Week - 1-4</p></li>
221    /// <li>
222    /// <p>Month - 1-11</p></li>
223    /// <li>
224    /// <p>Year - 1</p></li>
225    /// </ul>
226    /// <p>Thus, if you want every other week forecasts, specify "2W". Or, if you want quarterly forecasts, you specify "3M".</p>
227    pub fn set_data_frequency(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
228        self.data_frequency = input;
229        self
230    }
231    /// <p>The frequency of data collection. This parameter is required for RELATED_TIME_SERIES datasets.</p>
232    /// <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>
233    /// <ul>
234    /// <li>
235    /// <p>Minute - 1-59</p></li>
236    /// <li>
237    /// <p>Hour - 1-23</p></li>
238    /// <li>
239    /// <p>Day - 1-6</p></li>
240    /// <li>
241    /// <p>Week - 1-4</p></li>
242    /// <li>
243    /// <p>Month - 1-11</p></li>
244    /// <li>
245    /// <p>Year - 1</p></li>
246    /// </ul>
247    /// <p>Thus, if you want every other week forecasts, specify "2W". Or, if you want quarterly forecasts, you specify "3M".</p>
248    pub fn get_data_frequency(&self) -> &::std::option::Option<::std::string::String> {
249        &self.data_frequency
250    }
251    /// <p>The schema for the dataset. The schema attributes and their order must match the fields in your data. The dataset <code>Domain</code> and <code>DatasetType</code> that you choose determine the minimum required fields in your training data. For information about the required fields for a specific dataset domain and type, see <a href="https://docs.aws.amazon.com/forecast/latest/dg/howitworks-domains-ds-types.html">Dataset Domains and Dataset Types</a>.</p>
252    /// This field is required.
253    pub fn schema(mut self, input: crate::types::Schema) -> Self {
254        self.schema = ::std::option::Option::Some(input);
255        self
256    }
257    /// <p>The schema for the dataset. The schema attributes and their order must match the fields in your data. The dataset <code>Domain</code> and <code>DatasetType</code> that you choose determine the minimum required fields in your training data. For information about the required fields for a specific dataset domain and type, see <a href="https://docs.aws.amazon.com/forecast/latest/dg/howitworks-domains-ds-types.html">Dataset Domains and Dataset Types</a>.</p>
258    pub fn set_schema(mut self, input: ::std::option::Option<crate::types::Schema>) -> Self {
259        self.schema = input;
260        self
261    }
262    /// <p>The schema for the dataset. The schema attributes and their order must match the fields in your data. The dataset <code>Domain</code> and <code>DatasetType</code> that you choose determine the minimum required fields in your training data. For information about the required fields for a specific dataset domain and type, see <a href="https://docs.aws.amazon.com/forecast/latest/dg/howitworks-domains-ds-types.html">Dataset Domains and Dataset Types</a>.</p>
263    pub fn get_schema(&self) -> &::std::option::Option<crate::types::Schema> {
264        &self.schema
265    }
266    /// <p>An Key Management Service (KMS) key and the Identity and Access Management (IAM) role that Amazon Forecast can assume to access the key.</p>
267    pub fn encryption_config(mut self, input: crate::types::EncryptionConfig) -> Self {
268        self.encryption_config = ::std::option::Option::Some(input);
269        self
270    }
271    /// <p>An Key Management Service (KMS) key and the Identity and Access Management (IAM) role that Amazon Forecast can assume to access the key.</p>
272    pub fn set_encryption_config(mut self, input: ::std::option::Option<crate::types::EncryptionConfig>) -> Self {
273        self.encryption_config = input;
274        self
275    }
276    /// <p>An Key Management Service (KMS) key and the Identity and Access Management (IAM) role that Amazon Forecast can assume to access the key.</p>
277    pub fn get_encryption_config(&self) -> &::std::option::Option<crate::types::EncryptionConfig> {
278        &self.encryption_config
279    }
280    /// Appends an item to `tags`.
281    ///
282    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
283    ///
284    /// <p>The optional metadata that you apply to the dataset to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.</p>
285    /// <p>The following basic restrictions apply to tags:</p>
286    /// <ul>
287    /// <li>
288    /// <p>Maximum number of tags per resource - 50.</p></li>
289    /// <li>
290    /// <p>For each resource, each tag key must be unique, and each tag key can have only one value.</p></li>
291    /// <li>
292    /// <p>Maximum key length - 128 Unicode characters in UTF-8.</p></li>
293    /// <li>
294    /// <p>Maximum value length - 256 Unicode characters in UTF-8.</p></li>
295    /// <li>
296    /// <p>If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.</p></li>
297    /// <li>
298    /// <p>Tag keys and values are case sensitive.</p></li>
299    /// <li>
300    /// <p>Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for keys as it is reserved for Amazon Web Services use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has <code>aws</code> as its prefix but the key does not, then 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.</p></li>
301    /// </ul>
302    pub fn tags(mut self, input: crate::types::Tag) -> Self {
303        let mut v = self.tags.unwrap_or_default();
304        v.push(input);
305        self.tags = ::std::option::Option::Some(v);
306        self
307    }
308    /// <p>The optional metadata that you apply to the dataset to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.</p>
309    /// <p>The following basic restrictions apply to tags:</p>
310    /// <ul>
311    /// <li>
312    /// <p>Maximum number of tags per resource - 50.</p></li>
313    /// <li>
314    /// <p>For each resource, each tag key must be unique, and each tag key can have only one value.</p></li>
315    /// <li>
316    /// <p>Maximum key length - 128 Unicode characters in UTF-8.</p></li>
317    /// <li>
318    /// <p>Maximum value length - 256 Unicode characters in UTF-8.</p></li>
319    /// <li>
320    /// <p>If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.</p></li>
321    /// <li>
322    /// <p>Tag keys and values are case sensitive.</p></li>
323    /// <li>
324    /// <p>Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for keys as it is reserved for Amazon Web Services use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has <code>aws</code> as its prefix but the key does not, then 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.</p></li>
325    /// </ul>
326    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
327        self.tags = input;
328        self
329    }
330    /// <p>The optional metadata that you apply to the dataset to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.</p>
331    /// <p>The following basic restrictions apply to tags:</p>
332    /// <ul>
333    /// <li>
334    /// <p>Maximum number of tags per resource - 50.</p></li>
335    /// <li>
336    /// <p>For each resource, each tag key must be unique, and each tag key can have only one value.</p></li>
337    /// <li>
338    /// <p>Maximum key length - 128 Unicode characters in UTF-8.</p></li>
339    /// <li>
340    /// <p>Maximum value length - 256 Unicode characters in UTF-8.</p></li>
341    /// <li>
342    /// <p>If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.</p></li>
343    /// <li>
344    /// <p>Tag keys and values are case sensitive.</p></li>
345    /// <li>
346    /// <p>Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for keys as it is reserved for Amazon Web Services use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has <code>aws</code> as its prefix but the key does not, then 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.</p></li>
347    /// </ul>
348    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
349        &self.tags
350    }
351    /// Consumes the builder and constructs a [`CreateDatasetInput`](crate::operation::create_dataset::CreateDatasetInput).
352    pub fn build(
353        self,
354    ) -> ::std::result::Result<crate::operation::create_dataset::CreateDatasetInput, ::aws_smithy_types::error::operation::BuildError> {
355        ::std::result::Result::Ok(crate::operation::create_dataset::CreateDatasetInput {
356            dataset_name: self.dataset_name,
357            domain: self.domain,
358            dataset_type: self.dataset_type,
359            data_frequency: self.data_frequency,
360            schema: self.schema,
361            encryption_config: self.encryption_config,
362            tags: self.tags,
363        })
364    }
365}