1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/ec2/EC2_EXPORTS.h>
8 #include <aws/ec2/EC2Request.h>
9 #include <aws/ec2/model/AutoPlacement.h>
10 #include <aws/core/utils/memory/stl/AWSString.h>
11 #include <aws/core/utils/memory/stl/AWSVector.h>
12 #include <aws/ec2/model/HostRecovery.h>
13 #include <aws/ec2/model/TagSpecification.h>
14 #include <utility>
15 
16 namespace Aws
17 {
18 namespace EC2
19 {
20 namespace Model
21 {
22 
23   /**
24    */
25   class AWS_EC2_API AllocateHostsRequest : public EC2Request
26   {
27   public:
28     AllocateHostsRequest();
29 
30     // Service request name is the Operation name which will send this request out,
31     // each operation should has unique request name, so that we can get operation's name from this request.
32     // Note: this is not true for response, multiple operations may have the same response name,
33     // so we can not get operation's name from response.
GetServiceRequestName()34     inline virtual const char* GetServiceRequestName() const override { return "AllocateHosts"; }
35 
36     Aws::String SerializePayload() const override;
37 
38   protected:
39     void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
40 
41   public:
42 
43     /**
44      * <p>Indicates whether the host accepts any untargeted instance launches that
45      * match its instance type configuration, or if it only accepts Host tenancy
46      * instance launches that specify its unique host ID. For more information, see <a
47      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-dedicated-hosts-work.html#dedicated-hosts-understanding">
48      * Understanding auto-placement and affinity</a> in the <i>Amazon EC2 User
49      * Guide</i>.</p> <p>Default: <code>on</code> </p>
50      */
GetAutoPlacement()51     inline const AutoPlacement& GetAutoPlacement() const{ return m_autoPlacement; }
52 
53     /**
54      * <p>Indicates whether the host accepts any untargeted instance launches that
55      * match its instance type configuration, or if it only accepts Host tenancy
56      * instance launches that specify its unique host ID. For more information, see <a
57      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-dedicated-hosts-work.html#dedicated-hosts-understanding">
58      * Understanding auto-placement and affinity</a> in the <i>Amazon EC2 User
59      * Guide</i>.</p> <p>Default: <code>on</code> </p>
60      */
AutoPlacementHasBeenSet()61     inline bool AutoPlacementHasBeenSet() const { return m_autoPlacementHasBeenSet; }
62 
63     /**
64      * <p>Indicates whether the host accepts any untargeted instance launches that
65      * match its instance type configuration, or if it only accepts Host tenancy
66      * instance launches that specify its unique host ID. For more information, see <a
67      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-dedicated-hosts-work.html#dedicated-hosts-understanding">
68      * Understanding auto-placement and affinity</a> in the <i>Amazon EC2 User
69      * Guide</i>.</p> <p>Default: <code>on</code> </p>
70      */
SetAutoPlacement(const AutoPlacement & value)71     inline void SetAutoPlacement(const AutoPlacement& value) { m_autoPlacementHasBeenSet = true; m_autoPlacement = value; }
72 
73     /**
74      * <p>Indicates whether the host accepts any untargeted instance launches that
75      * match its instance type configuration, or if it only accepts Host tenancy
76      * instance launches that specify its unique host ID. For more information, see <a
77      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-dedicated-hosts-work.html#dedicated-hosts-understanding">
78      * Understanding auto-placement and affinity</a> in the <i>Amazon EC2 User
79      * Guide</i>.</p> <p>Default: <code>on</code> </p>
80      */
SetAutoPlacement(AutoPlacement && value)81     inline void SetAutoPlacement(AutoPlacement&& value) { m_autoPlacementHasBeenSet = true; m_autoPlacement = std::move(value); }
82 
83     /**
84      * <p>Indicates whether the host accepts any untargeted instance launches that
85      * match its instance type configuration, or if it only accepts Host tenancy
86      * instance launches that specify its unique host ID. For more information, see <a
87      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-dedicated-hosts-work.html#dedicated-hosts-understanding">
88      * Understanding auto-placement and affinity</a> in the <i>Amazon EC2 User
89      * Guide</i>.</p> <p>Default: <code>on</code> </p>
90      */
WithAutoPlacement(const AutoPlacement & value)91     inline AllocateHostsRequest& WithAutoPlacement(const AutoPlacement& value) { SetAutoPlacement(value); return *this;}
92 
93     /**
94      * <p>Indicates whether the host accepts any untargeted instance launches that
95      * match its instance type configuration, or if it only accepts Host tenancy
96      * instance launches that specify its unique host ID. For more information, see <a
97      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-dedicated-hosts-work.html#dedicated-hosts-understanding">
98      * Understanding auto-placement and affinity</a> in the <i>Amazon EC2 User
99      * Guide</i>.</p> <p>Default: <code>on</code> </p>
100      */
WithAutoPlacement(AutoPlacement && value)101     inline AllocateHostsRequest& WithAutoPlacement(AutoPlacement&& value) { SetAutoPlacement(std::move(value)); return *this;}
102 
103 
104     /**
105      * <p>The Availability Zone in which to allocate the Dedicated Host.</p>
106      */
GetAvailabilityZone()107     inline const Aws::String& GetAvailabilityZone() const{ return m_availabilityZone; }
108 
109     /**
110      * <p>The Availability Zone in which to allocate the Dedicated Host.</p>
111      */
AvailabilityZoneHasBeenSet()112     inline bool AvailabilityZoneHasBeenSet() const { return m_availabilityZoneHasBeenSet; }
113 
114     /**
115      * <p>The Availability Zone in which to allocate the Dedicated Host.</p>
116      */
SetAvailabilityZone(const Aws::String & value)117     inline void SetAvailabilityZone(const Aws::String& value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone = value; }
118 
119     /**
120      * <p>The Availability Zone in which to allocate the Dedicated Host.</p>
121      */
SetAvailabilityZone(Aws::String && value)122     inline void SetAvailabilityZone(Aws::String&& value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone = std::move(value); }
123 
124     /**
125      * <p>The Availability Zone in which to allocate the Dedicated Host.</p>
126      */
SetAvailabilityZone(const char * value)127     inline void SetAvailabilityZone(const char* value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone.assign(value); }
128 
129     /**
130      * <p>The Availability Zone in which to allocate the Dedicated Host.</p>
131      */
WithAvailabilityZone(const Aws::String & value)132     inline AllocateHostsRequest& WithAvailabilityZone(const Aws::String& value) { SetAvailabilityZone(value); return *this;}
133 
134     /**
135      * <p>The Availability Zone in which to allocate the Dedicated Host.</p>
136      */
WithAvailabilityZone(Aws::String && value)137     inline AllocateHostsRequest& WithAvailabilityZone(Aws::String&& value) { SetAvailabilityZone(std::move(value)); return *this;}
138 
139     /**
140      * <p>The Availability Zone in which to allocate the Dedicated Host.</p>
141      */
WithAvailabilityZone(const char * value)142     inline AllocateHostsRequest& WithAvailabilityZone(const char* value) { SetAvailabilityZone(value); return *this;}
143 
144 
145     /**
146      * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency
147      * of the request. For more information, see <a
148      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring
149      * Idempotency</a>.</p>
150      */
GetClientToken()151     inline const Aws::String& GetClientToken() const{ return m_clientToken; }
152 
153     /**
154      * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency
155      * of the request. For more information, see <a
156      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring
157      * Idempotency</a>.</p>
158      */
ClientTokenHasBeenSet()159     inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; }
160 
161     /**
162      * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency
163      * of the request. For more information, see <a
164      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring
165      * Idempotency</a>.</p>
166      */
SetClientToken(const Aws::String & value)167     inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; }
168 
169     /**
170      * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency
171      * of the request. For more information, see <a
172      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring
173      * Idempotency</a>.</p>
174      */
SetClientToken(Aws::String && value)175     inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); }
176 
177     /**
178      * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency
179      * of the request. For more information, see <a
180      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring
181      * Idempotency</a>.</p>
182      */
SetClientToken(const char * value)183     inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); }
184 
185     /**
186      * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency
187      * of the request. For more information, see <a
188      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring
189      * Idempotency</a>.</p>
190      */
WithClientToken(const Aws::String & value)191     inline AllocateHostsRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;}
192 
193     /**
194      * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency
195      * of the request. For more information, see <a
196      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring
197      * Idempotency</a>.</p>
198      */
WithClientToken(Aws::String && value)199     inline AllocateHostsRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;}
200 
201     /**
202      * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency
203      * of the request. For more information, see <a
204      * href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring
205      * Idempotency</a>.</p>
206      */
WithClientToken(const char * value)207     inline AllocateHostsRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;}
208 
209 
210     /**
211      * <p>Specifies the instance type to be supported by the Dedicated Hosts. If you
212      * specify an instance type, the Dedicated Hosts support instances of the specified
213      * instance type only.</p> <p>If you want the Dedicated Hosts to support multiple
214      * instance types in a specific instance family, omit this parameter and specify
215      * <b>InstanceFamily</b> instead. You cannot specify <b>InstanceType</b> and
216      * <b>InstanceFamily</b> in the same request.</p>
217      */
GetInstanceType()218     inline const Aws::String& GetInstanceType() const{ return m_instanceType; }
219 
220     /**
221      * <p>Specifies the instance type to be supported by the Dedicated Hosts. If you
222      * specify an instance type, the Dedicated Hosts support instances of the specified
223      * instance type only.</p> <p>If you want the Dedicated Hosts to support multiple
224      * instance types in a specific instance family, omit this parameter and specify
225      * <b>InstanceFamily</b> instead. You cannot specify <b>InstanceType</b> and
226      * <b>InstanceFamily</b> in the same request.</p>
227      */
InstanceTypeHasBeenSet()228     inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; }
229 
230     /**
231      * <p>Specifies the instance type to be supported by the Dedicated Hosts. If you
232      * specify an instance type, the Dedicated Hosts support instances of the specified
233      * instance type only.</p> <p>If you want the Dedicated Hosts to support multiple
234      * instance types in a specific instance family, omit this parameter and specify
235      * <b>InstanceFamily</b> instead. You cannot specify <b>InstanceType</b> and
236      * <b>InstanceFamily</b> in the same request.</p>
237      */
SetInstanceType(const Aws::String & value)238     inline void SetInstanceType(const Aws::String& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; }
239 
240     /**
241      * <p>Specifies the instance type to be supported by the Dedicated Hosts. If you
242      * specify an instance type, the Dedicated Hosts support instances of the specified
243      * instance type only.</p> <p>If you want the Dedicated Hosts to support multiple
244      * instance types in a specific instance family, omit this parameter and specify
245      * <b>InstanceFamily</b> instead. You cannot specify <b>InstanceType</b> and
246      * <b>InstanceFamily</b> in the same request.</p>
247      */
SetInstanceType(Aws::String && value)248     inline void SetInstanceType(Aws::String&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); }
249 
250     /**
251      * <p>Specifies the instance type to be supported by the Dedicated Hosts. If you
252      * specify an instance type, the Dedicated Hosts support instances of the specified
253      * instance type only.</p> <p>If you want the Dedicated Hosts to support multiple
254      * instance types in a specific instance family, omit this parameter and specify
255      * <b>InstanceFamily</b> instead. You cannot specify <b>InstanceType</b> and
256      * <b>InstanceFamily</b> in the same request.</p>
257      */
SetInstanceType(const char * value)258     inline void SetInstanceType(const char* value) { m_instanceTypeHasBeenSet = true; m_instanceType.assign(value); }
259 
260     /**
261      * <p>Specifies the instance type to be supported by the Dedicated Hosts. If you
262      * specify an instance type, the Dedicated Hosts support instances of the specified
263      * instance type only.</p> <p>If you want the Dedicated Hosts to support multiple
264      * instance types in a specific instance family, omit this parameter and specify
265      * <b>InstanceFamily</b> instead. You cannot specify <b>InstanceType</b> and
266      * <b>InstanceFamily</b> in the same request.</p>
267      */
WithInstanceType(const Aws::String & value)268     inline AllocateHostsRequest& WithInstanceType(const Aws::String& value) { SetInstanceType(value); return *this;}
269 
270     /**
271      * <p>Specifies the instance type to be supported by the Dedicated Hosts. If you
272      * specify an instance type, the Dedicated Hosts support instances of the specified
273      * instance type only.</p> <p>If you want the Dedicated Hosts to support multiple
274      * instance types in a specific instance family, omit this parameter and specify
275      * <b>InstanceFamily</b> instead. You cannot specify <b>InstanceType</b> and
276      * <b>InstanceFamily</b> in the same request.</p>
277      */
WithInstanceType(Aws::String && value)278     inline AllocateHostsRequest& WithInstanceType(Aws::String&& value) { SetInstanceType(std::move(value)); return *this;}
279 
280     /**
281      * <p>Specifies the instance type to be supported by the Dedicated Hosts. If you
282      * specify an instance type, the Dedicated Hosts support instances of the specified
283      * instance type only.</p> <p>If you want the Dedicated Hosts to support multiple
284      * instance types in a specific instance family, omit this parameter and specify
285      * <b>InstanceFamily</b> instead. You cannot specify <b>InstanceType</b> and
286      * <b>InstanceFamily</b> in the same request.</p>
287      */
WithInstanceType(const char * value)288     inline AllocateHostsRequest& WithInstanceType(const char* value) { SetInstanceType(value); return *this;}
289 
290 
291     /**
292      * <p>Specifies the instance family to be supported by the Dedicated Hosts. If you
293      * specify an instance family, the Dedicated Hosts support multiple instance types
294      * within that instance family.</p> <p>If you want the Dedicated Hosts to support a
295      * specific instance type only, omit this parameter and specify <b>InstanceType</b>
296      * instead. You cannot specify <b>InstanceFamily</b> and <b>InstanceType</b> in the
297      * same request.</p>
298      */
GetInstanceFamily()299     inline const Aws::String& GetInstanceFamily() const{ return m_instanceFamily; }
300 
301     /**
302      * <p>Specifies the instance family to be supported by the Dedicated Hosts. If you
303      * specify an instance family, the Dedicated Hosts support multiple instance types
304      * within that instance family.</p> <p>If you want the Dedicated Hosts to support a
305      * specific instance type only, omit this parameter and specify <b>InstanceType</b>
306      * instead. You cannot specify <b>InstanceFamily</b> and <b>InstanceType</b> in the
307      * same request.</p>
308      */
InstanceFamilyHasBeenSet()309     inline bool InstanceFamilyHasBeenSet() const { return m_instanceFamilyHasBeenSet; }
310 
311     /**
312      * <p>Specifies the instance family to be supported by the Dedicated Hosts. If you
313      * specify an instance family, the Dedicated Hosts support multiple instance types
314      * within that instance family.</p> <p>If you want the Dedicated Hosts to support a
315      * specific instance type only, omit this parameter and specify <b>InstanceType</b>
316      * instead. You cannot specify <b>InstanceFamily</b> and <b>InstanceType</b> in the
317      * same request.</p>
318      */
SetInstanceFamily(const Aws::String & value)319     inline void SetInstanceFamily(const Aws::String& value) { m_instanceFamilyHasBeenSet = true; m_instanceFamily = value; }
320 
321     /**
322      * <p>Specifies the instance family to be supported by the Dedicated Hosts. If you
323      * specify an instance family, the Dedicated Hosts support multiple instance types
324      * within that instance family.</p> <p>If you want the Dedicated Hosts to support a
325      * specific instance type only, omit this parameter and specify <b>InstanceType</b>
326      * instead. You cannot specify <b>InstanceFamily</b> and <b>InstanceType</b> in the
327      * same request.</p>
328      */
SetInstanceFamily(Aws::String && value)329     inline void SetInstanceFamily(Aws::String&& value) { m_instanceFamilyHasBeenSet = true; m_instanceFamily = std::move(value); }
330 
331     /**
332      * <p>Specifies the instance family to be supported by the Dedicated Hosts. If you
333      * specify an instance family, the Dedicated Hosts support multiple instance types
334      * within that instance family.</p> <p>If you want the Dedicated Hosts to support a
335      * specific instance type only, omit this parameter and specify <b>InstanceType</b>
336      * instead. You cannot specify <b>InstanceFamily</b> and <b>InstanceType</b> in the
337      * same request.</p>
338      */
SetInstanceFamily(const char * value)339     inline void SetInstanceFamily(const char* value) { m_instanceFamilyHasBeenSet = true; m_instanceFamily.assign(value); }
340 
341     /**
342      * <p>Specifies the instance family to be supported by the Dedicated Hosts. If you
343      * specify an instance family, the Dedicated Hosts support multiple instance types
344      * within that instance family.</p> <p>If you want the Dedicated Hosts to support a
345      * specific instance type only, omit this parameter and specify <b>InstanceType</b>
346      * instead. You cannot specify <b>InstanceFamily</b> and <b>InstanceType</b> in the
347      * same request.</p>
348      */
WithInstanceFamily(const Aws::String & value)349     inline AllocateHostsRequest& WithInstanceFamily(const Aws::String& value) { SetInstanceFamily(value); return *this;}
350 
351     /**
352      * <p>Specifies the instance family to be supported by the Dedicated Hosts. If you
353      * specify an instance family, the Dedicated Hosts support multiple instance types
354      * within that instance family.</p> <p>If you want the Dedicated Hosts to support a
355      * specific instance type only, omit this parameter and specify <b>InstanceType</b>
356      * instead. You cannot specify <b>InstanceFamily</b> and <b>InstanceType</b> in the
357      * same request.</p>
358      */
WithInstanceFamily(Aws::String && value)359     inline AllocateHostsRequest& WithInstanceFamily(Aws::String&& value) { SetInstanceFamily(std::move(value)); return *this;}
360 
361     /**
362      * <p>Specifies the instance family to be supported by the Dedicated Hosts. If you
363      * specify an instance family, the Dedicated Hosts support multiple instance types
364      * within that instance family.</p> <p>If you want the Dedicated Hosts to support a
365      * specific instance type only, omit this parameter and specify <b>InstanceType</b>
366      * instead. You cannot specify <b>InstanceFamily</b> and <b>InstanceType</b> in the
367      * same request.</p>
368      */
WithInstanceFamily(const char * value)369     inline AllocateHostsRequest& WithInstanceFamily(const char* value) { SetInstanceFamily(value); return *this;}
370 
371 
372     /**
373      * <p>The number of Dedicated Hosts to allocate to your account with these
374      * parameters.</p>
375      */
GetQuantity()376     inline int GetQuantity() const{ return m_quantity; }
377 
378     /**
379      * <p>The number of Dedicated Hosts to allocate to your account with these
380      * parameters.</p>
381      */
QuantityHasBeenSet()382     inline bool QuantityHasBeenSet() const { return m_quantityHasBeenSet; }
383 
384     /**
385      * <p>The number of Dedicated Hosts to allocate to your account with these
386      * parameters.</p>
387      */
SetQuantity(int value)388     inline void SetQuantity(int value) { m_quantityHasBeenSet = true; m_quantity = value; }
389 
390     /**
391      * <p>The number of Dedicated Hosts to allocate to your account with these
392      * parameters.</p>
393      */
WithQuantity(int value)394     inline AllocateHostsRequest& WithQuantity(int value) { SetQuantity(value); return *this;}
395 
396 
397     /**
398      * <p>The tags to apply to the Dedicated Host during creation.</p>
399      */
GetTagSpecifications()400     inline const Aws::Vector<TagSpecification>& GetTagSpecifications() const{ return m_tagSpecifications; }
401 
402     /**
403      * <p>The tags to apply to the Dedicated Host during creation.</p>
404      */
TagSpecificationsHasBeenSet()405     inline bool TagSpecificationsHasBeenSet() const { return m_tagSpecificationsHasBeenSet; }
406 
407     /**
408      * <p>The tags to apply to the Dedicated Host during creation.</p>
409      */
SetTagSpecifications(const Aws::Vector<TagSpecification> & value)410     inline void SetTagSpecifications(const Aws::Vector<TagSpecification>& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications = value; }
411 
412     /**
413      * <p>The tags to apply to the Dedicated Host during creation.</p>
414      */
SetTagSpecifications(Aws::Vector<TagSpecification> && value)415     inline void SetTagSpecifications(Aws::Vector<TagSpecification>&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications = std::move(value); }
416 
417     /**
418      * <p>The tags to apply to the Dedicated Host during creation.</p>
419      */
WithTagSpecifications(const Aws::Vector<TagSpecification> & value)420     inline AllocateHostsRequest& WithTagSpecifications(const Aws::Vector<TagSpecification>& value) { SetTagSpecifications(value); return *this;}
421 
422     /**
423      * <p>The tags to apply to the Dedicated Host during creation.</p>
424      */
WithTagSpecifications(Aws::Vector<TagSpecification> && value)425     inline AllocateHostsRequest& WithTagSpecifications(Aws::Vector<TagSpecification>&& value) { SetTagSpecifications(std::move(value)); return *this;}
426 
427     /**
428      * <p>The tags to apply to the Dedicated Host during creation.</p>
429      */
AddTagSpecifications(const TagSpecification & value)430     inline AllocateHostsRequest& AddTagSpecifications(const TagSpecification& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.push_back(value); return *this; }
431 
432     /**
433      * <p>The tags to apply to the Dedicated Host during creation.</p>
434      */
AddTagSpecifications(TagSpecification && value)435     inline AllocateHostsRequest& AddTagSpecifications(TagSpecification&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.push_back(std::move(value)); return *this; }
436 
437 
438     /**
439      * <p>Indicates whether to enable or disable host recovery for the Dedicated Host.
440      * Host recovery is disabled by default. For more information, see <a
441      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-recovery.html">
442      * Host recovery</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>Default:
443      * <code>off</code> </p>
444      */
GetHostRecovery()445     inline const HostRecovery& GetHostRecovery() const{ return m_hostRecovery; }
446 
447     /**
448      * <p>Indicates whether to enable or disable host recovery for the Dedicated Host.
449      * Host recovery is disabled by default. For more information, see <a
450      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-recovery.html">
451      * Host recovery</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>Default:
452      * <code>off</code> </p>
453      */
HostRecoveryHasBeenSet()454     inline bool HostRecoveryHasBeenSet() const { return m_hostRecoveryHasBeenSet; }
455 
456     /**
457      * <p>Indicates whether to enable or disable host recovery for the Dedicated Host.
458      * Host recovery is disabled by default. For more information, see <a
459      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-recovery.html">
460      * Host recovery</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>Default:
461      * <code>off</code> </p>
462      */
SetHostRecovery(const HostRecovery & value)463     inline void SetHostRecovery(const HostRecovery& value) { m_hostRecoveryHasBeenSet = true; m_hostRecovery = value; }
464 
465     /**
466      * <p>Indicates whether to enable or disable host recovery for the Dedicated Host.
467      * Host recovery is disabled by default. For more information, see <a
468      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-recovery.html">
469      * Host recovery</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>Default:
470      * <code>off</code> </p>
471      */
SetHostRecovery(HostRecovery && value)472     inline void SetHostRecovery(HostRecovery&& value) { m_hostRecoveryHasBeenSet = true; m_hostRecovery = std::move(value); }
473 
474     /**
475      * <p>Indicates whether to enable or disable host recovery for the Dedicated Host.
476      * Host recovery is disabled by default. For more information, see <a
477      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-recovery.html">
478      * Host recovery</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>Default:
479      * <code>off</code> </p>
480      */
WithHostRecovery(const HostRecovery & value)481     inline AllocateHostsRequest& WithHostRecovery(const HostRecovery& value) { SetHostRecovery(value); return *this;}
482 
483     /**
484      * <p>Indicates whether to enable or disable host recovery for the Dedicated Host.
485      * Host recovery is disabled by default. For more information, see <a
486      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-recovery.html">
487      * Host recovery</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>Default:
488      * <code>off</code> </p>
489      */
WithHostRecovery(HostRecovery && value)490     inline AllocateHostsRequest& WithHostRecovery(HostRecovery&& value) { SetHostRecovery(std::move(value)); return *this;}
491 
492   private:
493 
494     AutoPlacement m_autoPlacement;
495     bool m_autoPlacementHasBeenSet;
496 
497     Aws::String m_availabilityZone;
498     bool m_availabilityZoneHasBeenSet;
499 
500     Aws::String m_clientToken;
501     bool m_clientTokenHasBeenSet;
502 
503     Aws::String m_instanceType;
504     bool m_instanceTypeHasBeenSet;
505 
506     Aws::String m_instanceFamily;
507     bool m_instanceFamilyHasBeenSet;
508 
509     int m_quantity;
510     bool m_quantityHasBeenSet;
511 
512     Aws::Vector<TagSpecification> m_tagSpecifications;
513     bool m_tagSpecificationsHasBeenSet;
514 
515     HostRecovery m_hostRecovery;
516     bool m_hostRecoveryHasBeenSet;
517   };
518 
519 } // namespace Model
520 } // namespace EC2
521 } // namespace Aws
522