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/opsworkscm/OpsWorksCM_EXPORTS.h>
8 #include <aws/opsworkscm/OpsWorksCMRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/opsworkscm/model/EngineAttribute.h>
12 #include <aws/opsworkscm/model/Tag.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace OpsWorksCM
18 {
19 namespace Model
20 {
21 
22   /**
23    */
24   class AWS_OPSWORKSCM_API CreateServerRequest : public OpsWorksCMRequest
25   {
26   public:
27     CreateServerRequest();
28 
29     // Service request name is the Operation name which will send this request out,
30     // each operation should has unique request name, so that we can get operation's name from this request.
31     // Note: this is not true for response, multiple operations may have the same response name,
32     // so we can not get operation's name from response.
GetServiceRequestName()33     inline virtual const char* GetServiceRequestName() const override { return "CreateServer"; }
34 
35     Aws::String SerializePayload() const override;
36 
37     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
38 
39 
40     /**
41      * <p> Associate a public IP address with a server that you are launching. Valid
42      * values are <code>true</code> or <code>false</code>. The default value is
43      * <code>true</code>. </p>
44      */
GetAssociatePublicIpAddress()45     inline bool GetAssociatePublicIpAddress() const{ return m_associatePublicIpAddress; }
46 
47     /**
48      * <p> Associate a public IP address with a server that you are launching. Valid
49      * values are <code>true</code> or <code>false</code>. The default value is
50      * <code>true</code>. </p>
51      */
AssociatePublicIpAddressHasBeenSet()52     inline bool AssociatePublicIpAddressHasBeenSet() const { return m_associatePublicIpAddressHasBeenSet; }
53 
54     /**
55      * <p> Associate a public IP address with a server that you are launching. Valid
56      * values are <code>true</code> or <code>false</code>. The default value is
57      * <code>true</code>. </p>
58      */
SetAssociatePublicIpAddress(bool value)59     inline void SetAssociatePublicIpAddress(bool value) { m_associatePublicIpAddressHasBeenSet = true; m_associatePublicIpAddress = value; }
60 
61     /**
62      * <p> Associate a public IP address with a server that you are launching. Valid
63      * values are <code>true</code> or <code>false</code>. The default value is
64      * <code>true</code>. </p>
65      */
WithAssociatePublicIpAddress(bool value)66     inline CreateServerRequest& WithAssociatePublicIpAddress(bool value) { SetAssociatePublicIpAddress(value); return *this;}
67 
68 
69     /**
70      * <p>An optional public endpoint of a server, such as
71      * <code>https://aws.my-company.com</code>. To access the server, create a CNAME
72      * DNS record in your preferred DNS service that points the custom domain to the
73      * endpoint that is generated when the server is created (the value of the
74      * CreateServer Endpoint attribute). You cannot access the server by using the
75      * generated <code>Endpoint</code> value if the server is using a custom domain. If
76      * you specify a custom domain, you must also specify values for
77      * <code>CustomCertificate</code> and <code>CustomPrivateKey</code>.</p>
78      */
GetCustomDomain()79     inline const Aws::String& GetCustomDomain() const{ return m_customDomain; }
80 
81     /**
82      * <p>An optional public endpoint of a server, such as
83      * <code>https://aws.my-company.com</code>. To access the server, create a CNAME
84      * DNS record in your preferred DNS service that points the custom domain to the
85      * endpoint that is generated when the server is created (the value of the
86      * CreateServer Endpoint attribute). You cannot access the server by using the
87      * generated <code>Endpoint</code> value if the server is using a custom domain. If
88      * you specify a custom domain, you must also specify values for
89      * <code>CustomCertificate</code> and <code>CustomPrivateKey</code>.</p>
90      */
CustomDomainHasBeenSet()91     inline bool CustomDomainHasBeenSet() const { return m_customDomainHasBeenSet; }
92 
93     /**
94      * <p>An optional public endpoint of a server, such as
95      * <code>https://aws.my-company.com</code>. To access the server, create a CNAME
96      * DNS record in your preferred DNS service that points the custom domain to the
97      * endpoint that is generated when the server is created (the value of the
98      * CreateServer Endpoint attribute). You cannot access the server by using the
99      * generated <code>Endpoint</code> value if the server is using a custom domain. If
100      * you specify a custom domain, you must also specify values for
101      * <code>CustomCertificate</code> and <code>CustomPrivateKey</code>.</p>
102      */
SetCustomDomain(const Aws::String & value)103     inline void SetCustomDomain(const Aws::String& value) { m_customDomainHasBeenSet = true; m_customDomain = value; }
104 
105     /**
106      * <p>An optional public endpoint of a server, such as
107      * <code>https://aws.my-company.com</code>. To access the server, create a CNAME
108      * DNS record in your preferred DNS service that points the custom domain to the
109      * endpoint that is generated when the server is created (the value of the
110      * CreateServer Endpoint attribute). You cannot access the server by using the
111      * generated <code>Endpoint</code> value if the server is using a custom domain. If
112      * you specify a custom domain, you must also specify values for
113      * <code>CustomCertificate</code> and <code>CustomPrivateKey</code>.</p>
114      */
SetCustomDomain(Aws::String && value)115     inline void SetCustomDomain(Aws::String&& value) { m_customDomainHasBeenSet = true; m_customDomain = std::move(value); }
116 
117     /**
118      * <p>An optional public endpoint of a server, such as
119      * <code>https://aws.my-company.com</code>. To access the server, create a CNAME
120      * DNS record in your preferred DNS service that points the custom domain to the
121      * endpoint that is generated when the server is created (the value of the
122      * CreateServer Endpoint attribute). You cannot access the server by using the
123      * generated <code>Endpoint</code> value if the server is using a custom domain. If
124      * you specify a custom domain, you must also specify values for
125      * <code>CustomCertificate</code> and <code>CustomPrivateKey</code>.</p>
126      */
SetCustomDomain(const char * value)127     inline void SetCustomDomain(const char* value) { m_customDomainHasBeenSet = true; m_customDomain.assign(value); }
128 
129     /**
130      * <p>An optional public endpoint of a server, such as
131      * <code>https://aws.my-company.com</code>. To access the server, create a CNAME
132      * DNS record in your preferred DNS service that points the custom domain to the
133      * endpoint that is generated when the server is created (the value of the
134      * CreateServer Endpoint attribute). You cannot access the server by using the
135      * generated <code>Endpoint</code> value if the server is using a custom domain. If
136      * you specify a custom domain, you must also specify values for
137      * <code>CustomCertificate</code> and <code>CustomPrivateKey</code>.</p>
138      */
WithCustomDomain(const Aws::String & value)139     inline CreateServerRequest& WithCustomDomain(const Aws::String& value) { SetCustomDomain(value); return *this;}
140 
141     /**
142      * <p>An optional public endpoint of a server, such as
143      * <code>https://aws.my-company.com</code>. To access the server, create a CNAME
144      * DNS record in your preferred DNS service that points the custom domain to the
145      * endpoint that is generated when the server is created (the value of the
146      * CreateServer Endpoint attribute). You cannot access the server by using the
147      * generated <code>Endpoint</code> value if the server is using a custom domain. If
148      * you specify a custom domain, you must also specify values for
149      * <code>CustomCertificate</code> and <code>CustomPrivateKey</code>.</p>
150      */
WithCustomDomain(Aws::String && value)151     inline CreateServerRequest& WithCustomDomain(Aws::String&& value) { SetCustomDomain(std::move(value)); return *this;}
152 
153     /**
154      * <p>An optional public endpoint of a server, such as
155      * <code>https://aws.my-company.com</code>. To access the server, create a CNAME
156      * DNS record in your preferred DNS service that points the custom domain to the
157      * endpoint that is generated when the server is created (the value of the
158      * CreateServer Endpoint attribute). You cannot access the server by using the
159      * generated <code>Endpoint</code> value if the server is using a custom domain. If
160      * you specify a custom domain, you must also specify values for
161      * <code>CustomCertificate</code> and <code>CustomPrivateKey</code>.</p>
162      */
WithCustomDomain(const char * value)163     inline CreateServerRequest& WithCustomDomain(const char* value) { SetCustomDomain(value); return *this;}
164 
165 
166     /**
167      * <p>A PEM-formatted HTTPS certificate. The value can be be a single, self-signed
168      * certificate, or a certificate chain. If you specify a custom certificate, you
169      * must also specify values for <code>CustomDomain</code> and
170      * <code>CustomPrivateKey</code>. The following are requirements for the
171      * <code>CustomCertificate</code> value:</p> <ul> <li> <p>You can provide either a
172      * self-signed, custom certificate, or the full certificate chain.</p> </li> <li>
173      * <p>The certificate must be a valid X509 certificate, or a certificate chain in
174      * PEM format.</p> </li> <li> <p>The certificate must be valid at the time of
175      * upload. A certificate can't be used before its validity period begins (the
176      * certificate's <code>NotBefore</code> date), or after it expires (the
177      * certificate's <code>NotAfter</code> date).</p> </li> <li> <p>The certificate’s
178      * common name or subject alternative names (SANs), if present, must match the
179      * value of <code>CustomDomain</code>.</p> </li> <li> <p>The certificate must match
180      * the value of <code>CustomPrivateKey</code>.</p> </li> </ul>
181      */
GetCustomCertificate()182     inline const Aws::String& GetCustomCertificate() const{ return m_customCertificate; }
183 
184     /**
185      * <p>A PEM-formatted HTTPS certificate. The value can be be a single, self-signed
186      * certificate, or a certificate chain. If you specify a custom certificate, you
187      * must also specify values for <code>CustomDomain</code> and
188      * <code>CustomPrivateKey</code>. The following are requirements for the
189      * <code>CustomCertificate</code> value:</p> <ul> <li> <p>You can provide either a
190      * self-signed, custom certificate, or the full certificate chain.</p> </li> <li>
191      * <p>The certificate must be a valid X509 certificate, or a certificate chain in
192      * PEM format.</p> </li> <li> <p>The certificate must be valid at the time of
193      * upload. A certificate can't be used before its validity period begins (the
194      * certificate's <code>NotBefore</code> date), or after it expires (the
195      * certificate's <code>NotAfter</code> date).</p> </li> <li> <p>The certificate’s
196      * common name or subject alternative names (SANs), if present, must match the
197      * value of <code>CustomDomain</code>.</p> </li> <li> <p>The certificate must match
198      * the value of <code>CustomPrivateKey</code>.</p> </li> </ul>
199      */
CustomCertificateHasBeenSet()200     inline bool CustomCertificateHasBeenSet() const { return m_customCertificateHasBeenSet; }
201 
202     /**
203      * <p>A PEM-formatted HTTPS certificate. The value can be be a single, self-signed
204      * certificate, or a certificate chain. If you specify a custom certificate, you
205      * must also specify values for <code>CustomDomain</code> and
206      * <code>CustomPrivateKey</code>. The following are requirements for the
207      * <code>CustomCertificate</code> value:</p> <ul> <li> <p>You can provide either a
208      * self-signed, custom certificate, or the full certificate chain.</p> </li> <li>
209      * <p>The certificate must be a valid X509 certificate, or a certificate chain in
210      * PEM format.</p> </li> <li> <p>The certificate must be valid at the time of
211      * upload. A certificate can't be used before its validity period begins (the
212      * certificate's <code>NotBefore</code> date), or after it expires (the
213      * certificate's <code>NotAfter</code> date).</p> </li> <li> <p>The certificate’s
214      * common name or subject alternative names (SANs), if present, must match the
215      * value of <code>CustomDomain</code>.</p> </li> <li> <p>The certificate must match
216      * the value of <code>CustomPrivateKey</code>.</p> </li> </ul>
217      */
SetCustomCertificate(const Aws::String & value)218     inline void SetCustomCertificate(const Aws::String& value) { m_customCertificateHasBeenSet = true; m_customCertificate = value; }
219 
220     /**
221      * <p>A PEM-formatted HTTPS certificate. The value can be be a single, self-signed
222      * certificate, or a certificate chain. If you specify a custom certificate, you
223      * must also specify values for <code>CustomDomain</code> and
224      * <code>CustomPrivateKey</code>. The following are requirements for the
225      * <code>CustomCertificate</code> value:</p> <ul> <li> <p>You can provide either a
226      * self-signed, custom certificate, or the full certificate chain.</p> </li> <li>
227      * <p>The certificate must be a valid X509 certificate, or a certificate chain in
228      * PEM format.</p> </li> <li> <p>The certificate must be valid at the time of
229      * upload. A certificate can't be used before its validity period begins (the
230      * certificate's <code>NotBefore</code> date), or after it expires (the
231      * certificate's <code>NotAfter</code> date).</p> </li> <li> <p>The certificate’s
232      * common name or subject alternative names (SANs), if present, must match the
233      * value of <code>CustomDomain</code>.</p> </li> <li> <p>The certificate must match
234      * the value of <code>CustomPrivateKey</code>.</p> </li> </ul>
235      */
SetCustomCertificate(Aws::String && value)236     inline void SetCustomCertificate(Aws::String&& value) { m_customCertificateHasBeenSet = true; m_customCertificate = std::move(value); }
237 
238     /**
239      * <p>A PEM-formatted HTTPS certificate. The value can be be a single, self-signed
240      * certificate, or a certificate chain. If you specify a custom certificate, you
241      * must also specify values for <code>CustomDomain</code> and
242      * <code>CustomPrivateKey</code>. The following are requirements for the
243      * <code>CustomCertificate</code> value:</p> <ul> <li> <p>You can provide either a
244      * self-signed, custom certificate, or the full certificate chain.</p> </li> <li>
245      * <p>The certificate must be a valid X509 certificate, or a certificate chain in
246      * PEM format.</p> </li> <li> <p>The certificate must be valid at the time of
247      * upload. A certificate can't be used before its validity period begins (the
248      * certificate's <code>NotBefore</code> date), or after it expires (the
249      * certificate's <code>NotAfter</code> date).</p> </li> <li> <p>The certificate’s
250      * common name or subject alternative names (SANs), if present, must match the
251      * value of <code>CustomDomain</code>.</p> </li> <li> <p>The certificate must match
252      * the value of <code>CustomPrivateKey</code>.</p> </li> </ul>
253      */
SetCustomCertificate(const char * value)254     inline void SetCustomCertificate(const char* value) { m_customCertificateHasBeenSet = true; m_customCertificate.assign(value); }
255 
256     /**
257      * <p>A PEM-formatted HTTPS certificate. The value can be be a single, self-signed
258      * certificate, or a certificate chain. If you specify a custom certificate, you
259      * must also specify values for <code>CustomDomain</code> and
260      * <code>CustomPrivateKey</code>. The following are requirements for the
261      * <code>CustomCertificate</code> value:</p> <ul> <li> <p>You can provide either a
262      * self-signed, custom certificate, or the full certificate chain.</p> </li> <li>
263      * <p>The certificate must be a valid X509 certificate, or a certificate chain in
264      * PEM format.</p> </li> <li> <p>The certificate must be valid at the time of
265      * upload. A certificate can't be used before its validity period begins (the
266      * certificate's <code>NotBefore</code> date), or after it expires (the
267      * certificate's <code>NotAfter</code> date).</p> </li> <li> <p>The certificate’s
268      * common name or subject alternative names (SANs), if present, must match the
269      * value of <code>CustomDomain</code>.</p> </li> <li> <p>The certificate must match
270      * the value of <code>CustomPrivateKey</code>.</p> </li> </ul>
271      */
WithCustomCertificate(const Aws::String & value)272     inline CreateServerRequest& WithCustomCertificate(const Aws::String& value) { SetCustomCertificate(value); return *this;}
273 
274     /**
275      * <p>A PEM-formatted HTTPS certificate. The value can be be a single, self-signed
276      * certificate, or a certificate chain. If you specify a custom certificate, you
277      * must also specify values for <code>CustomDomain</code> and
278      * <code>CustomPrivateKey</code>. The following are requirements for the
279      * <code>CustomCertificate</code> value:</p> <ul> <li> <p>You can provide either a
280      * self-signed, custom certificate, or the full certificate chain.</p> </li> <li>
281      * <p>The certificate must be a valid X509 certificate, or a certificate chain in
282      * PEM format.</p> </li> <li> <p>The certificate must be valid at the time of
283      * upload. A certificate can't be used before its validity period begins (the
284      * certificate's <code>NotBefore</code> date), or after it expires (the
285      * certificate's <code>NotAfter</code> date).</p> </li> <li> <p>The certificate’s
286      * common name or subject alternative names (SANs), if present, must match the
287      * value of <code>CustomDomain</code>.</p> </li> <li> <p>The certificate must match
288      * the value of <code>CustomPrivateKey</code>.</p> </li> </ul>
289      */
WithCustomCertificate(Aws::String && value)290     inline CreateServerRequest& WithCustomCertificate(Aws::String&& value) { SetCustomCertificate(std::move(value)); return *this;}
291 
292     /**
293      * <p>A PEM-formatted HTTPS certificate. The value can be be a single, self-signed
294      * certificate, or a certificate chain. If you specify a custom certificate, you
295      * must also specify values for <code>CustomDomain</code> and
296      * <code>CustomPrivateKey</code>. The following are requirements for the
297      * <code>CustomCertificate</code> value:</p> <ul> <li> <p>You can provide either a
298      * self-signed, custom certificate, or the full certificate chain.</p> </li> <li>
299      * <p>The certificate must be a valid X509 certificate, or a certificate chain in
300      * PEM format.</p> </li> <li> <p>The certificate must be valid at the time of
301      * upload. A certificate can't be used before its validity period begins (the
302      * certificate's <code>NotBefore</code> date), or after it expires (the
303      * certificate's <code>NotAfter</code> date).</p> </li> <li> <p>The certificate’s
304      * common name or subject alternative names (SANs), if present, must match the
305      * value of <code>CustomDomain</code>.</p> </li> <li> <p>The certificate must match
306      * the value of <code>CustomPrivateKey</code>.</p> </li> </ul>
307      */
WithCustomCertificate(const char * value)308     inline CreateServerRequest& WithCustomCertificate(const char* value) { SetCustomCertificate(value); return *this;}
309 
310 
311     /**
312      * <p>A private key in PEM format for connecting to the server by using HTTPS. The
313      * private key must not be encrypted; it cannot be protected by a password or
314      * passphrase. If you specify a custom private key, you must also specify values
315      * for <code>CustomDomain</code> and <code>CustomCertificate</code>.</p>
316      */
GetCustomPrivateKey()317     inline const Aws::String& GetCustomPrivateKey() const{ return m_customPrivateKey; }
318 
319     /**
320      * <p>A private key in PEM format for connecting to the server by using HTTPS. The
321      * private key must not be encrypted; it cannot be protected by a password or
322      * passphrase. If you specify a custom private key, you must also specify values
323      * for <code>CustomDomain</code> and <code>CustomCertificate</code>.</p>
324      */
CustomPrivateKeyHasBeenSet()325     inline bool CustomPrivateKeyHasBeenSet() const { return m_customPrivateKeyHasBeenSet; }
326 
327     /**
328      * <p>A private key in PEM format for connecting to the server by using HTTPS. The
329      * private key must not be encrypted; it cannot be protected by a password or
330      * passphrase. If you specify a custom private key, you must also specify values
331      * for <code>CustomDomain</code> and <code>CustomCertificate</code>.</p>
332      */
SetCustomPrivateKey(const Aws::String & value)333     inline void SetCustomPrivateKey(const Aws::String& value) { m_customPrivateKeyHasBeenSet = true; m_customPrivateKey = value; }
334 
335     /**
336      * <p>A private key in PEM format for connecting to the server by using HTTPS. The
337      * private key must not be encrypted; it cannot be protected by a password or
338      * passphrase. If you specify a custom private key, you must also specify values
339      * for <code>CustomDomain</code> and <code>CustomCertificate</code>.</p>
340      */
SetCustomPrivateKey(Aws::String && value)341     inline void SetCustomPrivateKey(Aws::String&& value) { m_customPrivateKeyHasBeenSet = true; m_customPrivateKey = std::move(value); }
342 
343     /**
344      * <p>A private key in PEM format for connecting to the server by using HTTPS. The
345      * private key must not be encrypted; it cannot be protected by a password or
346      * passphrase. If you specify a custom private key, you must also specify values
347      * for <code>CustomDomain</code> and <code>CustomCertificate</code>.</p>
348      */
SetCustomPrivateKey(const char * value)349     inline void SetCustomPrivateKey(const char* value) { m_customPrivateKeyHasBeenSet = true; m_customPrivateKey.assign(value); }
350 
351     /**
352      * <p>A private key in PEM format for connecting to the server by using HTTPS. The
353      * private key must not be encrypted; it cannot be protected by a password or
354      * passphrase. If you specify a custom private key, you must also specify values
355      * for <code>CustomDomain</code> and <code>CustomCertificate</code>.</p>
356      */
WithCustomPrivateKey(const Aws::String & value)357     inline CreateServerRequest& WithCustomPrivateKey(const Aws::String& value) { SetCustomPrivateKey(value); return *this;}
358 
359     /**
360      * <p>A private key in PEM format for connecting to the server by using HTTPS. The
361      * private key must not be encrypted; it cannot be protected by a password or
362      * passphrase. If you specify a custom private key, you must also specify values
363      * for <code>CustomDomain</code> and <code>CustomCertificate</code>.</p>
364      */
WithCustomPrivateKey(Aws::String && value)365     inline CreateServerRequest& WithCustomPrivateKey(Aws::String&& value) { SetCustomPrivateKey(std::move(value)); return *this;}
366 
367     /**
368      * <p>A private key in PEM format for connecting to the server by using HTTPS. The
369      * private key must not be encrypted; it cannot be protected by a password or
370      * passphrase. If you specify a custom private key, you must also specify values
371      * for <code>CustomDomain</code> and <code>CustomCertificate</code>.</p>
372      */
WithCustomPrivateKey(const char * value)373     inline CreateServerRequest& WithCustomPrivateKey(const char* value) { SetCustomPrivateKey(value); return *this;}
374 
375 
376     /**
377      * <p> Enable or disable scheduled backups. Valid values are <code>true</code> or
378      * <code>false</code>. The default value is <code>true</code>. </p>
379      */
GetDisableAutomatedBackup()380     inline bool GetDisableAutomatedBackup() const{ return m_disableAutomatedBackup; }
381 
382     /**
383      * <p> Enable or disable scheduled backups. Valid values are <code>true</code> or
384      * <code>false</code>. The default value is <code>true</code>. </p>
385      */
DisableAutomatedBackupHasBeenSet()386     inline bool DisableAutomatedBackupHasBeenSet() const { return m_disableAutomatedBackupHasBeenSet; }
387 
388     /**
389      * <p> Enable or disable scheduled backups. Valid values are <code>true</code> or
390      * <code>false</code>. The default value is <code>true</code>. </p>
391      */
SetDisableAutomatedBackup(bool value)392     inline void SetDisableAutomatedBackup(bool value) { m_disableAutomatedBackupHasBeenSet = true; m_disableAutomatedBackup = value; }
393 
394     /**
395      * <p> Enable or disable scheduled backups. Valid values are <code>true</code> or
396      * <code>false</code>. The default value is <code>true</code>. </p>
397      */
WithDisableAutomatedBackup(bool value)398     inline CreateServerRequest& WithDisableAutomatedBackup(bool value) { SetDisableAutomatedBackup(value); return *this;}
399 
400 
401     /**
402      * <p> The configuration management engine to use. Valid values include
403      * <code>ChefAutomate</code> and <code>Puppet</code>. </p>
404      */
GetEngine()405     inline const Aws::String& GetEngine() const{ return m_engine; }
406 
407     /**
408      * <p> The configuration management engine to use. Valid values include
409      * <code>ChefAutomate</code> and <code>Puppet</code>. </p>
410      */
EngineHasBeenSet()411     inline bool EngineHasBeenSet() const { return m_engineHasBeenSet; }
412 
413     /**
414      * <p> The configuration management engine to use. Valid values include
415      * <code>ChefAutomate</code> and <code>Puppet</code>. </p>
416      */
SetEngine(const Aws::String & value)417     inline void SetEngine(const Aws::String& value) { m_engineHasBeenSet = true; m_engine = value; }
418 
419     /**
420      * <p> The configuration management engine to use. Valid values include
421      * <code>ChefAutomate</code> and <code>Puppet</code>. </p>
422      */
SetEngine(Aws::String && value)423     inline void SetEngine(Aws::String&& value) { m_engineHasBeenSet = true; m_engine = std::move(value); }
424 
425     /**
426      * <p> The configuration management engine to use. Valid values include
427      * <code>ChefAutomate</code> and <code>Puppet</code>. </p>
428      */
SetEngine(const char * value)429     inline void SetEngine(const char* value) { m_engineHasBeenSet = true; m_engine.assign(value); }
430 
431     /**
432      * <p> The configuration management engine to use. Valid values include
433      * <code>ChefAutomate</code> and <code>Puppet</code>. </p>
434      */
WithEngine(const Aws::String & value)435     inline CreateServerRequest& WithEngine(const Aws::String& value) { SetEngine(value); return *this;}
436 
437     /**
438      * <p> The configuration management engine to use. Valid values include
439      * <code>ChefAutomate</code> and <code>Puppet</code>. </p>
440      */
WithEngine(Aws::String && value)441     inline CreateServerRequest& WithEngine(Aws::String&& value) { SetEngine(std::move(value)); return *this;}
442 
443     /**
444      * <p> The configuration management engine to use. Valid values include
445      * <code>ChefAutomate</code> and <code>Puppet</code>. </p>
446      */
WithEngine(const char * value)447     inline CreateServerRequest& WithEngine(const char* value) { SetEngine(value); return *this;}
448 
449 
450     /**
451      * <p> The engine model of the server. Valid values in this release include
452      * <code>Monolithic</code> for Puppet and <code>Single</code> for Chef. </p>
453      */
GetEngineModel()454     inline const Aws::String& GetEngineModel() const{ return m_engineModel; }
455 
456     /**
457      * <p> The engine model of the server. Valid values in this release include
458      * <code>Monolithic</code> for Puppet and <code>Single</code> for Chef. </p>
459      */
EngineModelHasBeenSet()460     inline bool EngineModelHasBeenSet() const { return m_engineModelHasBeenSet; }
461 
462     /**
463      * <p> The engine model of the server. Valid values in this release include
464      * <code>Monolithic</code> for Puppet and <code>Single</code> for Chef. </p>
465      */
SetEngineModel(const Aws::String & value)466     inline void SetEngineModel(const Aws::String& value) { m_engineModelHasBeenSet = true; m_engineModel = value; }
467 
468     /**
469      * <p> The engine model of the server. Valid values in this release include
470      * <code>Monolithic</code> for Puppet and <code>Single</code> for Chef. </p>
471      */
SetEngineModel(Aws::String && value)472     inline void SetEngineModel(Aws::String&& value) { m_engineModelHasBeenSet = true; m_engineModel = std::move(value); }
473 
474     /**
475      * <p> The engine model of the server. Valid values in this release include
476      * <code>Monolithic</code> for Puppet and <code>Single</code> for Chef. </p>
477      */
SetEngineModel(const char * value)478     inline void SetEngineModel(const char* value) { m_engineModelHasBeenSet = true; m_engineModel.assign(value); }
479 
480     /**
481      * <p> The engine model of the server. Valid values in this release include
482      * <code>Monolithic</code> for Puppet and <code>Single</code> for Chef. </p>
483      */
WithEngineModel(const Aws::String & value)484     inline CreateServerRequest& WithEngineModel(const Aws::String& value) { SetEngineModel(value); return *this;}
485 
486     /**
487      * <p> The engine model of the server. Valid values in this release include
488      * <code>Monolithic</code> for Puppet and <code>Single</code> for Chef. </p>
489      */
WithEngineModel(Aws::String && value)490     inline CreateServerRequest& WithEngineModel(Aws::String&& value) { SetEngineModel(std::move(value)); return *this;}
491 
492     /**
493      * <p> The engine model of the server. Valid values in this release include
494      * <code>Monolithic</code> for Puppet and <code>Single</code> for Chef. </p>
495      */
WithEngineModel(const char * value)496     inline CreateServerRequest& WithEngineModel(const char* value) { SetEngineModel(value); return *this;}
497 
498 
499     /**
500      * <p> The major release version of the engine that you want to use. For a Chef
501      * server, the valid value for EngineVersion is currently <code>2</code>. For a
502      * Puppet server, valid values are <code>2019</code> or <code>2017</code>. </p>
503      */
GetEngineVersion()504     inline const Aws::String& GetEngineVersion() const{ return m_engineVersion; }
505 
506     /**
507      * <p> The major release version of the engine that you want to use. For a Chef
508      * server, the valid value for EngineVersion is currently <code>2</code>. For a
509      * Puppet server, valid values are <code>2019</code> or <code>2017</code>. </p>
510      */
EngineVersionHasBeenSet()511     inline bool EngineVersionHasBeenSet() const { return m_engineVersionHasBeenSet; }
512 
513     /**
514      * <p> The major release version of the engine that you want to use. For a Chef
515      * server, the valid value for EngineVersion is currently <code>2</code>. For a
516      * Puppet server, valid values are <code>2019</code> or <code>2017</code>. </p>
517      */
SetEngineVersion(const Aws::String & value)518     inline void SetEngineVersion(const Aws::String& value) { m_engineVersionHasBeenSet = true; m_engineVersion = value; }
519 
520     /**
521      * <p> The major release version of the engine that you want to use. For a Chef
522      * server, the valid value for EngineVersion is currently <code>2</code>. For a
523      * Puppet server, valid values are <code>2019</code> or <code>2017</code>. </p>
524      */
SetEngineVersion(Aws::String && value)525     inline void SetEngineVersion(Aws::String&& value) { m_engineVersionHasBeenSet = true; m_engineVersion = std::move(value); }
526 
527     /**
528      * <p> The major release version of the engine that you want to use. For a Chef
529      * server, the valid value for EngineVersion is currently <code>2</code>. For a
530      * Puppet server, valid values are <code>2019</code> or <code>2017</code>. </p>
531      */
SetEngineVersion(const char * value)532     inline void SetEngineVersion(const char* value) { m_engineVersionHasBeenSet = true; m_engineVersion.assign(value); }
533 
534     /**
535      * <p> The major release version of the engine that you want to use. For a Chef
536      * server, the valid value for EngineVersion is currently <code>2</code>. For a
537      * Puppet server, valid values are <code>2019</code> or <code>2017</code>. </p>
538      */
WithEngineVersion(const Aws::String & value)539     inline CreateServerRequest& WithEngineVersion(const Aws::String& value) { SetEngineVersion(value); return *this;}
540 
541     /**
542      * <p> The major release version of the engine that you want to use. For a Chef
543      * server, the valid value for EngineVersion is currently <code>2</code>. For a
544      * Puppet server, valid values are <code>2019</code> or <code>2017</code>. </p>
545      */
WithEngineVersion(Aws::String && value)546     inline CreateServerRequest& WithEngineVersion(Aws::String&& value) { SetEngineVersion(std::move(value)); return *this;}
547 
548     /**
549      * <p> The major release version of the engine that you want to use. For a Chef
550      * server, the valid value for EngineVersion is currently <code>2</code>. For a
551      * Puppet server, valid values are <code>2019</code> or <code>2017</code>. </p>
552      */
WithEngineVersion(const char * value)553     inline CreateServerRequest& WithEngineVersion(const char* value) { SetEngineVersion(value); return *this;}
554 
555 
556     /**
557      * <p>Optional engine attributes on a specified server. </p> <p class="title">
558      * <b>Attributes accepted in a Chef createServer request:</b> </p> <ul> <li> <p>
559      * <code>CHEF_AUTOMATE_PIVOTAL_KEY</code>: A base64-encoded RSA public key. The
560      * corresponding private key is required to access the Chef API. When no
561      * CHEF_AUTOMATE_PIVOTAL_KEY is set, a private key is generated and returned in the
562      * response. </p> </li> <li> <p> <code>CHEF_AUTOMATE_ADMIN_PASSWORD</code>: The
563      * password for the administrative user in the Chef Automate web-based dashboard.
564      * The password length is a minimum of eight characters, and a maximum of 32. The
565      * password can contain letters, numbers, and special characters (!/@#$%^&amp;+=_).
566      * The password must contain at least one lower case letter, one upper case letter,
567      * one number, and one special character. When no CHEF_AUTOMATE_ADMIN_PASSWORD is
568      * set, one is generated and returned in the response.</p> </li> </ul> <p
569      * class="title"> <b>Attributes accepted in a Puppet createServer request:</b> </p>
570      * <ul> <li> <p> <code>PUPPET_ADMIN_PASSWORD</code>: To work with the Puppet
571      * Enterprise console, a password must use ASCII characters.</p> </li> <li> <p>
572      * <code>PUPPET_R10K_REMOTE</code>: The r10k remote is the URL of your control
573      * repository (for example, ssh://git@your.git-repo.com:user/control-repo.git).
574      * Specifying an r10k remote opens TCP port 8170.</p> </li> <li> <p>
575      * <code>PUPPET_R10K_PRIVATE_KEY</code>: If you are using a private Git repository,
576      * add PUPPET_R10K_PRIVATE_KEY to specify a PEM-encoded private SSH key.</p> </li>
577      * </ul>
578      */
GetEngineAttributes()579     inline const Aws::Vector<EngineAttribute>& GetEngineAttributes() const{ return m_engineAttributes; }
580 
581     /**
582      * <p>Optional engine attributes on a specified server. </p> <p class="title">
583      * <b>Attributes accepted in a Chef createServer request:</b> </p> <ul> <li> <p>
584      * <code>CHEF_AUTOMATE_PIVOTAL_KEY</code>: A base64-encoded RSA public key. The
585      * corresponding private key is required to access the Chef API. When no
586      * CHEF_AUTOMATE_PIVOTAL_KEY is set, a private key is generated and returned in the
587      * response. </p> </li> <li> <p> <code>CHEF_AUTOMATE_ADMIN_PASSWORD</code>: The
588      * password for the administrative user in the Chef Automate web-based dashboard.
589      * The password length is a minimum of eight characters, and a maximum of 32. The
590      * password can contain letters, numbers, and special characters (!/@#$%^&amp;+=_).
591      * The password must contain at least one lower case letter, one upper case letter,
592      * one number, and one special character. When no CHEF_AUTOMATE_ADMIN_PASSWORD is
593      * set, one is generated and returned in the response.</p> </li> </ul> <p
594      * class="title"> <b>Attributes accepted in a Puppet createServer request:</b> </p>
595      * <ul> <li> <p> <code>PUPPET_ADMIN_PASSWORD</code>: To work with the Puppet
596      * Enterprise console, a password must use ASCII characters.</p> </li> <li> <p>
597      * <code>PUPPET_R10K_REMOTE</code>: The r10k remote is the URL of your control
598      * repository (for example, ssh://git@your.git-repo.com:user/control-repo.git).
599      * Specifying an r10k remote opens TCP port 8170.</p> </li> <li> <p>
600      * <code>PUPPET_R10K_PRIVATE_KEY</code>: If you are using a private Git repository,
601      * add PUPPET_R10K_PRIVATE_KEY to specify a PEM-encoded private SSH key.</p> </li>
602      * </ul>
603      */
EngineAttributesHasBeenSet()604     inline bool EngineAttributesHasBeenSet() const { return m_engineAttributesHasBeenSet; }
605 
606     /**
607      * <p>Optional engine attributes on a specified server. </p> <p class="title">
608      * <b>Attributes accepted in a Chef createServer request:</b> </p> <ul> <li> <p>
609      * <code>CHEF_AUTOMATE_PIVOTAL_KEY</code>: A base64-encoded RSA public key. The
610      * corresponding private key is required to access the Chef API. When no
611      * CHEF_AUTOMATE_PIVOTAL_KEY is set, a private key is generated and returned in the
612      * response. </p> </li> <li> <p> <code>CHEF_AUTOMATE_ADMIN_PASSWORD</code>: The
613      * password for the administrative user in the Chef Automate web-based dashboard.
614      * The password length is a minimum of eight characters, and a maximum of 32. The
615      * password can contain letters, numbers, and special characters (!/@#$%^&amp;+=_).
616      * The password must contain at least one lower case letter, one upper case letter,
617      * one number, and one special character. When no CHEF_AUTOMATE_ADMIN_PASSWORD is
618      * set, one is generated and returned in the response.</p> </li> </ul> <p
619      * class="title"> <b>Attributes accepted in a Puppet createServer request:</b> </p>
620      * <ul> <li> <p> <code>PUPPET_ADMIN_PASSWORD</code>: To work with the Puppet
621      * Enterprise console, a password must use ASCII characters.</p> </li> <li> <p>
622      * <code>PUPPET_R10K_REMOTE</code>: The r10k remote is the URL of your control
623      * repository (for example, ssh://git@your.git-repo.com:user/control-repo.git).
624      * Specifying an r10k remote opens TCP port 8170.</p> </li> <li> <p>
625      * <code>PUPPET_R10K_PRIVATE_KEY</code>: If you are using a private Git repository,
626      * add PUPPET_R10K_PRIVATE_KEY to specify a PEM-encoded private SSH key.</p> </li>
627      * </ul>
628      */
SetEngineAttributes(const Aws::Vector<EngineAttribute> & value)629     inline void SetEngineAttributes(const Aws::Vector<EngineAttribute>& value) { m_engineAttributesHasBeenSet = true; m_engineAttributes = value; }
630 
631     /**
632      * <p>Optional engine attributes on a specified server. </p> <p class="title">
633      * <b>Attributes accepted in a Chef createServer request:</b> </p> <ul> <li> <p>
634      * <code>CHEF_AUTOMATE_PIVOTAL_KEY</code>: A base64-encoded RSA public key. The
635      * corresponding private key is required to access the Chef API. When no
636      * CHEF_AUTOMATE_PIVOTAL_KEY is set, a private key is generated and returned in the
637      * response. </p> </li> <li> <p> <code>CHEF_AUTOMATE_ADMIN_PASSWORD</code>: The
638      * password for the administrative user in the Chef Automate web-based dashboard.
639      * The password length is a minimum of eight characters, and a maximum of 32. The
640      * password can contain letters, numbers, and special characters (!/@#$%^&amp;+=_).
641      * The password must contain at least one lower case letter, one upper case letter,
642      * one number, and one special character. When no CHEF_AUTOMATE_ADMIN_PASSWORD is
643      * set, one is generated and returned in the response.</p> </li> </ul> <p
644      * class="title"> <b>Attributes accepted in a Puppet createServer request:</b> </p>
645      * <ul> <li> <p> <code>PUPPET_ADMIN_PASSWORD</code>: To work with the Puppet
646      * Enterprise console, a password must use ASCII characters.</p> </li> <li> <p>
647      * <code>PUPPET_R10K_REMOTE</code>: The r10k remote is the URL of your control
648      * repository (for example, ssh://git@your.git-repo.com:user/control-repo.git).
649      * Specifying an r10k remote opens TCP port 8170.</p> </li> <li> <p>
650      * <code>PUPPET_R10K_PRIVATE_KEY</code>: If you are using a private Git repository,
651      * add PUPPET_R10K_PRIVATE_KEY to specify a PEM-encoded private SSH key.</p> </li>
652      * </ul>
653      */
SetEngineAttributes(Aws::Vector<EngineAttribute> && value)654     inline void SetEngineAttributes(Aws::Vector<EngineAttribute>&& value) { m_engineAttributesHasBeenSet = true; m_engineAttributes = std::move(value); }
655 
656     /**
657      * <p>Optional engine attributes on a specified server. </p> <p class="title">
658      * <b>Attributes accepted in a Chef createServer request:</b> </p> <ul> <li> <p>
659      * <code>CHEF_AUTOMATE_PIVOTAL_KEY</code>: A base64-encoded RSA public key. The
660      * corresponding private key is required to access the Chef API. When no
661      * CHEF_AUTOMATE_PIVOTAL_KEY is set, a private key is generated and returned in the
662      * response. </p> </li> <li> <p> <code>CHEF_AUTOMATE_ADMIN_PASSWORD</code>: The
663      * password for the administrative user in the Chef Automate web-based dashboard.
664      * The password length is a minimum of eight characters, and a maximum of 32. The
665      * password can contain letters, numbers, and special characters (!/@#$%^&amp;+=_).
666      * The password must contain at least one lower case letter, one upper case letter,
667      * one number, and one special character. When no CHEF_AUTOMATE_ADMIN_PASSWORD is
668      * set, one is generated and returned in the response.</p> </li> </ul> <p
669      * class="title"> <b>Attributes accepted in a Puppet createServer request:</b> </p>
670      * <ul> <li> <p> <code>PUPPET_ADMIN_PASSWORD</code>: To work with the Puppet
671      * Enterprise console, a password must use ASCII characters.</p> </li> <li> <p>
672      * <code>PUPPET_R10K_REMOTE</code>: The r10k remote is the URL of your control
673      * repository (for example, ssh://git@your.git-repo.com:user/control-repo.git).
674      * Specifying an r10k remote opens TCP port 8170.</p> </li> <li> <p>
675      * <code>PUPPET_R10K_PRIVATE_KEY</code>: If you are using a private Git repository,
676      * add PUPPET_R10K_PRIVATE_KEY to specify a PEM-encoded private SSH key.</p> </li>
677      * </ul>
678      */
WithEngineAttributes(const Aws::Vector<EngineAttribute> & value)679     inline CreateServerRequest& WithEngineAttributes(const Aws::Vector<EngineAttribute>& value) { SetEngineAttributes(value); return *this;}
680 
681     /**
682      * <p>Optional engine attributes on a specified server. </p> <p class="title">
683      * <b>Attributes accepted in a Chef createServer request:</b> </p> <ul> <li> <p>
684      * <code>CHEF_AUTOMATE_PIVOTAL_KEY</code>: A base64-encoded RSA public key. The
685      * corresponding private key is required to access the Chef API. When no
686      * CHEF_AUTOMATE_PIVOTAL_KEY is set, a private key is generated and returned in the
687      * response. </p> </li> <li> <p> <code>CHEF_AUTOMATE_ADMIN_PASSWORD</code>: The
688      * password for the administrative user in the Chef Automate web-based dashboard.
689      * The password length is a minimum of eight characters, and a maximum of 32. The
690      * password can contain letters, numbers, and special characters (!/@#$%^&amp;+=_).
691      * The password must contain at least one lower case letter, one upper case letter,
692      * one number, and one special character. When no CHEF_AUTOMATE_ADMIN_PASSWORD is
693      * set, one is generated and returned in the response.</p> </li> </ul> <p
694      * class="title"> <b>Attributes accepted in a Puppet createServer request:</b> </p>
695      * <ul> <li> <p> <code>PUPPET_ADMIN_PASSWORD</code>: To work with the Puppet
696      * Enterprise console, a password must use ASCII characters.</p> </li> <li> <p>
697      * <code>PUPPET_R10K_REMOTE</code>: The r10k remote is the URL of your control
698      * repository (for example, ssh://git@your.git-repo.com:user/control-repo.git).
699      * Specifying an r10k remote opens TCP port 8170.</p> </li> <li> <p>
700      * <code>PUPPET_R10K_PRIVATE_KEY</code>: If you are using a private Git repository,
701      * add PUPPET_R10K_PRIVATE_KEY to specify a PEM-encoded private SSH key.</p> </li>
702      * </ul>
703      */
WithEngineAttributes(Aws::Vector<EngineAttribute> && value)704     inline CreateServerRequest& WithEngineAttributes(Aws::Vector<EngineAttribute>&& value) { SetEngineAttributes(std::move(value)); return *this;}
705 
706     /**
707      * <p>Optional engine attributes on a specified server. </p> <p class="title">
708      * <b>Attributes accepted in a Chef createServer request:</b> </p> <ul> <li> <p>
709      * <code>CHEF_AUTOMATE_PIVOTAL_KEY</code>: A base64-encoded RSA public key. The
710      * corresponding private key is required to access the Chef API. When no
711      * CHEF_AUTOMATE_PIVOTAL_KEY is set, a private key is generated and returned in the
712      * response. </p> </li> <li> <p> <code>CHEF_AUTOMATE_ADMIN_PASSWORD</code>: The
713      * password for the administrative user in the Chef Automate web-based dashboard.
714      * The password length is a minimum of eight characters, and a maximum of 32. The
715      * password can contain letters, numbers, and special characters (!/@#$%^&amp;+=_).
716      * The password must contain at least one lower case letter, one upper case letter,
717      * one number, and one special character. When no CHEF_AUTOMATE_ADMIN_PASSWORD is
718      * set, one is generated and returned in the response.</p> </li> </ul> <p
719      * class="title"> <b>Attributes accepted in a Puppet createServer request:</b> </p>
720      * <ul> <li> <p> <code>PUPPET_ADMIN_PASSWORD</code>: To work with the Puppet
721      * Enterprise console, a password must use ASCII characters.</p> </li> <li> <p>
722      * <code>PUPPET_R10K_REMOTE</code>: The r10k remote is the URL of your control
723      * repository (for example, ssh://git@your.git-repo.com:user/control-repo.git).
724      * Specifying an r10k remote opens TCP port 8170.</p> </li> <li> <p>
725      * <code>PUPPET_R10K_PRIVATE_KEY</code>: If you are using a private Git repository,
726      * add PUPPET_R10K_PRIVATE_KEY to specify a PEM-encoded private SSH key.</p> </li>
727      * </ul>
728      */
AddEngineAttributes(const EngineAttribute & value)729     inline CreateServerRequest& AddEngineAttributes(const EngineAttribute& value) { m_engineAttributesHasBeenSet = true; m_engineAttributes.push_back(value); return *this; }
730 
731     /**
732      * <p>Optional engine attributes on a specified server. </p> <p class="title">
733      * <b>Attributes accepted in a Chef createServer request:</b> </p> <ul> <li> <p>
734      * <code>CHEF_AUTOMATE_PIVOTAL_KEY</code>: A base64-encoded RSA public key. The
735      * corresponding private key is required to access the Chef API. When no
736      * CHEF_AUTOMATE_PIVOTAL_KEY is set, a private key is generated and returned in the
737      * response. </p> </li> <li> <p> <code>CHEF_AUTOMATE_ADMIN_PASSWORD</code>: The
738      * password for the administrative user in the Chef Automate web-based dashboard.
739      * The password length is a minimum of eight characters, and a maximum of 32. The
740      * password can contain letters, numbers, and special characters (!/@#$%^&amp;+=_).
741      * The password must contain at least one lower case letter, one upper case letter,
742      * one number, and one special character. When no CHEF_AUTOMATE_ADMIN_PASSWORD is
743      * set, one is generated and returned in the response.</p> </li> </ul> <p
744      * class="title"> <b>Attributes accepted in a Puppet createServer request:</b> </p>
745      * <ul> <li> <p> <code>PUPPET_ADMIN_PASSWORD</code>: To work with the Puppet
746      * Enterprise console, a password must use ASCII characters.</p> </li> <li> <p>
747      * <code>PUPPET_R10K_REMOTE</code>: The r10k remote is the URL of your control
748      * repository (for example, ssh://git@your.git-repo.com:user/control-repo.git).
749      * Specifying an r10k remote opens TCP port 8170.</p> </li> <li> <p>
750      * <code>PUPPET_R10K_PRIVATE_KEY</code>: If you are using a private Git repository,
751      * add PUPPET_R10K_PRIVATE_KEY to specify a PEM-encoded private SSH key.</p> </li>
752      * </ul>
753      */
AddEngineAttributes(EngineAttribute && value)754     inline CreateServerRequest& AddEngineAttributes(EngineAttribute&& value) { m_engineAttributesHasBeenSet = true; m_engineAttributes.push_back(std::move(value)); return *this; }
755 
756 
757     /**
758      * <p> The number of automated backups that you want to keep. Whenever a new backup
759      * is created, AWS OpsWorks CM deletes the oldest backups if this number is
760      * exceeded. The default value is <code>1</code>. </p>
761      */
GetBackupRetentionCount()762     inline int GetBackupRetentionCount() const{ return m_backupRetentionCount; }
763 
764     /**
765      * <p> The number of automated backups that you want to keep. Whenever a new backup
766      * is created, AWS OpsWorks CM deletes the oldest backups if this number is
767      * exceeded. The default value is <code>1</code>. </p>
768      */
BackupRetentionCountHasBeenSet()769     inline bool BackupRetentionCountHasBeenSet() const { return m_backupRetentionCountHasBeenSet; }
770 
771     /**
772      * <p> The number of automated backups that you want to keep. Whenever a new backup
773      * is created, AWS OpsWorks CM deletes the oldest backups if this number is
774      * exceeded. The default value is <code>1</code>. </p>
775      */
SetBackupRetentionCount(int value)776     inline void SetBackupRetentionCount(int value) { m_backupRetentionCountHasBeenSet = true; m_backupRetentionCount = value; }
777 
778     /**
779      * <p> The number of automated backups that you want to keep. Whenever a new backup
780      * is created, AWS OpsWorks CM deletes the oldest backups if this number is
781      * exceeded. The default value is <code>1</code>. </p>
782      */
WithBackupRetentionCount(int value)783     inline CreateServerRequest& WithBackupRetentionCount(int value) { SetBackupRetentionCount(value); return *this;}
784 
785 
786     /**
787      * <p> The name of the server. The server name must be unique within your AWS
788      * account, within each region. Server names must start with a letter; then
789      * letters, numbers, or hyphens (-) are allowed, up to a maximum of 40 characters.
790      * </p>
791      */
GetServerName()792     inline const Aws::String& GetServerName() const{ return m_serverName; }
793 
794     /**
795      * <p> The name of the server. The server name must be unique within your AWS
796      * account, within each region. Server names must start with a letter; then
797      * letters, numbers, or hyphens (-) are allowed, up to a maximum of 40 characters.
798      * </p>
799      */
ServerNameHasBeenSet()800     inline bool ServerNameHasBeenSet() const { return m_serverNameHasBeenSet; }
801 
802     /**
803      * <p> The name of the server. The server name must be unique within your AWS
804      * account, within each region. Server names must start with a letter; then
805      * letters, numbers, or hyphens (-) are allowed, up to a maximum of 40 characters.
806      * </p>
807      */
SetServerName(const Aws::String & value)808     inline void SetServerName(const Aws::String& value) { m_serverNameHasBeenSet = true; m_serverName = value; }
809 
810     /**
811      * <p> The name of the server. The server name must be unique within your AWS
812      * account, within each region. Server names must start with a letter; then
813      * letters, numbers, or hyphens (-) are allowed, up to a maximum of 40 characters.
814      * </p>
815      */
SetServerName(Aws::String && value)816     inline void SetServerName(Aws::String&& value) { m_serverNameHasBeenSet = true; m_serverName = std::move(value); }
817 
818     /**
819      * <p> The name of the server. The server name must be unique within your AWS
820      * account, within each region. Server names must start with a letter; then
821      * letters, numbers, or hyphens (-) are allowed, up to a maximum of 40 characters.
822      * </p>
823      */
SetServerName(const char * value)824     inline void SetServerName(const char* value) { m_serverNameHasBeenSet = true; m_serverName.assign(value); }
825 
826     /**
827      * <p> The name of the server. The server name must be unique within your AWS
828      * account, within each region. Server names must start with a letter; then
829      * letters, numbers, or hyphens (-) are allowed, up to a maximum of 40 characters.
830      * </p>
831      */
WithServerName(const Aws::String & value)832     inline CreateServerRequest& WithServerName(const Aws::String& value) { SetServerName(value); return *this;}
833 
834     /**
835      * <p> The name of the server. The server name must be unique within your AWS
836      * account, within each region. Server names must start with a letter; then
837      * letters, numbers, or hyphens (-) are allowed, up to a maximum of 40 characters.
838      * </p>
839      */
WithServerName(Aws::String && value)840     inline CreateServerRequest& WithServerName(Aws::String&& value) { SetServerName(std::move(value)); return *this;}
841 
842     /**
843      * <p> The name of the server. The server name must be unique within your AWS
844      * account, within each region. Server names must start with a letter; then
845      * letters, numbers, or hyphens (-) are allowed, up to a maximum of 40 characters.
846      * </p>
847      */
WithServerName(const char * value)848     inline CreateServerRequest& WithServerName(const char* value) { SetServerName(value); return *this;}
849 
850 
851     /**
852      * <p> The ARN of the instance profile that your Amazon EC2 instances use. Although
853      * the AWS OpsWorks console typically creates the instance profile for you, if you
854      * are using API commands instead, run the service-role-creation.yaml AWS
855      * CloudFormation template, located at
856      * https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml.
857      * This template creates a CloudFormation stack that includes the instance profile
858      * you need. </p>
859      */
GetInstanceProfileArn()860     inline const Aws::String& GetInstanceProfileArn() const{ return m_instanceProfileArn; }
861 
862     /**
863      * <p> The ARN of the instance profile that your Amazon EC2 instances use. Although
864      * the AWS OpsWorks console typically creates the instance profile for you, if you
865      * are using API commands instead, run the service-role-creation.yaml AWS
866      * CloudFormation template, located at
867      * https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml.
868      * This template creates a CloudFormation stack that includes the instance profile
869      * you need. </p>
870      */
InstanceProfileArnHasBeenSet()871     inline bool InstanceProfileArnHasBeenSet() const { return m_instanceProfileArnHasBeenSet; }
872 
873     /**
874      * <p> The ARN of the instance profile that your Amazon EC2 instances use. Although
875      * the AWS OpsWorks console typically creates the instance profile for you, if you
876      * are using API commands instead, run the service-role-creation.yaml AWS
877      * CloudFormation template, located at
878      * https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml.
879      * This template creates a CloudFormation stack that includes the instance profile
880      * you need. </p>
881      */
SetInstanceProfileArn(const Aws::String & value)882     inline void SetInstanceProfileArn(const Aws::String& value) { m_instanceProfileArnHasBeenSet = true; m_instanceProfileArn = value; }
883 
884     /**
885      * <p> The ARN of the instance profile that your Amazon EC2 instances use. Although
886      * the AWS OpsWorks console typically creates the instance profile for you, if you
887      * are using API commands instead, run the service-role-creation.yaml AWS
888      * CloudFormation template, located at
889      * https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml.
890      * This template creates a CloudFormation stack that includes the instance profile
891      * you need. </p>
892      */
SetInstanceProfileArn(Aws::String && value)893     inline void SetInstanceProfileArn(Aws::String&& value) { m_instanceProfileArnHasBeenSet = true; m_instanceProfileArn = std::move(value); }
894 
895     /**
896      * <p> The ARN of the instance profile that your Amazon EC2 instances use. Although
897      * the AWS OpsWorks console typically creates the instance profile for you, if you
898      * are using API commands instead, run the service-role-creation.yaml AWS
899      * CloudFormation template, located at
900      * https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml.
901      * This template creates a CloudFormation stack that includes the instance profile
902      * you need. </p>
903      */
SetInstanceProfileArn(const char * value)904     inline void SetInstanceProfileArn(const char* value) { m_instanceProfileArnHasBeenSet = true; m_instanceProfileArn.assign(value); }
905 
906     /**
907      * <p> The ARN of the instance profile that your Amazon EC2 instances use. Although
908      * the AWS OpsWorks console typically creates the instance profile for you, if you
909      * are using API commands instead, run the service-role-creation.yaml AWS
910      * CloudFormation template, located at
911      * https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml.
912      * This template creates a CloudFormation stack that includes the instance profile
913      * you need. </p>
914      */
WithInstanceProfileArn(const Aws::String & value)915     inline CreateServerRequest& WithInstanceProfileArn(const Aws::String& value) { SetInstanceProfileArn(value); return *this;}
916 
917     /**
918      * <p> The ARN of the instance profile that your Amazon EC2 instances use. Although
919      * the AWS OpsWorks console typically creates the instance profile for you, if you
920      * are using API commands instead, run the service-role-creation.yaml AWS
921      * CloudFormation template, located at
922      * https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml.
923      * This template creates a CloudFormation stack that includes the instance profile
924      * you need. </p>
925      */
WithInstanceProfileArn(Aws::String && value)926     inline CreateServerRequest& WithInstanceProfileArn(Aws::String&& value) { SetInstanceProfileArn(std::move(value)); return *this;}
927 
928     /**
929      * <p> The ARN of the instance profile that your Amazon EC2 instances use. Although
930      * the AWS OpsWorks console typically creates the instance profile for you, if you
931      * are using API commands instead, run the service-role-creation.yaml AWS
932      * CloudFormation template, located at
933      * https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml.
934      * This template creates a CloudFormation stack that includes the instance profile
935      * you need. </p>
936      */
WithInstanceProfileArn(const char * value)937     inline CreateServerRequest& WithInstanceProfileArn(const char* value) { SetInstanceProfileArn(value); return *this;}
938 
939 
940     /**
941      * <p> The Amazon EC2 instance type to use. For example, <code>m5.large</code>.
942      * </p>
943      */
GetInstanceType()944     inline const Aws::String& GetInstanceType() const{ return m_instanceType; }
945 
946     /**
947      * <p> The Amazon EC2 instance type to use. For example, <code>m5.large</code>.
948      * </p>
949      */
InstanceTypeHasBeenSet()950     inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; }
951 
952     /**
953      * <p> The Amazon EC2 instance type to use. For example, <code>m5.large</code>.
954      * </p>
955      */
SetInstanceType(const Aws::String & value)956     inline void SetInstanceType(const Aws::String& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; }
957 
958     /**
959      * <p> The Amazon EC2 instance type to use. For example, <code>m5.large</code>.
960      * </p>
961      */
SetInstanceType(Aws::String && value)962     inline void SetInstanceType(Aws::String&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); }
963 
964     /**
965      * <p> The Amazon EC2 instance type to use. For example, <code>m5.large</code>.
966      * </p>
967      */
SetInstanceType(const char * value)968     inline void SetInstanceType(const char* value) { m_instanceTypeHasBeenSet = true; m_instanceType.assign(value); }
969 
970     /**
971      * <p> The Amazon EC2 instance type to use. For example, <code>m5.large</code>.
972      * </p>
973      */
WithInstanceType(const Aws::String & value)974     inline CreateServerRequest& WithInstanceType(const Aws::String& value) { SetInstanceType(value); return *this;}
975 
976     /**
977      * <p> The Amazon EC2 instance type to use. For example, <code>m5.large</code>.
978      * </p>
979      */
WithInstanceType(Aws::String && value)980     inline CreateServerRequest& WithInstanceType(Aws::String&& value) { SetInstanceType(std::move(value)); return *this;}
981 
982     /**
983      * <p> The Amazon EC2 instance type to use. For example, <code>m5.large</code>.
984      * </p>
985      */
WithInstanceType(const char * value)986     inline CreateServerRequest& WithInstanceType(const char* value) { SetInstanceType(value); return *this;}
987 
988 
989     /**
990      * <p> The Amazon EC2 key pair to set for the instance. This parameter is optional;
991      * if desired, you may specify this parameter to connect to your instances by using
992      * SSH. </p>
993      */
GetKeyPair()994     inline const Aws::String& GetKeyPair() const{ return m_keyPair; }
995 
996     /**
997      * <p> The Amazon EC2 key pair to set for the instance. This parameter is optional;
998      * if desired, you may specify this parameter to connect to your instances by using
999      * SSH. </p>
1000      */
KeyPairHasBeenSet()1001     inline bool KeyPairHasBeenSet() const { return m_keyPairHasBeenSet; }
1002 
1003     /**
1004      * <p> The Amazon EC2 key pair to set for the instance. This parameter is optional;
1005      * if desired, you may specify this parameter to connect to your instances by using
1006      * SSH. </p>
1007      */
SetKeyPair(const Aws::String & value)1008     inline void SetKeyPair(const Aws::String& value) { m_keyPairHasBeenSet = true; m_keyPair = value; }
1009 
1010     /**
1011      * <p> The Amazon EC2 key pair to set for the instance. This parameter is optional;
1012      * if desired, you may specify this parameter to connect to your instances by using
1013      * SSH. </p>
1014      */
SetKeyPair(Aws::String && value)1015     inline void SetKeyPair(Aws::String&& value) { m_keyPairHasBeenSet = true; m_keyPair = std::move(value); }
1016 
1017     /**
1018      * <p> The Amazon EC2 key pair to set for the instance. This parameter is optional;
1019      * if desired, you may specify this parameter to connect to your instances by using
1020      * SSH. </p>
1021      */
SetKeyPair(const char * value)1022     inline void SetKeyPair(const char* value) { m_keyPairHasBeenSet = true; m_keyPair.assign(value); }
1023 
1024     /**
1025      * <p> The Amazon EC2 key pair to set for the instance. This parameter is optional;
1026      * if desired, you may specify this parameter to connect to your instances by using
1027      * SSH. </p>
1028      */
WithKeyPair(const Aws::String & value)1029     inline CreateServerRequest& WithKeyPair(const Aws::String& value) { SetKeyPair(value); return *this;}
1030 
1031     /**
1032      * <p> The Amazon EC2 key pair to set for the instance. This parameter is optional;
1033      * if desired, you may specify this parameter to connect to your instances by using
1034      * SSH. </p>
1035      */
WithKeyPair(Aws::String && value)1036     inline CreateServerRequest& WithKeyPair(Aws::String&& value) { SetKeyPair(std::move(value)); return *this;}
1037 
1038     /**
1039      * <p> The Amazon EC2 key pair to set for the instance. This parameter is optional;
1040      * if desired, you may specify this parameter to connect to your instances by using
1041      * SSH. </p>
1042      */
WithKeyPair(const char * value)1043     inline CreateServerRequest& WithKeyPair(const char* value) { SetKeyPair(value); return *this;}
1044 
1045 
1046     /**
1047      * <p> The start time for a one-hour period each week during which AWS OpsWorks CM
1048      * performs maintenance on the instance. Valid values must be specified in the
1049      * following format: <code>DDD:HH:MM</code>. <code>MM</code> must be specified as
1050      * <code>00</code>. The specified time is in coordinated universal time (UTC). The
1051      * default value is a random one-hour period on Tuesday, Wednesday, or Friday. See
1052      * <code>TimeWindowDefinition</code> for more information. </p> <p> <b>Example:</b>
1053      * <code>Mon:08:00</code>, which represents a start time of every Monday at 08:00
1054      * UTC. (8:00 a.m.) </p>
1055      */
GetPreferredMaintenanceWindow()1056     inline const Aws::String& GetPreferredMaintenanceWindow() const{ return m_preferredMaintenanceWindow; }
1057 
1058     /**
1059      * <p> The start time for a one-hour period each week during which AWS OpsWorks CM
1060      * performs maintenance on the instance. Valid values must be specified in the
1061      * following format: <code>DDD:HH:MM</code>. <code>MM</code> must be specified as
1062      * <code>00</code>. The specified time is in coordinated universal time (UTC). The
1063      * default value is a random one-hour period on Tuesday, Wednesday, or Friday. See
1064      * <code>TimeWindowDefinition</code> for more information. </p> <p> <b>Example:</b>
1065      * <code>Mon:08:00</code>, which represents a start time of every Monday at 08:00
1066      * UTC. (8:00 a.m.) </p>
1067      */
PreferredMaintenanceWindowHasBeenSet()1068     inline bool PreferredMaintenanceWindowHasBeenSet() const { return m_preferredMaintenanceWindowHasBeenSet; }
1069 
1070     /**
1071      * <p> The start time for a one-hour period each week during which AWS OpsWorks CM
1072      * performs maintenance on the instance. Valid values must be specified in the
1073      * following format: <code>DDD:HH:MM</code>. <code>MM</code> must be specified as
1074      * <code>00</code>. The specified time is in coordinated universal time (UTC). The
1075      * default value is a random one-hour period on Tuesday, Wednesday, or Friday. See
1076      * <code>TimeWindowDefinition</code> for more information. </p> <p> <b>Example:</b>
1077      * <code>Mon:08:00</code>, which represents a start time of every Monday at 08:00
1078      * UTC. (8:00 a.m.) </p>
1079      */
SetPreferredMaintenanceWindow(const Aws::String & value)1080     inline void SetPreferredMaintenanceWindow(const Aws::String& value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow = value; }
1081 
1082     /**
1083      * <p> The start time for a one-hour period each week during which AWS OpsWorks CM
1084      * performs maintenance on the instance. Valid values must be specified in the
1085      * following format: <code>DDD:HH:MM</code>. <code>MM</code> must be specified as
1086      * <code>00</code>. The specified time is in coordinated universal time (UTC). The
1087      * default value is a random one-hour period on Tuesday, Wednesday, or Friday. See
1088      * <code>TimeWindowDefinition</code> for more information. </p> <p> <b>Example:</b>
1089      * <code>Mon:08:00</code>, which represents a start time of every Monday at 08:00
1090      * UTC. (8:00 a.m.) </p>
1091      */
SetPreferredMaintenanceWindow(Aws::String && value)1092     inline void SetPreferredMaintenanceWindow(Aws::String&& value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow = std::move(value); }
1093 
1094     /**
1095      * <p> The start time for a one-hour period each week during which AWS OpsWorks CM
1096      * performs maintenance on the instance. Valid values must be specified in the
1097      * following format: <code>DDD:HH:MM</code>. <code>MM</code> must be specified as
1098      * <code>00</code>. The specified time is in coordinated universal time (UTC). The
1099      * default value is a random one-hour period on Tuesday, Wednesday, or Friday. See
1100      * <code>TimeWindowDefinition</code> for more information. </p> <p> <b>Example:</b>
1101      * <code>Mon:08:00</code>, which represents a start time of every Monday at 08:00
1102      * UTC. (8:00 a.m.) </p>
1103      */
SetPreferredMaintenanceWindow(const char * value)1104     inline void SetPreferredMaintenanceWindow(const char* value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow.assign(value); }
1105 
1106     /**
1107      * <p> The start time for a one-hour period each week during which AWS OpsWorks CM
1108      * performs maintenance on the instance. Valid values must be specified in the
1109      * following format: <code>DDD:HH:MM</code>. <code>MM</code> must be specified as
1110      * <code>00</code>. The specified time is in coordinated universal time (UTC). The
1111      * default value is a random one-hour period on Tuesday, Wednesday, or Friday. See
1112      * <code>TimeWindowDefinition</code> for more information. </p> <p> <b>Example:</b>
1113      * <code>Mon:08:00</code>, which represents a start time of every Monday at 08:00
1114      * UTC. (8:00 a.m.) </p>
1115      */
WithPreferredMaintenanceWindow(const Aws::String & value)1116     inline CreateServerRequest& WithPreferredMaintenanceWindow(const Aws::String& value) { SetPreferredMaintenanceWindow(value); return *this;}
1117 
1118     /**
1119      * <p> The start time for a one-hour period each week during which AWS OpsWorks CM
1120      * performs maintenance on the instance. Valid values must be specified in the
1121      * following format: <code>DDD:HH:MM</code>. <code>MM</code> must be specified as
1122      * <code>00</code>. The specified time is in coordinated universal time (UTC). The
1123      * default value is a random one-hour period on Tuesday, Wednesday, or Friday. See
1124      * <code>TimeWindowDefinition</code> for more information. </p> <p> <b>Example:</b>
1125      * <code>Mon:08:00</code>, which represents a start time of every Monday at 08:00
1126      * UTC. (8:00 a.m.) </p>
1127      */
WithPreferredMaintenanceWindow(Aws::String && value)1128     inline CreateServerRequest& WithPreferredMaintenanceWindow(Aws::String&& value) { SetPreferredMaintenanceWindow(std::move(value)); return *this;}
1129 
1130     /**
1131      * <p> The start time for a one-hour period each week during which AWS OpsWorks CM
1132      * performs maintenance on the instance. Valid values must be specified in the
1133      * following format: <code>DDD:HH:MM</code>. <code>MM</code> must be specified as
1134      * <code>00</code>. The specified time is in coordinated universal time (UTC). The
1135      * default value is a random one-hour period on Tuesday, Wednesday, or Friday. See
1136      * <code>TimeWindowDefinition</code> for more information. </p> <p> <b>Example:</b>
1137      * <code>Mon:08:00</code>, which represents a start time of every Monday at 08:00
1138      * UTC. (8:00 a.m.) </p>
1139      */
WithPreferredMaintenanceWindow(const char * value)1140     inline CreateServerRequest& WithPreferredMaintenanceWindow(const char* value) { SetPreferredMaintenanceWindow(value); return *this;}
1141 
1142 
1143     /**
1144      * <p> The start time for a one-hour period during which AWS OpsWorks CM backs up
1145      * application-level data on your server if automated backups are enabled. Valid
1146      * values must be specified in one of the following formats: </p> <ul> <li> <p>
1147      * <code>HH:MM</code> for daily backups</p> </li> <li> <p> <code>DDD:HH:MM</code>
1148      * for weekly backups</p> </li> </ul> <p> <code>MM</code> must be specified as
1149      * <code>00</code>. The specified time is in coordinated universal time (UTC). The
1150      * default value is a random, daily start time.</p> <p> <b>Example:</b>
1151      * <code>08:00</code>, which represents a daily start time of 08:00 UTC.</p> <p>
1152      * <b>Example:</b> <code>Mon:08:00</code>, which represents a start time of every
1153      * Monday at 08:00 UTC. (8:00 a.m.)</p>
1154      */
GetPreferredBackupWindow()1155     inline const Aws::String& GetPreferredBackupWindow() const{ return m_preferredBackupWindow; }
1156 
1157     /**
1158      * <p> The start time for a one-hour period during which AWS OpsWorks CM backs up
1159      * application-level data on your server if automated backups are enabled. Valid
1160      * values must be specified in one of the following formats: </p> <ul> <li> <p>
1161      * <code>HH:MM</code> for daily backups</p> </li> <li> <p> <code>DDD:HH:MM</code>
1162      * for weekly backups</p> </li> </ul> <p> <code>MM</code> must be specified as
1163      * <code>00</code>. The specified time is in coordinated universal time (UTC). The
1164      * default value is a random, daily start time.</p> <p> <b>Example:</b>
1165      * <code>08:00</code>, which represents a daily start time of 08:00 UTC.</p> <p>
1166      * <b>Example:</b> <code>Mon:08:00</code>, which represents a start time of every
1167      * Monday at 08:00 UTC. (8:00 a.m.)</p>
1168      */
PreferredBackupWindowHasBeenSet()1169     inline bool PreferredBackupWindowHasBeenSet() const { return m_preferredBackupWindowHasBeenSet; }
1170 
1171     /**
1172      * <p> The start time for a one-hour period during which AWS OpsWorks CM backs up
1173      * application-level data on your server if automated backups are enabled. Valid
1174      * values must be specified in one of the following formats: </p> <ul> <li> <p>
1175      * <code>HH:MM</code> for daily backups</p> </li> <li> <p> <code>DDD:HH:MM</code>
1176      * for weekly backups</p> </li> </ul> <p> <code>MM</code> must be specified as
1177      * <code>00</code>. The specified time is in coordinated universal time (UTC). The
1178      * default value is a random, daily start time.</p> <p> <b>Example:</b>
1179      * <code>08:00</code>, which represents a daily start time of 08:00 UTC.</p> <p>
1180      * <b>Example:</b> <code>Mon:08:00</code>, which represents a start time of every
1181      * Monday at 08:00 UTC. (8:00 a.m.)</p>
1182      */
SetPreferredBackupWindow(const Aws::String & value)1183     inline void SetPreferredBackupWindow(const Aws::String& value) { m_preferredBackupWindowHasBeenSet = true; m_preferredBackupWindow = value; }
1184 
1185     /**
1186      * <p> The start time for a one-hour period during which AWS OpsWorks CM backs up
1187      * application-level data on your server if automated backups are enabled. Valid
1188      * values must be specified in one of the following formats: </p> <ul> <li> <p>
1189      * <code>HH:MM</code> for daily backups</p> </li> <li> <p> <code>DDD:HH:MM</code>
1190      * for weekly backups</p> </li> </ul> <p> <code>MM</code> must be specified as
1191      * <code>00</code>. The specified time is in coordinated universal time (UTC). The
1192      * default value is a random, daily start time.</p> <p> <b>Example:</b>
1193      * <code>08:00</code>, which represents a daily start time of 08:00 UTC.</p> <p>
1194      * <b>Example:</b> <code>Mon:08:00</code>, which represents a start time of every
1195      * Monday at 08:00 UTC. (8:00 a.m.)</p>
1196      */
SetPreferredBackupWindow(Aws::String && value)1197     inline void SetPreferredBackupWindow(Aws::String&& value) { m_preferredBackupWindowHasBeenSet = true; m_preferredBackupWindow = std::move(value); }
1198 
1199     /**
1200      * <p> The start time for a one-hour period during which AWS OpsWorks CM backs up
1201      * application-level data on your server if automated backups are enabled. Valid
1202      * values must be specified in one of the following formats: </p> <ul> <li> <p>
1203      * <code>HH:MM</code> for daily backups</p> </li> <li> <p> <code>DDD:HH:MM</code>
1204      * for weekly backups</p> </li> </ul> <p> <code>MM</code> must be specified as
1205      * <code>00</code>. The specified time is in coordinated universal time (UTC). The
1206      * default value is a random, daily start time.</p> <p> <b>Example:</b>
1207      * <code>08:00</code>, which represents a daily start time of 08:00 UTC.</p> <p>
1208      * <b>Example:</b> <code>Mon:08:00</code>, which represents a start time of every
1209      * Monday at 08:00 UTC. (8:00 a.m.)</p>
1210      */
SetPreferredBackupWindow(const char * value)1211     inline void SetPreferredBackupWindow(const char* value) { m_preferredBackupWindowHasBeenSet = true; m_preferredBackupWindow.assign(value); }
1212 
1213     /**
1214      * <p> The start time for a one-hour period during which AWS OpsWorks CM backs up
1215      * application-level data on your server if automated backups are enabled. Valid
1216      * values must be specified in one of the following formats: </p> <ul> <li> <p>
1217      * <code>HH:MM</code> for daily backups</p> </li> <li> <p> <code>DDD:HH:MM</code>
1218      * for weekly backups</p> </li> </ul> <p> <code>MM</code> must be specified as
1219      * <code>00</code>. The specified time is in coordinated universal time (UTC). The
1220      * default value is a random, daily start time.</p> <p> <b>Example:</b>
1221      * <code>08:00</code>, which represents a daily start time of 08:00 UTC.</p> <p>
1222      * <b>Example:</b> <code>Mon:08:00</code>, which represents a start time of every
1223      * Monday at 08:00 UTC. (8:00 a.m.)</p>
1224      */
WithPreferredBackupWindow(const Aws::String & value)1225     inline CreateServerRequest& WithPreferredBackupWindow(const Aws::String& value) { SetPreferredBackupWindow(value); return *this;}
1226 
1227     /**
1228      * <p> The start time for a one-hour period during which AWS OpsWorks CM backs up
1229      * application-level data on your server if automated backups are enabled. Valid
1230      * values must be specified in one of the following formats: </p> <ul> <li> <p>
1231      * <code>HH:MM</code> for daily backups</p> </li> <li> <p> <code>DDD:HH:MM</code>
1232      * for weekly backups</p> </li> </ul> <p> <code>MM</code> must be specified as
1233      * <code>00</code>. The specified time is in coordinated universal time (UTC). The
1234      * default value is a random, daily start time.</p> <p> <b>Example:</b>
1235      * <code>08:00</code>, which represents a daily start time of 08:00 UTC.</p> <p>
1236      * <b>Example:</b> <code>Mon:08:00</code>, which represents a start time of every
1237      * Monday at 08:00 UTC. (8:00 a.m.)</p>
1238      */
WithPreferredBackupWindow(Aws::String && value)1239     inline CreateServerRequest& WithPreferredBackupWindow(Aws::String&& value) { SetPreferredBackupWindow(std::move(value)); return *this;}
1240 
1241     /**
1242      * <p> The start time for a one-hour period during which AWS OpsWorks CM backs up
1243      * application-level data on your server if automated backups are enabled. Valid
1244      * values must be specified in one of the following formats: </p> <ul> <li> <p>
1245      * <code>HH:MM</code> for daily backups</p> </li> <li> <p> <code>DDD:HH:MM</code>
1246      * for weekly backups</p> </li> </ul> <p> <code>MM</code> must be specified as
1247      * <code>00</code>. The specified time is in coordinated universal time (UTC). The
1248      * default value is a random, daily start time.</p> <p> <b>Example:</b>
1249      * <code>08:00</code>, which represents a daily start time of 08:00 UTC.</p> <p>
1250      * <b>Example:</b> <code>Mon:08:00</code>, which represents a start time of every
1251      * Monday at 08:00 UTC. (8:00 a.m.)</p>
1252      */
WithPreferredBackupWindow(const char * value)1253     inline CreateServerRequest& WithPreferredBackupWindow(const char* value) { SetPreferredBackupWindow(value); return *this;}
1254 
1255 
1256     /**
1257      * <p> A list of security group IDs to attach to the Amazon EC2 instance. If you
1258      * add this parameter, the specified security groups must be within the VPC that is
1259      * specified by <code>SubnetIds</code>. </p> <p> If you do not specify this
1260      * parameter, AWS OpsWorks CM creates one new security group that uses TCP ports 22
1261      * and 443, open to 0.0.0.0/0 (everyone). </p>
1262      */
GetSecurityGroupIds()1263     inline const Aws::Vector<Aws::String>& GetSecurityGroupIds() const{ return m_securityGroupIds; }
1264 
1265     /**
1266      * <p> A list of security group IDs to attach to the Amazon EC2 instance. If you
1267      * add this parameter, the specified security groups must be within the VPC that is
1268      * specified by <code>SubnetIds</code>. </p> <p> If you do not specify this
1269      * parameter, AWS OpsWorks CM creates one new security group that uses TCP ports 22
1270      * and 443, open to 0.0.0.0/0 (everyone). </p>
1271      */
SecurityGroupIdsHasBeenSet()1272     inline bool SecurityGroupIdsHasBeenSet() const { return m_securityGroupIdsHasBeenSet; }
1273 
1274     /**
1275      * <p> A list of security group IDs to attach to the Amazon EC2 instance. If you
1276      * add this parameter, the specified security groups must be within the VPC that is
1277      * specified by <code>SubnetIds</code>. </p> <p> If you do not specify this
1278      * parameter, AWS OpsWorks CM creates one new security group that uses TCP ports 22
1279      * and 443, open to 0.0.0.0/0 (everyone). </p>
1280      */
SetSecurityGroupIds(const Aws::Vector<Aws::String> & value)1281     inline void SetSecurityGroupIds(const Aws::Vector<Aws::String>& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = value; }
1282 
1283     /**
1284      * <p> A list of security group IDs to attach to the Amazon EC2 instance. If you
1285      * add this parameter, the specified security groups must be within the VPC that is
1286      * specified by <code>SubnetIds</code>. </p> <p> If you do not specify this
1287      * parameter, AWS OpsWorks CM creates one new security group that uses TCP ports 22
1288      * and 443, open to 0.0.0.0/0 (everyone). </p>
1289      */
SetSecurityGroupIds(Aws::Vector<Aws::String> && value)1290     inline void SetSecurityGroupIds(Aws::Vector<Aws::String>&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = std::move(value); }
1291 
1292     /**
1293      * <p> A list of security group IDs to attach to the Amazon EC2 instance. If you
1294      * add this parameter, the specified security groups must be within the VPC that is
1295      * specified by <code>SubnetIds</code>. </p> <p> If you do not specify this
1296      * parameter, AWS OpsWorks CM creates one new security group that uses TCP ports 22
1297      * and 443, open to 0.0.0.0/0 (everyone). </p>
1298      */
WithSecurityGroupIds(const Aws::Vector<Aws::String> & value)1299     inline CreateServerRequest& WithSecurityGroupIds(const Aws::Vector<Aws::String>& value) { SetSecurityGroupIds(value); return *this;}
1300 
1301     /**
1302      * <p> A list of security group IDs to attach to the Amazon EC2 instance. If you
1303      * add this parameter, the specified security groups must be within the VPC that is
1304      * specified by <code>SubnetIds</code>. </p> <p> If you do not specify this
1305      * parameter, AWS OpsWorks CM creates one new security group that uses TCP ports 22
1306      * and 443, open to 0.0.0.0/0 (everyone). </p>
1307      */
WithSecurityGroupIds(Aws::Vector<Aws::String> && value)1308     inline CreateServerRequest& WithSecurityGroupIds(Aws::Vector<Aws::String>&& value) { SetSecurityGroupIds(std::move(value)); return *this;}
1309 
1310     /**
1311      * <p> A list of security group IDs to attach to the Amazon EC2 instance. If you
1312      * add this parameter, the specified security groups must be within the VPC that is
1313      * specified by <code>SubnetIds</code>. </p> <p> If you do not specify this
1314      * parameter, AWS OpsWorks CM creates one new security group that uses TCP ports 22
1315      * and 443, open to 0.0.0.0/0 (everyone). </p>
1316      */
AddSecurityGroupIds(const Aws::String & value)1317     inline CreateServerRequest& AddSecurityGroupIds(const Aws::String& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; }
1318 
1319     /**
1320      * <p> A list of security group IDs to attach to the Amazon EC2 instance. If you
1321      * add this parameter, the specified security groups must be within the VPC that is
1322      * specified by <code>SubnetIds</code>. </p> <p> If you do not specify this
1323      * parameter, AWS OpsWorks CM creates one new security group that uses TCP ports 22
1324      * and 443, open to 0.0.0.0/0 (everyone). </p>
1325      */
AddSecurityGroupIds(Aws::String && value)1326     inline CreateServerRequest& AddSecurityGroupIds(Aws::String&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(std::move(value)); return *this; }
1327 
1328     /**
1329      * <p> A list of security group IDs to attach to the Amazon EC2 instance. If you
1330      * add this parameter, the specified security groups must be within the VPC that is
1331      * specified by <code>SubnetIds</code>. </p> <p> If you do not specify this
1332      * parameter, AWS OpsWorks CM creates one new security group that uses TCP ports 22
1333      * and 443, open to 0.0.0.0/0 (everyone). </p>
1334      */
AddSecurityGroupIds(const char * value)1335     inline CreateServerRequest& AddSecurityGroupIds(const char* value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; }
1336 
1337 
1338     /**
1339      * <p> The service role that the AWS OpsWorks CM service backend uses to work with
1340      * your account. Although the AWS OpsWorks management console typically creates the
1341      * service role for you, if you are using the AWS CLI or API commands, run the
1342      * service-role-creation.yaml AWS CloudFormation template, located at
1343      * https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml.
1344      * This template creates a CloudFormation stack that includes the service role and
1345      * instance profile that you need. </p>
1346      */
GetServiceRoleArn()1347     inline const Aws::String& GetServiceRoleArn() const{ return m_serviceRoleArn; }
1348 
1349     /**
1350      * <p> The service role that the AWS OpsWorks CM service backend uses to work with
1351      * your account. Although the AWS OpsWorks management console typically creates the
1352      * service role for you, if you are using the AWS CLI or API commands, run the
1353      * service-role-creation.yaml AWS CloudFormation template, located at
1354      * https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml.
1355      * This template creates a CloudFormation stack that includes the service role and
1356      * instance profile that you need. </p>
1357      */
ServiceRoleArnHasBeenSet()1358     inline bool ServiceRoleArnHasBeenSet() const { return m_serviceRoleArnHasBeenSet; }
1359 
1360     /**
1361      * <p> The service role that the AWS OpsWorks CM service backend uses to work with
1362      * your account. Although the AWS OpsWorks management console typically creates the
1363      * service role for you, if you are using the AWS CLI or API commands, run the
1364      * service-role-creation.yaml AWS CloudFormation template, located at
1365      * https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml.
1366      * This template creates a CloudFormation stack that includes the service role and
1367      * instance profile that you need. </p>
1368      */
SetServiceRoleArn(const Aws::String & value)1369     inline void SetServiceRoleArn(const Aws::String& value) { m_serviceRoleArnHasBeenSet = true; m_serviceRoleArn = value; }
1370 
1371     /**
1372      * <p> The service role that the AWS OpsWorks CM service backend uses to work with
1373      * your account. Although the AWS OpsWorks management console typically creates the
1374      * service role for you, if you are using the AWS CLI or API commands, run the
1375      * service-role-creation.yaml AWS CloudFormation template, located at
1376      * https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml.
1377      * This template creates a CloudFormation stack that includes the service role and
1378      * instance profile that you need. </p>
1379      */
SetServiceRoleArn(Aws::String && value)1380     inline void SetServiceRoleArn(Aws::String&& value) { m_serviceRoleArnHasBeenSet = true; m_serviceRoleArn = std::move(value); }
1381 
1382     /**
1383      * <p> The service role that the AWS OpsWorks CM service backend uses to work with
1384      * your account. Although the AWS OpsWorks management console typically creates the
1385      * service role for you, if you are using the AWS CLI or API commands, run the
1386      * service-role-creation.yaml AWS CloudFormation template, located at
1387      * https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml.
1388      * This template creates a CloudFormation stack that includes the service role and
1389      * instance profile that you need. </p>
1390      */
SetServiceRoleArn(const char * value)1391     inline void SetServiceRoleArn(const char* value) { m_serviceRoleArnHasBeenSet = true; m_serviceRoleArn.assign(value); }
1392 
1393     /**
1394      * <p> The service role that the AWS OpsWorks CM service backend uses to work with
1395      * your account. Although the AWS OpsWorks management console typically creates the
1396      * service role for you, if you are using the AWS CLI or API commands, run the
1397      * service-role-creation.yaml AWS CloudFormation template, located at
1398      * https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml.
1399      * This template creates a CloudFormation stack that includes the service role and
1400      * instance profile that you need. </p>
1401      */
WithServiceRoleArn(const Aws::String & value)1402     inline CreateServerRequest& WithServiceRoleArn(const Aws::String& value) { SetServiceRoleArn(value); return *this;}
1403 
1404     /**
1405      * <p> The service role that the AWS OpsWorks CM service backend uses to work with
1406      * your account. Although the AWS OpsWorks management console typically creates the
1407      * service role for you, if you are using the AWS CLI or API commands, run the
1408      * service-role-creation.yaml AWS CloudFormation template, located at
1409      * https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml.
1410      * This template creates a CloudFormation stack that includes the service role and
1411      * instance profile that you need. </p>
1412      */
WithServiceRoleArn(Aws::String && value)1413     inline CreateServerRequest& WithServiceRoleArn(Aws::String&& value) { SetServiceRoleArn(std::move(value)); return *this;}
1414 
1415     /**
1416      * <p> The service role that the AWS OpsWorks CM service backend uses to work with
1417      * your account. Although the AWS OpsWorks management console typically creates the
1418      * service role for you, if you are using the AWS CLI or API commands, run the
1419      * service-role-creation.yaml AWS CloudFormation template, located at
1420      * https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml.
1421      * This template creates a CloudFormation stack that includes the service role and
1422      * instance profile that you need. </p>
1423      */
WithServiceRoleArn(const char * value)1424     inline CreateServerRequest& WithServiceRoleArn(const char* value) { SetServiceRoleArn(value); return *this;}
1425 
1426 
1427     /**
1428      * <p> The IDs of subnets in which to launch the server EC2 instance. </p> <p>
1429      * Amazon EC2-Classic customers: This field is required. All servers must run
1430      * within a VPC. The VPC must have "Auto Assign Public IP" enabled. </p> <p>
1431      * EC2-VPC customers: This field is optional. If you do not specify subnet IDs,
1432      * your EC2 instances are created in a default subnet that is selected by Amazon
1433      * EC2. If you specify subnet IDs, the VPC must have "Auto Assign Public IP"
1434      * enabled. </p> <p>For more information about supported Amazon EC2 platforms, see
1435      * <a
1436      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported
1437      * Platforms</a>.</p>
1438      */
GetSubnetIds()1439     inline const Aws::Vector<Aws::String>& GetSubnetIds() const{ return m_subnetIds; }
1440 
1441     /**
1442      * <p> The IDs of subnets in which to launch the server EC2 instance. </p> <p>
1443      * Amazon EC2-Classic customers: This field is required. All servers must run
1444      * within a VPC. The VPC must have "Auto Assign Public IP" enabled. </p> <p>
1445      * EC2-VPC customers: This field is optional. If you do not specify subnet IDs,
1446      * your EC2 instances are created in a default subnet that is selected by Amazon
1447      * EC2. If you specify subnet IDs, the VPC must have "Auto Assign Public IP"
1448      * enabled. </p> <p>For more information about supported Amazon EC2 platforms, see
1449      * <a
1450      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported
1451      * Platforms</a>.</p>
1452      */
SubnetIdsHasBeenSet()1453     inline bool SubnetIdsHasBeenSet() const { return m_subnetIdsHasBeenSet; }
1454 
1455     /**
1456      * <p> The IDs of subnets in which to launch the server EC2 instance. </p> <p>
1457      * Amazon EC2-Classic customers: This field is required. All servers must run
1458      * within a VPC. The VPC must have "Auto Assign Public IP" enabled. </p> <p>
1459      * EC2-VPC customers: This field is optional. If you do not specify subnet IDs,
1460      * your EC2 instances are created in a default subnet that is selected by Amazon
1461      * EC2. If you specify subnet IDs, the VPC must have "Auto Assign Public IP"
1462      * enabled. </p> <p>For more information about supported Amazon EC2 platforms, see
1463      * <a
1464      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported
1465      * Platforms</a>.</p>
1466      */
SetSubnetIds(const Aws::Vector<Aws::String> & value)1467     inline void SetSubnetIds(const Aws::Vector<Aws::String>& value) { m_subnetIdsHasBeenSet = true; m_subnetIds = value; }
1468 
1469     /**
1470      * <p> The IDs of subnets in which to launch the server EC2 instance. </p> <p>
1471      * Amazon EC2-Classic customers: This field is required. All servers must run
1472      * within a VPC. The VPC must have "Auto Assign Public IP" enabled. </p> <p>
1473      * EC2-VPC customers: This field is optional. If you do not specify subnet IDs,
1474      * your EC2 instances are created in a default subnet that is selected by Amazon
1475      * EC2. If you specify subnet IDs, the VPC must have "Auto Assign Public IP"
1476      * enabled. </p> <p>For more information about supported Amazon EC2 platforms, see
1477      * <a
1478      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported
1479      * Platforms</a>.</p>
1480      */
SetSubnetIds(Aws::Vector<Aws::String> && value)1481     inline void SetSubnetIds(Aws::Vector<Aws::String>&& value) { m_subnetIdsHasBeenSet = true; m_subnetIds = std::move(value); }
1482 
1483     /**
1484      * <p> The IDs of subnets in which to launch the server EC2 instance. </p> <p>
1485      * Amazon EC2-Classic customers: This field is required. All servers must run
1486      * within a VPC. The VPC must have "Auto Assign Public IP" enabled. </p> <p>
1487      * EC2-VPC customers: This field is optional. If you do not specify subnet IDs,
1488      * your EC2 instances are created in a default subnet that is selected by Amazon
1489      * EC2. If you specify subnet IDs, the VPC must have "Auto Assign Public IP"
1490      * enabled. </p> <p>For more information about supported Amazon EC2 platforms, see
1491      * <a
1492      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported
1493      * Platforms</a>.</p>
1494      */
WithSubnetIds(const Aws::Vector<Aws::String> & value)1495     inline CreateServerRequest& WithSubnetIds(const Aws::Vector<Aws::String>& value) { SetSubnetIds(value); return *this;}
1496 
1497     /**
1498      * <p> The IDs of subnets in which to launch the server EC2 instance. </p> <p>
1499      * Amazon EC2-Classic customers: This field is required. All servers must run
1500      * within a VPC. The VPC must have "Auto Assign Public IP" enabled. </p> <p>
1501      * EC2-VPC customers: This field is optional. If you do not specify subnet IDs,
1502      * your EC2 instances are created in a default subnet that is selected by Amazon
1503      * EC2. If you specify subnet IDs, the VPC must have "Auto Assign Public IP"
1504      * enabled. </p> <p>For more information about supported Amazon EC2 platforms, see
1505      * <a
1506      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported
1507      * Platforms</a>.</p>
1508      */
WithSubnetIds(Aws::Vector<Aws::String> && value)1509     inline CreateServerRequest& WithSubnetIds(Aws::Vector<Aws::String>&& value) { SetSubnetIds(std::move(value)); return *this;}
1510 
1511     /**
1512      * <p> The IDs of subnets in which to launch the server EC2 instance. </p> <p>
1513      * Amazon EC2-Classic customers: This field is required. All servers must run
1514      * within a VPC. The VPC must have "Auto Assign Public IP" enabled. </p> <p>
1515      * EC2-VPC customers: This field is optional. If you do not specify subnet IDs,
1516      * your EC2 instances are created in a default subnet that is selected by Amazon
1517      * EC2. If you specify subnet IDs, the VPC must have "Auto Assign Public IP"
1518      * enabled. </p> <p>For more information about supported Amazon EC2 platforms, see
1519      * <a
1520      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported
1521      * Platforms</a>.</p>
1522      */
AddSubnetIds(const Aws::String & value)1523     inline CreateServerRequest& AddSubnetIds(const Aws::String& value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(value); return *this; }
1524 
1525     /**
1526      * <p> The IDs of subnets in which to launch the server EC2 instance. </p> <p>
1527      * Amazon EC2-Classic customers: This field is required. All servers must run
1528      * within a VPC. The VPC must have "Auto Assign Public IP" enabled. </p> <p>
1529      * EC2-VPC customers: This field is optional. If you do not specify subnet IDs,
1530      * your EC2 instances are created in a default subnet that is selected by Amazon
1531      * EC2. If you specify subnet IDs, the VPC must have "Auto Assign Public IP"
1532      * enabled. </p> <p>For more information about supported Amazon EC2 platforms, see
1533      * <a
1534      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported
1535      * Platforms</a>.</p>
1536      */
AddSubnetIds(Aws::String && value)1537     inline CreateServerRequest& AddSubnetIds(Aws::String&& value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(std::move(value)); return *this; }
1538 
1539     /**
1540      * <p> The IDs of subnets in which to launch the server EC2 instance. </p> <p>
1541      * Amazon EC2-Classic customers: This field is required. All servers must run
1542      * within a VPC. The VPC must have "Auto Assign Public IP" enabled. </p> <p>
1543      * EC2-VPC customers: This field is optional. If you do not specify subnet IDs,
1544      * your EC2 instances are created in a default subnet that is selected by Amazon
1545      * EC2. If you specify subnet IDs, the VPC must have "Auto Assign Public IP"
1546      * enabled. </p> <p>For more information about supported Amazon EC2 platforms, see
1547      * <a
1548      * href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported
1549      * Platforms</a>.</p>
1550      */
AddSubnetIds(const char * value)1551     inline CreateServerRequest& AddSubnetIds(const char* value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(value); return *this; }
1552 
1553 
1554     /**
1555      * <p>A map that contains tag keys and tag values to attach to an AWS OpsWorks for
1556      * Chef Automate or AWS OpsWorks for Puppet Enterprise server.</p> <ul> <li> <p>The
1557      * key cannot be empty.</p> </li> <li> <p>The key can be a maximum of 127
1558      * characters, and can contain only Unicode letters, numbers, or separators, or the
1559      * following special characters: <code>+ - = . _ : / @</code> </p> </li> <li>
1560      * <p>The value can be a maximum 255 characters, and contain only Unicode letters,
1561      * numbers, or separators, or the following special characters: <code>+ - = . _ : /
1562      * @</code> </p> </li> <li> <p>Leading and trailing white spaces are trimmed from
1563      * both the key and value.</p> </li> <li> <p>A maximum of 50 user-applied tags is
1564      * allowed for any AWS OpsWorks-CM server.</p> </li> </ul>
1565      */
GetTags()1566     inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; }
1567 
1568     /**
1569      * <p>A map that contains tag keys and tag values to attach to an AWS OpsWorks for
1570      * Chef Automate or AWS OpsWorks for Puppet Enterprise server.</p> <ul> <li> <p>The
1571      * key cannot be empty.</p> </li> <li> <p>The key can be a maximum of 127
1572      * characters, and can contain only Unicode letters, numbers, or separators, or the
1573      * following special characters: <code>+ - = . _ : / @</code> </p> </li> <li>
1574      * <p>The value can be a maximum 255 characters, and contain only Unicode letters,
1575      * numbers, or separators, or the following special characters: <code>+ - = . _ : /
1576      * @</code> </p> </li> <li> <p>Leading and trailing white spaces are trimmed from
1577      * both the key and value.</p> </li> <li> <p>A maximum of 50 user-applied tags is
1578      * allowed for any AWS OpsWorks-CM server.</p> </li> </ul>
1579      */
TagsHasBeenSet()1580     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
1581 
1582     /**
1583      * <p>A map that contains tag keys and tag values to attach to an AWS OpsWorks for
1584      * Chef Automate or AWS OpsWorks for Puppet Enterprise server.</p> <ul> <li> <p>The
1585      * key cannot be empty.</p> </li> <li> <p>The key can be a maximum of 127
1586      * characters, and can contain only Unicode letters, numbers, or separators, or the
1587      * following special characters: <code>+ - = . _ : / @</code> </p> </li> <li>
1588      * <p>The value can be a maximum 255 characters, and contain only Unicode letters,
1589      * numbers, or separators, or the following special characters: <code>+ - = . _ : /
1590      * @</code> </p> </li> <li> <p>Leading and trailing white spaces are trimmed from
1591      * both the key and value.</p> </li> <li> <p>A maximum of 50 user-applied tags is
1592      * allowed for any AWS OpsWorks-CM server.</p> </li> </ul>
1593      */
SetTags(const Aws::Vector<Tag> & value)1594     inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; }
1595 
1596     /**
1597      * <p>A map that contains tag keys and tag values to attach to an AWS OpsWorks for
1598      * Chef Automate or AWS OpsWorks for Puppet Enterprise server.</p> <ul> <li> <p>The
1599      * key cannot be empty.</p> </li> <li> <p>The key can be a maximum of 127
1600      * characters, and can contain only Unicode letters, numbers, or separators, or the
1601      * following special characters: <code>+ - = . _ : / @</code> </p> </li> <li>
1602      * <p>The value can be a maximum 255 characters, and contain only Unicode letters,
1603      * numbers, or separators, or the following special characters: <code>+ - = . _ : /
1604      * @</code> </p> </li> <li> <p>Leading and trailing white spaces are trimmed from
1605      * both the key and value.</p> </li> <li> <p>A maximum of 50 user-applied tags is
1606      * allowed for any AWS OpsWorks-CM server.</p> </li> </ul>
1607      */
SetTags(Aws::Vector<Tag> && value)1608     inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
1609 
1610     /**
1611      * <p>A map that contains tag keys and tag values to attach to an AWS OpsWorks for
1612      * Chef Automate or AWS OpsWorks for Puppet Enterprise server.</p> <ul> <li> <p>The
1613      * key cannot be empty.</p> </li> <li> <p>The key can be a maximum of 127
1614      * characters, and can contain only Unicode letters, numbers, or separators, or the
1615      * following special characters: <code>+ - = . _ : / @</code> </p> </li> <li>
1616      * <p>The value can be a maximum 255 characters, and contain only Unicode letters,
1617      * numbers, or separators, or the following special characters: <code>+ - = . _ : /
1618      * @</code> </p> </li> <li> <p>Leading and trailing white spaces are trimmed from
1619      * both the key and value.</p> </li> <li> <p>A maximum of 50 user-applied tags is
1620      * allowed for any AWS OpsWorks-CM server.</p> </li> </ul>
1621      */
WithTags(const Aws::Vector<Tag> & value)1622     inline CreateServerRequest& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;}
1623 
1624     /**
1625      * <p>A map that contains tag keys and tag values to attach to an AWS OpsWorks for
1626      * Chef Automate or AWS OpsWorks for Puppet Enterprise server.</p> <ul> <li> <p>The
1627      * key cannot be empty.</p> </li> <li> <p>The key can be a maximum of 127
1628      * characters, and can contain only Unicode letters, numbers, or separators, or the
1629      * following special characters: <code>+ - = . _ : / @</code> </p> </li> <li>
1630      * <p>The value can be a maximum 255 characters, and contain only Unicode letters,
1631      * numbers, or separators, or the following special characters: <code>+ - = . _ : /
1632      * @</code> </p> </li> <li> <p>Leading and trailing white spaces are trimmed from
1633      * both the key and value.</p> </li> <li> <p>A maximum of 50 user-applied tags is
1634      * allowed for any AWS OpsWorks-CM server.</p> </li> </ul>
1635      */
WithTags(Aws::Vector<Tag> && value)1636     inline CreateServerRequest& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;}
1637 
1638     /**
1639      * <p>A map that contains tag keys and tag values to attach to an AWS OpsWorks for
1640      * Chef Automate or AWS OpsWorks for Puppet Enterprise server.</p> <ul> <li> <p>The
1641      * key cannot be empty.</p> </li> <li> <p>The key can be a maximum of 127
1642      * characters, and can contain only Unicode letters, numbers, or separators, or the
1643      * following special characters: <code>+ - = . _ : / @</code> </p> </li> <li>
1644      * <p>The value can be a maximum 255 characters, and contain only Unicode letters,
1645      * numbers, or separators, or the following special characters: <code>+ - = . _ : /
1646      * @</code> </p> </li> <li> <p>Leading and trailing white spaces are trimmed from
1647      * both the key and value.</p> </li> <li> <p>A maximum of 50 user-applied tags is
1648      * allowed for any AWS OpsWorks-CM server.</p> </li> </ul>
1649      */
AddTags(const Tag & value)1650     inline CreateServerRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; }
1651 
1652     /**
1653      * <p>A map that contains tag keys and tag values to attach to an AWS OpsWorks for
1654      * Chef Automate or AWS OpsWorks for Puppet Enterprise server.</p> <ul> <li> <p>The
1655      * key cannot be empty.</p> </li> <li> <p>The key can be a maximum of 127
1656      * characters, and can contain only Unicode letters, numbers, or separators, or the
1657      * following special characters: <code>+ - = . _ : / @</code> </p> </li> <li>
1658      * <p>The value can be a maximum 255 characters, and contain only Unicode letters,
1659      * numbers, or separators, or the following special characters: <code>+ - = . _ : /
1660      * @</code> </p> </li> <li> <p>Leading and trailing white spaces are trimmed from
1661      * both the key and value.</p> </li> <li> <p>A maximum of 50 user-applied tags is
1662      * allowed for any AWS OpsWorks-CM server.</p> </li> </ul>
1663      */
AddTags(Tag && value)1664     inline CreateServerRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; }
1665 
1666 
1667     /**
1668      * <p> If you specify this field, AWS OpsWorks CM creates the server by using the
1669      * backup represented by BackupId. </p>
1670      */
GetBackupId()1671     inline const Aws::String& GetBackupId() const{ return m_backupId; }
1672 
1673     /**
1674      * <p> If you specify this field, AWS OpsWorks CM creates the server by using the
1675      * backup represented by BackupId. </p>
1676      */
BackupIdHasBeenSet()1677     inline bool BackupIdHasBeenSet() const { return m_backupIdHasBeenSet; }
1678 
1679     /**
1680      * <p> If you specify this field, AWS OpsWorks CM creates the server by using the
1681      * backup represented by BackupId. </p>
1682      */
SetBackupId(const Aws::String & value)1683     inline void SetBackupId(const Aws::String& value) { m_backupIdHasBeenSet = true; m_backupId = value; }
1684 
1685     /**
1686      * <p> If you specify this field, AWS OpsWorks CM creates the server by using the
1687      * backup represented by BackupId. </p>
1688      */
SetBackupId(Aws::String && value)1689     inline void SetBackupId(Aws::String&& value) { m_backupIdHasBeenSet = true; m_backupId = std::move(value); }
1690 
1691     /**
1692      * <p> If you specify this field, AWS OpsWorks CM creates the server by using the
1693      * backup represented by BackupId. </p>
1694      */
SetBackupId(const char * value)1695     inline void SetBackupId(const char* value) { m_backupIdHasBeenSet = true; m_backupId.assign(value); }
1696 
1697     /**
1698      * <p> If you specify this field, AWS OpsWorks CM creates the server by using the
1699      * backup represented by BackupId. </p>
1700      */
WithBackupId(const Aws::String & value)1701     inline CreateServerRequest& WithBackupId(const Aws::String& value) { SetBackupId(value); return *this;}
1702 
1703     /**
1704      * <p> If you specify this field, AWS OpsWorks CM creates the server by using the
1705      * backup represented by BackupId. </p>
1706      */
WithBackupId(Aws::String && value)1707     inline CreateServerRequest& WithBackupId(Aws::String&& value) { SetBackupId(std::move(value)); return *this;}
1708 
1709     /**
1710      * <p> If you specify this field, AWS OpsWorks CM creates the server by using the
1711      * backup represented by BackupId. </p>
1712      */
WithBackupId(const char * value)1713     inline CreateServerRequest& WithBackupId(const char* value) { SetBackupId(value); return *this;}
1714 
1715   private:
1716 
1717     bool m_associatePublicIpAddress;
1718     bool m_associatePublicIpAddressHasBeenSet;
1719 
1720     Aws::String m_customDomain;
1721     bool m_customDomainHasBeenSet;
1722 
1723     Aws::String m_customCertificate;
1724     bool m_customCertificateHasBeenSet;
1725 
1726     Aws::String m_customPrivateKey;
1727     bool m_customPrivateKeyHasBeenSet;
1728 
1729     bool m_disableAutomatedBackup;
1730     bool m_disableAutomatedBackupHasBeenSet;
1731 
1732     Aws::String m_engine;
1733     bool m_engineHasBeenSet;
1734 
1735     Aws::String m_engineModel;
1736     bool m_engineModelHasBeenSet;
1737 
1738     Aws::String m_engineVersion;
1739     bool m_engineVersionHasBeenSet;
1740 
1741     Aws::Vector<EngineAttribute> m_engineAttributes;
1742     bool m_engineAttributesHasBeenSet;
1743 
1744     int m_backupRetentionCount;
1745     bool m_backupRetentionCountHasBeenSet;
1746 
1747     Aws::String m_serverName;
1748     bool m_serverNameHasBeenSet;
1749 
1750     Aws::String m_instanceProfileArn;
1751     bool m_instanceProfileArnHasBeenSet;
1752 
1753     Aws::String m_instanceType;
1754     bool m_instanceTypeHasBeenSet;
1755 
1756     Aws::String m_keyPair;
1757     bool m_keyPairHasBeenSet;
1758 
1759     Aws::String m_preferredMaintenanceWindow;
1760     bool m_preferredMaintenanceWindowHasBeenSet;
1761 
1762     Aws::String m_preferredBackupWindow;
1763     bool m_preferredBackupWindowHasBeenSet;
1764 
1765     Aws::Vector<Aws::String> m_securityGroupIds;
1766     bool m_securityGroupIdsHasBeenSet;
1767 
1768     Aws::String m_serviceRoleArn;
1769     bool m_serviceRoleArnHasBeenSet;
1770 
1771     Aws::Vector<Aws::String> m_subnetIds;
1772     bool m_subnetIdsHasBeenSet;
1773 
1774     Aws::Vector<Tag> m_tags;
1775     bool m_tagsHasBeenSet;
1776 
1777     Aws::String m_backupId;
1778     bool m_backupIdHasBeenSet;
1779   };
1780 
1781 } // namespace Model
1782 } // namespace OpsWorksCM
1783 } // namespace Aws
1784