aws-sdk-eks 1.69.0 → 1.91.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -70,8 +70,8 @@ module Aws::EKS
70
70
  # @return [Time]
71
71
  #
72
72
  # @!attribute [rw] service_account_role_arn
73
- # The Amazon Resource Name (ARN) of the IAM role that is bound to the
74
- # Kubernetes service account used by the add-on.
73
+ # The Amazon Resource Name (ARN) of the IAM role that's bound to the
74
+ # Kubernetes service account that the add-on uses.
75
75
  # @return [String]
76
76
  #
77
77
  # @!attribute [rw] tags
@@ -81,6 +81,23 @@ module Aws::EKS
81
81
  # other resources associated with the cluster.
82
82
  # @return [Hash<String,String>]
83
83
  #
84
+ # @!attribute [rw] publisher
85
+ # The publisher of the add-on.
86
+ # @return [String]
87
+ #
88
+ # @!attribute [rw] owner
89
+ # The owner of the add-on.
90
+ # @return [String]
91
+ #
92
+ # @!attribute [rw] marketplace_information
93
+ # Information about an Amazon EKS add-on from the Amazon Web Services
94
+ # Marketplace.
95
+ # @return [Types::MarketplaceInformation]
96
+ #
97
+ # @!attribute [rw] configuration_values
98
+ # The configuration values that you provided.
99
+ # @return [String]
100
+ #
84
101
  # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/Addon AWS API Documentation
85
102
  #
86
103
  class Addon < Struct.new(
@@ -93,7 +110,11 @@ module Aws::EKS
93
110
  :created_at,
94
111
  :modified_at,
95
112
  :service_account_role_arn,
96
- :tags)
113
+ :tags,
114
+ :publisher,
115
+ :owner,
116
+ :marketplace_information,
117
+ :configuration_values)
97
118
  SENSITIVE = []
98
119
  include Aws::Structure
99
120
  end
@@ -101,7 +122,7 @@ module Aws::EKS
101
122
  # The health of the add-on.
102
123
  #
103
124
  # @!attribute [rw] issues
104
- # An object that represents the add-on's health issues.
125
+ # An object representing the health issues for an add-on.
105
126
  # @return [Array<Types::AddonIssue>]
106
127
  #
107
128
  # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/AddonHealth AWS API Documentation
@@ -123,16 +144,32 @@ module Aws::EKS
123
144
  # @return [String]
124
145
  #
125
146
  # @!attribute [rw] addon_versions
126
- # An object that represents information about available add-on
127
- # versions and compatible Kubernetes versions.
147
+ # An object representing information about available add-on versions
148
+ # and compatible Kubernetes versions.
128
149
  # @return [Array<Types::AddonVersionInfo>]
129
150
  #
151
+ # @!attribute [rw] publisher
152
+ # The publisher of the add-on.
153
+ # @return [String]
154
+ #
155
+ # @!attribute [rw] owner
156
+ # The owner of the add-on.
157
+ # @return [String]
158
+ #
159
+ # @!attribute [rw] marketplace_information
160
+ # Information about the add-on from the Amazon Web Services
161
+ # Marketplace.
162
+ # @return [Types::MarketplaceInformation]
163
+ #
130
164
  # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/AddonInfo AWS API Documentation
131
165
  #
132
166
  class AddonInfo < Struct.new(
133
167
  :addon_name,
134
168
  :type,
135
- :addon_versions)
169
+ :addon_versions,
170
+ :publisher,
171
+ :owner,
172
+ :marketplace_information)
136
173
  SENSITIVE = []
137
174
  include Aws::Structure
138
175
  end
@@ -173,35 +210,24 @@ module Aws::EKS
173
210
  # @return [Array<String>]
174
211
  #
175
212
  # @!attribute [rw] compatibilities
176
- # An object that represents the compatibilities of a version.
213
+ # An object representing the compatibilities of a version.
177
214
  # @return [Array<Types::Compatibility>]
178
215
  #
216
+ # @!attribute [rw] requires_configuration
217
+ # Whether the add-on requires configuration.
218
+ # @return [Boolean]
219
+ #
179
220
  # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/AddonVersionInfo AWS API Documentation
180
221
  #
181
222
  class AddonVersionInfo < Struct.new(
182
223
  :addon_version,
183
224
  :architecture,
184
- :compatibilities)
225
+ :compatibilities,
226
+ :requires_configuration)
185
227
  SENSITIVE = []
186
228
  include Aws::Structure
187
229
  end
188
230
 
189
- # @note When making an API call, you may pass AssociateEncryptionConfigRequest
190
- # data as a hash:
191
- #
192
- # {
193
- # cluster_name: "String", # required
194
- # encryption_config: [ # required
195
- # {
196
- # resources: ["String"],
197
- # provider: {
198
- # key_arn: "String",
199
- # },
200
- # },
201
- # ],
202
- # client_request_token: "String",
203
- # }
204
- #
205
231
  # @!attribute [rw] cluster_name
206
232
  # The name of the cluster that you are associating with encryption
207
233
  # configuration.
@@ -241,35 +267,12 @@ module Aws::EKS
241
267
  include Aws::Structure
242
268
  end
243
269
 
244
- # @note When making an API call, you may pass AssociateIdentityProviderConfigRequest
245
- # data as a hash:
246
- #
247
- # {
248
- # cluster_name: "String", # required
249
- # oidc: { # required
250
- # identity_provider_config_name: "String", # required
251
- # issuer_url: "String", # required
252
- # client_id: "String", # required
253
- # username_claim: "String",
254
- # username_prefix: "String",
255
- # groups_claim: "String",
256
- # groups_prefix: "String",
257
- # required_claims: {
258
- # "requiredClaimsKey" => "requiredClaimsValue",
259
- # },
260
- # },
261
- # tags: {
262
- # "TagKey" => "TagValue",
263
- # },
264
- # client_request_token: "String",
265
- # }
266
- #
267
270
  # @!attribute [rw] cluster_name
268
271
  # The name of the cluster to associate the configuration to.
269
272
  # @return [String]
270
273
  #
271
274
  # @!attribute [rw] oidc
272
- # An object that represents an OpenID Connect (OIDC) identity provider
275
+ # An object representing an OpenID Connect (OIDC) identity provider
273
276
  # configuration.
274
277
  # @return [Types::OidcIdentityProviderConfigRequest]
275
278
  #
@@ -485,6 +488,24 @@ module Aws::EKS
485
488
  # The configuration used to connect to a cluster for registration.
486
489
  # @return [Types::ConnectorConfigResponse]
487
490
  #
491
+ # @!attribute [rw] id
492
+ # The ID of your local Amazon EKS cluster on an Amazon Web Services
493
+ # Outpost. This property isn't available for an Amazon EKS cluster on
494
+ # the Amazon Web Services cloud.
495
+ # @return [String]
496
+ #
497
+ # @!attribute [rw] health
498
+ # An object representing the health of your local Amazon EKS cluster
499
+ # on an Amazon Web Services Outpost. This object isn't available for
500
+ # clusters on the Amazon Web Services cloud.
501
+ # @return [Types::ClusterHealth]
502
+ #
503
+ # @!attribute [rw] outpost_config
504
+ # An object representing the configuration of your local Amazon EKS
505
+ # cluster on an Amazon Web Services Outpost. This object isn't
506
+ # available for clusters on the Amazon Web Services cloud.
507
+ # @return [Types::OutpostConfigResponse]
508
+ #
488
509
  # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/Cluster AWS API Documentation
489
510
  #
490
511
  class Cluster < Struct.new(
@@ -504,7 +525,53 @@ module Aws::EKS
504
525
  :platform_version,
505
526
  :tags,
506
527
  :encryption_config,
507
- :connector_config)
528
+ :connector_config,
529
+ :id,
530
+ :health,
531
+ :outpost_config)
532
+ SENSITIVE = []
533
+ include Aws::Structure
534
+ end
535
+
536
+ # An object representing the health of your local Amazon EKS cluster on
537
+ # an Amazon Web Services Outpost. You can't use this API with an Amazon
538
+ # EKS cluster on the Amazon Web Services cloud.
539
+ #
540
+ # @!attribute [rw] issues
541
+ # An object representing the health issues of your local Amazon EKS
542
+ # cluster on an Amazon Web Services Outpost.
543
+ # @return [Array<Types::ClusterIssue>]
544
+ #
545
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ClusterHealth AWS API Documentation
546
+ #
547
+ class ClusterHealth < Struct.new(
548
+ :issues)
549
+ SENSITIVE = []
550
+ include Aws::Structure
551
+ end
552
+
553
+ # An issue with your local Amazon EKS cluster on an Amazon Web Services
554
+ # Outpost. You can't use this API with an Amazon EKS cluster on the
555
+ # Amazon Web Services cloud.
556
+ #
557
+ # @!attribute [rw] code
558
+ # The error code of the issue.
559
+ # @return [String]
560
+ #
561
+ # @!attribute [rw] message
562
+ # A description of the issue.
563
+ # @return [String]
564
+ #
565
+ # @!attribute [rw] resource_ids
566
+ # The resource IDs that the issue relates to.
567
+ # @return [Array<String>]
568
+ #
569
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ClusterIssue AWS API Documentation
570
+ #
571
+ class ClusterIssue < Struct.new(
572
+ :code,
573
+ :message,
574
+ :resource_ids)
508
575
  SENSITIVE = []
509
576
  include Aws::Structure
510
577
  end
@@ -535,14 +602,6 @@ module Aws::EKS
535
602
 
536
603
  # The configuration sent to a cluster for configuration.
537
604
  #
538
- # @note When making an API call, you may pass ConnectorConfigRequest
539
- # data as a hash:
540
- #
541
- # {
542
- # role_arn: "String", # required
543
- # provider: "EKS_ANYWHERE", # required, accepts EKS_ANYWHERE, ANTHOS, GKE, AKS, OPENSHIFT, TANZU, RANCHER, EC2, OTHER
544
- # }
545
- #
546
605
  # @!attribute [rw] role_arn
547
606
  # The Amazon Resource Name (ARN) of the role that is authorized to
548
607
  # request the connector configuration.
@@ -597,28 +656,57 @@ module Aws::EKS
597
656
  include Aws::Structure
598
657
  end
599
658
 
600
- # @note When making an API call, you may pass CreateAddonRequest
601
- # data as a hash:
659
+ # The placement configuration for all the control plane instances of
660
+ # your local Amazon EKS cluster on an Amazon Web Services Outpost. For
661
+ # more information, see [Capacity considerations][1] in the *Amazon EKS
662
+ # User Guide*
663
+ #
664
+ #
602
665
  #
603
- # {
604
- # cluster_name: "ClusterName", # required
605
- # addon_name: "String", # required
606
- # addon_version: "String",
607
- # service_account_role_arn: "RoleArn",
608
- # resolve_conflicts: "OVERWRITE", # accepts OVERWRITE, NONE
609
- # client_request_token: "String",
610
- # tags: {
611
- # "TagKey" => "TagValue",
612
- # },
613
- # }
666
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html
614
667
  #
668
+ # @!attribute [rw] group_name
669
+ # The name of the placement group for the Kubernetes control plane
670
+ # instances. This setting can't be changed after cluster creation.
671
+ # @return [String]
672
+ #
673
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ControlPlanePlacementRequest AWS API Documentation
674
+ #
675
+ class ControlPlanePlacementRequest < Struct.new(
676
+ :group_name)
677
+ SENSITIVE = []
678
+ include Aws::Structure
679
+ end
680
+
681
+ # The placement configuration for all the control plane instances of
682
+ # your local Amazon EKS cluster on an Amazon Web Services Outpost. For
683
+ # more information, see [Capacity considerations][1] in the *Amazon EKS
684
+ # User Guide*.
685
+ #
686
+ #
687
+ #
688
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html
689
+ #
690
+ # @!attribute [rw] group_name
691
+ # The name of the placement group for the Kubernetes control plane
692
+ # instances.
693
+ # @return [String]
694
+ #
695
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ControlPlanePlacementResponse AWS API Documentation
696
+ #
697
+ class ControlPlanePlacementResponse < Struct.new(
698
+ :group_name)
699
+ SENSITIVE = []
700
+ include Aws::Structure
701
+ end
702
+
615
703
  # @!attribute [rw] cluster_name
616
704
  # The name of the cluster to create the add-on for.
617
705
  # @return [String]
618
706
  #
619
707
  # @!attribute [rw] addon_name
620
- # The name of the add-on. The name must match one of the names
621
- # returned by [ `DescribeAddonVersions` ][1].
708
+ # The name of the add-on. The name must match one of the names that [
709
+ # `DescribeAddonVersions` ][1] returns.
622
710
  #
623
711
  #
624
712
  #
@@ -656,8 +744,29 @@ module Aws::EKS
656
744
  # @return [String]
657
745
  #
658
746
  # @!attribute [rw] resolve_conflicts
659
- # How to resolve parameter value conflicts when migrating an existing
660
- # add-on to an Amazon EKS add-on.
747
+ # How to resolve field value conflicts for an Amazon EKS add-on.
748
+ # Conflicts are handled based on the value you choose:
749
+ #
750
+ # * **None** – If the self-managed version of the add-on is installed
751
+ # on your cluster, Amazon EKS doesn't change the value. Creation of
752
+ # the add-on might fail.
753
+ #
754
+ # * **Overwrite** – If the self-managed version of the add-on is
755
+ # installed on your cluster and the Amazon EKS default value is
756
+ # different than the existing value, Amazon EKS changes the value to
757
+ # the Amazon EKS default value.
758
+ #
759
+ # * **Preserve** – Not supported. You can set this value when updating
760
+ # an add-on though. For more information, see [UpdateAddon][1].
761
+ #
762
+ # If you don't currently have the self-managed version of the add-on
763
+ # installed on your cluster, the Amazon EKS add-on is installed.
764
+ # Amazon EKS sets all values to default values, regardless of the
765
+ # option that you specify.
766
+ #
767
+ #
768
+ #
769
+ # [1]: https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html
661
770
  # @return [String]
662
771
  #
663
772
  # @!attribute [rw] client_request_token
@@ -674,6 +783,16 @@ module Aws::EKS
674
783
  # You define both.
675
784
  # @return [Hash<String,String>]
676
785
  #
786
+ # @!attribute [rw] configuration_values
787
+ # The set of configuration values for the add-on that's created. The
788
+ # values that you provide are validated against the schema in [
789
+ # `DescribeAddonConfiguration` ][1].
790
+ #
791
+ #
792
+ #
793
+ # [1]: https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonConfiguration.html
794
+ # @return [String]
795
+ #
677
796
  # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateAddonRequest AWS API Documentation
678
797
  #
679
798
  class CreateAddonRequest < Struct.new(
@@ -683,7 +802,8 @@ module Aws::EKS
683
802
  :service_account_role_arn,
684
803
  :resolve_conflicts,
685
804
  :client_request_token,
686
- :tags)
805
+ :tags,
806
+ :configuration_values)
687
807
  SENSITIVE = []
688
808
  include Aws::Structure
689
809
  end
@@ -705,53 +825,18 @@ module Aws::EKS
705
825
  include Aws::Structure
706
826
  end
707
827
 
708
- # @note When making an API call, you may pass CreateClusterRequest
709
- # data as a hash:
710
- #
711
- # {
712
- # name: "ClusterName", # required
713
- # version: "String",
714
- # role_arn: "String", # required
715
- # resources_vpc_config: { # required
716
- # subnet_ids: ["String"],
717
- # security_group_ids: ["String"],
718
- # endpoint_public_access: false,
719
- # endpoint_private_access: false,
720
- # public_access_cidrs: ["String"],
721
- # },
722
- # kubernetes_network_config: {
723
- # service_ipv_4_cidr: "String",
724
- # },
725
- # logging: {
726
- # cluster_logging: [
727
- # {
728
- # types: ["api"], # accepts api, audit, authenticator, controllerManager, scheduler
729
- # enabled: false,
730
- # },
731
- # ],
732
- # },
733
- # client_request_token: "String",
734
- # tags: {
735
- # "TagKey" => "TagValue",
736
- # },
737
- # encryption_config: [
738
- # {
739
- # resources: ["String"],
740
- # provider: {
741
- # key_arn: "String",
742
- # },
743
- # },
744
- # ],
745
- # }
746
- #
747
828
  # @!attribute [rw] name
748
829
  # The unique name to give to your cluster.
749
830
  # @return [String]
750
831
  #
751
832
  # @!attribute [rw] version
752
833
  # The desired Kubernetes version for your cluster. If you don't
753
- # specify a value here, the latest version available in Amazon EKS is
834
+ # specify a value here, the default version available in Amazon EKS is
754
835
  # used.
836
+ #
837
+ # <note markdown="1"> The default version might not be the latest version available.
838
+ #
839
+ # </note>
755
840
  # @return [String]
756
841
  #
757
842
  # @!attribute [rw] role_arn
@@ -823,6 +908,19 @@ module Aws::EKS
823
908
  # The encryption configuration for the cluster.
824
909
  # @return [Array<Types::EncryptionConfig>]
825
910
  #
911
+ # @!attribute [rw] outpost_config
912
+ # An object representing the configuration of your local Amazon EKS
913
+ # cluster on an Amazon Web Services Outpost. Before creating a local
914
+ # cluster on an Outpost, review [Local clusters for Amazon EKS on
915
+ # Amazon Web Services Outposts][1] in the *Amazon EKS User Guide*.
916
+ # This object isn't available for creating Amazon EKS clusters on the
917
+ # Amazon Web Services cloud.
918
+ #
919
+ #
920
+ #
921
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-local-cluster-overview.html
922
+ # @return [Types::OutpostConfigRequest]
923
+ #
826
924
  # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateClusterRequest AWS API Documentation
827
925
  #
828
926
  class CreateClusterRequest < Struct.new(
@@ -834,7 +932,8 @@ module Aws::EKS
834
932
  :logging,
835
933
  :client_request_token,
836
934
  :tags,
837
- :encryption_config)
935
+ :encryption_config,
936
+ :outpost_config)
838
937
  SENSITIVE = []
839
938
  include Aws::Structure
840
939
  end
@@ -851,28 +950,6 @@ module Aws::EKS
851
950
  include Aws::Structure
852
951
  end
853
952
 
854
- # @note When making an API call, you may pass CreateFargateProfileRequest
855
- # data as a hash:
856
- #
857
- # {
858
- # fargate_profile_name: "String", # required
859
- # cluster_name: "String", # required
860
- # pod_execution_role_arn: "String", # required
861
- # subnets: ["String"],
862
- # selectors: [
863
- # {
864
- # namespace: "String",
865
- # labels: {
866
- # "String" => "String",
867
- # },
868
- # },
869
- # ],
870
- # client_request_token: "String",
871
- # tags: {
872
- # "TagKey" => "TagValue",
873
- # },
874
- # }
875
- #
876
953
  # @!attribute [rw] fargate_profile_name
877
954
  # The name of the Fargate profile.
878
955
  # @return [String]
@@ -950,54 +1027,6 @@ module Aws::EKS
950
1027
  include Aws::Structure
951
1028
  end
952
1029
 
953
- # @note When making an API call, you may pass CreateNodegroupRequest
954
- # data as a hash:
955
- #
956
- # {
957
- # cluster_name: "String", # required
958
- # nodegroup_name: "String", # required
959
- # scaling_config: {
960
- # min_size: 1,
961
- # max_size: 1,
962
- # desired_size: 1,
963
- # },
964
- # disk_size: 1,
965
- # subnets: ["String"], # required
966
- # instance_types: ["String"],
967
- # ami_type: "AL2_x86_64", # accepts AL2_x86_64, AL2_x86_64_GPU, AL2_ARM_64, CUSTOM, BOTTLEROCKET_ARM_64, BOTTLEROCKET_x86_64
968
- # remote_access: {
969
- # ec2_ssh_key: "String",
970
- # source_security_groups: ["String"],
971
- # },
972
- # node_role: "String", # required
973
- # labels: {
974
- # "labelKey" => "labelValue",
975
- # },
976
- # taints: [
977
- # {
978
- # key: "taintKey",
979
- # value: "taintValue",
980
- # effect: "NO_SCHEDULE", # accepts NO_SCHEDULE, NO_EXECUTE, PREFER_NO_SCHEDULE
981
- # },
982
- # ],
983
- # tags: {
984
- # "TagKey" => "TagValue",
985
- # },
986
- # client_request_token: "String",
987
- # launch_template: {
988
- # name: "String",
989
- # version: "String",
990
- # id: "String",
991
- # },
992
- # update_config: {
993
- # max_unavailable: 1,
994
- # max_unavailable_percentage: 1,
995
- # },
996
- # capacity_type: "ON_DEMAND", # accepts ON_DEMAND, SPOT
997
- # version: "String",
998
- # release_version: "String",
999
- # }
1000
- #
1001
1030
  # @!attribute [rw] cluster_name
1002
1031
  # The name of the cluster to create the node group in.
1003
1032
  # @return [String]
@@ -1013,10 +1042,12 @@ module Aws::EKS
1013
1042
  #
1014
1043
  # @!attribute [rw] disk_size
1015
1044
  # The root device disk size (in GiB) for your node group instances.
1016
- # The default disk size is 20 GiB. If you specify `launchTemplate`,
1017
- # then don't specify `diskSize`, or the node group deployment will
1018
- # fail. For more information about using launch templates with Amazon
1019
- # EKS, see [Launch template support][1] in the Amazon EKS User Guide.
1045
+ # The default disk size is 20 GiB for Linux and Bottlerocket. The
1046
+ # default disk size is 50 GiB for Windows. If you specify
1047
+ # `launchTemplate`, then don't specify `diskSize`, or the node group
1048
+ # deployment will fail. For more information about using launch
1049
+ # templates with Amazon EKS, see [Launch template support][1] in the
1050
+ # *Amazon EKS User Guide*.
1020
1051
  #
1021
1052
  #
1022
1053
  #
@@ -1029,7 +1060,7 @@ module Aws::EKS
1029
1060
  # specify [ `SubnetId` ][1] in your launch template, or the node group
1030
1061
  # deployment will fail. For more information about using launch
1031
1062
  # templates with Amazon EKS, see [Launch template support][2] in the
1032
- # Amazon EKS User Guide.
1063
+ # *Amazon EKS User Guide*.
1033
1064
  #
1034
1065
  #
1035
1066
  #
@@ -1039,13 +1070,13 @@ module Aws::EKS
1039
1070
  #
1040
1071
  # @!attribute [rw] instance_types
1041
1072
  # Specify the instance types for a node group. If you specify a GPU
1042
- # instance type, be sure to specify `AL2_x86_64_GPU` with the
1043
- # `amiType` parameter. If you specify `launchTemplate`, then you can
1044
- # specify zero or one instance type in your launch template *or* you
1045
- # can specify 0-20 instance types for `instanceTypes`. If however, you
1046
- # specify an instance type in your launch template *and* specify any
1047
- # `instanceTypes`, the node group deployment will fail. If you don't
1048
- # specify an instance type in a launch template or for
1073
+ # instance type, make sure to also specify an applicable GPU AMI type
1074
+ # with the `amiType` parameter. If you specify `launchTemplate`, then
1075
+ # you can specify zero or one instance type in your launch template
1076
+ # *or* you can specify 0-20 instance types for `instanceTypes`. If
1077
+ # however, you specify an instance type in your launch template *and*
1078
+ # specify any `instanceTypes`, the node group deployment will fail. If
1079
+ # you don't specify an instance type in a launch template or for
1049
1080
  # `instanceTypes`, then `t3.medium` is used, by default. If you
1050
1081
  # specify `Spot` for `capacityType`, then we recommend specifying
1051
1082
  # multiple values for `instanceTypes`. For more information, see
@@ -1059,15 +1090,14 @@ module Aws::EKS
1059
1090
  # @return [Array<String>]
1060
1091
  #
1061
1092
  # @!attribute [rw] ami_type
1062
- # The AMI type for your node group. GPU instance types should use the
1063
- # `AL2_x86_64_GPU` AMI type. Non-GPU instances should use the
1064
- # `AL2_x86_64` AMI type. Arm instances should use the `AL2_ARM_64` AMI
1065
- # type. All types use the Amazon EKS optimized Amazon Linux 2 AMI. If
1066
- # you specify `launchTemplate`, and your launch template uses a custom
1067
- # AMI, then don't specify `amiType`, or the node group deployment
1068
- # will fail. For more information about using launch templates with
1069
- # Amazon EKS, see [Launch template support][1] in the Amazon EKS User
1070
- # Guide.
1093
+ # The AMI type for your node group. If you specify `launchTemplate`,
1094
+ # and your launch template uses a custom AMI, then don't specify
1095
+ # `amiType`, or the node group deployment will fail. If your launch
1096
+ # template uses a Windows custom AMI, then add
1097
+ # `eks:kube-proxy-windows` to your Windows nodes `rolearn` in the
1098
+ # `aws-auth` `ConfigMap`. For more information about using launch
1099
+ # templates with Amazon EKS, see [Launch template support][1] in the
1100
+ # *Amazon EKS User Guide*.
1071
1101
  #
1072
1102
  #
1073
1103
  #
@@ -1075,11 +1105,12 @@ module Aws::EKS
1075
1105
  # @return [String]
1076
1106
  #
1077
1107
  # @!attribute [rw] remote_access
1078
- # The remote access (SSH) configuration to use with your node group.
1079
- # If you specify `launchTemplate`, then don't specify `remoteAccess`,
1080
- # or the node group deployment will fail. For more information about
1081
- # using launch templates with Amazon EKS, see [Launch template
1082
- # support][1] in the Amazon EKS User Guide.
1108
+ # The remote access configuration to use with your node group. For
1109
+ # Linux, the protocol is SSH. For Windows, the protocol is RDP. If you
1110
+ # specify `launchTemplate`, then don't specify `remoteAccess`, or the
1111
+ # node group deployment will fail. For more information about using
1112
+ # launch templates with Amazon EKS, see [Launch template support][1]
1113
+ # in the *Amazon EKS User Guide*.
1083
1114
  #
1084
1115
  #
1085
1116
  #
@@ -1098,11 +1129,12 @@ module Aws::EKS
1098
1129
  # specify `launchTemplate`, then don't specify [ `IamInstanceProfile`
1099
1130
  # ][2] in your launch template, or the node group deployment will
1100
1131
  # fail. For more information about using launch templates with Amazon
1101
- # EKS, see [Launch template support][3] in the Amazon EKS User Guide.
1132
+ # EKS, see [Launch template support][3] in the *Amazon EKS User
1133
+ # Guide*.
1102
1134
  #
1103
1135
  #
1104
1136
  #
1105
- # [1]: https://docs.aws.amazon.com/eks/latest/userguide/worker_node_IAM_role.html
1137
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html
1106
1138
  # [2]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html
1107
1139
  # [3]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
1108
1140
  # @return [String]
@@ -1114,6 +1146,11 @@ module Aws::EKS
1114
1146
  #
1115
1147
  # @!attribute [rw] taints
1116
1148
  # The Kubernetes taints to be applied to the nodes in the node group.
1149
+ # For more information, see [Node taints on managed node groups][1].
1150
+ #
1151
+ #
1152
+ #
1153
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html
1117
1154
  # @return [Array<Types::Taint>]
1118
1155
  #
1119
1156
  # @!attribute [rw] tags
@@ -1154,7 +1191,7 @@ module Aws::EKS
1154
1191
  # launch template uses a custom AMI, then don't specify `version`, or
1155
1192
  # the node group deployment will fail. For more information about
1156
1193
  # using launch templates with Amazon EKS, see [Launch template
1157
- # support][1] in the Amazon EKS User Guide.
1194
+ # support][1] in the *Amazon EKS User Guide*.
1158
1195
  #
1159
1196
  #
1160
1197
  #
@@ -1164,18 +1201,24 @@ module Aws::EKS
1164
1201
  # @!attribute [rw] release_version
1165
1202
  # The AMI version of the Amazon EKS optimized AMI to use with your
1166
1203
  # node group. By default, the latest available AMI version for the
1167
- # node group's current Kubernetes version is used. For more
1168
- # information, see [Amazon EKS optimized Amazon Linux 2 AMI
1169
- # versions][1] in the *Amazon EKS User Guide*. If you specify
1170
- # `launchTemplate`, and your launch template uses a custom AMI, then
1171
- # don't specify `releaseVersion`, or the node group deployment will
1172
- # fail. For more information about using launch templates with Amazon
1173
- # EKS, see [Launch template support][2] in the Amazon EKS User Guide.
1204
+ # node group's current Kubernetes version is used. For information
1205
+ # about Linux versions, see [Amazon EKS optimized Amazon Linux AMI
1206
+ # versions][1] in the *Amazon EKS User Guide*. Amazon EKS managed node
1207
+ # groups support the November 2022 and later releases of the Windows
1208
+ # AMIs. For information about Windows versions, see [Amazon EKS
1209
+ # optimized Windows AMI versions][2] in the *Amazon EKS User Guide*.
1210
+ #
1211
+ # If you specify `launchTemplate`, and your launch template uses a
1212
+ # custom AMI, then don't specify `releaseVersion`, or the node group
1213
+ # deployment will fail. For more information about using launch
1214
+ # templates with Amazon EKS, see [Launch template support][3] in the
1215
+ # *Amazon EKS User Guide*.
1174
1216
  #
1175
1217
  #
1176
1218
  #
1177
1219
  # [1]: https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html
1178
- # [2]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
1220
+ # [2]: https://docs.aws.amazon.com/eks/latest/userguide/eks-ami-versions-windows.html
1221
+ # [3]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
1179
1222
  # @return [String]
1180
1223
  #
1181
1224
  # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateNodegroupRequest AWS API Documentation
@@ -1215,15 +1258,6 @@ module Aws::EKS
1215
1258
  include Aws::Structure
1216
1259
  end
1217
1260
 
1218
- # @note When making an API call, you may pass DeleteAddonRequest
1219
- # data as a hash:
1220
- #
1221
- # {
1222
- # cluster_name: "ClusterName", # required
1223
- # addon_name: "String", # required
1224
- # preserve: false,
1225
- # }
1226
- #
1227
1261
  # @!attribute [rw] cluster_name
1228
1262
  # The name of the cluster to delete the add-on from.
1229
1263
  # @return [String]
@@ -1240,7 +1274,7 @@ module Aws::EKS
1240
1274
  # @!attribute [rw] preserve
1241
1275
  # Specifying this option preserves the add-on software on your cluster
1242
1276
  # but Amazon EKS stops managing any settings for the add-on. If an IAM
1243
- # account is associated with the add-on, it is not removed.
1277
+ # account is associated with the add-on, it isn't removed.
1244
1278
  # @return [Boolean]
1245
1279
  #
1246
1280
  # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteAddonRequest AWS API Documentation
@@ -1270,13 +1304,6 @@ module Aws::EKS
1270
1304
  include Aws::Structure
1271
1305
  end
1272
1306
 
1273
- # @note When making an API call, you may pass DeleteClusterRequest
1274
- # data as a hash:
1275
- #
1276
- # {
1277
- # name: "String", # required
1278
- # }
1279
- #
1280
1307
  # @!attribute [rw] name
1281
1308
  # The name of the cluster to delete.
1282
1309
  # @return [String]
@@ -1301,14 +1328,6 @@ module Aws::EKS
1301
1328
  include Aws::Structure
1302
1329
  end
1303
1330
 
1304
- # @note When making an API call, you may pass DeleteFargateProfileRequest
1305
- # data as a hash:
1306
- #
1307
- # {
1308
- # cluster_name: "String", # required
1309
- # fargate_profile_name: "String", # required
1310
- # }
1311
- #
1312
1331
  # @!attribute [rw] cluster_name
1313
1332
  # The name of the Amazon EKS cluster associated with the Fargate
1314
1333
  # profile to delete.
@@ -1339,14 +1358,6 @@ module Aws::EKS
1339
1358
  include Aws::Structure
1340
1359
  end
1341
1360
 
1342
- # @note When making an API call, you may pass DeleteNodegroupRequest
1343
- # data as a hash:
1344
- #
1345
- # {
1346
- # cluster_name: "String", # required
1347
- # nodegroup_name: "String", # required
1348
- # }
1349
- #
1350
1361
  # @!attribute [rw] cluster_name
1351
1362
  # The name of the Amazon EKS cluster that is associated with your node
1352
1363
  # group.
@@ -1377,13 +1388,6 @@ module Aws::EKS
1377
1388
  include Aws::Structure
1378
1389
  end
1379
1390
 
1380
- # @note When making an API call, you may pass DeregisterClusterRequest
1381
- # data as a hash:
1382
- #
1383
- # {
1384
- # name: "String", # required
1385
- # }
1386
- #
1387
1391
  # @!attribute [rw] name
1388
1392
  # The name of the connected cluster to deregister.
1389
1393
  # @return [String]
@@ -1408,14 +1412,61 @@ module Aws::EKS
1408
1412
  include Aws::Structure
1409
1413
  end
1410
1414
 
1411
- # @note When making an API call, you may pass DescribeAddonRequest
1412
- # data as a hash:
1415
+ # @!attribute [rw] addon_name
1416
+ # The name of the add-on. The name must match one of the names that [
1417
+ # `DescribeAddonVersions` ][1] returns.
1418
+ #
1419
+ #
1420
+ #
1421
+ # [1]: https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html
1422
+ # @return [String]
1423
+ #
1424
+ # @!attribute [rw] addon_version
1425
+ # The version of the add-on. The version must match one of the
1426
+ # versions returned by [ `DescribeAddonVersions` ][1].
1427
+ #
1428
+ #
1429
+ #
1430
+ # [1]: https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html
1431
+ # @return [String]
1432
+ #
1433
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeAddonConfigurationRequest AWS API Documentation
1434
+ #
1435
+ class DescribeAddonConfigurationRequest < Struct.new(
1436
+ :addon_name,
1437
+ :addon_version)
1438
+ SENSITIVE = []
1439
+ include Aws::Structure
1440
+ end
1441
+
1442
+ # @!attribute [rw] addon_name
1443
+ # The name of the add-on.
1444
+ # @return [String]
1445
+ #
1446
+ # @!attribute [rw] addon_version
1447
+ # The version of the add-on. The version must match one of the
1448
+ # versions returned by [ `DescribeAddonVersions` ][1].
1449
+ #
1413
1450
  #
1414
- # {
1415
- # cluster_name: "ClusterName", # required
1416
- # addon_name: "String", # required
1417
- # }
1418
1451
  #
1452
+ # [1]: https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html
1453
+ # @return [String]
1454
+ #
1455
+ # @!attribute [rw] configuration_schema
1456
+ # A JSON schema that's used to validate the configuration values that
1457
+ # you provide when an addon is created or updated.
1458
+ # @return [String]
1459
+ #
1460
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeAddonConfigurationResponse AWS API Documentation
1461
+ #
1462
+ class DescribeAddonConfigurationResponse < Struct.new(
1463
+ :addon_name,
1464
+ :addon_version,
1465
+ :configuration_schema)
1466
+ SENSITIVE = []
1467
+ include Aws::Structure
1468
+ end
1469
+
1419
1470
  # @!attribute [rw] cluster_name
1420
1471
  # The name of the cluster.
1421
1472
  # @return [String]
@@ -1455,18 +1506,8 @@ module Aws::EKS
1455
1506
  include Aws::Structure
1456
1507
  end
1457
1508
 
1458
- # @note When making an API call, you may pass DescribeAddonVersionsRequest
1459
- # data as a hash:
1460
- #
1461
- # {
1462
- # kubernetes_version: "String",
1463
- # max_results: 1,
1464
- # next_token: "String",
1465
- # addon_name: "String",
1466
- # }
1467
- #
1468
1509
  # @!attribute [rw] kubernetes_version
1469
- # The Kubernetes versions that the add-on can be used with.
1510
+ # The Kubernetes versions that you can use the add-on with.
1470
1511
  # @return [String]
1471
1512
  #
1472
1513
  # @!attribute [rw] max_results
@@ -1496,20 +1537,38 @@ module Aws::EKS
1496
1537
  # [1]: https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html
1497
1538
  # @return [String]
1498
1539
  #
1540
+ # @!attribute [rw] types
1541
+ # The type of the add-on. For valid `types`, don't specify a value
1542
+ # for this property.
1543
+ # @return [Array<String>]
1544
+ #
1545
+ # @!attribute [rw] publishers
1546
+ # The publisher of the add-on. For valid `publishers`, don't specify
1547
+ # a value for this property.
1548
+ # @return [Array<String>]
1549
+ #
1550
+ # @!attribute [rw] owners
1551
+ # The owner of the add-on. For valid `owners`, don't specify a value
1552
+ # for this property.
1553
+ # @return [Array<String>]
1554
+ #
1499
1555
  # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeAddonVersionsRequest AWS API Documentation
1500
1556
  #
1501
1557
  class DescribeAddonVersionsRequest < Struct.new(
1502
1558
  :kubernetes_version,
1503
1559
  :max_results,
1504
1560
  :next_token,
1505
- :addon_name)
1561
+ :addon_name,
1562
+ :types,
1563
+ :publishers,
1564
+ :owners)
1506
1565
  SENSITIVE = []
1507
1566
  include Aws::Structure
1508
1567
  end
1509
1568
 
1510
1569
  # @!attribute [rw] addons
1511
- # The list of available versions with Kubernetes version
1512
- # compatibility.
1570
+ # The list of available versions with Kubernetes version compatibility
1571
+ # and other properties.
1513
1572
  # @return [Array<Types::AddonInfo>]
1514
1573
  #
1515
1574
  # @!attribute [rw] next_token
@@ -1535,13 +1594,6 @@ module Aws::EKS
1535
1594
  include Aws::Structure
1536
1595
  end
1537
1596
 
1538
- # @note When making an API call, you may pass DescribeClusterRequest
1539
- # data as a hash:
1540
- #
1541
- # {
1542
- # name: "String", # required
1543
- # }
1544
- #
1545
1597
  # @!attribute [rw] name
1546
1598
  # The name of the cluster to describe.
1547
1599
  # @return [String]
@@ -1566,14 +1618,6 @@ module Aws::EKS
1566
1618
  include Aws::Structure
1567
1619
  end
1568
1620
 
1569
- # @note When making an API call, you may pass DescribeFargateProfileRequest
1570
- # data as a hash:
1571
- #
1572
- # {
1573
- # cluster_name: "String", # required
1574
- # fargate_profile_name: "String", # required
1575
- # }
1576
- #
1577
1621
  # @!attribute [rw] cluster_name
1578
1622
  # The name of the Amazon EKS cluster associated with the Fargate
1579
1623
  # profile.
@@ -1604,24 +1648,13 @@ module Aws::EKS
1604
1648
  include Aws::Structure
1605
1649
  end
1606
1650
 
1607
- # @note When making an API call, you may pass DescribeIdentityProviderConfigRequest
1608
- # data as a hash:
1609
- #
1610
- # {
1611
- # cluster_name: "String", # required
1612
- # identity_provider_config: { # required
1613
- # type: "String", # required
1614
- # name: "String", # required
1615
- # },
1616
- # }
1617
- #
1618
1651
  # @!attribute [rw] cluster_name
1619
1652
  # The cluster name that the identity provider configuration is
1620
1653
  # associated to.
1621
1654
  # @return [String]
1622
1655
  #
1623
1656
  # @!attribute [rw] identity_provider_config
1624
- # An object that represents an identity provider configuration.
1657
+ # An object representing an identity provider configuration.
1625
1658
  # @return [Types::IdentityProviderConfig]
1626
1659
  #
1627
1660
  # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeIdentityProviderConfigRequest AWS API Documentation
@@ -1646,14 +1679,6 @@ module Aws::EKS
1646
1679
  include Aws::Structure
1647
1680
  end
1648
1681
 
1649
- # @note When making an API call, you may pass DescribeNodegroupRequest
1650
- # data as a hash:
1651
- #
1652
- # {
1653
- # cluster_name: "String", # required
1654
- # nodegroup_name: "String", # required
1655
- # }
1656
- #
1657
1682
  # @!attribute [rw] cluster_name
1658
1683
  # The name of the Amazon EKS cluster associated with the node group.
1659
1684
  # @return [String]
@@ -1683,16 +1708,6 @@ module Aws::EKS
1683
1708
  include Aws::Structure
1684
1709
  end
1685
1710
 
1686
- # @note When making an API call, you may pass DescribeUpdateRequest
1687
- # data as a hash:
1688
- #
1689
- # {
1690
- # name: "String", # required
1691
- # update_id: "String", # required
1692
- # nodegroup_name: "String",
1693
- # addon_name: "String",
1694
- # }
1695
- #
1696
1711
  # @!attribute [rw] name
1697
1712
  # The name of the Amazon EKS cluster associated with the update.
1698
1713
  # @return [String]
@@ -1703,11 +1718,13 @@ module Aws::EKS
1703
1718
  #
1704
1719
  # @!attribute [rw] nodegroup_name
1705
1720
  # The name of the Amazon EKS node group associated with the update.
1721
+ # This parameter is required if the update is a node group update.
1706
1722
  # @return [String]
1707
1723
  #
1708
1724
  # @!attribute [rw] addon_name
1709
1725
  # The name of the add-on. The name must match one of the names
1710
- # returned by [ `ListAddons` ][1].
1726
+ # returned by [ `ListAddons` ][1]. This parameter is required if the
1727
+ # update is an add-on update.
1711
1728
  #
1712
1729
  #
1713
1730
  #
@@ -1737,24 +1754,12 @@ module Aws::EKS
1737
1754
  include Aws::Structure
1738
1755
  end
1739
1756
 
1740
- # @note When making an API call, you may pass DisassociateIdentityProviderConfigRequest
1741
- # data as a hash:
1742
- #
1743
- # {
1744
- # cluster_name: "String", # required
1745
- # identity_provider_config: { # required
1746
- # type: "String", # required
1747
- # name: "String", # required
1748
- # },
1749
- # client_request_token: "String",
1750
- # }
1751
- #
1752
1757
  # @!attribute [rw] cluster_name
1753
1758
  # The name of the cluster to disassociate an identity provider from.
1754
1759
  # @return [String]
1755
1760
  #
1756
1761
  # @!attribute [rw] identity_provider_config
1757
- # An object that represents an identity provider configuration.
1762
+ # An object representing an identity provider configuration.
1758
1763
  # @return [Types::IdentityProviderConfig]
1759
1764
  #
1760
1765
  # @!attribute [rw] client_request_token
@@ -1789,16 +1794,6 @@ module Aws::EKS
1789
1794
 
1790
1795
  # The encryption configuration for the cluster.
1791
1796
  #
1792
- # @note When making an API call, you may pass EncryptionConfig
1793
- # data as a hash:
1794
- #
1795
- # {
1796
- # resources: ["String"],
1797
- # provider: {
1798
- # key_arn: "String",
1799
- # },
1800
- # }
1801
- #
1802
1797
  # @!attribute [rw] resources
1803
1798
  # Specifies the resources to be encrypted. The only supported value is
1804
1799
  # "secrets".
@@ -1823,26 +1818,26 @@ module Aws::EKS
1823
1818
  # @!attribute [rw] error_code
1824
1819
  # A brief description of the error.
1825
1820
  #
1826
- # * **SubnetNotFound**\: We couldn't find one of the subnets
1821
+ # * **SubnetNotFound**: We couldn't find one of the subnets
1827
1822
  # associated with the cluster.
1828
1823
  #
1829
- # * **SecurityGroupNotFound**\: We couldn't find one of the security
1824
+ # * **SecurityGroupNotFound**: We couldn't find one of the security
1830
1825
  # groups associated with the cluster.
1831
1826
  #
1832
- # * **EniLimitReached**\: You have reached the elastic network
1827
+ # * **EniLimitReached**: You have reached the elastic network
1833
1828
  # interface limit for your account.
1834
1829
  #
1835
- # * **IpNotAvailable**\: A subnet associated with the cluster doesn't
1830
+ # * **IpNotAvailable**: A subnet associated with the cluster doesn't
1836
1831
  # have any free IP addresses.
1837
1832
  #
1838
- # * **AccessDenied**\: You don't have permissions to perform the
1833
+ # * **AccessDenied**: You don't have permissions to perform the
1839
1834
  # specified operation.
1840
1835
  #
1841
- # * **OperationNotPermitted**\: The service role associated with the
1836
+ # * **OperationNotPermitted**: The service role associated with the
1842
1837
  # cluster doesn't have the required access permissions for Amazon
1843
1838
  # EKS.
1844
1839
  #
1845
- # * **VpcIdNotFound**\: We couldn't find the VPC associated with the
1840
+ # * **VpcIdNotFound**: We couldn't find the VPC associated with the
1846
1841
  # cluster.
1847
1842
  # @return [String]
1848
1843
  #
@@ -1934,16 +1929,6 @@ module Aws::EKS
1934
1929
 
1935
1930
  # An object representing an Fargate profile selector.
1936
1931
  #
1937
- # @note When making an API call, you may pass FargateProfileSelector
1938
- # data as a hash:
1939
- #
1940
- # {
1941
- # namespace: "String",
1942
- # labels: {
1943
- # "String" => "String",
1944
- # },
1945
- # }
1946
- #
1947
1932
  # @!attribute [rw] namespace
1948
1933
  # The Kubernetes namespace that the selector should match.
1949
1934
  # @return [String]
@@ -1984,16 +1969,9 @@ module Aws::EKS
1984
1969
 
1985
1970
  # An object representing an identity provider configuration.
1986
1971
  #
1987
- # @note When making an API call, you may pass IdentityProviderConfig
1988
- # data as a hash:
1989
- #
1990
- # {
1991
- # type: "String", # required
1992
- # name: "String", # required
1993
- # }
1994
- #
1995
1972
  # @!attribute [rw] type
1996
- # The type of the identity provider configuration.
1973
+ # The type of the identity provider configuration. The only type
1974
+ # available is `oidc`.
1997
1975
  # @return [String]
1998
1976
  #
1999
1977
  # @!attribute [rw] name
@@ -2012,7 +1990,7 @@ module Aws::EKS
2012
1990
  # The full description of your identity configuration.
2013
1991
  #
2014
1992
  # @!attribute [rw] oidc
2015
- # An object that represents an OpenID Connect (OIDC) identity provider
1993
+ # An object representing an OpenID Connect (OIDC) identity provider
2016
1994
  # configuration.
2017
1995
  # @return [Types::OidcIdentityProviderConfig]
2018
1996
  #
@@ -2090,67 +2068,67 @@ module Aws::EKS
2090
2068
  # @!attribute [rw] code
2091
2069
  # A brief description of the error.
2092
2070
  #
2093
- # * **AccessDenied**\: Amazon EKS or one or more of your managed nodes
2071
+ # * **AccessDenied**: Amazon EKS or one or more of your managed nodes
2094
2072
  # is failing to authenticate or authorize with your Kubernetes
2095
2073
  # cluster API server.
2096
2074
  #
2097
- # * **AsgInstanceLaunchFailures**\: Your Auto Scaling group is
2075
+ # * **AsgInstanceLaunchFailures**: Your Auto Scaling group is
2098
2076
  # experiencing failures while attempting to launch instances.
2099
2077
  #
2100
- # * **AutoScalingGroupNotFound**\: We couldn't find the Auto Scaling
2078
+ # * **AutoScalingGroupNotFound**: We couldn't find the Auto Scaling
2101
2079
  # group associated with the managed node group. You may be able to
2102
2080
  # recreate an Auto Scaling group with the same settings to recover.
2103
2081
  #
2104
- # * **ClusterUnreachable**\: Amazon EKS or one or more of your managed
2082
+ # * **ClusterUnreachable**: Amazon EKS or one or more of your managed
2105
2083
  # nodes is unable to to communicate with your Kubernetes cluster API
2106
2084
  # server. This can happen if there are network disruptions or if API
2107
2085
  # servers are timing out processing requests.
2108
2086
  #
2109
- # * **Ec2LaunchTemplateNotFound**\: We couldn't find the Amazon EC2
2087
+ # * **Ec2LaunchTemplateNotFound**: We couldn't find the Amazon EC2
2110
2088
  # launch template for your managed node group. You may be able to
2111
2089
  # recreate a launch template with the same settings to recover.
2112
2090
  #
2113
- # * **Ec2LaunchTemplateVersionMismatch**\: The Amazon EC2 launch
2091
+ # * **Ec2LaunchTemplateVersionMismatch**: The Amazon EC2 launch
2114
2092
  # template version for your managed node group does not match the
2115
2093
  # version that Amazon EKS created. You may be able to revert to the
2116
2094
  # version that Amazon EKS created to recover.
2117
2095
  #
2118
- # * **Ec2SecurityGroupDeletionFailure**\: We could not delete the
2096
+ # * **Ec2SecurityGroupDeletionFailure**: We could not delete the
2119
2097
  # remote access security group for your managed node group. Remove
2120
2098
  # any dependencies from the security group.
2121
2099
  #
2122
- # * **Ec2SecurityGroupNotFound**\: We couldn't find the cluster
2100
+ # * **Ec2SecurityGroupNotFound**: We couldn't find the cluster
2123
2101
  # security group for the cluster. You must recreate your cluster.
2124
2102
  #
2125
- # * **Ec2SubnetInvalidConfiguration**\: One or more Amazon EC2 subnets
2103
+ # * **Ec2SubnetInvalidConfiguration**: One or more Amazon EC2 subnets
2126
2104
  # specified for a node group do not automatically assign public IP
2127
2105
  # addresses to instances launched into it. If you want your
2128
2106
  # instances to be assigned a public IP address, then you need to
2129
2107
  # enable the `auto-assign public IP address` setting for the subnet.
2130
2108
  # See [Modifying the public IPv4 addressing attribute for your
2131
- # subnet][1] in the Amazon VPC User Guide.
2109
+ # subnet][1] in the *Amazon VPC User Guide*.
2132
2110
  #
2133
- # * **IamInstanceProfileNotFound**\: We couldn't find the IAM
2134
- # instance profile for your managed node group. You may be able to
2135
- # recreate an instance profile with the same settings to recover.
2111
+ # * **IamInstanceProfileNotFound**: We couldn't find the IAM instance
2112
+ # profile for your managed node group. You may be able to recreate
2113
+ # an instance profile with the same settings to recover.
2136
2114
  #
2137
- # * **IamNodeRoleNotFound**\: We couldn't find the IAM role for your
2115
+ # * **IamNodeRoleNotFound**: We couldn't find the IAM role for your
2138
2116
  # managed node group. You may be able to recreate an IAM role with
2139
2117
  # the same settings to recover.
2140
2118
  #
2141
- # * **InstanceLimitExceeded**\: Your Amazon Web Services account is
2119
+ # * **InstanceLimitExceeded**: Your Amazon Web Services account is
2142
2120
  # unable to launch any more instances of the specified instance
2143
2121
  # type. You may be able to request an Amazon EC2 instance limit
2144
2122
  # increase to recover.
2145
2123
  #
2146
- # * **InsufficientFreeAddresses**\: One or more of the subnets
2124
+ # * **InsufficientFreeAddresses**: One or more of the subnets
2147
2125
  # associated with your managed node group does not have enough
2148
2126
  # available IP addresses for new nodes.
2149
2127
  #
2150
- # * **InternalFailure**\: These errors are usually caused by an Amazon
2128
+ # * **InternalFailure**: These errors are usually caused by an Amazon
2151
2129
  # EKS server-side issue.
2152
2130
  #
2153
- # * **NodeCreationFailure**\: Your launched instances are unable to
2131
+ # * **NodeCreationFailure**: Your launched instances are unable to
2154
2132
  # register with your Amazon EKS cluster. Common causes of this
2155
2133
  # failure are insufficient [node IAM role][2] permissions or lack of
2156
2134
  # outbound internet access for the nodes.
@@ -2181,23 +2159,17 @@ module Aws::EKS
2181
2159
 
2182
2160
  # The Kubernetes network configuration for the cluster.
2183
2161
  #
2184
- # @note When making an API call, you may pass KubernetesNetworkConfigRequest
2185
- # data as a hash:
2186
- #
2187
- # {
2188
- # service_ipv_4_cidr: "String",
2189
- # }
2190
- #
2191
2162
  # @!attribute [rw] service_ipv_4_cidr
2192
- # The CIDR block to assign Kubernetes service IP addresses from. If
2193
- # you don't specify a block, Kubernetes assigns addresses from either
2194
- # the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We recommend that
2163
+ # Don't specify a value if you select `ipv6` for **ipFamily**. The
2164
+ # CIDR block to assign Kubernetes service IP addresses from. If you
2165
+ # don't specify a block, Kubernetes assigns addresses from either the
2166
+ # `10.100.0.0/16` or `172.20.0.0/16` CIDR blocks. We recommend that
2195
2167
  # you specify a block that does not overlap with resources in other
2196
2168
  # networks that are peered or connected to your VPC. The block must
2197
2169
  # meet the following requirements:
2198
2170
  #
2199
- # * Within one of the following private IP address blocks: 10.0.0.0/8,
2200
- # 172.16.0.0/12, or 192.168.0.0/16.
2171
+ # * Within one of the following private IP address blocks:
2172
+ # `10.0.0.0/8`, `172.16.0.0/12`, or `192.168.0.0/16`.
2201
2173
  #
2202
2174
  # * Doesn't overlap with any CIDR block assigned to the VPC that you
2203
2175
  # selected for VPC.
@@ -2208,44 +2180,91 @@ module Aws::EKS
2208
2180
  # and can't change this value once the cluster is created.
2209
2181
  # @return [String]
2210
2182
  #
2183
+ # @!attribute [rw] ip_family
2184
+ # Specify which IP family is used to assign Kubernetes pod and service
2185
+ # IP addresses. If you don't specify a value, `ipv4` is used by
2186
+ # default. You can only specify an IP family when you create a cluster
2187
+ # and can't change this value once the cluster is created. If you
2188
+ # specify `ipv6`, the VPC and subnets that you specify for cluster
2189
+ # creation must have both `IPv4` and `IPv6` CIDR blocks assigned to
2190
+ # them. You can't specify `ipv6` for clusters in China Regions.
2191
+ #
2192
+ # You can only specify `ipv6` for `1.21` and later clusters that use
2193
+ # version `1.10.1` or later of the Amazon VPC CNI add-on. If you
2194
+ # specify `ipv6`, then ensure that your VPC meets the requirements
2195
+ # listed in the considerations listed in [Assigning IPv6 addresses to
2196
+ # pods and services][1] in the Amazon EKS User Guide. Kubernetes
2197
+ # assigns services `IPv6` addresses from the unique local address
2198
+ # range `(fc00::/7)`. You can't specify a custom `IPv6` CIDR block.
2199
+ # Pod addresses are assigned from the subnet's `IPv6` CIDR.
2200
+ #
2201
+ #
2202
+ #
2203
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/cni-ipv6.html
2204
+ # @return [String]
2205
+ #
2211
2206
  # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/KubernetesNetworkConfigRequest AWS API Documentation
2212
2207
  #
2213
2208
  class KubernetesNetworkConfigRequest < Struct.new(
2214
- :service_ipv_4_cidr)
2209
+ :service_ipv_4_cidr,
2210
+ :ip_family)
2215
2211
  SENSITIVE = []
2216
2212
  include Aws::Structure
2217
2213
  end
2218
2214
 
2219
- # The Kubernetes network configuration for the cluster.
2215
+ # The Kubernetes network configuration for the cluster. The response
2216
+ # contains a value for **serviceIpv6Cidr** or **serviceIpv4Cidr**, but
2217
+ # not both.
2220
2218
  #
2221
2219
  # @!attribute [rw] service_ipv_4_cidr
2222
- # The CIDR block that Kubernetes service IP addresses are assigned
2223
- # from. If you didn't specify a CIDR block when you created the
2224
- # cluster, then Kubernetes assigns addresses from either the
2225
- # 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. If this was specified,
2226
- # then it was specified when the cluster was created and it cannot be
2227
- # changed.
2220
+ # The CIDR block that Kubernetes pod and service IP addresses are
2221
+ # assigned from. Kubernetes assigns addresses from an IPv4 CIDR block
2222
+ # assigned to a subnet that the node is in. If you didn't specify a
2223
+ # CIDR block when you created the cluster, then Kubernetes assigns
2224
+ # addresses from either the `10.100.0.0/16` or `172.20.0.0/16` CIDR
2225
+ # blocks. If this was specified, then it was specified when the
2226
+ # cluster was created and it can't be changed.
2227
+ # @return [String]
2228
+ #
2229
+ # @!attribute [rw] service_ipv_6_cidr
2230
+ # The CIDR block that Kubernetes pod and service IP addresses are
2231
+ # assigned from if you created a 1.21 or later cluster with version
2232
+ # 1.10.1 or later of the Amazon VPC CNI add-on and specified `ipv6`
2233
+ # for **ipFamily** when you created the cluster. Kubernetes assigns
2234
+ # service addresses from the unique local address range (`fc00::/7`)
2235
+ # because you can't specify a custom IPv6 CIDR block when you create
2236
+ # the cluster.
2237
+ # @return [String]
2238
+ #
2239
+ # @!attribute [rw] ip_family
2240
+ # The IP family used to assign Kubernetes pod and service IP
2241
+ # addresses. The IP family is always `ipv4`, unless you have a `1.21`
2242
+ # or later cluster running version 1.10.1 or later of the Amazon VPC
2243
+ # CNI add-on and specified `ipv6` when you created the cluster.
2228
2244
  # @return [String]
2229
2245
  #
2230
2246
  # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/KubernetesNetworkConfigResponse AWS API Documentation
2231
2247
  #
2232
2248
  class KubernetesNetworkConfigResponse < Struct.new(
2233
- :service_ipv_4_cidr)
2249
+ :service_ipv_4_cidr,
2250
+ :service_ipv_6_cidr,
2251
+ :ip_family)
2234
2252
  SENSITIVE = []
2235
2253
  include Aws::Structure
2236
2254
  end
2237
2255
 
2238
2256
  # An object representing a node group launch template specification. The
2239
- # launch template cannot include [ `SubnetId` ][1], [
2257
+ # launch template can't include [ `SubnetId` ][1], [
2240
2258
  # `IamInstanceProfile` ][2], [ `RequestSpotInstances` ][3], [
2241
2259
  # `HibernationOptions` ][4], or [ `TerminateInstances` ][5], or the node
2242
2260
  # group deployment or update will fail. For more information about
2243
2261
  # launch templates, see [ `CreateLaunchTemplate` ][6] in the Amazon EC2
2244
2262
  # API Reference. For more information about using launch templates with
2245
- # Amazon EKS, see [Launch template support][7] in the Amazon EKS User
2246
- # Guide.
2263
+ # Amazon EKS, see [Launch template support][7] in the *Amazon EKS User
2264
+ # Guide*.
2247
2265
  #
2248
- # Specify either `name` or `id`, but not both.
2266
+ # You must specify either the launch template ID or the launch template
2267
+ # name in the request, but not both.
2249
2268
  #
2250
2269
  #
2251
2270
  #
@@ -2257,26 +2276,23 @@ module Aws::EKS
2257
2276
  # [6]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html
2258
2277
  # [7]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
2259
2278
  #
2260
- # @note When making an API call, you may pass LaunchTemplateSpecification
2261
- # data as a hash:
2262
- #
2263
- # {
2264
- # name: "String",
2265
- # version: "String",
2266
- # id: "String",
2267
- # }
2268
- #
2269
2279
  # @!attribute [rw] name
2270
2280
  # The name of the launch template.
2281
+ #
2282
+ # You must specify either the launch template name or the launch
2283
+ # template ID in the request, but not both.
2271
2284
  # @return [String]
2272
2285
  #
2273
2286
  # @!attribute [rw] version
2274
- # The version of the launch template to use. If no version is
2287
+ # The version number of the launch template to use. If no version is
2275
2288
  # specified, then the template's default version is used.
2276
2289
  # @return [String]
2277
2290
  #
2278
2291
  # @!attribute [rw] id
2279
2292
  # The ID of the launch template.
2293
+ #
2294
+ # You must specify either the launch template ID or the launch
2295
+ # template name in the request, but not both.
2280
2296
  # @return [String]
2281
2297
  #
2282
2298
  # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/LaunchTemplateSpecification AWS API Documentation
@@ -2289,15 +2305,6 @@ module Aws::EKS
2289
2305
  include Aws::Structure
2290
2306
  end
2291
2307
 
2292
- # @note When making an API call, you may pass ListAddonsRequest
2293
- # data as a hash:
2294
- #
2295
- # {
2296
- # cluster_name: "ClusterName", # required
2297
- # max_results: 1,
2298
- # next_token: "String",
2299
- # }
2300
- #
2301
2308
  # @!attribute [rw] cluster_name
2302
2309
  # The name of the cluster.
2303
2310
  # @return [String]
@@ -2363,15 +2370,6 @@ module Aws::EKS
2363
2370
  include Aws::Structure
2364
2371
  end
2365
2372
 
2366
- # @note When making an API call, you may pass ListClustersRequest
2367
- # data as a hash:
2368
- #
2369
- # {
2370
- # max_results: 1,
2371
- # next_token: "String",
2372
- # include: ["String"],
2373
- # }
2374
- #
2375
2373
  # @!attribute [rw] max_results
2376
2374
  # The maximum number of cluster results returned by `ListClusters` in
2377
2375
  # paginated output. When you use this parameter, `ListClusters`
@@ -2434,15 +2432,6 @@ module Aws::EKS
2434
2432
  include Aws::Structure
2435
2433
  end
2436
2434
 
2437
- # @note When making an API call, you may pass ListFargateProfilesRequest
2438
- # data as a hash:
2439
- #
2440
- # {
2441
- # cluster_name: "String", # required
2442
- # max_results: 1,
2443
- # next_token: "String",
2444
- # }
2445
- #
2446
2435
  # @!attribute [rw] cluster_name
2447
2436
  # The name of the Amazon EKS cluster that you would like to list
2448
2437
  # Fargate profiles in.
@@ -2500,15 +2489,6 @@ module Aws::EKS
2500
2489
  include Aws::Structure
2501
2490
  end
2502
2491
 
2503
- # @note When making an API call, you may pass ListIdentityProviderConfigsRequest
2504
- # data as a hash:
2505
- #
2506
- # {
2507
- # cluster_name: "String", # required
2508
- # max_results: 1,
2509
- # next_token: "String",
2510
- # }
2511
- #
2512
2492
  # @!attribute [rw] cluster_name
2513
2493
  # The cluster name that you want to list identity provider
2514
2494
  # configurations for.
@@ -2565,15 +2545,6 @@ module Aws::EKS
2565
2545
  include Aws::Structure
2566
2546
  end
2567
2547
 
2568
- # @note When making an API call, you may pass ListNodegroupsRequest
2569
- # data as a hash:
2570
- #
2571
- # {
2572
- # cluster_name: "String", # required
2573
- # max_results: 1,
2574
- # next_token: "String",
2575
- # }
2576
- #
2577
2548
  # @!attribute [rw] cluster_name
2578
2549
  # The name of the Amazon EKS cluster that you would like to list node
2579
2550
  # groups in.
@@ -2630,13 +2601,6 @@ module Aws::EKS
2630
2601
  include Aws::Structure
2631
2602
  end
2632
2603
 
2633
- # @note When making an API call, you may pass ListTagsForResourceRequest
2634
- # data as a hash:
2635
- #
2636
- # {
2637
- # resource_arn: "String", # required
2638
- # }
2639
- #
2640
2604
  # @!attribute [rw] resource_arn
2641
2605
  # The Amazon Resource Name (ARN) that identifies the resource for
2642
2606
  # which to list the tags. Currently, the supported resources are
@@ -2663,17 +2627,6 @@ module Aws::EKS
2663
2627
  include Aws::Structure
2664
2628
  end
2665
2629
 
2666
- # @note When making an API call, you may pass ListUpdatesRequest
2667
- # data as a hash:
2668
- #
2669
- # {
2670
- # name: "String", # required
2671
- # nodegroup_name: "String",
2672
- # addon_name: "String",
2673
- # next_token: "String",
2674
- # max_results: 1,
2675
- # }
2676
- #
2677
2630
  # @!attribute [rw] name
2678
2631
  # The name of the Amazon EKS cluster to list updates for.
2679
2632
  # @return [String]
@@ -2739,14 +2692,6 @@ module Aws::EKS
2739
2692
  # An object representing the enabled or disabled Kubernetes control
2740
2693
  # plane logs for your cluster.
2741
2694
  #
2742
- # @note When making an API call, you may pass LogSetup
2743
- # data as a hash:
2744
- #
2745
- # {
2746
- # types: ["api"], # accepts api, audit, authenticator, controllerManager, scheduler
2747
- # enabled: false,
2748
- # }
2749
- #
2750
2695
  # @!attribute [rw] types
2751
2696
  # The available cluster control plane log types.
2752
2697
  # @return [Array<String>]
@@ -2770,18 +2715,6 @@ module Aws::EKS
2770
2715
  # An object representing the logging configuration for resources in your
2771
2716
  # cluster.
2772
2717
  #
2773
- # @note When making an API call, you may pass Logging
2774
- # data as a hash:
2775
- #
2776
- # {
2777
- # cluster_logging: [
2778
- # {
2779
- # types: ["api"], # accepts api, audit, authenticator, controllerManager, scheduler
2780
- # enabled: false,
2781
- # },
2782
- # ],
2783
- # }
2784
- #
2785
2718
  # @!attribute [rw] cluster_logging
2786
2719
  # The cluster control plane logging configuration for your cluster.
2787
2720
  # @return [Array<Types::LogSetup>]
@@ -2794,6 +2727,26 @@ module Aws::EKS
2794
2727
  include Aws::Structure
2795
2728
  end
2796
2729
 
2730
+ # Information about an Amazon EKS add-on from the Amazon Web Services
2731
+ # Marketplace.
2732
+ #
2733
+ # @!attribute [rw] product_id
2734
+ # The product ID from the Amazon Web Services Marketplace.
2735
+ # @return [String]
2736
+ #
2737
+ # @!attribute [rw] product_url
2738
+ # The product URL from the Amazon Web Services Marketplace.
2739
+ # @return [String]
2740
+ #
2741
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/MarketplaceInformation AWS API Documentation
2742
+ #
2743
+ class MarketplaceInformation < Struct.new(
2744
+ :product_id,
2745
+ :product_url)
2746
+ SENSITIVE = []
2747
+ include Aws::Structure
2748
+ end
2749
+
2797
2750
  # An object representing an Amazon EKS managed node group.
2798
2751
  #
2799
2752
  # @!attribute [rw] nodegroup_name
@@ -2891,7 +2844,12 @@ module Aws::EKS
2891
2844
  # when they are created. Effect is one of `No_Schedule`,
2892
2845
  # `Prefer_No_Schedule`, or `No_Execute`. Kubernetes taints can be used
2893
2846
  # together with tolerations to control how workloads are scheduled to
2894
- # your nodes.
2847
+ # your nodes. For more information, see [Node taints on managed node
2848
+ # groups][1].
2849
+ #
2850
+ #
2851
+ #
2852
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html
2895
2853
  # @return [Array<Types::Taint>]
2896
2854
  #
2897
2855
  # @!attribute [rw] resources
@@ -2997,15 +2955,6 @@ module Aws::EKS
2997
2955
  # node group, you must specify all or none of the properties. When
2998
2956
  # updating a node group, you can specify any or none of the properties.
2999
2957
  #
3000
- # @note When making an API call, you may pass NodegroupScalingConfig
3001
- # data as a hash:
3002
- #
3003
- # {
3004
- # min_size: 1,
3005
- # max_size: 1,
3006
- # desired_size: 1,
3007
- # }
3008
- #
3009
2958
  # @!attribute [rw] min_size
3010
2959
  # The minimum number of nodes that the managed node group can scale in
3011
2960
  # to.
@@ -3059,14 +3008,6 @@ module Aws::EKS
3059
3008
 
3060
3009
  # The node group update configuration.
3061
3010
  #
3062
- # @note When making an API call, you may pass NodegroupUpdateConfig
3063
- # data as a hash:
3064
- #
3065
- # {
3066
- # max_unavailable: 1,
3067
- # max_unavailable_percentage: 1,
3068
- # }
3069
- #
3070
3011
  # @!attribute [rw] max_unavailable
3071
3012
  # The maximum number of nodes unavailable at once during a version
3072
3013
  # update. Nodes will be updated in parallel. This value or
@@ -3123,8 +3064,8 @@ module Aws::EKS
3123
3064
  include Aws::Structure
3124
3065
  end
3125
3066
 
3126
- # An object that represents the configuration for an OpenID Connect
3127
- # (OIDC) identity provider.
3067
+ # An object representing the configuration for an OpenID Connect (OIDC)
3068
+ # identity provider.
3128
3069
  #
3129
3070
  # @!attribute [rw] identity_provider_config_name
3130
3071
  # The name of the configuration.
@@ -3213,22 +3154,6 @@ module Aws::EKS
3213
3154
  #
3214
3155
  # [1]: https://docs.aws.amazon.com/eks/latest/userguide/authenticate-oidc-identity-provider.html
3215
3156
  #
3216
- # @note When making an API call, you may pass OidcIdentityProviderConfigRequest
3217
- # data as a hash:
3218
- #
3219
- # {
3220
- # identity_provider_config_name: "String", # required
3221
- # issuer_url: "String", # required
3222
- # client_id: "String", # required
3223
- # username_claim: "String",
3224
- # username_prefix: "String",
3225
- # groups_claim: "String",
3226
- # groups_prefix: "String",
3227
- # required_claims: {
3228
- # "requiredClaimsKey" => "requiredClaimsValue",
3229
- # },
3230
- # }
3231
- #
3232
3157
  # @!attribute [rw] identity_provider_config_name
3233
3158
  # The name of the OIDC provider configuration.
3234
3159
  # @return [String]
@@ -3304,15 +3229,97 @@ module Aws::EKS
3304
3229
  include Aws::Structure
3305
3230
  end
3306
3231
 
3307
- # Identifies the Key Management Service (KMS) key used to encrypt the
3308
- # secrets.
3232
+ # The configuration of your local Amazon EKS cluster on an Amazon Web
3233
+ # Services Outpost. Before creating a cluster on an Outpost, review
3234
+ # [Creating a local cluster on an Outpost][1] in the *Amazon EKS User
3235
+ # Guide*. This API isn't available for Amazon EKS clusters on the
3236
+ # Amazon Web Services cloud.
3237
+ #
3238
+ #
3239
+ #
3240
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-local-cluster-create.html
3241
+ #
3242
+ # @!attribute [rw] outpost_arns
3243
+ # The ARN of the Outpost that you want to use for your local Amazon
3244
+ # EKS cluster on Outposts. Only a single Outpost ARN is supported.
3245
+ # @return [Array<String>]
3246
+ #
3247
+ # @!attribute [rw] control_plane_instance_type
3248
+ # The Amazon EC2 instance type that you want to use for your local
3249
+ # Amazon EKS cluster on Outposts. Choose an instance type based on the
3250
+ # number of nodes that your cluster will have. For more information,
3251
+ # see [Capacity considerations][1] in the *Amazon EKS User Guide*.
3252
+ #
3253
+ # The instance type that you specify is used for all Kubernetes
3254
+ # control plane instances. The instance type can't be changed after
3255
+ # cluster creation. The control plane is not automatically scaled by
3256
+ # Amazon EKS.
3257
+ #
3309
3258
  #
3310
- # @note When making an API call, you may pass Provider
3311
- # data as a hash:
3312
3259
  #
3313
- # {
3314
- # key_arn: "String",
3315
- # }
3260
+ #
3261
+ #
3262
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html
3263
+ # @return [String]
3264
+ #
3265
+ # @!attribute [rw] control_plane_placement
3266
+ # An object representing the placement configuration for all the
3267
+ # control plane instances of your local Amazon EKS cluster on an
3268
+ # Amazon Web Services Outpost. For more information, see [Capacity
3269
+ # considerations][1] in the *Amazon EKS User Guide*.
3270
+ #
3271
+ #
3272
+ #
3273
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html
3274
+ # @return [Types::ControlPlanePlacementRequest]
3275
+ #
3276
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/OutpostConfigRequest AWS API Documentation
3277
+ #
3278
+ class OutpostConfigRequest < Struct.new(
3279
+ :outpost_arns,
3280
+ :control_plane_instance_type,
3281
+ :control_plane_placement)
3282
+ SENSITIVE = []
3283
+ include Aws::Structure
3284
+ end
3285
+
3286
+ # An object representing the configuration of your local Amazon EKS
3287
+ # cluster on an Amazon Web Services Outpost. This API isn't available
3288
+ # for Amazon EKS clusters on the Amazon Web Services cloud.
3289
+ #
3290
+ # @!attribute [rw] outpost_arns
3291
+ # The ARN of the Outpost that you specified for use with your local
3292
+ # Amazon EKS cluster on Outposts.
3293
+ # @return [Array<String>]
3294
+ #
3295
+ # @!attribute [rw] control_plane_instance_type
3296
+ # The Amazon EC2 instance type used for the control plane. The
3297
+ # instance type is the same for all control plane instances.
3298
+ # @return [String]
3299
+ #
3300
+ # @!attribute [rw] control_plane_placement
3301
+ # An object representing the placement configuration for all the
3302
+ # control plane instances of your local Amazon EKS cluster on an
3303
+ # Amazon Web Services Outpost. For more information, see [Capacity
3304
+ # considerations][1] in the *Amazon EKS User Guide*.
3305
+ #
3306
+ #
3307
+ #
3308
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html
3309
+ # @return [Types::ControlPlanePlacementResponse]
3310
+ #
3311
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/OutpostConfigResponse AWS API Documentation
3312
+ #
3313
+ class OutpostConfigResponse < Struct.new(
3314
+ :outpost_arns,
3315
+ :control_plane_instance_type,
3316
+ :control_plane_placement)
3317
+ SENSITIVE = []
3318
+ include Aws::Structure
3319
+ end
3320
+
3321
+ # Identifies the Key Management Service (KMS) key used to encrypt the
3322
+ # secrets.
3316
3323
  #
3317
3324
  # @!attribute [rw] key_arn
3318
3325
  # Amazon Resource Name (ARN) or alias of the KMS key. The KMS key must
@@ -3335,21 +3342,6 @@ module Aws::EKS
3335
3342
  include Aws::Structure
3336
3343
  end
3337
3344
 
3338
- # @note When making an API call, you may pass RegisterClusterRequest
3339
- # data as a hash:
3340
- #
3341
- # {
3342
- # name: "ClusterName", # required
3343
- # connector_config: { # required
3344
- # role_arn: "String", # required
3345
- # provider: "EKS_ANYWHERE", # required, accepts EKS_ANYWHERE, ANTHOS, GKE, AKS, OPENSHIFT, TANZU, RANCHER, EC2, OTHER
3346
- # },
3347
- # client_request_token: "String",
3348
- # tags: {
3349
- # "TagKey" => "TagValue",
3350
- # },
3351
- # }
3352
- #
3353
3345
  # @!attribute [rw] name
3354
3346
  # Define a unique name for this cluster for your Region.
3355
3347
  # @return [String]
@@ -3400,32 +3392,29 @@ module Aws::EKS
3400
3392
  # An object representing the remote access configuration for the managed
3401
3393
  # node group.
3402
3394
  #
3403
- # @note When making an API call, you may pass RemoteAccessConfig
3404
- # data as a hash:
3405
- #
3406
- # {
3407
- # ec2_ssh_key: "String",
3408
- # source_security_groups: ["String"],
3409
- # }
3410
- #
3411
3395
  # @!attribute [rw] ec2_ssh_key
3412
- # The Amazon EC2 SSH key that provides access for SSH communication
3413
- # with the nodes in the managed node group. For more information, see
3414
- # [Amazon EC2 key pairs and Linux instances][1] in the *Amazon Elastic
3415
- # Compute Cloud User Guide for Linux Instances*.
3396
+ # The Amazon EC2 SSH key name that provides access for SSH
3397
+ # communication with the nodes in the managed node group. For more
3398
+ # information, see [Amazon EC2 key pairs and Linux instances][1] in
3399
+ # the *Amazon Elastic Compute Cloud User Guide for Linux Instances*.
3400
+ # For Windows, an Amazon EC2 SSH key is used to obtain the RDP
3401
+ # password. For more information, see [Amazon EC2 key pairs and
3402
+ # Windows instances][2] in the *Amazon Elastic Compute Cloud User
3403
+ # Guide for Windows Instances*.
3416
3404
  #
3417
3405
  #
3418
3406
  #
3419
3407
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html
3408
+ # [2]: https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-key-pairs.html
3420
3409
  # @return [String]
3421
3410
  #
3422
3411
  # @!attribute [rw] source_security_groups
3423
- # The security groups that are allowed SSH access (port 22) to the
3424
- # nodes. If you specify an Amazon EC2 SSH key but do not specify a
3425
- # source security group when you create a managed node group, then
3426
- # port 22 on the nodes is opened to the internet (0.0.0.0/0). For more
3427
- # information, see [Security Groups for Your VPC][1] in the *Amazon
3428
- # Virtual Private Cloud User Guide*.
3412
+ # The security group IDs that are allowed SSH access (port 22) to the
3413
+ # nodes. For Windows, the port is 3389. If you specify an Amazon EC2
3414
+ # SSH key but don't specify a source security group when you create a
3415
+ # managed node group, then the port on the nodes is opened to the
3416
+ # internet (`0.0.0.0/0`). For more information, see [Security Groups
3417
+ # for Your VPC][1] in the *Amazon Virtual Private Cloud User Guide*.
3429
3418
  #
3430
3419
  #
3431
3420
  #
@@ -3526,7 +3515,7 @@ module Aws::EKS
3526
3515
  include Aws::Structure
3527
3516
  end
3528
3517
 
3529
- # Required resources (such as Service Linked Roles) were created and are
3518
+ # Required resources (such as service-linked roles) were created and are
3530
3519
  # still propagating. Retry later.
3531
3520
  #
3532
3521
  # @!attribute [rw] message
@@ -3580,16 +3569,6 @@ module Aws::EKS
3580
3569
  include Aws::Structure
3581
3570
  end
3582
3571
 
3583
- # @note When making an API call, you may pass TagResourceRequest
3584
- # data as a hash:
3585
- #
3586
- # {
3587
- # resource_arn: "String", # required
3588
- # tags: { # required
3589
- # "TagKey" => "TagValue",
3590
- # },
3591
- # }
3592
- #
3593
3572
  # @!attribute [rw] resource_arn
3594
3573
  # The Amazon Resource Name (ARN) of the resource to which to add tags.
3595
3574
  # Currently, the supported resources are Amazon EKS clusters and
@@ -3614,16 +3593,12 @@ module Aws::EKS
3614
3593
  #
3615
3594
  class TagResourceResponse < Aws::EmptyStructure; end
3616
3595
 
3617
- # A property that allows a node to repel a set of pods.
3596
+ # A property that allows a node to repel a set of pods. For more
3597
+ # information, see [Node taints on managed node groups][1].
3618
3598
  #
3619
- # @note When making an API call, you may pass Taint
3620
- # data as a hash:
3621
3599
  #
3622
- # {
3623
- # key: "taintKey",
3624
- # value: "taintValue",
3625
- # effect: "NO_SCHEDULE", # accepts NO_SCHEDULE, NO_EXECUTE, PREFER_NO_SCHEDULE
3626
- # }
3600
+ #
3601
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html
3627
3602
  #
3628
3603
  # @!attribute [rw] key
3629
3604
  # The key of the taint.
@@ -3679,14 +3654,6 @@ module Aws::EKS
3679
3654
  include Aws::Structure
3680
3655
  end
3681
3656
 
3682
- # @note When making an API call, you may pass UntagResourceRequest
3683
- # data as a hash:
3684
- #
3685
- # {
3686
- # resource_arn: "String", # required
3687
- # tag_keys: ["TagKey"], # required
3688
- # }
3689
- #
3690
3657
  # @!attribute [rw] resource_arn
3691
3658
  # The Amazon Resource Name (ARN) of the resource from which to delete
3692
3659
  # tags. Currently, the supported resources are Amazon EKS clusters and
@@ -3750,18 +3717,6 @@ module Aws::EKS
3750
3717
  include Aws::Structure
3751
3718
  end
3752
3719
 
3753
- # @note When making an API call, you may pass UpdateAddonRequest
3754
- # data as a hash:
3755
- #
3756
- # {
3757
- # cluster_name: "ClusterName", # required
3758
- # addon_name: "String", # required
3759
- # addon_version: "String",
3760
- # service_account_role_arn: "RoleArn",
3761
- # resolve_conflicts: "OVERWRITE", # accepts OVERWRITE, NONE
3762
- # client_request_token: "String",
3763
- # }
3764
- #
3765
3720
  # @!attribute [rw] cluster_name
3766
3721
  # The name of the cluster.
3767
3722
  # @return [String]
@@ -3806,8 +3761,20 @@ module Aws::EKS
3806
3761
  # @return [String]
3807
3762
  #
3808
3763
  # @!attribute [rw] resolve_conflicts
3809
- # How to resolve parameter value conflicts when applying the new
3810
- # version of the add-on to the cluster.
3764
+ # How to resolve field value conflicts for an Amazon EKS add-on if
3765
+ # you've changed a value from the Amazon EKS default value. Conflicts
3766
+ # are handled based on the option you choose:
3767
+ #
3768
+ # * **None** – Amazon EKS doesn't change the value. The update might
3769
+ # fail.
3770
+ #
3771
+ # * **Overwrite** – Amazon EKS overwrites the changed value back to
3772
+ # the Amazon EKS default value.
3773
+ #
3774
+ # * **Preserve** – Amazon EKS preserves the value. If you choose this
3775
+ # option, we recommend that you test any field and value changes on
3776
+ # a non-production cluster before updating the add-on on your
3777
+ # production cluster.
3811
3778
  # @return [String]
3812
3779
  #
3813
3780
  # @!attribute [rw] client_request_token
@@ -3818,6 +3785,16 @@ module Aws::EKS
3818
3785
  # not need to pass this option.
3819
3786
  # @return [String]
3820
3787
  #
3788
+ # @!attribute [rw] configuration_values
3789
+ # The set of configuration values for the add-on that's created. The
3790
+ # values that you provide are validated against the schema in
3791
+ # [DescribeAddonConfiguration][1].
3792
+ #
3793
+ #
3794
+ #
3795
+ # [1]: https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonConfiguration.html
3796
+ # @return [String]
3797
+ #
3821
3798
  # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateAddonRequest AWS API Documentation
3822
3799
  #
3823
3800
  class UpdateAddonRequest < Struct.new(
@@ -3826,7 +3803,8 @@ module Aws::EKS
3826
3803
  :addon_version,
3827
3804
  :service_account_role_arn,
3828
3805
  :resolve_conflicts,
3829
- :client_request_token)
3806
+ :client_request_token,
3807
+ :configuration_values)
3830
3808
  SENSITIVE = []
3831
3809
  include Aws::Structure
3832
3810
  end
@@ -3843,29 +3821,6 @@ module Aws::EKS
3843
3821
  include Aws::Structure
3844
3822
  end
3845
3823
 
3846
- # @note When making an API call, you may pass UpdateClusterConfigRequest
3847
- # data as a hash:
3848
- #
3849
- # {
3850
- # name: "String", # required
3851
- # resources_vpc_config: {
3852
- # subnet_ids: ["String"],
3853
- # security_group_ids: ["String"],
3854
- # endpoint_public_access: false,
3855
- # endpoint_private_access: false,
3856
- # public_access_cidrs: ["String"],
3857
- # },
3858
- # logging: {
3859
- # cluster_logging: [
3860
- # {
3861
- # types: ["api"], # accepts api, audit, authenticator, controllerManager, scheduler
3862
- # enabled: false,
3863
- # },
3864
- # ],
3865
- # },
3866
- # client_request_token: "String",
3867
- # }
3868
- #
3869
3824
  # @!attribute [rw] name
3870
3825
  # The name of the Amazon EKS cluster to update.
3871
3826
  # @return [String]
@@ -3925,15 +3880,6 @@ module Aws::EKS
3925
3880
  include Aws::Structure
3926
3881
  end
3927
3882
 
3928
- # @note When making an API call, you may pass UpdateClusterVersionRequest
3929
- # data as a hash:
3930
- #
3931
- # {
3932
- # name: "String", # required
3933
- # version: "String", # required
3934
- # client_request_token: "String",
3935
- # }
3936
- #
3937
3883
  # @!attribute [rw] name
3938
3884
  # The name of the Amazon EKS cluster to update.
3939
3885
  # @return [String]
@@ -3975,16 +3921,6 @@ module Aws::EKS
3975
3921
  # An object representing a Kubernetes label change for a managed node
3976
3922
  # group.
3977
3923
  #
3978
- # @note When making an API call, you may pass UpdateLabelsPayload
3979
- # data as a hash:
3980
- #
3981
- # {
3982
- # add_or_update_labels: {
3983
- # "labelKey" => "labelValue",
3984
- # },
3985
- # remove_labels: ["String"],
3986
- # }
3987
- #
3988
3924
  # @!attribute [rw] add_or_update_labels
3989
3925
  # Kubernetes labels to be added or updated.
3990
3926
  # @return [Hash<String,String>]
@@ -4002,46 +3938,6 @@ module Aws::EKS
4002
3938
  include Aws::Structure
4003
3939
  end
4004
3940
 
4005
- # @note When making an API call, you may pass UpdateNodegroupConfigRequest
4006
- # data as a hash:
4007
- #
4008
- # {
4009
- # cluster_name: "String", # required
4010
- # nodegroup_name: "String", # required
4011
- # labels: {
4012
- # add_or_update_labels: {
4013
- # "labelKey" => "labelValue",
4014
- # },
4015
- # remove_labels: ["String"],
4016
- # },
4017
- # taints: {
4018
- # add_or_update_taints: [
4019
- # {
4020
- # key: "taintKey",
4021
- # value: "taintValue",
4022
- # effect: "NO_SCHEDULE", # accepts NO_SCHEDULE, NO_EXECUTE, PREFER_NO_SCHEDULE
4023
- # },
4024
- # ],
4025
- # remove_taints: [
4026
- # {
4027
- # key: "taintKey",
4028
- # value: "taintValue",
4029
- # effect: "NO_SCHEDULE", # accepts NO_SCHEDULE, NO_EXECUTE, PREFER_NO_SCHEDULE
4030
- # },
4031
- # ],
4032
- # },
4033
- # scaling_config: {
4034
- # min_size: 1,
4035
- # max_size: 1,
4036
- # desired_size: 1,
4037
- # },
4038
- # update_config: {
4039
- # max_unavailable: 1,
4040
- # max_unavailable_percentage: 1,
4041
- # },
4042
- # client_request_token: "String",
4043
- # }
4044
- #
4045
3941
  # @!attribute [rw] cluster_name
4046
3942
  # The name of the Amazon EKS cluster that the managed node group
4047
3943
  # resides in.
@@ -4058,7 +3954,12 @@ module Aws::EKS
4058
3954
  #
4059
3955
  # @!attribute [rw] taints
4060
3956
  # The Kubernetes taints to be applied to the nodes in the node group
4061
- # after the update.
3957
+ # after the update. For more information, see [Node taints on managed
3958
+ # node groups][1].
3959
+ #
3960
+ #
3961
+ #
3962
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html
4062
3963
  # @return [Types::UpdateTaintsPayload]
4063
3964
  #
4064
3965
  # @!attribute [rw] scaling_config
@@ -4104,23 +4005,6 @@ module Aws::EKS
4104
4005
  include Aws::Structure
4105
4006
  end
4106
4007
 
4107
- # @note When making an API call, you may pass UpdateNodegroupVersionRequest
4108
- # data as a hash:
4109
- #
4110
- # {
4111
- # cluster_name: "String", # required
4112
- # nodegroup_name: "String", # required
4113
- # version: "String",
4114
- # release_version: "String",
4115
- # launch_template: {
4116
- # name: "String",
4117
- # version: "String",
4118
- # id: "String",
4119
- # },
4120
- # force: false,
4121
- # client_request_token: "String",
4122
- # }
4123
- #
4124
4008
  # @!attribute [rw] cluster_name
4125
4009
  # The name of the Amazon EKS cluster that is associated with the
4126
4010
  # managed node group to update.
@@ -4138,8 +4022,8 @@ module Aws::EKS
4138
4022
  # version. If you specify `launchTemplate`, and your launch template
4139
4023
  # uses a custom AMI, then don't specify `version`, or the node group
4140
4024
  # update will fail. For more information about using launch templates
4141
- # with Amazon EKS, see [Launch template support][1] in the Amazon EKS
4142
- # User Guide.
4025
+ # with Amazon EKS, see [Launch template support][1] in the *Amazon EKS
4026
+ # User Guide*.
4143
4027
  #
4144
4028
  #
4145
4029
  #
@@ -4149,18 +4033,24 @@ module Aws::EKS
4149
4033
  # @!attribute [rw] release_version
4150
4034
  # The AMI version of the Amazon EKS optimized AMI to use for the
4151
4035
  # update. By default, the latest available AMI version for the node
4152
- # group's Kubernetes version is used. For more information, see
4153
- # [Amazon EKS optimized Amazon Linux 2 AMI versions ][1] in the
4154
- # *Amazon EKS User Guide*. If you specify `launchTemplate`, and your
4155
- # launch template uses a custom AMI, then don't specify
4156
- # `releaseVersion`, or the node group update will fail. For more
4157
- # information about using launch templates with Amazon EKS, see
4158
- # [Launch template support][2] in the Amazon EKS User Guide.
4036
+ # group's Kubernetes version is used. For information about Linux
4037
+ # versions, see [Amazon EKS optimized Amazon Linux AMI versions][1] in
4038
+ # the *Amazon EKS User Guide*. Amazon EKS managed node groups support
4039
+ # the November 2022 and later releases of the Windows AMIs. For
4040
+ # information about Windows versions, see [Amazon EKS optimized
4041
+ # Windows AMI versions][2] in the *Amazon EKS User Guide*.
4042
+ #
4043
+ # If you specify `launchTemplate`, and your launch template uses a
4044
+ # custom AMI, then don't specify `releaseVersion`, or the node group
4045
+ # update will fail. For more information about using launch templates
4046
+ # with Amazon EKS, see [Launch template support][3] in the *Amazon EKS
4047
+ # User Guide*.
4159
4048
  #
4160
4049
  #
4161
4050
  #
4162
4051
  # [1]: https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html
4163
- # [2]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
4052
+ # [2]: https://docs.aws.amazon.com/eks/latest/userguide/eks-ami-versions-windows.html
4053
+ # [3]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
4164
4054
  # @return [String]
4165
4055
  #
4166
4056
  # @!attribute [rw] launch_template
@@ -4232,33 +4122,18 @@ module Aws::EKS
4232
4122
  end
4233
4123
 
4234
4124
  # An object representing the details of an update to a taints payload.
4125
+ # For more information, see [Node taints on managed node groups][1].
4126
+ #
4235
4127
  #
4236
- # @note When making an API call, you may pass UpdateTaintsPayload
4237
- # data as a hash:
4238
- #
4239
- # {
4240
- # add_or_update_taints: [
4241
- # {
4242
- # key: "taintKey",
4243
- # value: "taintValue",
4244
- # effect: "NO_SCHEDULE", # accepts NO_SCHEDULE, NO_EXECUTE, PREFER_NO_SCHEDULE
4245
- # },
4246
- # ],
4247
- # remove_taints: [
4248
- # {
4249
- # key: "taintKey",
4250
- # value: "taintValue",
4251
- # effect: "NO_SCHEDULE", # accepts NO_SCHEDULE, NO_EXECUTE, PREFER_NO_SCHEDULE
4252
- # },
4253
- # ],
4254
- # }
4128
+ #
4129
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html
4255
4130
  #
4256
4131
  # @!attribute [rw] add_or_update_taints
4257
4132
  # Kubernetes taints to be added or updated.
4258
4133
  # @return [Array<Types::Taint>]
4259
4134
  #
4260
4135
  # @!attribute [rw] remove_taints
4261
- # Kubernetes taints to be removed.
4136
+ # Kubernetes taints to remove.
4262
4137
  # @return [Array<Types::Taint>]
4263
4138
  #
4264
4139
  # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateTaintsPayload AWS API Documentation
@@ -4273,17 +4148,6 @@ module Aws::EKS
4273
4148
  # An object representing the VPC configuration to use for an Amazon EKS
4274
4149
  # cluster.
4275
4150
  #
4276
- # @note When making an API call, you may pass VpcConfigRequest
4277
- # data as a hash:
4278
- #
4279
- # {
4280
- # subnet_ids: ["String"],
4281
- # security_group_ids: ["String"],
4282
- # endpoint_public_access: false,
4283
- # endpoint_private_access: false,
4284
- # public_access_cidrs: ["String"],
4285
- # }
4286
- #
4287
4151
  # @!attribute [rw] subnet_ids
4288
4152
  # Specify subnets for your Amazon EKS nodes. Amazon EKS creates
4289
4153
  # cross-account elastic network interfaces in these subnets to allow
@@ -4296,14 +4160,9 @@ module Aws::EKS
4296
4160
  # communication between your nodes and the Kubernetes control plane.
4297
4161
  # If you don't specify any security groups, then familiarize yourself
4298
4162
  # with the difference between Amazon EKS defaults for clusters
4299
- # deployed with Kubernetes:
4300
- #
4301
- # * 1\.14 Amazon EKS platform version `eks.2` and earlier
4302
- #
4303
- # * 1\.14 Amazon EKS platform version `eks.3` and later
4304
- #
4305
- # For more information, see [Amazon EKS security group
4306
- # considerations][1] in the <i> <i>Amazon EKS User Guide</i> </i>.
4163
+ # deployed with Kubernetes. For more information, see [Amazon EKS
4164
+ # security group considerations][1] in the <i> <i>Amazon EKS User
4165
+ # Guide</i> </i>.
4307
4166
  #
4308
4167
  #
4309
4168
  #