aws-sdk-eks 1.27.0 → 1.28.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,6 +8,21 @@
8
8
  module Aws::EKS
9
9
  module Types
10
10
 
11
+ # An AutoScaling group that is associated with an Amazon EKS managed
12
+ # node group.
13
+ #
14
+ # @!attribute [rw] name
15
+ # The name of the AutoScaling group associated with an Amazon EKS
16
+ # managed node group.
17
+ # @return [String]
18
+ #
19
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/AutoScalingGroup AWS API Documentation
20
+ #
21
+ class AutoScalingGroup < Struct.new(
22
+ :name)
23
+ include Aws::Structure
24
+ end
25
+
11
26
  # This exception is thrown if the request contains a semantic error. The
12
27
  # precise meaning will depend on the API, and will be documented in the
13
28
  # error message.
@@ -47,6 +62,9 @@ module Aws::EKS
47
62
  # The Amazon EKS cluster associated with the exception.
48
63
  # @return [String]
49
64
  #
65
+ # @!attribute [rw] nodegroup_name
66
+ # @return [String]
67
+ #
50
68
  # @!attribute [rw] message
51
69
  # @return [String]
52
70
  #
@@ -54,6 +72,7 @@ module Aws::EKS
54
72
  #
55
73
  class ClientException < Struct.new(
56
74
  :cluster_name,
75
+ :nodegroup_name,
57
76
  :message)
58
77
  include Aws::Structure
59
78
  end
@@ -134,7 +153,8 @@ module Aws::EKS
134
153
  # @!attribute [rw] tags
135
154
  # The metadata that you apply to the cluster to assist with
136
155
  # categorization and organization. Each tag consists of a key and an
137
- # optional value, both of which you define.
156
+ # optional value, both of which you define. Cluster tags do not
157
+ # propagate to any other resources associated with the cluster.
138
158
  # @return [Hash<String,String>]
139
159
  #
140
160
  # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/Cluster AWS API Documentation
@@ -277,6 +297,166 @@ module Aws::EKS
277
297
  include Aws::Structure
278
298
  end
279
299
 
300
+ # @note When making an API call, you may pass CreateNodegroupRequest
301
+ # data as a hash:
302
+ #
303
+ # {
304
+ # cluster_name: "String", # required
305
+ # nodegroup_name: "String", # required
306
+ # scaling_config: {
307
+ # min_size: 1,
308
+ # max_size: 1,
309
+ # desired_size: 1,
310
+ # },
311
+ # disk_size: 1,
312
+ # subnets: ["String"], # required
313
+ # instance_types: ["String"],
314
+ # ami_type: "AL2_x86_64", # accepts AL2_x86_64, AL2_x86_64_GPU
315
+ # remote_access: {
316
+ # ec2_ssh_key: "String",
317
+ # source_security_groups: ["String"],
318
+ # },
319
+ # node_role: "String", # required
320
+ # labels: {
321
+ # "labelKey" => "labelValue",
322
+ # },
323
+ # tags: {
324
+ # "TagKey" => "TagValue",
325
+ # },
326
+ # client_request_token: "String",
327
+ # version: "String",
328
+ # release_version: "String",
329
+ # }
330
+ #
331
+ # @!attribute [rw] cluster_name
332
+ # The name of the cluster to create the node group in.
333
+ # @return [String]
334
+ #
335
+ # @!attribute [rw] nodegroup_name
336
+ # The unique name to give your node group.
337
+ # @return [String]
338
+ #
339
+ # @!attribute [rw] scaling_config
340
+ # The scaling configuration details for the AutoScaling group that is
341
+ # created for your node group.
342
+ # @return [Types::NodegroupScalingConfig]
343
+ #
344
+ # @!attribute [rw] disk_size
345
+ # The root device disk size (in GiB) for your node group instances.
346
+ # The default disk size is 20 GiB.
347
+ # @return [Integer]
348
+ #
349
+ # @!attribute [rw] subnets
350
+ # The subnets to use for the AutoScaling group that is created for
351
+ # your node group. These subnets must have the tag key
352
+ # `kubernetes.io/cluster/CLUSTER_NAME` with a value of `shared`, where
353
+ # `CLUSTER_NAME` is replaced with the name of your cluster.
354
+ # @return [Array<String>]
355
+ #
356
+ # @!attribute [rw] instance_types
357
+ # The instance type to use for your node group. Currently, you can
358
+ # specify a single instance type for a node group. The default value
359
+ # for this parameter is `t3.medium`. If you choose a GPU instance
360
+ # type, be sure to specify the `AL2_x86_64_GPU` with the `amiType`
361
+ # parameter.
362
+ # @return [Array<String>]
363
+ #
364
+ # @!attribute [rw] ami_type
365
+ # The AMI type for your node group. GPU instance types should use the
366
+ # `AL2_x86_64_GPU` AMI type, which uses the Amazon EKS-optimized Linux
367
+ # AMI with GPU support; non-GPU instances should use the `AL2_x86_64`
368
+ # AMI type, which uses the Amazon EKS-optimized Linux AMI.
369
+ # @return [String]
370
+ #
371
+ # @!attribute [rw] remote_access
372
+ # The remote access (SSH) configuration to use with your node group.
373
+ # @return [Types::RemoteAccessConfig]
374
+ #
375
+ # @!attribute [rw] node_role
376
+ # The IAM role associated with your node group. The Amazon EKS worker
377
+ # node `kubelet` daemon makes calls to AWS APIs on your behalf. Worker
378
+ # nodes receive permissions for these API calls through an IAM
379
+ # instance profile and associated policies. Before you can launch
380
+ # worker nodes and register them into a cluster, you must create an
381
+ # IAM role for those worker nodes to use when they are launched. For
382
+ # more information, see [Amazon EKS Worker Node IAM Role][1] in the
383
+ # <i> <i>Amazon EKS User Guide</i> </i>.
384
+ #
385
+ #
386
+ #
387
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/worker_node_IAM_role.html
388
+ # @return [String]
389
+ #
390
+ # @!attribute [rw] labels
391
+ # The Kubernetes labels to be applied to the nodes in the node group
392
+ # when they are created.
393
+ # @return [Hash<String,String>]
394
+ #
395
+ # @!attribute [rw] tags
396
+ # The metadata to apply to the node group to assist with
397
+ # categorization and organization. Each tag consists of a key and an
398
+ # optional value, both of which you define. Node group tags do not
399
+ # propagate to any other resources associated with the node group,
400
+ # such as the Amazon EC2 instances or subnets.
401
+ # @return [Hash<String,String>]
402
+ #
403
+ # @!attribute [rw] client_request_token
404
+ # Unique, case-sensitive identifier that you provide to ensure the
405
+ # idempotency of the request.
406
+ #
407
+ # **A suitable default value is auto-generated.** You should normally
408
+ # not need to pass this option.
409
+ # @return [String]
410
+ #
411
+ # @!attribute [rw] version
412
+ # The Kubernetes version to use for your managed nodes. By default,
413
+ # the Kubernetes version of the cluster is used, and this is the only
414
+ # accepted specified value.
415
+ # @return [String]
416
+ #
417
+ # @!attribute [rw] release_version
418
+ # The AMI version of the Amazon EKS-optimized AMI to use with your
419
+ # node group. By default, the latest available AMI version for the
420
+ # node group's current Kubernetes version is used. For more
421
+ # information, see [Amazon EKS-Optimized Linux AMI Versions][1] in the
422
+ # *Amazon EKS User Guide*.
423
+ #
424
+ #
425
+ #
426
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html
427
+ # @return [String]
428
+ #
429
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateNodegroupRequest AWS API Documentation
430
+ #
431
+ class CreateNodegroupRequest < Struct.new(
432
+ :cluster_name,
433
+ :nodegroup_name,
434
+ :scaling_config,
435
+ :disk_size,
436
+ :subnets,
437
+ :instance_types,
438
+ :ami_type,
439
+ :remote_access,
440
+ :node_role,
441
+ :labels,
442
+ :tags,
443
+ :client_request_token,
444
+ :version,
445
+ :release_version)
446
+ include Aws::Structure
447
+ end
448
+
449
+ # @!attribute [rw] nodegroup
450
+ # The full description of your new node group.
451
+ # @return [Types::Nodegroup]
452
+ #
453
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateNodegroupResponse AWS API Documentation
454
+ #
455
+ class CreateNodegroupResponse < Struct.new(
456
+ :nodegroup)
457
+ include Aws::Structure
458
+ end
459
+
280
460
  # @note When making an API call, you may pass DeleteClusterRequest
281
461
  # data as a hash:
282
462
  #
@@ -306,6 +486,42 @@ module Aws::EKS
306
486
  include Aws::Structure
307
487
  end
308
488
 
489
+ # @note When making an API call, you may pass DeleteNodegroupRequest
490
+ # data as a hash:
491
+ #
492
+ # {
493
+ # cluster_name: "String", # required
494
+ # nodegroup_name: "String", # required
495
+ # }
496
+ #
497
+ # @!attribute [rw] cluster_name
498
+ # The name of the Amazon EKS cluster that is associated with your node
499
+ # group.
500
+ # @return [String]
501
+ #
502
+ # @!attribute [rw] nodegroup_name
503
+ # The name of the node group to delete.
504
+ # @return [String]
505
+ #
506
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteNodegroupRequest AWS API Documentation
507
+ #
508
+ class DeleteNodegroupRequest < Struct.new(
509
+ :cluster_name,
510
+ :nodegroup_name)
511
+ include Aws::Structure
512
+ end
513
+
514
+ # @!attribute [rw] nodegroup
515
+ # The full description of your deleted node group.
516
+ # @return [Types::Nodegroup]
517
+ #
518
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteNodegroupResponse AWS API Documentation
519
+ #
520
+ class DeleteNodegroupResponse < Struct.new(
521
+ :nodegroup)
522
+ include Aws::Structure
523
+ end
524
+
309
525
  # @note When making an API call, you may pass DescribeClusterRequest
310
526
  # data as a hash:
311
527
  #
@@ -335,27 +551,68 @@ module Aws::EKS
335
551
  include Aws::Structure
336
552
  end
337
553
 
554
+ # @note When making an API call, you may pass DescribeNodegroupRequest
555
+ # data as a hash:
556
+ #
557
+ # {
558
+ # cluster_name: "String", # required
559
+ # nodegroup_name: "String", # required
560
+ # }
561
+ #
562
+ # @!attribute [rw] cluster_name
563
+ # The name of the Amazon EKS cluster associated with the node group.
564
+ # @return [String]
565
+ #
566
+ # @!attribute [rw] nodegroup_name
567
+ # The name of the node group to describe.
568
+ # @return [String]
569
+ #
570
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeNodegroupRequest AWS API Documentation
571
+ #
572
+ class DescribeNodegroupRequest < Struct.new(
573
+ :cluster_name,
574
+ :nodegroup_name)
575
+ include Aws::Structure
576
+ end
577
+
578
+ # @!attribute [rw] nodegroup
579
+ # The full description of your node group.
580
+ # @return [Types::Nodegroup]
581
+ #
582
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeNodegroupResponse AWS API Documentation
583
+ #
584
+ class DescribeNodegroupResponse < Struct.new(
585
+ :nodegroup)
586
+ include Aws::Structure
587
+ end
588
+
338
589
  # @note When making an API call, you may pass DescribeUpdateRequest
339
590
  # data as a hash:
340
591
  #
341
592
  # {
342
593
  # name: "String", # required
343
594
  # update_id: "String", # required
595
+ # nodegroup_name: "String",
344
596
  # }
345
597
  #
346
598
  # @!attribute [rw] name
347
- # The name of the Amazon EKS cluster to update.
599
+ # The name of the Amazon EKS cluster associated with the update.
348
600
  # @return [String]
349
601
  #
350
602
  # @!attribute [rw] update_id
351
603
  # The ID of the update to describe.
352
604
  # @return [String]
353
605
  #
606
+ # @!attribute [rw] nodegroup_name
607
+ # The name of the Amazon EKS node group associated with the update.
608
+ # @return [String]
609
+ #
354
610
  # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeUpdateRequest AWS API Documentation
355
611
  #
356
612
  class DescribeUpdateRequest < Struct.new(
357
613
  :name,
358
- :update_id)
614
+ :update_id,
615
+ :nodegroup_name)
359
616
  include Aws::Structure
360
617
  end
361
618
 
@@ -442,6 +699,9 @@ module Aws::EKS
442
699
  # The Amazon EKS cluster associated with the exception.
443
700
  # @return [String]
444
701
  #
702
+ # @!attribute [rw] nodegroup_name
703
+ # @return [String]
704
+ #
445
705
  # @!attribute [rw] message
446
706
  # @return [String]
447
707
  #
@@ -449,6 +709,7 @@ module Aws::EKS
449
709
  #
450
710
  class InvalidParameterException < Struct.new(
451
711
  :cluster_name,
712
+ :nodegroup_name,
452
713
  :message)
453
714
  include Aws::Structure
454
715
  end
@@ -460,6 +721,9 @@ module Aws::EKS
460
721
  # The Amazon EKS cluster associated with the exception.
461
722
  # @return [String]
462
723
  #
724
+ # @!attribute [rw] nodegroup_name
725
+ # @return [String]
726
+ #
463
727
  # @!attribute [rw] message
464
728
  # @return [String]
465
729
  #
@@ -467,10 +731,79 @@ module Aws::EKS
467
731
  #
468
732
  class InvalidRequestException < Struct.new(
469
733
  :cluster_name,
734
+ :nodegroup_name,
470
735
  :message)
471
736
  include Aws::Structure
472
737
  end
473
738
 
739
+ # An object representing an issue with an Amazon EKS resource.
740
+ #
741
+ # @!attribute [rw] code
742
+ # A brief description of the error.
743
+ #
744
+ # * **AutoScalingGroupNotFound**\: We couldn't find the Auto Scaling
745
+ # group associated with the managed node group. You may be able to
746
+ # recreate an Auto Scaling group with the same settings to recover.
747
+ #
748
+ # * **Ec2SecurityGroupNotFound**\: We couldn't find the cluster
749
+ # security group for the cluster. You must recreate your cluster.
750
+ #
751
+ # * **Ec2SecurityGroupDeletionFailure**\: We could not delete the
752
+ # remote access security group for your managed node group. Remove
753
+ # any dependencies from the security group.
754
+ #
755
+ # * **Ec2LaunchTemplateNotFound**\: We couldn't find the Amazon EC2
756
+ # launch template for your managed node group. You may be able to
757
+ # recreate a launch template with the same settings to recover.
758
+ #
759
+ # * **Ec2LaunchTemplateVersionMismatch**\: The Amazon EC2 launch
760
+ # template version for your managed node group does not match the
761
+ # version that Amazon EKS created. You may be able to revert to the
762
+ # Amazon EKS-created version to recover.
763
+ #
764
+ # * **IamInstanceProfileNotFound**\: We couldn't find the IAM
765
+ # instance profile for your managed node group. You may be able to
766
+ # recreate an instance profile with the same settings to recover.
767
+ #
768
+ # * **IamNodeRoleNotFound**\: We couldn't find the IAM role for your
769
+ # managed node group. You may be able to recreate an IAM role with
770
+ # the same settings to recover.
771
+ #
772
+ # * **AsgInstanceLaunchFailures**\: Your Auto Scaling group is
773
+ # experiencing failures while attempting to launch instances.
774
+ #
775
+ # * **InstanceLimitExceeded**\: Your AWS account is unable to launch
776
+ # any more instances of the specified instance type. You may be able
777
+ # to request an Amazon EC2 instance limit increase to recover.
778
+ #
779
+ # * **InsufficientFreeAddresses**\: One or more of the subnets
780
+ # associated with your managed node group does not have enough
781
+ # available IP addresses for new nodes.
782
+ #
783
+ # * **AccessDenied**\: Amazon EKS and or one or more of your managed
784
+ # nodes is unable to communicate with your cluster API server.
785
+ #
786
+ # * **InternalFailure**\: These errors are usually caused by an Amazon
787
+ # EKS server-side issue.
788
+ # @return [String]
789
+ #
790
+ # @!attribute [rw] message
791
+ # The error message associated with the issue.
792
+ # @return [String]
793
+ #
794
+ # @!attribute [rw] resource_ids
795
+ # The AWS resources that are afflicted by this issue.
796
+ # @return [Array<String>]
797
+ #
798
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/Issue AWS API Documentation
799
+ #
800
+ class Issue < Struct.new(
801
+ :code,
802
+ :message,
803
+ :resource_ids)
804
+ include Aws::Structure
805
+ end
806
+
474
807
  # @note When making an API call, you may pass ListClustersRequest
475
808
  # data as a hash:
476
809
  #
@@ -531,6 +864,69 @@ module Aws::EKS
531
864
  include Aws::Structure
532
865
  end
533
866
 
867
+ # @note When making an API call, you may pass ListNodegroupsRequest
868
+ # data as a hash:
869
+ #
870
+ # {
871
+ # cluster_name: "String", # required
872
+ # max_results: 1,
873
+ # next_token: "String",
874
+ # }
875
+ #
876
+ # @!attribute [rw] cluster_name
877
+ # The name of the Amazon EKS cluster that you would like to list node
878
+ # groups in.
879
+ # @return [String]
880
+ #
881
+ # @!attribute [rw] max_results
882
+ # The maximum number of node group results returned by
883
+ # `ListNodegroups` in paginated output. When you use this parameter,
884
+ # `ListNodegroups` returns only `maxResults` results in a single page
885
+ # along with a `nextToken` response element. You can see the remaining
886
+ # results of the initial request by sending another `ListNodegroups`
887
+ # request with the returned `nextToken` value. This value can be
888
+ # between 1 and 100. If you don't use this parameter,
889
+ # `ListNodegroups` returns up to 100 results and a `nextToken` value
890
+ # if applicable.
891
+ # @return [Integer]
892
+ #
893
+ # @!attribute [rw] next_token
894
+ # The `nextToken` value returned from a previous paginated
895
+ # `ListNodegroups` request where `maxResults` was used and the results
896
+ # exceeded the value of that parameter. Pagination continues from the
897
+ # end of the previous results that returned the `nextToken` value.
898
+ # @return [String]
899
+ #
900
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListNodegroupsRequest AWS API Documentation
901
+ #
902
+ class ListNodegroupsRequest < Struct.new(
903
+ :cluster_name,
904
+ :max_results,
905
+ :next_token)
906
+ include Aws::Structure
907
+ end
908
+
909
+ # @!attribute [rw] nodegroups
910
+ # A list of all of the node groups associated with the specified
911
+ # cluster.
912
+ # @return [Array<String>]
913
+ #
914
+ # @!attribute [rw] next_token
915
+ # The `nextToken` value to include in a future `ListNodegroups`
916
+ # request. When the results of a `ListNodegroups` request exceed
917
+ # `maxResults`, you can use this value to retrieve the next page of
918
+ # results. This value is `null` when there are no more results to
919
+ # return.
920
+ # @return [String]
921
+ #
922
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListNodegroupsResponse AWS API Documentation
923
+ #
924
+ class ListNodegroupsResponse < Struct.new(
925
+ :nodegroups,
926
+ :next_token)
927
+ include Aws::Structure
928
+ end
929
+
534
930
  # @note When making an API call, you may pass ListTagsForResourceRequest
535
931
  # data as a hash:
536
932
  #
@@ -541,7 +937,7 @@ module Aws::EKS
541
937
  # @!attribute [rw] resource_arn
542
938
  # The Amazon Resource Name (ARN) that identifies the resource for
543
939
  # which to list the tags. Currently, the supported resources are
544
- # Amazon EKS clusters.
940
+ # Amazon EKS clusters and managed node groups.
545
941
  # @return [String]
546
942
  #
547
943
  # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListTagsForResourceRequest AWS API Documentation
@@ -567,6 +963,7 @@ module Aws::EKS
567
963
  #
568
964
  # {
569
965
  # name: "String", # required
966
+ # nodegroup_name: "String",
570
967
  # next_token: "String",
571
968
  # max_results: 1,
572
969
  # }
@@ -575,6 +972,10 @@ module Aws::EKS
575
972
  # The name of the Amazon EKS cluster to list updates for.
576
973
  # @return [String]
577
974
  #
975
+ # @!attribute [rw] nodegroup_name
976
+ # The name of the Amazon EKS managed node group to list updates for.
977
+ # @return [String]
978
+ #
578
979
  # @!attribute [rw] next_token
579
980
  # The `nextToken` value returned from a previous paginated
580
981
  # `ListUpdates` request where `maxResults` was used and the results
@@ -597,6 +998,7 @@ module Aws::EKS
597
998
  #
598
999
  class ListUpdatesRequest < Struct.new(
599
1000
  :name,
1001
+ :nodegroup_name,
600
1002
  :next_token,
601
1003
  :max_results)
602
1004
  include Aws::Structure
@@ -677,6 +1079,221 @@ module Aws::EKS
677
1079
  include Aws::Structure
678
1080
  end
679
1081
 
1082
+ # An object representing an Amazon EKS managed node group.
1083
+ #
1084
+ # @!attribute [rw] nodegroup_name
1085
+ # The name associated with an Amazon EKS managed node group.
1086
+ # @return [String]
1087
+ #
1088
+ # @!attribute [rw] nodegroup_arn
1089
+ # The Amazon Resource Name (ARN) associated with the managed node
1090
+ # group.
1091
+ # @return [String]
1092
+ #
1093
+ # @!attribute [rw] cluster_name
1094
+ # The name of the cluster that the managed node group resides in.
1095
+ # @return [String]
1096
+ #
1097
+ # @!attribute [rw] version
1098
+ # The Kubernetes version of the managed node group.
1099
+ # @return [String]
1100
+ #
1101
+ # @!attribute [rw] release_version
1102
+ # The AMI version of the managed node group. For more information, see
1103
+ # [Amazon EKS-Optimized Linux AMI Versions ][1] in the *Amazon EKS
1104
+ # User Guide*.
1105
+ #
1106
+ #
1107
+ #
1108
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html
1109
+ # @return [String]
1110
+ #
1111
+ # @!attribute [rw] created_at
1112
+ # The Unix epoch timestamp in seconds for when the managed node group
1113
+ # was created.
1114
+ # @return [Time]
1115
+ #
1116
+ # @!attribute [rw] modified_at
1117
+ # The Unix epoch timestamp in seconds for when the managed node group
1118
+ # was last modified.
1119
+ # @return [Time]
1120
+ #
1121
+ # @!attribute [rw] status
1122
+ # The current status of the managed node group.
1123
+ # @return [String]
1124
+ #
1125
+ # @!attribute [rw] scaling_config
1126
+ # The scaling configuration details for the AutoScaling group that is
1127
+ # associated with your node group.
1128
+ # @return [Types::NodegroupScalingConfig]
1129
+ #
1130
+ # @!attribute [rw] instance_types
1131
+ # The instance types associated with your node group.
1132
+ # @return [Array<String>]
1133
+ #
1134
+ # @!attribute [rw] subnets
1135
+ # The subnets allowed for the AutoScaling group that is associated
1136
+ # with your node group. These subnets must have the following tag:
1137
+ # `kubernetes.io/cluster/CLUSTER_NAME`, where `CLUSTER_NAME` is
1138
+ # replaced with the name of your cluster.
1139
+ # @return [Array<String>]
1140
+ #
1141
+ # @!attribute [rw] remote_access
1142
+ # The remote access (SSH) configuration that is associated with the
1143
+ # node group.
1144
+ # @return [Types::RemoteAccessConfig]
1145
+ #
1146
+ # @!attribute [rw] ami_type
1147
+ # The AMI type associated with your node group. GPU instance types
1148
+ # should use the `AL2_x86_64_GPU` AMI type, which uses the Amazon
1149
+ # EKS-optimized Linux AMI with GPU support; non-GPU instances should
1150
+ # use the `AL2_x86_64` AMI type, which uses the Amazon EKS-optimized
1151
+ # Linux AMI.
1152
+ # @return [String]
1153
+ #
1154
+ # @!attribute [rw] node_role
1155
+ # The IAM role associated with your node group. The Amazon EKS worker
1156
+ # node `kubelet` daemon makes calls to AWS APIs on your behalf. Worker
1157
+ # nodes receive permissions for these API calls through an IAM
1158
+ # instance profile and associated policies. Before you can launch
1159
+ # worker nodes and register them into a cluster, you must create an
1160
+ # IAM role for those worker nodes to use when they are launched. For
1161
+ # more information, see [Amazon EKS Worker Node IAM Role][1] in the
1162
+ # <i> <i>Amazon EKS User Guide</i> </i>.
1163
+ #
1164
+ #
1165
+ #
1166
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/worker_node_IAM_role.html
1167
+ # @return [String]
1168
+ #
1169
+ # @!attribute [rw] labels
1170
+ # The Kubernetes labels applied to the nodes in the node group.
1171
+ #
1172
+ # <note markdown="1"> Only labels that are applied with the Amazon EKS API are shown here.
1173
+ # There may be other Kubernetes labels applied to the nodes in this
1174
+ # group.
1175
+ #
1176
+ # </note>
1177
+ # @return [Hash<String,String>]
1178
+ #
1179
+ # @!attribute [rw] resources
1180
+ # The resources associated with the nodegroup, such as AutoScaling
1181
+ # groups and security groups for remote access.
1182
+ # @return [Types::NodegroupResources]
1183
+ #
1184
+ # @!attribute [rw] disk_size
1185
+ # The root device disk size (in GiB) for your node group instances.
1186
+ # The default disk size is 20 GiB.
1187
+ # @return [Integer]
1188
+ #
1189
+ # @!attribute [rw] health
1190
+ # The health status of the node group. If there are issues with your
1191
+ # node group's health, they are listed here.
1192
+ # @return [Types::NodegroupHealth]
1193
+ #
1194
+ # @!attribute [rw] tags
1195
+ # The metadata applied the node group to assist with categorization
1196
+ # and organization. Each tag consists of a key and an optional value,
1197
+ # both of which you define. Node group tags do not propagate to any
1198
+ # other resources associated with the node group, such as the Amazon
1199
+ # EC2 instances or subnets.
1200
+ # @return [Hash<String,String>]
1201
+ #
1202
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/Nodegroup AWS API Documentation
1203
+ #
1204
+ class Nodegroup < Struct.new(
1205
+ :nodegroup_name,
1206
+ :nodegroup_arn,
1207
+ :cluster_name,
1208
+ :version,
1209
+ :release_version,
1210
+ :created_at,
1211
+ :modified_at,
1212
+ :status,
1213
+ :scaling_config,
1214
+ :instance_types,
1215
+ :subnets,
1216
+ :remote_access,
1217
+ :ami_type,
1218
+ :node_role,
1219
+ :labels,
1220
+ :resources,
1221
+ :disk_size,
1222
+ :health,
1223
+ :tags)
1224
+ include Aws::Structure
1225
+ end
1226
+
1227
+ # An object representing the health status of the node group.
1228
+ #
1229
+ # @!attribute [rw] issues
1230
+ # Any issues that are associated with the node group.
1231
+ # @return [Array<Types::Issue>]
1232
+ #
1233
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/NodegroupHealth AWS API Documentation
1234
+ #
1235
+ class NodegroupHealth < Struct.new(
1236
+ :issues)
1237
+ include Aws::Structure
1238
+ end
1239
+
1240
+ # An object representing the resources associated with the nodegroup,
1241
+ # such as AutoScaling groups and security groups for remote access.
1242
+ #
1243
+ # @!attribute [rw] auto_scaling_groups
1244
+ # The autoscaling groups associated with the node group.
1245
+ # @return [Array<Types::AutoScalingGroup>]
1246
+ #
1247
+ # @!attribute [rw] remote_access_security_group
1248
+ # The remote access security group associated with the node group.
1249
+ # This security group controls SSH access to the worker nodes.
1250
+ # @return [String]
1251
+ #
1252
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/NodegroupResources AWS API Documentation
1253
+ #
1254
+ class NodegroupResources < Struct.new(
1255
+ :auto_scaling_groups,
1256
+ :remote_access_security_group)
1257
+ include Aws::Structure
1258
+ end
1259
+
1260
+ # An object representing the scaling configuration details for the
1261
+ # AutoScaling group that is associated with your node group.
1262
+ #
1263
+ # @note When making an API call, you may pass NodegroupScalingConfig
1264
+ # data as a hash:
1265
+ #
1266
+ # {
1267
+ # min_size: 1,
1268
+ # max_size: 1,
1269
+ # desired_size: 1,
1270
+ # }
1271
+ #
1272
+ # @!attribute [rw] min_size
1273
+ # The minimum number of worker nodes that the managed node group can
1274
+ # scale in to. This number must be greater than zero.
1275
+ # @return [Integer]
1276
+ #
1277
+ # @!attribute [rw] max_size
1278
+ # The maximum number of worker nodes that the managed node group can
1279
+ # scale out to. Managed node groups can support up to 100 nodes by
1280
+ # default.
1281
+ # @return [Integer]
1282
+ #
1283
+ # @!attribute [rw] desired_size
1284
+ # The current number of worker nodes that the managed node group
1285
+ # should maintain.
1286
+ # @return [Integer]
1287
+ #
1288
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/NodegroupScalingConfig AWS API Documentation
1289
+ #
1290
+ class NodegroupScalingConfig < Struct.new(
1291
+ :min_size,
1292
+ :max_size,
1293
+ :desired_size)
1294
+ include Aws::Structure
1295
+ end
1296
+
680
1297
  # A service resource associated with the request could not be found.
681
1298
  # Clients should not retry such requests.
682
1299
  #
@@ -708,12 +1325,58 @@ module Aws::EKS
708
1325
  include Aws::Structure
709
1326
  end
710
1327
 
1328
+ # An object representing the remote access configuration for the managed
1329
+ # node group.
1330
+ #
1331
+ # @note When making an API call, you may pass RemoteAccessConfig
1332
+ # data as a hash:
1333
+ #
1334
+ # {
1335
+ # ec2_ssh_key: "String",
1336
+ # source_security_groups: ["String"],
1337
+ # }
1338
+ #
1339
+ # @!attribute [rw] ec2_ssh_key
1340
+ # The Amazon EC2 SSH key that provides access for SSH communication
1341
+ # with the worker nodes in the managed node group. For more
1342
+ # information, see [Amazon EC2 Key Pairs][1] in the *Amazon Elastic
1343
+ # Compute Cloud User Guide for Linux Instances*.
1344
+ #
1345
+ #
1346
+ #
1347
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html
1348
+ # @return [String]
1349
+ #
1350
+ # @!attribute [rw] source_security_groups
1351
+ # The security groups to allow SSH access (port 22) from on the worker
1352
+ # nodes. If you specify an Amazon EC2 SSH key, but you do not specify
1353
+ # a source security group when you create a managed node group, port
1354
+ # 22 on the worker nodes is opened to the internet (0.0.0.0/0). For
1355
+ # more information, see [Security Groups for Your VPC][1] in the
1356
+ # *Amazon Virtual Private Cloud User Guide*.
1357
+ #
1358
+ #
1359
+ #
1360
+ # [1]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html
1361
+ # @return [Array<String>]
1362
+ #
1363
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/RemoteAccessConfig AWS API Documentation
1364
+ #
1365
+ class RemoteAccessConfig < Struct.new(
1366
+ :ec2_ssh_key,
1367
+ :source_security_groups)
1368
+ include Aws::Structure
1369
+ end
1370
+
711
1371
  # The specified resource is in use.
712
1372
  #
713
1373
  # @!attribute [rw] cluster_name
714
1374
  # The Amazon EKS cluster associated with the exception.
715
1375
  # @return [String]
716
1376
  #
1377
+ # @!attribute [rw] nodegroup_name
1378
+ # @return [String]
1379
+ #
717
1380
  # @!attribute [rw] message
718
1381
  # @return [String]
719
1382
  #
@@ -721,6 +1384,7 @@ module Aws::EKS
721
1384
  #
722
1385
  class ResourceInUseException < Struct.new(
723
1386
  :cluster_name,
1387
+ :nodegroup_name,
724
1388
  :message)
725
1389
  include Aws::Structure
726
1390
  end
@@ -731,6 +1395,9 @@ module Aws::EKS
731
1395
  # The Amazon EKS cluster associated with the exception.
732
1396
  # @return [String]
733
1397
  #
1398
+ # @!attribute [rw] nodegroup_name
1399
+ # @return [String]
1400
+ #
734
1401
  # @!attribute [rw] message
735
1402
  # @return [String]
736
1403
  #
@@ -738,17 +1405,23 @@ module Aws::EKS
738
1405
  #
739
1406
  class ResourceLimitExceededException < Struct.new(
740
1407
  :cluster_name,
1408
+ :nodegroup_name,
741
1409
  :message)
742
1410
  include Aws::Structure
743
1411
  end
744
1412
 
745
1413
  # The specified resource could not be found. You can view your available
746
- # clusters with ListClusters. Amazon EKS clusters are Region-specific.
1414
+ # clusters with ListClusters. You can view your available managed node
1415
+ # groups with ListNodegroups. Amazon EKS clusters and node groups are
1416
+ # Region-specific.
747
1417
  #
748
1418
  # @!attribute [rw] cluster_name
749
1419
  # The Amazon EKS cluster associated with the exception.
750
1420
  # @return [String]
751
1421
  #
1422
+ # @!attribute [rw] nodegroup_name
1423
+ # @return [String]
1424
+ #
752
1425
  # @!attribute [rw] message
753
1426
  # @return [String]
754
1427
  #
@@ -756,6 +1429,7 @@ module Aws::EKS
756
1429
  #
757
1430
  class ResourceNotFoundException < Struct.new(
758
1431
  :cluster_name,
1432
+ :nodegroup_name,
759
1433
  :message)
760
1434
  include Aws::Structure
761
1435
  end
@@ -766,6 +1440,9 @@ module Aws::EKS
766
1440
  # The Amazon EKS cluster associated with the exception.
767
1441
  # @return [String]
768
1442
  #
1443
+ # @!attribute [rw] nodegroup_name
1444
+ # @return [String]
1445
+ #
769
1446
  # @!attribute [rw] message
770
1447
  # @return [String]
771
1448
  #
@@ -773,6 +1450,7 @@ module Aws::EKS
773
1450
  #
774
1451
  class ServerException < Struct.new(
775
1452
  :cluster_name,
1453
+ :nodegroup_name,
776
1454
  :message)
777
1455
  include Aws::Structure
778
1456
  end
@@ -801,7 +1479,8 @@ module Aws::EKS
801
1479
  #
802
1480
  # @!attribute [rw] resource_arn
803
1481
  # The Amazon Resource Name (ARN) of the resource to which to add tags.
804
- # Currently, the supported resources are Amazon EKS clusters.
1482
+ # Currently, the supported resources are Amazon EKS clusters and
1483
+ # managed node groups.
805
1484
  # @return [String]
806
1485
  #
807
1486
  # @!attribute [rw] tags
@@ -833,6 +1512,9 @@ module Aws::EKS
833
1512
  # The Amazon EKS cluster associated with the exception.
834
1513
  # @return [String]
835
1514
  #
1515
+ # @!attribute [rw] nodegroup_name
1516
+ # @return [String]
1517
+ #
836
1518
  # @!attribute [rw] valid_zones
837
1519
  # The supported Availability Zones for your account. Choose subnets in
838
1520
  # these Availability Zones for your cluster.
@@ -843,6 +1525,7 @@ module Aws::EKS
843
1525
  class UnsupportedAvailabilityZoneException < Struct.new(
844
1526
  :message,
845
1527
  :cluster_name,
1528
+ :nodegroup_name,
846
1529
  :valid_zones)
847
1530
  include Aws::Structure
848
1531
  end
@@ -857,7 +1540,8 @@ module Aws::EKS
857
1540
  #
858
1541
  # @!attribute [rw] resource_arn
859
1542
  # The Amazon Resource Name (ARN) of the resource from which to delete
860
- # tags. Currently, the supported resources are Amazon EKS clusters.
1543
+ # tags. Currently, the supported resources are Amazon EKS clusters and
1544
+ # managed node groups.
861
1545
  # @return [String]
862
1546
  #
863
1547
  # @!attribute [rw] tag_keys
@@ -1039,6 +1723,184 @@ module Aws::EKS
1039
1723
  include Aws::Structure
1040
1724
  end
1041
1725
 
1726
+ # An object representing a Kubernetes label change for a managed node
1727
+ # group.
1728
+ #
1729
+ # @note When making an API call, you may pass UpdateLabelsPayload
1730
+ # data as a hash:
1731
+ #
1732
+ # {
1733
+ # add_or_update_labels: {
1734
+ # "labelKey" => "labelValue",
1735
+ # },
1736
+ # remove_labels: ["String"],
1737
+ # }
1738
+ #
1739
+ # @!attribute [rw] add_or_update_labels
1740
+ # Kubernetes labels to be added or updated.
1741
+ # @return [Hash<String,String>]
1742
+ #
1743
+ # @!attribute [rw] remove_labels
1744
+ # Kubernetes labels to be removed.
1745
+ # @return [Array<String>]
1746
+ #
1747
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateLabelsPayload AWS API Documentation
1748
+ #
1749
+ class UpdateLabelsPayload < Struct.new(
1750
+ :add_or_update_labels,
1751
+ :remove_labels)
1752
+ include Aws::Structure
1753
+ end
1754
+
1755
+ # @note When making an API call, you may pass UpdateNodegroupConfigRequest
1756
+ # data as a hash:
1757
+ #
1758
+ # {
1759
+ # cluster_name: "String", # required
1760
+ # nodegroup_name: "String", # required
1761
+ # labels: {
1762
+ # add_or_update_labels: {
1763
+ # "labelKey" => "labelValue",
1764
+ # },
1765
+ # remove_labels: ["String"],
1766
+ # },
1767
+ # scaling_config: {
1768
+ # min_size: 1,
1769
+ # max_size: 1,
1770
+ # desired_size: 1,
1771
+ # },
1772
+ # client_request_token: "String",
1773
+ # }
1774
+ #
1775
+ # @!attribute [rw] cluster_name
1776
+ # The name of the Amazon EKS cluster that the managed node group
1777
+ # resides in.
1778
+ # @return [String]
1779
+ #
1780
+ # @!attribute [rw] nodegroup_name
1781
+ # The name of the managed node group to update.
1782
+ # @return [String]
1783
+ #
1784
+ # @!attribute [rw] labels
1785
+ # The Kubernetes labels to be applied to the nodes in the node group
1786
+ # after the update.
1787
+ # @return [Types::UpdateLabelsPayload]
1788
+ #
1789
+ # @!attribute [rw] scaling_config
1790
+ # The scaling configuration details for the AutoScaling group after
1791
+ # the update.
1792
+ # @return [Types::NodegroupScalingConfig]
1793
+ #
1794
+ # @!attribute [rw] client_request_token
1795
+ # Unique, case-sensitive identifier that you provide to ensure the
1796
+ # idempotency of the request.
1797
+ #
1798
+ # **A suitable default value is auto-generated.** You should normally
1799
+ # not need to pass this option.
1800
+ # @return [String]
1801
+ #
1802
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateNodegroupConfigRequest AWS API Documentation
1803
+ #
1804
+ class UpdateNodegroupConfigRequest < Struct.new(
1805
+ :cluster_name,
1806
+ :nodegroup_name,
1807
+ :labels,
1808
+ :scaling_config,
1809
+ :client_request_token)
1810
+ include Aws::Structure
1811
+ end
1812
+
1813
+ # @!attribute [rw] update
1814
+ # An object representing an asynchronous update.
1815
+ # @return [Types::Update]
1816
+ #
1817
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateNodegroupConfigResponse AWS API Documentation
1818
+ #
1819
+ class UpdateNodegroupConfigResponse < Struct.new(
1820
+ :update)
1821
+ include Aws::Structure
1822
+ end
1823
+
1824
+ # @note When making an API call, you may pass UpdateNodegroupVersionRequest
1825
+ # data as a hash:
1826
+ #
1827
+ # {
1828
+ # cluster_name: "String", # required
1829
+ # nodegroup_name: "String", # required
1830
+ # version: "String",
1831
+ # release_version: "String",
1832
+ # force: false,
1833
+ # client_request_token: "String",
1834
+ # }
1835
+ #
1836
+ # @!attribute [rw] cluster_name
1837
+ # The name of the Amazon EKS cluster that is associated with the
1838
+ # managed node group to update.
1839
+ # @return [String]
1840
+ #
1841
+ # @!attribute [rw] nodegroup_name
1842
+ # The name of the managed node group to update.
1843
+ # @return [String]
1844
+ #
1845
+ # @!attribute [rw] version
1846
+ # The Kubernetes version to update to. If no version is specified,
1847
+ # then the Kubernetes version of the node group does not change. You
1848
+ # can specify the Kubernetes version of the cluster to update the node
1849
+ # group to the latest AMI version of the cluster's Kubernetes
1850
+ # version.
1851
+ # @return [String]
1852
+ #
1853
+ # @!attribute [rw] release_version
1854
+ # The AMI version of the Amazon EKS-optimized AMI to use for the
1855
+ # update. By default, the latest available AMI version for the node
1856
+ # group's Kubernetes version is used. For more information, see
1857
+ # [Amazon EKS-Optimized Linux AMI Versions ][1] in the *Amazon EKS
1858
+ # User Guide*.
1859
+ #
1860
+ #
1861
+ #
1862
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html
1863
+ # @return [String]
1864
+ #
1865
+ # @!attribute [rw] force
1866
+ # Force the update if the existing node group's pods are unable to be
1867
+ # drained due to a pod disruption budget issue. If a previous update
1868
+ # fails because pods could not be drained, you can force the update
1869
+ # after it fails to terminate the old node regardless of whether or
1870
+ # not any pods are running on the node.
1871
+ # @return [Boolean]
1872
+ #
1873
+ # @!attribute [rw] client_request_token
1874
+ # Unique, case-sensitive identifier that you provide to ensure the
1875
+ # idempotency of the request.
1876
+ #
1877
+ # **A suitable default value is auto-generated.** You should normally
1878
+ # not need to pass this option.
1879
+ # @return [String]
1880
+ #
1881
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateNodegroupVersionRequest AWS API Documentation
1882
+ #
1883
+ class UpdateNodegroupVersionRequest < Struct.new(
1884
+ :cluster_name,
1885
+ :nodegroup_name,
1886
+ :version,
1887
+ :release_version,
1888
+ :force,
1889
+ :client_request_token)
1890
+ include Aws::Structure
1891
+ end
1892
+
1893
+ # @!attribute [rw] update
1894
+ # An object representing an asynchronous update.
1895
+ # @return [Types::Update]
1896
+ #
1897
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateNodegroupVersionResponse AWS API Documentation
1898
+ #
1899
+ class UpdateNodegroupVersionResponse < Struct.new(
1900
+ :update)
1901
+ include Aws::Structure
1902
+ end
1903
+
1042
1904
  # An object representing the details of an update request.
1043
1905
  #
1044
1906
  # @!attribute [rw] type
@@ -1136,6 +1998,12 @@ module Aws::EKS
1136
1998
  # worker nodes and the Kubernetes control plane.
1137
1999
  # @return [Array<String>]
1138
2000
  #
2001
+ # @!attribute [rw] cluster_security_group_id
2002
+ # The cluster security group that was created by Amazon EKS for the
2003
+ # cluster. Managed node groups use this security group for control
2004
+ # plane to data plane communication.
2005
+ # @return [String]
2006
+ #
1139
2007
  # @!attribute [rw] vpc_id
1140
2008
  # The VPC associated with your cluster.
1141
2009
  # @return [String]
@@ -1160,6 +2028,7 @@ module Aws::EKS
1160
2028
  class VpcConfigResponse < Struct.new(
1161
2029
  :subnet_ids,
1162
2030
  :security_group_ids,
2031
+ :cluster_security_group_id,
1163
2032
  :vpc_id,
1164
2033
  :endpoint_public_access,
1165
2034
  :endpoint_private_access)