aws-sdk-eks 1.44.0 → 1.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 849696b1e9413006ad5beb42b6604035413415d25d1f12fec76573ca4bdef7d2
4
- data.tar.gz: a1e2a182b26d0f1cdee95ab08be94840c3f07a7fb5c0f771fef51d57bb6ce066
3
+ metadata.gz: f7d48be5a76058f9fc98350157cf4d8c6b32f457e71c52b32f5be1962af6179f
4
+ data.tar.gz: 41f0a9c6843e3a2eadc14e9b1be2799d838c7dae5d7a3d10a27b6ca2be7ea7d2
5
5
  SHA512:
6
- metadata.gz: 47561f2b89fdafb2d393e02042c7b13006d32005e6c2b47b0aca29478686e3e77a905f50cd19c442b7a309ee99f11dd2ac166f5b752fb4116371b10b01359fe3
7
- data.tar.gz: b71d69eb6d3b2fcd3ec4f6bc4726c7dcca2567f075e638b17fa3c896fb5486f8e9e758cc70841f39e8c632af66e460b0e8f3dba4cbec017742b1c2a2bf73c5e3
6
+ metadata.gz: adb52da0c664a04a2f5a9b81293cd710a5946a509312dd1cd3221088d8a60ffbb371c6f03306d7f7f421830474e1636f4e62f80814709f71936b78ccb5ace300
7
+ data.tar.gz: 64868c297e18ab249e784117f2c6c62ff524f8b86b45d0b753b2b3128d0cb49d0f6a0bce6c10165cfbb02fe3509b36c5791e0f5a06bf20587276f90183e03d46
data/lib/aws-sdk-eks.rb CHANGED
@@ -29,7 +29,7 @@ require_relative 'aws-sdk-eks/customizations'
29
29
  # structure.
30
30
  #
31
31
  # eks = Aws::EKS::Client.new
32
- # resp = eks.create_cluster(params)
32
+ # resp = eks.associate_encryption_config(params)
33
33
  #
34
34
  # See {Client} for more information.
35
35
  #
@@ -49,6 +49,6 @@ require_relative 'aws-sdk-eks/customizations'
49
49
  # @!group service
50
50
  module Aws::EKS
51
51
 
52
- GEM_VERSION = '1.44.0'
52
+ GEM_VERSION = '1.49.0'
53
53
 
54
54
  end
@@ -327,6 +327,265 @@ module Aws::EKS
327
327
 
328
328
  # @!group API Operations
329
329
 
330
+ # Associate encryption configuration to an existing cluster.
331
+ #
332
+ # You can use this API to enable encryption on existing clusters which
333
+ # do not have encryption already enabled. This allows you to implement a
334
+ # defense-in-depth security strategy without migrating applications to
335
+ # new EKS clusters.
336
+ #
337
+ # @option params [required, String] :cluster_name
338
+ # The name of the cluster that you are associating with encryption
339
+ # configuration.
340
+ #
341
+ # @option params [required, Array<Types::EncryptionConfig>] :encryption_config
342
+ # The configuration you are using for encryption.
343
+ #
344
+ # @option params [String] :client_request_token
345
+ # The client request token you are using with the encryption
346
+ # configuration.
347
+ #
348
+ # **A suitable default value is auto-generated.** You should normally
349
+ # not need to pass this option.**
350
+ #
351
+ # @return [Types::AssociateEncryptionConfigResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
352
+ #
353
+ # * {Types::AssociateEncryptionConfigResponse#update #update} => Types::Update
354
+ #
355
+ # @example Request syntax with placeholder values
356
+ #
357
+ # resp = client.associate_encryption_config({
358
+ # cluster_name: "String", # required
359
+ # encryption_config: [ # required
360
+ # {
361
+ # resources: ["String"],
362
+ # provider: {
363
+ # key_arn: "String",
364
+ # },
365
+ # },
366
+ # ],
367
+ # client_request_token: "String",
368
+ # })
369
+ #
370
+ # @example Response structure
371
+ #
372
+ # resp.update.id #=> String
373
+ # resp.update.status #=> String, one of "InProgress", "Failed", "Cancelled", "Successful"
374
+ # resp.update.type #=> String, one of "VersionUpdate", "EndpointAccessUpdate", "LoggingUpdate", "ConfigUpdate", "AssociateIdentityProviderConfig", "DisassociateIdentityProviderConfig", "AssociateEncryptionConfig", "AddonUpdate"
375
+ # resp.update.params #=> Array
376
+ # resp.update.params[0].type #=> String, one of "Version", "PlatformVersion", "EndpointPrivateAccess", "EndpointPublicAccess", "ClusterLogging", "DesiredSize", "LabelsToAdd", "LabelsToRemove", "MaxSize", "MinSize", "ReleaseVersion", "PublicAccessCidrs", "IdentityProviderConfig", "EncryptionConfig", "AddonVersion", "ServiceAccountRoleArn", "ResolveConflicts"
377
+ # resp.update.params[0].value #=> String
378
+ # resp.update.created_at #=> Time
379
+ # resp.update.errors #=> Array
380
+ # resp.update.errors[0].error_code #=> String, one of "SubnetNotFound", "SecurityGroupNotFound", "EniLimitReached", "IpNotAvailable", "AccessDenied", "OperationNotPermitted", "VpcIdNotFound", "Unknown", "NodeCreationFailure", "PodEvictionFailure", "InsufficientFreeAddresses", "ClusterUnreachable", "InsufficientNumberOfReplicas", "ConfigurationConflict"
381
+ # resp.update.errors[0].error_message #=> String
382
+ # resp.update.errors[0].resource_ids #=> Array
383
+ # resp.update.errors[0].resource_ids[0] #=> String
384
+ #
385
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/AssociateEncryptionConfig AWS API Documentation
386
+ #
387
+ # @overload associate_encryption_config(params = {})
388
+ # @param [Hash] params ({})
389
+ def associate_encryption_config(params = {}, options = {})
390
+ req = build_request(:associate_encryption_config, params)
391
+ req.send_request(options)
392
+ end
393
+
394
+ # Associate an identity provider configuration to a cluster.
395
+ #
396
+ # If you want to authenticate identities using an identity provider, you
397
+ # can create an identity provider configuration and associate it to your
398
+ # cluster. After configuring authentication to your cluster you can
399
+ # create Kubernetes `roles` and `clusterroles` to assign permissions to
400
+ # the roles, and then bind the roles to the identities using Kubernetes
401
+ # `rolebindings` and `clusterrolebindings`. For more information see
402
+ # [Using RBAC Authorization][1] in the Kubernetes documentation.
403
+ #
404
+ #
405
+ #
406
+ # [1]: https://kubernetes.io/docs/reference/access-authn-authz/rbac/
407
+ #
408
+ # @option params [required, String] :cluster_name
409
+ # The name of the cluster to associate the configuration to.
410
+ #
411
+ # @option params [required, Types::OidcIdentityProviderConfigRequest] :oidc
412
+ # An object that represents an OpenID Connect (OIDC) identity provider
413
+ # configuration.
414
+ #
415
+ # @option params [Hash<String,String>] :tags
416
+ # The metadata to apply to the configuration to assist with
417
+ # categorization and organization. Each tag consists of a key and an
418
+ # optional value, both of which you define.
419
+ #
420
+ # @option params [String] :client_request_token
421
+ # Unique, case-sensitive identifier that you provide to ensure the
422
+ # idempotency of the request.
423
+ #
424
+ # **A suitable default value is auto-generated.** You should normally
425
+ # not need to pass this option.**
426
+ #
427
+ # @return [Types::AssociateIdentityProviderConfigResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
428
+ #
429
+ # * {Types::AssociateIdentityProviderConfigResponse#update #update} => Types::Update
430
+ # * {Types::AssociateIdentityProviderConfigResponse#tags #tags} => Hash&lt;String,String&gt;
431
+ #
432
+ # @example Request syntax with placeholder values
433
+ #
434
+ # resp = client.associate_identity_provider_config({
435
+ # cluster_name: "String", # required
436
+ # oidc: { # required
437
+ # identity_provider_config_name: "String", # required
438
+ # issuer_url: "String", # required
439
+ # client_id: "String", # required
440
+ # username_claim: "String",
441
+ # username_prefix: "String",
442
+ # groups_claim: "String",
443
+ # groups_prefix: "String",
444
+ # required_claims: {
445
+ # "requiredClaimsKey" => "requiredClaimsValue",
446
+ # },
447
+ # },
448
+ # tags: {
449
+ # "TagKey" => "TagValue",
450
+ # },
451
+ # client_request_token: "String",
452
+ # })
453
+ #
454
+ # @example Response structure
455
+ #
456
+ # resp.update.id #=> String
457
+ # resp.update.status #=> String, one of "InProgress", "Failed", "Cancelled", "Successful"
458
+ # resp.update.type #=> String, one of "VersionUpdate", "EndpointAccessUpdate", "LoggingUpdate", "ConfigUpdate", "AssociateIdentityProviderConfig", "DisassociateIdentityProviderConfig", "AssociateEncryptionConfig", "AddonUpdate"
459
+ # resp.update.params #=> Array
460
+ # resp.update.params[0].type #=> String, one of "Version", "PlatformVersion", "EndpointPrivateAccess", "EndpointPublicAccess", "ClusterLogging", "DesiredSize", "LabelsToAdd", "LabelsToRemove", "MaxSize", "MinSize", "ReleaseVersion", "PublicAccessCidrs", "IdentityProviderConfig", "EncryptionConfig", "AddonVersion", "ServiceAccountRoleArn", "ResolveConflicts"
461
+ # resp.update.params[0].value #=> String
462
+ # resp.update.created_at #=> Time
463
+ # resp.update.errors #=> Array
464
+ # resp.update.errors[0].error_code #=> String, one of "SubnetNotFound", "SecurityGroupNotFound", "EniLimitReached", "IpNotAvailable", "AccessDenied", "OperationNotPermitted", "VpcIdNotFound", "Unknown", "NodeCreationFailure", "PodEvictionFailure", "InsufficientFreeAddresses", "ClusterUnreachable", "InsufficientNumberOfReplicas", "ConfigurationConflict"
465
+ # resp.update.errors[0].error_message #=> String
466
+ # resp.update.errors[0].resource_ids #=> Array
467
+ # resp.update.errors[0].resource_ids[0] #=> String
468
+ # resp.tags #=> Hash
469
+ # resp.tags["TagKey"] #=> String
470
+ #
471
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/AssociateIdentityProviderConfig AWS API Documentation
472
+ #
473
+ # @overload associate_identity_provider_config(params = {})
474
+ # @param [Hash] params ({})
475
+ def associate_identity_provider_config(params = {}, options = {})
476
+ req = build_request(:associate_identity_provider_config, params)
477
+ req.send_request(options)
478
+ end
479
+
480
+ # Creates an Amazon EKS add-on.
481
+ #
482
+ # Amazon EKS add-ons help to automate the provisioning and lifecycle
483
+ # management of common operational software for Amazon EKS clusters.
484
+ # Amazon EKS add-ons can only be used with Amazon EKS clusters running
485
+ # version 1.18 with platform version `eks.3` or later because add-ons
486
+ # rely on the Server-side Apply Kubernetes feature, which is only
487
+ # available in Kubernetes 1.18 and later.
488
+ #
489
+ # @option params [required, String] :cluster_name
490
+ # The name of the cluster to create the add-on for.
491
+ #
492
+ # @option params [required, String] :addon_name
493
+ # The name of the add-on. The name must match one of the names returned
494
+ # by [ `ListAddons` ][1].
495
+ #
496
+ #
497
+ #
498
+ # [1]: https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html
499
+ #
500
+ # @option params [String] :addon_version
501
+ # The version of the add-on. The version must match one of the versions
502
+ # returned by [ `DescribeAddonVersions` ][1].
503
+ #
504
+ #
505
+ #
506
+ # [1]: https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html
507
+ #
508
+ # @option params [String] :service_account_role_arn
509
+ # The Amazon Resource Name (ARN) of an existing IAM role to bind to the
510
+ # add-on's service account. The role must be assigned the IAM
511
+ # permissions required by the add-on. If you don't specify an existing
512
+ # IAM role, then the add-on uses the permissions assigned to the node
513
+ # IAM role. For more information, see [Amazon EKS node IAM role][1] in
514
+ # the *Amazon EKS User Guide*.
515
+ #
516
+ # <note markdown="1"> To specify an existing IAM role, you must have an IAM OpenID Connect
517
+ # (OIDC) provider created for your cluster. For more information, see
518
+ # [Enabling IAM roles for service accounts on your cluster][2] in the
519
+ # *Amazon EKS User Guide*.
520
+ #
521
+ # </note>
522
+ #
523
+ #
524
+ #
525
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html
526
+ # [2]: https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html
527
+ #
528
+ # @option params [String] :resolve_conflicts
529
+ # How to resolve parameter value conflicts when migrating an existing
530
+ # add-on to an Amazon EKS add-on.
531
+ #
532
+ # @option params [String] :client_request_token
533
+ # A unique, case-sensitive identifier that you provide to ensure the
534
+ # idempotency of the request.
535
+ #
536
+ # **A suitable default value is auto-generated.** You should normally
537
+ # not need to pass this option.**
538
+ #
539
+ # @option params [Hash<String,String>] :tags
540
+ # The metadata to apply to the cluster to assist with categorization and
541
+ # organization. Each tag consists of a key and an optional value, both
542
+ # of which you define.
543
+ #
544
+ # @return [Types::CreateAddonResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
545
+ #
546
+ # * {Types::CreateAddonResponse#addon #addon} => Types::Addon
547
+ #
548
+ # @example Request syntax with placeholder values
549
+ #
550
+ # resp = client.create_addon({
551
+ # cluster_name: "ClusterName", # required
552
+ # addon_name: "String", # required
553
+ # addon_version: "String",
554
+ # service_account_role_arn: "RoleArn",
555
+ # resolve_conflicts: "OVERWRITE", # accepts OVERWRITE, NONE
556
+ # client_request_token: "String",
557
+ # tags: {
558
+ # "TagKey" => "TagValue",
559
+ # },
560
+ # })
561
+ #
562
+ # @example Response structure
563
+ #
564
+ # resp.addon.addon_name #=> String
565
+ # resp.addon.cluster_name #=> String
566
+ # resp.addon.status #=> String, one of "CREATING", "ACTIVE", "CREATE_FAILED", "UPDATING", "DELETING", "DELETE_FAILED", "DEGRADED"
567
+ # resp.addon.addon_version #=> String
568
+ # resp.addon.health.issues #=> Array
569
+ # resp.addon.health.issues[0].code #=> String, one of "AccessDenied", "InternalFailure", "ClusterUnreachable", "InsufficientNumberOfReplicas", "ConfigurationConflict"
570
+ # resp.addon.health.issues[0].message #=> String
571
+ # resp.addon.health.issues[0].resource_ids #=> Array
572
+ # resp.addon.health.issues[0].resource_ids[0] #=> String
573
+ # resp.addon.addon_arn #=> String
574
+ # resp.addon.created_at #=> Time
575
+ # resp.addon.modified_at #=> Time
576
+ # resp.addon.service_account_role_arn #=> String
577
+ # resp.addon.tags #=> Hash
578
+ # resp.addon.tags["TagKey"] #=> String
579
+ #
580
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateAddon AWS API Documentation
581
+ #
582
+ # @overload create_addon(params = {})
583
+ # @param [Hash] params ({})
584
+ def create_addon(params = {}, options = {})
585
+ req = build_request(:create_addon, params)
586
+ req.send_request(options)
587
+ end
588
+
330
589
  # Creates an Amazon EKS control plane.
331
590
  #
332
591
  # The Amazon EKS control plane consists of control plane instances that
@@ -340,46 +599,23 @@ module Aws::EKS
340
599
  # Zones and fronted by an Elastic Load Balancing Network Load Balancer.
341
600
  # Amazon EKS also provisions elastic network interfaces in your VPC
342
601
  # subnets to provide connectivity from the control plane instances to
343
- # the worker nodes (for example, to support `kubectl exec`, `logs`, and
344
- # `proxy` data flows).
602
+ # the nodes (for example, to support `kubectl exec`, `logs`, and `proxy`
603
+ # data flows).
345
604
  #
346
- # Amazon EKS worker nodes run in your AWS account and connect to your
605
+ # Amazon EKS nodes run in your AWS account and connect to your
347
606
  # cluster's control plane via the Kubernetes API server endpoint and a
348
607
  # certificate file that is created for your cluster.
349
608
  #
350
- # You can use the `endpointPublicAccess` and `endpointPrivateAccess`
351
- # parameters to enable or disable public and private access to your
352
- # cluster's Kubernetes API server endpoint. By default, public access
353
- # is enabled, and private access is disabled. For more information, see
354
- # [Amazon EKS Cluster Endpoint Access Control][1] in the <i> <i>Amazon
355
- # EKS User Guide</i> </i>.
356
- #
357
- # You can use the `logging` parameter to enable or disable exporting the
358
- # Kubernetes control plane logs for your cluster to CloudWatch Logs. By
359
- # default, cluster control plane logs aren't exported to CloudWatch
360
- # Logs. For more information, see [Amazon EKS Cluster Control Plane
361
- # Logs][2] in the <i> <i>Amazon EKS User Guide</i> </i>.
362
- #
363
- # <note markdown="1"> CloudWatch Logs ingestion, archive storage, and data scanning rates
364
- # apply to exported control plane logs. For more information, see
365
- # [Amazon CloudWatch Pricing][3].
366
- #
367
- # </note>
609
+ # Cluster creation typically takes several minutes. After you create an
610
+ # Amazon EKS cluster, you must configure your Kubernetes tooling to
611
+ # communicate with the API server and launch nodes into your cluster.
612
+ # For more information, see [Managing Cluster Authentication][1] and
613
+ # [Launching Amazon EKS nodes][2] in the *Amazon EKS User Guide*.
368
614
  #
369
- # Cluster creation typically takes between 10 and 15 minutes. After you
370
- # create an Amazon EKS cluster, you must configure your Kubernetes
371
- # tooling to communicate with the API server and launch worker nodes
372
- # into your cluster. For more information, see [Managing Cluster
373
- # Authentication][4] and [Launching Amazon EKS Worker Nodes][5] in the
374
- # *Amazon EKS User Guide*.
375
615
  #
376
616
  #
377
- #
378
- # [1]: https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html
379
- # [2]: https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html
380
- # [3]: http://aws.amazon.com/cloudwatch/pricing/
381
- # [4]: https://docs.aws.amazon.com/eks/latest/userguide/managing-auth.html
382
- # [5]: https://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html
617
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/managing-auth.html
618
+ # [2]: https://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html
383
619
  #
384
620
  # @option params [required, String] :name
385
621
  # The unique name to give to your cluster.
@@ -695,8 +931,8 @@ module Aws::EKS
695
931
  req.send_request(options)
696
932
  end
697
933
 
698
- # Creates a managed worker node group for an Amazon EKS cluster. You can
699
- # only create a node group for your cluster that is equal to the current
934
+ # Creates a managed node group for an Amazon EKS cluster. You can only
935
+ # create a node group for your cluster that is equal to the current
700
936
  # Kubernetes version for the cluster. All node groups are created with
701
937
  # the latest AMI release version for the respective minor Kubernetes
702
938
  # version of the cluster, unless you deploy a custom AMI using a launch
@@ -705,9 +941,9 @@ module Aws::EKS
705
941
  #
706
942
  # An Amazon EKS managed node group is an Amazon EC2 Auto Scaling group
707
943
  # and associated Amazon EC2 instances that are managed by AWS for an
708
- # Amazon EKS cluster. Each node group uses a version of the Amazon
709
- # EKS-optimized Amazon Linux 2 AMI. For more information, see [Managed
710
- # Node Groups][2] in the *Amazon EKS User Guide*.
944
+ # Amazon EKS cluster. Each node group uses a version of the Amazon EKS
945
+ # optimized Amazon Linux 2 AMI. For more information, see [Managed Node
946
+ # Groups][2] in the *Amazon EKS User Guide*.
711
947
  #
712
948
  #
713
949
  #
@@ -751,24 +987,30 @@ module Aws::EKS
751
987
  # [2]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
752
988
  #
753
989
  # @option params [Array<String>] :instance_types
754
- # The instance type to use for your node group. You can specify a single
755
- # instance type for a node group. The default value for `instanceTypes`
756
- # is `t3.medium`. If you choose a GPU instance type, be sure to specify
757
- # `AL2_x86_64_GPU` with the `amiType` parameter. If you specify
758
- # `launchTemplate`, then don't specify `instanceTypes`, or the node
759
- # group deployment will fail. For more information about using launch
760
- # templates with Amazon EKS, see [Launch template support][1] in the
761
- # Amazon EKS User Guide.
762
- #
763
- #
764
- #
765
- # [1]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
990
+ # Specify the instance types for a node group. If you specify a GPU
991
+ # instance type, be sure to specify `AL2_x86_64_GPU` with the `amiType`
992
+ # parameter. If you specify `launchTemplate`, then you can specify zero
993
+ # or one instance type in your launch template *or* you can specify 0-20
994
+ # instance types for `instanceTypes`. If however, you specify an
995
+ # instance type in your launch template *and* specify any
996
+ # `instanceTypes`, the node group deployment will fail. If you don't
997
+ # specify an instance type in a launch template or for `instanceTypes`,
998
+ # then `t3.medium` is used, by default. If you specify `Spot` for
999
+ # `capacityType`, then we recommend specifying multiple values for
1000
+ # `instanceTypes`. For more information, see [Managed node group
1001
+ # capacity types][1] and [Launch template support][2] in the *Amazon EKS
1002
+ # User Guide*.
1003
+ #
1004
+ #
1005
+ #
1006
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types
1007
+ # [2]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
766
1008
  #
767
1009
  # @option params [String] :ami_type
768
1010
  # The AMI type for your node group. GPU instance types should use the
769
1011
  # `AL2_x86_64_GPU` AMI type. Non-GPU instances should use the
770
1012
  # `AL2_x86_64` AMI type. Arm instances should use the `AL2_ARM_64` AMI
771
- # type. All types use the Amazon EKS-optimized Amazon Linux 2 AMI. If
1013
+ # type. All types use the Amazon EKS optimized Amazon Linux 2 AMI. If
772
1014
  # you specify `launchTemplate`, and your launch template uses a custom
773
1015
  # AMI, then don't specify `amiType`, or the node group deployment will
774
1016
  # fail. For more information about using launch templates with Amazon
@@ -792,16 +1034,16 @@ module Aws::EKS
792
1034
  # @option params [required, String] :node_role
793
1035
  # The Amazon Resource Name (ARN) of the IAM role to associate with your
794
1036
  # node group. The Amazon EKS worker node `kubelet` daemon makes calls to
795
- # AWS APIs on your behalf. Worker nodes receive permissions for these
796
- # API calls through an IAM instance profile and associated policies.
797
- # Before you can launch worker nodes and register them into a cluster,
798
- # you must create an IAM role for those worker nodes to use when they
799
- # are launched. For more information, see [Amazon EKS Worker Node IAM
800
- # Role][1] in the <i> <i>Amazon EKS User Guide</i> </i>. If you specify
801
- # `launchTemplate`, then don't specify [ `IamInstanceProfile` ][2] in
802
- # your launch template, or the node group deployment will fail. For more
803
- # information about using launch templates with Amazon EKS, see [Launch
804
- # template support][3] in the Amazon EKS User Guide.
1037
+ # AWS APIs on your behalf. Nodes receive permissions for these API calls
1038
+ # through an IAM instance profile and associated policies. Before you
1039
+ # can launch nodes and register them into a cluster, you must create an
1040
+ # IAM role for those nodes to use when they are launched. For more
1041
+ # information, see [Amazon EKS node IAM role][1] in the <i> <i>Amazon
1042
+ # EKS User Guide</i> </i>. If you specify `launchTemplate`, then don't
1043
+ # specify [ `IamInstanceProfile` ][2] in your launch template, or the
1044
+ # node group deployment will fail. For more information about using
1045
+ # launch templates with Amazon EKS, see [Launch template support][3] in
1046
+ # the Amazon EKS User Guide.
805
1047
  #
806
1048
  #
807
1049
  #
@@ -833,6 +1075,9 @@ module Aws::EKS
833
1075
  # `remoteAccess` and make sure that the launch template meets the
834
1076
  # requirements in `launchTemplateSpecification`.
835
1077
  #
1078
+ # @option params [String] :capacity_type
1079
+ # The capacity type for your node group.
1080
+ #
836
1081
  # @option params [String] :version
837
1082
  # The Kubernetes version to use for your managed nodes. By default, the
838
1083
  # Kubernetes version of the cluster is used, and this is the only
@@ -847,15 +1092,15 @@ module Aws::EKS
847
1092
  # [1]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
848
1093
  #
849
1094
  # @option params [String] :release_version
850
- # The AMI version of the Amazon EKS-optimized AMI to use with your node
1095
+ # The AMI version of the Amazon EKS optimized AMI to use with your node
851
1096
  # group. By default, the latest available AMI version for the node
852
1097
  # group's current Kubernetes version is used. For more information, see
853
- # [Amazon EKS-Optimized Linux AMI Versions][1] in the *Amazon EKS User
854
- # Guide*. If you specify `launchTemplate`, and your launch template uses
855
- # a custom AMI, then don't specify `releaseVersion`, or the node group
856
- # deployment will fail. For more information about using launch
857
- # templates with Amazon EKS, see [Launch template support][2] in the
858
- # Amazon EKS User Guide.
1098
+ # [Amazon EKS optimized Amazon Linux 2 AMI versions][1] in the *Amazon
1099
+ # EKS User Guide*. If you specify `launchTemplate`, and your launch
1100
+ # template uses a custom AMI, then don't specify `releaseVersion`, or
1101
+ # the node group deployment will fail. For more information about using
1102
+ # launch templates with Amazon EKS, see [Launch template support][2] in
1103
+ # the Amazon EKS User Guide.
859
1104
  #
860
1105
  #
861
1106
  #
@@ -897,6 +1142,7 @@ module Aws::EKS
897
1142
  # version: "String",
898
1143
  # id: "String",
899
1144
  # },
1145
+ # capacity_type: "ON_DEMAND", # accepts ON_DEMAND, SPOT
900
1146
  # version: "String",
901
1147
  # release_version: "String",
902
1148
  # })
@@ -911,6 +1157,7 @@ module Aws::EKS
911
1157
  # resp.nodegroup.created_at #=> Time
912
1158
  # resp.nodegroup.modified_at #=> Time
913
1159
  # resp.nodegroup.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "DEGRADED"
1160
+ # resp.nodegroup.capacity_type #=> String, one of "ON_DEMAND", "SPOT"
914
1161
  # resp.nodegroup.scaling_config.min_size #=> Integer
915
1162
  # resp.nodegroup.scaling_config.max_size #=> Integer
916
1163
  # resp.nodegroup.scaling_config.desired_size #=> Integer
@@ -930,7 +1177,7 @@ module Aws::EKS
930
1177
  # resp.nodegroup.resources.remote_access_security_group #=> String
931
1178
  # resp.nodegroup.disk_size #=> Integer
932
1179
  # resp.nodegroup.health.issues #=> Array
933
- # resp.nodegroup.health.issues[0].code #=> String, one of "AutoScalingGroupNotFound", "AutoScalingGroupInvalidConfiguration", "Ec2SecurityGroupNotFound", "Ec2SecurityGroupDeletionFailure", "Ec2LaunchTemplateNotFound", "Ec2LaunchTemplateVersionMismatch", "Ec2SubnetNotFound", "Ec2SubnetInvalidConfiguration", "IamInstanceProfileNotFound", "IamLimitExceeded", "IamNodeRoleNotFound", "NodeCreationFailure", "AsgInstanceLaunchFailures", "InstanceLimitExceeded", "InsufficientFreeAddresses", "AccessDenied", "InternalFailure"
1180
+ # resp.nodegroup.health.issues[0].code #=> String, one of "AutoScalingGroupNotFound", "AutoScalingGroupInvalidConfiguration", "Ec2SecurityGroupNotFound", "Ec2SecurityGroupDeletionFailure", "Ec2LaunchTemplateNotFound", "Ec2LaunchTemplateVersionMismatch", "Ec2SubnetNotFound", "Ec2SubnetInvalidConfiguration", "IamInstanceProfileNotFound", "IamLimitExceeded", "IamNodeRoleNotFound", "NodeCreationFailure", "AsgInstanceLaunchFailures", "InstanceLimitExceeded", "InsufficientFreeAddresses", "AccessDenied", "InternalFailure", "ClusterUnreachable"
934
1181
  # resp.nodegroup.health.issues[0].message #=> String
935
1182
  # resp.nodegroup.health.issues[0].resource_ids #=> Array
936
1183
  # resp.nodegroup.health.issues[0].resource_ids[0] #=> String
@@ -949,6 +1196,61 @@ module Aws::EKS
949
1196
  req.send_request(options)
950
1197
  end
951
1198
 
1199
+ # Delete an Amazon EKS add-on.
1200
+ #
1201
+ # When you remove the add-on, it will also be deleted from the cluster.
1202
+ # You can always manually start an add-on on the cluster using the
1203
+ # Kubernetes API.
1204
+ #
1205
+ # @option params [required, String] :cluster_name
1206
+ # The name of the cluster to delete the add-on from.
1207
+ #
1208
+ # @option params [required, String] :addon_name
1209
+ # The name of the add-on. The name must match one of the names returned
1210
+ # by [ `ListAddons` ][1].
1211
+ #
1212
+ #
1213
+ #
1214
+ # [1]: https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html
1215
+ #
1216
+ # @return [Types::DeleteAddonResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1217
+ #
1218
+ # * {Types::DeleteAddonResponse#addon #addon} => Types::Addon
1219
+ #
1220
+ # @example Request syntax with placeholder values
1221
+ #
1222
+ # resp = client.delete_addon({
1223
+ # cluster_name: "ClusterName", # required
1224
+ # addon_name: "String", # required
1225
+ # })
1226
+ #
1227
+ # @example Response structure
1228
+ #
1229
+ # resp.addon.addon_name #=> String
1230
+ # resp.addon.cluster_name #=> String
1231
+ # resp.addon.status #=> String, one of "CREATING", "ACTIVE", "CREATE_FAILED", "UPDATING", "DELETING", "DELETE_FAILED", "DEGRADED"
1232
+ # resp.addon.addon_version #=> String
1233
+ # resp.addon.health.issues #=> Array
1234
+ # resp.addon.health.issues[0].code #=> String, one of "AccessDenied", "InternalFailure", "ClusterUnreachable", "InsufficientNumberOfReplicas", "ConfigurationConflict"
1235
+ # resp.addon.health.issues[0].message #=> String
1236
+ # resp.addon.health.issues[0].resource_ids #=> Array
1237
+ # resp.addon.health.issues[0].resource_ids[0] #=> String
1238
+ # resp.addon.addon_arn #=> String
1239
+ # resp.addon.created_at #=> Time
1240
+ # resp.addon.modified_at #=> Time
1241
+ # resp.addon.service_account_role_arn #=> String
1242
+ # resp.addon.tags #=> Hash
1243
+ # resp.addon.tags["TagKey"] #=> String
1244
+ #
1245
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteAddon AWS API Documentation
1246
+ #
1247
+ # @overload delete_addon(params = {})
1248
+ # @param [Hash] params ({})
1249
+ def delete_addon(params = {}, options = {})
1250
+ req = build_request(:delete_addon, params)
1251
+ req.send_request(options)
1252
+ end
1253
+
952
1254
  # Deletes the Amazon EKS cluster control plane.
953
1255
  #
954
1256
  # If you have active services in your cluster that are associated with a
@@ -1122,6 +1424,7 @@ module Aws::EKS
1122
1424
  # resp.nodegroup.created_at #=> Time
1123
1425
  # resp.nodegroup.modified_at #=> Time
1124
1426
  # resp.nodegroup.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "DEGRADED"
1427
+ # resp.nodegroup.capacity_type #=> String, one of "ON_DEMAND", "SPOT"
1125
1428
  # resp.nodegroup.scaling_config.min_size #=> Integer
1126
1429
  # resp.nodegroup.scaling_config.max_size #=> Integer
1127
1430
  # resp.nodegroup.scaling_config.desired_size #=> Integer
@@ -1141,7 +1444,7 @@ module Aws::EKS
1141
1444
  # resp.nodegroup.resources.remote_access_security_group #=> String
1142
1445
  # resp.nodegroup.disk_size #=> Integer
1143
1446
  # resp.nodegroup.health.issues #=> Array
1144
- # resp.nodegroup.health.issues[0].code #=> String, one of "AutoScalingGroupNotFound", "AutoScalingGroupInvalidConfiguration", "Ec2SecurityGroupNotFound", "Ec2SecurityGroupDeletionFailure", "Ec2LaunchTemplateNotFound", "Ec2LaunchTemplateVersionMismatch", "Ec2SubnetNotFound", "Ec2SubnetInvalidConfiguration", "IamInstanceProfileNotFound", "IamLimitExceeded", "IamNodeRoleNotFound", "NodeCreationFailure", "AsgInstanceLaunchFailures", "InstanceLimitExceeded", "InsufficientFreeAddresses", "AccessDenied", "InternalFailure"
1447
+ # resp.nodegroup.health.issues[0].code #=> String, one of "AutoScalingGroupNotFound", "AutoScalingGroupInvalidConfiguration", "Ec2SecurityGroupNotFound", "Ec2SecurityGroupDeletionFailure", "Ec2LaunchTemplateNotFound", "Ec2LaunchTemplateVersionMismatch", "Ec2SubnetNotFound", "Ec2SubnetInvalidConfiguration", "IamInstanceProfileNotFound", "IamLimitExceeded", "IamNodeRoleNotFound", "NodeCreationFailure", "AsgInstanceLaunchFailures", "InstanceLimitExceeded", "InsufficientFreeAddresses", "AccessDenied", "InternalFailure", "ClusterUnreachable"
1145
1448
  # resp.nodegroup.health.issues[0].message #=> String
1146
1449
  # resp.nodegroup.health.issues[0].resource_ids #=> Array
1147
1450
  # resp.nodegroup.health.issues[0].resource_ids[0] #=> String
@@ -1160,6 +1463,133 @@ module Aws::EKS
1160
1463
  req.send_request(options)
1161
1464
  end
1162
1465
 
1466
+ # Describes an Amazon EKS add-on.
1467
+ #
1468
+ # @option params [required, String] :cluster_name
1469
+ # The name of the cluster.
1470
+ #
1471
+ # @option params [required, String] :addon_name
1472
+ # The name of the add-on. The name must match one of the names returned
1473
+ # by [ `ListAddons` ][1].
1474
+ #
1475
+ #
1476
+ #
1477
+ # [1]: https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html
1478
+ #
1479
+ # @return [Types::DescribeAddonResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1480
+ #
1481
+ # * {Types::DescribeAddonResponse#addon #addon} => Types::Addon
1482
+ #
1483
+ # @example Request syntax with placeholder values
1484
+ #
1485
+ # resp = client.describe_addon({
1486
+ # cluster_name: "ClusterName", # required
1487
+ # addon_name: "String", # required
1488
+ # })
1489
+ #
1490
+ # @example Response structure
1491
+ #
1492
+ # resp.addon.addon_name #=> String
1493
+ # resp.addon.cluster_name #=> String
1494
+ # resp.addon.status #=> String, one of "CREATING", "ACTIVE", "CREATE_FAILED", "UPDATING", "DELETING", "DELETE_FAILED", "DEGRADED"
1495
+ # resp.addon.addon_version #=> String
1496
+ # resp.addon.health.issues #=> Array
1497
+ # resp.addon.health.issues[0].code #=> String, one of "AccessDenied", "InternalFailure", "ClusterUnreachable", "InsufficientNumberOfReplicas", "ConfigurationConflict"
1498
+ # resp.addon.health.issues[0].message #=> String
1499
+ # resp.addon.health.issues[0].resource_ids #=> Array
1500
+ # resp.addon.health.issues[0].resource_ids[0] #=> String
1501
+ # resp.addon.addon_arn #=> String
1502
+ # resp.addon.created_at #=> Time
1503
+ # resp.addon.modified_at #=> Time
1504
+ # resp.addon.service_account_role_arn #=> String
1505
+ # resp.addon.tags #=> Hash
1506
+ # resp.addon.tags["TagKey"] #=> String
1507
+ #
1508
+ #
1509
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
1510
+ #
1511
+ # * addon_active
1512
+ # * addon_deleted
1513
+ #
1514
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeAddon AWS API Documentation
1515
+ #
1516
+ # @overload describe_addon(params = {})
1517
+ # @param [Hash] params ({})
1518
+ def describe_addon(params = {}, options = {})
1519
+ req = build_request(:describe_addon, params)
1520
+ req.send_request(options)
1521
+ end
1522
+
1523
+ # Describes the Kubernetes versions that the add-on can be used with.
1524
+ #
1525
+ # @option params [String] :kubernetes_version
1526
+ # The Kubernetes versions that the add-on can be used with.
1527
+ #
1528
+ # @option params [Integer] :max_results
1529
+ # The maximum number of results to return.
1530
+ #
1531
+ # @option params [String] :next_token
1532
+ # The `nextToken` value returned from a previous paginated
1533
+ # `DescribeAddonVersionsRequest` where `maxResults` was used and the
1534
+ # results exceeded the value of that parameter. Pagination continues
1535
+ # from the end of the previous results that returned the `nextToken`
1536
+ # value.
1537
+ #
1538
+ # <note markdown="1"> This token should be treated as an opaque identifier that is used only
1539
+ # to retrieve the next items in a list and not for other programmatic
1540
+ # purposes.
1541
+ #
1542
+ # </note>
1543
+ #
1544
+ # @option params [String] :addon_name
1545
+ # The name of the add-on. The name must match one of the names returned
1546
+ # by [ `ListAddons` ][1].
1547
+ #
1548
+ #
1549
+ #
1550
+ # [1]: https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html
1551
+ #
1552
+ # @return [Types::DescribeAddonVersionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1553
+ #
1554
+ # * {Types::DescribeAddonVersionsResponse#addons #addons} => Array&lt;Types::AddonInfo&gt;
1555
+ # * {Types::DescribeAddonVersionsResponse#next_token #next_token} => String
1556
+ #
1557
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1558
+ #
1559
+ # @example Request syntax with placeholder values
1560
+ #
1561
+ # resp = client.describe_addon_versions({
1562
+ # kubernetes_version: "String",
1563
+ # max_results: 1,
1564
+ # next_token: "String",
1565
+ # addon_name: "String",
1566
+ # })
1567
+ #
1568
+ # @example Response structure
1569
+ #
1570
+ # resp.addons #=> Array
1571
+ # resp.addons[0].addon_name #=> String
1572
+ # resp.addons[0].type #=> String
1573
+ # resp.addons[0].addon_versions #=> Array
1574
+ # resp.addons[0].addon_versions[0].addon_version #=> String
1575
+ # resp.addons[0].addon_versions[0].architecture #=> Array
1576
+ # resp.addons[0].addon_versions[0].architecture[0] #=> String
1577
+ # resp.addons[0].addon_versions[0].compatibilities #=> Array
1578
+ # resp.addons[0].addon_versions[0].compatibilities[0].cluster_version #=> String
1579
+ # resp.addons[0].addon_versions[0].compatibilities[0].platform_versions #=> Array
1580
+ # resp.addons[0].addon_versions[0].compatibilities[0].platform_versions[0] #=> String
1581
+ # resp.addons[0].addon_versions[0].compatibilities[0].default_version #=> Boolean
1582
+ # resp.next_token #=> String
1583
+ #
1584
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeAddonVersions AWS API Documentation
1585
+ #
1586
+ # @overload describe_addon_versions(params = {})
1587
+ # @param [Hash] params ({})
1588
+ def describe_addon_versions(params = {}, options = {})
1589
+ req = build_request(:describe_addon_versions, params)
1590
+ req.send_request(options)
1591
+ end
1592
+
1163
1593
  # Returns descriptive information about an Amazon EKS cluster.
1164
1594
  #
1165
1595
  # The API server endpoint and certificate authority data returned by
@@ -1320,6 +1750,56 @@ module Aws::EKS
1320
1750
  req.send_request(options)
1321
1751
  end
1322
1752
 
1753
+ # Returns descriptive information about an identity provider
1754
+ # configuration.
1755
+ #
1756
+ # @option params [required, String] :cluster_name
1757
+ # The cluster name that the identity provider configuration is
1758
+ # associated to.
1759
+ #
1760
+ # @option params [required, Types::IdentityProviderConfig] :identity_provider_config
1761
+ # An object that represents an identity provider configuration.
1762
+ #
1763
+ # @return [Types::DescribeIdentityProviderConfigResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1764
+ #
1765
+ # * {Types::DescribeIdentityProviderConfigResponse#identity_provider_config #identity_provider_config} => Types::IdentityProviderConfigResponse
1766
+ #
1767
+ # @example Request syntax with placeholder values
1768
+ #
1769
+ # resp = client.describe_identity_provider_config({
1770
+ # cluster_name: "String", # required
1771
+ # identity_provider_config: { # required
1772
+ # type: "String", # required
1773
+ # name: "String", # required
1774
+ # },
1775
+ # })
1776
+ #
1777
+ # @example Response structure
1778
+ #
1779
+ # resp.identity_provider_config.oidc.identity_provider_config_name #=> String
1780
+ # resp.identity_provider_config.oidc.identity_provider_config_arn #=> String
1781
+ # resp.identity_provider_config.oidc.cluster_name #=> String
1782
+ # resp.identity_provider_config.oidc.issuer_url #=> String
1783
+ # resp.identity_provider_config.oidc.client_id #=> String
1784
+ # resp.identity_provider_config.oidc.username_claim #=> String
1785
+ # resp.identity_provider_config.oidc.username_prefix #=> String
1786
+ # resp.identity_provider_config.oidc.groups_claim #=> String
1787
+ # resp.identity_provider_config.oidc.groups_prefix #=> String
1788
+ # resp.identity_provider_config.oidc.required_claims #=> Hash
1789
+ # resp.identity_provider_config.oidc.required_claims["requiredClaimsKey"] #=> String
1790
+ # resp.identity_provider_config.oidc.tags #=> Hash
1791
+ # resp.identity_provider_config.oidc.tags["TagKey"] #=> String
1792
+ # resp.identity_provider_config.oidc.status #=> String, one of "CREATING", "DELETING", "ACTIVE"
1793
+ #
1794
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeIdentityProviderConfig AWS API Documentation
1795
+ #
1796
+ # @overload describe_identity_provider_config(params = {})
1797
+ # @param [Hash] params ({})
1798
+ def describe_identity_provider_config(params = {}, options = {})
1799
+ req = build_request(:describe_identity_provider_config, params)
1800
+ req.send_request(options)
1801
+ end
1802
+
1323
1803
  # Returns descriptive information about an Amazon EKS node group.
1324
1804
  #
1325
1805
  # @option params [required, String] :cluster_name
@@ -1349,6 +1829,7 @@ module Aws::EKS
1349
1829
  # resp.nodegroup.created_at #=> Time
1350
1830
  # resp.nodegroup.modified_at #=> Time
1351
1831
  # resp.nodegroup.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING", "CREATE_FAILED", "DELETE_FAILED", "DEGRADED"
1832
+ # resp.nodegroup.capacity_type #=> String, one of "ON_DEMAND", "SPOT"
1352
1833
  # resp.nodegroup.scaling_config.min_size #=> Integer
1353
1834
  # resp.nodegroup.scaling_config.max_size #=> Integer
1354
1835
  # resp.nodegroup.scaling_config.desired_size #=> Integer
@@ -1368,7 +1849,7 @@ module Aws::EKS
1368
1849
  # resp.nodegroup.resources.remote_access_security_group #=> String
1369
1850
  # resp.nodegroup.disk_size #=> Integer
1370
1851
  # resp.nodegroup.health.issues #=> Array
1371
- # resp.nodegroup.health.issues[0].code #=> String, one of "AutoScalingGroupNotFound", "AutoScalingGroupInvalidConfiguration", "Ec2SecurityGroupNotFound", "Ec2SecurityGroupDeletionFailure", "Ec2LaunchTemplateNotFound", "Ec2LaunchTemplateVersionMismatch", "Ec2SubnetNotFound", "Ec2SubnetInvalidConfiguration", "IamInstanceProfileNotFound", "IamLimitExceeded", "IamNodeRoleNotFound", "NodeCreationFailure", "AsgInstanceLaunchFailures", "InstanceLimitExceeded", "InsufficientFreeAddresses", "AccessDenied", "InternalFailure"
1852
+ # resp.nodegroup.health.issues[0].code #=> String, one of "AutoScalingGroupNotFound", "AutoScalingGroupInvalidConfiguration", "Ec2SecurityGroupNotFound", "Ec2SecurityGroupDeletionFailure", "Ec2LaunchTemplateNotFound", "Ec2LaunchTemplateVersionMismatch", "Ec2SubnetNotFound", "Ec2SubnetInvalidConfiguration", "IamInstanceProfileNotFound", "IamLimitExceeded", "IamNodeRoleNotFound", "NodeCreationFailure", "AsgInstanceLaunchFailures", "InstanceLimitExceeded", "InsufficientFreeAddresses", "AccessDenied", "InternalFailure", "ClusterUnreachable"
1372
1853
  # resp.nodegroup.health.issues[0].message #=> String
1373
1854
  # resp.nodegroup.health.issues[0].resource_ids #=> Array
1374
1855
  # resp.nodegroup.health.issues[0].resource_ids[0] #=> String
@@ -1409,6 +1890,14 @@ module Aws::EKS
1409
1890
  # @option params [String] :nodegroup_name
1410
1891
  # The name of the Amazon EKS node group associated with the update.
1411
1892
  #
1893
+ # @option params [String] :addon_name
1894
+ # The name of the add-on. The name must match one of the names returned
1895
+ # by [ `ListAddons` ][1].
1896
+ #
1897
+ #
1898
+ #
1899
+ # [1]: https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html
1900
+ #
1412
1901
  # @return [Types::DescribeUpdateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1413
1902
  #
1414
1903
  # * {Types::DescribeUpdateResponse#update #update} => Types::Update
@@ -1419,19 +1908,20 @@ module Aws::EKS
1419
1908
  # name: "String", # required
1420
1909
  # update_id: "String", # required
1421
1910
  # nodegroup_name: "String",
1911
+ # addon_name: "String",
1422
1912
  # })
1423
1913
  #
1424
1914
  # @example Response structure
1425
1915
  #
1426
1916
  # resp.update.id #=> String
1427
1917
  # resp.update.status #=> String, one of "InProgress", "Failed", "Cancelled", "Successful"
1428
- # resp.update.type #=> String, one of "VersionUpdate", "EndpointAccessUpdate", "LoggingUpdate", "ConfigUpdate"
1918
+ # resp.update.type #=> String, one of "VersionUpdate", "EndpointAccessUpdate", "LoggingUpdate", "ConfigUpdate", "AssociateIdentityProviderConfig", "DisassociateIdentityProviderConfig", "AssociateEncryptionConfig", "AddonUpdate"
1429
1919
  # resp.update.params #=> Array
1430
- # resp.update.params[0].type #=> String, one of "Version", "PlatformVersion", "EndpointPrivateAccess", "EndpointPublicAccess", "ClusterLogging", "DesiredSize", "LabelsToAdd", "LabelsToRemove", "MaxSize", "MinSize", "ReleaseVersion", "PublicAccessCidrs"
1920
+ # resp.update.params[0].type #=> String, one of "Version", "PlatformVersion", "EndpointPrivateAccess", "EndpointPublicAccess", "ClusterLogging", "DesiredSize", "LabelsToAdd", "LabelsToRemove", "MaxSize", "MinSize", "ReleaseVersion", "PublicAccessCidrs", "IdentityProviderConfig", "EncryptionConfig", "AddonVersion", "ServiceAccountRoleArn", "ResolveConflicts"
1431
1921
  # resp.update.params[0].value #=> String
1432
1922
  # resp.update.created_at #=> Time
1433
1923
  # resp.update.errors #=> Array
1434
- # resp.update.errors[0].error_code #=> String, one of "SubnetNotFound", "SecurityGroupNotFound", "EniLimitReached", "IpNotAvailable", "AccessDenied", "OperationNotPermitted", "VpcIdNotFound", "Unknown", "NodeCreationFailure", "PodEvictionFailure", "InsufficientFreeAddresses"
1924
+ # resp.update.errors[0].error_code #=> String, one of "SubnetNotFound", "SecurityGroupNotFound", "EniLimitReached", "IpNotAvailable", "AccessDenied", "OperationNotPermitted", "VpcIdNotFound", "Unknown", "NodeCreationFailure", "PodEvictionFailure", "InsufficientFreeAddresses", "ClusterUnreachable", "InsufficientNumberOfReplicas", "ConfigurationConflict"
1435
1925
  # resp.update.errors[0].error_message #=> String
1436
1926
  # resp.update.errors[0].resource_ids #=> Array
1437
1927
  # resp.update.errors[0].resource_ids[0] #=> String
@@ -1445,6 +1935,120 @@ module Aws::EKS
1445
1935
  req.send_request(options)
1446
1936
  end
1447
1937
 
1938
+ # Disassociates an identity provider configuration from a cluster. If
1939
+ # you disassociate an identity provider from your cluster, users
1940
+ # included in the provider can no longer access the cluster. However,
1941
+ # you can still access the cluster with AWS IAM users.
1942
+ #
1943
+ # @option params [required, String] :cluster_name
1944
+ # The name of the cluster to disassociate an identity provider from.
1945
+ #
1946
+ # @option params [required, Types::IdentityProviderConfig] :identity_provider_config
1947
+ # An object that represents an identity provider configuration.
1948
+ #
1949
+ # @option params [String] :client_request_token
1950
+ # A unique, case-sensitive identifier that you provide to ensure the
1951
+ # idempotency of the request.
1952
+ #
1953
+ # **A suitable default value is auto-generated.** You should normally
1954
+ # not need to pass this option.**
1955
+ #
1956
+ # @return [Types::DisassociateIdentityProviderConfigResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1957
+ #
1958
+ # * {Types::DisassociateIdentityProviderConfigResponse#update #update} => Types::Update
1959
+ #
1960
+ # @example Request syntax with placeholder values
1961
+ #
1962
+ # resp = client.disassociate_identity_provider_config({
1963
+ # cluster_name: "String", # required
1964
+ # identity_provider_config: { # required
1965
+ # type: "String", # required
1966
+ # name: "String", # required
1967
+ # },
1968
+ # client_request_token: "String",
1969
+ # })
1970
+ #
1971
+ # @example Response structure
1972
+ #
1973
+ # resp.update.id #=> String
1974
+ # resp.update.status #=> String, one of "InProgress", "Failed", "Cancelled", "Successful"
1975
+ # resp.update.type #=> String, one of "VersionUpdate", "EndpointAccessUpdate", "LoggingUpdate", "ConfigUpdate", "AssociateIdentityProviderConfig", "DisassociateIdentityProviderConfig", "AssociateEncryptionConfig", "AddonUpdate"
1976
+ # resp.update.params #=> Array
1977
+ # resp.update.params[0].type #=> String, one of "Version", "PlatformVersion", "EndpointPrivateAccess", "EndpointPublicAccess", "ClusterLogging", "DesiredSize", "LabelsToAdd", "LabelsToRemove", "MaxSize", "MinSize", "ReleaseVersion", "PublicAccessCidrs", "IdentityProviderConfig", "EncryptionConfig", "AddonVersion", "ServiceAccountRoleArn", "ResolveConflicts"
1978
+ # resp.update.params[0].value #=> String
1979
+ # resp.update.created_at #=> Time
1980
+ # resp.update.errors #=> Array
1981
+ # resp.update.errors[0].error_code #=> String, one of "SubnetNotFound", "SecurityGroupNotFound", "EniLimitReached", "IpNotAvailable", "AccessDenied", "OperationNotPermitted", "VpcIdNotFound", "Unknown", "NodeCreationFailure", "PodEvictionFailure", "InsufficientFreeAddresses", "ClusterUnreachable", "InsufficientNumberOfReplicas", "ConfigurationConflict"
1982
+ # resp.update.errors[0].error_message #=> String
1983
+ # resp.update.errors[0].resource_ids #=> Array
1984
+ # resp.update.errors[0].resource_ids[0] #=> String
1985
+ #
1986
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DisassociateIdentityProviderConfig AWS API Documentation
1987
+ #
1988
+ # @overload disassociate_identity_provider_config(params = {})
1989
+ # @param [Hash] params ({})
1990
+ def disassociate_identity_provider_config(params = {}, options = {})
1991
+ req = build_request(:disassociate_identity_provider_config, params)
1992
+ req.send_request(options)
1993
+ end
1994
+
1995
+ # Lists the available add-ons.
1996
+ #
1997
+ # @option params [required, String] :cluster_name
1998
+ # The name of the cluster.
1999
+ #
2000
+ # @option params [Integer] :max_results
2001
+ # The maximum number of add-on results returned by `ListAddonsRequest`
2002
+ # in paginated output. When you use this parameter, `ListAddonsRequest`
2003
+ # returns only `maxResults` results in a single page along with a
2004
+ # `nextToken` response element. You can see the remaining results of the
2005
+ # initial request by sending another `ListAddonsRequest` request with
2006
+ # the returned `nextToken` value. This value can be between 1 and 100.
2007
+ # If you don't use this parameter, `ListAddonsRequest` returns up to
2008
+ # 100 results and a `nextToken` value, if applicable.
2009
+ #
2010
+ # @option params [String] :next_token
2011
+ # The `nextToken` value returned from a previous paginated
2012
+ # `ListAddonsRequest` where `maxResults` was used and the results
2013
+ # exceeded the value of that parameter. Pagination continues from the
2014
+ # end of the previous results that returned the `nextToken` value.
2015
+ #
2016
+ # <note markdown="1"> This token should be treated as an opaque identifier that is used only
2017
+ # to retrieve the next items in a list and not for other programmatic
2018
+ # purposes.
2019
+ #
2020
+ # </note>
2021
+ #
2022
+ # @return [Types::ListAddonsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2023
+ #
2024
+ # * {Types::ListAddonsResponse#addons #addons} => Array&lt;String&gt;
2025
+ # * {Types::ListAddonsResponse#next_token #next_token} => String
2026
+ #
2027
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2028
+ #
2029
+ # @example Request syntax with placeholder values
2030
+ #
2031
+ # resp = client.list_addons({
2032
+ # cluster_name: "ClusterName", # required
2033
+ # max_results: 1,
2034
+ # next_token: "String",
2035
+ # })
2036
+ #
2037
+ # @example Response structure
2038
+ #
2039
+ # resp.addons #=> Array
2040
+ # resp.addons[0] #=> String
2041
+ # resp.next_token #=> String
2042
+ #
2043
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListAddons AWS API Documentation
2044
+ #
2045
+ # @overload list_addons(params = {})
2046
+ # @param [Hash] params ({})
2047
+ def list_addons(params = {}, options = {})
2048
+ req = build_request(:list_addons, params)
2049
+ req.send_request(options)
2050
+ end
2051
+
1448
2052
  # Lists the Amazon EKS clusters in your AWS account in the specified
1449
2053
  # Region.
1450
2054
  #
@@ -1570,6 +2174,61 @@ module Aws::EKS
1570
2174
  req.send_request(options)
1571
2175
  end
1572
2176
 
2177
+ # A list of identity provider configurations.
2178
+ #
2179
+ # @option params [required, String] :cluster_name
2180
+ # The cluster name that you want to list identity provider
2181
+ # configurations for.
2182
+ #
2183
+ # @option params [Integer] :max_results
2184
+ # The maximum number of identity provider configurations returned by
2185
+ # `ListIdentityProviderConfigs` in paginated output. When you use this
2186
+ # parameter, `ListIdentityProviderConfigs` returns only `maxResults`
2187
+ # results in a single page along with a `nextToken` response element.
2188
+ # You can see the remaining results of the initial request by sending
2189
+ # another `ListIdentityProviderConfigs` request with the returned
2190
+ # `nextToken` value. This value can be between 1 and 100. If you don't
2191
+ # use this parameter, `ListIdentityProviderConfigs` returns up to 100
2192
+ # results and a `nextToken` value, if applicable.
2193
+ #
2194
+ # @option params [String] :next_token
2195
+ # The `nextToken` value returned from a previous paginated
2196
+ # `IdentityProviderConfigsRequest` where `maxResults` was used and the
2197
+ # results exceeded the value of that parameter. Pagination continues
2198
+ # from the end of the previous results that returned the `nextToken`
2199
+ # value.
2200
+ #
2201
+ # @return [Types::ListIdentityProviderConfigsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2202
+ #
2203
+ # * {Types::ListIdentityProviderConfigsResponse#identity_provider_configs #identity_provider_configs} => Array&lt;Types::IdentityProviderConfig&gt;
2204
+ # * {Types::ListIdentityProviderConfigsResponse#next_token #next_token} => String
2205
+ #
2206
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2207
+ #
2208
+ # @example Request syntax with placeholder values
2209
+ #
2210
+ # resp = client.list_identity_provider_configs({
2211
+ # cluster_name: "String", # required
2212
+ # max_results: 1,
2213
+ # next_token: "String",
2214
+ # })
2215
+ #
2216
+ # @example Response structure
2217
+ #
2218
+ # resp.identity_provider_configs #=> Array
2219
+ # resp.identity_provider_configs[0].type #=> String
2220
+ # resp.identity_provider_configs[0].name #=> String
2221
+ # resp.next_token #=> String
2222
+ #
2223
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListIdentityProviderConfigs AWS API Documentation
2224
+ #
2225
+ # @overload list_identity_provider_configs(params = {})
2226
+ # @param [Hash] params ({})
2227
+ def list_identity_provider_configs(params = {}, options = {})
2228
+ req = build_request(:list_identity_provider_configs, params)
2229
+ req.send_request(options)
2230
+ end
2231
+
1573
2232
  # Lists the Amazon EKS managed node groups associated with the specified
1574
2233
  # cluster in your AWS account in the specified Region. Self-managed node
1575
2234
  # groups are not listed.
@@ -1680,6 +2339,9 @@ module Aws::EKS
1680
2339
  # @option params [String] :nodegroup_name
1681
2340
  # The name of the Amazon EKS managed node group to list updates for.
1682
2341
  #
2342
+ # @option params [String] :addon_name
2343
+ # The names of the installed add-ons that have available updates.
2344
+ #
1683
2345
  # @option params [String] :next_token
1684
2346
  # The `nextToken` value returned from a previous paginated `ListUpdates`
1685
2347
  # request where `maxResults` was used and the results exceeded the value
@@ -1708,6 +2370,7 @@ module Aws::EKS
1708
2370
  # resp = client.list_updates({
1709
2371
  # name: "String", # required
1710
2372
  # nodegroup_name: "String",
2373
+ # addon_name: "String",
1711
2374
  # next_token: "String",
1712
2375
  # max_results: 1,
1713
2376
  # })
@@ -1734,7 +2397,7 @@ module Aws::EKS
1734
2397
  # you create for Amazon EKS resources do not propagate to any other
1735
2398
  # resources associated with the cluster. For example, if you tag a
1736
2399
  # cluster with this operation, that tag does not automatically propagate
1737
- # to the subnets and worker nodes associated with the cluster.
2400
+ # to the subnets and nodes associated with the cluster.
1738
2401
  #
1739
2402
  # @option params [required, String] :resource_arn
1740
2403
  # The Amazon Resource Name (ARN) of the resource to which to add tags.
@@ -1792,6 +2455,97 @@ module Aws::EKS
1792
2455
  req.send_request(options)
1793
2456
  end
1794
2457
 
2458
+ # Updates an Amazon EKS add-on.
2459
+ #
2460
+ # @option params [required, String] :cluster_name
2461
+ # The name of the cluster.
2462
+ #
2463
+ # @option params [required, String] :addon_name
2464
+ # The name of the add-on. The name must match one of the names returned
2465
+ # by [ `ListAddons` ][1].
2466
+ #
2467
+ #
2468
+ #
2469
+ # [1]: https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html
2470
+ #
2471
+ # @option params [String] :addon_version
2472
+ # The version of the add-on. The version must match one of the versions
2473
+ # returned by [ `DescribeAddonVersions` ][1].
2474
+ #
2475
+ #
2476
+ #
2477
+ # [1]: https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html
2478
+ #
2479
+ # @option params [String] :service_account_role_arn
2480
+ # The Amazon Resource Name (ARN) of an existing IAM role to bind to the
2481
+ # add-on's service account. The role must be assigned the IAM
2482
+ # permissions required by the add-on. If you don't specify an existing
2483
+ # IAM role, then the add-on uses the permissions assigned to the node
2484
+ # IAM role. For more information, see [Amazon EKS node IAM role][1] in
2485
+ # the *Amazon EKS User Guide*.
2486
+ #
2487
+ # <note markdown="1"> To specify an existing IAM role, you must have an IAM OpenID Connect
2488
+ # (OIDC) provider created for your cluster. For more information, see
2489
+ # [Enabling IAM roles for service accounts on your cluster][2] in the
2490
+ # *Amazon EKS User Guide*.
2491
+ #
2492
+ # </note>
2493
+ #
2494
+ #
2495
+ #
2496
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html
2497
+ # [2]: https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html
2498
+ #
2499
+ # @option params [String] :resolve_conflicts
2500
+ # How to resolve parameter value conflicts when applying the new version
2501
+ # of the add-on to the cluster.
2502
+ #
2503
+ # @option params [String] :client_request_token
2504
+ # Unique, case-sensitive identifier that you provide to ensure the
2505
+ # idempotency of the request.
2506
+ #
2507
+ # **A suitable default value is auto-generated.** You should normally
2508
+ # not need to pass this option.**
2509
+ #
2510
+ # @return [Types::UpdateAddonResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2511
+ #
2512
+ # * {Types::UpdateAddonResponse#update #update} => Types::Update
2513
+ #
2514
+ # @example Request syntax with placeholder values
2515
+ #
2516
+ # resp = client.update_addon({
2517
+ # cluster_name: "ClusterName", # required
2518
+ # addon_name: "String", # required
2519
+ # addon_version: "String",
2520
+ # service_account_role_arn: "RoleArn",
2521
+ # resolve_conflicts: "OVERWRITE", # accepts OVERWRITE, NONE
2522
+ # client_request_token: "String",
2523
+ # })
2524
+ #
2525
+ # @example Response structure
2526
+ #
2527
+ # resp.update.id #=> String
2528
+ # resp.update.status #=> String, one of "InProgress", "Failed", "Cancelled", "Successful"
2529
+ # resp.update.type #=> String, one of "VersionUpdate", "EndpointAccessUpdate", "LoggingUpdate", "ConfigUpdate", "AssociateIdentityProviderConfig", "DisassociateIdentityProviderConfig", "AssociateEncryptionConfig", "AddonUpdate"
2530
+ # resp.update.params #=> Array
2531
+ # resp.update.params[0].type #=> String, one of "Version", "PlatformVersion", "EndpointPrivateAccess", "EndpointPublicAccess", "ClusterLogging", "DesiredSize", "LabelsToAdd", "LabelsToRemove", "MaxSize", "MinSize", "ReleaseVersion", "PublicAccessCidrs", "IdentityProviderConfig", "EncryptionConfig", "AddonVersion", "ServiceAccountRoleArn", "ResolveConflicts"
2532
+ # resp.update.params[0].value #=> String
2533
+ # resp.update.created_at #=> Time
2534
+ # resp.update.errors #=> Array
2535
+ # resp.update.errors[0].error_code #=> String, one of "SubnetNotFound", "SecurityGroupNotFound", "EniLimitReached", "IpNotAvailable", "AccessDenied", "OperationNotPermitted", "VpcIdNotFound", "Unknown", "NodeCreationFailure", "PodEvictionFailure", "InsufficientFreeAddresses", "ClusterUnreachable", "InsufficientNumberOfReplicas", "ConfigurationConflict"
2536
+ # resp.update.errors[0].error_message #=> String
2537
+ # resp.update.errors[0].resource_ids #=> Array
2538
+ # resp.update.errors[0].resource_ids[0] #=> String
2539
+ #
2540
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateAddon AWS API Documentation
2541
+ #
2542
+ # @overload update_addon(params = {})
2543
+ # @param [Hash] params ({})
2544
+ def update_addon(params = {}, options = {})
2545
+ req = build_request(:update_addon, params)
2546
+ req.send_request(options)
2547
+ end
2548
+
1795
2549
  # Updates an Amazon EKS cluster configuration. Your cluster continues to
1796
2550
  # function during the update. The response output includes an update ID
1797
2551
  # that you can use to track the status of your cluster update with the
@@ -1892,13 +2646,13 @@ module Aws::EKS
1892
2646
  #
1893
2647
  # resp.update.id #=> String
1894
2648
  # resp.update.status #=> String, one of "InProgress", "Failed", "Cancelled", "Successful"
1895
- # resp.update.type #=> String, one of "VersionUpdate", "EndpointAccessUpdate", "LoggingUpdate", "ConfigUpdate"
2649
+ # resp.update.type #=> String, one of "VersionUpdate", "EndpointAccessUpdate", "LoggingUpdate", "ConfigUpdate", "AssociateIdentityProviderConfig", "DisassociateIdentityProviderConfig", "AssociateEncryptionConfig", "AddonUpdate"
1896
2650
  # resp.update.params #=> Array
1897
- # resp.update.params[0].type #=> String, one of "Version", "PlatformVersion", "EndpointPrivateAccess", "EndpointPublicAccess", "ClusterLogging", "DesiredSize", "LabelsToAdd", "LabelsToRemove", "MaxSize", "MinSize", "ReleaseVersion", "PublicAccessCidrs"
2651
+ # resp.update.params[0].type #=> String, one of "Version", "PlatformVersion", "EndpointPrivateAccess", "EndpointPublicAccess", "ClusterLogging", "DesiredSize", "LabelsToAdd", "LabelsToRemove", "MaxSize", "MinSize", "ReleaseVersion", "PublicAccessCidrs", "IdentityProviderConfig", "EncryptionConfig", "AddonVersion", "ServiceAccountRoleArn", "ResolveConflicts"
1898
2652
  # resp.update.params[0].value #=> String
1899
2653
  # resp.update.created_at #=> Time
1900
2654
  # resp.update.errors #=> Array
1901
- # resp.update.errors[0].error_code #=> String, one of "SubnetNotFound", "SecurityGroupNotFound", "EniLimitReached", "IpNotAvailable", "AccessDenied", "OperationNotPermitted", "VpcIdNotFound", "Unknown", "NodeCreationFailure", "PodEvictionFailure", "InsufficientFreeAddresses"
2655
+ # resp.update.errors[0].error_code #=> String, one of "SubnetNotFound", "SecurityGroupNotFound", "EniLimitReached", "IpNotAvailable", "AccessDenied", "OperationNotPermitted", "VpcIdNotFound", "Unknown", "NodeCreationFailure", "PodEvictionFailure", "InsufficientFreeAddresses", "ClusterUnreachable", "InsufficientNumberOfReplicas", "ConfigurationConflict"
1902
2656
  # resp.update.errors[0].error_message #=> String
1903
2657
  # resp.update.errors[0].resource_ids #=> Array
1904
2658
  # resp.update.errors[0].resource_ids[0] #=> String
@@ -1956,13 +2710,13 @@ module Aws::EKS
1956
2710
  #
1957
2711
  # resp.update.id #=> String
1958
2712
  # resp.update.status #=> String, one of "InProgress", "Failed", "Cancelled", "Successful"
1959
- # resp.update.type #=> String, one of "VersionUpdate", "EndpointAccessUpdate", "LoggingUpdate", "ConfigUpdate"
2713
+ # resp.update.type #=> String, one of "VersionUpdate", "EndpointAccessUpdate", "LoggingUpdate", "ConfigUpdate", "AssociateIdentityProviderConfig", "DisassociateIdentityProviderConfig", "AssociateEncryptionConfig", "AddonUpdate"
1960
2714
  # resp.update.params #=> Array
1961
- # resp.update.params[0].type #=> String, one of "Version", "PlatformVersion", "EndpointPrivateAccess", "EndpointPublicAccess", "ClusterLogging", "DesiredSize", "LabelsToAdd", "LabelsToRemove", "MaxSize", "MinSize", "ReleaseVersion", "PublicAccessCidrs"
2715
+ # resp.update.params[0].type #=> String, one of "Version", "PlatformVersion", "EndpointPrivateAccess", "EndpointPublicAccess", "ClusterLogging", "DesiredSize", "LabelsToAdd", "LabelsToRemove", "MaxSize", "MinSize", "ReleaseVersion", "PublicAccessCidrs", "IdentityProviderConfig", "EncryptionConfig", "AddonVersion", "ServiceAccountRoleArn", "ResolveConflicts"
1962
2716
  # resp.update.params[0].value #=> String
1963
2717
  # resp.update.created_at #=> Time
1964
2718
  # resp.update.errors #=> Array
1965
- # resp.update.errors[0].error_code #=> String, one of "SubnetNotFound", "SecurityGroupNotFound", "EniLimitReached", "IpNotAvailable", "AccessDenied", "OperationNotPermitted", "VpcIdNotFound", "Unknown", "NodeCreationFailure", "PodEvictionFailure", "InsufficientFreeAddresses"
2719
+ # resp.update.errors[0].error_code #=> String, one of "SubnetNotFound", "SecurityGroupNotFound", "EniLimitReached", "IpNotAvailable", "AccessDenied", "OperationNotPermitted", "VpcIdNotFound", "Unknown", "NodeCreationFailure", "PodEvictionFailure", "InsufficientFreeAddresses", "ClusterUnreachable", "InsufficientNumberOfReplicas", "ConfigurationConflict"
1966
2720
  # resp.update.errors[0].error_message #=> String
1967
2721
  # resp.update.errors[0].resource_ids #=> Array
1968
2722
  # resp.update.errors[0].resource_ids[0] #=> String
@@ -2032,13 +2786,13 @@ module Aws::EKS
2032
2786
  #
2033
2787
  # resp.update.id #=> String
2034
2788
  # resp.update.status #=> String, one of "InProgress", "Failed", "Cancelled", "Successful"
2035
- # resp.update.type #=> String, one of "VersionUpdate", "EndpointAccessUpdate", "LoggingUpdate", "ConfigUpdate"
2789
+ # resp.update.type #=> String, one of "VersionUpdate", "EndpointAccessUpdate", "LoggingUpdate", "ConfigUpdate", "AssociateIdentityProviderConfig", "DisassociateIdentityProviderConfig", "AssociateEncryptionConfig", "AddonUpdate"
2036
2790
  # resp.update.params #=> Array
2037
- # resp.update.params[0].type #=> String, one of "Version", "PlatformVersion", "EndpointPrivateAccess", "EndpointPublicAccess", "ClusterLogging", "DesiredSize", "LabelsToAdd", "LabelsToRemove", "MaxSize", "MinSize", "ReleaseVersion", "PublicAccessCidrs"
2791
+ # resp.update.params[0].type #=> String, one of "Version", "PlatformVersion", "EndpointPrivateAccess", "EndpointPublicAccess", "ClusterLogging", "DesiredSize", "LabelsToAdd", "LabelsToRemove", "MaxSize", "MinSize", "ReleaseVersion", "PublicAccessCidrs", "IdentityProviderConfig", "EncryptionConfig", "AddonVersion", "ServiceAccountRoleArn", "ResolveConflicts"
2038
2792
  # resp.update.params[0].value #=> String
2039
2793
  # resp.update.created_at #=> Time
2040
2794
  # resp.update.errors #=> Array
2041
- # resp.update.errors[0].error_code #=> String, one of "SubnetNotFound", "SecurityGroupNotFound", "EniLimitReached", "IpNotAvailable", "AccessDenied", "OperationNotPermitted", "VpcIdNotFound", "Unknown", "NodeCreationFailure", "PodEvictionFailure", "InsufficientFreeAddresses"
2795
+ # resp.update.errors[0].error_code #=> String, one of "SubnetNotFound", "SecurityGroupNotFound", "EniLimitReached", "IpNotAvailable", "AccessDenied", "OperationNotPermitted", "VpcIdNotFound", "Unknown", "NodeCreationFailure", "PodEvictionFailure", "InsufficientFreeAddresses", "ClusterUnreachable", "InsufficientNumberOfReplicas", "ConfigurationConflict"
2042
2796
  # resp.update.errors[0].error_message #=> String
2043
2797
  # resp.update.errors[0].resource_ids #=> Array
2044
2798
  # resp.update.errors[0].resource_ids[0] #=> String
@@ -2067,8 +2821,8 @@ module Aws::EKS
2067
2821
  # version by not specifying a Kubernetes version in the request. You can
2068
2822
  # update to the latest AMI version of your cluster's current Kubernetes
2069
2823
  # version by specifying your cluster's Kubernetes version in the
2070
- # request. For more information, see [Amazon EKS-Optimized Linux AMI
2071
- # Versions][1] in the *Amazon EKS User Guide*.
2824
+ # request. For more information, see [Amazon EKS optimized Amazon Linux
2825
+ # 2 AMI versions][1] in the *Amazon EKS User Guide*.
2072
2826
  #
2073
2827
  # You cannot roll back a node group to an earlier Kubernetes version or
2074
2828
  # AMI version.
@@ -2105,12 +2859,12 @@ module Aws::EKS
2105
2859
  # [1]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
2106
2860
  #
2107
2861
  # @option params [String] :release_version
2108
- # The AMI version of the Amazon EKS-optimized AMI to use for the update.
2862
+ # The AMI version of the Amazon EKS optimized AMI to use for the update.
2109
2863
  # By default, the latest available AMI version for the node group's
2110
- # Kubernetes version is used. For more information, see [Amazon
2111
- # EKS-Optimized Linux AMI Versions ][1] in the *Amazon EKS User Guide*.
2112
- # If you specify `launchTemplate`, and your launch template uses a
2113
- # custom AMI, then don't specify `releaseVersion`, or the node group
2864
+ # Kubernetes version is used. For more information, see [Amazon EKS
2865
+ # optimized Amazon Linux 2 AMI versions ][1] in the *Amazon EKS User
2866
+ # Guide*. If you specify `launchTemplate`, and your launch template uses
2867
+ # a custom AMI, then don't specify `releaseVersion`, or the node group
2114
2868
  # update will fail. For more information about using launch templates
2115
2869
  # with Amazon EKS, see [Launch template support][2] in the Amazon EKS
2116
2870
  # User Guide.
@@ -2163,13 +2917,13 @@ module Aws::EKS
2163
2917
  #
2164
2918
  # resp.update.id #=> String
2165
2919
  # resp.update.status #=> String, one of "InProgress", "Failed", "Cancelled", "Successful"
2166
- # resp.update.type #=> String, one of "VersionUpdate", "EndpointAccessUpdate", "LoggingUpdate", "ConfigUpdate"
2920
+ # resp.update.type #=> String, one of "VersionUpdate", "EndpointAccessUpdate", "LoggingUpdate", "ConfigUpdate", "AssociateIdentityProviderConfig", "DisassociateIdentityProviderConfig", "AssociateEncryptionConfig", "AddonUpdate"
2167
2921
  # resp.update.params #=> Array
2168
- # resp.update.params[0].type #=> String, one of "Version", "PlatformVersion", "EndpointPrivateAccess", "EndpointPublicAccess", "ClusterLogging", "DesiredSize", "LabelsToAdd", "LabelsToRemove", "MaxSize", "MinSize", "ReleaseVersion", "PublicAccessCidrs"
2922
+ # resp.update.params[0].type #=> String, one of "Version", "PlatformVersion", "EndpointPrivateAccess", "EndpointPublicAccess", "ClusterLogging", "DesiredSize", "LabelsToAdd", "LabelsToRemove", "MaxSize", "MinSize", "ReleaseVersion", "PublicAccessCidrs", "IdentityProviderConfig", "EncryptionConfig", "AddonVersion", "ServiceAccountRoleArn", "ResolveConflicts"
2169
2923
  # resp.update.params[0].value #=> String
2170
2924
  # resp.update.created_at #=> Time
2171
2925
  # resp.update.errors #=> Array
2172
- # resp.update.errors[0].error_code #=> String, one of "SubnetNotFound", "SecurityGroupNotFound", "EniLimitReached", "IpNotAvailable", "AccessDenied", "OperationNotPermitted", "VpcIdNotFound", "Unknown", "NodeCreationFailure", "PodEvictionFailure", "InsufficientFreeAddresses"
2926
+ # resp.update.errors[0].error_code #=> String, one of "SubnetNotFound", "SecurityGroupNotFound", "EniLimitReached", "IpNotAvailable", "AccessDenied", "OperationNotPermitted", "VpcIdNotFound", "Unknown", "NodeCreationFailure", "PodEvictionFailure", "InsufficientFreeAddresses", "ClusterUnreachable", "InsufficientNumberOfReplicas", "ConfigurationConflict"
2173
2927
  # resp.update.errors[0].error_message #=> String
2174
2928
  # resp.update.errors[0].resource_ids #=> Array
2175
2929
  # resp.update.errors[0].resource_ids[0] #=> String
@@ -2196,7 +2950,7 @@ module Aws::EKS
2196
2950
  params: params,
2197
2951
  config: config)
2198
2952
  context[:gem_name] = 'aws-sdk-eks'
2199
- context[:gem_version] = '1.44.0'
2953
+ context[:gem_version] = '1.49.0'
2200
2954
  Seahorse::Client::Request.new(handlers, context)
2201
2955
  end
2202
2956
 
@@ -2264,6 +3018,8 @@ module Aws::EKS
2264
3018
  #
2265
3019
  # | waiter_name | params | :delay | :max_attempts |
2266
3020
  # | ----------------- | --------------------------- | -------- | ------------- |
3021
+ # | addon_active | {Client#describe_addon} | 10 | 60 |
3022
+ # | addon_deleted | {Client#describe_addon} | 10 | 60 |
2267
3023
  # | cluster_active | {Client#describe_cluster} | 30 | 40 |
2268
3024
  # | cluster_deleted | {Client#describe_cluster} | 30 | 40 |
2269
3025
  # | nodegroup_active | {Client#describe_nodegroup} | 30 | 80 |
@@ -2318,6 +3074,8 @@ module Aws::EKS
2318
3074
 
2319
3075
  def waiters
2320
3076
  {
3077
+ addon_active: Waiters::AddonActive,
3078
+ addon_deleted: Waiters::AddonDeleted,
2321
3079
  cluster_active: Waiters::ClusterActive,
2322
3080
  cluster_deleted: Waiters::ClusterDeleted,
2323
3081
  nodegroup_active: Waiters::NodegroupActive,