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/eks/EKS_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/DateTime.h>
10 #include <aws/eks/model/VpcConfigResponse.h>
11 #include <aws/eks/model/KubernetesNetworkConfigResponse.h>
12 #include <aws/eks/model/Logging.h>
13 #include <aws/eks/model/Identity.h>
14 #include <aws/eks/model/ClusterStatus.h>
15 #include <aws/eks/model/Certificate.h>
16 #include <aws/core/utils/memory/stl/AWSMap.h>
17 #include <aws/core/utils/memory/stl/AWSVector.h>
18 #include <aws/eks/model/ConnectorConfigResponse.h>
19 #include <aws/eks/model/EncryptionConfig.h>
20 #include <utility>
21 
22 namespace Aws
23 {
24 namespace Utils
25 {
26 namespace Json
27 {
28   class JsonValue;
29   class JsonView;
30 } // namespace Json
31 } // namespace Utils
32 namespace EKS
33 {
34 namespace Model
35 {
36 
37   /**
38    * <p>An object representing an Amazon EKS cluster.</p><p><h3>See Also:</h3>   <a
39    * href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/Cluster">AWS API
40    * Reference</a></p>
41    */
42   class AWS_EKS_API Cluster
43   {
44   public:
45     Cluster();
46     Cluster(Aws::Utils::Json::JsonView jsonValue);
47     Cluster& operator=(Aws::Utils::Json::JsonView jsonValue);
48     Aws::Utils::Json::JsonValue Jsonize() const;
49 
50 
51     /**
52      * <p>The name of the cluster.</p>
53      */
GetName()54     inline const Aws::String& GetName() const{ return m_name; }
55 
56     /**
57      * <p>The name of the cluster.</p>
58      */
NameHasBeenSet()59     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
60 
61     /**
62      * <p>The name of the cluster.</p>
63      */
SetName(const Aws::String & value)64     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
65 
66     /**
67      * <p>The name of the cluster.</p>
68      */
SetName(Aws::String && value)69     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
70 
71     /**
72      * <p>The name of the cluster.</p>
73      */
SetName(const char * value)74     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
75 
76     /**
77      * <p>The name of the cluster.</p>
78      */
WithName(const Aws::String & value)79     inline Cluster& WithName(const Aws::String& value) { SetName(value); return *this;}
80 
81     /**
82      * <p>The name of the cluster.</p>
83      */
WithName(Aws::String && value)84     inline Cluster& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
85 
86     /**
87      * <p>The name of the cluster.</p>
88      */
WithName(const char * value)89     inline Cluster& WithName(const char* value) { SetName(value); return *this;}
90 
91 
92     /**
93      * <p>The Amazon Resource Name (ARN) of the cluster.</p>
94      */
GetArn()95     inline const Aws::String& GetArn() const{ return m_arn; }
96 
97     /**
98      * <p>The Amazon Resource Name (ARN) of the cluster.</p>
99      */
ArnHasBeenSet()100     inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; }
101 
102     /**
103      * <p>The Amazon Resource Name (ARN) of the cluster.</p>
104      */
SetArn(const Aws::String & value)105     inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; }
106 
107     /**
108      * <p>The Amazon Resource Name (ARN) of the cluster.</p>
109      */
SetArn(Aws::String && value)110     inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); }
111 
112     /**
113      * <p>The Amazon Resource Name (ARN) of the cluster.</p>
114      */
SetArn(const char * value)115     inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); }
116 
117     /**
118      * <p>The Amazon Resource Name (ARN) of the cluster.</p>
119      */
WithArn(const Aws::String & value)120     inline Cluster& WithArn(const Aws::String& value) { SetArn(value); return *this;}
121 
122     /**
123      * <p>The Amazon Resource Name (ARN) of the cluster.</p>
124      */
WithArn(Aws::String && value)125     inline Cluster& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;}
126 
127     /**
128      * <p>The Amazon Resource Name (ARN) of the cluster.</p>
129      */
WithArn(const char * value)130     inline Cluster& WithArn(const char* value) { SetArn(value); return *this;}
131 
132 
133     /**
134      * <p>The Unix epoch timestamp in seconds for when the cluster was created.</p>
135      */
GetCreatedAt()136     inline const Aws::Utils::DateTime& GetCreatedAt() const{ return m_createdAt; }
137 
138     /**
139      * <p>The Unix epoch timestamp in seconds for when the cluster was created.</p>
140      */
CreatedAtHasBeenSet()141     inline bool CreatedAtHasBeenSet() const { return m_createdAtHasBeenSet; }
142 
143     /**
144      * <p>The Unix epoch timestamp in seconds for when the cluster was created.</p>
145      */
SetCreatedAt(const Aws::Utils::DateTime & value)146     inline void SetCreatedAt(const Aws::Utils::DateTime& value) { m_createdAtHasBeenSet = true; m_createdAt = value; }
147 
148     /**
149      * <p>The Unix epoch timestamp in seconds for when the cluster was created.</p>
150      */
SetCreatedAt(Aws::Utils::DateTime && value)151     inline void SetCreatedAt(Aws::Utils::DateTime&& value) { m_createdAtHasBeenSet = true; m_createdAt = std::move(value); }
152 
153     /**
154      * <p>The Unix epoch timestamp in seconds for when the cluster was created.</p>
155      */
WithCreatedAt(const Aws::Utils::DateTime & value)156     inline Cluster& WithCreatedAt(const Aws::Utils::DateTime& value) { SetCreatedAt(value); return *this;}
157 
158     /**
159      * <p>The Unix epoch timestamp in seconds for when the cluster was created.</p>
160      */
WithCreatedAt(Aws::Utils::DateTime && value)161     inline Cluster& WithCreatedAt(Aws::Utils::DateTime&& value) { SetCreatedAt(std::move(value)); return *this;}
162 
163 
164     /**
165      * <p>The Kubernetes server version for the cluster.</p>
166      */
GetVersion()167     inline const Aws::String& GetVersion() const{ return m_version; }
168 
169     /**
170      * <p>The Kubernetes server version for the cluster.</p>
171      */
VersionHasBeenSet()172     inline bool VersionHasBeenSet() const { return m_versionHasBeenSet; }
173 
174     /**
175      * <p>The Kubernetes server version for the cluster.</p>
176      */
SetVersion(const Aws::String & value)177     inline void SetVersion(const Aws::String& value) { m_versionHasBeenSet = true; m_version = value; }
178 
179     /**
180      * <p>The Kubernetes server version for the cluster.</p>
181      */
SetVersion(Aws::String && value)182     inline void SetVersion(Aws::String&& value) { m_versionHasBeenSet = true; m_version = std::move(value); }
183 
184     /**
185      * <p>The Kubernetes server version for the cluster.</p>
186      */
SetVersion(const char * value)187     inline void SetVersion(const char* value) { m_versionHasBeenSet = true; m_version.assign(value); }
188 
189     /**
190      * <p>The Kubernetes server version for the cluster.</p>
191      */
WithVersion(const Aws::String & value)192     inline Cluster& WithVersion(const Aws::String& value) { SetVersion(value); return *this;}
193 
194     /**
195      * <p>The Kubernetes server version for the cluster.</p>
196      */
WithVersion(Aws::String && value)197     inline Cluster& WithVersion(Aws::String&& value) { SetVersion(std::move(value)); return *this;}
198 
199     /**
200      * <p>The Kubernetes server version for the cluster.</p>
201      */
WithVersion(const char * value)202     inline Cluster& WithVersion(const char* value) { SetVersion(value); return *this;}
203 
204 
205     /**
206      * <p>The endpoint for your Kubernetes API server.</p>
207      */
GetEndpoint()208     inline const Aws::String& GetEndpoint() const{ return m_endpoint; }
209 
210     /**
211      * <p>The endpoint for your Kubernetes API server.</p>
212      */
EndpointHasBeenSet()213     inline bool EndpointHasBeenSet() const { return m_endpointHasBeenSet; }
214 
215     /**
216      * <p>The endpoint for your Kubernetes API server.</p>
217      */
SetEndpoint(const Aws::String & value)218     inline void SetEndpoint(const Aws::String& value) { m_endpointHasBeenSet = true; m_endpoint = value; }
219 
220     /**
221      * <p>The endpoint for your Kubernetes API server.</p>
222      */
SetEndpoint(Aws::String && value)223     inline void SetEndpoint(Aws::String&& value) { m_endpointHasBeenSet = true; m_endpoint = std::move(value); }
224 
225     /**
226      * <p>The endpoint for your Kubernetes API server.</p>
227      */
SetEndpoint(const char * value)228     inline void SetEndpoint(const char* value) { m_endpointHasBeenSet = true; m_endpoint.assign(value); }
229 
230     /**
231      * <p>The endpoint for your Kubernetes API server.</p>
232      */
WithEndpoint(const Aws::String & value)233     inline Cluster& WithEndpoint(const Aws::String& value) { SetEndpoint(value); return *this;}
234 
235     /**
236      * <p>The endpoint for your Kubernetes API server.</p>
237      */
WithEndpoint(Aws::String && value)238     inline Cluster& WithEndpoint(Aws::String&& value) { SetEndpoint(std::move(value)); return *this;}
239 
240     /**
241      * <p>The endpoint for your Kubernetes API server.</p>
242      */
WithEndpoint(const char * value)243     inline Cluster& WithEndpoint(const char* value) { SetEndpoint(value); return *this;}
244 
245 
246     /**
247      * <p>The Amazon Resource Name (ARN) of the IAM role that provides permissions for
248      * the Kubernetes control plane to make calls to Amazon Web Services API operations
249      * on your behalf.</p>
250      */
GetRoleArn()251     inline const Aws::String& GetRoleArn() const{ return m_roleArn; }
252 
253     /**
254      * <p>The Amazon Resource Name (ARN) of the IAM role that provides permissions for
255      * the Kubernetes control plane to make calls to Amazon Web Services API operations
256      * on your behalf.</p>
257      */
RoleArnHasBeenSet()258     inline bool RoleArnHasBeenSet() const { return m_roleArnHasBeenSet; }
259 
260     /**
261      * <p>The Amazon Resource Name (ARN) of the IAM role that provides permissions for
262      * the Kubernetes control plane to make calls to Amazon Web Services API operations
263      * on your behalf.</p>
264      */
SetRoleArn(const Aws::String & value)265     inline void SetRoleArn(const Aws::String& value) { m_roleArnHasBeenSet = true; m_roleArn = value; }
266 
267     /**
268      * <p>The Amazon Resource Name (ARN) of the IAM role that provides permissions for
269      * the Kubernetes control plane to make calls to Amazon Web Services API operations
270      * on your behalf.</p>
271      */
SetRoleArn(Aws::String && value)272     inline void SetRoleArn(Aws::String&& value) { m_roleArnHasBeenSet = true; m_roleArn = std::move(value); }
273 
274     /**
275      * <p>The Amazon Resource Name (ARN) of the IAM role that provides permissions for
276      * the Kubernetes control plane to make calls to Amazon Web Services API operations
277      * on your behalf.</p>
278      */
SetRoleArn(const char * value)279     inline void SetRoleArn(const char* value) { m_roleArnHasBeenSet = true; m_roleArn.assign(value); }
280 
281     /**
282      * <p>The Amazon Resource Name (ARN) of the IAM role that provides permissions for
283      * the Kubernetes control plane to make calls to Amazon Web Services API operations
284      * on your behalf.</p>
285      */
WithRoleArn(const Aws::String & value)286     inline Cluster& WithRoleArn(const Aws::String& value) { SetRoleArn(value); return *this;}
287 
288     /**
289      * <p>The Amazon Resource Name (ARN) of the IAM role that provides permissions for
290      * the Kubernetes control plane to make calls to Amazon Web Services API operations
291      * on your behalf.</p>
292      */
WithRoleArn(Aws::String && value)293     inline Cluster& WithRoleArn(Aws::String&& value) { SetRoleArn(std::move(value)); return *this;}
294 
295     /**
296      * <p>The Amazon Resource Name (ARN) of the IAM role that provides permissions for
297      * the Kubernetes control plane to make calls to Amazon Web Services API operations
298      * on your behalf.</p>
299      */
WithRoleArn(const char * value)300     inline Cluster& WithRoleArn(const char* value) { SetRoleArn(value); return *this;}
301 
302 
303     /**
304      * <p>The VPC configuration used by the cluster control plane. Amazon EKS VPC
305      * resources have specific requirements to work properly with Kubernetes. For more
306      * information, see <a
307      * href="https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html">Cluster
308      * VPC Considerations</a> and <a
309      * href="https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html">Cluster
310      * Security Group Considerations</a> in the <i>Amazon EKS User Guide</i>.</p>
311      */
GetResourcesVpcConfig()312     inline const VpcConfigResponse& GetResourcesVpcConfig() const{ return m_resourcesVpcConfig; }
313 
314     /**
315      * <p>The VPC configuration used by the cluster control plane. Amazon EKS VPC
316      * resources have specific requirements to work properly with Kubernetes. For more
317      * information, see <a
318      * href="https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html">Cluster
319      * VPC Considerations</a> and <a
320      * href="https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html">Cluster
321      * Security Group Considerations</a> in the <i>Amazon EKS User Guide</i>.</p>
322      */
ResourcesVpcConfigHasBeenSet()323     inline bool ResourcesVpcConfigHasBeenSet() const { return m_resourcesVpcConfigHasBeenSet; }
324 
325     /**
326      * <p>The VPC configuration used by the cluster control plane. Amazon EKS VPC
327      * resources have specific requirements to work properly with Kubernetes. For more
328      * information, see <a
329      * href="https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html">Cluster
330      * VPC Considerations</a> and <a
331      * href="https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html">Cluster
332      * Security Group Considerations</a> in the <i>Amazon EKS User Guide</i>.</p>
333      */
SetResourcesVpcConfig(const VpcConfigResponse & value)334     inline void SetResourcesVpcConfig(const VpcConfigResponse& value) { m_resourcesVpcConfigHasBeenSet = true; m_resourcesVpcConfig = value; }
335 
336     /**
337      * <p>The VPC configuration used by the cluster control plane. Amazon EKS VPC
338      * resources have specific requirements to work properly with Kubernetes. For more
339      * information, see <a
340      * href="https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html">Cluster
341      * VPC Considerations</a> and <a
342      * href="https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html">Cluster
343      * Security Group Considerations</a> in the <i>Amazon EKS User Guide</i>.</p>
344      */
SetResourcesVpcConfig(VpcConfigResponse && value)345     inline void SetResourcesVpcConfig(VpcConfigResponse&& value) { m_resourcesVpcConfigHasBeenSet = true; m_resourcesVpcConfig = std::move(value); }
346 
347     /**
348      * <p>The VPC configuration used by the cluster control plane. Amazon EKS VPC
349      * resources have specific requirements to work properly with Kubernetes. For more
350      * information, see <a
351      * href="https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html">Cluster
352      * VPC Considerations</a> and <a
353      * href="https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html">Cluster
354      * Security Group Considerations</a> in the <i>Amazon EKS User Guide</i>.</p>
355      */
WithResourcesVpcConfig(const VpcConfigResponse & value)356     inline Cluster& WithResourcesVpcConfig(const VpcConfigResponse& value) { SetResourcesVpcConfig(value); return *this;}
357 
358     /**
359      * <p>The VPC configuration used by the cluster control plane. Amazon EKS VPC
360      * resources have specific requirements to work properly with Kubernetes. For more
361      * information, see <a
362      * href="https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html">Cluster
363      * VPC Considerations</a> and <a
364      * href="https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html">Cluster
365      * Security Group Considerations</a> in the <i>Amazon EKS User Guide</i>.</p>
366      */
WithResourcesVpcConfig(VpcConfigResponse && value)367     inline Cluster& WithResourcesVpcConfig(VpcConfigResponse&& value) { SetResourcesVpcConfig(std::move(value)); return *this;}
368 
369 
370     /**
371      * <p>The Kubernetes network configuration for the cluster.</p>
372      */
GetKubernetesNetworkConfig()373     inline const KubernetesNetworkConfigResponse& GetKubernetesNetworkConfig() const{ return m_kubernetesNetworkConfig; }
374 
375     /**
376      * <p>The Kubernetes network configuration for the cluster.</p>
377      */
KubernetesNetworkConfigHasBeenSet()378     inline bool KubernetesNetworkConfigHasBeenSet() const { return m_kubernetesNetworkConfigHasBeenSet; }
379 
380     /**
381      * <p>The Kubernetes network configuration for the cluster.</p>
382      */
SetKubernetesNetworkConfig(const KubernetesNetworkConfigResponse & value)383     inline void SetKubernetesNetworkConfig(const KubernetesNetworkConfigResponse& value) { m_kubernetesNetworkConfigHasBeenSet = true; m_kubernetesNetworkConfig = value; }
384 
385     /**
386      * <p>The Kubernetes network configuration for the cluster.</p>
387      */
SetKubernetesNetworkConfig(KubernetesNetworkConfigResponse && value)388     inline void SetKubernetesNetworkConfig(KubernetesNetworkConfigResponse&& value) { m_kubernetesNetworkConfigHasBeenSet = true; m_kubernetesNetworkConfig = std::move(value); }
389 
390     /**
391      * <p>The Kubernetes network configuration for the cluster.</p>
392      */
WithKubernetesNetworkConfig(const KubernetesNetworkConfigResponse & value)393     inline Cluster& WithKubernetesNetworkConfig(const KubernetesNetworkConfigResponse& value) { SetKubernetesNetworkConfig(value); return *this;}
394 
395     /**
396      * <p>The Kubernetes network configuration for the cluster.</p>
397      */
WithKubernetesNetworkConfig(KubernetesNetworkConfigResponse && value)398     inline Cluster& WithKubernetesNetworkConfig(KubernetesNetworkConfigResponse&& value) { SetKubernetesNetworkConfig(std::move(value)); return *this;}
399 
400 
401     /**
402      * <p>The logging configuration for your cluster.</p>
403      */
GetLogging()404     inline const Logging& GetLogging() const{ return m_logging; }
405 
406     /**
407      * <p>The logging configuration for your cluster.</p>
408      */
LoggingHasBeenSet()409     inline bool LoggingHasBeenSet() const { return m_loggingHasBeenSet; }
410 
411     /**
412      * <p>The logging configuration for your cluster.</p>
413      */
SetLogging(const Logging & value)414     inline void SetLogging(const Logging& value) { m_loggingHasBeenSet = true; m_logging = value; }
415 
416     /**
417      * <p>The logging configuration for your cluster.</p>
418      */
SetLogging(Logging && value)419     inline void SetLogging(Logging&& value) { m_loggingHasBeenSet = true; m_logging = std::move(value); }
420 
421     /**
422      * <p>The logging configuration for your cluster.</p>
423      */
WithLogging(const Logging & value)424     inline Cluster& WithLogging(const Logging& value) { SetLogging(value); return *this;}
425 
426     /**
427      * <p>The logging configuration for your cluster.</p>
428      */
WithLogging(Logging && value)429     inline Cluster& WithLogging(Logging&& value) { SetLogging(std::move(value)); return *this;}
430 
431 
432     /**
433      * <p>The identity provider information for the cluster.</p>
434      */
GetIdentity()435     inline const Identity& GetIdentity() const{ return m_identity; }
436 
437     /**
438      * <p>The identity provider information for the cluster.</p>
439      */
IdentityHasBeenSet()440     inline bool IdentityHasBeenSet() const { return m_identityHasBeenSet; }
441 
442     /**
443      * <p>The identity provider information for the cluster.</p>
444      */
SetIdentity(const Identity & value)445     inline void SetIdentity(const Identity& value) { m_identityHasBeenSet = true; m_identity = value; }
446 
447     /**
448      * <p>The identity provider information for the cluster.</p>
449      */
SetIdentity(Identity && value)450     inline void SetIdentity(Identity&& value) { m_identityHasBeenSet = true; m_identity = std::move(value); }
451 
452     /**
453      * <p>The identity provider information for the cluster.</p>
454      */
WithIdentity(const Identity & value)455     inline Cluster& WithIdentity(const Identity& value) { SetIdentity(value); return *this;}
456 
457     /**
458      * <p>The identity provider information for the cluster.</p>
459      */
WithIdentity(Identity && value)460     inline Cluster& WithIdentity(Identity&& value) { SetIdentity(std::move(value)); return *this;}
461 
462 
463     /**
464      * <p>The current status of the cluster.</p>
465      */
GetStatus()466     inline const ClusterStatus& GetStatus() const{ return m_status; }
467 
468     /**
469      * <p>The current status of the cluster.</p>
470      */
StatusHasBeenSet()471     inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; }
472 
473     /**
474      * <p>The current status of the cluster.</p>
475      */
SetStatus(const ClusterStatus & value)476     inline void SetStatus(const ClusterStatus& value) { m_statusHasBeenSet = true; m_status = value; }
477 
478     /**
479      * <p>The current status of the cluster.</p>
480      */
SetStatus(ClusterStatus && value)481     inline void SetStatus(ClusterStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); }
482 
483     /**
484      * <p>The current status of the cluster.</p>
485      */
WithStatus(const ClusterStatus & value)486     inline Cluster& WithStatus(const ClusterStatus& value) { SetStatus(value); return *this;}
487 
488     /**
489      * <p>The current status of the cluster.</p>
490      */
WithStatus(ClusterStatus && value)491     inline Cluster& WithStatus(ClusterStatus&& value) { SetStatus(std::move(value)); return *this;}
492 
493 
494     /**
495      * <p>The <code>certificate-authority-data</code> for your cluster.</p>
496      */
GetCertificateAuthority()497     inline const Certificate& GetCertificateAuthority() const{ return m_certificateAuthority; }
498 
499     /**
500      * <p>The <code>certificate-authority-data</code> for your cluster.</p>
501      */
CertificateAuthorityHasBeenSet()502     inline bool CertificateAuthorityHasBeenSet() const { return m_certificateAuthorityHasBeenSet; }
503 
504     /**
505      * <p>The <code>certificate-authority-data</code> for your cluster.</p>
506      */
SetCertificateAuthority(const Certificate & value)507     inline void SetCertificateAuthority(const Certificate& value) { m_certificateAuthorityHasBeenSet = true; m_certificateAuthority = value; }
508 
509     /**
510      * <p>The <code>certificate-authority-data</code> for your cluster.</p>
511      */
SetCertificateAuthority(Certificate && value)512     inline void SetCertificateAuthority(Certificate&& value) { m_certificateAuthorityHasBeenSet = true; m_certificateAuthority = std::move(value); }
513 
514     /**
515      * <p>The <code>certificate-authority-data</code> for your cluster.</p>
516      */
WithCertificateAuthority(const Certificate & value)517     inline Cluster& WithCertificateAuthority(const Certificate& value) { SetCertificateAuthority(value); return *this;}
518 
519     /**
520      * <p>The <code>certificate-authority-data</code> for your cluster.</p>
521      */
WithCertificateAuthority(Certificate && value)522     inline Cluster& WithCertificateAuthority(Certificate&& value) { SetCertificateAuthority(std::move(value)); return *this;}
523 
524 
525     /**
526      * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency
527      * of the request.</p>
528      */
GetClientRequestToken()529     inline const Aws::String& GetClientRequestToken() const{ return m_clientRequestToken; }
530 
531     /**
532      * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency
533      * of the request.</p>
534      */
ClientRequestTokenHasBeenSet()535     inline bool ClientRequestTokenHasBeenSet() const { return m_clientRequestTokenHasBeenSet; }
536 
537     /**
538      * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency
539      * of the request.</p>
540      */
SetClientRequestToken(const Aws::String & value)541     inline void SetClientRequestToken(const Aws::String& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = value; }
542 
543     /**
544      * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency
545      * of the request.</p>
546      */
SetClientRequestToken(Aws::String && value)547     inline void SetClientRequestToken(Aws::String&& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = std::move(value); }
548 
549     /**
550      * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency
551      * of the request.</p>
552      */
SetClientRequestToken(const char * value)553     inline void SetClientRequestToken(const char* value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken.assign(value); }
554 
555     /**
556      * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency
557      * of the request.</p>
558      */
WithClientRequestToken(const Aws::String & value)559     inline Cluster& WithClientRequestToken(const Aws::String& value) { SetClientRequestToken(value); return *this;}
560 
561     /**
562      * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency
563      * of the request.</p>
564      */
WithClientRequestToken(Aws::String && value)565     inline Cluster& WithClientRequestToken(Aws::String&& value) { SetClientRequestToken(std::move(value)); return *this;}
566 
567     /**
568      * <p>Unique, case-sensitive identifier that you provide to ensure the idempotency
569      * of the request.</p>
570      */
WithClientRequestToken(const char * value)571     inline Cluster& WithClientRequestToken(const char* value) { SetClientRequestToken(value); return *this;}
572 
573 
574     /**
575      * <p>The platform version of your Amazon EKS cluster. For more information, see <a
576      * href="https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html">Platform
577      * Versions</a> in the <i> <i>Amazon EKS User Guide</i> </i>.</p>
578      */
GetPlatformVersion()579     inline const Aws::String& GetPlatformVersion() const{ return m_platformVersion; }
580 
581     /**
582      * <p>The platform version of your Amazon EKS cluster. For more information, see <a
583      * href="https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html">Platform
584      * Versions</a> in the <i> <i>Amazon EKS User Guide</i> </i>.</p>
585      */
PlatformVersionHasBeenSet()586     inline bool PlatformVersionHasBeenSet() const { return m_platformVersionHasBeenSet; }
587 
588     /**
589      * <p>The platform version of your Amazon EKS cluster. For more information, see <a
590      * href="https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html">Platform
591      * Versions</a> in the <i> <i>Amazon EKS User Guide</i> </i>.</p>
592      */
SetPlatformVersion(const Aws::String & value)593     inline void SetPlatformVersion(const Aws::String& value) { m_platformVersionHasBeenSet = true; m_platformVersion = value; }
594 
595     /**
596      * <p>The platform version of your Amazon EKS cluster. For more information, see <a
597      * href="https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html">Platform
598      * Versions</a> in the <i> <i>Amazon EKS User Guide</i> </i>.</p>
599      */
SetPlatformVersion(Aws::String && value)600     inline void SetPlatformVersion(Aws::String&& value) { m_platformVersionHasBeenSet = true; m_platformVersion = std::move(value); }
601 
602     /**
603      * <p>The platform version of your Amazon EKS cluster. For more information, see <a
604      * href="https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html">Platform
605      * Versions</a> in the <i> <i>Amazon EKS User Guide</i> </i>.</p>
606      */
SetPlatformVersion(const char * value)607     inline void SetPlatformVersion(const char* value) { m_platformVersionHasBeenSet = true; m_platformVersion.assign(value); }
608 
609     /**
610      * <p>The platform version of your Amazon EKS cluster. For more information, see <a
611      * href="https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html">Platform
612      * Versions</a> in the <i> <i>Amazon EKS User Guide</i> </i>.</p>
613      */
WithPlatformVersion(const Aws::String & value)614     inline Cluster& WithPlatformVersion(const Aws::String& value) { SetPlatformVersion(value); return *this;}
615 
616     /**
617      * <p>The platform version of your Amazon EKS cluster. For more information, see <a
618      * href="https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html">Platform
619      * Versions</a> in the <i> <i>Amazon EKS User Guide</i> </i>.</p>
620      */
WithPlatformVersion(Aws::String && value)621     inline Cluster& WithPlatformVersion(Aws::String&& value) { SetPlatformVersion(std::move(value)); return *this;}
622 
623     /**
624      * <p>The platform version of your Amazon EKS cluster. For more information, see <a
625      * href="https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html">Platform
626      * Versions</a> in the <i> <i>Amazon EKS User Guide</i> </i>.</p>
627      */
WithPlatformVersion(const char * value)628     inline Cluster& WithPlatformVersion(const char* value) { SetPlatformVersion(value); return *this;}
629 
630 
631     /**
632      * <p>The metadata that you apply to the cluster to assist with categorization and
633      * organization. Each tag consists of a key and an optional value, both of which
634      * you define. Cluster tags do not propagate to any other resources associated with
635      * the cluster.</p>
636      */
GetTags()637     inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
638 
639     /**
640      * <p>The metadata that you apply to the cluster to assist with categorization and
641      * organization. Each tag consists of a key and an optional value, both of which
642      * you define. Cluster tags do not propagate to any other resources associated with
643      * the cluster.</p>
644      */
TagsHasBeenSet()645     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
646 
647     /**
648      * <p>The metadata that you apply to the cluster to assist with categorization and
649      * organization. Each tag consists of a key and an optional value, both of which
650      * you define. Cluster tags do not propagate to any other resources associated with
651      * the cluster.</p>
652      */
SetTags(const Aws::Map<Aws::String,Aws::String> & value)653     inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tagsHasBeenSet = true; m_tags = value; }
654 
655     /**
656      * <p>The metadata that you apply to the cluster to assist with categorization and
657      * organization. Each tag consists of a key and an optional value, both of which
658      * you define. Cluster tags do not propagate to any other resources associated with
659      * the cluster.</p>
660      */
SetTags(Aws::Map<Aws::String,Aws::String> && value)661     inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
662 
663     /**
664      * <p>The metadata that you apply to the cluster to assist with categorization and
665      * organization. Each tag consists of a key and an optional value, both of which
666      * you define. Cluster tags do not propagate to any other resources associated with
667      * the cluster.</p>
668      */
WithTags(const Aws::Map<Aws::String,Aws::String> & value)669     inline Cluster& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
670 
671     /**
672      * <p>The metadata that you apply to the cluster to assist with categorization and
673      * organization. Each tag consists of a key and an optional value, both of which
674      * you define. Cluster tags do not propagate to any other resources associated with
675      * the cluster.</p>
676      */
WithTags(Aws::Map<Aws::String,Aws::String> && value)677     inline Cluster& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
678 
679     /**
680      * <p>The metadata that you apply to the cluster to assist with categorization and
681      * organization. Each tag consists of a key and an optional value, both of which
682      * you define. Cluster tags do not propagate to any other resources associated with
683      * the cluster.</p>
684      */
AddTags(const Aws::String & key,const Aws::String & value)685     inline Cluster& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
686 
687     /**
688      * <p>The metadata that you apply to the cluster to assist with categorization and
689      * organization. Each tag consists of a key and an optional value, both of which
690      * you define. Cluster tags do not propagate to any other resources associated with
691      * the cluster.</p>
692      */
AddTags(Aws::String && key,const Aws::String & value)693     inline Cluster& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
694 
695     /**
696      * <p>The metadata that you apply to the cluster to assist with categorization and
697      * organization. Each tag consists of a key and an optional value, both of which
698      * you define. Cluster tags do not propagate to any other resources associated with
699      * the cluster.</p>
700      */
AddTags(const Aws::String & key,Aws::String && value)701     inline Cluster& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
702 
703     /**
704      * <p>The metadata that you apply to the cluster to assist with categorization and
705      * organization. Each tag consists of a key and an optional value, both of which
706      * you define. Cluster tags do not propagate to any other resources associated with
707      * the cluster.</p>
708      */
AddTags(Aws::String && key,Aws::String && value)709     inline Cluster& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; }
710 
711     /**
712      * <p>The metadata that you apply to the cluster to assist with categorization and
713      * organization. Each tag consists of a key and an optional value, both of which
714      * you define. Cluster tags do not propagate to any other resources associated with
715      * the cluster.</p>
716      */
AddTags(const char * key,Aws::String && value)717     inline Cluster& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
718 
719     /**
720      * <p>The metadata that you apply to the cluster to assist with categorization and
721      * organization. Each tag consists of a key and an optional value, both of which
722      * you define. Cluster tags do not propagate to any other resources associated with
723      * the cluster.</p>
724      */
AddTags(Aws::String && key,const char * value)725     inline Cluster& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
726 
727     /**
728      * <p>The metadata that you apply to the cluster to assist with categorization and
729      * organization. Each tag consists of a key and an optional value, both of which
730      * you define. Cluster tags do not propagate to any other resources associated with
731      * the cluster.</p>
732      */
AddTags(const char * key,const char * value)733     inline Cluster& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
734 
735 
736     /**
737      * <p>The encryption configuration for the cluster.</p>
738      */
GetEncryptionConfig()739     inline const Aws::Vector<EncryptionConfig>& GetEncryptionConfig() const{ return m_encryptionConfig; }
740 
741     /**
742      * <p>The encryption configuration for the cluster.</p>
743      */
EncryptionConfigHasBeenSet()744     inline bool EncryptionConfigHasBeenSet() const { return m_encryptionConfigHasBeenSet; }
745 
746     /**
747      * <p>The encryption configuration for the cluster.</p>
748      */
SetEncryptionConfig(const Aws::Vector<EncryptionConfig> & value)749     inline void SetEncryptionConfig(const Aws::Vector<EncryptionConfig>& value) { m_encryptionConfigHasBeenSet = true; m_encryptionConfig = value; }
750 
751     /**
752      * <p>The encryption configuration for the cluster.</p>
753      */
SetEncryptionConfig(Aws::Vector<EncryptionConfig> && value)754     inline void SetEncryptionConfig(Aws::Vector<EncryptionConfig>&& value) { m_encryptionConfigHasBeenSet = true; m_encryptionConfig = std::move(value); }
755 
756     /**
757      * <p>The encryption configuration for the cluster.</p>
758      */
WithEncryptionConfig(const Aws::Vector<EncryptionConfig> & value)759     inline Cluster& WithEncryptionConfig(const Aws::Vector<EncryptionConfig>& value) { SetEncryptionConfig(value); return *this;}
760 
761     /**
762      * <p>The encryption configuration for the cluster.</p>
763      */
WithEncryptionConfig(Aws::Vector<EncryptionConfig> && value)764     inline Cluster& WithEncryptionConfig(Aws::Vector<EncryptionConfig>&& value) { SetEncryptionConfig(std::move(value)); return *this;}
765 
766     /**
767      * <p>The encryption configuration for the cluster.</p>
768      */
AddEncryptionConfig(const EncryptionConfig & value)769     inline Cluster& AddEncryptionConfig(const EncryptionConfig& value) { m_encryptionConfigHasBeenSet = true; m_encryptionConfig.push_back(value); return *this; }
770 
771     /**
772      * <p>The encryption configuration for the cluster.</p>
773      */
AddEncryptionConfig(EncryptionConfig && value)774     inline Cluster& AddEncryptionConfig(EncryptionConfig&& value) { m_encryptionConfigHasBeenSet = true; m_encryptionConfig.push_back(std::move(value)); return *this; }
775 
776 
777     /**
778      * <p>The configuration used to connect to a cluster for registration.</p>
779      */
GetConnectorConfig()780     inline const ConnectorConfigResponse& GetConnectorConfig() const{ return m_connectorConfig; }
781 
782     /**
783      * <p>The configuration used to connect to a cluster for registration.</p>
784      */
ConnectorConfigHasBeenSet()785     inline bool ConnectorConfigHasBeenSet() const { return m_connectorConfigHasBeenSet; }
786 
787     /**
788      * <p>The configuration used to connect to a cluster for registration.</p>
789      */
SetConnectorConfig(const ConnectorConfigResponse & value)790     inline void SetConnectorConfig(const ConnectorConfigResponse& value) { m_connectorConfigHasBeenSet = true; m_connectorConfig = value; }
791 
792     /**
793      * <p>The configuration used to connect to a cluster for registration.</p>
794      */
SetConnectorConfig(ConnectorConfigResponse && value)795     inline void SetConnectorConfig(ConnectorConfigResponse&& value) { m_connectorConfigHasBeenSet = true; m_connectorConfig = std::move(value); }
796 
797     /**
798      * <p>The configuration used to connect to a cluster for registration.</p>
799      */
WithConnectorConfig(const ConnectorConfigResponse & value)800     inline Cluster& WithConnectorConfig(const ConnectorConfigResponse& value) { SetConnectorConfig(value); return *this;}
801 
802     /**
803      * <p>The configuration used to connect to a cluster for registration.</p>
804      */
WithConnectorConfig(ConnectorConfigResponse && value)805     inline Cluster& WithConnectorConfig(ConnectorConfigResponse&& value) { SetConnectorConfig(std::move(value)); return *this;}
806 
807   private:
808 
809     Aws::String m_name;
810     bool m_nameHasBeenSet;
811 
812     Aws::String m_arn;
813     bool m_arnHasBeenSet;
814 
815     Aws::Utils::DateTime m_createdAt;
816     bool m_createdAtHasBeenSet;
817 
818     Aws::String m_version;
819     bool m_versionHasBeenSet;
820 
821     Aws::String m_endpoint;
822     bool m_endpointHasBeenSet;
823 
824     Aws::String m_roleArn;
825     bool m_roleArnHasBeenSet;
826 
827     VpcConfigResponse m_resourcesVpcConfig;
828     bool m_resourcesVpcConfigHasBeenSet;
829 
830     KubernetesNetworkConfigResponse m_kubernetesNetworkConfig;
831     bool m_kubernetesNetworkConfigHasBeenSet;
832 
833     Logging m_logging;
834     bool m_loggingHasBeenSet;
835 
836     Identity m_identity;
837     bool m_identityHasBeenSet;
838 
839     ClusterStatus m_status;
840     bool m_statusHasBeenSet;
841 
842     Certificate m_certificateAuthority;
843     bool m_certificateAuthorityHasBeenSet;
844 
845     Aws::String m_clientRequestToken;
846     bool m_clientRequestTokenHasBeenSet;
847 
848     Aws::String m_platformVersion;
849     bool m_platformVersionHasBeenSet;
850 
851     Aws::Map<Aws::String, Aws::String> m_tags;
852     bool m_tagsHasBeenSet;
853 
854     Aws::Vector<EncryptionConfig> m_encryptionConfig;
855     bool m_encryptionConfigHasBeenSet;
856 
857     ConnectorConfigResponse m_connectorConfig;
858     bool m_connectorConfigHasBeenSet;
859   };
860 
861 } // namespace Model
862 } // namespace EKS
863 } // namespace Aws
864