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/core/utils/memory/stl/AWSStreamFwd.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/DateTime.h>
11 #include <aws/ec2/model/ScheduledInstanceRecurrence.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Xml
19 {
20   class XmlNode;
21 } // namespace Xml
22 } // namespace Utils
23 namespace EC2
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>Describes a Scheduled Instance.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ScheduledInstance">AWS
31    * API Reference</a></p>
32    */
33   class AWS_EC2_API ScheduledInstance
34   {
35   public:
36     ScheduledInstance();
37     ScheduledInstance(const Aws::Utils::Xml::XmlNode& xmlNode);
38     ScheduledInstance& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
39 
40     void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
41     void OutputToStream(Aws::OStream& oStream, const char* location) const;
42 
43 
44     /**
45      * <p>The Availability Zone.</p>
46      */
GetAvailabilityZone()47     inline const Aws::String& GetAvailabilityZone() const{ return m_availabilityZone; }
48 
49     /**
50      * <p>The Availability Zone.</p>
51      */
AvailabilityZoneHasBeenSet()52     inline bool AvailabilityZoneHasBeenSet() const { return m_availabilityZoneHasBeenSet; }
53 
54     /**
55      * <p>The Availability Zone.</p>
56      */
SetAvailabilityZone(const Aws::String & value)57     inline void SetAvailabilityZone(const Aws::String& value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone = value; }
58 
59     /**
60      * <p>The Availability Zone.</p>
61      */
SetAvailabilityZone(Aws::String && value)62     inline void SetAvailabilityZone(Aws::String&& value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone = std::move(value); }
63 
64     /**
65      * <p>The Availability Zone.</p>
66      */
SetAvailabilityZone(const char * value)67     inline void SetAvailabilityZone(const char* value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone.assign(value); }
68 
69     /**
70      * <p>The Availability Zone.</p>
71      */
WithAvailabilityZone(const Aws::String & value)72     inline ScheduledInstance& WithAvailabilityZone(const Aws::String& value) { SetAvailabilityZone(value); return *this;}
73 
74     /**
75      * <p>The Availability Zone.</p>
76      */
WithAvailabilityZone(Aws::String && value)77     inline ScheduledInstance& WithAvailabilityZone(Aws::String&& value) { SetAvailabilityZone(std::move(value)); return *this;}
78 
79     /**
80      * <p>The Availability Zone.</p>
81      */
WithAvailabilityZone(const char * value)82     inline ScheduledInstance& WithAvailabilityZone(const char* value) { SetAvailabilityZone(value); return *this;}
83 
84 
85     /**
86      * <p>The date when the Scheduled Instance was purchased.</p>
87      */
GetCreateDate()88     inline const Aws::Utils::DateTime& GetCreateDate() const{ return m_createDate; }
89 
90     /**
91      * <p>The date when the Scheduled Instance was purchased.</p>
92      */
CreateDateHasBeenSet()93     inline bool CreateDateHasBeenSet() const { return m_createDateHasBeenSet; }
94 
95     /**
96      * <p>The date when the Scheduled Instance was purchased.</p>
97      */
SetCreateDate(const Aws::Utils::DateTime & value)98     inline void SetCreateDate(const Aws::Utils::DateTime& value) { m_createDateHasBeenSet = true; m_createDate = value; }
99 
100     /**
101      * <p>The date when the Scheduled Instance was purchased.</p>
102      */
SetCreateDate(Aws::Utils::DateTime && value)103     inline void SetCreateDate(Aws::Utils::DateTime&& value) { m_createDateHasBeenSet = true; m_createDate = std::move(value); }
104 
105     /**
106      * <p>The date when the Scheduled Instance was purchased.</p>
107      */
WithCreateDate(const Aws::Utils::DateTime & value)108     inline ScheduledInstance& WithCreateDate(const Aws::Utils::DateTime& value) { SetCreateDate(value); return *this;}
109 
110     /**
111      * <p>The date when the Scheduled Instance was purchased.</p>
112      */
WithCreateDate(Aws::Utils::DateTime && value)113     inline ScheduledInstance& WithCreateDate(Aws::Utils::DateTime&& value) { SetCreateDate(std::move(value)); return *this;}
114 
115 
116     /**
117      * <p>The hourly price for a single instance.</p>
118      */
GetHourlyPrice()119     inline const Aws::String& GetHourlyPrice() const{ return m_hourlyPrice; }
120 
121     /**
122      * <p>The hourly price for a single instance.</p>
123      */
HourlyPriceHasBeenSet()124     inline bool HourlyPriceHasBeenSet() const { return m_hourlyPriceHasBeenSet; }
125 
126     /**
127      * <p>The hourly price for a single instance.</p>
128      */
SetHourlyPrice(const Aws::String & value)129     inline void SetHourlyPrice(const Aws::String& value) { m_hourlyPriceHasBeenSet = true; m_hourlyPrice = value; }
130 
131     /**
132      * <p>The hourly price for a single instance.</p>
133      */
SetHourlyPrice(Aws::String && value)134     inline void SetHourlyPrice(Aws::String&& value) { m_hourlyPriceHasBeenSet = true; m_hourlyPrice = std::move(value); }
135 
136     /**
137      * <p>The hourly price for a single instance.</p>
138      */
SetHourlyPrice(const char * value)139     inline void SetHourlyPrice(const char* value) { m_hourlyPriceHasBeenSet = true; m_hourlyPrice.assign(value); }
140 
141     /**
142      * <p>The hourly price for a single instance.</p>
143      */
WithHourlyPrice(const Aws::String & value)144     inline ScheduledInstance& WithHourlyPrice(const Aws::String& value) { SetHourlyPrice(value); return *this;}
145 
146     /**
147      * <p>The hourly price for a single instance.</p>
148      */
WithHourlyPrice(Aws::String && value)149     inline ScheduledInstance& WithHourlyPrice(Aws::String&& value) { SetHourlyPrice(std::move(value)); return *this;}
150 
151     /**
152      * <p>The hourly price for a single instance.</p>
153      */
WithHourlyPrice(const char * value)154     inline ScheduledInstance& WithHourlyPrice(const char* value) { SetHourlyPrice(value); return *this;}
155 
156 
157     /**
158      * <p>The number of instances.</p>
159      */
GetInstanceCount()160     inline int GetInstanceCount() const{ return m_instanceCount; }
161 
162     /**
163      * <p>The number of instances.</p>
164      */
InstanceCountHasBeenSet()165     inline bool InstanceCountHasBeenSet() const { return m_instanceCountHasBeenSet; }
166 
167     /**
168      * <p>The number of instances.</p>
169      */
SetInstanceCount(int value)170     inline void SetInstanceCount(int value) { m_instanceCountHasBeenSet = true; m_instanceCount = value; }
171 
172     /**
173      * <p>The number of instances.</p>
174      */
WithInstanceCount(int value)175     inline ScheduledInstance& WithInstanceCount(int value) { SetInstanceCount(value); return *this;}
176 
177 
178     /**
179      * <p>The instance type.</p>
180      */
GetInstanceType()181     inline const Aws::String& GetInstanceType() const{ return m_instanceType; }
182 
183     /**
184      * <p>The instance type.</p>
185      */
InstanceTypeHasBeenSet()186     inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; }
187 
188     /**
189      * <p>The instance type.</p>
190      */
SetInstanceType(const Aws::String & value)191     inline void SetInstanceType(const Aws::String& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; }
192 
193     /**
194      * <p>The instance type.</p>
195      */
SetInstanceType(Aws::String && value)196     inline void SetInstanceType(Aws::String&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); }
197 
198     /**
199      * <p>The instance type.</p>
200      */
SetInstanceType(const char * value)201     inline void SetInstanceType(const char* value) { m_instanceTypeHasBeenSet = true; m_instanceType.assign(value); }
202 
203     /**
204      * <p>The instance type.</p>
205      */
WithInstanceType(const Aws::String & value)206     inline ScheduledInstance& WithInstanceType(const Aws::String& value) { SetInstanceType(value); return *this;}
207 
208     /**
209      * <p>The instance type.</p>
210      */
WithInstanceType(Aws::String && value)211     inline ScheduledInstance& WithInstanceType(Aws::String&& value) { SetInstanceType(std::move(value)); return *this;}
212 
213     /**
214      * <p>The instance type.</p>
215      */
WithInstanceType(const char * value)216     inline ScheduledInstance& WithInstanceType(const char* value) { SetInstanceType(value); return *this;}
217 
218 
219     /**
220      * <p>The network platform (<code>EC2-Classic</code> or <code>EC2-VPC</code>).</p>
221      */
GetNetworkPlatform()222     inline const Aws::String& GetNetworkPlatform() const{ return m_networkPlatform; }
223 
224     /**
225      * <p>The network platform (<code>EC2-Classic</code> or <code>EC2-VPC</code>).</p>
226      */
NetworkPlatformHasBeenSet()227     inline bool NetworkPlatformHasBeenSet() const { return m_networkPlatformHasBeenSet; }
228 
229     /**
230      * <p>The network platform (<code>EC2-Classic</code> or <code>EC2-VPC</code>).</p>
231      */
SetNetworkPlatform(const Aws::String & value)232     inline void SetNetworkPlatform(const Aws::String& value) { m_networkPlatformHasBeenSet = true; m_networkPlatform = value; }
233 
234     /**
235      * <p>The network platform (<code>EC2-Classic</code> or <code>EC2-VPC</code>).</p>
236      */
SetNetworkPlatform(Aws::String && value)237     inline void SetNetworkPlatform(Aws::String&& value) { m_networkPlatformHasBeenSet = true; m_networkPlatform = std::move(value); }
238 
239     /**
240      * <p>The network platform (<code>EC2-Classic</code> or <code>EC2-VPC</code>).</p>
241      */
SetNetworkPlatform(const char * value)242     inline void SetNetworkPlatform(const char* value) { m_networkPlatformHasBeenSet = true; m_networkPlatform.assign(value); }
243 
244     /**
245      * <p>The network platform (<code>EC2-Classic</code> or <code>EC2-VPC</code>).</p>
246      */
WithNetworkPlatform(const Aws::String & value)247     inline ScheduledInstance& WithNetworkPlatform(const Aws::String& value) { SetNetworkPlatform(value); return *this;}
248 
249     /**
250      * <p>The network platform (<code>EC2-Classic</code> or <code>EC2-VPC</code>).</p>
251      */
WithNetworkPlatform(Aws::String && value)252     inline ScheduledInstance& WithNetworkPlatform(Aws::String&& value) { SetNetworkPlatform(std::move(value)); return *this;}
253 
254     /**
255      * <p>The network platform (<code>EC2-Classic</code> or <code>EC2-VPC</code>).</p>
256      */
WithNetworkPlatform(const char * value)257     inline ScheduledInstance& WithNetworkPlatform(const char* value) { SetNetworkPlatform(value); return *this;}
258 
259 
260     /**
261      * <p>The time for the next schedule to start.</p>
262      */
GetNextSlotStartTime()263     inline const Aws::Utils::DateTime& GetNextSlotStartTime() const{ return m_nextSlotStartTime; }
264 
265     /**
266      * <p>The time for the next schedule to start.</p>
267      */
NextSlotStartTimeHasBeenSet()268     inline bool NextSlotStartTimeHasBeenSet() const { return m_nextSlotStartTimeHasBeenSet; }
269 
270     /**
271      * <p>The time for the next schedule to start.</p>
272      */
SetNextSlotStartTime(const Aws::Utils::DateTime & value)273     inline void SetNextSlotStartTime(const Aws::Utils::DateTime& value) { m_nextSlotStartTimeHasBeenSet = true; m_nextSlotStartTime = value; }
274 
275     /**
276      * <p>The time for the next schedule to start.</p>
277      */
SetNextSlotStartTime(Aws::Utils::DateTime && value)278     inline void SetNextSlotStartTime(Aws::Utils::DateTime&& value) { m_nextSlotStartTimeHasBeenSet = true; m_nextSlotStartTime = std::move(value); }
279 
280     /**
281      * <p>The time for the next schedule to start.</p>
282      */
WithNextSlotStartTime(const Aws::Utils::DateTime & value)283     inline ScheduledInstance& WithNextSlotStartTime(const Aws::Utils::DateTime& value) { SetNextSlotStartTime(value); return *this;}
284 
285     /**
286      * <p>The time for the next schedule to start.</p>
287      */
WithNextSlotStartTime(Aws::Utils::DateTime && value)288     inline ScheduledInstance& WithNextSlotStartTime(Aws::Utils::DateTime&& value) { SetNextSlotStartTime(std::move(value)); return *this;}
289 
290 
291     /**
292      * <p>The platform (<code>Linux/UNIX</code> or <code>Windows</code>).</p>
293      */
GetPlatform()294     inline const Aws::String& GetPlatform() const{ return m_platform; }
295 
296     /**
297      * <p>The platform (<code>Linux/UNIX</code> or <code>Windows</code>).</p>
298      */
PlatformHasBeenSet()299     inline bool PlatformHasBeenSet() const { return m_platformHasBeenSet; }
300 
301     /**
302      * <p>The platform (<code>Linux/UNIX</code> or <code>Windows</code>).</p>
303      */
SetPlatform(const Aws::String & value)304     inline void SetPlatform(const Aws::String& value) { m_platformHasBeenSet = true; m_platform = value; }
305 
306     /**
307      * <p>The platform (<code>Linux/UNIX</code> or <code>Windows</code>).</p>
308      */
SetPlatform(Aws::String && value)309     inline void SetPlatform(Aws::String&& value) { m_platformHasBeenSet = true; m_platform = std::move(value); }
310 
311     /**
312      * <p>The platform (<code>Linux/UNIX</code> or <code>Windows</code>).</p>
313      */
SetPlatform(const char * value)314     inline void SetPlatform(const char* value) { m_platformHasBeenSet = true; m_platform.assign(value); }
315 
316     /**
317      * <p>The platform (<code>Linux/UNIX</code> or <code>Windows</code>).</p>
318      */
WithPlatform(const Aws::String & value)319     inline ScheduledInstance& WithPlatform(const Aws::String& value) { SetPlatform(value); return *this;}
320 
321     /**
322      * <p>The platform (<code>Linux/UNIX</code> or <code>Windows</code>).</p>
323      */
WithPlatform(Aws::String && value)324     inline ScheduledInstance& WithPlatform(Aws::String&& value) { SetPlatform(std::move(value)); return *this;}
325 
326     /**
327      * <p>The platform (<code>Linux/UNIX</code> or <code>Windows</code>).</p>
328      */
WithPlatform(const char * value)329     inline ScheduledInstance& WithPlatform(const char* value) { SetPlatform(value); return *this;}
330 
331 
332     /**
333      * <p>The time that the previous schedule ended or will end.</p>
334      */
GetPreviousSlotEndTime()335     inline const Aws::Utils::DateTime& GetPreviousSlotEndTime() const{ return m_previousSlotEndTime; }
336 
337     /**
338      * <p>The time that the previous schedule ended or will end.</p>
339      */
PreviousSlotEndTimeHasBeenSet()340     inline bool PreviousSlotEndTimeHasBeenSet() const { return m_previousSlotEndTimeHasBeenSet; }
341 
342     /**
343      * <p>The time that the previous schedule ended or will end.</p>
344      */
SetPreviousSlotEndTime(const Aws::Utils::DateTime & value)345     inline void SetPreviousSlotEndTime(const Aws::Utils::DateTime& value) { m_previousSlotEndTimeHasBeenSet = true; m_previousSlotEndTime = value; }
346 
347     /**
348      * <p>The time that the previous schedule ended or will end.</p>
349      */
SetPreviousSlotEndTime(Aws::Utils::DateTime && value)350     inline void SetPreviousSlotEndTime(Aws::Utils::DateTime&& value) { m_previousSlotEndTimeHasBeenSet = true; m_previousSlotEndTime = std::move(value); }
351 
352     /**
353      * <p>The time that the previous schedule ended or will end.</p>
354      */
WithPreviousSlotEndTime(const Aws::Utils::DateTime & value)355     inline ScheduledInstance& WithPreviousSlotEndTime(const Aws::Utils::DateTime& value) { SetPreviousSlotEndTime(value); return *this;}
356 
357     /**
358      * <p>The time that the previous schedule ended or will end.</p>
359      */
WithPreviousSlotEndTime(Aws::Utils::DateTime && value)360     inline ScheduledInstance& WithPreviousSlotEndTime(Aws::Utils::DateTime&& value) { SetPreviousSlotEndTime(std::move(value)); return *this;}
361 
362 
363     /**
364      * <p>The schedule recurrence.</p>
365      */
GetRecurrence()366     inline const ScheduledInstanceRecurrence& GetRecurrence() const{ return m_recurrence; }
367 
368     /**
369      * <p>The schedule recurrence.</p>
370      */
RecurrenceHasBeenSet()371     inline bool RecurrenceHasBeenSet() const { return m_recurrenceHasBeenSet; }
372 
373     /**
374      * <p>The schedule recurrence.</p>
375      */
SetRecurrence(const ScheduledInstanceRecurrence & value)376     inline void SetRecurrence(const ScheduledInstanceRecurrence& value) { m_recurrenceHasBeenSet = true; m_recurrence = value; }
377 
378     /**
379      * <p>The schedule recurrence.</p>
380      */
SetRecurrence(ScheduledInstanceRecurrence && value)381     inline void SetRecurrence(ScheduledInstanceRecurrence&& value) { m_recurrenceHasBeenSet = true; m_recurrence = std::move(value); }
382 
383     /**
384      * <p>The schedule recurrence.</p>
385      */
WithRecurrence(const ScheduledInstanceRecurrence & value)386     inline ScheduledInstance& WithRecurrence(const ScheduledInstanceRecurrence& value) { SetRecurrence(value); return *this;}
387 
388     /**
389      * <p>The schedule recurrence.</p>
390      */
WithRecurrence(ScheduledInstanceRecurrence && value)391     inline ScheduledInstance& WithRecurrence(ScheduledInstanceRecurrence&& value) { SetRecurrence(std::move(value)); return *this;}
392 
393 
394     /**
395      * <p>The Scheduled Instance ID.</p>
396      */
GetScheduledInstanceId()397     inline const Aws::String& GetScheduledInstanceId() const{ return m_scheduledInstanceId; }
398 
399     /**
400      * <p>The Scheduled Instance ID.</p>
401      */
ScheduledInstanceIdHasBeenSet()402     inline bool ScheduledInstanceIdHasBeenSet() const { return m_scheduledInstanceIdHasBeenSet; }
403 
404     /**
405      * <p>The Scheduled Instance ID.</p>
406      */
SetScheduledInstanceId(const Aws::String & value)407     inline void SetScheduledInstanceId(const Aws::String& value) { m_scheduledInstanceIdHasBeenSet = true; m_scheduledInstanceId = value; }
408 
409     /**
410      * <p>The Scheduled Instance ID.</p>
411      */
SetScheduledInstanceId(Aws::String && value)412     inline void SetScheduledInstanceId(Aws::String&& value) { m_scheduledInstanceIdHasBeenSet = true; m_scheduledInstanceId = std::move(value); }
413 
414     /**
415      * <p>The Scheduled Instance ID.</p>
416      */
SetScheduledInstanceId(const char * value)417     inline void SetScheduledInstanceId(const char* value) { m_scheduledInstanceIdHasBeenSet = true; m_scheduledInstanceId.assign(value); }
418 
419     /**
420      * <p>The Scheduled Instance ID.</p>
421      */
WithScheduledInstanceId(const Aws::String & value)422     inline ScheduledInstance& WithScheduledInstanceId(const Aws::String& value) { SetScheduledInstanceId(value); return *this;}
423 
424     /**
425      * <p>The Scheduled Instance ID.</p>
426      */
WithScheduledInstanceId(Aws::String && value)427     inline ScheduledInstance& WithScheduledInstanceId(Aws::String&& value) { SetScheduledInstanceId(std::move(value)); return *this;}
428 
429     /**
430      * <p>The Scheduled Instance ID.</p>
431      */
WithScheduledInstanceId(const char * value)432     inline ScheduledInstance& WithScheduledInstanceId(const char* value) { SetScheduledInstanceId(value); return *this;}
433 
434 
435     /**
436      * <p>The number of hours in the schedule.</p>
437      */
GetSlotDurationInHours()438     inline int GetSlotDurationInHours() const{ return m_slotDurationInHours; }
439 
440     /**
441      * <p>The number of hours in the schedule.</p>
442      */
SlotDurationInHoursHasBeenSet()443     inline bool SlotDurationInHoursHasBeenSet() const { return m_slotDurationInHoursHasBeenSet; }
444 
445     /**
446      * <p>The number of hours in the schedule.</p>
447      */
SetSlotDurationInHours(int value)448     inline void SetSlotDurationInHours(int value) { m_slotDurationInHoursHasBeenSet = true; m_slotDurationInHours = value; }
449 
450     /**
451      * <p>The number of hours in the schedule.</p>
452      */
WithSlotDurationInHours(int value)453     inline ScheduledInstance& WithSlotDurationInHours(int value) { SetSlotDurationInHours(value); return *this;}
454 
455 
456     /**
457      * <p>The end date for the Scheduled Instance.</p>
458      */
GetTermEndDate()459     inline const Aws::Utils::DateTime& GetTermEndDate() const{ return m_termEndDate; }
460 
461     /**
462      * <p>The end date for the Scheduled Instance.</p>
463      */
TermEndDateHasBeenSet()464     inline bool TermEndDateHasBeenSet() const { return m_termEndDateHasBeenSet; }
465 
466     /**
467      * <p>The end date for the Scheduled Instance.</p>
468      */
SetTermEndDate(const Aws::Utils::DateTime & value)469     inline void SetTermEndDate(const Aws::Utils::DateTime& value) { m_termEndDateHasBeenSet = true; m_termEndDate = value; }
470 
471     /**
472      * <p>The end date for the Scheduled Instance.</p>
473      */
SetTermEndDate(Aws::Utils::DateTime && value)474     inline void SetTermEndDate(Aws::Utils::DateTime&& value) { m_termEndDateHasBeenSet = true; m_termEndDate = std::move(value); }
475 
476     /**
477      * <p>The end date for the Scheduled Instance.</p>
478      */
WithTermEndDate(const Aws::Utils::DateTime & value)479     inline ScheduledInstance& WithTermEndDate(const Aws::Utils::DateTime& value) { SetTermEndDate(value); return *this;}
480 
481     /**
482      * <p>The end date for the Scheduled Instance.</p>
483      */
WithTermEndDate(Aws::Utils::DateTime && value)484     inline ScheduledInstance& WithTermEndDate(Aws::Utils::DateTime&& value) { SetTermEndDate(std::move(value)); return *this;}
485 
486 
487     /**
488      * <p>The start date for the Scheduled Instance.</p>
489      */
GetTermStartDate()490     inline const Aws::Utils::DateTime& GetTermStartDate() const{ return m_termStartDate; }
491 
492     /**
493      * <p>The start date for the Scheduled Instance.</p>
494      */
TermStartDateHasBeenSet()495     inline bool TermStartDateHasBeenSet() const { return m_termStartDateHasBeenSet; }
496 
497     /**
498      * <p>The start date for the Scheduled Instance.</p>
499      */
SetTermStartDate(const Aws::Utils::DateTime & value)500     inline void SetTermStartDate(const Aws::Utils::DateTime& value) { m_termStartDateHasBeenSet = true; m_termStartDate = value; }
501 
502     /**
503      * <p>The start date for the Scheduled Instance.</p>
504      */
SetTermStartDate(Aws::Utils::DateTime && value)505     inline void SetTermStartDate(Aws::Utils::DateTime&& value) { m_termStartDateHasBeenSet = true; m_termStartDate = std::move(value); }
506 
507     /**
508      * <p>The start date for the Scheduled Instance.</p>
509      */
WithTermStartDate(const Aws::Utils::DateTime & value)510     inline ScheduledInstance& WithTermStartDate(const Aws::Utils::DateTime& value) { SetTermStartDate(value); return *this;}
511 
512     /**
513      * <p>The start date for the Scheduled Instance.</p>
514      */
WithTermStartDate(Aws::Utils::DateTime && value)515     inline ScheduledInstance& WithTermStartDate(Aws::Utils::DateTime&& value) { SetTermStartDate(std::move(value)); return *this;}
516 
517 
518     /**
519      * <p>The total number of hours for a single instance for the entire term.</p>
520      */
GetTotalScheduledInstanceHours()521     inline int GetTotalScheduledInstanceHours() const{ return m_totalScheduledInstanceHours; }
522 
523     /**
524      * <p>The total number of hours for a single instance for the entire term.</p>
525      */
TotalScheduledInstanceHoursHasBeenSet()526     inline bool TotalScheduledInstanceHoursHasBeenSet() const { return m_totalScheduledInstanceHoursHasBeenSet; }
527 
528     /**
529      * <p>The total number of hours for a single instance for the entire term.</p>
530      */
SetTotalScheduledInstanceHours(int value)531     inline void SetTotalScheduledInstanceHours(int value) { m_totalScheduledInstanceHoursHasBeenSet = true; m_totalScheduledInstanceHours = value; }
532 
533     /**
534      * <p>The total number of hours for a single instance for the entire term.</p>
535      */
WithTotalScheduledInstanceHours(int value)536     inline ScheduledInstance& WithTotalScheduledInstanceHours(int value) { SetTotalScheduledInstanceHours(value); return *this;}
537 
538   private:
539 
540     Aws::String m_availabilityZone;
541     bool m_availabilityZoneHasBeenSet;
542 
543     Aws::Utils::DateTime m_createDate;
544     bool m_createDateHasBeenSet;
545 
546     Aws::String m_hourlyPrice;
547     bool m_hourlyPriceHasBeenSet;
548 
549     int m_instanceCount;
550     bool m_instanceCountHasBeenSet;
551 
552     Aws::String m_instanceType;
553     bool m_instanceTypeHasBeenSet;
554 
555     Aws::String m_networkPlatform;
556     bool m_networkPlatformHasBeenSet;
557 
558     Aws::Utils::DateTime m_nextSlotStartTime;
559     bool m_nextSlotStartTimeHasBeenSet;
560 
561     Aws::String m_platform;
562     bool m_platformHasBeenSet;
563 
564     Aws::Utils::DateTime m_previousSlotEndTime;
565     bool m_previousSlotEndTimeHasBeenSet;
566 
567     ScheduledInstanceRecurrence m_recurrence;
568     bool m_recurrenceHasBeenSet;
569 
570     Aws::String m_scheduledInstanceId;
571     bool m_scheduledInstanceIdHasBeenSet;
572 
573     int m_slotDurationInHours;
574     bool m_slotDurationInHoursHasBeenSet;
575 
576     Aws::Utils::DateTime m_termEndDate;
577     bool m_termEndDateHasBeenSet;
578 
579     Aws::Utils::DateTime m_termStartDate;
580     bool m_termStartDateHasBeenSet;
581 
582     int m_totalScheduledInstanceHours;
583     bool m_totalScheduledInstanceHoursHasBeenSet;
584   };
585 
586 } // namespace Model
587 } // namespace EC2
588 } // namespace Aws
589