Help us shape the future of Go! Take the 2026 Go Developer Survey

awsapi

package
v0.231.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 2, 2026 License: Apache-2.0 Imports: 13 Imported by: 58

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ASG added in v0.92.0

type ASG interface {
	// Options returns a copy of the client configuration.
	//
	// Callers SHOULD NOT perform mutations on any inner structures within client
	// config. Config overrides should instead be made on a per-operation basis through
	// functional options.
	Options() autoscaling.Options
	// Attaches one or more EC2 instances to the specified Auto Scaling group.
	//
	// When you attach instances, Amazon EC2 Auto Scaling increases the desired
	// capacity of the group by the number of instances being attached. If the number
	// of instances being attached plus the desired capacity of the group exceeds the
	// maximum size of the group, the operation fails.
	//
	// If there is a Classic Load Balancer attached to your Auto Scaling group, the
	// instances are also registered with the load balancer. If there are target groups
	// attached to your Auto Scaling group, the instances are also registered with the
	// target groups.
	//
	// For more information, see [Detach or attach instances] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [Detach or attach instances]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-detach-attach-instances.html
	AttachInstances(ctx context.Context, params *autoscaling.AttachInstancesInput, optFns ...func(*Options)) (*autoscaling.AttachInstancesOutput, error)
	// This API operation is superseded by [AttachTrafficSources], which can attach multiple traffic sources
	// types. We recommend using AttachTrafficSources to simplify how you manage
	// traffic sources. However, we continue to support AttachLoadBalancerTargetGroups
	// . You can use both the original AttachLoadBalancerTargetGroups API operation
	// and AttachTrafficSources on the same Auto Scaling group.
	//
	// Attaches one or more target groups to the specified Auto Scaling group.
	//
	// This operation is used with the following load balancer types:
	//
	//   - Application Load Balancer - Operates at the application layer (layer 7) and
	//     supports HTTP and HTTPS.
	//
	//   - Network Load Balancer - Operates at the transport layer (layer 4) and
	//     supports TCP, TLS, and UDP.
	//
	//   - Gateway Load Balancer - Operates at the network layer (layer 3).
	//
	// To describe the target groups for an Auto Scaling group, call the [DescribeLoadBalancerTargetGroups] API. To
	// detach the target group from the Auto Scaling group, call the [DetachLoadBalancerTargetGroups]API.
	//
	// This operation is additive and does not detach existing target groups or
	// Classic Load Balancers from the Auto Scaling group.
	//
	// For more information, see [Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [DescribeLoadBalancerTargetGroups]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeLoadBalancerTargetGroups.html
	// [DetachLoadBalancerTargetGroups]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DetachLoadBalancerTargetGroups.html
	// [AttachTrafficSources]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_AttachTrafficSources.html
	// [Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html
	AttachLoadBalancerTargetGroups(ctx context.Context, params *autoscaling.AttachLoadBalancerTargetGroupsInput, optFns ...func(*Options)) (*autoscaling.AttachLoadBalancerTargetGroupsOutput, error)
	// This API operation is superseded by [AttachTrafficSources], which can attach multiple traffic sources
	// types. We recommend using AttachTrafficSources to simplify how you manage
	// traffic sources. However, we continue to support AttachLoadBalancers . You can
	// use both the original AttachLoadBalancers API operation and AttachTrafficSources
	// on the same Auto Scaling group.
	//
	// Attaches one or more Classic Load Balancers to the specified Auto Scaling
	// group. Amazon EC2 Auto Scaling registers the running instances with these
	// Classic Load Balancers.
	//
	// To describe the load balancers for an Auto Scaling group, call the [DescribeLoadBalancers] API. To
	// detach a load balancer from the Auto Scaling group, call the [DetachLoadBalancers]API.
	//
	// This operation is additive and does not detach existing Classic Load Balancers
	// or target groups from the Auto Scaling group.
	//
	// For more information, see [Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [DetachLoadBalancers]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DetachLoadBalancers.html
	// [DescribeLoadBalancers]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeLoadBalancers.html
	// [AttachTrafficSources]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_AttachTrafficSources.html
	// [Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html
	AttachLoadBalancers(ctx context.Context, params *autoscaling.AttachLoadBalancersInput, optFns ...func(*Options)) (*autoscaling.AttachLoadBalancersOutput, error)
	// Attaches one or more traffic sources to the specified Auto Scaling group.
	//
	// You can use any of the following as traffic sources for an Auto Scaling group:
	//
	//   - Application Load Balancer
	//
	//   - Classic Load Balancer
	//
	//   - Gateway Load Balancer
	//
	//   - Network Load Balancer
	//
	//   - VPC Lattice
	//
	// This operation is additive and does not detach existing traffic sources from
	// the Auto Scaling group.
	//
	// After the operation completes, use the [DescribeTrafficSources] API to return details about the state
	// of the attachments between traffic sources and your Auto Scaling group. To
	// detach a traffic source from the Auto Scaling group, call the [DetachTrafficSources]API.
	//
	// [DescribeTrafficSources]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeTrafficSources.html
	// [DetachTrafficSources]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DetachTrafficSources.html
	AttachTrafficSources(ctx context.Context, params *autoscaling.AttachTrafficSourcesInput, optFns ...func(*Options)) (*autoscaling.AttachTrafficSourcesOutput, error)
	// Deletes one or more scheduled actions for the specified Auto Scaling group.
	BatchDeleteScheduledAction(ctx context.Context, params *autoscaling.BatchDeleteScheduledActionInput, optFns ...func(*Options)) (*autoscaling.BatchDeleteScheduledActionOutput, error)
	// Creates or updates one or more scheduled scaling actions for an Auto Scaling
	// group.
	BatchPutScheduledUpdateGroupAction(ctx context.Context, params *autoscaling.BatchPutScheduledUpdateGroupActionInput, optFns ...func(*Options)) (*autoscaling.BatchPutScheduledUpdateGroupActionOutput, error)
	// Cancels an instance refresh or rollback that is in progress. If an instance
	// refresh or rollback is not in progress, an ActiveInstanceRefreshNotFound error
	// occurs.
	//
	// This operation is part of the [instance refresh feature] in Amazon EC2 Auto Scaling, which helps you
	// update instances in your Auto Scaling group after you make configuration
	// changes.
	//
	// When you cancel an instance refresh, this does not roll back any changes that
	// it made. Use the [RollbackInstanceRefresh]API to roll back instead.
	//
	// [instance refresh feature]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-refresh.html
	// [RollbackInstanceRefresh]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_RollbackInstanceRefresh.html
	CancelInstanceRefresh(ctx context.Context, params *autoscaling.CancelInstanceRefreshInput, optFns ...func(*Options)) (*autoscaling.CancelInstanceRefreshOutput, error)
	// Completes the lifecycle action for the specified token or instance with the
	// specified result.
	//
	// This step is a part of the procedure for adding a lifecycle hook to an Auto
	// Scaling group:
	//
	//   - (Optional) Create a launch template or launch configuration with a user
	//     data script that runs while an instance is in a wait state due to a lifecycle
	//     hook.
	//
	//   - (Optional) Create a Lambda function and a rule that allows Amazon
	//     EventBridge to invoke your Lambda function when an instance is put into a wait
	//     state due to a lifecycle hook.
	//
	//   - (Optional) Create a notification target and an IAM role. The target can be
	//     either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2
	//     Auto Scaling to publish lifecycle notifications to the target.
	//
	//   - Create the lifecycle hook. Specify whether the hook is used when the
	//     instances launch or terminate.
	//
	//   - If you need more time, record the lifecycle action heartbeat to keep the
	//     instance in a wait state.
	//
	//   - If you finish before the timeout period ends, send a callback by using the [CompleteLifecycleAction]
	//     API call.
	//
	// For more information, see [Complete a lifecycle action] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [CompleteLifecycleAction]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_CompleteLifecycleAction.html
	// [Complete a lifecycle action]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/completing-lifecycle-hooks.html
	CompleteLifecycleAction(ctx context.Context, params *autoscaling.CompleteLifecycleActionInput, optFns ...func(*Options)) (*autoscaling.CompleteLifecycleActionOutput, error)
	//	We strongly recommend using a launch template when calling this operation to
	//
	// ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.
	//
	// Creates an Auto Scaling group with the specified name and attributes.
	//
	// If you exceed your maximum limit of Auto Scaling groups, the call fails. To
	// query this limit, call the [DescribeAccountLimits]API. For information about updating this limit, see [Quotas for Amazon EC2 Auto Scaling]
	// in the Amazon EC2 Auto Scaling User Guide.
	//
	// If you're new to Amazon EC2 Auto Scaling, see the introductory tutorials in [Get started with Amazon EC2 Auto Scaling] in
	// the Amazon EC2 Auto Scaling User Guide.
	//
	// Every Auto Scaling group has three size properties ( DesiredCapacity , MaxSize ,
	// and MinSize ). Usually, you set these sizes based on a specific number of
	// instances. However, if you configure a mixed instances policy that defines
	// weights for the instance types, you must specify these sizes with the same units
	// that you use for weighting instances.
	//
	// [DescribeAccountLimits]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeAccountLimits.html
	// [Get started with Amazon EC2 Auto Scaling]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/get-started-with-ec2-auto-scaling.html
	// [Quotas for Amazon EC2 Auto Scaling]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-quotas.html
	CreateAutoScalingGroup(ctx context.Context, params *autoscaling.CreateAutoScalingGroupInput, optFns ...func(*Options)) (*autoscaling.CreateAutoScalingGroupOutput, error)
	// Creates a launch configuration.
	//
	// If you exceed your maximum limit of launch configurations, the call fails. To
	// query this limit, call the [DescribeAccountLimits]API. For information about updating this limit, see [Quotas for Amazon EC2 Auto Scaling]
	// in the Amazon EC2 Auto Scaling User Guide.
	//
	// For more information, see [Launch configurations] in the Amazon EC2 Auto Scaling User Guide.
	//
	// Amazon EC2 Auto Scaling configures instances launched as part of an Auto
	// Scaling group using either a launch template or a launch configuration. We
	// strongly recommend that you do not use launch configurations. They do not
	// provide full functionality for Amazon EC2 Auto Scaling or Amazon EC2. For
	// information about using launch templates, see [Launch templates]in the Amazon EC2 Auto Scaling
	// User Guide.
	//
	// [DescribeAccountLimits]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeAccountLimits.html
	// [Quotas for Amazon EC2 Auto Scaling]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-quotas.html
	// [Launch configurations]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-configurations.html
	// [Launch templates]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-templates.html
	CreateLaunchConfiguration(ctx context.Context, params *autoscaling.CreateLaunchConfigurationInput, optFns ...func(*Options)) (*autoscaling.CreateLaunchConfigurationOutput, error)
	// Creates or updates tags for the specified Auto Scaling group.
	//
	// When you specify a tag with a key that already exists, the operation overwrites
	// the previous tag definition, and you do not get an error message.
	//
	// For more information, see [Tag Auto Scaling groups and instances] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [Tag Auto Scaling groups and instances]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-tagging.html
	CreateOrUpdateTags(ctx context.Context, params *autoscaling.CreateOrUpdateTagsInput, optFns ...func(*Options)) (*autoscaling.CreateOrUpdateTagsOutput, error)
	// Deletes the specified Auto Scaling group.
	//
	// If the group has instances or scaling activities in progress, you must specify
	// the option to force the deletion in order for it to succeed. The force delete
	// operation will also terminate the EC2 instances. If the group has a warm pool,
	// the force delete option also deletes the warm pool.
	//
	// To remove instances from the Auto Scaling group before deleting it, call the [DetachInstances]
	// API with the list of instances and the option to decrement the desired capacity.
	// This ensures that Amazon EC2 Auto Scaling does not launch replacement instances.
	//
	// To terminate all instances before deleting the Auto Scaling group, call the [UpdateAutoScalingGroup]
	// API and set the minimum size and desired capacity of the Auto Scaling group to
	// zero.
	//
	// If the group has scaling policies, deleting the group deletes the policies, the
	// underlying alarm actions, and any alarm that no longer has an associated action.
	//
	// For more information, see [Delete your Auto Scaling infrastructure] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [Delete your Auto Scaling infrastructure]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-process-shutdown.html
	// [DetachInstances]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DetachInstances.html
	// [UpdateAutoScalingGroup]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_UpdateAutoScalingGroup.html
	DeleteAutoScalingGroup(ctx context.Context, params *autoscaling.DeleteAutoScalingGroupInput, optFns ...func(*Options)) (*autoscaling.DeleteAutoScalingGroupOutput, error)
	// Deletes the specified launch configuration.
	//
	// The launch configuration must not be attached to an Auto Scaling group. When
	// this call completes, the launch configuration is no longer available for use.
	DeleteLaunchConfiguration(ctx context.Context, params *autoscaling.DeleteLaunchConfigurationInput, optFns ...func(*Options)) (*autoscaling.DeleteLaunchConfigurationOutput, error)
	// Deletes the specified lifecycle hook.
	//
	// If there are any outstanding lifecycle actions, they are completed first (
	// ABANDON for launching instances, CONTINUE for terminating instances).
	DeleteLifecycleHook(ctx context.Context, params *autoscaling.DeleteLifecycleHookInput, optFns ...func(*Options)) (*autoscaling.DeleteLifecycleHookOutput, error)
	// Deletes the specified notification.
	DeleteNotificationConfiguration(ctx context.Context, params *autoscaling.DeleteNotificationConfigurationInput, optFns ...func(*Options)) (*autoscaling.DeleteNotificationConfigurationOutput, error)
	// Deletes the specified scaling policy.
	//
	// Deleting either a step scaling policy or a simple scaling policy deletes the
	// underlying alarm action, but does not delete the alarm, even if it no longer has
	// an associated action.
	//
	// For more information, see [Delete a scaling policy] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [Delete a scaling policy]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/deleting-scaling-policy.html
	DeletePolicy(ctx context.Context, params *autoscaling.DeletePolicyInput, optFns ...func(*Options)) (*autoscaling.DeletePolicyOutput, error)
	// Deletes the specified scheduled action.
	DeleteScheduledAction(ctx context.Context, params *autoscaling.DeleteScheduledActionInput, optFns ...func(*Options)) (*autoscaling.DeleteScheduledActionOutput, error)
	// Deletes the specified tags.
	DeleteTags(ctx context.Context, params *autoscaling.DeleteTagsInput, optFns ...func(*Options)) (*autoscaling.DeleteTagsOutput, error)
	// Deletes the warm pool for the specified Auto Scaling group.
	//
	// For more information, see [Warm pools for Amazon EC2 Auto Scaling] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [Warm pools for Amazon EC2 Auto Scaling]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html
	DeleteWarmPool(ctx context.Context, params *autoscaling.DeleteWarmPoolInput, optFns ...func(*Options)) (*autoscaling.DeleteWarmPoolOutput, error)
	// Describes the current Amazon EC2 Auto Scaling resource quotas for your account.
	//
	// When you establish an Amazon Web Services account, the account has initial
	// quotas on the maximum number of Auto Scaling groups and launch configurations
	// that you can create in a given Region. For more information, see [Quotas for Amazon EC2 Auto Scaling]in the Amazon
	// EC2 Auto Scaling User Guide.
	//
	// [Quotas for Amazon EC2 Auto Scaling]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-quotas.html
	DescribeAccountLimits(ctx context.Context, params *autoscaling.DescribeAccountLimitsInput, optFns ...func(*Options)) (*autoscaling.DescribeAccountLimitsOutput, error)
	// Describes the available adjustment types for step scaling and simple scaling
	// policies.
	//
	// The following adjustment types are supported:
	//
	//   - ChangeInCapacity
	//
	//   - ExactCapacity
	//
	//   - PercentChangeInCapacity
	DescribeAdjustmentTypes(ctx context.Context, params *autoscaling.DescribeAdjustmentTypesInput, optFns ...func(*Options)) (*autoscaling.DescribeAdjustmentTypesOutput, error)
	// Gets information about the Auto Scaling groups in the account and Region.
	//
	// If you specify Auto Scaling group names, the output includes information for
	// only the specified Auto Scaling groups. If you specify filters, the output
	// includes information for only those Auto Scaling groups that meet the filter
	// criteria. If you do not specify group names or filters, the output includes
	// information for all Auto Scaling groups.
	//
	// This operation also returns information about instances in Auto Scaling groups.
	// To retrieve information about the instances in a warm pool, you must call the [DescribeWarmPool]
	// API.
	//
	// [DescribeWarmPool]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeWarmPool.html
	DescribeAutoScalingGroups(ctx context.Context, params *autoscaling.DescribeAutoScalingGroupsInput, optFns ...func(*Options)) (*autoscaling.DescribeAutoScalingGroupsOutput, error)
	// Gets information about the Auto Scaling instances in the account and Region.
	DescribeAutoScalingInstances(ctx context.Context, params *autoscaling.DescribeAutoScalingInstancesInput, optFns ...func(*Options)) (*autoscaling.DescribeAutoScalingInstancesOutput, error)
	// Describes the notification types that are supported by Amazon EC2 Auto Scaling.
	DescribeAutoScalingNotificationTypes(ctx context.Context, params *autoscaling.DescribeAutoScalingNotificationTypesInput, optFns ...func(*Options)) (*autoscaling.DescribeAutoScalingNotificationTypesOutput, error)
	// Gets information about the instance refreshes for the specified Auto Scaling
	// group from the previous six weeks.
	//
	// This operation is part of the [instance refresh feature] in Amazon EC2 Auto Scaling, which helps you
	// update instances in your Auto Scaling group after you make configuration
	// changes.
	//
	// To help you determine the status of an instance refresh, Amazon EC2 Auto
	// Scaling returns information about the instance refreshes you previously
	// initiated, including their status, start time, end time, the percentage of the
	// instance refresh that is complete, and the number of instances remaining to
	// update before the instance refresh is complete. If a rollback is initiated while
	// an instance refresh is in progress, Amazon EC2 Auto Scaling also returns
	// information about the rollback of the instance refresh.
	//
	// [instance refresh feature]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-refresh.html
	DescribeInstanceRefreshes(ctx context.Context, params *autoscaling.DescribeInstanceRefreshesInput, optFns ...func(*Options)) (*autoscaling.DescribeInstanceRefreshesOutput, error)
	// Gets information about the launch configurations in the account and Region.
	DescribeLaunchConfigurations(ctx context.Context, params *autoscaling.DescribeLaunchConfigurationsInput, optFns ...func(*Options)) (*autoscaling.DescribeLaunchConfigurationsOutput, error)
	// Describes the available types of lifecycle hooks.
	//
	// The following hook types are supported:
	//
	//   - autoscaling:EC2_INSTANCE_LAUNCHING
	//
	//   - autoscaling:EC2_INSTANCE_TERMINATING
	DescribeLifecycleHookTypes(ctx context.Context, params *autoscaling.DescribeLifecycleHookTypesInput, optFns ...func(*Options)) (*autoscaling.DescribeLifecycleHookTypesOutput, error)
	// Gets information about the lifecycle hooks for the specified Auto Scaling group.
	DescribeLifecycleHooks(ctx context.Context, params *autoscaling.DescribeLifecycleHooksInput, optFns ...func(*Options)) (*autoscaling.DescribeLifecycleHooksOutput, error)
	// This API operation is superseded by [DescribeTrafficSources], which can describe multiple traffic
	// sources types. We recommend using DetachTrafficSources to simplify how you
	// manage traffic sources. However, we continue to support
	// DescribeLoadBalancerTargetGroups . You can use both the original
	// DescribeLoadBalancerTargetGroups API operation and DescribeTrafficSources on
	// the same Auto Scaling group.
	//
	// Gets information about the Elastic Load Balancing target groups for the
	// specified Auto Scaling group.
	//
	// To determine the attachment status of the target group, use the State element
	// in the response. When you attach a target group to an Auto Scaling group, the
	// initial State value is Adding . The state transitions to Added after all Auto
	// Scaling instances are registered with the target group. If Elastic Load
	// Balancing health checks are enabled for the Auto Scaling group, the state
	// transitions to InService after at least one Auto Scaling instance passes the
	// health check. When the target group is in the InService state, Amazon EC2 Auto
	// Scaling can terminate and replace any instances that are reported as unhealthy.
	// If no registered instances pass the health checks, the target group doesn't
	// enter the InService state.
	//
	// Target groups also have an InService state if you attach them in the [CreateAutoScalingGroup] API call.
	// If your target group state is InService , but it is not working properly, check
	// the scaling activities by calling [DescribeScalingActivities]and take any corrective actions necessary.
	//
	// For help with failed health checks, see [Troubleshooting Amazon EC2 Auto Scaling: Health checks] in the Amazon EC2 Auto Scaling User
	// Guide. For more information, see [Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group]in the Amazon EC2 Auto Scaling User Guide.
	//
	// You can use this operation to describe target groups that were attached by
	// using [AttachLoadBalancerTargetGroups], but not for target groups that were attached by using [AttachTrafficSources].
	//
	// [Troubleshooting Amazon EC2 Auto Scaling: Health checks]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ts-as-healthchecks.html
	// [AttachLoadBalancerTargetGroups]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_AttachLoadBalancerTargetGroups.html
	// [DescribeScalingActivities]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeScalingActivities.html
	// [CreateAutoScalingGroup]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_CreateAutoScalingGroup.html
	// [DescribeTrafficSources]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeTrafficSources.html
	// [AttachTrafficSources]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_AttachTrafficSources.html
	// [Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html
	DescribeLoadBalancerTargetGroups(ctx context.Context, params *autoscaling.DescribeLoadBalancerTargetGroupsInput, optFns ...func(*Options)) (*autoscaling.DescribeLoadBalancerTargetGroupsOutput, error)
	// This API operation is superseded by [DescribeTrafficSources], which can describe multiple traffic
	// sources types. We recommend using DescribeTrafficSources to simplify how you
	// manage traffic sources. However, we continue to support DescribeLoadBalancers .
	// You can use both the original DescribeLoadBalancers API operation and
	// DescribeTrafficSources on the same Auto Scaling group.
	//
	// Gets information about the load balancers for the specified Auto Scaling group.
	//
	// This operation describes only Classic Load Balancers. If you have Application
	// Load Balancers, Network Load Balancers, or Gateway Load Balancers, use the [DescribeLoadBalancerTargetGroups]API
	// instead.
	//
	// To determine the attachment status of the load balancer, use the State element
	// in the response. When you attach a load balancer to an Auto Scaling group, the
	// initial State value is Adding . The state transitions to Added after all Auto
	// Scaling instances are registered with the load balancer. If Elastic Load
	// Balancing health checks are enabled for the Auto Scaling group, the state
	// transitions to InService after at least one Auto Scaling instance passes the
	// health check. When the load balancer is in the InService state, Amazon EC2 Auto
	// Scaling can terminate and replace any instances that are reported as unhealthy.
	// If no registered instances pass the health checks, the load balancer doesn't
	// enter the InService state.
	//
	// Load balancers also have an InService state if you attach them in the [CreateAutoScalingGroup] API
	// call. If your load balancer state is InService , but it is not working properly,
	// check the scaling activities by calling [DescribeScalingActivities]and take any corrective actions
	// necessary.
	//
	// For help with failed health checks, see [Troubleshooting Amazon EC2 Auto Scaling: Health checks] in the Amazon EC2 Auto Scaling User
	// Guide. For more information, see [Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group]in the Amazon EC2 Auto Scaling User Guide.
	//
	// [Troubleshooting Amazon EC2 Auto Scaling: Health checks]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ts-as-healthchecks.html
	// [DescribeScalingActivities]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeScalingActivities.html
	// [DescribeLoadBalancerTargetGroups]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeLoadBalancerTargetGroups.html
	// [CreateAutoScalingGroup]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_CreateAutoScalingGroup.html
	// [DescribeTrafficSources]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeTrafficSources.html
	// [Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html
	DescribeLoadBalancers(ctx context.Context, params *autoscaling.DescribeLoadBalancersInput, optFns ...func(*Options)) (*autoscaling.DescribeLoadBalancersOutput, error)
	// Describes the available CloudWatch metrics for Amazon EC2 Auto Scaling.
	DescribeMetricCollectionTypes(ctx context.Context, params *autoscaling.DescribeMetricCollectionTypesInput, optFns ...func(*Options)) (*autoscaling.DescribeMetricCollectionTypesOutput, error)
	// Gets information about the Amazon SNS notifications that are configured for one
	// or more Auto Scaling groups.
	DescribeNotificationConfigurations(ctx context.Context, params *autoscaling.DescribeNotificationConfigurationsInput, optFns ...func(*Options)) (*autoscaling.DescribeNotificationConfigurationsOutput, error)
	// Gets information about the scaling policies in the account and Region.
	DescribePolicies(ctx context.Context, params *autoscaling.DescribePoliciesInput, optFns ...func(*Options)) (*autoscaling.DescribePoliciesOutput, error)
	// Gets information about the scaling activities in the account and Region.
	//
	// When scaling events occur, you see a record of the scaling activity in the
	// scaling activities. For more information, see [Verify a scaling activity for an Auto Scaling group]in the Amazon EC2 Auto Scaling
	// User Guide.
	//
	// If the scaling event succeeds, the value of the StatusCode element in the
	// response is Successful . If an attempt to launch instances failed, the
	// StatusCode value is Failed or Cancelled and the StatusMessage element in the
	// response indicates the cause of the failure. For help interpreting the
	// StatusMessage , see [Troubleshooting Amazon EC2 Auto Scaling] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [Troubleshooting Amazon EC2 Auto Scaling]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/CHAP_Troubleshooting.html
	// [Verify a scaling activity for an Auto Scaling group]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-verify-scaling-activity.html
	DescribeScalingActivities(ctx context.Context, params *autoscaling.DescribeScalingActivitiesInput, optFns ...func(*Options)) (*autoscaling.DescribeScalingActivitiesOutput, error)
	// Describes the scaling process types for use with the [ResumeProcesses] and [SuspendProcesses] APIs.
	//
	// [ResumeProcesses]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_ResumeProcesses.html
	// [SuspendProcesses]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_SuspendProcesses.html
	DescribeScalingProcessTypes(ctx context.Context, params *autoscaling.DescribeScalingProcessTypesInput, optFns ...func(*Options)) (*autoscaling.DescribeScalingProcessTypesOutput, error)
	// Gets information about the scheduled actions that haven't run or that have not
	// reached their end time.
	//
	// To describe the scaling activities for scheduled actions that have already run,
	// call the [DescribeScalingActivities]API.
	//
	// [DescribeScalingActivities]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeScalingActivities.html
	DescribeScheduledActions(ctx context.Context, params *autoscaling.DescribeScheduledActionsInput, optFns ...func(*Options)) (*autoscaling.DescribeScheduledActionsOutput, error)
	// Describes the specified tags.
	//
	// You can use filters to limit the results. For example, you can query for the
	// tags for a specific Auto Scaling group. You can specify multiple values for a
	// filter. A tag must match at least one of the specified values for it to be
	// included in the results.
	//
	// You can also specify multiple filters. The result includes information for a
	// particular tag only if it matches all the filters. If there's no match, no
	// special message is returned.
	//
	// For more information, see [Tag Auto Scaling groups and instances] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [Tag Auto Scaling groups and instances]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-tagging.html
	DescribeTags(ctx context.Context, params *autoscaling.DescribeTagsInput, optFns ...func(*Options)) (*autoscaling.DescribeTagsOutput, error)
	// Describes the termination policies supported by Amazon EC2 Auto Scaling.
	//
	// For more information, see [Configure termination policies for Amazon EC2 Auto Scaling] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [Configure termination policies for Amazon EC2 Auto Scaling]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html
	DescribeTerminationPolicyTypes(ctx context.Context, params *autoscaling.DescribeTerminationPolicyTypesInput, optFns ...func(*Options)) (*autoscaling.DescribeTerminationPolicyTypesOutput, error)
	// Gets information about the traffic sources for the specified Auto Scaling group.
	//
	// You can optionally provide a traffic source type. If you provide a traffic
	// source type, then the results only include that traffic source type.
	//
	// If you do not provide a traffic source type, then the results include all the
	// traffic sources for the specified Auto Scaling group.
	DescribeTrafficSources(ctx context.Context, params *autoscaling.DescribeTrafficSourcesInput, optFns ...func(*Options)) (*autoscaling.DescribeTrafficSourcesOutput, error)
	// Gets information about a warm pool and its instances.
	//
	// For more information, see [Warm pools for Amazon EC2 Auto Scaling] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [Warm pools for Amazon EC2 Auto Scaling]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html
	DescribeWarmPool(ctx context.Context, params *autoscaling.DescribeWarmPoolInput, optFns ...func(*Options)) (*autoscaling.DescribeWarmPoolOutput, error)
	// Removes one or more instances from the specified Auto Scaling group.
	//
	// After the instances are detached, you can manage them independent of the Auto
	// Scaling group.
	//
	// If you do not specify the option to decrement the desired capacity, Amazon EC2
	// Auto Scaling launches instances to replace the ones that are detached.
	//
	// If there is a Classic Load Balancer attached to the Auto Scaling group, the
	// instances are deregistered from the load balancer. If there are target groups
	// attached to the Auto Scaling group, the instances are deregistered from the
	// target groups.
	//
	// For more information, see [Detach or attach instances] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [Detach or attach instances]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-detach-attach-instances.html
	DetachInstances(ctx context.Context, params *autoscaling.DetachInstancesInput, optFns ...func(*Options)) (*autoscaling.DetachInstancesOutput, error)
	// This API operation is superseded by [DetachTrafficSources], which can detach multiple traffic sources
	// types. We recommend using DetachTrafficSources to simplify how you manage
	// traffic sources. However, we continue to support DetachLoadBalancerTargetGroups
	// . You can use both the original DetachLoadBalancerTargetGroups API operation
	// and DetachTrafficSources on the same Auto Scaling group.
	//
	// Detaches one or more target groups from the specified Auto Scaling group.
	//
	// When you detach a target group, it enters the Removing state while
	// deregistering the instances in the group. When all instances are deregistered,
	// then you can no longer describe the target group using the [DescribeLoadBalancerTargetGroups]API call. The
	// instances remain running.
	//
	// You can use this operation to detach target groups that were attached by using [AttachLoadBalancerTargetGroups]
	// , but not for target groups that were attached by using [AttachTrafficSources].
	//
	// [AttachLoadBalancerTargetGroups]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_AttachLoadBalancerTargetGroups.html
	// [DescribeLoadBalancerTargetGroups]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeLoadBalancerTargetGroups.html
	// [DetachTrafficSources]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DetachTrafficSources.html
	// [AttachTrafficSources]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_AttachTrafficSources.html
	DetachLoadBalancerTargetGroups(ctx context.Context, params *autoscaling.DetachLoadBalancerTargetGroupsInput, optFns ...func(*Options)) (*autoscaling.DetachLoadBalancerTargetGroupsOutput, error)
	// This API operation is superseded by [DetachTrafficSources], which can detach multiple traffic sources
	// types. We recommend using DetachTrafficSources to simplify how you manage
	// traffic sources. However, we continue to support DetachLoadBalancers . You can
	// use both the original DetachLoadBalancers API operation and DetachTrafficSources
	// on the same Auto Scaling group.
	//
	// Detaches one or more Classic Load Balancers from the specified Auto Scaling
	// group.
	//
	// This operation detaches only Classic Load Balancers. If you have Application
	// Load Balancers, Network Load Balancers, or Gateway Load Balancers, use the [DetachLoadBalancerTargetGroups]API
	// instead.
	//
	// When you detach a load balancer, it enters the Removing state while
	// deregistering the instances in the group. When all instances are deregistered,
	// then you can no longer describe the load balancer using the [DescribeLoadBalancers]API call. The
	// instances remain running.
	//
	// [DetachLoadBalancerTargetGroups]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DetachLoadBalancerTargetGroups.html
	// [DescribeLoadBalancers]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeLoadBalancers.html
	// [DetachTrafficSources]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DetachTrafficSources.html
	DetachLoadBalancers(ctx context.Context, params *autoscaling.DetachLoadBalancersInput, optFns ...func(*Options)) (*autoscaling.DetachLoadBalancersOutput, error)
	// Detaches one or more traffic sources from the specified Auto Scaling group.
	//
	// When you detach a traffic source, it enters the Removing state while
	// deregistering the instances in the group. When all instances are deregistered,
	// then you can no longer describe the traffic source using the [DescribeTrafficSources]API call. The
	// instances continue to run.
	//
	// [DescribeTrafficSources]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeTrafficSources.html
	DetachTrafficSources(ctx context.Context, params *autoscaling.DetachTrafficSourcesInput, optFns ...func(*Options)) (*autoscaling.DetachTrafficSourcesOutput, error)
	// Disables group metrics collection for the specified Auto Scaling group.
	DisableMetricsCollection(ctx context.Context, params *autoscaling.DisableMetricsCollectionInput, optFns ...func(*Options)) (*autoscaling.DisableMetricsCollectionOutput, error)
	// Enables group metrics collection for the specified Auto Scaling group.
	//
	// You can use these metrics to track changes in an Auto Scaling group and to set
	// alarms on threshold values. You can view group metrics using the Amazon EC2 Auto
	// Scaling console or the CloudWatch console. For more information, see [Monitor CloudWatch metrics for your Auto Scaling groups and instances]in the
	// Amazon EC2 Auto Scaling User Guide.
	//
	// [Monitor CloudWatch metrics for your Auto Scaling groups and instances]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-cloudwatch-monitoring.html
	EnableMetricsCollection(ctx context.Context, params *autoscaling.EnableMetricsCollectionInput, optFns ...func(*Options)) (*autoscaling.EnableMetricsCollectionOutput, error)
	// Moves the specified instances into the standby state.
	//
	// If you choose to decrement the desired capacity of the Auto Scaling group, the
	// instances can enter standby as long as the desired capacity of the Auto Scaling
	// group after the instances are placed into standby is equal to or greater than
	// the minimum capacity of the group.
	//
	// If you choose not to decrement the desired capacity of the Auto Scaling group,
	// the Auto Scaling group launches new instances to replace the instances on
	// standby.
	//
	// For more information, see [Temporarily removing instances from your Auto Scaling group] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [Temporarily removing instances from your Auto Scaling group]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-enter-exit-standby.html
	EnterStandby(ctx context.Context, params *autoscaling.EnterStandbyInput, optFns ...func(*Options)) (*autoscaling.EnterStandbyOutput, error)
	// Executes the specified policy. This can be useful for testing the design of
	// your scaling policy.
	ExecutePolicy(ctx context.Context, params *autoscaling.ExecutePolicyInput, optFns ...func(*Options)) (*autoscaling.ExecutePolicyOutput, error)
	// Moves the specified instances out of the standby state.
	//
	// After you put the instances back in service, the desired capacity is
	// incremented.
	//
	// For more information, see [Temporarily removing instances from your Auto Scaling group] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [Temporarily removing instances from your Auto Scaling group]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-enter-exit-standby.html
	ExitStandby(ctx context.Context, params *autoscaling.ExitStandbyInput, optFns ...func(*Options)) (*autoscaling.ExitStandbyOutput, error)
	// Retrieves the forecast data for a predictive scaling policy.
	//
	// Load forecasts are predictions of the hourly load values using historical load
	// data from CloudWatch and an analysis of historical trends. Capacity forecasts
	// are represented as predicted values for the minimum capacity that is needed on
	// an hourly basis, based on the hourly load forecast.
	//
	// A minimum of 24 hours of data is required to create the initial forecasts.
	// However, having a full 14 days of historical data results in more accurate
	// forecasts.
	//
	// For more information, see [Predictive scaling for Amazon EC2 Auto Scaling] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [Predictive scaling for Amazon EC2 Auto Scaling]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-predictive-scaling.html
	GetPredictiveScalingForecast(ctx context.Context, params *autoscaling.GetPredictiveScalingForecastInput, optFns ...func(*Options)) (*autoscaling.GetPredictiveScalingForecastOutput, error)
	//	Launches a specified number of instances in an Auto Scaling group. Returns
	//
	// instance IDs and other details if launch is successful or error details if
	// launch is unsuccessful.
	LaunchInstances(ctx context.Context, params *autoscaling.LaunchInstancesInput, optFns ...func(*Options)) (*autoscaling.LaunchInstancesOutput, error)
	// Creates or updates a lifecycle hook for the specified Auto Scaling group.
	//
	// Lifecycle hooks let you create solutions that are aware of events in the Auto
	// Scaling instance lifecycle, and then perform a custom action on instances when
	// the corresponding lifecycle event occurs.
	//
	// This step is a part of the procedure for adding a lifecycle hook to an Auto
	// Scaling group:
	//
	//   - (Optional) Create a launch template or launch configuration with a user
	//     data script that runs while an instance is in a wait state due to a lifecycle
	//     hook.
	//
	//   - (Optional) Create a Lambda function and a rule that allows Amazon
	//     EventBridge to invoke your Lambda function when an instance is put into a wait
	//     state due to a lifecycle hook.
	//
	//   - (Optional) Create a notification target and an IAM role. The target can be
	//     either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2
	//     Auto Scaling to publish lifecycle notifications to the target.
	//
	//   - Create the lifecycle hook. Specify whether the hook is used when the
	//     instances launch or terminate.
	//
	//   - If you need more time, record the lifecycle action heartbeat to keep the
	//     instance in a wait state using the [RecordLifecycleActionHeartbeat]API call.
	//
	//   - If you finish before the timeout period ends, send a callback by using the [CompleteLifecycleAction]
	//     API call.
	//
	// For more information, see [Amazon EC2 Auto Scaling lifecycle hooks] in the Amazon EC2 Auto Scaling User Guide.
	//
	// If you exceed your maximum limit of lifecycle hooks, which by default is 50 per
	// Auto Scaling group, the call fails.
	//
	// You can view the lifecycle hooks for an Auto Scaling group using the [DescribeLifecycleHooks] API call.
	// If you are no longer using a lifecycle hook, you can delete it by calling the [DeleteLifecycleHook]
	// API.
	//
	// [RecordLifecycleActionHeartbeat]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_RecordLifecycleActionHeartbeat.html
	// [CompleteLifecycleAction]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_CompleteLifecycleAction.html
	// [Amazon EC2 Auto Scaling lifecycle hooks]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html
	// [DescribeLifecycleHooks]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeLifecycleHooks.html
	// [DeleteLifecycleHook]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DeleteLifecycleHook.html
	PutLifecycleHook(ctx context.Context, params *autoscaling.PutLifecycleHookInput, optFns ...func(*Options)) (*autoscaling.PutLifecycleHookOutput, error)
	// Configures an Auto Scaling group to send notifications when specified events
	// take place. Subscribers to the specified topic can have messages delivered to an
	// endpoint such as a web server or an email address.
	//
	// This configuration overwrites any existing configuration.
	//
	// For more information, see [Amazon SNS notification options for Amazon EC2 Auto Scaling] in the Amazon EC2 Auto Scaling User Guide.
	//
	// If you exceed your maximum limit of SNS topics, which is 10 per Auto Scaling
	// group, the call fails.
	//
	// [Amazon SNS notification options for Amazon EC2 Auto Scaling]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-sns-notifications.html
	PutNotificationConfiguration(ctx context.Context, params *autoscaling.PutNotificationConfigurationInput, optFns ...func(*Options)) (*autoscaling.PutNotificationConfigurationOutput, error)
	// Creates or updates a scaling policy for an Auto Scaling group. Scaling policies
	// are used to scale an Auto Scaling group based on configurable metrics. If no
	// policies are defined, the dynamic scaling and predictive scaling features are
	// not used.
	//
	// For more information about using dynamic scaling, see [Target tracking scaling policies] and [Step and simple scaling policies] in the Amazon EC2
	// Auto Scaling User Guide.
	//
	// For more information about using predictive scaling, see [Predictive scaling for Amazon EC2 Auto Scaling] in the Amazon EC2
	// Auto Scaling User Guide.
	//
	// You can view the scaling policies for an Auto Scaling group using the [DescribePolicies] API
	// call. If you are no longer using a scaling policy, you can delete it by calling
	// the [DeletePolicy]API.
	//
	// [Step and simple scaling policies]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html
	// [DeletePolicy]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DeletePolicy.html
	// [Target tracking scaling policies]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html
	// [DescribePolicies]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribePolicies.html
	// [Predictive scaling for Amazon EC2 Auto Scaling]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-predictive-scaling.html
	PutScalingPolicy(ctx context.Context, params *autoscaling.PutScalingPolicyInput, optFns ...func(*Options)) (*autoscaling.PutScalingPolicyOutput, error)
	// Creates or updates a scheduled scaling action for an Auto Scaling group.
	//
	// For more information, see [Scheduled scaling] in the Amazon EC2 Auto Scaling User Guide.
	//
	// You can view the scheduled actions for an Auto Scaling group using the [DescribeScheduledActions] API
	// call. If you are no longer using a scheduled action, you can delete it by
	// calling the [DeleteScheduledAction]API.
	//
	// If you try to schedule your action in the past, Amazon EC2 Auto Scaling returns
	// an error message.
	//
	// [DeleteScheduledAction]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DeleteScheduledAction.html
	// [DescribeScheduledActions]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeScheduledActions.html
	// [Scheduled scaling]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scheduled-scaling.html
	PutScheduledUpdateGroupAction(ctx context.Context, params *autoscaling.PutScheduledUpdateGroupActionInput, optFns ...func(*Options)) (*autoscaling.PutScheduledUpdateGroupActionOutput, error)
	// Creates or updates a warm pool for the specified Auto Scaling group. A warm
	// pool is a pool of pre-initialized EC2 instances that sits alongside the Auto
	// Scaling group. Whenever your application needs to scale out, the Auto Scaling
	// group can draw on the warm pool to meet its new desired capacity.
	//
	// This operation must be called from the Region in which the Auto Scaling group
	// was created.
	//
	// You can view the instances in the warm pool using the [DescribeWarmPool] API call. If you are no
	// longer using a warm pool, you can delete it by calling the [DeleteWarmPool]API.
	//
	// For more information, see [Warm pools for Amazon EC2 Auto Scaling] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [DeleteWarmPool]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DeleteWarmPool.html
	// [DescribeWarmPool]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeWarmPool.html
	// [Warm pools for Amazon EC2 Auto Scaling]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html
	PutWarmPool(ctx context.Context, params *autoscaling.PutWarmPoolInput, optFns ...func(*Options)) (*autoscaling.PutWarmPoolOutput, error)
	// Records a heartbeat for the lifecycle action associated with the specified
	// token or instance. This extends the timeout by the length of time defined using
	// the [PutLifecycleHook]API call.
	//
	// This step is a part of the procedure for adding a lifecycle hook to an Auto
	// Scaling group:
	//
	//   - (Optional) Create a launch template or launch configuration with a user
	//     data script that runs while an instance is in a wait state due to a lifecycle
	//     hook.
	//
	//   - (Optional) Create a Lambda function and a rule that allows Amazon
	//     EventBridge to invoke your Lambda function when an instance is put into a wait
	//     state due to a lifecycle hook.
	//
	//   - (Optional) Create a notification target and an IAM role. The target can be
	//     either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2
	//     Auto Scaling to publish lifecycle notifications to the target.
	//
	//   - Create the lifecycle hook. Specify whether the hook is used when the
	//     instances launch or terminate.
	//
	//   - If you need more time, record the lifecycle action heartbeat to keep the
	//     instance in a wait state.
	//
	//   - If you finish before the timeout period ends, send a callback by using the [CompleteLifecycleAction]
	//     API call.
	//
	// For more information, see [Amazon EC2 Auto Scaling lifecycle hooks] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [CompleteLifecycleAction]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_CompleteLifecycleAction.html
	// [Amazon EC2 Auto Scaling lifecycle hooks]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html
	// [PutLifecycleHook]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_PutLifecycleHook.html
	RecordLifecycleActionHeartbeat(ctx context.Context, params *autoscaling.RecordLifecycleActionHeartbeatInput, optFns ...func(*Options)) (*autoscaling.RecordLifecycleActionHeartbeatOutput, error)
	// Resumes the specified suspended auto scaling processes, or all suspended
	// process, for the specified Auto Scaling group.
	//
	// For more information, see [Suspend and resume Amazon EC2 Auto Scaling processes] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [Suspend and resume Amazon EC2 Auto Scaling processes]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html
	ResumeProcesses(ctx context.Context, params *autoscaling.ResumeProcessesInput, optFns ...func(*Options)) (*autoscaling.ResumeProcessesOutput, error)
	// Cancels an instance refresh that is in progress and rolls back any changes that
	// it made. Amazon EC2 Auto Scaling replaces any instances that were replaced
	// during the instance refresh. This restores your Auto Scaling group to the
	// configuration that it was using before the start of the instance refresh.
	//
	// This operation is part of the [instance refresh feature] in Amazon EC2 Auto Scaling, which helps you
	// update instances in your Auto Scaling group after you make configuration
	// changes.
	//
	// A rollback is not supported in the following situations:
	//
	//   - There is no desired configuration specified for the instance refresh.
	//
	//   - The Auto Scaling group has a launch template that uses an Amazon Web
	//     Services Systems Manager parameter instead of an AMI ID for the ImageId
	//     property.
	//
	//   - The Auto Scaling group uses the launch template's $Latest or $Default
	//     version.
	//
	// When you receive a successful response from this operation, Amazon EC2 Auto
	// Scaling immediately begins replacing instances. You can check the status of this
	// operation through the [DescribeInstanceRefreshes]API operation.
	//
	// [instance refresh feature]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-refresh.html
	// [DescribeInstanceRefreshes]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeInstanceRefreshes.html
	RollbackInstanceRefresh(ctx context.Context, params *autoscaling.RollbackInstanceRefreshInput, optFns ...func(*Options)) (*autoscaling.RollbackInstanceRefreshOutput, error)
	// Sets the size of the specified Auto Scaling group.
	//
	// If a scale-in activity occurs as a result of a new DesiredCapacity value that
	// is lower than the current size of the group, the Auto Scaling group uses its
	// termination policy to determine which instances to terminate.
	//
	// For more information, see [Manual scaling] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [Manual scaling]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scaling-manually.html
	SetDesiredCapacity(ctx context.Context, params *autoscaling.SetDesiredCapacityInput, optFns ...func(*Options)) (*autoscaling.SetDesiredCapacityOutput, error)
	// Sets the health status of the specified instance.
	//
	// For more information, see [Set up a custom health check for your Auto Scaling group] in the Amazon EC2 Auto Scaling User Guide.
	//
	// [Set up a custom health check for your Auto Scaling group]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/set-up-a-custom-health-check.html
	SetInstanceHealth(ctx context.Context, params *autoscaling.SetInstanceHealthInput, optFns ...func(*Options)) (*autoscaling.SetInstanceHealthOutput, error)
	// Updates the instance protection settings of the specified instances. This
	// operation cannot be called on instances in a warm pool.
	//
	// For more information, see [Use instance scale-in protection] in the Amazon EC2 Auto Scaling User Guide.
	//
	// If you exceed your maximum limit of instance IDs, which is 50 per Auto Scaling
	// group, the call fails.
	//
	// [Use instance scale-in protection]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html
	SetInstanceProtection(ctx context.Context, params *autoscaling.SetInstanceProtectionInput, optFns ...func(*Options)) (*autoscaling.SetInstanceProtectionOutput, error)
	// Starts an instance refresh.
	//
	// This operation is part of the [instance refresh feature] in Amazon EC2 Auto Scaling, which helps you
	// update instances in your Auto Scaling group. This feature is helpful, for
	// example, when you have a new AMI or a new user data script. You just need to
	// create a new launch template that specifies the new AMI or user data script.
	// Then start an instance refresh to immediately begin the process of updating
	// instances in the group.
	//
	// If successful, the request's response contains a unique ID that you can use to
	// track the progress of the instance refresh. To query its status, call the [DescribeInstanceRefreshes]API.
	// To describe the instance refreshes that have already run, call the [DescribeInstanceRefreshes]API. To
	// cancel an instance refresh that is in progress, use the [CancelInstanceRefresh]API.
	//
	// An instance refresh might fail for several reasons, such as EC2 launch
	// failures, misconfigured health checks, or not ignoring or allowing the
	// termination of instances that are in Standby state or protected from scale in.
	// You can monitor for failed EC2 launches using the scaling activities. To find
	// the scaling activities, call the [DescribeScalingActivities]API.
	//
	// If you enable auto rollback, your Auto Scaling group will be rolled back
	// automatically when the instance refresh fails. You can enable this feature
	// before starting an instance refresh by specifying the AutoRollback property in
	// the instance refresh preferences. Otherwise, to roll back an instance refresh
	// before it finishes, use the [RollbackInstanceRefresh]API.
	//
	// [DescribeScalingActivities]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeScalingActivities.html
	// [instance refresh feature]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-refresh.html
	// [DescribeInstanceRefreshes]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeInstanceRefreshes.html
	// [CancelInstanceRefresh]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_CancelInstanceRefresh.html
	// [RollbackInstanceRefresh]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_RollbackInstanceRefresh.html
	StartInstanceRefresh(ctx context.Context, params *autoscaling.StartInstanceRefreshInput, optFns ...func(*Options)) (*autoscaling.StartInstanceRefreshOutput, error)
	// Suspends the specified auto scaling processes, or all processes, for the
	// specified Auto Scaling group.
	//
	// If you suspend either the Launch or Terminate process types, it can prevent
	// other process types from functioning properly. For more information, see [Suspend and resume Amazon EC2 Auto Scaling processes]in the
	// Amazon EC2 Auto Scaling User Guide.
	//
	// To resume processes that have been suspended, call the [ResumeProcesses] API.
	//
	// [ResumeProcesses]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_ResumeProcesses.html
	// [Suspend and resume Amazon EC2 Auto Scaling processes]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html
	SuspendProcesses(ctx context.Context, params *autoscaling.SuspendProcessesInput, optFns ...func(*Options)) (*autoscaling.SuspendProcessesOutput, error)
	// Terminates the specified instance and optionally adjusts the desired group
	// size. This operation cannot be called on instances in a warm pool.
	//
	// This call simply makes a termination request. The instance is not terminated
	// immediately. When an instance is terminated, the instance status changes to
	// terminated . You can't connect to or start an instance after you've terminated
	// it.
	//
	// If you do not specify the option to decrement the desired capacity, Amazon EC2
	// Auto Scaling launches instances to replace the ones that are terminated.
	//
	// By default, Amazon EC2 Auto Scaling balances instances across all Availability
	// Zones. If you decrement the desired capacity, your Auto Scaling group can become
	// unbalanced between Availability Zones. Amazon EC2 Auto Scaling tries to
	// rebalance the group, and rebalancing might terminate instances in other zones.
	// For more information, see [Manual scaling]in the Amazon EC2 Auto Scaling User Guide.
	//
	// [Manual scaling]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scaling-manually.html
	TerminateInstanceInAutoScalingGroup(ctx context.Context, params *autoscaling.TerminateInstanceInAutoScalingGroupInput, optFns ...func(*Options)) (*autoscaling.TerminateInstanceInAutoScalingGroupOutput, error)
	//	We strongly recommend that all Auto Scaling groups use launch templates to
	//
	// ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.
	//
	// Updates the configuration for the specified Auto Scaling group.
	//
	// To update an Auto Scaling group, specify the name of the group and the property
	// that you want to change. Any properties that you don't specify are not changed
	// by this update request. The new settings take effect on any scaling activities
	// after this call returns.
	//
	// If you associate a new launch configuration or template with an Auto Scaling
	// group, all new instances will get the updated configuration. Existing instances
	// continue to run with the configuration that they were originally launched with.
	// When you update a group to specify a mixed instances policy instead of a launch
	// configuration or template, existing instances may be replaced to match the new
	// purchasing options that you specified in the policy. For example, if the group
	// currently has 100% On-Demand capacity and the policy specifies 50% Spot
	// capacity, this means that half of your instances will be gradually terminated
	// and relaunched as Spot Instances. When replacing instances, Amazon EC2 Auto
	// Scaling launches new instances before terminating the old ones, so that updating
	// your group does not compromise the performance or availability of your
	// application.
	//
	// Note the following about changing DesiredCapacity , MaxSize , or MinSize :
	//
	//   - If a scale-in activity occurs as a result of a new DesiredCapacity value
	//     that is lower than the current size of the group, the Auto Scaling group uses
	//     its termination policy to determine which instances to terminate.
	//
	//   - If you specify a new value for MinSize without specifying a value for
	//     DesiredCapacity , and the new MinSize is larger than the current size of the
	//     group, this sets the group's DesiredCapacity to the new MinSize value.
	//
	//   - If you specify a new value for MaxSize without specifying a value for
	//     DesiredCapacity , and the new MaxSize is smaller than the current size of the
	//     group, this sets the group's DesiredCapacity to the new MaxSize value.
	//
	// To see which properties have been set, call the [DescribeAutoScalingGroups] API. To view the scaling
	// policies for an Auto Scaling group, call the [DescribePolicies]API. If the group has scaling
	// policies, you can update them by calling the [PutScalingPolicy]API.
	//
	// [DescribeAutoScalingGroups]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeAutoScalingGroups.html
	// [DescribePolicies]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribePolicies.html
	// [PutScalingPolicy]: https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_PutScalingPolicy.html
	UpdateAutoScalingGroup(ctx context.Context, params *autoscaling.UpdateAutoScalingGroupInput, optFns ...func(*Options)) (*autoscaling.UpdateAutoScalingGroupOutput, error)
}

ASG provides an interface to the AWS ASG service.

type CloudFormation

type CloudFormation interface {
	// Options returns a copy of the client configuration.
	//
	// Callers SHOULD NOT perform mutations on any inner structures within client
	// config. Config overrides should instead be made on a per-operation basis through
	// functional options.
	Options() cloudformation.Options
	// Activate trusted access with Organizations. With trusted access between
	// StackSets and Organizations activated, the management account has permissions to
	// create and manage StackSets for your organization.
	ActivateOrganizationsAccess(ctx context.Context, params *cloudformation.ActivateOrganizationsAccessInput, optFns ...func(*Options)) (*cloudformation.ActivateOrganizationsAccessOutput, error)
	// Activates a public third-party extension, such as a resource or module, to make
	// it available for use in stack templates in your current account and Region. It
	// can also create CloudFormation Hooks, which allow you to evaluate resource
	// configurations before CloudFormation provisions them. Hooks integrate with both
	// CloudFormation and Cloud Control API operations.
	//
	// After you activate an extension, you can use [SetTypeConfiguration] to set specific properties for
	// the extension.
	//
	// To see which extensions have been activated, use [ListTypes]. To see configuration details
	// for an extension, use [DescribeType].
	//
	// For more information, see [Activate a third-party public extension in your account] in the CloudFormation User Guide. For information
	// about creating Hooks, see the [CloudFormation Hooks User Guide].
	//
	// [DescribeType]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html
	// [SetTypeConfiguration]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html
	// [ListTypes]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ListTypes.html
	// [Activate a third-party public extension in your account]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public-activate-extension.html
	// [CloudFormation Hooks User Guide]: https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/what-is-cloudformation-hooks.html
	ActivateType(ctx context.Context, params *cloudformation.ActivateTypeInput, optFns ...func(*Options)) (*cloudformation.ActivateTypeOutput, error)
	// Returns configuration data for the specified CloudFormation extensions, from
	// the CloudFormation registry in your current account and Region.
	//
	// For more information, see [Edit configuration data for extensions in your account] in the CloudFormation User Guide.
	//
	// [Edit configuration data for extensions in your account]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-set-configuration.html
	BatchDescribeTypeConfigurations(ctx context.Context, params *cloudformation.BatchDescribeTypeConfigurationsInput, optFns ...func(*Options)) (*cloudformation.BatchDescribeTypeConfigurationsOutput, error)
	// Cancels an update on the specified stack. If the call completes successfully,
	// the stack rolls back the update and reverts to the previous stack configuration.
	//
	// You can cancel only stacks that are in the UPDATE_IN_PROGRESS state.
	CancelUpdateStack(ctx context.Context, params *cloudformation.CancelUpdateStackInput, optFns ...func(*Options)) (*cloudformation.CancelUpdateStackOutput, error)
	// Continues rolling back a stack from UPDATE_ROLLBACK_FAILED to
	// UPDATE_ROLLBACK_COMPLETE state. Depending on the cause of the failure, you can
	// manually fix the error and continue the rollback. By continuing the rollback,
	// you can return your stack to a working state (the UPDATE_ROLLBACK_COMPLETE
	// state) and then try to update the stack again.
	//
	// A stack enters the UPDATE_ROLLBACK_FAILED state when CloudFormation can't roll
	// back all changes after a failed stack update. For example, this might occur when
	// a stack attempts to roll back to an old database that was deleted outside of
	// CloudFormation. Because CloudFormation doesn't know the instance was deleted, it
	// assumes the instance still exists and attempts to roll back to it, causing the
	// update rollback to fail.
	//
	// For more information, see [Continue rolling back an update] in the CloudFormation User Guide. For information
	// for troubleshooting a failed update rollback, see [Update rollback failed].
	//
	// [Continue rolling back an update]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html
	// [Update rollback failed]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed
	ContinueUpdateRollback(ctx context.Context, params *cloudformation.ContinueUpdateRollbackInput, optFns ...func(*Options)) (*cloudformation.ContinueUpdateRollbackOutput, error)
	// Creates a list of changes that will be applied to a stack so that you can
	// review the changes before executing them. You can create a change set for a
	// stack that doesn't exist or an existing stack. If you create a change set for a
	// stack that doesn't exist, the change set shows all of the resources that
	// CloudFormation will create. If you create a change set for an existing stack,
	// CloudFormation compares the stack's information with the information that you
	// submit in the change set and lists the differences. Use change sets to
	// understand which resources CloudFormation will create or change, and how it will
	// change resources in an existing stack, before you create or update a stack.
	//
	// To create a change set for a stack that doesn't exist, for the ChangeSetType
	// parameter, specify CREATE . To create a change set for an existing stack,
	// specify UPDATE for the ChangeSetType parameter. To create a change set for an
	// import operation, specify IMPORT for the ChangeSetType parameter. After the
	// CreateChangeSet call successfully completes, CloudFormation starts creating the
	// change set. To check the status of the change set or to review it, use the DescribeChangeSet
	// action.
	//
	// When you are satisfied with the changes the change set will make, execute the
	// change set by using the ExecuteChangeSetaction. CloudFormation doesn't make changes until you
	// execute the change set.
	//
	// To create a change set for the entire stack hierarchy, set IncludeNestedStacks
	// to True .
	CreateChangeSet(ctx context.Context, params *cloudformation.CreateChangeSetInput, optFns ...func(*Options)) (*cloudformation.CreateChangeSetOutput, error)
	// Creates a template from existing resources that are not already managed with
	// CloudFormation. You can check the status of the template generation using the
	// DescribeGeneratedTemplate API action.
	CreateGeneratedTemplate(ctx context.Context, params *cloudformation.CreateGeneratedTemplateInput, optFns ...func(*Options)) (*cloudformation.CreateGeneratedTemplateOutput, error)
	// Creates a stack as specified in the template. After the call completes
	// successfully, the stack creation starts. You can check the status of the stack
	// through the DescribeStacksoperation.
	//
	// For more information about creating a stack and monitoring stack progress, see [Managing Amazon Web Services resources as a single unit with CloudFormation stacks]
	// in the CloudFormation User Guide.
	//
	// [Managing Amazon Web Services resources as a single unit with CloudFormation stacks]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html
	CreateStack(ctx context.Context, params *cloudformation.CreateStackInput, optFns ...func(*Options)) (*cloudformation.CreateStackOutput, error)
	// Creates stack instances for the specified accounts, within the specified Amazon
	// Web Services Regions. A stack instance refers to a stack in a specific account
	// and Region. You must specify at least one value for either Accounts or
	// DeploymentTargets , and you must specify at least one value for Regions .
	//
	// The maximum number of organizational unit (OUs) supported by a
	// CreateStackInstances operation is 50.
	//
	// If you need more than 50, consider the following options:
	//
	//   - Batch processing: If you don't want to expose your OU hierarchy, split up
	//     the operations into multiple calls with less than 50 OUs each.
	//
	//   - Parent OU strategy: If you don't mind exposing the OU hierarchy, target a
	//     parent OU that contains all desired child OUs.
	CreateStackInstances(ctx context.Context, params *cloudformation.CreateStackInstancesInput, optFns ...func(*Options)) (*cloudformation.CreateStackInstancesOutput, error)
	// Creates a refactor across multiple stacks, with the list of stacks and
	// resources that are affected.
	CreateStackRefactor(ctx context.Context, params *cloudformation.CreateStackRefactorInput, optFns ...func(*Options)) (*cloudformation.CreateStackRefactorOutput, error)
	// Creates a StackSet.
	CreateStackSet(ctx context.Context, params *cloudformation.CreateStackSetInput, optFns ...func(*Options)) (*cloudformation.CreateStackSetOutput, error)
	// Deactivates trusted access with Organizations. If trusted access is
	// deactivated, the management account does not have permissions to create and
	// manage service-managed StackSets for your organization.
	DeactivateOrganizationsAccess(ctx context.Context, params *cloudformation.DeactivateOrganizationsAccessInput, optFns ...func(*Options)) (*cloudformation.DeactivateOrganizationsAccessOutput, error)
	// Deactivates a public third-party extension, such as a resource or module, or a
	// CloudFormation Hook when you no longer use it.
	//
	// Deactivating an extension deletes the configuration details that are associated
	// with it. To temporarily disable a CloudFormation Hook instead, you can use [SetTypeConfiguration].
	//
	// Once deactivated, an extension can't be used in any CloudFormation operation.
	// This includes stack update operations where the stack template includes the
	// extension, even if no updates are being made to the extension. In addition,
	// deactivated extensions aren't automatically updated if a new version of the
	// extension is released.
	//
	// To see which extensions are currently activated, use [ListTypes].
	//
	// [SetTypeConfiguration]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html
	// [ListTypes]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ListTypes.html
	DeactivateType(ctx context.Context, params *cloudformation.DeactivateTypeInput, optFns ...func(*Options)) (*cloudformation.DeactivateTypeOutput, error)
	// Deletes the specified change set. Deleting change sets ensures that no one
	// executes the wrong change set.
	//
	// If the call successfully completes, CloudFormation successfully deleted the
	// change set.
	//
	// If IncludeNestedStacks specifies True during the creation of the nested change
	// set, then DeleteChangeSet will delete all change sets that belong to the stacks
	// hierarchy and will also delete all change sets for nested stacks with the status
	// of REVIEW_IN_PROGRESS .
	DeleteChangeSet(ctx context.Context, params *cloudformation.DeleteChangeSetInput, optFns ...func(*Options)) (*cloudformation.DeleteChangeSetOutput, error)
	// Deleted a generated template.
	DeleteGeneratedTemplate(ctx context.Context, params *cloudformation.DeleteGeneratedTemplateInput, optFns ...func(*Options)) (*cloudformation.DeleteGeneratedTemplateOutput, error)
	// Deletes a specified stack. Once the call completes successfully, stack deletion
	// starts. Deleted stacks don't show up in the DescribeStacksoperation if the deletion has been
	// completed successfully.
	//
	// For more information about deleting a stack, see [Delete a stack from the CloudFormation console] in the CloudFormation User
	// Guide.
	//
	// [Delete a stack from the CloudFormation console]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html
	DeleteStack(ctx context.Context, params *cloudformation.DeleteStackInput, optFns ...func(*Options)) (*cloudformation.DeleteStackOutput, error)
	// Deletes stack instances for the specified accounts, in the specified Amazon Web
	// Services Regions.
	//
	// The maximum number of organizational unit (OUs) supported by a
	// DeleteStackInstances operation is 50.
	//
	// If you need more than 50, consider the following options:
	//
	//   - Batch processing: If you don't want to expose your OU hierarchy, split up
	//     the operations into multiple calls with less than 50 OUs each.
	//
	//   - Parent OU strategy: If you don't mind exposing the OU hierarchy, target a
	//     parent OU that contains all desired child OUs.
	DeleteStackInstances(ctx context.Context, params *cloudformation.DeleteStackInstancesInput, optFns ...func(*Options)) (*cloudformation.DeleteStackInstancesOutput, error)
	// Deletes a StackSet. Before you can delete a StackSet, all its member stack
	// instances must be deleted. For more information about how to complete this, see DeleteStackInstances
	// .
	DeleteStackSet(ctx context.Context, params *cloudformation.DeleteStackSetInput, optFns ...func(*Options)) (*cloudformation.DeleteStackSetOutput, error)
	// Marks an extension or extension version as DEPRECATED in the CloudFormation
	// registry, removing it from active use. Deprecated extensions or extension
	// versions cannot be used in CloudFormation operations.
	//
	// To deregister an entire extension, you must individually deregister all active
	// versions of that extension. If an extension has only a single active version,
	// deregistering that version results in the extension itself being deregistered
	// and marked as deprecated in the registry.
	//
	// You can't deregister the default version of an extension if there are other
	// active version of that extension. If you do deregister the default version of an
	// extension, the extension type itself is deregistered as well and marked as
	// deprecated.
	//
	// To view the deprecation status of an extension or extension version, use [DescribeType].
	//
	// For more information, see [Remove third-party private extensions from your account] in the CloudFormation User Guide.
	//
	// [DescribeType]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html
	// [Remove third-party private extensions from your account]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-private-deregister-extension.html
	DeregisterType(ctx context.Context, params *cloudformation.DeregisterTypeInput, optFns ...func(*Options)) (*cloudformation.DeregisterTypeOutput, error)
	// Retrieves your account's CloudFormation limits, such as the maximum number of
	// stacks that you can create in your account. For more information about account
	// limits, see [Understand CloudFormation quotas]in the CloudFormation User Guide.
	//
	// [Understand CloudFormation quotas]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html
	DescribeAccountLimits(ctx context.Context, params *cloudformation.DescribeAccountLimitsInput, optFns ...func(*Options)) (*cloudformation.DescribeAccountLimitsOutput, error)
	// Returns the inputs for the change set and a list of changes that CloudFormation
	// will make if you execute the change set. For more information, see [Update CloudFormation stacks using change sets]in the
	// CloudFormation User Guide.
	//
	// [Update CloudFormation stacks using change sets]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html
	DescribeChangeSet(ctx context.Context, params *cloudformation.DescribeChangeSetInput, optFns ...func(*Options)) (*cloudformation.DescribeChangeSetOutput, error)
	// Returns Hook-related information for the change set and a list of changes that
	// CloudFormation makes when you run the change set.
	DescribeChangeSetHooks(ctx context.Context, params *cloudformation.DescribeChangeSetHooksInput, optFns ...func(*Options)) (*cloudformation.DescribeChangeSetHooksOutput, error)
	// Returns CloudFormation events based on flexible query criteria. Groups events
	// by operation ID, enabling you to focus on individual stack operations during
	// deployment.
	//
	// An operation is any action performed on a stack, including stack lifecycle
	// actions (Create, Update, Delete, Rollback), change set creation, nested stack
	// creation, and automatic rollbacks triggered by failures. Each operation has a
	// unique identifier (Operation ID) and represents a discrete change attempt on the
	// stack.
	//
	// Returns different types of events including:
	//
	//   - Progress events - Status updates during stack operation execution.
	//
	//   - Validation errors - Failures from CloudFormation Early Validations.
	//
	//   - Provisioning errors - Resource creation and update failures.
	//
	//   - Hook invocation errors - Failures from CloudFormation Hook during stack
	//     operations.
	//
	// One of ChangeSetName , OperationId or StackName must be specified as input.
	DescribeEvents(ctx context.Context, params *cloudformation.DescribeEventsInput, optFns ...func(*Options)) (*cloudformation.DescribeEventsOutput, error)
	// Describes a generated template. The output includes details about the progress
	// of the creation of a generated template started by a CreateGeneratedTemplate
	// API action or the update of a generated template started with an
	// UpdateGeneratedTemplate API action.
	DescribeGeneratedTemplate(ctx context.Context, params *cloudformation.DescribeGeneratedTemplateInput, optFns ...func(*Options)) (*cloudformation.DescribeGeneratedTemplateOutput, error)
	// Retrieves information about the account's OrganizationAccess status. This API
	// can be called either by the management account or the delegated administrator by
	// using the CallAs parameter. This API can also be called without the CallAs
	// parameter by the management account.
	DescribeOrganizationsAccess(ctx context.Context, params *cloudformation.DescribeOrganizationsAccessInput, optFns ...func(*Options)) (*cloudformation.DescribeOrganizationsAccessOutput, error)
	// Returns information about a CloudFormation extension publisher.
	//
	// If you don't supply a PublisherId , and you have registered as an extension
	// publisher, DescribePublisher returns information about your own publisher
	// account.
	//
	// For more information about registering as a publisher, see:
	//
	// [RegisterPublisher]
	//
	// [Publishing extensions to make them available for public use]
	//   - in the CloudFormation Command Line Interface (CLI) User Guide
	//
	// [Publishing extensions to make them available for public use]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html
	// [RegisterPublisher]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html
	DescribePublisher(ctx context.Context, params *cloudformation.DescribePublisherInput, optFns ...func(*Options)) (*cloudformation.DescribePublisherOutput, error)
	// Describes details of a resource scan.
	DescribeResourceScan(ctx context.Context, params *cloudformation.DescribeResourceScanInput, optFns ...func(*Options)) (*cloudformation.DescribeResourceScanOutput, error)
	// Returns information about a stack drift detection operation. A stack drift
	// detection operation detects whether a stack's actual configuration differs, or
	// has drifted, from its expected configuration, as defined in the stack template
	// and any values specified as template parameters. A stack is considered to have
	// drifted if one or more of its resources have drifted. For more information about
	// stack and resource drift, see [Detect unmanaged configuration changes to stacks and resources with drift detection].
	//
	// Use DetectStackDrift to initiate a stack drift detection operation. DetectStackDrift returns a
	// StackDriftDetectionId you can use to monitor the progress of the operation using
	// DescribeStackDriftDetectionStatus . Once the drift detection operation has
	// completed, use DescribeStackResourceDriftsto return drift information about the stack and its resources.
	//
	// [Detect unmanaged configuration changes to stacks and resources with drift detection]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html
	DescribeStackDriftDetectionStatus(ctx context.Context, params *cloudformation.DescribeStackDriftDetectionStatusInput, optFns ...func(*Options)) (*cloudformation.DescribeStackDriftDetectionStatusOutput, error)
	// Returns all stack related events for a specified stack in reverse chronological
	// order. For more information about a stack's event history, see [Understand CloudFormation stack creation events]in the
	// CloudFormation User Guide.
	//
	// You can list events for stacks that have failed to create or have been deleted
	// by specifying the unique stack identifier (stack ID).
	//
	// [Understand CloudFormation stack creation events]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-resource-configuration-complete.html
	DescribeStackEvents(ctx context.Context, params *cloudformation.DescribeStackEventsInput, optFns ...func(*Options)) (*cloudformation.DescribeStackEventsOutput, error)
	// Returns the stack instance that's associated with the specified StackSet,
	// Amazon Web Services account, and Amazon Web Services Region.
	//
	// For a list of stack instances that are associated with a specific StackSet, use ListStackInstances
	// .
	DescribeStackInstance(ctx context.Context, params *cloudformation.DescribeStackInstanceInput, optFns ...func(*Options)) (*cloudformation.DescribeStackInstanceOutput, error)
	// Describes the stack refactor status.
	DescribeStackRefactor(ctx context.Context, params *cloudformation.DescribeStackRefactorInput, optFns ...func(*Options)) (*cloudformation.DescribeStackRefactorOutput, error)
	// Returns a description of the specified resource in the specified stack.
	//
	// For deleted stacks, DescribeStackResource returns resource information for up
	// to 90 days after the stack has been deleted.
	DescribeStackResource(ctx context.Context, params *cloudformation.DescribeStackResourceInput, optFns ...func(*Options)) (*cloudformation.DescribeStackResourceOutput, error)
	// Returns drift information for the resources that have been checked for drift in
	// the specified stack. This includes actual and expected configuration values for
	// resources where CloudFormation detects configuration drift.
	//
	// For a given stack, there will be one StackResourceDrift for each stack resource
	// that has been checked for drift. Resources that haven't yet been checked for
	// drift aren't included. Resources that don't currently support drift detection
	// aren't checked, and so not included. For a list of resources that support drift
	// detection, see [Resource type support for imports and drift detection].
	//
	// Use DetectStackResourceDrift to detect drift on individual resources, or DetectStackDrift to detect drift on all
	// supported resources for a given stack.
	//
	// [Resource type support for imports and drift detection]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html
	DescribeStackResourceDrifts(ctx context.Context, params *cloudformation.DescribeStackResourceDriftsInput, optFns ...func(*Options)) (*cloudformation.DescribeStackResourceDriftsOutput, error)
	// Returns Amazon Web Services resource descriptions for running and deleted
	// stacks. If StackName is specified, all the associated resources that are part
	// of the stack are returned. If PhysicalResourceId is specified, the associated
	// resources of the stack that the resource belongs to are returned.
	//
	// Only the first 100 resources will be returned. If your stack has more resources
	// than this, you should use ListStackResources instead.
	//
	// For deleted stacks, DescribeStackResources returns resource information for up
	// to 90 days after the stack has been deleted.
	//
	// You must specify either StackName or PhysicalResourceId , but not both. In
	// addition, you can specify LogicalResourceId to filter the returned result. For
	// more information about resources, the LogicalResourceId and PhysicalResourceId ,
	// see the [CloudFormation User Guide].
	//
	// A ValidationError is returned if you specify both StackName and
	// PhysicalResourceId in the same request.
	//
	// [CloudFormation User Guide]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/
	DescribeStackResources(ctx context.Context, params *cloudformation.DescribeStackResourcesInput, optFns ...func(*Options)) (*cloudformation.DescribeStackResourcesOutput, error)
	// Returns the description of the specified StackSet.
	//
	// This API provides strongly consistent reads meaning it will always return the
	// most up-to-date data.
	DescribeStackSet(ctx context.Context, params *cloudformation.DescribeStackSetInput, optFns ...func(*Options)) (*cloudformation.DescribeStackSetOutput, error)
	// Returns the description of the specified StackSet operation.
	//
	// This API provides strongly consistent reads meaning it will always return the
	// most up-to-date data.
	DescribeStackSetOperation(ctx context.Context, params *cloudformation.DescribeStackSetOperationInput, optFns ...func(*Options)) (*cloudformation.DescribeStackSetOperationOutput, error)
	// Returns the description for the specified stack; if no stack name was
	// specified, then it returns the description for all the stacks created. For more
	// information about a stack's event history, see [Understand CloudFormation stack creation events]in the CloudFormation User Guide.
	//
	// If the stack doesn't exist, a ValidationError is returned.
	//
	// [Understand CloudFormation stack creation events]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-resource-configuration-complete.html
	DescribeStacks(ctx context.Context, params *cloudformation.DescribeStacksInput, optFns ...func(*Options)) (*cloudformation.DescribeStacksOutput, error)
	// Returns detailed information about an extension from the CloudFormation
	// registry in your current account and Region.
	//
	// If you specify a VersionId , DescribeType returns information about that
	// specific extension version. Otherwise, it returns information about the default
	// extension version.
	//
	// For more information, see [Edit configuration data for extensions in your account] in the CloudFormation User Guide.
	//
	// [Edit configuration data for extensions in your account]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-set-configuration.html
	DescribeType(ctx context.Context, params *cloudformation.DescribeTypeInput, optFns ...func(*Options)) (*cloudformation.DescribeTypeOutput, error)
	// Returns information about an extension's registration, including its current
	// status and type and version identifiers.
	//
	// When you initiate a registration request using RegisterType, you can then use DescribeTypeRegistration to monitor
	// the progress of that registration request.
	//
	// Once the registration request has completed, use DescribeType to return detailed
	// information about an extension.
	DescribeTypeRegistration(ctx context.Context, params *cloudformation.DescribeTypeRegistrationInput, optFns ...func(*Options)) (*cloudformation.DescribeTypeRegistrationOutput, error)
	// Detects whether a stack's actual configuration differs, or has drifted, from
	// its expected configuration, as defined in the stack template and any values
	// specified as template parameters. For each resource in the stack that supports
	// drift detection, CloudFormation compares the actual configuration of the
	// resource with its expected template configuration. Only resource properties
	// explicitly defined in the stack template are checked for drift. A stack is
	// considered to have drifted if one or more of its resources differ from their
	// expected template configurations. For more information, see [Detect unmanaged configuration changes to stacks and resources with drift detection].
	//
	// Use DetectStackDrift to detect drift on all supported resources for a given
	// stack, or DetectStackResourceDriftto detect drift on individual resources.
	//
	// For a list of stack resources that currently support drift detection, see [Resource type support for imports and drift detection].
	//
	// DetectStackDrift can take up to several minutes, depending on the number of
	// resources contained within the stack. Use DescribeStackDriftDetectionStatusto monitor the progress of a detect
	// stack drift operation. Once the drift detection operation has completed, use DescribeStackResourceDriftsto
	// return drift information about the stack and its resources.
	//
	// When detecting drift on a stack, CloudFormation doesn't detect drift on any
	// nested stacks belonging to that stack. Perform DetectStackDrift directly on the
	// nested stack itself.
	//
	// [Resource type support for imports and drift detection]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html
	// [Detect unmanaged configuration changes to stacks and resources with drift detection]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html
	DetectStackDrift(ctx context.Context, params *cloudformation.DetectStackDriftInput, optFns ...func(*Options)) (*cloudformation.DetectStackDriftOutput, error)
	// Returns information about whether a resource's actual configuration differs, or
	// has drifted, from its expected configuration, as defined in the stack template
	// and any values specified as template parameters. This information includes
	// actual and expected property values for resources in which CloudFormation
	// detects drift. Only resource properties explicitly defined in the stack template
	// are checked for drift. For more information about stack and resource drift, see [Detect unmanaged configuration changes to stacks and resources with drift detection]
	// .
	//
	// Use DetectStackResourceDrift to detect drift on individual resources, or DetectStackDrift to
	// detect drift on all resources in a given stack that support drift detection.
	//
	// Resources that don't currently support drift detection can't be checked. For a
	// list of resources that support drift detection, see [Resource type support for imports and drift detection].
	//
	// [Resource type support for imports and drift detection]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html
	// [Detect unmanaged configuration changes to stacks and resources with drift detection]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html
	DetectStackResourceDrift(ctx context.Context, params *cloudformation.DetectStackResourceDriftInput, optFns ...func(*Options)) (*cloudformation.DetectStackResourceDriftOutput, error)
	// Detect drift on a StackSet. When CloudFormation performs drift detection on a
	// StackSet, it performs drift detection on the stack associated with each stack
	// instance in the StackSet. For more information, see [Performing drift detection on CloudFormation StackSets].
	//
	// DetectStackSetDrift returns the OperationId of the StackSet drift detection
	// operation. Use this operation id with DescribeStackSetOperationto monitor the progress of the drift
	// detection operation. The drift detection operation may take some time, depending
	// on the number of stack instances included in the StackSet, in addition to the
	// number of resources included in each stack.
	//
	// Once the operation has completed, use the following actions to return drift
	// information:
	//
	//   - Use DescribeStackSetto return detailed information about the stack set, including detailed
	//     information about the last completed drift operation performed on the StackSet.
	//     (Information about drift operations that are in progress isn't included.)
	//
	//   - Use ListStackInstancesto return a list of stack instances belonging to the StackSet,
	//     including the drift status and last drift time checked of each instance.
	//
	//   - Use DescribeStackInstanceto return detailed information about a specific stack instance,
	//     including its drift status and last drift time checked.
	//
	// You can only run a single drift detection operation on a given StackSet at one
	// time.
	//
	// To stop a drift detection StackSet operation, use StopStackSetOperation.
	//
	// [Performing drift detection on CloudFormation StackSets]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html
	DetectStackSetDrift(ctx context.Context, params *cloudformation.DetectStackSetDriftInput, optFns ...func(*Options)) (*cloudformation.DetectStackSetDriftOutput, error)
	// Returns the estimated monthly cost of a template. The return value is an Amazon
	// Web Services Simple Monthly Calculator URL with a query string that describes
	// the resources required to run the template.
	EstimateTemplateCost(ctx context.Context, params *cloudformation.EstimateTemplateCostInput, optFns ...func(*Options)) (*cloudformation.EstimateTemplateCostOutput, error)
	// Updates a stack using the input information that was provided when the
	// specified change set was created. After the call successfully completes,
	// CloudFormation starts updating the stack. Use the DescribeStacksaction to view the status of
	// the update.
	//
	// When you execute a change set, CloudFormation deletes all other change sets
	// associated with the stack because they aren't valid for the updated stack.
	//
	// If a stack policy is associated with the stack, CloudFormation enforces the
	// policy during the update. You can't specify a temporary stack policy that
	// overrides the current policy.
	//
	// To create a change set for the entire stack hierarchy, IncludeNestedStacks must
	// have been set to True .
	ExecuteChangeSet(ctx context.Context, params *cloudformation.ExecuteChangeSetInput, optFns ...func(*Options)) (*cloudformation.ExecuteChangeSetOutput, error)
	// Executes the stack refactor operation.
	ExecuteStackRefactor(ctx context.Context, params *cloudformation.ExecuteStackRefactorInput, optFns ...func(*Options)) (*cloudformation.ExecuteStackRefactorOutput, error)
	// Retrieves a generated template. If the template is in an InProgress or Pending
	// status then the template returned will be the template when the template was
	// last in a Complete status. If the template has not yet been in a Complete
	// status then an empty template will be returned.
	GetGeneratedTemplate(ctx context.Context, params *cloudformation.GetGeneratedTemplateInput, optFns ...func(*Options)) (*cloudformation.GetGeneratedTemplateOutput, error)
	// Retrieves detailed information and remediation guidance for a Hook invocation
	// result.
	//
	// If the Hook uses a KMS key to encrypt annotations, callers of the GetHookResult
	// operation must have kms:Decrypt permissions. For more information, see [KMS key policy and permissions for encrypting CloudFormation Hooks results at rest] in the
	// CloudFormation Hooks User Guide.
	//
	// [KMS key policy and permissions for encrypting CloudFormation Hooks results at rest]: https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hooks-kms-key-policy.html
	GetHookResult(ctx context.Context, params *cloudformation.GetHookResultInput, optFns ...func(*Options)) (*cloudformation.GetHookResultOutput, error)
	// Returns the stack policy for a specified stack. If a stack doesn't have a
	// policy, a null value is returned.
	GetStackPolicy(ctx context.Context, params *cloudformation.GetStackPolicyInput, optFns ...func(*Options)) (*cloudformation.GetStackPolicyOutput, error)
	// Returns the template body for a specified stack. You can get the template for
	// running or deleted stacks.
	//
	// For deleted stacks, GetTemplate returns the template for up to 90 days after
	// the stack has been deleted.
	//
	// If the template doesn't exist, a ValidationError is returned.
	GetTemplate(ctx context.Context, params *cloudformation.GetTemplateInput, optFns ...func(*Options)) (*cloudformation.GetTemplateOutput, error)
	// Returns information about a new or existing template. The GetTemplateSummary
	// action is useful for viewing parameter information, such as default parameter
	// values and parameter types, before you create or update a stack or StackSet.
	//
	// You can use the GetTemplateSummary action when you submit a template, or you
	// can get template information for a StackSet, or a running or deleted stack.
	//
	// For deleted stacks, GetTemplateSummary returns the template information for up
	// to 90 days after the stack has been deleted. If the template doesn't exist, a
	// ValidationError is returned.
	GetTemplateSummary(ctx context.Context, params *cloudformation.GetTemplateSummaryInput, optFns ...func(*Options)) (*cloudformation.GetTemplateSummaryOutput, error)
	// Import existing stacks into a new StackSets. Use the stack import operation to
	// import up to 10 stacks into a new StackSet in the same account as the source
	// stack or in a different administrator account and Region, by specifying the
	// stack ID of the stack you intend to import.
	ImportStacksToStackSet(ctx context.Context, params *cloudformation.ImportStacksToStackSetInput, optFns ...func(*Options)) (*cloudformation.ImportStacksToStackSetOutput, error)
	// Returns the ID and status of each active change set for a stack. For example,
	// CloudFormation lists change sets that are in the CREATE_IN_PROGRESS or
	// CREATE_PENDING state.
	ListChangeSets(ctx context.Context, params *cloudformation.ListChangeSetsInput, optFns ...func(*Options)) (*cloudformation.ListChangeSetsOutput, error)
	// Lists all exported output values in the account and Region in which you call
	// this action. Use this action to see the exported output values that you can
	// import into other stacks. To import values, use the [Fn::ImportValue]function.
	//
	// For more information, see [Get exported outputs from a deployed CloudFormation stack].
	//
	// [Get exported outputs from a deployed CloudFormation stack]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html
	// [Fn::ImportValue]: https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-importvalue.html
	ListExports(ctx context.Context, params *cloudformation.ListExportsInput, optFns ...func(*Options)) (*cloudformation.ListExportsOutput, error)
	// Lists your generated templates in this Region.
	ListGeneratedTemplates(ctx context.Context, params *cloudformation.ListGeneratedTemplatesInput, optFns ...func(*Options)) (*cloudformation.ListGeneratedTemplatesOutput, error)
	// Returns summaries of invoked Hooks. For more information, see [View invocation summaries for CloudFormation Hooks] in the
	// CloudFormation Hooks User Guide.
	//
	// This operation supports the following parameter combinations:
	//
	//   - No parameters: Returns all Hook invocation summaries.
	//
	//   - TypeArn only: Returns summaries for a specific Hook.
	//
	//   - TypeArn and Status : Returns summaries for a specific Hook filtered by
	//     status.
	//
	//   - TargetId and TargetType : Returns summaries for a specific Hook invocation
	//     target.
	//
	// [View invocation summaries for CloudFormation Hooks]: https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hooks-view-invocations.html
	ListHookResults(ctx context.Context, params *cloudformation.ListHookResultsInput, optFns ...func(*Options)) (*cloudformation.ListHookResultsOutput, error)
	// Lists all stacks that are importing an exported output value. To modify or
	// remove an exported output value, first use this action to see which stacks are
	// using it. To see the exported output values in your account, see ListExports.
	//
	// For more information about importing an exported output value, see the [Fn::ImportValue]
	// function.
	//
	// [Fn::ImportValue]: https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-importvalue.html
	ListImports(ctx context.Context, params *cloudformation.ListImportsInput, optFns ...func(*Options)) (*cloudformation.ListImportsOutput, error)
	// Lists the related resources for a list of resources from a resource scan. The
	// response indicates whether each returned resource is already managed by
	// CloudFormation.
	ListResourceScanRelatedResources(ctx context.Context, params *cloudformation.ListResourceScanRelatedResourcesInput, optFns ...func(*Options)) (*cloudformation.ListResourceScanRelatedResourcesOutput, error)
	// Lists the resources from a resource scan. The results can be filtered by
	// resource identifier, resource type prefix, tag key, and tag value. Only
	// resources that match all specified filters are returned. The response indicates
	// whether each returned resource is already managed by CloudFormation.
	ListResourceScanResources(ctx context.Context, params *cloudformation.ListResourceScanResourcesInput, optFns ...func(*Options)) (*cloudformation.ListResourceScanResourcesOutput, error)
	// List the resource scans from newest to oldest. By default it will return up to
	// 10 resource scans.
	ListResourceScans(ctx context.Context, params *cloudformation.ListResourceScansInput, optFns ...func(*Options)) (*cloudformation.ListResourceScansOutput, error)
	// Returns drift information for resources in a stack instance.
	//
	// ListStackInstanceResourceDrifts returns drift information for the most recent
	// drift detection operation. If an operation is in progress, it may only return
	// partial results.
	ListStackInstanceResourceDrifts(ctx context.Context, params *cloudformation.ListStackInstanceResourceDriftsInput, optFns ...func(*Options)) (*cloudformation.ListStackInstanceResourceDriftsOutput, error)
	// Returns summary information about stack instances that are associated with the
	// specified StackSet. You can filter for stack instances that are associated with
	// a specific Amazon Web Services account name or Region, or that have a specific
	// status.
	ListStackInstances(ctx context.Context, params *cloudformation.ListStackInstancesInput, optFns ...func(*Options)) (*cloudformation.ListStackInstancesOutput, error)
	// Lists the stack refactor actions that will be taken after calling the ExecuteStackRefactor action.
	ListStackRefactorActions(ctx context.Context, params *cloudformation.ListStackRefactorActionsInput, optFns ...func(*Options)) (*cloudformation.ListStackRefactorActionsOutput, error)
	// Lists all account stack refactor operations and their statuses.
	ListStackRefactors(ctx context.Context, params *cloudformation.ListStackRefactorsInput, optFns ...func(*Options)) (*cloudformation.ListStackRefactorsOutput, error)
	// Returns descriptions of all resources of the specified stack.
	//
	// For deleted stacks, ListStackResources returns resource information for up to
	// 90 days after the stack has been deleted.
	ListStackResources(ctx context.Context, params *cloudformation.ListStackResourcesInput, optFns ...func(*Options)) (*cloudformation.ListStackResourcesOutput, error)
	// Returns summary information about deployment targets for a StackSet.
	ListStackSetAutoDeploymentTargets(ctx context.Context, params *cloudformation.ListStackSetAutoDeploymentTargetsInput, optFns ...func(*Options)) (*cloudformation.ListStackSetAutoDeploymentTargetsOutput, error)
	// Returns summary information about the results of a StackSet operation.
	//
	// This API provides eventually consistent reads meaning it may take some time but
	// will eventually return the most up-to-date data.
	ListStackSetOperationResults(ctx context.Context, params *cloudformation.ListStackSetOperationResultsInput, optFns ...func(*Options)) (*cloudformation.ListStackSetOperationResultsOutput, error)
	// Returns summary information about operations performed on a StackSet.
	//
	// This API provides eventually consistent reads meaning it may take some time but
	// will eventually return the most up-to-date data.
	ListStackSetOperations(ctx context.Context, params *cloudformation.ListStackSetOperationsInput, optFns ...func(*Options)) (*cloudformation.ListStackSetOperationsOutput, error)
	// Returns summary information about StackSets that are associated with the user.
	//
	// This API provides strongly consistent reads meaning it will always return the
	// most up-to-date data.
	//
	//   - [Self-managed permissions] If you set the CallAs parameter to SELF while
	//     signed in to your Amazon Web Services account, ListStackSets returns all
	//     self-managed StackSets in your Amazon Web Services account.
	//
	//   - [Service-managed permissions] If you set the CallAs parameter to SELF while
	//     signed in to the organization's management account, ListStackSets returns all
	//     StackSets in the management account.
	//
	//   - [Service-managed permissions] If you set the CallAs parameter to
	//     DELEGATED_ADMIN while signed in to your member account, ListStackSets returns
	//     all StackSets with service-managed permissions in the management account.
	ListStackSets(ctx context.Context, params *cloudformation.ListStackSetsInput, optFns ...func(*Options)) (*cloudformation.ListStackSetsOutput, error)
	// Returns the summary information for stacks whose status matches the specified
	// StackStatusFilter . Summary information for stacks that have been deleted is
	// kept for 90 days after the stack is deleted. If no StackStatusFilter is
	// specified, summary information for all stacks is returned (including existing
	// stacks and stacks that have been deleted).
	ListStacks(ctx context.Context, params *cloudformation.ListStacksInput, optFns ...func(*Options)) (*cloudformation.ListStacksOutput, error)
	// Returns a list of registration tokens for the specified extension(s).
	ListTypeRegistrations(ctx context.Context, params *cloudformation.ListTypeRegistrationsInput, optFns ...func(*Options)) (*cloudformation.ListTypeRegistrationsOutput, error)
	// Returns summary information about the versions of an extension.
	ListTypeVersions(ctx context.Context, params *cloudformation.ListTypeVersionsInput, optFns ...func(*Options)) (*cloudformation.ListTypeVersionsOutput, error)
	// Returns summary information about all extensions, including your private
	// resource types, modules, and Hooks as well as all public extensions from Amazon
	// Web Services and third-party publishers.
	ListTypes(ctx context.Context, params *cloudformation.ListTypesInput, optFns ...func(*Options)) (*cloudformation.ListTypesOutput, error)
	// Publishes the specified extension to the CloudFormation registry as a public
	// extension in this Region. Public extensions are available for use by all
	// CloudFormation users. For more information about publishing extensions, see [Publishing extensions to make them available for public use]in
	// the CloudFormation Command Line Interface (CLI) User Guide.
	//
	// To publish an extension, you must be registered as a publisher with
	// CloudFormation. For more information, see [RegisterPublisher].
	//
	// [Publishing extensions to make them available for public use]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html
	// [RegisterPublisher]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html
	PublishType(ctx context.Context, params *cloudformation.PublishTypeInput, optFns ...func(*Options)) (*cloudformation.PublishTypeOutput, error)
	// Reports progress of a resource handler to CloudFormation.
	//
	// Reserved for use by the [CloudFormation CLI]. Don't use this API in your code.
	//
	// [CloudFormation CLI]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html
	RecordHandlerProgress(ctx context.Context, params *cloudformation.RecordHandlerProgressInput, optFns ...func(*Options)) (*cloudformation.RecordHandlerProgressOutput, error)
	// Registers your account as a publisher of public extensions in the
	// CloudFormation registry. Public extensions are available for use by all
	// CloudFormation users. This publisher ID applies to your account in all Amazon
	// Web Services Regions.
	//
	// For information about requirements for registering as a public extension
	// publisher, see [Prerequisite: Registering your account to publish CloudFormation extensions]in the CloudFormation Command Line Interface (CLI) User Guide.
	//
	// [Prerequisite: Registering your account to publish CloudFormation extensions]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs
	RegisterPublisher(ctx context.Context, params *cloudformation.RegisterPublisherInput, optFns ...func(*Options)) (*cloudformation.RegisterPublisherOutput, error)
	// Registers an extension with the CloudFormation service. Registering an
	// extension makes it available for use in CloudFormation templates in your Amazon
	// Web Services account, and includes:
	//
	//   - Validating the extension schema.
	//
	//   - Determining which handlers, if any, have been specified for the extension.
	//
	//   - Making the extension available for use in your account.
	//
	// For more information about how to develop extensions and ready them for
	// registration, see [Creating resource types using the CloudFormation CLI]in the CloudFormation Command Line Interface (CLI) User Guide.
	//
	// You can have a maximum of 50 resource extension versions registered at a time.
	// This maximum is per account and per Region. Use [DeregisterType]to deregister specific
	// extension versions if necessary.
	//
	// Once you have initiated a registration request using RegisterType, you can use DescribeTypeRegistration to monitor
	// the progress of the registration request.
	//
	// Once you have registered a private extension in your account and Region, use [SetTypeConfiguration]
	// to specify configuration properties for the extension. For more information, see
	// [Edit configuration data for extensions in your account]in the CloudFormation User Guide.
	//
	// [SetTypeConfiguration]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html
	// [Edit configuration data for extensions in your account]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-set-configuration.html
	// [Creating resource types using the CloudFormation CLI]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-types.html
	// [DeregisterType]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeregisterType.html
	RegisterType(ctx context.Context, params *cloudformation.RegisterTypeInput, optFns ...func(*Options)) (*cloudformation.RegisterTypeOutput, error)
	// When specifying RollbackStack , you preserve the state of previously provisioned
	// resources when an operation fails. You can check the status of the stack through
	// the DescribeStacksoperation.
	//
	// Rolls back the specified stack to the last known stable state from CREATE_FAILED
	// or UPDATE_FAILED stack statuses.
	//
	// This operation will delete a stack if it doesn't contain a last known stable
	// state. A last known stable state includes any status in a *_COMPLETE . This
	// includes the following stack statuses.
	//
	//   - CREATE_COMPLETE
	//
	//   - UPDATE_COMPLETE
	//
	//   - UPDATE_ROLLBACK_COMPLETE
	//
	//   - IMPORT_COMPLETE
	//
	//   - IMPORT_ROLLBACK_COMPLETE
	RollbackStack(ctx context.Context, params *cloudformation.RollbackStackInput, optFns ...func(*Options)) (*cloudformation.RollbackStackOutput, error)
	// Sets a stack policy for a specified stack.
	SetStackPolicy(ctx context.Context, params *cloudformation.SetStackPolicyInput, optFns ...func(*Options)) (*cloudformation.SetStackPolicyOutput, error)
	// Specifies the configuration data for a CloudFormation extension, such as a
	// resource or Hook, in the given account and Region.
	//
	// For more information, see [Edit configuration data for extensions in your account] in the CloudFormation User Guide.
	//
	// To view the current configuration data for an extension, refer to the
	// ConfigurationSchema element of [DescribeType].
	//
	// It's strongly recommended that you use dynamic references to restrict sensitive
	// configuration definitions, such as third-party credentials. For more
	// information, see [Specify values stored in other services using dynamic references]in the CloudFormation User Guide.
	//
	// For more information about setting the configuration data for resource types,
	// see [Defining the account-level configuration of an extension]in the CloudFormation Command Line Interface (CLI) User Guide. For more
	// information about setting the configuration data for Hooks, see the [CloudFormation Hooks User Guide].
	//
	// [DescribeType]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html
	// [Edit configuration data for extensions in your account]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-set-configuration.html
	// [Specify values stored in other services using dynamic references]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html
	// [Defining the account-level configuration of an extension]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-model.html#resource-type-howto-configuration
	// [CloudFormation Hooks User Guide]: https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/what-is-cloudformation-hooks.html
	SetTypeConfiguration(ctx context.Context, params *cloudformation.SetTypeConfigurationInput, optFns ...func(*Options)) (*cloudformation.SetTypeConfigurationOutput, error)
	// Specify the default version of an extension. The default version of an
	// extension will be used in CloudFormation operations.
	SetTypeDefaultVersion(ctx context.Context, params *cloudformation.SetTypeDefaultVersionInput, optFns ...func(*Options)) (*cloudformation.SetTypeDefaultVersionOutput, error)
	// Sends a signal to the specified resource with a success or failure status. You
	// can use the SignalResource operation in conjunction with a creation policy or
	// update policy. CloudFormation doesn't proceed with a stack creation or update
	// until resources receive the required number of signals or the timeout period is
	// exceeded. The SignalResource operation is useful in cases where you want to
	// send signals from anywhere other than an Amazon EC2 instance.
	SignalResource(ctx context.Context, params *cloudformation.SignalResourceInput, optFns ...func(*Options)) (*cloudformation.SignalResourceOutput, error)
	// Starts a scan of the resources in this account in this Region. You can the
	// status of a scan using the ListResourceScans API action.
	StartResourceScan(ctx context.Context, params *cloudformation.StartResourceScanInput, optFns ...func(*Options)) (*cloudformation.StartResourceScanOutput, error)
	// Stops an in-progress operation on a StackSet and its associated stack
	// instances. StackSets will cancel all the unstarted stack instance deployments
	// and wait for those are in-progress to complete.
	StopStackSetOperation(ctx context.Context, params *cloudformation.StopStackSetOperationInput, optFns ...func(*Options)) (*cloudformation.StopStackSetOperationOutput, error)
	// Tests a registered extension to make sure it meets all necessary requirements
	// for being published in the CloudFormation registry.
	//
	//   - For resource types, this includes passing all contracts tests defined for
	//     the type.
	//
	//   - For modules, this includes determining if the module's model meets all
	//     necessary requirements.
	//
	// For more information, see [Testing your public extension before publishing] in the CloudFormation Command Line Interface (CLI)
	// User Guide.
	//
	// If you don't specify a version, CloudFormation uses the default version of the
	// extension in your account and Region for testing.
	//
	// To perform testing, CloudFormation assumes the execution role specified when
	// the type was registered. For more information, see [RegisterType].
	//
	// Once you've initiated testing on an extension using TestType , you can pass the
	// returned TypeVersionArn into [DescribeType] to monitor the current test status and test
	// status description for the extension.
	//
	// An extension must have a test status of PASSED before it can be published. For
	// more information, see [Publishing extensions to make them available for public use]in the CloudFormation Command Line Interface (CLI) User
	// Guide.
	//
	// [DescribeType]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html
	// [Testing your public extension before publishing]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-testing
	// [RegisterType]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html
	// [Publishing extensions to make them available for public use]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html
	TestType(ctx context.Context, params *cloudformation.TestTypeInput, optFns ...func(*Options)) (*cloudformation.TestTypeOutput, error)
	// Updates a generated template. This can be used to change the name, add and
	// remove resources, refresh resources, and change the DeletionPolicy and
	// UpdateReplacePolicy settings. You can check the status of the update to the
	// generated template using the DescribeGeneratedTemplate API action.
	UpdateGeneratedTemplate(ctx context.Context, params *cloudformation.UpdateGeneratedTemplateInput, optFns ...func(*Options)) (*cloudformation.UpdateGeneratedTemplateOutput, error)
	// Updates a stack as specified in the template. After the call completes
	// successfully, the stack update starts. You can check the status of the stack
	// through the DescribeStacksaction.
	//
	// To get a copy of the template for an existing stack, you can use the GetTemplate action.
	//
	// For more information about updating a stack and monitoring the progress of the
	// update, see [Managing Amazon Web Services resources as a single unit with CloudFormation stacks]in the CloudFormation User Guide.
	//
	// [Managing Amazon Web Services resources as a single unit with CloudFormation stacks]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html
	UpdateStack(ctx context.Context, params *cloudformation.UpdateStackInput, optFns ...func(*Options)) (*cloudformation.UpdateStackOutput, error)
	// Updates the parameter values for stack instances for the specified accounts,
	// within the specified Amazon Web Services Regions. A stack instance refers to a
	// stack in a specific account and Region.
	//
	// You can only update stack instances in Amazon Web Services Regions and accounts
	// where they already exist; to create additional stack instances, use [CreateStackInstances].
	//
	// During StackSet updates, any parameters overridden for a stack instance aren't
	// updated, but retain their overridden value.
	//
	// You can only update the parameter values that are specified in the StackSet. To
	// add or delete a parameter itself, use [UpdateStackSet]to update the StackSet template. If you
	// add a parameter to a template, before you can override the parameter value
	// specified in the StackSet you must first use [UpdateStackSet]to update all stack instances with
	// the updated template and parameter value specified in the StackSet. Once a stack
	// instance has been updated with the new parameter, you can then override the
	// parameter value using UpdateStackInstances .
	//
	// The maximum number of organizational unit (OUs) supported by a
	// UpdateStackInstances operation is 50.
	//
	// If you need more than 50, consider the following options:
	//
	//   - Batch processing: If you don't want to expose your OU hierarchy, split up
	//     the operations into multiple calls with less than 50 OUs each.
	//
	//   - Parent OU strategy: If you don't mind exposing the OU hierarchy, target a
	//     parent OU that contains all desired child OUs.
	//
	// [CreateStackInstances]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStackInstances.html
	// [UpdateStackSet]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html
	UpdateStackInstances(ctx context.Context, params *cloudformation.UpdateStackInstancesInput, optFns ...func(*Options)) (*cloudformation.UpdateStackInstancesOutput, error)
	// Updates the StackSet and associated stack instances in the specified accounts
	// and Amazon Web Services Regions.
	//
	// Even if the StackSet operation created by updating the StackSet fails
	// (completely or partially, below or above a specified failure tolerance), the
	// StackSet is updated with your changes. Subsequent CreateStackInstancescalls on the specified
	// StackSet use the updated StackSet.
	//
	// The maximum number of organizational unit (OUs) supported by a UpdateStackSet
	// operation is 50.
	//
	// If you need more than 50, consider the following options:
	//
	//   - Batch processing: If you don't want to expose your OU hierarchy, split up
	//     the operations into multiple calls with less than 50 OUs each.
	//
	//   - Parent OU strategy: If you don't mind exposing the OU hierarchy, target a
	//     parent OU that contains all desired child OUs.
	UpdateStackSet(ctx context.Context, params *cloudformation.UpdateStackSetInput, optFns ...func(*Options)) (*cloudformation.UpdateStackSetOutput, error)
	// Updates termination protection for the specified stack. If a user attempts to
	// delete a stack with termination protection enabled, the operation fails and the
	// stack remains unchanged. For more information, see [Protect a CloudFormation stack from being deleted]in the CloudFormation User
	// Guide.
	//
	// For [nested stacks], termination protection is set on the root stack and can't be changed
	// directly on the nested stack.
	//
	// [nested stacks]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html
	// [Protect a CloudFormation stack from being deleted]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html
	UpdateTerminationProtection(ctx context.Context, params *cloudformation.UpdateTerminationProtectionInput, optFns ...func(*Options)) (*cloudformation.UpdateTerminationProtectionOutput, error)
	// Validates a specified template. CloudFormation first checks if the template is
	// valid JSON. If it isn't, CloudFormation checks if the template is valid YAML. If
	// both these checks fail, CloudFormation returns a template validation error.
	ValidateTemplate(ctx context.Context, params *cloudformation.ValidateTemplateInput, optFns ...func(*Options)) (*cloudformation.ValidateTemplateOutput, error)
}

CloudFormation provides an interface to the AWS CloudFormation service.

type CloudTrail added in v0.92.0

type CloudTrail interface {
	// Options returns a copy of the client configuration.
	//
	// Callers SHOULD NOT perform mutations on any inner structures within client
	// config. Config overrides should instead be made on a per-operation basis through
	// functional options.
	Options() cloudtrail.Options
	// Adds one or more tags to a trail, event data store, dashboard, or channel, up
	// to a limit of 50. Overwrites an existing tag's value when a new value is
	// specified for an existing tag key. Tag key names must be unique; you cannot have
	// two keys with the same name but different values. If you specify a key without a
	// value, the tag will be created with the specified key and a value of null. You
	// can tag a trail or event data store that applies to all Amazon Web Services
	// Regions only from the Region in which the trail or event data store was created
	// (also known as its home Region).
	AddTags(ctx context.Context, params *cloudtrail.AddTagsInput, optFns ...func(*Options)) (*cloudtrail.AddTagsOutput, error)
	// Cancels a query if the query is not in a terminated state, such as CANCELLED ,
	// FAILED , TIMED_OUT , or FINISHED . You must specify an ARN value for
	// EventDataStore . The ID of the query that you want to cancel is also required.
	// When you run CancelQuery , the query status might show as CANCELLED even if the
	// operation is not yet finished.
	CancelQuery(ctx context.Context, params *cloudtrail.CancelQueryInput, optFns ...func(*Options)) (*cloudtrail.CancelQueryOutput, error)
	// Creates a channel for CloudTrail to ingest events from a partner or external
	// source. After you create a channel, a CloudTrail Lake event data store can log
	// events from the partner or source that you specify.
	CreateChannel(ctx context.Context, params *cloudtrail.CreateChannelInput, optFns ...func(*Options)) (*cloudtrail.CreateChannelOutput, error)
	//	Creates a custom dashboard or the Highlights dashboard.
	//
	//	 - Custom dashboards - Custom dashboards allow you to query events in any
	//	 event data store type. You can add up to 10 widgets to a custom dashboard. You
	//	 can manually refresh a custom dashboard, or you can set a refresh schedule.
	//
	//	 - Highlights dashboard - You can create the Highlights dashboard to see a
	//	 summary of key user activities and API usage across all your event data stores.
	//	 CloudTrail Lake manages the Highlights dashboard and refreshes the dashboard
	//	 every 6 hours. To create the Highlights dashboard, you must set and enable a
	//	 refresh schedule.
	//
	// CloudTrail runs queries to populate the dashboard's widgets during a manual or
	// scheduled refresh. CloudTrail must be granted permissions to run the StartQuery
	// operation on your behalf. To provide permissions, run the PutResourcePolicy
	// operation to attach a resource-based policy to each event data store. For more
	// information, see [Example: Allow CloudTrail to run queries to populate a dashboard]in the CloudTrail User Guide.
	//
	// To set a refresh schedule, CloudTrail must be granted permissions to run the
	// StartDashboardRefresh operation to refresh the dashboard on your behalf. To
	// provide permissions, run the PutResourcePolicy operation to attach a
	// resource-based policy to the dashboard. For more information, see [Resource-based policy example for a dashboard]in the
	// CloudTrail User Guide.
	//
	// For more information about dashboards, see [CloudTrail Lake dashboards] in the CloudTrail User Guide.
	//
	// [CloudTrail Lake dashboards]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-dashboard.html
	// [Example: Allow CloudTrail to run queries to populate a dashboard]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/security_iam_resource-based-policy-examples.html#security_iam_resource-based-policy-examples-eds-dashboard
	// [Resource-based policy example for a dashboard]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/security_iam_resource-based-policy-examples.html#security_iam_resource-based-policy-examples-dashboards
	CreateDashboard(ctx context.Context, params *cloudtrail.CreateDashboardInput, optFns ...func(*Options)) (*cloudtrail.CreateDashboardOutput, error)
	// Creates a new event data store.
	CreateEventDataStore(ctx context.Context, params *cloudtrail.CreateEventDataStoreInput, optFns ...func(*Options)) (*cloudtrail.CreateEventDataStoreOutput, error)
	// Creates a trail that specifies the settings for delivery of log data to an
	// Amazon S3 bucket.
	CreateTrail(ctx context.Context, params *cloudtrail.CreateTrailInput, optFns ...func(*Options)) (*cloudtrail.CreateTrailOutput, error)
	// Deletes a channel.
	DeleteChannel(ctx context.Context, params *cloudtrail.DeleteChannelInput, optFns ...func(*Options)) (*cloudtrail.DeleteChannelOutput, error)
	//	Deletes the specified dashboard. You cannot delete a dashboard that has
	//
	// termination protection enabled.
	DeleteDashboard(ctx context.Context, params *cloudtrail.DeleteDashboardInput, optFns ...func(*Options)) (*cloudtrail.DeleteDashboardOutput, error)
	// Disables the event data store specified by EventDataStore , which accepts an
	// event data store ARN. After you run DeleteEventDataStore , the event data store
	// enters a PENDING_DELETION state, and is automatically deleted after a wait
	// period of seven days. TerminationProtectionEnabled must be set to False on the
	// event data store and the FederationStatus must be DISABLED . You cannot delete
	// an event data store if TerminationProtectionEnabled is True or the
	// FederationStatus is ENABLED .
	//
	// After you run DeleteEventDataStore on an event data store, you cannot run
	// ListQueries , DescribeQuery , or GetQueryResults on queries that are using an
	// event data store in a PENDING_DELETION state. An event data store in the
	// PENDING_DELETION state does not incur costs.
	DeleteEventDataStore(ctx context.Context, params *cloudtrail.DeleteEventDataStoreInput, optFns ...func(*Options)) (*cloudtrail.DeleteEventDataStoreOutput, error)
	//	Deletes the resource-based policy attached to the CloudTrail event data store,
	//
	// dashboard, or channel.
	DeleteResourcePolicy(ctx context.Context, params *cloudtrail.DeleteResourcePolicyInput, optFns ...func(*Options)) (*cloudtrail.DeleteResourcePolicyOutput, error)
	// Deletes a trail. This operation must be called from the Region in which the
	// trail was created. DeleteTrail cannot be called on the shadow trails
	// (replicated trails in other Regions) of a trail that is enabled in all Regions.
	//
	// While deleting a CloudTrail trail is an irreversible action, CloudTrail does
	// not delete log files in the Amazon S3 bucket for that trail, the Amazon S3
	// bucket itself, or the CloudWatchlog group to which the trail delivers events.
	// Deleting a multi-Region trail will stop logging of events in all Amazon Web
	// Services Regions enabled in your Amazon Web Services account. Deleting a
	// single-Region trail will stop logging of events in that Region only. It will not
	// stop logging of events in other Regions even if the trails in those other
	// Regions have identical names to the deleted trail.
	//
	// For information about account closure and deletion of CloudTrail trails, see [https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-account-closure.html].
	//
	// [https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-account-closure.html]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-account-closure.html
	DeleteTrail(ctx context.Context, params *cloudtrail.DeleteTrailInput, optFns ...func(*Options)) (*cloudtrail.DeleteTrailOutput, error)
	// Removes CloudTrail delegated administrator permissions from a member account in
	// an organization.
	DeregisterOrganizationDelegatedAdmin(ctx context.Context, params *cloudtrail.DeregisterOrganizationDelegatedAdminInput, optFns ...func(*Options)) (*cloudtrail.DeregisterOrganizationDelegatedAdminOutput, error)
	// Returns metadata about a query, including query run time in milliseconds,
	// number of events scanned and matched, and query status. If the query results
	// were delivered to an S3 bucket, the response also provides the S3 URI and the
	// delivery status.
	//
	// You must specify either QueryId or QueryAlias . Specifying the QueryAlias
	// parameter returns information about the last query run for the alias. You can
	// provide RefreshId along with QueryAlias to view the query results of a
	// dashboard query for the specified RefreshId .
	DescribeQuery(ctx context.Context, params *cloudtrail.DescribeQueryInput, optFns ...func(*Options)) (*cloudtrail.DescribeQueryOutput, error)
	// Retrieves settings for one or more trails associated with the current Region
	// for your account.
	DescribeTrails(ctx context.Context, params *cloudtrail.DescribeTrailsInput, optFns ...func(*Options)) (*cloudtrail.DescribeTrailsOutput, error)
	//	Disables Lake query federation on the specified event data store. When you
	//
	// disable federation, CloudTrail disables the integration with Glue, Lake
	// Formation, and Amazon Athena. After disabling Lake query federation, you can no
	// longer query your event data in Amazon Athena.
	//
	// No CloudTrail Lake data is deleted when you disable federation and you can
	// continue to run queries in CloudTrail Lake.
	DisableFederation(ctx context.Context, params *cloudtrail.DisableFederationInput, optFns ...func(*Options)) (*cloudtrail.DisableFederationOutput, error)
	//	Enables Lake query federation on the specified event data store. Federating an
	//
	// event data store lets you view the metadata associated with the event data store
	// in the Glue [Data Catalog]and run SQL queries against your event data using Amazon Athena.
	// The table metadata stored in the Glue Data Catalog lets the Athena query engine
	// know how to find, read, and process the data that you want to query.
	//
	// When you enable Lake query federation, CloudTrail creates a managed database
	// named aws:cloudtrail (if the database doesn't already exist) and a managed
	// federated table in the Glue Data Catalog. The event data store ID is used for
	// the table name. CloudTrail registers the role ARN and event data store in [Lake Formation], the
	// service responsible for allowing fine-grained access control of the federated
	// resources in the Glue Data Catalog.
	//
	// For more information about Lake query federation, see [Federate an event data store].
	//
	// [Federate an event data store]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-federation.html
	// [Lake Formation]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-federation-lake-formation.html
	// [Data Catalog]: https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro
	EnableFederation(ctx context.Context, params *cloudtrail.EnableFederationInput, optFns ...func(*Options)) (*cloudtrail.EnableFederationOutput, error)
	//	Generates a query from a natural language prompt. This operation uses
	//
	// generative artificial intelligence (generative AI) to produce a ready-to-use SQL
	// query from the prompt.
	//
	// The prompt can be a question or a statement about the event data in your event
	// data store. For example, you can enter prompts like "What are my top errors in
	// the past month?" and “Give me a list of users that used SNS.”
	//
	// The prompt must be in English. For information about limitations, permissions,
	// and supported Regions, see [Create CloudTrail Lake queries from natural language prompts]in the CloudTrail user guide.
	//
	// Do not include any personally identifying, confidential, or sensitive
	// information in your prompts.
	//
	// This feature uses generative AI large language models (LLMs); we recommend
	// double-checking the LLM response.
	//
	// [Create CloudTrail Lake queries from natural language prompts]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/lake-query-generator.html
	GenerateQuery(ctx context.Context, params *cloudtrail.GenerateQueryInput, optFns ...func(*Options)) (*cloudtrail.GenerateQueryOutput, error)
	// Returns information about a specific channel.
	GetChannel(ctx context.Context, params *cloudtrail.GetChannelInput, optFns ...func(*Options)) (*cloudtrail.GetChannelOutput, error)
	// Returns the specified dashboard.
	GetDashboard(ctx context.Context, params *cloudtrail.GetDashboardInput, optFns ...func(*Options)) (*cloudtrail.GetDashboardOutput, error)
	// Retrieves the current event configuration settings for the specified event data
	// store or trail. The response includes maximum event size configuration, the
	// context key selectors configured for the event data store, and any aggregation
	// settings configured for the trail.
	GetEventConfiguration(ctx context.Context, params *cloudtrail.GetEventConfigurationInput, optFns ...func(*Options)) (*cloudtrail.GetEventConfigurationOutput, error)
	// Returns information about an event data store specified as either an ARN or the
	// ID portion of the ARN.
	GetEventDataStore(ctx context.Context, params *cloudtrail.GetEventDataStoreInput, optFns ...func(*Options)) (*cloudtrail.GetEventDataStoreOutput, error)
	// Describes the settings for the event selectors that you configured for your
	// trail. The information returned for your event selectors includes the following:
	//
	//   - If your event selector includes read-only events, write-only events, or all
	//     events. This applies to management events, data events, and network activity
	//     events.
	//
	//   - If your event selector includes management events.
	//
	//   - If your event selector includes network activity events, the event sources
	//     for which you are logging network activity events.
	//
	//   - If your event selector includes data events, the resources on which you are
	//     logging data events.
	//
	// For more information about logging management, data, and network activity
	// events, see the following topics in the CloudTrail User Guide:
	//
	// [Logging management events]
	//
	// [Logging data events]
	//
	// [Logging network activity events]
	//
	// [Logging network activity events]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-network-events-with-cloudtrail.html
	// [Logging management events]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html
	// [Logging data events]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html
	GetEventSelectors(ctx context.Context, params *cloudtrail.GetEventSelectorsInput, optFns ...func(*Options)) (*cloudtrail.GetEventSelectorsOutput, error)
	// Returns information about a specific import.
	GetImport(ctx context.Context, params *cloudtrail.GetImportInput, optFns ...func(*Options)) (*cloudtrail.GetImportOutput, error)
	// Describes the settings for the Insights event selectors that you configured for
	// your trail or event data store. GetInsightSelectors shows if CloudTrail
	// Insights logging is enabled and which Insights types are configured with
	// corresponding event categories. If you run GetInsightSelectors on a trail or
	// event data store that does not have Insights events enabled, the operation
	// throws the exception InsightNotEnabledException
	//
	// Specify either the EventDataStore parameter to get Insights event selectors for
	// an event data store, or the TrailName parameter to the get Insights event
	// selectors for a trail. You cannot specify these parameters together.
	//
	// For more information, see [Working with CloudTrail Insights] in the CloudTrail User Guide.
	//
	// [Working with CloudTrail Insights]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-insights-events-with-cloudtrail.html
	GetInsightSelectors(ctx context.Context, params *cloudtrail.GetInsightSelectorsInput, optFns ...func(*Options)) (*cloudtrail.GetInsightSelectorsOutput, error)
	// Gets event data results of a query. You must specify the QueryID value returned
	// by the StartQuery operation.
	GetQueryResults(ctx context.Context, params *cloudtrail.GetQueryResultsInput, optFns ...func(*Options)) (*cloudtrail.GetQueryResultsOutput, error)
	//	Retrieves the JSON text of the resource-based policy document attached to the
	//
	// CloudTrail event data store, dashboard, or channel.
	GetResourcePolicy(ctx context.Context, params *cloudtrail.GetResourcePolicyInput, optFns ...func(*Options)) (*cloudtrail.GetResourcePolicyOutput, error)
	// Returns settings information for a specified trail.
	GetTrail(ctx context.Context, params *cloudtrail.GetTrailInput, optFns ...func(*Options)) (*cloudtrail.GetTrailOutput, error)
	// Returns a JSON-formatted list of information about the specified trail. Fields
	// include information on delivery errors, Amazon SNS and Amazon S3 errors, and
	// start and stop logging times for each trail. This operation returns trail status
	// from a single Region. To return trail status from all Regions, you must call the
	// operation on each Region.
	GetTrailStatus(ctx context.Context, params *cloudtrail.GetTrailStatusInput, optFns ...func(*Options)) (*cloudtrail.GetTrailStatusOutput, error)
	// Lists the channels in the current account, and their source names.
	ListChannels(ctx context.Context, params *cloudtrail.ListChannelsInput, optFns ...func(*Options)) (*cloudtrail.ListChannelsOutput, error)
	//	Returns information about all dashboards in the account, in the current
	//
	// Region.
	ListDashboards(ctx context.Context, params *cloudtrail.ListDashboardsInput, optFns ...func(*Options)) (*cloudtrail.ListDashboardsOutput, error)
	// Returns information about all event data stores in the account, in the current
	// Region.
	ListEventDataStores(ctx context.Context, params *cloudtrail.ListEventDataStoresInput, optFns ...func(*Options)) (*cloudtrail.ListEventDataStoresOutput, error)
	// Returns a list of failures for the specified import.
	ListImportFailures(ctx context.Context, params *cloudtrail.ListImportFailuresInput, optFns ...func(*Options)) (*cloudtrail.ListImportFailuresOutput, error)
	//	Returns information on all imports, or a select set of imports by ImportStatus
	//
	// or Destination .
	ListImports(ctx context.Context, params *cloudtrail.ListImportsInput, optFns ...func(*Options)) (*cloudtrail.ListImportsOutput, error)
	// Returns Insights events generated on a trail that logs data events. You can
	// list Insights events that occurred in a Region within the last 90 days.
	//
	// ListInsightsData supports the following Dimensions for Insights events:
	//
	//   - Event ID
	//
	//   - Event name
	//
	//   - Event source
	//
	// All dimensions are optional. The default number of results returned is 50, with
	// a maximum of 50 possible. The response includes a token that you can use to get
	// the next page of results.
	//
	// The rate of ListInsightsData requests is limited to two per second, per
	// account, per Region. If this limit is exceeded, a throttling error occurs.
	ListInsightsData(ctx context.Context, params *cloudtrail.ListInsightsDataInput, optFns ...func(*Options)) (*cloudtrail.ListInsightsDataOutput, error)
	// Returns Insights metrics data for trails that have enabled Insights. The
	// request must include the EventSource , EventName , and InsightType parameters.
	//
	// If the InsightType is set to ApiErrorRateInsight , the request must also include
	// the ErrorCode parameter.
	//
	// The following are the available time periods for ListInsightsMetricData . Each
	// cutoff is inclusive.
	//
	//   - Data points with a period of 60 seconds (1-minute) are available for 15
	//     days.
	//
	//   - Data points with a period of 300 seconds (5-minute) are available for 63
	//     days.
	//
	//   - Data points with a period of 3600 seconds (1 hour) are available for 90
	//     days.
	//
	// To use ListInsightsMetricData operation, you must have the following
	// permissions:
	//
	//   - If ListInsightsMetricData is invoked with TrailName parameter, access to the
	//     ListInsightsMetricData API operation is linked to the cloudtrail:LookupEvents
	//     action and cloudtrail:ListInsightsData . To use this operation, you must have
	//     permissions to perform the cloudtrail:LookupEvents and
	//     cloudtrail:ListInsightsData action on the specific trail.
	//
	//   - If ListInsightsMetricData is invoked without TrailName parameter, access to
	//     the ListInsightsMetricData API operation is linked to the
	//     cloudtrail:LookupEvents action only. To use this operation, you must have
	//     permissions to perform the cloudtrail:LookupEvents action.
	ListInsightsMetricData(ctx context.Context, params *cloudtrail.ListInsightsMetricDataInput, optFns ...func(*Options)) (*cloudtrail.ListInsightsMetricDataOutput, error)
	// Returns all public keys whose private keys were used to sign the digest files
	// within the specified time range. The public key is needed to validate digest
	// files that were signed with its corresponding private key.
	//
	// CloudTrail uses different private and public key pairs per Region. Each digest
	// file is signed with a private key unique to its Region. When you validate a
	// digest file from a specific Region, you must look in the same Region for its
	// corresponding public key.
	ListPublicKeys(ctx context.Context, params *cloudtrail.ListPublicKeysInput, optFns ...func(*Options)) (*cloudtrail.ListPublicKeysOutput, error)
	// Returns a list of queries and query statuses for the past seven days. You must
	// specify an ARN value for EventDataStore . Optionally, to shorten the list of
	// results, you can specify a time range, formatted as timestamps, by adding
	// StartTime and EndTime parameters, and a QueryStatus value. Valid values for
	// QueryStatus include QUEUED , RUNNING , FINISHED , FAILED , TIMED_OUT , or
	// CANCELLED .
	ListQueries(ctx context.Context, params *cloudtrail.ListQueriesInput, optFns ...func(*Options)) (*cloudtrail.ListQueriesOutput, error)
	// Lists the tags for the specified trails, event data stores, dashboards, or
	// channels in the current Region.
	ListTags(ctx context.Context, params *cloudtrail.ListTagsInput, optFns ...func(*Options)) (*cloudtrail.ListTagsOutput, error)
	// Lists trails that are in the current account.
	ListTrails(ctx context.Context, params *cloudtrail.ListTrailsInput, optFns ...func(*Options)) (*cloudtrail.ListTrailsOutput, error)
	// Looks up [management events] or [CloudTrail Insights events] that are captured by CloudTrail. You can look up events that
	// occurred in a Region within the last 90 days.
	//
	// LookupEvents returns recent Insights events for trails that enable Insights. To
	// view Insights events for an event data store, you can run queries on your
	// Insights event data store, and you can also view the Lake dashboard for
	// Insights.
	//
	// Lookup supports the following attributes for management events:
	//
	//   - Amazon Web Services access key
	//
	//   - Event ID
	//
	//   - Event name
	//
	//   - Event source
	//
	//   - Read only
	//
	//   - Resource name
	//
	//   - Resource type
	//
	//   - User name
	//
	// Lookup supports the following attributes for Insights events:
	//
	//   - Event ID
	//
	//   - Event name
	//
	//   - Event source
	//
	// All attributes are optional. The default number of results returned is 50, with
	// a maximum of 50 possible. The response includes a token that you can use to get
	// the next page of results.
	//
	// The rate of lookup requests is limited to two per second, per account, per
	// Region. If this limit is exceeded, a throttling error occurs.
	//
	// [CloudTrail Insights events]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-concepts.html#cloudtrail-concepts-insights-events
	// [management events]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-concepts.html#cloudtrail-concepts-management-events
	LookupEvents(ctx context.Context, params *cloudtrail.LookupEventsInput, optFns ...func(*Options)) (*cloudtrail.LookupEventsOutput, error)
	// Updates the event configuration settings for the specified event data store or
	// trail. This operation supports updating the maximum event size, adding or
	// modifying context key selectors for event data store, and configuring
	// aggregation settings for the trail.
	PutEventConfiguration(ctx context.Context, params *cloudtrail.PutEventConfigurationInput, optFns ...func(*Options)) (*cloudtrail.PutEventConfigurationOutput, error)
	// Configures event selectors (also referred to as basic event selectors) or
	// advanced event selectors for your trail. You can use either
	// AdvancedEventSelectors or EventSelectors , but not both. If you apply
	// AdvancedEventSelectors to a trail, any existing EventSelectors are overwritten.
	//
	// You can use AdvancedEventSelectors to log management events, data events for
	// all resource types, and network activity events.
	//
	// You can use EventSelectors to log management events and data events for the
	// following resource types:
	//
	//   - AWS::DynamoDB::Table
	//
	//   - AWS::Lambda::Function
	//
	//   - AWS::S3::Object
	//
	// You can't use EventSelectors to log network activity events.
	//
	// If you want your trail to log Insights events, be sure the event selector or
	// advanced event selector enables logging of the Insights event types you want
	// configured for your trail. For more information about logging Insights events,
	// see [Working with CloudTrail Insights]in the CloudTrail User Guide. By default, trails created without specific
	// event selectors are configured to log all read and write management events, and
	// no data events or network activity events.
	//
	// When an event occurs in your account, CloudTrail evaluates the event selectors
	// or advanced event selectors in all trails. For each trail, if the event matches
	// any event selector, the trail processes and logs the event. If the event doesn't
	// match any event selector, the trail doesn't log the event.
	//
	// Example
	//
	//   - You create an event selector for a trail and specify that you want to log
	//     write-only events.
	//
	//   - The EC2 GetConsoleOutput and RunInstances API operations occur in your
	//     account.
	//
	//   - CloudTrail evaluates whether the events match your event selectors.
	//
	//   - The RunInstances is a write-only event and it matches your event selector.
	//     The trail logs the event.
	//
	//   - The GetConsoleOutput is a read-only event that doesn't match your event
	//     selector. The trail doesn't log the event.
	//
	// The PutEventSelectors operation must be called from the Region in which the
	// trail was created; otherwise, an InvalidHomeRegionException exception is thrown.
	//
	// You can configure up to five event selectors for each trail.
	//
	// You can add advanced event selectors, and conditions for your advanced event
	// selectors, up to a maximum of 500 values for all conditions and selectors on a
	// trail. For more information, see [Logging management events], [Logging data events], [Logging network activity events], and [Quotas in CloudTrail] in the CloudTrail User Guide.
	//
	// [Logging network activity events]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-network-events-with-cloudtrail.html
	// [Logging management events]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html
	// [Working with CloudTrail Insights]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-insights-events-with-cloudtrail.html
	// [Quotas in CloudTrail]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html
	// [Logging data events]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html
	PutEventSelectors(ctx context.Context, params *cloudtrail.PutEventSelectorsInput, optFns ...func(*Options)) (*cloudtrail.PutEventSelectorsOutput, error)
	// Lets you enable Insights event logging on specific event categories by
	// specifying the Insights selectors that you want to enable on an existing trail
	// or event data store. You also use PutInsightSelectors to turn off Insights
	// event logging, by passing an empty list of Insights types. The valid Insights
	// event types are ApiErrorRateInsight and ApiCallRateInsight , and valid
	// EventCategories are Management and Data .
	//
	// Insights on data events are not supported on event data stores. For event data
	// stores, you can only enable Insights on management events.
	//
	// To enable Insights on an event data store, you must specify the ARNs (or ID
	// suffix of the ARNs) for the source event data store ( EventDataStore ) and the
	// destination event data store ( InsightsDestination ). The source event data
	// store logs management events and enables Insights. The destination event data
	// store logs Insights events based upon the management event activity of the
	// source event data store. The source and destination event data stores must
	// belong to the same Amazon Web Services account.
	//
	// To log Insights events for a trail, you must specify the name ( TrailName ) of
	// the CloudTrail trail for which you want to change or add Insights selectors.
	//
	//   - For Management events Insights: To log CloudTrail Insights on the API call
	//     rate, the trail or event data store must log write management events. To log
	//     CloudTrail Insights on the API error rate, the trail or event data store must
	//     log read or write management events.
	//
	//   - For Data events Insights: To log CloudTrail Insights on the API call rate
	//     or API error rate, the trail must log read or write data events. Data events
	//     Insights are not supported on event data store.
	//
	// To log CloudTrail Insights events on API call volume, the trail or event data
	// store must log write management events. To log CloudTrail Insights events on
	// API error rate, the trail or event data store must log read or write management
	// events. You can call GetEventSelectors on a trail to check whether the trail
	// logs management events. You can call GetEventDataStore on an event data store
	// to check whether the event data store logs management events.
	//
	// For more information, see [Working with CloudTrail Insights] in the CloudTrail User Guide.
	//
	// [Working with CloudTrail Insights]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-insights-events-with-cloudtrail.html
	PutInsightSelectors(ctx context.Context, params *cloudtrail.PutInsightSelectorsInput, optFns ...func(*Options)) (*cloudtrail.PutInsightSelectorsOutput, error)
	//	Attaches a resource-based permission policy to a CloudTrail event data store,
	//
	// dashboard, or channel. For more information about resource-based policies, see [CloudTrail resource-based policy examples]
	// in the CloudTrail User Guide.
	//
	// [CloudTrail resource-based policy examples]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/security_iam_resource-based-policy-examples.html
	PutResourcePolicy(ctx context.Context, params *cloudtrail.PutResourcePolicyInput, optFns ...func(*Options)) (*cloudtrail.PutResourcePolicyOutput, error)
	// Registers an organization’s member account as the CloudTrail [delegated administrator].
	//
	// [delegated administrator]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-delegated-administrator.html
	RegisterOrganizationDelegatedAdmin(ctx context.Context, params *cloudtrail.RegisterOrganizationDelegatedAdminInput, optFns ...func(*Options)) (*cloudtrail.RegisterOrganizationDelegatedAdminOutput, error)
	// Removes the specified tags from a trail, event data store, dashboard, or
	// channel.
	RemoveTags(ctx context.Context, params *cloudtrail.RemoveTagsInput, optFns ...func(*Options)) (*cloudtrail.RemoveTagsOutput, error)
	// Restores a deleted event data store specified by EventDataStore , which accepts
	// an event data store ARN. You can only restore a deleted event data store within
	// the seven-day wait period after deletion. Restoring an event data store can take
	// several minutes, depending on the size of the event data store.
	RestoreEventDataStore(ctx context.Context, params *cloudtrail.RestoreEventDataStoreInput, optFns ...func(*Options)) (*cloudtrail.RestoreEventDataStoreOutput, error)
	//	Searches sample queries and returns a list of sample queries that are sorted
	//
	// by relevance. To search for sample queries, provide a natural language
	// SearchPhrase in English.
	SearchSampleQueries(ctx context.Context, params *cloudtrail.SearchSampleQueriesInput, optFns ...func(*Options)) (*cloudtrail.SearchSampleQueriesOutput, error)
	//	Starts a refresh of the specified dashboard.
	//
	// Each time a dashboard is refreshed, CloudTrail runs queries to populate the
	// dashboard's widgets. CloudTrail must be granted permissions to run the
	// StartQuery operation on your behalf. To provide permissions, run the
	// PutResourcePolicy operation to attach a resource-based policy to each event data
	// store. For more information, see [Example: Allow CloudTrail to run queries to populate a dashboard]in the CloudTrail User Guide.
	//
	// [Example: Allow CloudTrail to run queries to populate a dashboard]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/security_iam_resource-based-policy-examples.html#security_iam_resource-based-policy-examples-eds-dashboard
	StartDashboardRefresh(ctx context.Context, params *cloudtrail.StartDashboardRefreshInput, optFns ...func(*Options)) (*cloudtrail.StartDashboardRefreshOutput, error)
	// Starts the ingestion of live events on an event data store specified as either
	// an ARN or the ID portion of the ARN. To start ingestion, the event data store
	// Status must be STOPPED_INGESTION and the eventCategory must be Management , Data
	// , NetworkActivity , or ConfigurationItem .
	StartEventDataStoreIngestion(ctx context.Context, params *cloudtrail.StartEventDataStoreIngestionInput, optFns ...func(*Options)) (*cloudtrail.StartEventDataStoreIngestionOutput, error)
	//	Starts an import of logged trail events from a source S3 bucket to a
	//
	// destination event data store. By default, CloudTrail only imports events
	// contained in the S3 bucket's CloudTrail prefix and the prefixes inside the
	// CloudTrail prefix, and does not check prefixes for other Amazon Web Services
	// services. If you want to import CloudTrail events contained in another prefix,
	// you must include the prefix in the S3LocationUri . For more considerations about
	// importing trail events, see [Considerations for copying trail events]in the CloudTrail User Guide.
	//
	// When you start a new import, the Destinations and ImportSource parameters are
	// required. Before starting a new import, disable any access control lists (ACLs)
	// attached to the source S3 bucket. For more information about disabling ACLs, see
	// [Controlling ownership of objects and disabling ACLs for your bucket].
	//
	// When you retry an import, the ImportID parameter is required.
	//
	// If the destination event data store is for an organization, you must use the
	// management account to import trail events. You cannot use the delegated
	// administrator account for the organization.
	//
	// [Considerations for copying trail events]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-copy-trail-to-lake.html#cloudtrail-trail-copy-considerations
	// [Controlling ownership of objects and disabling ACLs for your bucket]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html
	StartImport(ctx context.Context, params *cloudtrail.StartImportInput, optFns ...func(*Options)) (*cloudtrail.StartImportOutput, error)
	// Starts the recording of Amazon Web Services API calls and log file delivery for
	// a trail. For a trail that is enabled in all Regions, this operation must be
	// called from the Region in which the trail was created. This operation cannot be
	// called on the shadow trails (replicated trails in other Regions) of a trail that
	// is enabled in all Regions.
	StartLogging(ctx context.Context, params *cloudtrail.StartLoggingInput, optFns ...func(*Options)) (*cloudtrail.StartLoggingOutput, error)
	// Starts a CloudTrail Lake query. Use the QueryStatement parameter to provide
	// your SQL query, enclosed in single quotation marks. Use the optional
	// DeliveryS3Uri parameter to deliver the query results to an S3 bucket.
	//
	// StartQuery requires you specify either the QueryStatement parameter, or a
	// QueryAlias and any QueryParameters . In the current release, the QueryAlias and
	// QueryParameters parameters are used only for the queries that populate the
	// CloudTrail Lake dashboards.
	StartQuery(ctx context.Context, params *cloudtrail.StartQueryInput, optFns ...func(*Options)) (*cloudtrail.StartQueryOutput, error)
	// Stops the ingestion of live events on an event data store specified as either
	// an ARN or the ID portion of the ARN. To stop ingestion, the event data store
	// Status must be ENABLED and the eventCategory must be Management , Data ,
	// NetworkActivity , or ConfigurationItem .
	StopEventDataStoreIngestion(ctx context.Context, params *cloudtrail.StopEventDataStoreIngestionInput, optFns ...func(*Options)) (*cloudtrail.StopEventDataStoreIngestionOutput, error)
	// Stops a specified import.
	StopImport(ctx context.Context, params *cloudtrail.StopImportInput, optFns ...func(*Options)) (*cloudtrail.StopImportOutput, error)
	// Suspends the recording of Amazon Web Services API calls and log file delivery
	// for the specified trail. Under most circumstances, there is no need to use this
	// action. You can update a trail without stopping it first. This action is the
	// only way to stop recording. For a trail enabled in all Regions, this operation
	// must be called from the Region in which the trail was created, or an
	// InvalidHomeRegionException will occur. This operation cannot be called on the
	// shadow trails (replicated trails in other Regions) of a trail enabled in all
	// Regions.
	StopLogging(ctx context.Context, params *cloudtrail.StopLoggingInput, optFns ...func(*Options)) (*cloudtrail.StopLoggingOutput, error)
	// Updates a channel specified by a required channel ARN or UUID.
	UpdateChannel(ctx context.Context, params *cloudtrail.UpdateChannelInput, optFns ...func(*Options)) (*cloudtrail.UpdateChannelOutput, error)
	//	Updates the specified dashboard.
	//
	// To set a refresh schedule, CloudTrail must be granted permissions to run the
	// StartDashboardRefresh operation to refresh the dashboard on your behalf. To
	// provide permissions, run the PutResourcePolicy operation to attach a
	// resource-based policy to the dashboard. For more information, see [Resource-based policy example for a dashboard]in the
	// CloudTrail User Guide.
	//
	// CloudTrail runs queries to populate the dashboard's widgets during a manual or
	// scheduled refresh. CloudTrail must be granted permissions to run the StartQuery
	// operation on your behalf. To provide permissions, run the PutResourcePolicy
	// operation to attach a resource-based policy to each event data store. For more
	// information, see [Example: Allow CloudTrail to run queries to populate a dashboard]in the CloudTrail User Guide.
	//
	// [Example: Allow CloudTrail to run queries to populate a dashboard]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/security_iam_resource-based-policy-examples.html#security_iam_resource-based-policy-examples-eds-dashboard
	// [Resource-based policy example for a dashboard]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/security_iam_resource-based-policy-examples.html#security_iam_resource-based-policy-examples-dashboards
	UpdateDashboard(ctx context.Context, params *cloudtrail.UpdateDashboardInput, optFns ...func(*Options)) (*cloudtrail.UpdateDashboardOutput, error)
	// Updates an event data store. The required EventDataStore value is an ARN or the
	// ID portion of the ARN. Other parameters are optional, but at least one optional
	// parameter must be specified, or CloudTrail throws an error. RetentionPeriod is
	// in days, and valid values are integers between 7 and 3653 if the BillingMode is
	// set to EXTENDABLE_RETENTION_PRICING , or between 7 and 2557 if BillingMode is
	// set to FIXED_RETENTION_PRICING . By default, TerminationProtection is enabled.
	//
	// For event data stores for CloudTrail events, AdvancedEventSelectors includes or
	// excludes management, data, or network activity events in your event data store.
	// For more information about AdvancedEventSelectors , see [AdvancedEventSelectors].
	//
	// For event data stores for CloudTrail Insights events, Config configuration
	// items, Audit Manager evidence, or non-Amazon Web Services events,
	// AdvancedEventSelectors includes events of that type in your event data store.
	//
	// [AdvancedEventSelectors]: https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedEventSelector.html
	UpdateEventDataStore(ctx context.Context, params *cloudtrail.UpdateEventDataStoreInput, optFns ...func(*Options)) (*cloudtrail.UpdateEventDataStoreOutput, error)
	// Updates trail settings that control what events you are logging, and how to
	// handle log files. Changes to a trail do not require stopping the CloudTrail
	// service. Use this action to designate an existing bucket for log delivery. If
	// the existing bucket has previously been a target for CloudTrail log files, an
	// IAM policy exists for the bucket. UpdateTrail must be called from the Region in
	// which the trail was created; otherwise, an InvalidHomeRegionException is thrown.
	UpdateTrail(ctx context.Context, params *cloudtrail.UpdateTrailInput, optFns ...func(*Options)) (*cloudtrail.UpdateTrailOutput, error)
}

CloudTrail provides an interface to the AWS CloudTrail service.

type CloudWatchLogs added in v0.92.0

type CloudWatchLogs interface {
	// Options returns a copy of the client configuration.
	//
	// Callers SHOULD NOT perform mutations on any inner structures within client
	// config. Config overrides should instead be made on a per-operation basis through
	// functional options.
	Options() cloudwatchlogs.Options
	// Associates the specified KMS key with either one log group in the account, or
	// with all stored CloudWatch Logs query insights results in the account.
	//
	// When you use AssociateKmsKey , you specify either the logGroupName parameter or
	// the resourceIdentifier parameter. You can't specify both of those parameters in
	// the same operation.
	//
	//   - Specify the logGroupName parameter to cause log events ingested into that
	//     log group to be encrypted with that key. Only the log events ingested after the
	//     key is associated are encrypted with that key.
	//
	// Associating a KMS key with a log group overrides any existing associations
	//
	//	between the log group and a KMS key. After a KMS key is associated with a log
	//	group, all newly ingested data for the log group is encrypted using the KMS key.
	//	This association is stored as long as the data encrypted with the KMS key is
	//	still within CloudWatch Logs. This enables CloudWatch Logs to decrypt this data
	//	whenever it is requested.
	//
	// Associating a key with a log group does not cause the results of queries of
	//
	//	that log group to be encrypted with that key. To have query results encrypted
	//	with a KMS key, you must use an AssociateKmsKey operation with the
	//	resourceIdentifier parameter that specifies a query-result resource.
	//
	//	- Specify the resourceIdentifier parameter with a query-result resource, to
	//	use that key to encrypt the stored results of all future [StartQuery]operations in the
	//	account. The response from a [GetQueryResults]operation will still return the query results in
	//	plain text.
	//
	// Even if you have not associated a key with your query results, the query
	//
	//	results are encrypted when stored, using the default CloudWatch Logs method.
	//
	// If you run a query from a monitoring account that queries logs in a source
	//
	//	account, the query results key from the monitoring account, if any, is used.
	//
	// If you delete the key that is used to encrypt log events or log group query
	// results, then all the associated stored log events or query results that were
	// encrypted with that key will be unencryptable and unusable.
	//
	// CloudWatch Logs supports only symmetric KMS keys. Do not associate an
	// asymmetric KMS key with your log group or query results. For more information,
	// see [Using Symmetric and Asymmetric Keys].
	//
	// It can take up to 5 minutes for this operation to take effect.
	//
	// If you attempt to associate a KMS key with a log group but the KMS key does not
	// exist or the KMS key is disabled, you receive an InvalidParameterException
	// error.
	//
	// [Using Symmetric and Asymmetric Keys]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
	//
	// [StartQuery]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartQuery.html
	// [GetQueryResults]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetQueryResults.html
	AssociateKmsKey(ctx context.Context, params *cloudwatchlogs.AssociateKmsKeyInput, optFns ...func(*Options)) (*cloudwatchlogs.AssociateKmsKeyOutput, error)
	// Associates a data source with an S3 Table Integration for query access in the
	// 'logs' namespace. This enables querying log data using analytics engines that
	// support Iceberg such as Amazon Athena, Amazon Redshift, and Apache Spark.
	AssociateSourceToS3TableIntegration(ctx context.Context, params *cloudwatchlogs.AssociateSourceToS3TableIntegrationInput, optFns ...func(*Options)) (*cloudwatchlogs.AssociateSourceToS3TableIntegrationOutput, error)
	// Cancels the specified export task.
	//
	// The task must be in the PENDING or RUNNING state.
	CancelExportTask(ctx context.Context, params *cloudwatchlogs.CancelExportTaskInput, optFns ...func(*Options)) (*cloudwatchlogs.CancelExportTaskOutput, error)
	// Cancels an active import task and stops importing data from the CloudTrail Lake
	// Event Data Store.
	CancelImportTask(ctx context.Context, params *cloudwatchlogs.CancelImportTaskInput, optFns ...func(*Options)) (*cloudwatchlogs.CancelImportTaskOutput, error)
	// Creates a delivery. A delivery is a connection between a logical delivery
	// source and a logical delivery destination that you have already created.
	//
	// Only some Amazon Web Services services support being configured as a delivery
	// source using this operation. These services are listed as Supported [V2
	// Permissions] in the table at [Enabling logging from Amazon Web Services services.]
	//
	// A delivery destination can represent a log group in CloudWatch Logs, an Amazon
	// S3 bucket, a delivery stream in Firehose, or X-Ray.
	//
	// To configure logs delivery between a supported Amazon Web Services service and
	// a destination, you must do the following:
	//
	//   - Create a delivery source, which is a logical object that represents the
	//     resource that is actually sending the logs. For more information, see [PutDeliverySource].
	//
	//   - Create a delivery destination, which is a logical object that represents
	//     the actual delivery destination. For more information, see [PutDeliveryDestination].
	//
	//   - If you are delivering logs cross-account, you must use [PutDeliveryDestinationPolicy]in the destination
	//     account to assign an IAM policy to the destination. This policy allows delivery
	//     to that destination.
	//
	//   - Use CreateDelivery to create a delivery by pairing exactly one delivery
	//     source and one delivery destination.
	//
	// You can configure a single delivery source to send logs to multiple
	// destinations by creating multiple deliveries. You can also create multiple
	// deliveries to configure multiple delivery sources to send logs to the same
	// delivery destination.
	//
	// To update an existing delivery configuration, use [UpdateDeliveryConfiguration].
	//
	// [PutDeliveryDestination]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html
	// [PutDeliverySource]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliverySource.html
	// [Enabling logging from Amazon Web Services services.]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html
	// [PutDeliveryDestinationPolicy]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestinationPolicy.html
	// [UpdateDeliveryConfiguration]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_UpdateDeliveryConfiguration.html
	CreateDelivery(ctx context.Context, params *cloudwatchlogs.CreateDeliveryInput, optFns ...func(*Options)) (*cloudwatchlogs.CreateDeliveryOutput, error)
	// Creates an export task so that you can efficiently export data from a log group
	// to an Amazon S3 bucket. When you perform a CreateExportTask operation, you must
	// use credentials that have permission to write to the S3 bucket that you specify
	// as the destination.
	//
	// Exporting log data to S3 buckets that are encrypted by KMS is supported.
	// Exporting log data to Amazon S3 buckets that have S3 Object Lock enabled with a
	// retention period is also supported.
	//
	// Exporting to S3 buckets that are encrypted with AES-256 is supported.
	//
	// This is an asynchronous call. If all the required information is provided, this
	// operation initiates an export task and responds with the ID of the task. After
	// the task has started, you can use [DescribeExportTasks]to get the status of the export task. Each
	// account can only have one active ( RUNNING or PENDING ) export task at a time.
	// To cancel an export task, use [CancelExportTask].
	//
	// You can export logs from multiple log groups or multiple time ranges to the
	// same S3 bucket. To separate log data for each export task, specify a prefix to
	// be used as the Amazon S3 key prefix for all exported objects.
	//
	// We recommend that you don't regularly export to Amazon S3 as a way to
	// continuously archive your logs. For that use case, we instead recommend that you
	// use subscriptions. For more information about subscriptions, see [Real-time processing of log data with subscriptions].
	//
	// Time-based sorting on chunks of log data inside an exported file is not
	// guaranteed. You can sort the exported log field data by using Linux utilities.
	//
	// [CancelExportTask]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CancelExportTask.html
	// [DescribeExportTasks]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeExportTasks.html
	// [Real-time processing of log data with subscriptions]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Subscriptions.html
	CreateExportTask(ctx context.Context, params *cloudwatchlogs.CreateExportTaskInput, optFns ...func(*Options)) (*cloudwatchlogs.CreateExportTaskOutput, error)
	// Starts an import from a data source to CloudWatch Log and creates a managed log
	// group as the destination for the imported data. Currently, [CloudTrail Event Data Store]is the only
	// supported data source.
	//
	// The import task must satisfy the following constraints:
	//
	//   - The specified source must be in an ACTIVE state.
	//
	//   - The API caller must have permissions to access the data in the provided
	//     source and to perform iam:PassRole on the provided import role which has the
	//     same permissions, as described below.
	//
	//   - The provided IAM role must trust the "cloudtrail.amazonaws.com" principal
	//     and have the following permissions:
	//
	//   - cloudtrail:GetEventDataStoreData
	//
	//   - logs:CreateLogGroup
	//
	//   - logs:CreateLogStream
	//
	//   - logs:PutResourcePolicy
	//
	//   - (If source has an associated Amazon Web Services KMS Key) kms:Decrypt
	//
	//   - (If source has an associated Amazon Web Services KMS Key)
	//     kms:GenerateDataKey
	//
	// Example IAM policy for provided import role:
	//
	// [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource":
	//
	//	"arn:aws:iam::123456789012:role/apiCallerCredentials", "Condition": {
	//	"StringLike": { "iam:AssociatedResourceARN":
	//	"arn:aws:logs:us-east-1:123456789012:log-group:aws/cloudtrail/f1d45bff-d0e3-4868-b5d9-2eb678aa32fb:*"
	//	} } }, { "Effect": "Allow", "Action": [ "cloudtrail:GetEventDataStoreData" ],
	//	"Resource": [
	//	"arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/f1d45bff-d0e3-4868-b5d9-2eb678aa32fb"
	//	] }, { "Effect": "Allow", "Action": [ "logs:CreateImportTask",
	//	"logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutResourcePolicy" ],
	//	"Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/cloudtrail/*"
	//	] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ],
	//	"Resource": [
	//	"arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" ]
	//	} ]
	//
	//	- If the import source has a customer managed key, the
	//	"cloudtrail.amazonaws.com" principal needs permissions to perform kms:Decrypt
	//	and kms:GenerateDataKey.
	//
	//	- There can be no more than 3 active imports per account at a given time.
	//
	//	- The startEventTime must be less than or equal to endEventTime.
	//
	//	- The data being imported must be within the specified source's retention
	//	period.
	//
	// [CloudTrail Event Data Store]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-event-data-store.html
	CreateImportTask(ctx context.Context, params *cloudwatchlogs.CreateImportTaskInput, optFns ...func(*Options)) (*cloudwatchlogs.CreateImportTaskOutput, error)
	// Creates an anomaly detector that regularly scans one or more log groups and
	// look for patterns and anomalies in the logs.
	//
	// An anomaly detector can help surface issues by automatically discovering
	// anomalies in your log event traffic. An anomaly detector uses machine learning
	// algorithms to scan log events and find patterns. A pattern is a shared text
	// structure that recurs among your log fields. Patterns provide a useful tool for
	// analyzing large sets of logs because a large number of log events can often be
	// compressed into a few patterns.
	//
	// The anomaly detector uses pattern recognition to find anomalies , which are
	// unusual log events. It uses the evaluationFrequency to compare current log
	// events and patterns with trained baselines.
	//
	// Fields within a pattern are called tokens. Fields that vary within a pattern,
	// such as a request ID or timestamp, are referred to as dynamic tokens and
	// represented by <*> .
	//
	// The following is an example of a pattern:
	//
	//	[INFO] Request time: <*> ms
	//
	// This pattern represents log events like [INFO] Request time: 327 ms and other
	// similar log events that differ only by the number, in this csse 327. When the
	// pattern is displayed, the different numbers are replaced by <*>
	//
	// Any parts of log events that are masked as sensitive data are not scanned for
	// anomalies. For more information about masking sensitive data, see [Help protect sensitive log data with masking].
	//
	// [Help protect sensitive log data with masking]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html
	CreateLogAnomalyDetector(ctx context.Context, params *cloudwatchlogs.CreateLogAnomalyDetectorInput, optFns ...func(*Options)) (*cloudwatchlogs.CreateLogAnomalyDetectorOutput, error)
	// Creates a log group with the specified name. You can create up to 1,000,000 log
	// groups per Region per account.
	//
	// You must use the following guidelines when naming a log group:
	//
	//   - Log group names must be unique within a Region for an Amazon Web Services
	//     account.
	//
	//   - Log group names can be between 1 and 512 characters long.
	//
	//   - Log group names consist of the following characters: a-z, A-Z, 0-9, '_'
	//     (underscore), '-' (hyphen), '/' (forward slash), '.' (period), and '#' (number
	//     sign)
	//
	//   - Log group names can't start with the string aws/
	//
	// When you create a log group, by default the log events in the log group do not
	// expire. To set a retention policy so that events expire and are deleted after a
	// specified time, use [PutRetentionPolicy].
	//
	// If you associate an KMS key with the log group, ingested data is encrypted
	// using the KMS key. This association is stored as long as the data encrypted with
	// the KMS key is still within CloudWatch Logs. This enables CloudWatch Logs to
	// decrypt this data whenever it is requested.
	//
	// If you attempt to associate a KMS key with the log group but the KMS key does
	// not exist or the KMS key is disabled, you receive an InvalidParameterException
	// error.
	//
	// CloudWatch Logs supports only symmetric KMS keys. Do not associate an
	// asymmetric KMS key with your log group. For more information, see [Using Symmetric and Asymmetric Keys].
	//
	// [Using Symmetric and Asymmetric Keys]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
	// [PutRetentionPolicy]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutRetentionPolicy.html
	CreateLogGroup(ctx context.Context, params *cloudwatchlogs.CreateLogGroupInput, optFns ...func(*Options)) (*cloudwatchlogs.CreateLogGroupOutput, error)
	// Creates a log stream for the specified log group. A log stream is a sequence of
	// log events that originate from a single source, such as an application instance
	// or a resource that is being monitored.
	//
	// There is no limit on the number of log streams that you can create for a log
	// group. There is a limit of 50 TPS on CreateLogStream operations, after which
	// transactions are throttled.
	//
	// You must use the following guidelines when naming a log stream:
	//
	//   - Log stream names must be unique within the log group.
	//
	//   - Log stream names can be between 1 and 512 characters long.
	//
	//   - Don't use ':' (colon) or '*' (asterisk) characters.
	CreateLogStream(ctx context.Context, params *cloudwatchlogs.CreateLogStreamInput, optFns ...func(*Options)) (*cloudwatchlogs.CreateLogStreamOutput, error)
	// Creates a scheduled query that runs CloudWatch Logs Insights queries at regular
	// intervals. Scheduled queries enable proactive monitoring by automatically
	// executing queries to detect patterns and anomalies in your log data. Query
	// results can be delivered to Amazon S3 for analysis or further processing.
	CreateScheduledQuery(ctx context.Context, params *cloudwatchlogs.CreateScheduledQueryInput, optFns ...func(*Options)) (*cloudwatchlogs.CreateScheduledQueryOutput, error)
	// Deletes a CloudWatch Logs account policy. This stops the account-wide policy
	// from applying to log groups or data sources in the account. If you delete a data
	// protection policy or subscription filter policy, any log-group level policies of
	// those types remain in effect. This operation supports deletion of data
	// source-based field index policies, including facet configurations, in addition
	// to log group-based policies.
	//
	// To use this operation, you must be signed on with the correct permissions
	// depending on the type of policy that you are deleting.
	//
	//   - To delete a data protection policy, you must have the
	//     logs:DeleteDataProtectionPolicy and logs:DeleteAccountPolicy permissions.
	//
	//   - To delete a subscription filter policy, you must have the
	//     logs:DeleteSubscriptionFilter and logs:DeleteAccountPolicy permissions.
	//
	//   - To delete a transformer policy, you must have the logs:DeleteTransformer and
	//     logs:DeleteAccountPolicy permissions.
	//
	//   - To delete a field index policy, you must have the logs:DeleteIndexPolicy and
	//     logs:DeleteAccountPolicy permissions.
	//
	// If you delete a field index policy that included facet configurations, those
	//
	//	facets will no longer be available for interactive exploration in the CloudWatch
	//	Logs Insights console. However, facet data is retained for up to 30 days.
	//
	// If you delete a field index policy, the indexing of the log events that
	// happened before you deleted the policy will still be used for up to 30 days to
	// improve CloudWatch Logs Insights queries.
	DeleteAccountPolicy(ctx context.Context, params *cloudwatchlogs.DeleteAccountPolicyInput, optFns ...func(*Options)) (*cloudwatchlogs.DeleteAccountPolicyOutput, error)
	// Deletes the data protection policy from the specified log group.
	//
	// For more information about data protection policies, see [PutDataProtectionPolicy].
	//
	// [PutDataProtectionPolicy]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDataProtectionPolicy.html
	DeleteDataProtectionPolicy(ctx context.Context, params *cloudwatchlogs.DeleteDataProtectionPolicyInput, optFns ...func(*Options)) (*cloudwatchlogs.DeleteDataProtectionPolicyOutput, error)
	// Deletes a delivery. A delivery is a connection between a logical delivery
	// source and a logical delivery destination. Deleting a delivery only deletes the
	// connection between the delivery source and delivery destination. It does not
	// delete the delivery destination or the delivery source.
	DeleteDelivery(ctx context.Context, params *cloudwatchlogs.DeleteDeliveryInput, optFns ...func(*Options)) (*cloudwatchlogs.DeleteDeliveryOutput, error)
	// Deletes a delivery destination. A delivery is a connection between a logical
	// delivery source and a logical delivery destination.
	//
	// You can't delete a delivery destination if any current deliveries are
	// associated with it. To find whether any deliveries are associated with this
	// delivery destination, use the [DescribeDeliveries]operation and check the deliveryDestinationArn
	// field in the results.
	//
	// [DescribeDeliveries]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeDeliveries.html
	DeleteDeliveryDestination(ctx context.Context, params *cloudwatchlogs.DeleteDeliveryDestinationInput, optFns ...func(*Options)) (*cloudwatchlogs.DeleteDeliveryDestinationOutput, error)
	// Deletes a delivery destination policy. For more information about these
	// policies, see [PutDeliveryDestinationPolicy].
	//
	// [PutDeliveryDestinationPolicy]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestinationPolicy.html
	DeleteDeliveryDestinationPolicy(ctx context.Context, params *cloudwatchlogs.DeleteDeliveryDestinationPolicyInput, optFns ...func(*Options)) (*cloudwatchlogs.DeleteDeliveryDestinationPolicyOutput, error)
	// Deletes a delivery source. A delivery is a connection between a logical
	// delivery source and a logical delivery destination.
	//
	// You can't delete a delivery source if any current deliveries are associated
	// with it. To find whether any deliveries are associated with this delivery
	// source, use the [DescribeDeliveries]operation and check the deliverySourceName field in the results.
	//
	// [DescribeDeliveries]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeDeliveries.html
	DeleteDeliverySource(ctx context.Context, params *cloudwatchlogs.DeleteDeliverySourceInput, optFns ...func(*Options)) (*cloudwatchlogs.DeleteDeliverySourceOutput, error)
	// Deletes the specified destination, and eventually disables all the subscription
	// filters that publish to it. This operation does not delete the physical resource
	// encapsulated by the destination.
	DeleteDestination(ctx context.Context, params *cloudwatchlogs.DeleteDestinationInput, optFns ...func(*Options)) (*cloudwatchlogs.DeleteDestinationOutput, error)
	// Deletes a log-group level field index policy that was applied to a single log
	// group. The indexing of the log events that happened before you delete the policy
	// will still be used for as many as 30 days to improve CloudWatch Logs Insights
	// queries.
	//
	// If the deleted policy included facet configurations, those facets will no
	// longer be available for interactive exploration in the CloudWatch Logs Insights
	// console for this log group. However, facet data is retained for up to 30 days.
	//
	// You can't use this operation to delete an account-level index policy. Instead,
	// use [DeleteAccountPolicy].
	//
	// If you delete a log-group level field index policy and there is an
	// account-level field index policy, in a few minutes the log group begins using
	// that account-wide policy to index new incoming log events. This operation only
	// affects log group-level policies, including any facet configurations, and
	// preserves any data source-based account policies that may apply to the log
	// group.
	//
	// [DeleteAccountPolicy]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteAccountPolicy.html
	DeleteIndexPolicy(ctx context.Context, params *cloudwatchlogs.DeleteIndexPolicyInput, optFns ...func(*Options)) (*cloudwatchlogs.DeleteIndexPolicyOutput, error)
	// Deletes the integration between CloudWatch Logs and OpenSearch Service. If your
	// integration has active vended logs dashboards, you must specify true for the
	// force parameter, otherwise the operation will fail. If you delete the
	// integration by setting force to true , all your vended logs dashboards powered
	// by OpenSearch Service will be deleted and the data that was on them will no
	// longer be accessible.
	DeleteIntegration(ctx context.Context, params *cloudwatchlogs.DeleteIntegrationInput, optFns ...func(*Options)) (*cloudwatchlogs.DeleteIntegrationOutput, error)
	// Deletes the specified CloudWatch Logs anomaly detector.
	DeleteLogAnomalyDetector(ctx context.Context, params *cloudwatchlogs.DeleteLogAnomalyDetectorInput, optFns ...func(*Options)) (*cloudwatchlogs.DeleteLogAnomalyDetectorOutput, error)
	// Deletes the specified log group and permanently deletes all the archived log
	// events associated with the log group.
	DeleteLogGroup(ctx context.Context, params *cloudwatchlogs.DeleteLogGroupInput, optFns ...func(*Options)) (*cloudwatchlogs.DeleteLogGroupOutput, error)
	// Deletes the specified log stream and permanently deletes all the archived log
	// events associated with the log stream.
	DeleteLogStream(ctx context.Context, params *cloudwatchlogs.DeleteLogStreamInput, optFns ...func(*Options)) (*cloudwatchlogs.DeleteLogStreamOutput, error)
	// Deletes the specified metric filter.
	DeleteMetricFilter(ctx context.Context, params *cloudwatchlogs.DeleteMetricFilterInput, optFns ...func(*Options)) (*cloudwatchlogs.DeleteMetricFilterOutput, error)
	// Deletes a saved CloudWatch Logs Insights query definition. A query definition
	// contains details about a saved CloudWatch Logs Insights query.
	//
	// Each DeleteQueryDefinition operation can delete one query definition.
	//
	// You must have the logs:DeleteQueryDefinition permission to be able to perform
	// this operation.
	DeleteQueryDefinition(ctx context.Context, params *cloudwatchlogs.DeleteQueryDefinitionInput, optFns ...func(*Options)) (*cloudwatchlogs.DeleteQueryDefinitionOutput, error)
	// Deletes a resource policy from this account. This revokes the access of the
	// identities in that policy to put log events to this account.
	DeleteResourcePolicy(ctx context.Context, params *cloudwatchlogs.DeleteResourcePolicyInput, optFns ...func(*Options)) (*cloudwatchlogs.DeleteResourcePolicyOutput, error)
	// Deletes the specified retention policy.
	//
	// Log events do not expire if they belong to log groups without a retention
	// policy.
	DeleteRetentionPolicy(ctx context.Context, params *cloudwatchlogs.DeleteRetentionPolicyInput, optFns ...func(*Options)) (*cloudwatchlogs.DeleteRetentionPolicyOutput, error)
	// Deletes a scheduled query and stops all future executions. This operation also
	// removes any configured actions and associated resources.
	DeleteScheduledQuery(ctx context.Context, params *cloudwatchlogs.DeleteScheduledQueryInput, optFns ...func(*Options)) (*cloudwatchlogs.DeleteScheduledQueryOutput, error)
	// Deletes the specified subscription filter.
	DeleteSubscriptionFilter(ctx context.Context, params *cloudwatchlogs.DeleteSubscriptionFilterInput, optFns ...func(*Options)) (*cloudwatchlogs.DeleteSubscriptionFilterOutput, error)
	// Deletes the log transformer for the specified log group. As soon as you do
	// this, the transformation of incoming log events according to that transformer
	// stops. If this account has an account-level transformer that applies to this log
	// group, the log group begins using that account-level transformer when this
	// log-group level transformer is deleted.
	//
	// After you delete a transformer, be sure to edit any metric filters or
	// subscription filters that relied on the transformed versions of the log events.
	DeleteTransformer(ctx context.Context, params *cloudwatchlogs.DeleteTransformerInput, optFns ...func(*Options)) (*cloudwatchlogs.DeleteTransformerOutput, error)
	// Returns a list of all CloudWatch Logs account policies in the account.
	//
	// To use this operation, you must be signed on with the correct permissions
	// depending on the type of policy that you are retrieving information for.
	//
	//   - To see data protection policies, you must have the
	//     logs:GetDataProtectionPolicy and logs:DescribeAccountPolicies permissions.
	//
	//   - To see subscription filter policies, you must have the
	//     logs:DescribeSubscriptionFilters and logs:DescribeAccountPolicies permissions.
	//
	//   - To see transformer policies, you must have the logs:GetTransformer and
	//     logs:DescribeAccountPolicies permissions.
	//
	//   - To see field index policies, you must have the logs:DescribeIndexPolicies
	//     and logs:DescribeAccountPolicies permissions.
	DescribeAccountPolicies(ctx context.Context, params *cloudwatchlogs.DescribeAccountPoliciesInput, optFns ...func(*Options)) (*cloudwatchlogs.DescribeAccountPoliciesOutput, error)
	// Use this operation to return the valid and default values that are used when
	// creating delivery sources, delivery destinations, and deliveries. For more
	// information about deliveries, see [CreateDelivery].
	//
	// [CreateDelivery]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html
	DescribeConfigurationTemplates(ctx context.Context, params *cloudwatchlogs.DescribeConfigurationTemplatesInput, optFns ...func(*Options)) (*cloudwatchlogs.DescribeConfigurationTemplatesOutput, error)
	// Retrieves a list of the deliveries that have been created in the account.
	//
	// A delivery is a connection between a [delivery source] and a [delivery destination].
	//
	// A delivery source represents an Amazon Web Services resource that sends logs to
	// an logs delivery destination. The destination can be CloudWatch Logs, Amazon S3,
	// Firehose or X-Ray. Only some Amazon Web Services services support being
	// configured as a delivery source. These services are listed in [Enable logging from Amazon Web Services services.]
	//
	// [delivery destination]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html
	// [delivery source]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliverySource.html
	// [Enable logging from Amazon Web Services services.]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html
	DescribeDeliveries(ctx context.Context, params *cloudwatchlogs.DescribeDeliveriesInput, optFns ...func(*Options)) (*cloudwatchlogs.DescribeDeliveriesOutput, error)
	// Retrieves a list of the delivery destinations that have been created in the
	// account.
	DescribeDeliveryDestinations(ctx context.Context, params *cloudwatchlogs.DescribeDeliveryDestinationsInput, optFns ...func(*Options)) (*cloudwatchlogs.DescribeDeliveryDestinationsOutput, error)
	// Retrieves a list of the delivery sources that have been created in the account.
	DescribeDeliverySources(ctx context.Context, params *cloudwatchlogs.DescribeDeliverySourcesInput, optFns ...func(*Options)) (*cloudwatchlogs.DescribeDeliverySourcesOutput, error)
	// Lists all your destinations. The results are ASCII-sorted by destination name.
	DescribeDestinations(ctx context.Context, params *cloudwatchlogs.DescribeDestinationsInput, optFns ...func(*Options)) (*cloudwatchlogs.DescribeDestinationsOutput, error)
	// Lists the specified export tasks. You can list all your export tasks or filter
	// the results based on task ID or task status.
	DescribeExportTasks(ctx context.Context, params *cloudwatchlogs.DescribeExportTasksInput, optFns ...func(*Options)) (*cloudwatchlogs.DescribeExportTasksOutput, error)
	// Returns a list of custom and default field indexes which are discovered in log
	// data. For more information about field index policies, see [PutIndexPolicy].
	//
	// [PutIndexPolicy]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutIndexPolicy.html
	DescribeFieldIndexes(ctx context.Context, params *cloudwatchlogs.DescribeFieldIndexesInput, optFns ...func(*Options)) (*cloudwatchlogs.DescribeFieldIndexesOutput, error)
	// Gets detailed information about the individual batches within an import task,
	// including their status and any error messages. For CloudTrail Event Data Store
	// sources, a batch refers to a subset of stored events grouped by their eventTime.
	DescribeImportTaskBatches(ctx context.Context, params *cloudwatchlogs.DescribeImportTaskBatchesInput, optFns ...func(*Options)) (*cloudwatchlogs.DescribeImportTaskBatchesOutput, error)
	// Lists and describes import tasks, with optional filtering by import status and
	// source ARN.
	DescribeImportTasks(ctx context.Context, params *cloudwatchlogs.DescribeImportTasksInput, optFns ...func(*Options)) (*cloudwatchlogs.DescribeImportTasksOutput, error)
	// Returns the field index policies of the specified log group. For more
	// information about field index policies, see [PutIndexPolicy].
	//
	// If a specified log group has a log-group level index policy, that policy is
	// returned by this operation.
	//
	// If a specified log group doesn't have a log-group level index policy, but an
	// account-wide index policy applies to it, that account-wide policy is returned by
	// this operation.
	//
	// To find information about only account-level policies, use [DescribeAccountPolicies] instead.
	//
	// [PutIndexPolicy]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutIndexPolicy.html
	// [DescribeAccountPolicies]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeAccountPolicies.html
	DescribeIndexPolicies(ctx context.Context, params *cloudwatchlogs.DescribeIndexPoliciesInput, optFns ...func(*Options)) (*cloudwatchlogs.DescribeIndexPoliciesOutput, error)
	// Returns information about log groups, including data sources that ingest into
	// each log group. You can return all your log groups or filter the results by
	// prefix. The results are ASCII-sorted by log group name.
	//
	// CloudWatch Logs doesn't support IAM policies that control access to the
	// DescribeLogGroups action by using the aws:ResourceTag/key-name  condition key.
	// Other CloudWatch Logs actions do support the use of the
	// aws:ResourceTag/key-name condition key to control access. For more information
	// about using tags to control access, see [Controlling access to Amazon Web Services resources using tags].
	//
	// If you are using CloudWatch cross-account observability, you can use this
	// operation in a monitoring account and view data from the linked source accounts.
	// For more information, see [CloudWatch cross-account observability].
	//
	// [CloudWatch cross-account observability]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html
	// [Controlling access to Amazon Web Services resources using tags]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html
	DescribeLogGroups(ctx context.Context, params *cloudwatchlogs.DescribeLogGroupsInput, optFns ...func(*Options)) (*cloudwatchlogs.DescribeLogGroupsOutput, error)
	// Lists the log streams for the specified log group. You can list all the log
	// streams or filter the results by prefix. You can also control how the results
	// are ordered.
	//
	// You can specify the log group to search by using either logGroupIdentifier or
	// logGroupName . You must include one of these two parameters, but you can't
	// include both.
	//
	// This operation has a limit of 25 transactions per second, after which
	// transactions are throttled.
	//
	// If you are using CloudWatch cross-account observability, you can use this
	// operation in a monitoring account and view data from the linked source accounts.
	// For more information, see [CloudWatch cross-account observability].
	//
	// [CloudWatch cross-account observability]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html
	DescribeLogStreams(ctx context.Context, params *cloudwatchlogs.DescribeLogStreamsInput, optFns ...func(*Options)) (*cloudwatchlogs.DescribeLogStreamsOutput, error)
	// Lists the specified metric filters. You can list all of the metric filters or
	// filter the results by log name, prefix, metric name, or metric namespace. The
	// results are ASCII-sorted by filter name.
	DescribeMetricFilters(ctx context.Context, params *cloudwatchlogs.DescribeMetricFiltersInput, optFns ...func(*Options)) (*cloudwatchlogs.DescribeMetricFiltersOutput, error)
	// Returns a list of CloudWatch Logs Insights queries that are scheduled, running,
	// or have been run recently in this account. You can request all queries or limit
	// it to queries of a specific log group or queries with a certain status.
	//
	// This operation includes both interactive queries started directly by users and
	// automated queries executed by scheduled query configurations. Scheduled query
	// executions appear in the results alongside manually initiated queries, providing
	// visibility into all query activity in your account.
	DescribeQueries(ctx context.Context, params *cloudwatchlogs.DescribeQueriesInput, optFns ...func(*Options)) (*cloudwatchlogs.DescribeQueriesOutput, error)
	// This operation returns a paginated list of your saved CloudWatch Logs Insights
	// query definitions. You can retrieve query definitions from the current account
	// or from a source account that is linked to the current account.
	//
	// You can use the queryDefinitionNamePrefix parameter to limit the results to
	// only the query definitions that have names that start with a certain string.
	DescribeQueryDefinitions(ctx context.Context, params *cloudwatchlogs.DescribeQueryDefinitionsInput, optFns ...func(*Options)) (*cloudwatchlogs.DescribeQueryDefinitionsOutput, error)
	// Lists the resource policies in this account.
	DescribeResourcePolicies(ctx context.Context, params *cloudwatchlogs.DescribeResourcePoliciesInput, optFns ...func(*Options)) (*cloudwatchlogs.DescribeResourcePoliciesOutput, error)
	// Lists the subscription filters for the specified log group. You can list all
	// the subscription filters or filter the results by prefix. The results are
	// ASCII-sorted by filter name.
	DescribeSubscriptionFilters(ctx context.Context, params *cloudwatchlogs.DescribeSubscriptionFiltersInput, optFns ...func(*Options)) (*cloudwatchlogs.DescribeSubscriptionFiltersOutput, error)
	// Disassociates the specified KMS key from the specified log group or from all
	// CloudWatch Logs Insights query results in the account.
	//
	// When you use DisassociateKmsKey , you specify either the logGroupName parameter
	// or the resourceIdentifier parameter. You can't specify both of those parameters
	// in the same operation.
	//
	//   - Specify the logGroupName parameter to stop using the KMS key to encrypt
	//     future log events ingested and stored in the log group. Instead, they will be
	//     encrypted with the default CloudWatch Logs method. The log events that were
	//     ingested while the key was associated with the log group are still encrypted
	//     with that key. Therefore, CloudWatch Logs will need permissions for the key
	//     whenever that data is accessed.
	//
	//   - Specify the resourceIdentifier parameter with the query-result resource to
	//     stop using the KMS key to encrypt the results of all future [StartQuery]operations in the
	//     account. They will instead be encrypted with the default CloudWatch Logs method.
	//     The results from queries that ran while the key was associated with the account
	//     are still encrypted with that key. Therefore, CloudWatch Logs will need
	//     permissions for the key whenever that data is accessed.
	//
	// It can take up to 5 minutes for this operation to take effect.
	//
	// [StartQuery]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartQuery.html
	DisassociateKmsKey(ctx context.Context, params *cloudwatchlogs.DisassociateKmsKeyInput, optFns ...func(*Options)) (*cloudwatchlogs.DisassociateKmsKeyOutput, error)
	// Disassociates a data source from an S3 Table Integration, removing query access
	// and deleting all associated data from the integration.
	DisassociateSourceFromS3TableIntegration(ctx context.Context, params *cloudwatchlogs.DisassociateSourceFromS3TableIntegrationInput, optFns ...func(*Options)) (*cloudwatchlogs.DisassociateSourceFromS3TableIntegrationOutput, error)
	// Lists log events from the specified log group. You can list all the log events
	// or filter the results using one or more of the following:
	//
	//   - A filter pattern
	//
	//   - A time range
	//
	//   - The log stream name, or a log stream name prefix that matches multiple log
	//     streams
	//
	// You must have the logs:FilterLogEvents permission to perform this operation.
	//
	// You can specify the log group to search by using either logGroupIdentifier or
	// logGroupName . You must include one of these two parameters, but you can't
	// include both.
	//
	// FilterLogEvents is a paginated operation. Each page returned can contain up to
	// 1 MB of log events or up to 10,000 log events. A returned page might only be
	// partially full, or even empty. For example, if the result of a query would
	// return 15,000 log events, the first page isn't guaranteed to have 10,000 log
	// events even if they all fit into 1 MB.
	//
	// Partially full or empty pages don't necessarily mean that pagination is
	// finished. If the results include a nextToken , there might be more log events
	// available. You can return these additional log events by providing the nextToken
	// in a subsequent FilterLogEvents operation. If the results don't include a
	// nextToken , then pagination is finished.
	//
	// Specifying the limit parameter only guarantees that a single page doesn't
	// return more log events than the specified limit, but it might return fewer
	// events than the limit. This is the expected API behavior.
	//
	// The returned log events are sorted by event timestamp, the timestamp when the
	// event was ingested by CloudWatch Logs, and the ID of the PutLogEvents request.
	//
	// If you are using CloudWatch cross-account observability, you can use this
	// operation in a monitoring account and view data from the linked source accounts.
	// For more information, see [CloudWatch cross-account observability].
	//
	// If you are using [log transformation], the FilterLogEvents operation returns only the original
	// versions of log events, before they were transformed. To view the transformed
	// versions, you must use a [CloudWatch Logs query.]
	//
	// [log transformation]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html
	// [CloudWatch cross-account observability]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html
	// [CloudWatch Logs query.]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html
	FilterLogEvents(ctx context.Context, params *cloudwatchlogs.FilterLogEventsInput, optFns ...func(*Options)) (*cloudwatchlogs.FilterLogEventsOutput, error)
	// Returns information about a log group data protection policy.
	GetDataProtectionPolicy(ctx context.Context, params *cloudwatchlogs.GetDataProtectionPolicyInput, optFns ...func(*Options)) (*cloudwatchlogs.GetDataProtectionPolicyOutput, error)
	// Returns complete information about one logical delivery. A delivery is a
	// connection between a [delivery source]and a [delivery destination].
	//
	// A delivery source represents an Amazon Web Services resource that sends logs to
	// an logs delivery destination. The destination can be CloudWatch Logs, Amazon S3,
	// or Firehose. Only some Amazon Web Services services support being configured as
	// a delivery source. These services are listed in [Enable logging from Amazon Web Services services.]
	//
	// You need to specify the delivery id in this operation. You can find the IDs of
	// the deliveries in your account with the [DescribeDeliveries]operation.
	//
	// [delivery destination]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html
	// [delivery source]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliverySource.html
	// [Enable logging from Amazon Web Services services.]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html
	// [DescribeDeliveries]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeDeliveries.html
	GetDelivery(ctx context.Context, params *cloudwatchlogs.GetDeliveryInput, optFns ...func(*Options)) (*cloudwatchlogs.GetDeliveryOutput, error)
	// Retrieves complete information about one delivery destination.
	GetDeliveryDestination(ctx context.Context, params *cloudwatchlogs.GetDeliveryDestinationInput, optFns ...func(*Options)) (*cloudwatchlogs.GetDeliveryDestinationOutput, error)
	// Retrieves the delivery destination policy assigned to the delivery destination
	// that you specify. For more information about delivery destinations and their
	// policies, see [PutDeliveryDestinationPolicy].
	//
	// [PutDeliveryDestinationPolicy]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestinationPolicy.html
	GetDeliveryDestinationPolicy(ctx context.Context, params *cloudwatchlogs.GetDeliveryDestinationPolicyInput, optFns ...func(*Options)) (*cloudwatchlogs.GetDeliveryDestinationPolicyOutput, error)
	// Retrieves complete information about one delivery source.
	GetDeliverySource(ctx context.Context, params *cloudwatchlogs.GetDeliverySourceInput, optFns ...func(*Options)) (*cloudwatchlogs.GetDeliverySourceOutput, error)
	// Returns information about one integration between CloudWatch Logs and
	// OpenSearch Service.
	GetIntegration(ctx context.Context, params *cloudwatchlogs.GetIntegrationInput, optFns ...func(*Options)) (*cloudwatchlogs.GetIntegrationOutput, error)
	// Retrieves information about the log anomaly detector that you specify. The KMS
	// key ARN detected is valid.
	GetLogAnomalyDetector(ctx context.Context, params *cloudwatchlogs.GetLogAnomalyDetectorInput, optFns ...func(*Options)) (*cloudwatchlogs.GetLogAnomalyDetectorOutput, error)
	// Lists log events from the specified log stream. You can list all of the log
	// events or filter using a time range.
	//
	// GetLogEvents is a paginated operation. Each page returned can contain up to 1
	// MB of log events or up to 10,000 log events. A returned page might only be
	// partially full, or even empty. For example, if the result of a query would
	// return 15,000 log events, the first page isn't guaranteed to have 10,000 log
	// events even if they all fit into 1 MB.
	//
	// Partially full or empty pages don't necessarily mean that pagination is
	// finished. As long as the nextBackwardToken or nextForwardToken returned is NOT
	// equal to the nextToken that you passed into the API call, there might be more
	// log events available. The token that you use depends on the direction you want
	// to move in along the log stream. The returned tokens are never null.
	//
	// If you set startFromHead to true and you don’t include endTime in your request,
	// you can end up in a situation where the pagination doesn't terminate. This can
	// happen when the new log events are being added to the target log streams faster
	// than they are being read. This situation is a good use case for the CloudWatch
	// Logs [Live Tail]feature.
	//
	// If you are using CloudWatch cross-account observability, you can use this
	// operation in a monitoring account and view data from the linked source accounts.
	// For more information, see [CloudWatch cross-account observability].
	//
	// You can specify the log group to search by using either logGroupIdentifier or
	// logGroupName . You must include one of these two parameters, but you can't
	// include both.
	//
	// If you are using [log transformation], the GetLogEvents operation returns only the original
	// versions of log events, before they were transformed. To view the transformed
	// versions, you must use a [CloudWatch Logs query.]
	//
	// [log transformation]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html
	// [CloudWatch cross-account observability]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html
	// [CloudWatch Logs query.]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html
	// [Live Tail]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs_LiveTail.html
	GetLogEvents(ctx context.Context, params *cloudwatchlogs.GetLogEventsInput, optFns ...func(*Options)) (*cloudwatchlogs.GetLogEventsOutput, error)
	// Discovers available fields for a specific data source and type. The response
	// includes any field modifications introduced through pipelines, such as new
	// fields or changed field types.
	GetLogFields(ctx context.Context, params *cloudwatchlogs.GetLogFieldsInput, optFns ...func(*Options)) (*cloudwatchlogs.GetLogFieldsOutput, error)
	// Returns a list of the fields that are included in log events in the specified
	// log group. Includes the percentage of log events that contain each field. The
	// search is limited to a time period that you specify.
	//
	// This operation is used for discovering fields within log group events. For
	// discovering fields across data sources, use the GetLogFields operation.
	//
	// You can specify the log group to search by using either logGroupIdentifier or
	// logGroupName . You must specify one of these parameters, but you can't specify
	// both.
	//
	// In the results, fields that start with @ are fields generated by CloudWatch
	// Logs. For example, @timestamp is the timestamp of each log event. For more
	// information about the fields that are generated by CloudWatch logs, see [Supported Logs and Discovered Fields].
	//
	// The response results are sorted by the frequency percentage, starting with the
	// highest percentage.
	//
	// If you are using CloudWatch cross-account observability, you can use this
	// operation in a monitoring account and view data from the linked source accounts.
	// For more information, see [CloudWatch cross-account observability].
	//
	// [CloudWatch cross-account observability]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html
	// [Supported Logs and Discovered Fields]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData-discoverable-fields.html
	GetLogGroupFields(ctx context.Context, params *cloudwatchlogs.GetLogGroupFieldsInput, optFns ...func(*Options)) (*cloudwatchlogs.GetLogGroupFieldsOutput, error)
	// Retrieves a large logging object (LLO) and streams it back. This API is used to
	// fetch the content of large portions of log events that have been ingested
	// through the PutOpenTelemetryLogs API. When log events contain fields that would
	// cause the total event size to exceed 1MB, CloudWatch Logs automatically
	// processes up to 10 fields, starting with the largest fields. Each field is
	// truncated as needed to keep the total event size as close to 1MB as possible.
	// The excess portions are stored as Large Log Objects (LLOs) and these fields are
	// processed separately and LLO reference system fields (in the format
	// @ptr.$[path.to.field] ) are added. The path in the reference field reflects the
	// original JSON structure where the large field was located. For example, this
	// could be @ptr.$['input']['message'] , @ptr.$['AAA']['BBB']['CCC']['DDD'] ,
	// @ptr.$['AAA'] , or any other path matching your log structure.
	//
	// The GetLogObject API routes requests using SDK host prefix injection. SDK
	// versions released before April 1, 2026 route to
	// streaming-logs.Region.amazonaws.com , which does not support VPC endpoints. SDK
	// versions released on or after April 1, 2026 route to
	// stream-logs.Region.amazonaws.com , which supports VPC endpoints. To set up a VPC
	// endpoint for this API, see [Creating a VPC endpoint for CloudWatch Logs].
	//
	// [Creating a VPC endpoint for CloudWatch Logs]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch-logs-and-interface-VPC.html#create-VPC-endpoint-for-CloudWatchLogs
	GetLogObject(ctx context.Context, params *cloudwatchlogs.GetLogObjectInput, optFns ...func(*Options)) (*cloudwatchlogs.GetLogObjectOutput, error)
	// Retrieves all of the fields and values of a single log event. All fields are
	// retrieved, even if the original query that produced the logRecordPointer
	// retrieved only a subset of fields. Fields are returned as field name/field value
	// pairs.
	//
	// The full unparsed log event is returned within @message .
	GetLogRecord(ctx context.Context, params *cloudwatchlogs.GetLogRecordInput, optFns ...func(*Options)) (*cloudwatchlogs.GetLogRecordOutput, error)
	// Returns the results from the specified query.
	//
	// Only the fields requested in the query are returned, along with a @ptr field,
	// which is the identifier for the log record. You can use the value of @ptr in a [GetLogRecord]
	// operation to get the full log record.
	//
	// GetQueryResults does not start running a query. To run a query, use [StartQuery]. For more
	// information about how long results of previous queries are available, see [CloudWatch Logs quotas].
	//
	// If the value of the Status field in the output is Running , this operation
	// returns only partial results. If you see a value of Scheduled or Running for
	// the status, you can retry the operation later to see the final results.
	//
	// This operation is used both for retrieving results from interactive queries and
	// from automated scheduled query executions. Scheduled queries use GetQueryResults
	// internally to retrieve query results for processing and delivery to configured
	// destinations.
	//
	// If you are using CloudWatch cross-account observability, you can use this
	// operation in a monitoring account to start queries in linked source accounts.
	// For more information, see [CloudWatch cross-account observability].
	//
	// [CloudWatch cross-account observability]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html
	// [GetLogRecord]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetLogRecord.html
	// [CloudWatch Logs quotas]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch_limits_cwl.html
	// [StartQuery]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartQuery.html
	GetQueryResults(ctx context.Context, params *cloudwatchlogs.GetQueryResultsInput, optFns ...func(*Options)) (*cloudwatchlogs.GetQueryResultsOutput, error)
	// Retrieves details about a specific scheduled query, including its
	// configuration, execution status, and metadata.
	GetScheduledQuery(ctx context.Context, params *cloudwatchlogs.GetScheduledQueryInput, optFns ...func(*Options)) (*cloudwatchlogs.GetScheduledQueryOutput, error)
	// Retrieves the execution history of a scheduled query within a specified time
	// range, including query results and destination processing status.
	GetScheduledQueryHistory(ctx context.Context, params *cloudwatchlogs.GetScheduledQueryHistoryInput, optFns ...func(*Options)) (*cloudwatchlogs.GetScheduledQueryHistoryOutput, error)
	// Returns the information about the log transformer associated with this log
	// group.
	//
	// This operation returns data only for transformers created at the log group
	// level. To get information for an account-level transformer, use [DescribeAccountPolicies].
	//
	// [DescribeAccountPolicies]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeAccountPolicies.html
	GetTransformer(ctx context.Context, params *cloudwatchlogs.GetTransformerInput, optFns ...func(*Options)) (*cloudwatchlogs.GetTransformerOutput, error)
	// Returns an aggregate summary of all log groups in the Region grouped by
	// specified data source characteristics. Supports optional filtering by log group
	// class, name patterns, and data sources. If you perform this action in a
	// monitoring account, you can also return aggregated summaries of log groups from
	// source accounts that are linked to the monitoring account. For more information
	// about using cross-account observability to set up monitoring accounts and source
	// accounts, see [CloudWatch cross-account observability].
	//
	// The operation aggregates log groups by data source name and type and optionally
	// format, providing counts of log groups that share these characteristics. The
	// operation paginates results. By default, it returns up to 50 results and
	// includes a token to retrieve more results.
	//
	// [CloudWatch cross-account observability]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html
	ListAggregateLogGroupSummaries(ctx context.Context, params *cloudwatchlogs.ListAggregateLogGroupSummariesInput, optFns ...func(*Options)) (*cloudwatchlogs.ListAggregateLogGroupSummariesOutput, error)
	// Returns a list of anomalies that log anomaly detectors have found. For details
	// about the structure format of each anomaly object that is returned, see the
	// example in this section.
	ListAnomalies(ctx context.Context, params *cloudwatchlogs.ListAnomaliesInput, optFns ...func(*Options)) (*cloudwatchlogs.ListAnomaliesOutput, error)
	// Returns a list of integrations between CloudWatch Logs and other services in
	// this account. Currently, only one integration can be created in an account, and
	// this integration must be with OpenSearch Service.
	ListIntegrations(ctx context.Context, params *cloudwatchlogs.ListIntegrationsInput, optFns ...func(*Options)) (*cloudwatchlogs.ListIntegrationsOutput, error)
	// Retrieves a list of the log anomaly detectors in the account.
	ListLogAnomalyDetectors(ctx context.Context, params *cloudwatchlogs.ListLogAnomalyDetectorsInput, optFns ...func(*Options)) (*cloudwatchlogs.ListLogAnomalyDetectorsOutput, error)
	// Returns a list of log groups in the Region in your account. If you are
	// performing this action in a monitoring account, you can choose to also return
	// log groups from source accounts that are linked to the monitoring account. For
	// more information about using cross-account observability to set up monitoring
	// accounts and source accounts, see [CloudWatch cross-account observability].
	//
	// You can optionally filter the list by log group class, by using regular
	// expressions in your request to match strings in the log group names, by using
	// the fieldIndexes parameter to filter log groups based on which field indexes are
	// configured, by using the dataSources parameter to filter log groups by data
	// source types, and by using the fieldIndexNames parameter to filter by specific
	// field index names.
	//
	// This operation is paginated. By default, your first use of this operation
	// returns 50 results, and includes a token to use in a subsequent operation to
	// return more results.
	//
	// [CloudWatch cross-account observability]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html
	ListLogGroups(ctx context.Context, params *cloudwatchlogs.ListLogGroupsInput, optFns ...func(*Options)) (*cloudwatchlogs.ListLogGroupsOutput, error)
	// Returns a list of the log groups that were analyzed during a single CloudWatch
	// Logs Insights query. This can be useful for queries that use log group name
	// prefixes or the filterIndex command, because the log groups are dynamically
	// selected in these cases.
	//
	// For more information about field indexes, see [Create field indexes to improve query performance and reduce costs].
	//
	// [Create field indexes to improve query performance and reduce costs]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-Field-Indexing.html
	ListLogGroupsForQuery(ctx context.Context, params *cloudwatchlogs.ListLogGroupsForQueryInput, optFns ...func(*Options)) (*cloudwatchlogs.ListLogGroupsForQueryOutput, error)
	// Lists all scheduled queries in your account and region. You can filter results
	// by state to show only enabled or disabled queries.
	ListScheduledQueries(ctx context.Context, params *cloudwatchlogs.ListScheduledQueriesInput, optFns ...func(*Options)) (*cloudwatchlogs.ListScheduledQueriesOutput, error)
	// Returns a list of data source associations for a specified S3 Table
	// Integration, showing which data sources are currently associated for query
	// access.
	ListSourcesForS3TableIntegration(ctx context.Context, params *cloudwatchlogs.ListSourcesForS3TableIntegrationInput, optFns ...func(*Options)) (*cloudwatchlogs.ListSourcesForS3TableIntegrationOutput, error)
	// Displays the tags associated with a CloudWatch Logs resource. Currently, log
	// groups and destinations support tagging.
	ListTagsForResource(ctx context.Context, params *cloudwatchlogs.ListTagsForResourceInput, optFns ...func(*Options)) (*cloudwatchlogs.ListTagsForResourceOutput, error)
	// The ListTagsLogGroup operation is on the path to deprecation. We recommend that
	// you use [ListTagsForResource]instead.
	//
	// Lists the tags for the specified log group.
	//
	// Deprecated: Please use the generic tagging API ListTagsForResource
	//
	// [ListTagsForResource]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_ListTagsForResource.html
	ListTagsLogGroup(ctx context.Context, params *cloudwatchlogs.ListTagsLogGroupInput, optFns ...func(*Options)) (*cloudwatchlogs.ListTagsLogGroupOutput, error)
	// Creates an account-level data protection policy, subscription filter policy,
	// field index policy, transformer policy, or metric extraction policy that applies
	// to all log groups, a subset of log groups, or a data source name and type
	// combination in the account.
	//
	// For field index policies, you can configure indexed fields as facets to enable
	// interactive exploration of your logs. Facets provide value distributions and
	// counts for indexed fields in the CloudWatch Logs Insights console without
	// requiring query execution. For more information, see [Use facets to group and explore logs].
	//
	// To use this operation, you must be signed on with the correct permissions
	// depending on the type of policy that you are creating.
	//
	//   - To create a data protection policy, you must have the
	//     logs:PutDataProtectionPolicy and logs:PutAccountPolicy permissions.
	//
	//   - To create a subscription filter policy, you must have the
	//     logs:PutSubscriptionFilter and logs:PutAccountPolicy permissions.
	//
	//   - To create a transformer policy, you must have the logs:PutTransformer and
	//     logs:PutAccountPolicy permissions.
	//
	//   - To create a field index policy, you must have the logs:PutIndexPolicy and
	//     logs:PutAccountPolicy permissions.
	//
	//   - To configure facets for field index policies, you must have the
	//     logs:PutIndexPolicy and logs:PutAccountPolicy permissions.
	//
	//   - To create a metric extraction policy, you must have the
	//     logs:PutMetricExtractionPolicy and logs:PutAccountPolicy permissions.
	//
	// # Data protection policy
	//
	// A data protection policy can help safeguard sensitive data that's ingested by
	// your log groups by auditing and masking the sensitive log data. Each account can
	// have only one account-level data protection policy.
	//
	// Sensitive data is detected and masked when it is ingested into a log group.
	// When you set a data protection policy, log events ingested into the log groups
	// before that time are not masked.
	//
	// If you use PutAccountPolicy to create a data protection policy for your whole
	// account, it applies to both existing log groups and all log groups that are
	// created later in this account. The account-level policy is applied to existing
	// log groups with eventual consistency. It might take up to 5 minutes before
	// sensitive data in existing log groups begins to be masked.
	//
	// By default, when a user views a log event that includes masked data, the
	// sensitive data is replaced by asterisks. A user who has the logs:Unmask
	// permission can use a [GetLogEvents]or [FilterLogEvents] operation with the unmask parameter set to true to
	// view the unmasked log events. Users with the logs:Unmask can also view unmasked
	// data in the CloudWatch Logs console by running a CloudWatch Logs Insights query
	// with the unmask query command.
	//
	// For more information, including a list of types of data that can be audited and
	// masked, see [Protect sensitive log data with masking].
	//
	// To use the PutAccountPolicy operation for a data protection policy, you must be
	// signed on with the logs:PutDataProtectionPolicy and logs:PutAccountPolicy
	// permissions.
	//
	// The PutAccountPolicy operation applies to all log groups in the account. You
	// can use [PutDataProtectionPolicy]to create a data protection policy that applies to just one log group.
	// If a log group has its own data protection policy and the account also has an
	// account-level data protection policy, then the two policies are cumulative. Any
	// sensitive term specified in either policy is masked.
	//
	// # Subscription filter policy
	//
	// A subscription filter policy sets up a real-time feed of log events from
	// CloudWatch Logs to other Amazon Web Services services. Account-level
	// subscription filter policies apply to both existing log groups and log groups
	// that are created later in this account. Supported destinations are Kinesis Data
	// Streams, Firehose, and Lambda. When log events are sent to the receiving
	// service, they are Base64 encoded and compressed with the GZIP format.
	//
	// The following destinations are supported for subscription filters:
	//
	//   - An Kinesis Data Streams data stream in the same account as the subscription
	//     policy, for same-account delivery.
	//
	//   - An Firehose data stream in the same account as the subscription policy, for
	//     same-account delivery.
	//
	//   - A Lambda function in the same account as the subscription policy, for
	//     same-account delivery.
	//
	//   - A logical destination in a different account created with [PutDestination], for
	//     cross-account delivery. Kinesis Data Streams and Firehose are supported as
	//     logical destinations.
	//
	// Each account can have one account-level subscription filter policy per Region.
	// If you are updating an existing filter, you must specify the correct name in
	// PolicyName . To perform a PutAccountPolicy subscription filter operation for
	// any destination except a Lambda function, you must also have the iam:PassRole
	// permission.
	//
	// # Transformer policy
	//
	// Creates or updates a log transformer policy for your account. You use log
	// transformers to transform log events into a different format, making them easier
	// for you to process and analyze. You can also transform logs from different
	// sources into standardized formats that contain relevant, source-specific
	// information. After you have created a transformer, CloudWatch Logs performs this
	// transformation at the time of log ingestion. You can then refer to the
	// transformed versions of the logs during operations such as querying with
	// CloudWatch Logs Insights or creating metric filters or subscription filters.
	//
	// You can also use a transformer to copy metadata from metadata keys into the log
	// events themselves. This metadata can include log group name, log stream name,
	// account ID and Region.
	//
	// A transformer for a log group is a series of processors, where each processor
	// applies one type of transformation to the log events ingested into this log
	// group. For more information about the available processors to use in a
	// transformer, see [Processors that you can use].
	//
	// Having log events in standardized format enables visibility across your
	// applications for your log analysis, reporting, and alarming needs. CloudWatch
	// Logs provides transformation for common log types with out-of-the-box
	// transformation templates for major Amazon Web Services log sources such as VPC
	// flow logs, Lambda, and Amazon RDS. You can use pre-built transformation
	// templates or create custom transformation policies.
	//
	// You can create transformers only for the log groups in the Standard log class.
	//
	// You can have one account-level transformer policy that applies to all log
	// groups in the account. Or you can create as many as 20 account-level transformer
	// policies that are each scoped to a subset of log groups with the
	// selectionCriteria parameter. If you have multiple account-level transformer
	// policies with selection criteria, no two of them can use the same or overlapping
	// log group name prefixes. For example, if you have one policy filtered to log
	// groups that start with my-log , you can't have another transformer policy
	// filtered to my-logpprod or my-logging .
	//
	// You can also set up a transformer at the log-group level. For more information,
	// see [PutTransformer]. If there is both a log-group level transformer created with PutTransformer
	// and an account-level transformer that could apply to the same log group, the log
	// group uses only the log-group level transformer. It ignores the account-level
	// transformer.
	//
	// # Field index policy
	//
	// You can use field index policies to create indexes on fields found in log
	// events for a log group or data source name and type combination. Creating field
	// indexes can help lower the scan volume for CloudWatch Logs Insights queries that
	// reference those fields, because these queries attempt to skip the processing of
	// log events that are known to not match the indexed field. Good fields to index
	// are fields that you often need to query for and fields or values that match only
	// a small fraction of the total log events. Common examples of indexes include
	// request ID, session ID, user IDs, or instance IDs. For more information, see [Create field indexes to improve query performance and reduce costs]
	//
	// To find the fields that are in your log group events, use the [GetLogGroupFields] operation. To
	// find the fields for a data source use the [GetLogFields]operation.
	//
	// For example, suppose you have created a field index for requestId . Then, any
	// CloudWatch Logs Insights query on that log group that includes requestId =
	// value or requestId in [value, value, ...] will attempt to process only the log
	// events where the indexed field matches the specified value.
	//
	// Matches of log events to the names of indexed fields are case-sensitive. For
	// example, an indexed field of RequestId won't match a log event containing
	// requestId .
	//
	// You can have one account-level field index policy that applies to all log
	// groups in the account. Or you can create as many as 20 account-level field index
	// policies that are each scoped to a subset of log groups using LogGroupNamePrefix
	// with the selectionCriteria parameter. You can have another 20 account-level
	// field index policies using DataSourceName and DataSourceType for the
	// selectionCriteria parameter. If you have multiple account-level index policies
	// with LogGroupNamePrefix selection criteria, no two of them can use the same or
	// overlapping log group name prefixes. For example, if you have one policy
	// filtered to log groups that start with my-log, you can't have another field
	// index policy filtered to my-logpprod or my-logging. Similarly, if you have
	// multiple account-level index policies with DataSourceName and DataSourceType
	// selection criteria, no two of them can use the same data source name and type
	// combination. For example, if you have one policy filtered to the data source
	// name amazon_vpc and data source type flow you cannot create another policy with
	// this combination.
	//
	// If you create an account-level field index policy in a monitoring account in
	// cross-account observability, the policy is applied only to the monitoring
	// account and not to any source accounts.
	//
	// CloudWatch Logs provides default field indexes for all log groups in the
	// Standard log class. Default field indexes are automatically available for the
	// following fields:
	//
	//   - @logStream
	//
	//   - @aws.region
	//
	//   - @aws.account
	//
	//   - @source.log
	//
	//   - @data_source_name
	//
	//   - @data_source_type
	//
	//   - @data_format
	//
	//   - traceId
	//
	//   - severityText
	//
	//   - attributes.session.id
	//
	// CloudWatch Logs provides default field indexes for certain data source name and
	// type combinations as well. Default field indexes are automatically available for
	// the following data source name and type combinations as identified in the
	// following list:
	//
	//	  amazon_vpc.flow
	//
	//	- action
	//
	//	- logStatus
	//
	//	- region
	//
	//	- flowDirection
	//
	//	- type
	//
	//	  amazon_route53.resolver_query
	//
	//	- transport
	//
	//	- rcode
	//
	//	  aws_waf.access
	//
	//	- action
	//
	//	- httpRequest.country
	//
	// aws_cloudtrail.data , aws_cloudtrail.management
	//
	//   - eventSource
	//
	//   - eventName
	//
	//   - awsRegion
	//
	//   - userAgent
	//
	//   - errorCode
	//
	//   - eventType
	//
	//   - managementEvent
	//
	//   - readOnly
	//
	//   - eventCategory
	//
	//   - requestId
	//
	// Default field indexes are in addition to any custom field indexes you define
	// within your policy. Default field indexes are not counted towards your [field index quota].
	//
	// If you want to create a field index policy for a single log group, you can use [PutIndexPolicy]
	// instead of PutAccountPolicy . If you do so, that log group will use that
	// log-group level policy and any account-level policies that match at the data
	// source level; any account-level policy that matches at the log group level (for
	// example, no selection criteria or log group name prefix selection criteria) will
	// be ignored.
	//
	// # Metric extraction policy
	//
	// A metric extraction policy controls whether CloudWatch Metrics can be created
	// through the Embedded Metrics Format (EMF) for log groups in your account. By
	// default, EMF metric creation is enabled for all log groups. You can use metric
	// extraction policies to disable EMF metric creation for your entire account or
	// specific log groups.
	//
	// When a policy disables EMF metric creation for a log group, log events in the
	// EMF format are still ingested, but no CloudWatch Metrics are created from them.
	//
	// Creating a policy disables metrics for Amazon Web Services features that use
	// EMF to create metrics, such as CloudWatch Container Insights and CloudWatch
	// Application Signals. To prevent turning off those features by accident, we
	// recommend that you exclude the underlying log-groups through a
	// selection-criteria such as LogGroupNamePrefix NOT IN ["/aws/containerinsights",
	// "/aws/ecs/containerinsights", "/aws/application-signals/data"] .
	//
	// Each account can have either one account-level metric extraction policy that
	// applies to all log groups, or up to 5 policies that are each scoped to a subset
	// of log groups with the selectionCriteria parameter. The selection criteria
	// supports filtering by LogGroupName and LogGroupNamePrefix using the operators IN
	// and NOT IN . You can specify up to 50 values in each IN or NOT IN list.
	//
	// The selection criteria can be specified in these formats:
	//
	//	LogGroupName IN ["log-group-1", "log-group-2"]
	//
	//	LogGroupNamePrefix NOT IN ["/aws/prefix1", "/aws/prefix2"]
	//
	// If you have multiple account-level metric extraction policies with selection
	// criteria, no two of them can have overlapping criteria. For example, if you have
	// one policy with selection criteria LogGroupNamePrefix IN ["my-log"] , you can't
	// have another metric extraction policy with selection criteria
	// LogGroupNamePrefix IN ["/my-log-prod"] or LogGroupNamePrefix IN ["/my-logging"]
	// , as the set of log groups matching these prefixes would be a subset of the log
	// groups matching the first policy's prefix, creating an overlap.
	//
	// When using NOT IN , only one policy with this operator is allowed per account.
	//
	// When combining policies with IN and NOT IN operators, the overlap check ensures
	// that policies don't have conflicting effects. Two policies with IN and NOT IN
	// operators do not overlap if and only if every value in the IN policy is
	// completely contained within some value in the NOT IN policy. For example:
	//
	//   - If you have a NOT IN policy for prefix "/aws/lambda" , you can create an IN
	//     policy for the exact log group name "/aws/lambda/function1" because the set of
	//     log groups matching "/aws/lambda/function1" is a subset of the log groups
	//     matching "/aws/lambda" .
	//
	//   - If you have a NOT IN policy for prefix "/aws/lambda" , you cannot create an
	//     IN policy for prefix "/aws" because the set of log groups matching "/aws" is
	//     not a subset of the log groups matching "/aws/lambda" .
	//
	// [PutDestination]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDestination.html
	// [PutTransformer]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutTransformer.html
	// [GetLogFields]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetLogFields.html
	// [PutDataProtectionPolicy]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDataProtectionPolicy.html
	// [FilterLogEvents]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_FilterLogEvents.html
	// [Processors that you can use]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-Processors
	// [GetLogEvents]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetLogEvents.html
	// [field index quota]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-Field-Indexing-Syntax
	// [PutIndexPolicy]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutIndexPolicy.html
	// [Protect sensitive log data with masking]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html
	// [GetLogGroupFields]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetLogGroupFields.html
	// [Use facets to group and explore logs]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-Facets.html
	// [Create field indexes to improve query performance and reduce costs]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-Field-Indexing.html
	PutAccountPolicy(ctx context.Context, params *cloudwatchlogs.PutAccountPolicyInput, optFns ...func(*Options)) (*cloudwatchlogs.PutAccountPolicyOutput, error)
	// Enables or disables bearer token authentication for the specified log group.
	// When enabled on a log group, bearer token authentication is enabled on
	// operations until it is explicitly disabled.
	//
	// For information about the parameters that are common to all actions, see [Common Parameters].
	//
	// [Common Parameters]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/CommonParameters.html
	PutBearerTokenAuthentication(ctx context.Context, params *cloudwatchlogs.PutBearerTokenAuthenticationInput, optFns ...func(*Options)) (*cloudwatchlogs.PutBearerTokenAuthenticationOutput, error)
	// Creates a data protection policy for the specified log group. A data protection
	// policy can help safeguard sensitive data that's ingested by the log group by
	// auditing and masking the sensitive log data.
	//
	// Sensitive data is detected and masked when it is ingested into the log group.
	// When you set a data protection policy, log events ingested into the log group
	// before that time are not masked.
	//
	// By default, when a user views a log event that includes masked data, the
	// sensitive data is replaced by asterisks. A user who has the logs:Unmask
	// permission can use a [GetLogEvents]or [FilterLogEvents] operation with the unmask parameter set to true to
	// view the unmasked log events. Users with the logs:Unmask can also view unmasked
	// data in the CloudWatch Logs console by running a CloudWatch Logs Insights query
	// with the unmask query command.
	//
	// For more information, including a list of types of data that can be audited and
	// masked, see [Protect sensitive log data with masking].
	//
	// The PutDataProtectionPolicy operation applies to only the specified log group.
	// You can also use [PutAccountPolicy]to create an account-level data protection policy that applies
	// to all log groups in the account, including both existing log groups and log
	// groups that are created level. If a log group has its own data protection policy
	// and the account also has an account-level data protection policy, then the two
	// policies are cumulative. Any sensitive term specified in either policy is
	// masked.
	//
	// [Protect sensitive log data with masking]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html
	// [FilterLogEvents]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_FilterLogEvents.html
	// [PutAccountPolicy]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutAccountPolicy.html
	// [GetLogEvents]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetLogEvents.html
	PutDataProtectionPolicy(ctx context.Context, params *cloudwatchlogs.PutDataProtectionPolicyInput, optFns ...func(*Options)) (*cloudwatchlogs.PutDataProtectionPolicyOutput, error)
	// Creates or updates a logical delivery destination. A delivery destination is an
	// Amazon Web Services resource that represents an Amazon Web Services service that
	// logs can be sent to. CloudWatch Logs, Amazon S3, and Firehose are supported as
	// logs delivery destinations and X-Ray as the trace delivery destination.
	//
	// To configure logs delivery between a supported Amazon Web Services service and
	// a destination, you must do the following:
	//
	//   - Create a delivery source, which is a logical object that represents the
	//     resource that is actually sending the logs. For more information, see [PutDeliverySource].
	//
	//   - Use PutDeliveryDestination to create a delivery destination in the same
	//     account of the actual delivery destination. The delivery destination that you
	//     create is a logical object that represents the actual delivery destination.
	//
	//   - If you are delivering logs cross-account, you must use [PutDeliveryDestinationPolicy]in the destination
	//     account to assign an IAM policy to the destination. This policy allows delivery
	//     to that destination.
	//
	//   - Use CreateDelivery to create a delivery by pairing exactly one delivery
	//     source and one delivery destination. For more information, see [CreateDelivery].
	//
	// You can configure a single delivery source to send logs to multiple
	// destinations by creating multiple deliveries. You can also create multiple
	// deliveries to configure multiple delivery sources to send logs to the same
	// delivery destination.
	//
	// Only some Amazon Web Services services support being configured as a delivery
	// source. These services are listed as Supported [V2 Permissions] in the table at [Enabling logging from Amazon Web Services services.]
	//
	// If you use this operation to update an existing delivery destination, all the
	// current delivery destination parameters are overwritten with the new parameter
	// values that you specify.
	//
	// [PutDeliverySource]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliverySource.html
	// [Enabling logging from Amazon Web Services services.]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html
	// [CreateDelivery]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html
	// [PutDeliveryDestinationPolicy]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestinationPolicy.html
	PutDeliveryDestination(ctx context.Context, params *cloudwatchlogs.PutDeliveryDestinationInput, optFns ...func(*Options)) (*cloudwatchlogs.PutDeliveryDestinationOutput, error)
	// Creates and assigns an IAM policy that grants permissions to CloudWatch Logs to
	// deliver logs cross-account to a specified destination in this account. To
	// configure the delivery of logs from an Amazon Web Services service in another
	// account to a logs delivery destination in the current account, you must do the
	// following:
	//
	//   - Create a delivery source, which is a logical object that represents the
	//     resource that is actually sending the logs. For more information, see [PutDeliverySource].
	//
	//   - Create a delivery destination, which is a logical object that represents
	//     the actual delivery destination. For more information, see [PutDeliveryDestination].
	//
	//   - Use this operation in the destination account to assign an IAM policy to
	//     the destination. This policy allows delivery to that destination.
	//
	//   - Create a delivery by pairing exactly one delivery source and one delivery
	//     destination. For more information, see [CreateDelivery].
	//
	// Only some Amazon Web Services services support being configured as a delivery
	// source. These services are listed as Supported [V2 Permissions] in the table at [Enabling logging from Amazon Web Services services.]
	//
	// The contents of the policy must include two statements. One statement enables
	// general logs delivery, and the other allows delivery to the chosen destination.
	// See the examples for the needed policies.
	//
	// [PutDeliveryDestination]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html
	// [PutDeliverySource]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliverySource.html
	// [Enabling logging from Amazon Web Services services.]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html
	// [CreateDelivery]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html
	PutDeliveryDestinationPolicy(ctx context.Context, params *cloudwatchlogs.PutDeliveryDestinationPolicyInput, optFns ...func(*Options)) (*cloudwatchlogs.PutDeliveryDestinationPolicyOutput, error)
	// Creates or updates a logical delivery source. A delivery source represents an
	// Amazon Web Services resource that sends logs to an logs delivery destination.
	// The destination can be CloudWatch Logs, Amazon S3, Firehose or X-Ray for sending
	// traces.
	//
	// To configure logs delivery between a delivery destination and an Amazon Web
	// Services service that is supported as a delivery source, you must do the
	// following:
	//
	//   - Use PutDeliverySource to create a delivery source, which is a logical object
	//     that represents the resource that is actually sending the logs.
	//
	//   - Use PutDeliveryDestination to create a delivery destination, which is a
	//     logical object that represents the actual delivery destination. For more
	//     information, see [PutDeliveryDestination].
	//
	//   - If you are delivering logs cross-account, you must use [PutDeliveryDestinationPolicy]in the destination
	//     account to assign an IAM policy to the destination. This policy allows delivery
	//     to that destination.
	//
	//   - Use CreateDelivery to create a delivery by pairing exactly one delivery
	//     source and one delivery destination. For more information, see [CreateDelivery].
	//
	// You can configure a single delivery source to send logs to multiple
	// destinations by creating multiple deliveries. You can also create multiple
	// deliveries to configure multiple delivery sources to send logs to the same
	// delivery destination.
	//
	// Only some Amazon Web Services services support being configured as a delivery
	// source. These services are listed as Supported [V2 Permissions] in the table at [Enabling logging from Amazon Web Services services.]
	//
	// If you use this operation to update an existing delivery source, all the
	// current delivery source parameters are overwritten with the new parameter values
	// that you specify.
	//
	// [PutDeliveryDestination]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html
	// [Enabling logging from Amazon Web Services services.]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html
	// [CreateDelivery]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html
	// [PutDeliveryDestinationPolicy]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestinationPolicy.html
	PutDeliverySource(ctx context.Context, params *cloudwatchlogs.PutDeliverySourceInput, optFns ...func(*Options)) (*cloudwatchlogs.PutDeliverySourceOutput, error)
	// Creates or updates a destination. This operation is used only to create
	// destinations for cross-account subscriptions.
	//
	// A destination encapsulates a physical resource (such as an Amazon Kinesis
	// stream). With a destination, you can subscribe to a real-time stream of log
	// events for a different account, ingested using [PutLogEvents].
	//
	// Through an access policy, a destination controls what is written to it. By
	// default, PutDestination does not set any access policy with the destination,
	// which means a cross-account user cannot call [PutSubscriptionFilter]against this destination. To
	// enable this, the destination owner must call [PutDestinationPolicy]after PutDestination .
	//
	// To perform a PutDestination operation, you must also have the iam:PassRole
	// permission.
	//
	// [PutSubscriptionFilter]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutSubscriptionFilter.html
	// [PutLogEvents]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html
	// [PutDestinationPolicy]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDestinationPolicy.html
	PutDestination(ctx context.Context, params *cloudwatchlogs.PutDestinationInput, optFns ...func(*Options)) (*cloudwatchlogs.PutDestinationOutput, error)
	// Creates or updates an access policy associated with an existing destination. An
	// access policy is an [IAM policy document]that is used to authorize claims to register a subscription
	// filter against a given destination.
	//
	// [IAM policy document]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_overview.html
	PutDestinationPolicy(ctx context.Context, params *cloudwatchlogs.PutDestinationPolicyInput, optFns ...func(*Options)) (*cloudwatchlogs.PutDestinationPolicyOutput, error)
	// Creates or updates a field index policy for the specified log group. Only log
	// groups in the Standard log class support field index policies. For more
	// information about log classes, see [Log classes].
	//
	// You can use field index policies to create field indexes on fields found in log
	// events in the log group. Creating field indexes speeds up and lowers the costs
	// for CloudWatch Logs Insights queries that reference those field indexes, because
	// these queries attempt to skip the processing of log events that are known to not
	// match the indexed field. Good fields to index are fields that you often need to
	// query for and fields or values that match only a small fraction of the total log
	// events. Common examples of indexes include request ID, session ID, userID, and
	// instance IDs. For more information, see [Create field indexes to improve query performance and reduce costs].
	//
	// You can configure indexed fields as facets to enable interactive exploration
	// and filtering of your logs in the CloudWatch Logs Insights console. Facets allow
	// you to view value distributions and counts for indexed fields without running
	// queries. When you create a field index, you can optionally set it as a facet to
	// enable this interactive analysis capability. For more information, see [Use facets to group and explore logs].
	//
	// To find the fields that are in your log group events, use the [GetLogGroupFields] operation.
	//
	// For example, suppose you have created a field index for requestId . Then, any
	// CloudWatch Logs Insights query on that log group that includes requestId =
	// value or requestId IN [value, value, ...] will process fewer log events to
	// reduce costs, and have improved performance.
	//
	// CloudWatch Logs provides default field indexes for all log groups in the
	// Standard log class. Default field indexes are automatically available for the
	// following fields:
	//
	//   - @logStream
	//
	//   - @aws.region
	//
	//   - @aws.account
	//
	//   - @source.log
	//
	//   - traceId
	//
	// Default field indexes are in addition to any custom field indexes you define
	// within your policy. Default field indexes are not counted towards your field
	// index quota.
	//
	// Each index policy has the following quotas and restrictions:
	//
	//   - As many as 20 fields can be included in the policy.
	//
	//   - Each field name can include as many as 100 characters.
	//
	// Matches of log events to the names of indexed fields are case-sensitive. For
	// example, a field index of RequestId won't match a log event containing requestId
	// .
	//
	// Log group-level field index policies created with PutIndexPolicy override
	// account-level field index policies created with [PutAccountPolicy]that apply to log groups. If
	// you use PutIndexPolicy to create a field index policy for a log group, that log
	// group uses only that policy for log group-level indexing, including any facet
	// configurations. The log group ignores any account-wide field index policy that
	// applies to log groups, but data source-based account policies may still apply.
	//
	// [Log classes]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html
	// [GetLogGroupFields]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetLogGroupFields.html
	// [PutAccountPolicy]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutAccountPolicy.html
	// [Create field indexes to improve query performance and reduce costs]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-Field-Indexing.html
	// [Use facets to group and explore logs]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-Facets.html
	PutIndexPolicy(ctx context.Context, params *cloudwatchlogs.PutIndexPolicyInput, optFns ...func(*Options)) (*cloudwatchlogs.PutIndexPolicyOutput, error)
	// Creates an integration between CloudWatch Logs and another service in this
	// account. Currently, only integrations with OpenSearch Service are supported, and
	// currently you can have only one integration in your account.
	//
	// Integrating with OpenSearch Service makes it possible for you to create curated
	// vended logs dashboards, powered by OpenSearch Service analytics. For more
	// information, see [Vended log dashboards powered by Amazon OpenSearch Service].
	//
	// You can use this operation only to create a new integration. You can't modify
	// an existing integration.
	//
	// [Vended log dashboards powered by Amazon OpenSearch Service]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-OpenSearch-Dashboards.html
	PutIntegration(ctx context.Context, params *cloudwatchlogs.PutIntegrationInput, optFns ...func(*Options)) (*cloudwatchlogs.PutIntegrationOutput, error)
	// Uploads a batch of log events to the specified log stream.
	//
	// The sequence token is now ignored in PutLogEvents actions. PutLogEvents actions
	// are always accepted and never return InvalidSequenceTokenException or
	// DataAlreadyAcceptedException even if the sequence token is not valid. You can
	// use parallel PutLogEvents actions on the same log stream.
	//
	// The batch of events must satisfy the following constraints:
	//
	//   - The maximum batch size is 1,048,576 bytes. This size is calculated as the
	//     sum of all event messages in UTF-8, plus 26 bytes for each log event.
	//
	//   - Events more than 2 hours in the future are rejected while processing
	//     remaining valid events.
	//
	//   - Events older than 14 days or preceding the log group's retention period are
	//     rejected while processing remaining valid events.
	//
	//   - The log events in the batch must be in chronological order by their
	//     timestamp. The timestamp is the time that the event occurred, expressed as the
	//     number of milliseconds after Jan 1, 1970 00:00:00 UTC . (In Amazon Web
	//     Services Tools for PowerShell and the Amazon Web Services SDK for .NET, the
	//     timestamp is specified in .NET format: yyyy-mm-ddThh:mm:ss . For example,
	//     2017-09-15T13:45:30 .)
	//
	//   - A batch of log events in a single request must be in a chronological order.
	//     Otherwise, the operation fails.
	//
	//   - Each log event can be no larger than 1 MB.
	//
	//   - The maximum number of log events in a batch is 10,000.
	//
	//   - For valid events (within 14 days in the past to 2 hours in future), the
	//     time span in a single batch cannot exceed 24 hours. Otherwise, the operation
	//     fails.
	//
	// The quota of five requests per second per log stream has been removed. Instead,
	// PutLogEvents actions are throttled based on a per-second per-account quota. You
	// can request an increase to the per-second throttling quota by using the Service
	// Quotas service.
	//
	// If a call to PutLogEvents returns "UnrecognizedClientException" the most likely
	// cause is a non-valid Amazon Web Services access key ID or secret key.
	PutLogEvents(ctx context.Context, params *cloudwatchlogs.PutLogEventsInput, optFns ...func(*Options)) (*cloudwatchlogs.PutLogEventsOutput, error)
	// Enables or disables deletion protection for the specified log group. When
	// enabled on a log group, deletion protection blocks all deletion operations until
	// it is explicitly disabled.
	//
	// For information about the parameters that are common to all actions, see [Common Parameters].
	//
	// [Common Parameters]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/CommonParameters.html
	PutLogGroupDeletionProtection(ctx context.Context, params *cloudwatchlogs.PutLogGroupDeletionProtectionInput, optFns ...func(*Options)) (*cloudwatchlogs.PutLogGroupDeletionProtectionOutput, error)
	// Creates or updates a metric filter and associates it with the specified log
	// group. With metric filters, you can configure rules to extract metric data from
	// log events ingested through [PutLogEvents].
	//
	// The maximum number of metric filters that can be associated with a log group is
	// 100.
	//
	// Using regular expressions in filter patterns is supported. For these filters,
	// there is a quota of two regular expression patterns within a single filter
	// pattern. There is also a quota of five regular expression patterns per log
	// group. For more information about using regular expressions in filter patterns,
	// see [Filter pattern syntax for metric filters, subscription filters, filter log events, and Live Tail].
	//
	// When you create a metric filter, you can also optionally assign a unit and
	// dimensions to the metric that is created.
	//
	// Metrics extracted from log events are charged as custom metrics. To prevent
	// unexpected high charges, do not specify high-cardinality fields such as
	// IPAddress or requestID as dimensions. Each different value found for a
	// dimension is treated as a separate metric and accrues charges as a separate
	// custom metric.
	//
	// CloudWatch Logs might disable a metric filter if it generates 1,000 different
	// name/value pairs for your specified dimensions within one hour.
	//
	// You can also set up a billing alarm to alert you if your charges are higher
	// than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Amazon Web Services Charges].
	//
	// [Creating a Billing Alarm to Monitor Your Estimated Amazon Web Services Charges]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html
	// [PutLogEvents]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html
	// [Filter pattern syntax for metric filters, subscription filters, filter log events, and Live Tail]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html
	PutMetricFilter(ctx context.Context, params *cloudwatchlogs.PutMetricFilterInput, optFns ...func(*Options)) (*cloudwatchlogs.PutMetricFilterOutput, error)
	// Creates or updates a query definition for CloudWatch Logs Insights. For more
	// information, see [Analyzing Log Data with CloudWatch Logs Insights].
	//
	// To update a query definition, specify its queryDefinitionId in your request.
	// The values of name , queryString , and logGroupNames are changed to the values
	// that you specify in your update operation. No current values are retained from
	// the current query definition. For example, imagine updating a current query
	// definition that includes log groups. If you don't specify the logGroupNames
	// parameter in your update operation, the query definition changes to contain no
	// log groups.
	//
	// You must have the logs:PutQueryDefinition permission to be able to perform this
	// operation.
	//
	// [Analyzing Log Data with CloudWatch Logs Insights]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html
	PutQueryDefinition(ctx context.Context, params *cloudwatchlogs.PutQueryDefinitionInput, optFns ...func(*Options)) (*cloudwatchlogs.PutQueryDefinitionOutput, error)
	// Creates or updates a resource policy allowing other Amazon Web Services
	// services to put log events to this account, such as Amazon Route 53. This API
	// has the following restrictions:
	//
	//   - Supported actions - Policy only supports logs:PutLogEvents and
	//     logs:CreateLogStream actions
	//
	//   - Supported principals - Policy only applies when operations are invoked by
	//     Amazon Web Services service principals (not IAM users, roles, or cross-account
	//     principals
	//
	//   - Policy limits - An account can have a maximum of 10 policies without
	//     resourceARN and one per LogGroup resourceARN
	//
	// Resource policies with actions invoked by non-Amazon Web Services service
	// principals (such as IAM users, roles, or other Amazon Web Services accounts)
	// will not be enforced. For access control involving these principals, use the IAM
	// policies.
	PutResourcePolicy(ctx context.Context, params *cloudwatchlogs.PutResourcePolicyInput, optFns ...func(*Options)) (*cloudwatchlogs.PutResourcePolicyOutput, error)
	// Sets the retention of the specified log group. With a retention policy, you can
	// configure the number of days for which to retain log events in the specified log
	// group.
	//
	// CloudWatch Logs doesn't immediately delete log events when they reach their
	// retention setting. It typically takes up to 72 hours after that before log
	// events are deleted, but in rare situations might take longer.
	//
	// To illustrate, imagine that you change a log group to have a longer retention
	// setting when it contains log events that are past the expiration date, but
	// haven't been deleted. Those log events will take up to 72 hours to be deleted
	// after the new retention date is reached. To make sure that log data is deleted
	// permanently, keep a log group at its lower retention setting until 72 hours
	// after the previous retention period ends. Alternatively, wait to change the
	// retention setting until you confirm that the earlier log events are deleted.
	//
	// When log events reach their retention setting they are marked for deletion.
	// After they are marked for deletion, they do not add to your archival storage
	// costs anymore, even if they are not actually deleted until later. These log
	// events marked for deletion are also not included when you use an API to retrieve
	// the storedBytes value to see how many bytes a log group is storing.
	PutRetentionPolicy(ctx context.Context, params *cloudwatchlogs.PutRetentionPolicyInput, optFns ...func(*Options)) (*cloudwatchlogs.PutRetentionPolicyOutput, error)
	// Creates or updates a subscription filter and associates it with the specified
	// log group. With subscription filters, you can subscribe to a real-time stream of
	// log events ingested through [PutLogEvents]and have them delivered to a specific destination.
	// When log events are sent to the receiving service, they are Base64 encoded and
	// compressed with the GZIP format.
	//
	// The following destinations are supported for subscription filters:
	//
	//   - An Amazon Kinesis data stream belonging to the same account as the
	//     subscription filter, for same-account delivery.
	//
	//   - A logical destination created with [PutDestination]that belongs to a different account, for
	//     cross-account delivery. We currently support Kinesis Data Streams and Firehose
	//     as logical destinations.
	//
	//   - An Amazon Kinesis Data Firehose delivery stream that belongs to the same
	//     account as the subscription filter, for same-account delivery.
	//
	//   - An Lambda function that belongs to the same account as the subscription
	//     filter, for same-account delivery.
	//
	// Each log group can have up to two subscription filters associated with it. If
	// you are updating an existing filter, you must specify the correct name in
	// filterName .
	//
	// Using regular expressions in filter patterns is supported. For these filters,
	// there is a quotas of quota of two regular expression patterns within a single
	// filter pattern. There is also a quota of five regular expression patterns per
	// log group. For more information about using regular expressions in filter
	// patterns, see [Filter pattern syntax for metric filters, subscription filters, filter log events, and Live Tail].
	//
	// To perform a PutSubscriptionFilter operation for any destination except a
	// Lambda function, you must also have the iam:PassRole permission.
	//
	// [PutDestination]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDestination.html
	// [PutLogEvents]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html
	// [Filter pattern syntax for metric filters, subscription filters, filter log events, and Live Tail]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html
	PutSubscriptionFilter(ctx context.Context, params *cloudwatchlogs.PutSubscriptionFilterInput, optFns ...func(*Options)) (*cloudwatchlogs.PutSubscriptionFilterOutput, error)
	// Creates or updates a log transformer for a single log group. You use log
	// transformers to transform log events into a different format, making them easier
	// for you to process and analyze. You can also transform logs from different
	// sources into standardized formats that contains relevant, source-specific
	// information.
	//
	// After you have created a transformer, CloudWatch Logs performs the
	// transformations at the time of log ingestion. You can then refer to the
	// transformed versions of the logs during operations such as querying with
	// CloudWatch Logs Insights or creating metric filters or subscription filers.
	//
	// You can also use a transformer to copy metadata from metadata keys into the log
	// events themselves. This metadata can include log group name, log stream name,
	// account ID and Region.
	//
	// A transformer for a log group is a series of processors, where each processor
	// applies one type of transformation to the log events ingested into this log
	// group. The processors work one after another, in the order that you list them,
	// like a pipeline. For more information about the available processors to use in a
	// transformer, see [Processors that you can use].
	//
	// Having log events in standardized format enables visibility across your
	// applications for your log analysis, reporting, and alarming needs. CloudWatch
	// Logs provides transformation for common log types with out-of-the-box
	// transformation templates for major Amazon Web Services log sources such as VPC
	// flow logs, Lambda, and Amazon RDS. You can use pre-built transformation
	// templates or create custom transformation policies.
	//
	// You can create transformers only for the log groups in the Standard log class.
	//
	// You can also set up a transformer at the account level. For more information,
	// see [PutAccountPolicy]. If there is both a log-group level transformer created with PutTransformer
	// and an account-level transformer that could apply to the same log group, the log
	// group uses only the log-group level transformer. It ignores the account-level
	// transformer.
	//
	// [Processors that you can use]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation.html#CloudWatch-Logs-Transformation-Processors
	// [PutAccountPolicy]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutAccountPolicy.html
	PutTransformer(ctx context.Context, params *cloudwatchlogs.PutTransformerInput, optFns ...func(*Options)) (*cloudwatchlogs.PutTransformerOutput, error)
	// Starts a Live Tail streaming session for one or more log groups. A Live Tail
	// session returns a stream of log events that have been recently ingested in the
	// log groups. For more information, see [Use Live Tail to view logs in near real time].
	//
	// The response to this operation is a response stream, over which the server
	// sends live log events and the client receives them.
	//
	// The following objects are sent over the stream:
	//
	//   - A single [LiveTailSessionStart]object is sent at the start of the session.
	//
	//   - Every second, a [LiveTailSessionUpdate]object is sent. Each of these objects contains an array of
	//     the actual log events.
	//
	// If no new log events were ingested in the past second, the LiveTailSessionUpdate
	//
	//	object will contain an empty array.
	//
	// The array of log events contained in a LiveTailSessionUpdate can include as many
	//
	//	as 500 log events. If the number of log events matching the request exceeds 500
	//	per second, the log events are sampled down to 500 log events to be included in
	//	each LiveTailSessionUpdate object.
	//
	// If your client consumes the log events slower than the server produces them,
	//
	//	CloudWatch Logs buffers up to 10 LiveTailSessionUpdate events or 5000 log
	//	events, after which it starts dropping the oldest events.
	//
	//	- A [SessionStreamingException]object is returned if an unknown error occurs on the server side.
	//
	//	- A [SessionTimeoutException]object is returned when the session times out, after it has been kept
	//	open for three hours.
	//
	// The StartLiveTail API routes requests using SDK host prefix injection. SDK
	// versions released before April 1, 2026 route to
	// streaming-logs.Region.amazonaws.com , which does not support VPC endpoints. SDK
	// versions released on or after April 1, 2026 route to
	// stream-logs.Region.amazonaws.com , which supports VPC endpoints. To set up a VPC
	// endpoint for this API, see [Creating a VPC endpoint for CloudWatch Logs].
	//
	// You can end a session before it times out by closing the session stream or by
	// closing the client that is receiving the stream. The session also ends if the
	// established connection between the client and the server breaks.
	//
	// For examples of using an SDK to start a Live Tail session, see [Start a Live Tail session using an Amazon Web Services SDK].
	//
	// [LiveTailSessionStart]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_LiveTailSessionStart.html
	// [LiveTailSessionUpdate]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_LiveTailSessionUpdate.html
	// [Use Live Tail to view logs in near real time]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs_LiveTail.html
	// [Creating a VPC endpoint for CloudWatch Logs]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch-logs-and-interface-VPC.html#create-VPC-endpoint-for-CloudWatchLogs
	// [Start a Live Tail session using an Amazon Web Services SDK]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/example_cloudwatch-logs_StartLiveTail_section.html
	//
	// [SessionTimeoutException]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartLiveTailResponseStream.html#CWL-Type-StartLiveTailResponseStream-SessionTimeoutException
	// [SessionStreamingException]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartLiveTailResponseStream.html#CWL-Type-StartLiveTailResponseStream-SessionStreamingException
	StartLiveTail(ctx context.Context, params *cloudwatchlogs.StartLiveTailInput, optFns ...func(*Options)) (*cloudwatchlogs.StartLiveTailOutput, error)
	// Starts a query of one or more log groups or data sources using CloudWatch Logs
	// Insights. You specify the log groups or data sources and time range to query and
	// the query string to use. You can query up to 10 data sources in a single query.
	//
	// For more information, see [CloudWatch Logs Insights Query Syntax].
	//
	// After you run a query using StartQuery , the query results are stored by
	// CloudWatch Logs. You can use [GetQueryResults]to retrieve the results of a query, using the
	// queryId that StartQuery returns.
	//
	// Interactive queries started with StartQuery share concurrency limits with
	// automated scheduled query executions. Both types of queries count toward the
	// same regional concurrent query quota, so high scheduled query activity may
	// affect the availability of concurrent slots for interactive queries.
	//
	// To specify the log groups to query, a StartQuery operation must include one of
	// the following:
	//
	//   - Either exactly one of the following parameters: logGroupName , logGroupNames
	//     , or logGroupIdentifiers
	//
	//   - Or the queryString must include a SOURCE command to select log groups for
	//     the query. The SOURCE command can select log groups based on log group name
	//     prefix, account ID, and log class, or select data sources using dataSource
	//     syntax in LogsQL, PPL, and SQL.
	//
	// For more information about the SOURCE command, see [SOURCE].
	//
	// If you have associated a KMS key with the query results in this account, then [StartQuery]
	// uses that key to encrypt the results when it stores them. If no key is
	// associated with query results, the query results are encrypted with the default
	// CloudWatch Logs encryption method.
	//
	// Queries time out after 60 minutes of runtime. If your queries are timing out,
	// reduce the time range being searched or partition your query into a number of
	// queries.
	//
	// If you are using CloudWatch cross-account observability, you can use this
	// operation in a monitoring account to start a query in a linked source account.
	// For more information, see [CloudWatch cross-account observability]. For a cross-account StartQuery operation, the query
	// definition must be defined in the monitoring account.
	//
	// You can have up to 30 concurrent CloudWatch Logs insights queries, including
	// queries that have been added to dashboards.
	//
	// [CloudWatch Logs Insights Query Syntax]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html
	// [CloudWatch cross-account observability]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html
	// [SOURCE]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax-Source.html
	// [GetQueryResults]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetQueryResults.html
	// [StartQuery]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartQuery.html
	StartQuery(ctx context.Context, params *cloudwatchlogs.StartQueryInput, optFns ...func(*Options)) (*cloudwatchlogs.StartQueryOutput, error)
	// Stops a CloudWatch Logs Insights query that is in progress. If the query has
	// already ended, the operation returns an error indicating that the specified
	// query is not running.
	//
	// This operation can be used to cancel both interactive queries and individual
	// scheduled query executions. When used with scheduled queries, StopQuery cancels
	// only the specific execution identified by the query ID, not the scheduled query
	// configuration itself.
	StopQuery(ctx context.Context, params *cloudwatchlogs.StopQueryInput, optFns ...func(*Options)) (*cloudwatchlogs.StopQueryOutput, error)
	// The TagLogGroup operation is on the path to deprecation. We recommend that you
	// use [TagResource]instead.
	//
	// Adds or updates the specified tags for the specified log group.
	//
	// To list the tags for a log group, use [ListTagsForResource]. To remove tags, use [UntagResource].
	//
	// For more information about tags, see [Tag Log Groups in Amazon CloudWatch Logs] in the Amazon CloudWatch Logs User Guide.
	//
	// CloudWatch Logs doesn't support IAM policies that prevent users from assigning
	// specified tags to log groups using the aws:Resource/key-name  or aws:TagKeys
	// condition keys. For more information about using tags to control access, see [Controlling access to Amazon Web Services resources using tags].
	//
	// Deprecated: Please use the generic tagging API TagResource
	//
	// [TagResource]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_TagResource.html
	// [UntagResource]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_UntagResource.html
	// [Tag Log Groups in Amazon CloudWatch Logs]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#log-group-tagging
	// [Controlling access to Amazon Web Services resources using tags]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html
	// [ListTagsForResource]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_ListTagsForResource.html
	TagLogGroup(ctx context.Context, params *cloudwatchlogs.TagLogGroupInput, optFns ...func(*Options)) (*cloudwatchlogs.TagLogGroupOutput, error)
	// Assigns one or more tags (key-value pairs) to the specified CloudWatch Logs
	// resource. Currently, the only CloudWatch Logs resources that can be tagged are
	// log groups and destinations.
	//
	// Tags can help you organize and categorize your resources. You can also use them
	// to scope user permissions by granting a user permission to access or change only
	// resources with certain tag values.
	//
	// Tags don't have any semantic meaning to Amazon Web Services and are interpreted
	// strictly as strings of characters.
	//
	// You can use the TagResource action with a resource that already has tags. If
	// you specify a new tag key for the alarm, this tag is appended to the list of
	// tags associated with the alarm. If you specify a tag key that is already
	// associated with the alarm, the new tag value that you specify replaces the
	// previous value for that tag.
	//
	// You can associate as many as 50 tags with a CloudWatch Logs resource.
	TagResource(ctx context.Context, params *cloudwatchlogs.TagResourceInput, optFns ...func(*Options)) (*cloudwatchlogs.TagResourceOutput, error)
	// Tests the filter pattern of a metric filter against a sample of log event
	// messages. You can use this operation to validate the correctness of a metric
	// filter pattern.
	TestMetricFilter(ctx context.Context, params *cloudwatchlogs.TestMetricFilterInput, optFns ...func(*Options)) (*cloudwatchlogs.TestMetricFilterOutput, error)
	// Use this operation to test a log transformer. You enter the transformer
	// configuration and a set of log events to test with. The operation responds with
	// an array that includes the original log events and the transformed versions.
	TestTransformer(ctx context.Context, params *cloudwatchlogs.TestTransformerInput, optFns ...func(*Options)) (*cloudwatchlogs.TestTransformerOutput, error)
	// The UntagLogGroup operation is on the path to deprecation. We recommend that
	// you use [UntagResource]instead.
	//
	// Removes the specified tags from the specified log group.
	//
	// To list the tags for a log group, use [ListTagsForResource]. To add tags, use [TagResource].
	//
	// When using IAM policies to control tag management for CloudWatch Logs log
	// groups, the condition keys aws:Resource/key-name and aws:TagKeys cannot be used
	// to restrict which tags users can assign.
	//
	// Deprecated: Please use the generic tagging API UntagResource
	//
	// [TagResource]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_TagResource.html
	// [UntagResource]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_UntagResource.html
	// [ListTagsForResource]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_ListTagsForResource.html
	UntagLogGroup(ctx context.Context, params *cloudwatchlogs.UntagLogGroupInput, optFns ...func(*Options)) (*cloudwatchlogs.UntagLogGroupOutput, error)
	// Removes one or more tags from the specified resource.
	UntagResource(ctx context.Context, params *cloudwatchlogs.UntagResourceInput, optFns ...func(*Options)) (*cloudwatchlogs.UntagResourceOutput, error)
	// Use this operation to suppress anomaly detection for a specified anomaly or
	// pattern. If you suppress an anomaly, CloudWatch Logs won't report new
	// occurrences of that anomaly and won't update that anomaly with new data. If you
	// suppress a pattern, CloudWatch Logs won't report any anomalies related to that
	// pattern.
	//
	// You must specify either anomalyId or patternId , but you can't specify both
	// parameters in the same operation.
	//
	// If you have previously used this operation to suppress detection of a pattern
	// or anomaly, you can use it again to cause CloudWatch Logs to end the
	// suppression. To do this, use this operation and specify the anomaly or pattern
	// to stop suppressing, and omit the suppressionType and suppressionPeriod
	// parameters.
	UpdateAnomaly(ctx context.Context, params *cloudwatchlogs.UpdateAnomalyInput, optFns ...func(*Options)) (*cloudwatchlogs.UpdateAnomalyOutput, error)
	// Use this operation to update the configuration of a [delivery] to change either the S3
	// path pattern or the format of the delivered logs. You can't use this operation
	// to change the source or destination of the delivery.
	//
	// [delivery]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_Delivery.html
	UpdateDeliveryConfiguration(ctx context.Context, params *cloudwatchlogs.UpdateDeliveryConfigurationInput, optFns ...func(*Options)) (*cloudwatchlogs.UpdateDeliveryConfigurationOutput, error)
	// Updates an existing log anomaly detector.
	UpdateLogAnomalyDetector(ctx context.Context, params *cloudwatchlogs.UpdateLogAnomalyDetectorInput, optFns ...func(*Options)) (*cloudwatchlogs.UpdateLogAnomalyDetectorOutput, error)
	// Updates an existing scheduled query with new configuration. This operation uses
	// PUT semantics, allowing modification of query parameters, schedule, and
	// destinations.
	UpdateScheduledQuery(ctx context.Context, params *cloudwatchlogs.UpdateScheduledQueryInput, optFns ...func(*Options)) (*cloudwatchlogs.UpdateScheduledQueryOutput, error)
}

CloudWatchLogs provides an interface to the AWS CloudWatchLogs service.

type EC2 added in v0.94.0

type EC2 interface {
	// Options returns a copy of the client configuration.
	//
	// Callers SHOULD NOT perform mutations on any inner structures within client
	// config. Config overrides should instead be made on a per-operation basis through
	// functional options.
	Options() ec2.Options
	// Accepts an Elastic IP address transfer. For more information, see [Accept a transferred Elastic IP address] in the
	// Amazon VPC User Guide.
	//
	// [Accept a transferred Elastic IP address]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#using-instance-addressing-eips-transfer-accept
	AcceptAddressTransfer(ctx context.Context, params *ec2.AcceptAddressTransferInput, optFns ...func(*Options)) (*ec2.AcceptAddressTransferOutput, error)
	// Accepts a request to assign billing of the available capacity of a shared
	// Capacity Reservation to your account. For more information, see [Billing assignment for shared Amazon EC2 Capacity Reservations].
	//
	// [Billing assignment for shared Amazon EC2 Capacity Reservations]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/assign-billing.html
	AcceptCapacityReservationBillingOwnership(ctx context.Context, params *ec2.AcceptCapacityReservationBillingOwnershipInput, optFns ...func(*Options)) (*ec2.AcceptCapacityReservationBillingOwnershipOutput, error)
	// Accepts the Convertible Reserved Instance exchange quote described in the GetReservedInstancesExchangeQuote call.
	AcceptReservedInstancesExchangeQuote(ctx context.Context, params *ec2.AcceptReservedInstancesExchangeQuoteInput, optFns ...func(*Options)) (*ec2.AcceptReservedInstancesExchangeQuoteOutput, error)
	// Accepts a request to associate subnets with a transit gateway multicast domain.
	AcceptTransitGatewayMulticastDomainAssociations(ctx context.Context, params *ec2.AcceptTransitGatewayMulticastDomainAssociationsInput, optFns ...func(*Options)) (*ec2.AcceptTransitGatewayMulticastDomainAssociationsOutput, error)
	// Accepts a transit gateway peering attachment request. The peering attachment
	// must be in the pendingAcceptance state.
	AcceptTransitGatewayPeeringAttachment(ctx context.Context, params *ec2.AcceptTransitGatewayPeeringAttachmentInput, optFns ...func(*Options)) (*ec2.AcceptTransitGatewayPeeringAttachmentOutput, error)
	// Accepts a request to attach a VPC to a transit gateway.
	//
	// The VPC attachment must be in the pendingAcceptance state. Use DescribeTransitGatewayVpcAttachments to view your
	// pending VPC attachment requests. Use RejectTransitGatewayVpcAttachmentto reject a VPC attachment request.
	AcceptTransitGatewayVpcAttachment(ctx context.Context, params *ec2.AcceptTransitGatewayVpcAttachmentInput, optFns ...func(*Options)) (*ec2.AcceptTransitGatewayVpcAttachmentOutput, error)
	// Accepts connection requests to your VPC endpoint service.
	AcceptVpcEndpointConnections(ctx context.Context, params *ec2.AcceptVpcEndpointConnectionsInput, optFns ...func(*Options)) (*ec2.AcceptVpcEndpointConnectionsOutput, error)
	// Accept a VPC peering connection request. To accept a request, the VPC peering
	// connection must be in the pending-acceptance state, and you must be the owner
	// of the peer VPC. Use DescribeVpcPeeringConnectionsto view your outstanding VPC peering connection requests.
	//
	// For an inter-Region VPC peering connection request, you must accept the VPC
	// peering connection in the Region of the accepter VPC.
	AcceptVpcPeeringConnection(ctx context.Context, params *ec2.AcceptVpcPeeringConnectionInput, optFns ...func(*Options)) (*ec2.AcceptVpcPeeringConnectionOutput, error)
	// Advertises an IPv4 or IPv6 address range that is provisioned for use with your
	// Amazon Web Services resources through bring your own IP addresses (BYOIP).
	//
	// You can perform this operation at most once every 10 seconds, even if you
	// specify different address ranges each time.
	//
	// We recommend that you stop advertising the BYOIP CIDR from other locations when
	// you advertise it from Amazon Web Services. To minimize down time, you can
	// configure your Amazon Web Services resources to use an address from a BYOIP CIDR
	// before it is advertised, and then simultaneously stop advertising it from the
	// current location and start advertising it through Amazon Web Services.
	//
	// It can take a few minutes before traffic to the specified addresses starts
	// routing to Amazon Web Services because of BGP propagation delays.
	AdvertiseByoipCidr(ctx context.Context, params *ec2.AdvertiseByoipCidrInput, optFns ...func(*Options)) (*ec2.AdvertiseByoipCidrOutput, error)
	// Allocates an Elastic IP address to your Amazon Web Services account. After you
	// allocate the Elastic IP address you can associate it with an instance or network
	// interface. After you release an Elastic IP address, it is released to the IP
	// address pool and can be allocated to a different Amazon Web Services account.
	//
	// You can allocate an Elastic IP address from one of the following address pools:
	//
	//   - Amazon's pool of IPv4 addresses
	//
	//   - Public IPv4 address range that you own and bring to your Amazon Web
	//     Services account using [Bring Your Own IP Addresses (BYOIP)]
	//
	//   - An IPv4 IPAM pool with an Amazon-provided or BYOIP public IPv4 address range
	//
	//   - IPv4 addresses from your on-premises network made available for use with an
	//     Outpost using a [customer-owned IP address pool](CoIP pool)
	//
	// For more information, see [Elastic IP Addresses] in the Amazon EC2 User Guide.
	//
	// If you release an Elastic IP address, you might be able to recover it. You
	// cannot recover an Elastic IP address that you released after it is allocated to
	// another Amazon Web Services account. To attempt to recover an Elastic IP address
	// that you released, specify it in this operation.
	//
	// You can allocate a carrier IP address which is a public IP address from a
	// telecommunication carrier, to a network interface which resides in a subnet in a
	// Wavelength Zone (for example an EC2 instance).
	//
	// [Bring Your Own IP Addresses (BYOIP)]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html
	// [Elastic IP Addresses]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html
	// [customer-owned IP address pool]: https://docs.aws.amazon.com/outposts/latest/userguide/routing.html#ip-addressing
	AllocateAddress(ctx context.Context, params *ec2.AllocateAddressInput, optFns ...func(*Options)) (*ec2.AllocateAddressOutput, error)
	// Allocates a Dedicated Host to your account. At a minimum, specify the supported
	// instance type or instance family, the Availability Zone in which to allocate the
	// host, and the number of hosts to allocate.
	AllocateHosts(ctx context.Context, params *ec2.AllocateHostsInput, optFns ...func(*Options)) (*ec2.AllocateHostsOutput, error)
	// Allocate a CIDR from an IPAM pool. The Region you use should be the IPAM pool
	// locale. The locale is the Amazon Web Services Region where this IPAM pool is
	// available for allocations.
	//
	// In IPAM, an allocation is a CIDR assignment from an IPAM pool to another IPAM
	// pool or to a resource. For more information, see [Allocate CIDRs]in the Amazon VPC IPAM User
	// Guide.
	//
	// This action creates an allocation with strong consistency. The returned CIDR
	// will not overlap with any other allocations from the same pool.
	//
	// [Allocate CIDRs]: https://docs.aws.amazon.com/vpc/latest/ipam/allocate-cidrs-ipam.html
	AllocateIpamPoolCidr(ctx context.Context, params *ec2.AllocateIpamPoolCidrInput, optFns ...func(*Options)) (*ec2.AllocateIpamPoolCidrOutput, error)
	// Applies a security group to the association between the target network and the
	// Client VPN endpoint. This action replaces the existing security groups with the
	// specified security groups.
	ApplySecurityGroupsToClientVpnTargetNetwork(ctx context.Context, params *ec2.ApplySecurityGroupsToClientVpnTargetNetworkInput, optFns ...func(*Options)) (*ec2.ApplySecurityGroupsToClientVpnTargetNetworkOutput, error)
	// Assigns the specified IPv6 addresses to the specified network interface. You
	// can specify specific IPv6 addresses, or you can specify the number of IPv6
	// addresses to be automatically assigned from the subnet's IPv6 CIDR block range.
	// You can assign as many IPv6 addresses to a network interface as you can assign
	// private IPv4 addresses, and the limit varies by instance type.
	//
	// You must specify either the IPv6 addresses or the IPv6 address count in the
	// request.
	//
	// You can optionally use Prefix Delegation on the network interface. You must
	// specify either the IPV6 Prefix Delegation prefixes, or the IPv6 Prefix
	// Delegation count. For information, see [Assigning prefixes to network interfaces]in the Amazon EC2 User Guide.
	//
	// [Assigning prefixes to network interfaces]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html
	AssignIpv6Addresses(ctx context.Context, params *ec2.AssignIpv6AddressesInput, optFns ...func(*Options)) (*ec2.AssignIpv6AddressesOutput, error)
	// Assigns the specified secondary private IP addresses to the specified network
	// interface.
	//
	// You can specify specific secondary IP addresses, or you can specify the number
	// of secondary IP addresses to be automatically assigned from the subnet's CIDR
	// block range. The number of secondary IP addresses that you can assign to an
	// instance varies by instance type. For more information about Elastic IP
	// addresses, see [Elastic IP Addresses]in the Amazon EC2 User Guide.
	//
	// When you move a secondary private IP address to another network interface, any
	// Elastic IP address that is associated with the IP address is also moved.
	//
	// Remapping an IP address is an asynchronous operation. When you move an IP
	// address from one network interface to another, check
	// network/interfaces/macs/mac/local-ipv4s in the instance metadata to confirm that
	// the remapping is complete.
	//
	// You must specify either the IP addresses or the IP address count in the request.
	//
	// You can optionally use Prefix Delegation on the network interface. You must
	// specify either the IPv4 Prefix Delegation prefixes, or the IPv4 Prefix
	// Delegation count. For information, see [Assigning prefixes to network interfaces]in the Amazon EC2 User Guide.
	//
	// [Elastic IP Addresses]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html
	// [Assigning prefixes to network interfaces]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html
	AssignPrivateIpAddresses(ctx context.Context, params *ec2.AssignPrivateIpAddressesInput, optFns ...func(*Options)) (*ec2.AssignPrivateIpAddressesOutput, error)
	// Assigns private IPv4 addresses to a private NAT gateway. For more information,
	// see [Work with NAT gateways]in the Amazon VPC User Guide.
	//
	// [Work with NAT gateways]: https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html
	AssignPrivateNatGatewayAddress(ctx context.Context, params *ec2.AssignPrivateNatGatewayAddressInput, optFns ...func(*Options)) (*ec2.AssignPrivateNatGatewayAddressOutput, error)
	// Associates an Elastic IP address, or carrier IP address (for instances that are
	// in subnets in Wavelength Zones) with an instance or a network interface. Before
	// you can use an Elastic IP address, you must allocate it to your account.
	//
	// If the Elastic IP address is already associated with a different instance, it
	// is disassociated from that instance and associated with the specified instance.
	// If you associate an Elastic IP address with an instance that has an existing
	// Elastic IP address, the existing address is disassociated from the instance, but
	// remains allocated to your account.
	//
	// [Subnets in Wavelength Zones] You can associate an IP address from the
	// telecommunication carrier to the instance or network interface.
	//
	// You cannot associate an Elastic IP address with an interface in a different
	// network border group.
	//
	// This is an idempotent operation. If you perform the operation more than once,
	// Amazon EC2 doesn't return an error, and you may be charged for each time the
	// Elastic IP address is remapped to the same instance. For more information, see
	// the Elastic IP Addresses section of [Amazon EC2 Pricing].
	//
	// [Amazon EC2 Pricing]: http://aws.amazon.com/ec2/pricing/
	AssociateAddress(ctx context.Context, params *ec2.AssociateAddressInput, optFns ...func(*Options)) (*ec2.AssociateAddressOutput, error)
	// Initiates a request to assign billing of the unused capacity of a shared
	// Capacity Reservation to a consumer account that is consolidated under the same
	// Amazon Web Services organizations payer account. For more information, see [Billing assignment for shared Amazon EC2 Capacity Reservations].
	//
	// [Billing assignment for shared Amazon EC2 Capacity Reservations]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/assign-billing.html
	AssociateCapacityReservationBillingOwner(ctx context.Context, params *ec2.AssociateCapacityReservationBillingOwnerInput, optFns ...func(*Options)) (*ec2.AssociateCapacityReservationBillingOwnerOutput, error)
	// Associates a target network with a Client VPN endpoint. A target network is a
	// subnet in a VPC. You can associate multiple subnets from the same VPC with a
	// Client VPN endpoint. You can associate only one subnet in each Availability
	// Zone. We recommend that you associate at least two subnets to provide
	// Availability Zone redundancy.
	//
	// If you specified a VPC when you created the Client VPN endpoint or if you have
	// previous subnet associations, the specified subnet must be in the same VPC. To
	// specify a subnet that's in a different VPC, you must first modify the Client VPN
	// endpoint (ModifyClientVpnEndpoint ) and change the VPC that's associated with it.
	AssociateClientVpnTargetNetwork(ctx context.Context, params *ec2.AssociateClientVpnTargetNetworkInput, optFns ...func(*Options)) (*ec2.AssociateClientVpnTargetNetworkOutput, error)
	// Associates a set of DHCP options (that you've previously created) with the
	// specified VPC, or associates no DHCP options with the VPC.
	//
	// After you associate the options with the VPC, any existing instances and all
	// new instances that you launch in that VPC use the options. You don't need to
	// restart or relaunch the instances. They automatically pick up the changes within
	// a few hours, depending on how frequently the instance renews its DHCP lease. You
	// can explicitly renew the lease using the operating system on the instance.
	//
	// For more information, see [DHCP option sets] in the Amazon VPC User Guide.
	//
	// [DHCP option sets]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html
	AssociateDhcpOptions(ctx context.Context, params *ec2.AssociateDhcpOptionsInput, optFns ...func(*Options)) (*ec2.AssociateDhcpOptionsOutput, error)
	// Associates an Identity and Access Management (IAM) role with an Certificate
	// Manager (ACM) certificate. This enables the certificate to be used by the ACM
	// for Nitro Enclaves application inside an enclave. For more information, see [Certificate Manager for Nitro Enclaves]in
	// the Amazon Web Services Nitro Enclaves User Guide.
	//
	// When the IAM role is associated with the ACM certificate, the certificate,
	// certificate chain, and encrypted private key are placed in an Amazon S3 location
	// that only the associated IAM role can access. The private key of the certificate
	// is encrypted with an Amazon Web Services managed key that has an attached
	// attestation-based key policy.
	//
	// To enable the IAM role to access the Amazon S3 object, you must grant it
	// permission to call s3:GetObject on the Amazon S3 bucket returned by the
	// command. To enable the IAM role to access the KMS key, you must grant it
	// permission to call kms:Decrypt on the KMS key returned by the command. For more
	// information, see [Grant the role permission to access the certificate and encryption key]in the Amazon Web Services Nitro Enclaves User Guide.
	//
	// [Certificate Manager for Nitro Enclaves]: https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-refapp.html
	// [Grant the role permission to access the certificate and encryption key]: https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-refapp.html#add-policy
	AssociateEnclaveCertificateIamRole(ctx context.Context, params *ec2.AssociateEnclaveCertificateIamRoleInput, optFns ...func(*Options)) (*ec2.AssociateEnclaveCertificateIamRoleOutput, error)
	// Associates an IAM instance profile with a running or stopped instance. You
	// cannot associate more than one IAM instance profile with an instance.
	AssociateIamInstanceProfile(ctx context.Context, params *ec2.AssociateIamInstanceProfileInput, optFns ...func(*Options)) (*ec2.AssociateIamInstanceProfileOutput, error)
	// Associates one or more targets with an event window. Only one type of target
	// (instance IDs, Dedicated Host IDs, or tags) can be specified with an event
	// window.
	//
	// For more information, see [Define event windows for scheduled events] in the Amazon EC2 User Guide.
	//
	// [Define event windows for scheduled events]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html
	AssociateInstanceEventWindow(ctx context.Context, params *ec2.AssociateInstanceEventWindowInput, optFns ...func(*Options)) (*ec2.AssociateInstanceEventWindowOutput, error)
	// Associates your Autonomous System Number (ASN) with a BYOIP CIDR that you own
	// in the same Amazon Web Services Region. For more information, see [Tutorial: Bring your ASN to IPAM]in the Amazon
	// VPC IPAM guide.
	//
	// After the association succeeds, the ASN is eligible for advertisement. You can
	// view the association with [DescribeByoipCidrs]. You can advertise the CIDR with [AdvertiseByoipCidr].
	//
	// [DescribeByoipCidrs]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeByoipCidrs.html
	// [AdvertiseByoipCidr]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AdvertiseByoipCidr.html
	// [Tutorial: Bring your ASN to IPAM]: https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoasn.html
	AssociateIpamByoasn(ctx context.Context, params *ec2.AssociateIpamByoasnInput, optFns ...func(*Options)) (*ec2.AssociateIpamByoasnOutput, error)
	// Associates an IPAM resource discovery with an Amazon VPC IPAM. A resource
	// discovery is an IPAM component that enables IPAM to manage and monitor resources
	// that belong to the owning account.
	AssociateIpamResourceDiscovery(ctx context.Context, params *ec2.AssociateIpamResourceDiscoveryInput, optFns ...func(*Options)) (*ec2.AssociateIpamResourceDiscoveryOutput, error)
	// Associates Elastic IP addresses (EIPs) and private IPv4 addresses with a public
	// NAT gateway. For more information, see [Work with NAT gateways]in the Amazon VPC User Guide.
	//
	// By default, you can associate up to 2 Elastic IP addresses per public NAT
	// gateway. You can increase the limit by requesting a quota adjustment. For more
	// information, see [Elastic IP address quotas]in the Amazon VPC User Guide.
	//
	// When you associate an EIP or secondary EIPs with a public NAT gateway, the
	// network border group of the EIPs must match the network border group of the
	// Availability Zone (AZ) that the public NAT gateway is in. If it's not the same,
	// the EIP will fail to associate. You can see the network border group for the
	// subnet's AZ by viewing the details of the subnet. Similarly, you can view the
	// network border group of an EIP by viewing the details of the EIP address. For
	// more information about network border groups and EIPs, see [Allocate an Elastic IP address]in the Amazon VPC
	// User Guide.
	//
	// [Elastic IP address quotas]: https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-eips
	// [Work with NAT gateways]: https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html
	// [Allocate an Elastic IP address]: https://docs.aws.amazon.com/vpc/latest/userguide/WorkWithEIPs.html
	AssociateNatGatewayAddress(ctx context.Context, params *ec2.AssociateNatGatewayAddressInput, optFns ...func(*Options)) (*ec2.AssociateNatGatewayAddressOutput, error)
	// Associates a route server with a VPC to enable dynamic route updates.
	//
	// A route server association is the connection established between a route server
	// and a VPC.
	//
	// For more information see [Dynamic routing in your VPC with VPC Route Server] in the Amazon VPC User Guide.
	//
	// [Dynamic routing in your VPC with VPC Route Server]: https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html
	AssociateRouteServer(ctx context.Context, params *ec2.AssociateRouteServerInput, optFns ...func(*Options)) (*ec2.AssociateRouteServerOutput, error)
	// Associates a subnet in your VPC or an internet gateway or virtual private
	// gateway attached to your VPC with a route table in your VPC. This association
	// causes traffic from the subnet or gateway to be routed according to the routes
	// in the route table. The action returns an association ID, which you need in
	// order to disassociate the route table later. A route table can be associated
	// with multiple subnets.
	//
	// For more information, see [Route tables] in the Amazon VPC User Guide.
	//
	// [Route tables]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html
	AssociateRouteTable(ctx context.Context, params *ec2.AssociateRouteTableInput, optFns ...func(*Options)) (*ec2.AssociateRouteTableOutput, error)
	// Associates a security group with another VPC in the same Region. This enables
	// you to use the same security group with network interfaces and instances in the
	// specified VPC.
	//
	//   - The VPC you want to associate the security group with must be in the same
	//     Region.
	//
	//   - You can associate the security group with another VPC if your account owns
	//     the VPC or if the VPC was shared with you.
	//
	//   - You must own the security group.
	//
	//   - You cannot use this feature with default security groups.
	//
	//   - You cannot use this feature with the default VPC.
	AssociateSecurityGroupVpc(ctx context.Context, params *ec2.AssociateSecurityGroupVpcInput, optFns ...func(*Options)) (*ec2.AssociateSecurityGroupVpcOutput, error)
	// Associates a CIDR block with your subnet. You can only associate a single IPv6
	// CIDR block with your subnet.
	AssociateSubnetCidrBlock(ctx context.Context, params *ec2.AssociateSubnetCidrBlockInput, optFns ...func(*Options)) (*ec2.AssociateSubnetCidrBlockOutput, error)
	// Associates the specified subnets and transit gateway attachments with the
	// specified transit gateway multicast domain.
	//
	// The transit gateway attachment must be in the available state before you can
	// add a resource. Use [DescribeTransitGatewayAttachments]to see the state of the attachment.
	//
	// [DescribeTransitGatewayAttachments]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGatewayAttachments.html
	AssociateTransitGatewayMulticastDomain(ctx context.Context, params *ec2.AssociateTransitGatewayMulticastDomainInput, optFns ...func(*Options)) (*ec2.AssociateTransitGatewayMulticastDomainOutput, error)
	// Associates the specified transit gateway attachment with a transit gateway
	// policy table.
	AssociateTransitGatewayPolicyTable(ctx context.Context, params *ec2.AssociateTransitGatewayPolicyTableInput, optFns ...func(*Options)) (*ec2.AssociateTransitGatewayPolicyTableOutput, error)
	// Associates the specified attachment with the specified transit gateway route
	// table. You can associate only one route table with an attachment.
	AssociateTransitGatewayRouteTable(ctx context.Context, params *ec2.AssociateTransitGatewayRouteTableInput, optFns ...func(*Options)) (*ec2.AssociateTransitGatewayRouteTableOutput, error)
	// Associates a branch network interface with a trunk network interface.
	//
	// Before you create the association, use [CreateNetworkInterface] command and set the interface type to
	// trunk . You must also create a network interface for each branch network
	// interface that you want to associate with the trunk network interface.
	//
	// [CreateNetworkInterface]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html
	AssociateTrunkInterface(ctx context.Context, params *ec2.AssociateTrunkInterfaceInput, optFns ...func(*Options)) (*ec2.AssociateTrunkInterfaceOutput, error)
	// Associates a CIDR block with your VPC. You can associate a secondary IPv4 CIDR
	// block, an Amazon-provided IPv6 CIDR block, or an IPv6 CIDR block from an IPv6
	// address pool that you provisioned through bring your own IP addresses ([BYOIP] ).
	//
	// You must specify one of the following in the request: an IPv4 CIDR block, an
	// IPv6 pool, or an Amazon-provided IPv6 CIDR block.
	//
	// For more information about associating CIDR blocks with your VPC and applicable
	// restrictions, see [IP addressing for your VPCs and subnets]in the Amazon VPC User Guide.
	//
	// [BYOIP]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html
	// [IP addressing for your VPCs and subnets]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html
	AssociateVpcCidrBlock(ctx context.Context, params *ec2.AssociateVpcCidrBlockInput, optFns ...func(*Options)) (*ec2.AssociateVpcCidrBlockOutput, error)
	// This action is deprecated.
	//
	// Links an EC2-Classic instance to a ClassicLink-enabled VPC through one or more
	// of the VPC security groups. You cannot link an EC2-Classic instance to more than
	// one VPC at a time. You can only link an instance that's in the running state.
	// An instance is automatically unlinked from a VPC when it's stopped - you can
	// link it to the VPC again when you restart it.
	//
	// After you've linked an instance, you cannot change the VPC security groups that
	// are associated with it. To change the security groups, you must first unlink the
	// instance, and then link it again.
	//
	// Linking your instance to a VPC is sometimes referred to as attaching your
	// instance.
	AttachClassicLinkVpc(ctx context.Context, params *ec2.AttachClassicLinkVpcInput, optFns ...func(*Options)) (*ec2.AttachClassicLinkVpcOutput, error)
	// Attaches an internet gateway or a virtual private gateway to a VPC, enabling
	// connectivity between the internet and the VPC. For more information, see [Internet gateways]in the
	// Amazon VPC User Guide.
	//
	// [Internet gateways]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html
	AttachInternetGateway(ctx context.Context, params *ec2.AttachInternetGatewayInput, optFns ...func(*Options)) (*ec2.AttachInternetGatewayOutput, error)
	// Attaches a network interface to an instance.
	AttachNetworkInterface(ctx context.Context, params *ec2.AttachNetworkInterfaceInput, optFns ...func(*Options)) (*ec2.AttachNetworkInterfaceOutput, error)
	// Attaches the specified Amazon Web Services Verified Access trust provider to
	// the specified Amazon Web Services Verified Access instance.
	AttachVerifiedAccessTrustProvider(ctx context.Context, params *ec2.AttachVerifiedAccessTrustProviderInput, optFns ...func(*Options)) (*ec2.AttachVerifiedAccessTrustProviderOutput, error)
	// Attaches an Amazon EBS volume to a running or stopped instance, and exposes it
	// to the instance with the specified device name.
	//
	// The maximum number of Amazon EBS volumes that you can attach to an instance
	// depends on the instance type. If you exceed the volume attachment limit for an
	// instance type, the attachment request fails with the AttachmentLimitExceeded
	// error. For more information, see [Instance volume limits].
	//
	// After you attach an EBS volume, you must make it available for use. For more
	// information, see [Make an EBS volume available for use].
	//
	// If a volume has an Amazon Web Services Marketplace product code:
	//
	//   - The volume can be attached only to a stopped instance.
	//
	//   - Amazon Web Services Marketplace product codes are copied from the volume to
	//     the instance.
	//
	//   - You must be subscribed to the product.
	//
	//   - The instance type and operating system of the instance must support the
	//     product. For example, you can't detach a volume from a Windows instance and
	//     attach it to a Linux instance.
	//
	// For more information, see [Attach an Amazon EBS volume to an instance] in the Amazon EBS User Guide.
	//
	// [Make an EBS volume available for use]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-using-volumes.html
	// [Attach an Amazon EBS volume to an instance]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-attaching-volume.html
	// [Instance volume limits]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/volume_limits.html
	AttachVolume(ctx context.Context, params *ec2.AttachVolumeInput, optFns ...func(*Options)) (*ec2.AttachVolumeOutput, error)
	// Attaches an available virtual private gateway to a VPC. You can attach one
	// virtual private gateway to one VPC at a time.
	//
	// For more information, see [Amazon Web Services Site-to-Site VPN] in the Amazon Web Services Site-to-Site VPN User
	// Guide.
	//
	// [Amazon Web Services Site-to-Site VPN]: https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html
	AttachVpnGateway(ctx context.Context, params *ec2.AttachVpnGatewayInput, optFns ...func(*Options)) (*ec2.AttachVpnGatewayOutput, error)
	// Adds an ingress authorization rule to a Client VPN endpoint. Ingress
	// authorization rules act as firewall rules that grant access to networks. You
	// must configure ingress authorization rules to enable clients to access resources
	// in Amazon Web Services or on-premises networks.
	AuthorizeClientVpnIngress(ctx context.Context, params *ec2.AuthorizeClientVpnIngressInput, optFns ...func(*Options)) (*ec2.AuthorizeClientVpnIngressOutput, error)
	// Adds the specified outbound (egress) rules to a security group.
	//
	// An outbound rule permits instances to send traffic to the specified IPv4 or
	// IPv6 address ranges, the IP address ranges specified by a prefix list, or the
	// instances that are associated with a source security group. For more
	// information, see [Security group rules].
	//
	// You must specify exactly one of the following destinations: an IPv4 or IPv6
	// address range, a prefix list, or a security group. You must specify a protocol
	// for each rule (for example, TCP). If the protocol is TCP or UDP, you must also
	// specify a port or port range. If the protocol is ICMP or ICMPv6, you must also
	// specify the ICMP type and code.
	//
	// Rule changes are propagated to instances associated with the security group as
	// quickly as possible. However, a small delay might occur.
	//
	// For examples of rules that you can add to security groups for specific access
	// scenarios, see [Security group rules for different use cases]in the Amazon EC2 User Guide.
	//
	// For information about security group quotas, see [Amazon VPC quotas] in the Amazon VPC User Guide.
	//
	// [Amazon VPC quotas]: https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html
	// [Security group rules]: https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html
	// [Security group rules for different use cases]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html
	AuthorizeSecurityGroupEgress(ctx context.Context, params *ec2.AuthorizeSecurityGroupEgressInput, optFns ...func(*Options)) (*ec2.AuthorizeSecurityGroupEgressOutput, error)
	// Adds the specified inbound (ingress) rules to a security group.
	//
	// An inbound rule permits instances to receive traffic from the specified IPv4 or
	// IPv6 address range, the IP address ranges that are specified by a prefix list,
	// or the instances that are associated with a destination security group. For more
	// information, see [Security group rules].
	//
	// You must specify exactly one of the following sources: an IPv4 or IPv6 address
	// range, a prefix list, or a security group. You must specify a protocol for each
	// rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a
	// port or port range. If the protocol is ICMP or ICMPv6, you must also specify the
	// ICMP/ICMPv6 type and code.
	//
	// Rule changes are propagated to instances associated with the security group as
	// quickly as possible. However, a small delay might occur.
	//
	// For examples of rules that you can add to security groups for specific access
	// scenarios, see [Security group rules for different use cases]in the Amazon EC2 User Guide.
	//
	// For more information about security group quotas, see [Amazon VPC quotas] in the Amazon VPC User
	// Guide.
	//
	// [Amazon VPC quotas]: https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html
	// [Security group rules]: https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html
	// [Security group rules for different use cases]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html
	AuthorizeSecurityGroupIngress(ctx context.Context, params *ec2.AuthorizeSecurityGroupIngressInput, optFns ...func(*Options)) (*ec2.AuthorizeSecurityGroupIngressOutput, error)
	// Bundles an Amazon instance store-backed Windows instance.
	//
	// During bundling, only the root device volume (C:\) is bundled. Data on other
	// instance store volumes is not preserved.
	//
	// This action is not applicable for Linux/Unix instances or Windows instances
	// that are backed by Amazon EBS.
	BundleInstance(ctx context.Context, params *ec2.BundleInstanceInput, optFns ...func(*Options)) (*ec2.BundleInstanceOutput, error)
	// Cancels a bundling operation for an instance store-backed Windows instance.
	CancelBundleTask(ctx context.Context, params *ec2.CancelBundleTaskInput, optFns ...func(*Options)) (*ec2.CancelBundleTaskOutput, error)
	// Cancels the specified Capacity Reservation, releases the reserved capacity, and
	// changes the Capacity Reservation's state to cancelled .
	//
	// You can cancel a Capacity Reservation that is in the following states:
	//
	//   - assessing
	//
	//   - active and there is no commitment duration or the commitment duration has
	//     elapsed. You can't cancel a future-dated Capacity Reservation during the
	//     commitment duration.
	//
	// You can't modify or cancel a Capacity Block. For more information, see [Capacity Blocks for ML].
	//
	// If a future-dated Capacity Reservation enters the delayed state, the commitment
	// duration is waived, and you can cancel it as soon as it enters the active state.
	//
	// Instances running in the reserved capacity continue running until you stop
	// them. Stopped instances that target the Capacity Reservation can no longer
	// launch. Modify these instances to either target a different Capacity
	// Reservation, launch On-Demand Instance capacity, or run in any open Capacity
	// Reservation that has matching attributes and sufficient capacity.
	//
	// [Capacity Blocks for ML]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-blocks.html
	CancelCapacityReservation(ctx context.Context, params *ec2.CancelCapacityReservationInput, optFns ...func(*Options)) (*ec2.CancelCapacityReservationOutput, error)
	// Cancels one or more Capacity Reservation Fleets. When you cancel a Capacity
	// Reservation Fleet, the following happens:
	//
	//   - The Capacity Reservation Fleet's status changes to cancelled .
	//
	//   - The individual Capacity Reservations in the Fleet are cancelled. Instances
	//     running in the Capacity Reservations at the time of cancelling the Fleet
	//     continue to run in shared capacity.
	//
	//   - The Fleet stops creating new Capacity Reservations.
	CancelCapacityReservationFleets(ctx context.Context, params *ec2.CancelCapacityReservationFleetsInput, optFns ...func(*Options)) (*ec2.CancelCapacityReservationFleetsOutput, error)
	// Cancels an active conversion task. The task can be the import of an instance or
	// volume. The action removes all artifacts of the conversion, including a
	// partially uploaded volume or instance. If the conversion is complete or is in
	// the process of transferring the final disk image, the command fails and returns
	// an exception.
	CancelConversionTask(ctx context.Context, params *ec2.CancelConversionTaskInput, optFns ...func(*Options)) (*ec2.CancelConversionTaskOutput, error)
	// Cancels the generation of an account status report.
	//
	// You can only cancel a report while it has the running status. Reports with
	// other statuses ( complete , cancelled , or error ) can't be canceled.
	//
	// For more information, see [Generating the account status report for declarative policies] in the Amazon Web Services Organizations User Guide.
	//
	// [Generating the account status report for declarative policies]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative_status-report.html
	CancelDeclarativePoliciesReport(ctx context.Context, params *ec2.CancelDeclarativePoliciesReportInput, optFns ...func(*Options)) (*ec2.CancelDeclarativePoliciesReportOutput, error)
	// Cancels an active export task. The request removes all artifacts of the export,
	// including any partially-created Amazon S3 objects. If the export task is
	// complete or is in the process of transferring the final disk image, the command
	// fails and returns an error.
	CancelExportTask(ctx context.Context, params *ec2.CancelExportTaskInput, optFns ...func(*Options)) (*ec2.CancelExportTaskOutput, error)
	// Removes your Amazon Web Services account from the launch permissions for the
	// specified AMI. For more information, see [Cancel having an AMI shared with your Amazon Web Services account]in the Amazon EC2 User Guide.
	//
	// [Cancel having an AMI shared with your Amazon Web Services account]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cancel-sharing-an-AMI.html
	CancelImageLaunchPermission(ctx context.Context, params *ec2.CancelImageLaunchPermissionInput, optFns ...func(*Options)) (*ec2.CancelImageLaunchPermissionOutput, error)
	// Cancels an in-process import virtual machine or import snapshot task.
	CancelImportTask(ctx context.Context, params *ec2.CancelImportTaskInput, optFns ...func(*Options)) (*ec2.CancelImportTaskOutput, error)
	// Cancels the specified Reserved Instance listing in the Reserved Instance
	// Marketplace.
	//
	// For more information, see [Sell in the Reserved Instance Marketplace] in the Amazon EC2 User Guide.
	//
	// [Sell in the Reserved Instance Marketplace]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html
	CancelReservedInstancesListing(ctx context.Context, params *ec2.CancelReservedInstancesListingInput, optFns ...func(*Options)) (*ec2.CancelReservedInstancesListingOutput, error)
	// Cancels the specified Spot Fleet requests.
	//
	// After you cancel a Spot Fleet request, the Spot Fleet launches no new instances.
	//
	// You must also specify whether a canceled Spot Fleet request should terminate
	// its instances. If you choose to terminate the instances, the Spot Fleet request
	// enters the cancelled_terminating state. Otherwise, the Spot Fleet request
	// enters the cancelled_running state and the instances continue to run until they
	// are interrupted or you terminate them manually.
	//
	// Terminating an instance is permanent and irreversible.
	//
	// After you terminate an instance, you can no longer connect to it, and it can't
	// be recovered. All attached Amazon EBS volumes that are configured to be deleted
	// on termination are also permanently deleted and can't be recovered. All data
	// stored on instance store volumes is permanently lost. For more information, see [How instance termination works]
	// .
	//
	// Before you terminate an instance, ensure that you have backed up all data that
	// you need to retain after the termination to persistent storage.
	//
	// Restrictions
	//
	//   - You can delete up to 100 fleets in a single request. If you exceed the
	//     specified number, no fleets are deleted.
	//
	// [How instance termination works]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-ec2-instance-termination-works.html
	CancelSpotFleetRequests(ctx context.Context, params *ec2.CancelSpotFleetRequestsInput, optFns ...func(*Options)) (*ec2.CancelSpotFleetRequestsOutput, error)
	// Cancels one or more Spot Instance requests.
	//
	// Canceling a Spot Instance request does not terminate running Spot Instances
	// associated with the request.
	CancelSpotInstanceRequests(ctx context.Context, params *ec2.CancelSpotInstanceRequestsInput, optFns ...func(*Options)) (*ec2.CancelSpotInstanceRequestsOutput, error)
	// Determines whether a product code is associated with an instance. This action
	// can only be used by the owner of the product code. It is useful when a product
	// code owner must verify whether another user's instance is eligible for support.
	ConfirmProductInstance(ctx context.Context, params *ec2.ConfirmProductInstanceInput, optFns ...func(*Options)) (*ec2.ConfirmProductInstanceOutput, error)
	// Copies the specified Amazon FPGA Image (AFI) to the current Region.
	CopyFpgaImage(ctx context.Context, params *ec2.CopyFpgaImageInput, optFns ...func(*Options)) (*ec2.CopyFpgaImageOutput, error)
	// Initiates an AMI copy operation. You must specify the source AMI ID and both
	// the source and destination locations. The copy operation must be initiated in
	// the destination Region.
	//
	// CopyImage supports the following source to destination copies:
	//
	//   - Region to Region
	//
	//   - Region to Outpost
	//
	//   - Parent Region to Local Zone
	//
	//   - Local Zone to parent Region
	//
	//   - Between Local Zones with the same parent Region (only supported for certain
	//     Local Zones)
	//
	// CopyImage does not support the following source to destination copies:
	//
	//   - Local Zone to non-parent Regions
	//
	//   - Between Local Zones with different parent Regions
	//
	//   - Local Zone to Outpost
	//
	//   - Outpost to Local Zone
	//
	//   - Outpost to Region
	//
	//   - Between Outposts
	//
	//   - Within same Outpost
	//
	//   - Cross-partition copies (use [CreateStoreImageTask]instead)
	//
	// Destination specification
	//
	//   - Region to Region: The destination Region is the Region in which you
	//     initiate the copy operation.
	//
	//   - Region to Outpost: Specify the destination using the DestinationOutpostArn
	//     parameter (the ARN of the Outpost)
	//
	//   - Region to Local Zone, and Local Zone to Local Zone copies: Specify the
	//     destination using the DestinationAvailabilityZone parameter (the name of the
	//     destination Local Zone) or DestinationAvailabilityZoneId parameter (the ID of
	//     the destination Local Zone).
	//
	// Snapshot encryption
	//
	//   - Region to Outpost: Backing snapshots copied to an Outpost are encrypted by
	//     default using the default encryption key for the Region or the key that you
	//     specify. Outposts do not support unencrypted snapshots.
	//
	//   - Region to Local Zone, and Local Zone to Local Zone: Not all Local Zones
	//     require encrypted snapshots. In Local Zones that require encrypted snapshots,
	//     backing snapshots are automatically encrypted during copy. In Local Zones where
	//     encryption is not required, snapshots retain their original encryption state
	//     (encrypted or unencrypted) by default.
	//
	// For more information, including the required permissions for copying an AMI,
	// see [Copy an Amazon EC2 AMI]in the Amazon EC2 User Guide.
	//
	// [CreateStoreImageTask]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html
	// [Copy an Amazon EC2 AMI]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html
	CopyImage(ctx context.Context, params *ec2.CopyImageInput, optFns ...func(*Options)) (*ec2.CopyImageOutput, error)
	// Creates an exact copy of an Amazon EBS snapshot.
	//
	// The location of the source snapshot determines whether you can copy it or not,
	// and the allowed destinations for the snapshot copy.
	//
	//   - If the source snapshot is in a Region, you can copy it within that Region,
	//     to another Region, to an Outpost associated with that Region, or to a Local Zone
	//     in that Region.
	//
	//   - If the source snapshot is in a Local Zone, you can copy it within that
	//     Local Zone, to another Local Zone in the same zone group, or to the parent
	//     Region of the Local Zone.
	//
	//   - If the source snapshot is on an Outpost, you can't copy it.
	//
	// When copying snapshots to a Region, the encryption outcome for the snapshot
	// copy depends on the Amazon EBS encryption by default setting for the destination
	// Region, the encryption status of the source snapshot, and the encryption
	// parameters you specify in the request. For more information, see [Encryption and snapshot copying].
	//
	// Snapshots copied to an Outpost must be encrypted. Unencrypted snapshots are not
	// supported on Outposts. For more information, [Amazon EBS local snapshots on Outposts].
	//
	// Snapshots copies have an arbitrary source volume ID. Do not use this volume ID
	// for any purpose.
	//
	// For more information, see [Copy an Amazon EBS snapshot] in the Amazon EBS User Guide.
	//
	// [Encryption and snapshot copying]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-copy-snapshot.html#creating-encrypted-snapshots
	// [Copy an Amazon EBS snapshot]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-copy-snapshot.html
	// [Amazon EBS local snapshots on Outposts]: https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#considerations
	CopySnapshot(ctx context.Context, params *ec2.CopySnapshotInput, optFns ...func(*Options)) (*ec2.CopySnapshotOutput, error)
	// Creates a crash-consistent, point-in-time copy of an existing Amazon EBS volume
	// within the same Availability Zone. The volume copy can be attached to an Amazon
	// EC2 instance once it reaches the available state. For more information, see [Copy an Amazon EBS volume].
	//
	// [Copy an Amazon EBS volume]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-copying-volume.html
	CopyVolumes(ctx context.Context, params *ec2.CopyVolumesInput, optFns ...func(*Options)) (*ec2.CopyVolumesOutput, error)
	//	Creates a new data export configuration for EC2 Capacity Manager. This allows
	//
	// you to automatically export capacity usage data to an S3 bucket on a scheduled
	// basis. The exported data includes metrics for On-Demand, Spot, and Capacity
	// Reservations usage across your organization.
	CreateCapacityManagerDataExport(ctx context.Context, params *ec2.CreateCapacityManagerDataExportInput, optFns ...func(*Options)) (*ec2.CreateCapacityManagerDataExportOutput, error)
	// Creates a new Capacity Reservation with the specified attributes. Capacity
	// Reservations enable you to reserve capacity for your Amazon EC2 instances in a
	// specific Availability Zone for any duration.
	//
	// You can create a Capacity Reservation at any time, and you can choose when it
	// starts. You can create a Capacity Reservation for immediate use or you can
	// request a Capacity Reservation for a future date.
	//
	// For more information, see [Reserve compute capacity with On-Demand Capacity Reservations] in the Amazon EC2 User Guide.
	//
	// Your request to create a Capacity Reservation could fail if:
	//
	//   - Amazon EC2 does not have sufficient capacity. In this case, try again at a
	//     later time, try in a different Availability Zone, or request a smaller Capacity
	//     Reservation. If your workload is flexible across instance types and sizes, try
	//     with different instance attributes.
	//
	//   - The requested quantity exceeds your On-Demand Instance quota. In this case,
	//     increase your On-Demand Instance quota for the requested instance type and try
	//     again. For more information, see [Amazon EC2 Service Quotas]in the Amazon EC2 User Guide.
	//
	// [Amazon EC2 Service Quotas]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html
	// [Reserve compute capacity with On-Demand Capacity Reservations]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html
	CreateCapacityReservation(ctx context.Context, params *ec2.CreateCapacityReservationInput, optFns ...func(*Options)) (*ec2.CreateCapacityReservationOutput, error)
	//	Create a new Capacity Reservation by splitting the capacity of the source
	//
	// Capacity Reservation. The new Capacity Reservation will have the same attributes
	// as the source Capacity Reservation except for tags. The source Capacity
	// Reservation must be active and owned by your Amazon Web Services account.
	CreateCapacityReservationBySplitting(ctx context.Context, params *ec2.CreateCapacityReservationBySplittingInput, optFns ...func(*Options)) (*ec2.CreateCapacityReservationBySplittingOutput, error)
	// Creates a Capacity Reservation Fleet. For more information, see [Create a Capacity Reservation Fleet] in the Amazon
	// EC2 User Guide.
	//
	// [Create a Capacity Reservation Fleet]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-cr-fleets.html#create-crfleet
	CreateCapacityReservationFleet(ctx context.Context, params *ec2.CreateCapacityReservationFleetInput, optFns ...func(*Options)) (*ec2.CreateCapacityReservationFleetOutput, error)
	// Creates a carrier gateway. For more information about carrier gateways, see [Carrier gateways] in
	// the Amazon Web Services Wavelength Developer Guide.
	//
	// [Carrier gateways]: https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#wavelength-carrier-gateway
	CreateCarrierGateway(ctx context.Context, params *ec2.CreateCarrierGatewayInput, optFns ...func(*Options)) (*ec2.CreateCarrierGatewayOutput, error)
	// Creates a Client VPN endpoint. A Client VPN endpoint is the resource you create
	// and configure to enable and manage client VPN sessions. It is the destination
	// endpoint at which all client VPN sessions are terminated.
	CreateClientVpnEndpoint(ctx context.Context, params *ec2.CreateClientVpnEndpointInput, optFns ...func(*Options)) (*ec2.CreateClientVpnEndpointOutput, error)
	// Adds a route to a network to a Client VPN endpoint. Each Client VPN endpoint
	// has a route table that describes the available destination network routes. Each
	// route in the route table specifies the path for traffic to specific resources or
	// networks.
	CreateClientVpnRoute(ctx context.Context, params *ec2.CreateClientVpnRouteInput, optFns ...func(*Options)) (*ec2.CreateClientVpnRouteOutput, error)
	// Creates a range of customer-owned IP addresses.
	CreateCoipCidr(ctx context.Context, params *ec2.CreateCoipCidrInput, optFns ...func(*Options)) (*ec2.CreateCoipCidrOutput, error)
	// Creates a pool of customer-owned IP (CoIP) addresses.
	CreateCoipPool(ctx context.Context, params *ec2.CreateCoipPoolInput, optFns ...func(*Options)) (*ec2.CreateCoipPoolOutput, error)
	// Provides information to Amazon Web Services about your customer gateway device.
	// The customer gateway device is the appliance at your end of the VPN connection.
	// You must provide the IP address of the customer gateway device’s external
	// interface. The IP address must be static and can be behind a device performing
	// network address translation (NAT).
	//
	// For devices that use Border Gateway Protocol (BGP), you can also provide the
	// device's BGP Autonomous System Number (ASN). You can use an existing ASN
	// assigned to your network. If you don't have an ASN already, you can use a
	// private ASN. For more information, see [Customer gateway options for your Site-to-Site VPN connection]in the Amazon Web Services Site-to-Site
	// VPN User Guide.
	//
	// To create more than one customer gateway with the same VPN type, IP address,
	// and BGP ASN, specify a unique device name for each customer gateway. An
	// identical request returns information about the existing customer gateway; it
	// doesn't create a new customer gateway.
	//
	// [Customer gateway options for your Site-to-Site VPN connection]: https://docs.aws.amazon.com/vpn/latest/s2svpn/cgw-options.html
	CreateCustomerGateway(ctx context.Context, params *ec2.CreateCustomerGatewayInput, optFns ...func(*Options)) (*ec2.CreateCustomerGatewayOutput, error)
	// Creates a default subnet with a size /20 IPv4 CIDR block in the specified
	// Availability Zone in your default VPC. You can have only one default subnet per
	// Availability Zone. For more information, see [Create a default subnet]in the Amazon VPC User Guide.
	//
	// [Create a default subnet]: https://docs.aws.amazon.com/vpc/latest/userguide/work-with-default-vpc.html#create-default-subnet
	CreateDefaultSubnet(ctx context.Context, params *ec2.CreateDefaultSubnetInput, optFns ...func(*Options)) (*ec2.CreateDefaultSubnetOutput, error)
	// Creates a default VPC with a size /16 IPv4 CIDR block and a default subnet in
	// each Availability Zone. For more information about the components of a default
	// VPC, see [Default VPCs]in the Amazon VPC User Guide. You cannot specify the components of the
	// default VPC yourself.
	//
	// If you deleted your previous default VPC, you can create a default VPC. You
	// cannot have more than one default VPC per Region.
	//
	// [Default VPCs]: https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html
	CreateDefaultVpc(ctx context.Context, params *ec2.CreateDefaultVpcInput, optFns ...func(*Options)) (*ec2.CreateDefaultVpcOutput, error)
	// Delegates ownership of the Amazon EBS root volume for an Apple silicon Mac
	// instance to an administrative user.
	CreateDelegateMacVolumeOwnershipTask(ctx context.Context, params *ec2.CreateDelegateMacVolumeOwnershipTaskInput, optFns ...func(*Options)) (*ec2.CreateDelegateMacVolumeOwnershipTaskOutput, error)
	// Creates a custom set of DHCP options. After you create a DHCP option set, you
	// associate it with a VPC. After you associate a DHCP option set with a VPC, all
	// existing and newly launched instances in the VPC use this set of DHCP options.
	//
	// The following are the individual DHCP options you can specify. For more
	// information, see [DHCP option sets]in the Amazon VPC User Guide.
	//
	//   - domain-name - If you're using AmazonProvidedDNS in us-east-1 , specify
	//     ec2.internal . If you're using AmazonProvidedDNS in any other Region, specify
	//     region.compute.internal . Otherwise, specify a custom domain name. This value
	//     is used to complete unqualified DNS hostnames.
	//
	// Some Linux operating systems accept multiple domain names separated by spaces.
	//
	//	However, Windows and other Linux operating systems treat the value as a single
	//	domain, which results in unexpected behavior. If your DHCP option set is
	//	associated with a VPC that has instances running operating systems that treat
	//	the value as a single domain, specify only one domain name.
	//
	//	- domain-name-servers - The IP addresses of up to four DNS servers, or
	//	AmazonProvidedDNS. To specify multiple domain name servers in a single
	//	parameter, separate the IP addresses using commas. To have your instances
	//	receive custom DNS hostnames as specified in domain-name , you must specify a
	//	custom DNS server.
	//
	//	- ntp-servers - The IP addresses of up to eight Network Time Protocol (NTP)
	//	servers (four IPv4 addresses and four IPv6 addresses).
	//
	//	- netbios-name-servers - The IP addresses of up to four NetBIOS name servers.
	//
	//	- netbios-node-type - The NetBIOS node type (1, 2, 4, or 8). We recommend that
	//	you specify 2. Broadcast and multicast are not supported. For more information
	//	about NetBIOS node types, see [RFC 2132].
	//
	//	- ipv6-address-preferred-lease-time - A value (in seconds, minutes, hours, or
	//	years) for how frequently a running instance with an IPv6 assigned to it goes
	//	through DHCPv6 lease renewal. Acceptable values are between 140 and 2147483647
	//	seconds (approximately 68 years). If no value is entered, the default lease time
	//	is 140 seconds. If you use long-term addressing for EC2 instances, you can
	//	increase the lease time and avoid frequent lease renewal requests. Lease renewal
	//	typically occurs when half of the lease time has elapsed.
	//
	// [DHCP option sets]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html
	//
	// [RFC 2132]: https://www.ietf.org/rfc/rfc2132.txt
	CreateDhcpOptions(ctx context.Context, params *ec2.CreateDhcpOptionsInput, optFns ...func(*Options)) (*ec2.CreateDhcpOptionsOutput, error)
	// [IPv6 only] Creates an egress-only internet gateway for your VPC. An
	// egress-only internet gateway is used to enable outbound communication over IPv6
	// from instances in your VPC to the internet, and prevents hosts outside of your
	// VPC from initiating an IPv6 connection with your instance.
	CreateEgressOnlyInternetGateway(ctx context.Context, params *ec2.CreateEgressOnlyInternetGatewayInput, optFns ...func(*Options)) (*ec2.CreateEgressOnlyInternetGatewayOutput, error)
	// Creates an EC2 Fleet that contains the configuration information for On-Demand
	// Instances and Spot Instances. Instances are launched immediately if there is
	// available capacity.
	//
	// A single EC2 Fleet can include multiple launch specifications that vary by
	// instance type, AMI, Availability Zone, or subnet.
	//
	// For more information, see [EC2 Fleet] in the Amazon EC2 User Guide.
	//
	// [EC2 Fleet]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html
	CreateFleet(ctx context.Context, params *ec2.CreateFleetInput, optFns ...func(*Options)) (*ec2.CreateFleetOutput, error)
	// Creates one or more flow logs to capture information about IP traffic for a
	// specific network interface, subnet, or VPC.
	//
	// Flow log data for a monitored network interface is recorded as flow log
	// records, which are log events consisting of fields that describe the traffic
	// flow. For more information, see [Flow log records]in the Amazon VPC User Guide.
	//
	// When publishing to CloudWatch Logs, flow log records are published to a log
	// group, and each network interface has a unique log stream in the log group. When
	// publishing to Amazon S3, flow log records for all of the monitored network
	// interfaces are published to a single log file object that is stored in the
	// specified bucket.
	//
	// For more information, see [VPC Flow Logs] in the Amazon VPC User Guide.
	//
	// [Flow log records]: https://docs.aws.amazon.com/vpc/latest/userguide/flow-log-records.html
	// [VPC Flow Logs]: https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html
	CreateFlowLogs(ctx context.Context, params *ec2.CreateFlowLogsInput, optFns ...func(*Options)) (*ec2.CreateFlowLogsOutput, error)
	// Creates an Amazon FPGA Image (AFI) from the specified design checkpoint (DCP).
	//
	// The create operation is asynchronous. To verify that the AFI was successfully
	// created and is ready for use, check the output logs.
	//
	// An AFI contains the FPGA bitstream that is ready to download to an FPGA. You
	// can securely deploy an AFI on multiple FPGA-accelerated instances. For more
	// information, see the [Amazon Web Services FPGA Hardware Development Kit].
	//
	// [Amazon Web Services FPGA Hardware Development Kit]: https://github.com/aws/aws-fpga/
	CreateFpgaImage(ctx context.Context, params *ec2.CreateFpgaImageInput, optFns ...func(*Options)) (*ec2.CreateFpgaImageOutput, error)
	// Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is
	// either running or stopped.
	//
	// If you customized your instance with instance store volumes or Amazon EBS
	// volumes in addition to the root device volume, the new AMI contains block device
	// mapping information for those volumes. When you launch an instance from this new
	// AMI, the instance automatically launches with those additional volumes.
	//
	// The location of the source instance determines where you can create the
	// snapshots of the AMI:
	//
	//   - If the source instance is in a Region, you must create the snapshots in the
	//     same Region as the instance.
	//
	//   - If the source instance is in a Local Zone, you can create the snapshots in
	//     the same Local Zone or in its parent Region.
	//
	// For more information, see [Create an Amazon EBS-backed AMI] in the Amazon Elastic Compute Cloud User Guide.
	//
	// [Create an Amazon EBS-backed AMI]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html
	CreateImage(ctx context.Context, params *ec2.CreateImageInput, optFns ...func(*Options)) (*ec2.CreateImageOutput, error)
	// Creates a report that shows how your image is used across other Amazon Web
	// Services accounts. The report provides visibility into which accounts are using
	// the specified image, and how many resources (EC2 instances or launch templates)
	// are referencing it.
	//
	// For more information, see [View your AMI usage] in the Amazon EC2 User Guide.
	//
	// [View your AMI usage]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html
	CreateImageUsageReport(ctx context.Context, params *ec2.CreateImageUsageReportInput, optFns ...func(*Options)) (*ec2.CreateImageUsageReportOutput, error)
	// Creates an EC2 Instance Connect Endpoint.
	//
	// An EC2 Instance Connect Endpoint allows you to connect to an instance, without
	// requiring the instance to have a public IPv4 or public IPv6 address. For more
	// information, see [Connect to your instances using EC2 Instance Connect Endpoint]in the Amazon EC2 User Guide.
	//
	// [Connect to your instances using EC2 Instance Connect Endpoint]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect-Endpoint.html
	CreateInstanceConnectEndpoint(ctx context.Context, params *ec2.CreateInstanceConnectEndpointInput, optFns ...func(*Options)) (*ec2.CreateInstanceConnectEndpointOutput, error)
	// Creates an event window in which scheduled events for the associated Amazon EC2
	// instances can run.
	//
	// You can define either a set of time ranges or a cron expression when creating
	// the event window, but not both. All event window times are in UTC.
	//
	// You can create up to 200 event windows per Amazon Web Services Region.
	//
	// When you create the event window, targets (instance IDs, Dedicated Host IDs, or
	// tags) are not yet associated with it. To ensure that the event window can be
	// used, you must associate one or more targets with it by using the AssociateInstanceEventWindowAPI.
	//
	// Event windows are applicable only for scheduled events that stop, reboot, or
	// terminate instances.
	//
	// Event windows are not applicable for:
	//
	//   - Expedited scheduled events and network maintenance events.
	//
	//   - Unscheduled maintenance such as AutoRecovery and unplanned reboots.
	//
	// For more information, see [Define event windows for scheduled events] in the Amazon EC2 User Guide.
	//
	// [Define event windows for scheduled events]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html
	CreateInstanceEventWindow(ctx context.Context, params *ec2.CreateInstanceEventWindowInput, optFns ...func(*Options)) (*ec2.CreateInstanceEventWindowOutput, error)
	// Exports a running or stopped instance to an Amazon S3 bucket.
	//
	// For information about the prerequisites for your Amazon S3 bucket, supported
	// operating systems, image formats, and known limitations for the types of
	// instances you can export, see [Exporting an instance as a VM Using VM Import/Export]in the VM Import/Export User Guide.
	//
	// [Exporting an instance as a VM Using VM Import/Export]: https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport.html
	CreateInstanceExportTask(ctx context.Context, params *ec2.CreateInstanceExportTaskInput, optFns ...func(*Options)) (*ec2.CreateInstanceExportTaskOutput, error)
	// Creates an internet gateway for use with a VPC. After creating the internet
	// gateway, you attach it to a VPC using AttachInternetGateway.
	//
	// For more information, see [Internet gateways] in the Amazon VPC User Guide.
	//
	// [Internet gateways]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html
	CreateInternetGateway(ctx context.Context, params *ec2.CreateInternetGatewayInput, optFns ...func(*Options)) (*ec2.CreateInternetGatewayOutput, error)
	//	Creates an interruptible Capacity Reservation by specifying the number of
	//
	// unused instances you want to allocate from your source reservation. This helps
	// you make unused capacity available for other workloads within your account while
	// maintaining control to reclaim it.
	CreateInterruptibleCapacityReservationAllocation(ctx context.Context, params *ec2.CreateInterruptibleCapacityReservationAllocationInput, optFns ...func(*Options)) (*ec2.CreateInterruptibleCapacityReservationAllocationOutput, error)
	// Create an IPAM. Amazon VPC IP Address Manager (IPAM) is a VPC feature that you
	// can use to automate your IP address management workflows including assigning,
	// tracking, troubleshooting, and auditing IP addresses across Amazon Web Services
	// Regions and accounts throughout your Amazon Web Services Organization.
	//
	// For more information, see [Create an IPAM] in the Amazon VPC IPAM User Guide.
	//
	// [Create an IPAM]: https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html
	CreateIpam(ctx context.Context, params *ec2.CreateIpamInput, optFns ...func(*Options)) (*ec2.CreateIpamOutput, error)
	// Create a verification token.
	//
	// A verification token is an Amazon Web Services-generated random value that you
	// can use to prove ownership of an external resource. For example, you can use a
	// verification token to validate that you control a public IP address range when
	// you bring an IP address range to Amazon Web Services (BYOIP).
	CreateIpamExternalResourceVerificationToken(ctx context.Context, params *ec2.CreateIpamExternalResourceVerificationTokenInput, optFns ...func(*Options)) (*ec2.CreateIpamExternalResourceVerificationTokenOutput, error)
	// Creates an IPAM policy.
	//
	// An IPAM policy is a set of rules that define how public IPv4 addresses from
	// IPAM pools are allocated to Amazon Web Services resources. Each rule maps an
	// Amazon Web Services service to IPAM pools that the service will use to get IP
	// addresses. A single policy can have multiple rules and be applied to multiple
	// Amazon Web Services Regions. If the IPAM pool run out of addresses then the
	// services fallback to Amazon-provided IP addresses. A policy can be applied to an
	// individual Amazon Web Services account or an entity within Amazon Web Services
	// Organizations.
	//
	// For more information, see [Define public IPv4 allocation strategy with IPAM policies] in the Amazon VPC IPAM User Guide.
	//
	// [Define public IPv4 allocation strategy with IPAM policies]: https://docs.aws.amazon.com/vpc/latest/ipam/define-public-ipv4-allocation-strategy-with-ipam-policies.html
	CreateIpamPolicy(ctx context.Context, params *ec2.CreateIpamPolicyInput, optFns ...func(*Options)) (*ec2.CreateIpamPolicyOutput, error)
	// Create an IP address pool for Amazon VPC IP Address Manager (IPAM). In IPAM, a
	// pool is a collection of contiguous IP addresses CIDRs. Pools enable you to
	// organize your IP addresses according to your routing and security needs. For
	// example, if you have separate routing and security needs for development and
	// production applications, you can create a pool for each.
	//
	// For more information, see [Create a top-level pool] in the Amazon VPC IPAM User Guide.
	//
	// [Create a top-level pool]: https://docs.aws.amazon.com/vpc/latest/ipam/create-top-ipam.html
	CreateIpamPool(ctx context.Context, params *ec2.CreateIpamPoolInput, optFns ...func(*Options)) (*ec2.CreateIpamPoolOutput, error)
	// Creates an IPAM prefix list resolver.
	//
	// An IPAM prefix list resolver is a component that manages the synchronization
	// between IPAM's CIDR selection rules and customer-managed prefix lists. It
	// automates connectivity configurations by selecting CIDRs from IPAM's database
	// based on your business logic and synchronizing them with prefix lists used in
	// resources such as VPC route tables and security groups.
	//
	// For more information about IPAM prefix list resolver, see [Automate prefix list updates with IPAM] in the Amazon VPC
	// IPAM User Guide.
	//
	// [Automate prefix list updates with IPAM]: https://docs.aws.amazon.com/vpc/latest/ipam/automate-prefix-list-updates.html
	CreateIpamPrefixListResolver(ctx context.Context, params *ec2.CreateIpamPrefixListResolverInput, optFns ...func(*Options)) (*ec2.CreateIpamPrefixListResolverOutput, error)
	// Creates an IPAM prefix list resolver target.
	//
	// An IPAM prefix list resolver target is an association between a specific
	// customer-managed prefix list and an IPAM prefix list resolver. The target
	// enables the resolver to synchronize CIDRs selected by its rules into the
	// specified prefix list, which can then be referenced in Amazon Web Services
	// resources.
	//
	// For more information about IPAM prefix list resolver, see [Automate prefix list updates with IPAM] in the Amazon VPC
	// IPAM User Guide.
	//
	// [Automate prefix list updates with IPAM]: https://docs.aws.amazon.com/vpc/latest/ipam/automate-prefix-list-updates.html
	CreateIpamPrefixListResolverTarget(ctx context.Context, params *ec2.CreateIpamPrefixListResolverTargetInput, optFns ...func(*Options)) (*ec2.CreateIpamPrefixListResolverTargetOutput, error)
	// Creates an IPAM resource discovery. A resource discovery is an IPAM component
	// that enables IPAM to manage and monitor resources that belong to the owning
	// account.
	CreateIpamResourceDiscovery(ctx context.Context, params *ec2.CreateIpamResourceDiscoveryInput, optFns ...func(*Options)) (*ec2.CreateIpamResourceDiscoveryOutput, error)
	// Create an IPAM scope. In IPAM, a scope is the highest-level container within
	// IPAM. An IPAM contains two default scopes. Each scope represents the IP space
	// for a single network. The private scope is intended for all private IP address
	// space. The public scope is intended for all public IP address space. Scopes
	// enable you to reuse IP addresses across multiple unconnected networks without
	// causing IP address overlap or conflict.
	//
	// For more information, see [Add a scope] in the Amazon VPC IPAM User Guide.
	//
	// [Add a scope]: https://docs.aws.amazon.com/vpc/latest/ipam/add-scope-ipam.html
	CreateIpamScope(ctx context.Context, params *ec2.CreateIpamScopeInput, optFns ...func(*Options)) (*ec2.CreateIpamScopeOutput, error)
	// Creates an ED25519 or 2048-bit RSA key pair with the specified name and in the
	// specified format. Amazon EC2 stores the public key and displays the private key
	// for you to save to a file. The private key is returned as an unencrypted PEM
	// encoded PKCS#1 private key or an unencrypted PPK formatted private key for use
	// with PuTTY. If a key with the specified name already exists, Amazon EC2 returns
	// an error.
	//
	// The key pair returned to you is available only in the Amazon Web Services
	// Region in which you create it. If you prefer, you can create your own key pair
	// using a third-party tool and upload it to any Region using ImportKeyPair.
	//
	// You can have up to 5,000 key pairs per Amazon Web Services Region.
	//
	// For more information, see [Amazon EC2 key pairs] in the Amazon EC2 User Guide.
	//
	// [Amazon EC2 key pairs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html
	CreateKeyPair(ctx context.Context, params *ec2.CreateKeyPairInput, optFns ...func(*Options)) (*ec2.CreateKeyPairOutput, error)
	// Creates a launch template.
	//
	// A launch template contains the parameters to launch an instance. When you
	// launch an instance using RunInstances, you can specify a launch template instead of
	// providing the launch parameters in the request. For more information, see [Store instance launch parameters in Amazon EC2 launch templates]in
	// the Amazon EC2 User Guide.
	//
	// To clone an existing launch template as the basis for a new launch template,
	// use the Amazon EC2 console. The API, SDKs, and CLI do not support cloning a
	// template. For more information, see [Create a launch template from an existing launch template]in the Amazon EC2 User Guide.
	//
	// [Create a launch template from an existing launch template]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-launch-template.html#create-launch-template-from-existing-launch-template
	// [Store instance launch parameters in Amazon EC2 launch templates]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html
	CreateLaunchTemplate(ctx context.Context, params *ec2.CreateLaunchTemplateInput, optFns ...func(*Options)) (*ec2.CreateLaunchTemplateOutput, error)
	// Creates a new version of a launch template. You must specify an existing launch
	// template, either by name or ID. You can determine whether the new version
	// inherits parameters from a source version, and add or overwrite parameters as
	// needed.
	//
	// Launch template versions are numbered in the order in which they are created.
	// You can't specify, change, or replace the numbering of launch template versions.
	//
	// Launch templates are immutable; after you create a launch template, you can't
	// modify it. Instead, you can create a new version of the launch template that
	// includes the changes that you require.
	//
	// For more information, see [Modify a launch template (manage launch template versions)] in the Amazon EC2 User Guide.
	//
	// [Modify a launch template (manage launch template versions)]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-launch-template-versions.html
	CreateLaunchTemplateVersion(ctx context.Context, params *ec2.CreateLaunchTemplateVersionInput, optFns ...func(*Options)) (*ec2.CreateLaunchTemplateVersionOutput, error)
	// Creates a static route for the specified local gateway route table. You must
	// specify one of the following targets:
	//
	//   - LocalGatewayVirtualInterfaceGroupId
	//
	//   - NetworkInterfaceId
	CreateLocalGatewayRoute(ctx context.Context, params *ec2.CreateLocalGatewayRouteInput, optFns ...func(*Options)) (*ec2.CreateLocalGatewayRouteOutput, error)
	// Creates a local gateway route table.
	CreateLocalGatewayRouteTable(ctx context.Context, params *ec2.CreateLocalGatewayRouteTableInput, optFns ...func(*Options)) (*ec2.CreateLocalGatewayRouteTableOutput, error)
	// Creates a local gateway route table virtual interface group association.
	CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation(ctx context.Context, params *ec2.CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, optFns ...func(*Options)) (*ec2.CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput, error)
	// Associates the specified VPC with the specified local gateway route table.
	CreateLocalGatewayRouteTableVpcAssociation(ctx context.Context, params *ec2.CreateLocalGatewayRouteTableVpcAssociationInput, optFns ...func(*Options)) (*ec2.CreateLocalGatewayRouteTableVpcAssociationOutput, error)
	// Create a virtual interface for a local gateway.
	CreateLocalGatewayVirtualInterface(ctx context.Context, params *ec2.CreateLocalGatewayVirtualInterfaceInput, optFns ...func(*Options)) (*ec2.CreateLocalGatewayVirtualInterfaceOutput, error)
	// Create a local gateway virtual interface group.
	CreateLocalGatewayVirtualInterfaceGroup(ctx context.Context, params *ec2.CreateLocalGatewayVirtualInterfaceGroupInput, optFns ...func(*Options)) (*ec2.CreateLocalGatewayVirtualInterfaceGroupOutput, error)
	// Creates a System Integrity Protection (SIP) modification task to configure the
	// SIP settings for an x86 Mac instance or Apple silicon Mac instance. For more
	// information, see [Configure SIP for Amazon EC2 instances]in the Amazon EC2 User Guide.
	//
	// When you configure the SIP settings for your instance, you can either enable or
	// disable all SIP settings, or you can specify a custom SIP configuration that
	// selectively enables or disables specific SIP settings.
	//
	// If you implement a custom configuration, [connect to the instance and verify the settings] to ensure that your requirements are
	// properly implemented and functioning as intended.
	//
	// SIP configurations might change with macOS updates. We recommend that you
	// review custom SIP settings after any macOS version upgrade to ensure continued
	// compatibility and proper functionality of your security configurations.
	//
	// To enable or disable all SIP settings, use the
	// MacSystemIntegrityProtectionStatus parameter only. For example, to enable all
	// SIP settings, specify the following:
	//
	//   - MacSystemIntegrityProtectionStatus=enabled
	//
	// To specify a custom configuration that selectively enables or disables specific
	// SIP settings, use the MacSystemIntegrityProtectionStatus parameter to enable or
	// disable all SIP settings, and then use the
	// MacSystemIntegrityProtectionConfiguration parameter to specify exceptions. In
	// this case, the exceptions you specify for
	// MacSystemIntegrityProtectionConfiguration override the value you specify for
	// MacSystemIntegrityProtectionStatus. For example, to enable all SIP settings,
	// except NvramProtections , specify the following:
	//
	//   - MacSystemIntegrityProtectionStatus=enabled
	//
	//   - MacSystemIntegrityProtectionConfigurationRequest "NvramProtections=disabled"
	//
	// [Configure SIP for Amazon EC2 instances]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mac-sip-settings.html#mac-sip-configure
	// [connect to the instance and verify the settings]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mac-sip-settings.html#mac-sip-check-settings
	CreateMacSystemIntegrityProtectionModificationTask(ctx context.Context, params *ec2.CreateMacSystemIntegrityProtectionModificationTaskInput, optFns ...func(*Options)) (*ec2.CreateMacSystemIntegrityProtectionModificationTaskOutput, error)
	// Creates a managed prefix list. You can specify entries for the prefix list.
	// Each entry consists of a CIDR block and an optional description.
	CreateManagedPrefixList(ctx context.Context, params *ec2.CreateManagedPrefixListInput, optFns ...func(*Options)) (*ec2.CreateManagedPrefixListOutput, error)
	// Creates a NAT gateway in the specified subnet. This action creates a network
	// interface in the specified subnet with a private IP address from the IP address
	// range of the subnet. You can create either a public NAT gateway or a private NAT
	// gateway.
	//
	// With a public NAT gateway, internet-bound traffic from a private subnet can be
	// routed to the NAT gateway, so that instances in a private subnet can connect to
	// the internet.
	//
	// With a private NAT gateway, private communication is routed across VPCs and
	// on-premises networks through a transit gateway or virtual private gateway.
	// Common use cases include running large workloads behind a small pool of
	// allowlisted IPv4 addresses, preserving private IPv4 addresses, and communicating
	// between overlapping networks.
	//
	// For more information, see [NAT gateways] in the Amazon VPC User Guide.
	//
	// When you create a public NAT gateway and assign it an EIP or secondary EIPs,
	// the network border group of the EIPs must match the network border group of the
	// Availability Zone (AZ) that the public NAT gateway is in. If it's not the same,
	// the NAT gateway will fail to launch. You can see the network border group for
	// the subnet's AZ by viewing the details of the subnet. Similarly, you can view
	// the network border group of an EIP by viewing the details of the EIP address.
	// For more information about network border groups and EIPs, see [Allocate an Elastic IP address]in the Amazon
	// VPC User Guide.
	//
	// [NAT gateways]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html
	// [Allocate an Elastic IP address]: https://docs.aws.amazon.com/vpc/latest/userguide/WorkWithEIPs.html
	CreateNatGateway(ctx context.Context, params *ec2.CreateNatGatewayInput, optFns ...func(*Options)) (*ec2.CreateNatGatewayOutput, error)
	// Creates a network ACL in a VPC. Network ACLs provide an optional layer of
	// security (in addition to security groups) for the instances in your VPC.
	//
	// For more information, see [Network ACLs] in the Amazon VPC User Guide.
	//
	// [Network ACLs]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html
	CreateNetworkAcl(ctx context.Context, params *ec2.CreateNetworkAclInput, optFns ...func(*Options)) (*ec2.CreateNetworkAclOutput, error)
	// Creates an entry (a rule) in a network ACL with the specified rule number. Each
	// network ACL has a set of numbered ingress rules and a separate set of numbered
	// egress rules. When determining whether a packet should be allowed in or out of a
	// subnet associated with the ACL, we process the entries in the ACL according to
	// the rule numbers, in ascending order. Each network ACL has a set of ingress
	// rules and a separate set of egress rules.
	//
	// We recommend that you leave room between the rule numbers (for example, 100,
	// 110, 120, ...), and not number them one right after the other (for example, 101,
	// 102, 103, ...). This makes it easier to add a rule between existing ones without
	// having to renumber the rules.
	//
	// After you add an entry, you can't modify it; you must either replace it, or
	// create an entry and delete the old one.
	//
	// For more information about network ACLs, see [Network ACLs] in the Amazon VPC User Guide.
	//
	// [Network ACLs]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html
	CreateNetworkAclEntry(ctx context.Context, params *ec2.CreateNetworkAclEntryInput, optFns ...func(*Options)) (*ec2.CreateNetworkAclEntryOutput, error)
	// Creates a Network Access Scope.
	//
	// Amazon Web Services Network Access Analyzer enables cloud networking and cloud
	// operations teams to verify that their networks on Amazon Web Services conform to
	// their network security and governance objectives. For more information, see the [Amazon Web Services Network Access Analyzer Guide]
	// .
	//
	// [Amazon Web Services Network Access Analyzer Guide]: https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/
	CreateNetworkInsightsAccessScope(ctx context.Context, params *ec2.CreateNetworkInsightsAccessScopeInput, optFns ...func(*Options)) (*ec2.CreateNetworkInsightsAccessScopeOutput, error)
	// Creates a path to analyze for reachability.
	//
	// Reachability Analyzer enables you to analyze and debug network reachability
	// between two resources in your virtual private cloud (VPC). For more information,
	// see the [Reachability Analyzer Guide].
	//
	// [Reachability Analyzer Guide]: https://docs.aws.amazon.com/vpc/latest/reachability/
	CreateNetworkInsightsPath(ctx context.Context, params *ec2.CreateNetworkInsightsPathInput, optFns ...func(*Options)) (*ec2.CreateNetworkInsightsPathOutput, error)
	// Creates a network interface in the specified subnet.
	//
	// The number of IP addresses you can assign to a network interface varies by
	// instance type.
	//
	// For more information about network interfaces, see [Elastic network interfaces] in the Amazon EC2 User
	// Guide.
	//
	// [Elastic network interfaces]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html
	CreateNetworkInterface(ctx context.Context, params *ec2.CreateNetworkInterfaceInput, optFns ...func(*Options)) (*ec2.CreateNetworkInterfaceOutput, error)
	// Grants an Amazon Web Services-authorized account permission to attach the
	// specified network interface to an instance in their account.
	//
	// You can grant permission to a single Amazon Web Services account only, and only
	// one account at a time.
	CreateNetworkInterfacePermission(ctx context.Context, params *ec2.CreateNetworkInterfacePermissionInput, optFns ...func(*Options)) (*ec2.CreateNetworkInterfacePermissionOutput, error)
	// Creates a placement group in which to launch instances. The strategy of the
	// placement group determines how the instances are organized within the group.
	//
	// A cluster placement group is a logical grouping of instances within a single
	// Availability Zone that benefit from low network latency, high network
	// throughput. A spread placement group places instances on distinct hardware. A
	// partition placement group places groups of instances in different partitions,
	// where instances in one partition do not share the same hardware with instances
	// in another partition.
	//
	// For more information, see [Placement groups] in the Amazon EC2 User Guide.
	//
	// [Placement groups]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html
	CreatePlacementGroup(ctx context.Context, params *ec2.CreatePlacementGroupInput, optFns ...func(*Options)) (*ec2.CreatePlacementGroupOutput, error)
	// Creates a public IPv4 address pool. A public IPv4 pool is an EC2 IP address
	// pool required for the public IPv4 CIDRs that you own and bring to Amazon Web
	// Services to manage with IPAM. IPv6 addresses you bring to Amazon Web Services,
	// however, use IPAM pools only. To monitor the status of pool creation, use [DescribePublicIpv4Pools].
	//
	// [DescribePublicIpv4Pools]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribePublicIpv4Pools.html
	CreatePublicIpv4Pool(ctx context.Context, params *ec2.CreatePublicIpv4PoolInput, optFns ...func(*Options)) (*ec2.CreatePublicIpv4PoolOutput, error)
	// Replaces the EBS-backed root volume for a running instance with a new volume
	// that is restored to the original root volume's launch state, that is restored to
	// a specific snapshot taken from the original root volume, or that is restored
	// from an AMI that has the same key characteristics as that of the instance.
	//
	// For more information, see [Replace a root volume] in the Amazon EC2 User Guide.
	//
	// [Replace a root volume]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/replace-root.html
	CreateReplaceRootVolumeTask(ctx context.Context, params *ec2.CreateReplaceRootVolumeTaskInput, optFns ...func(*Options)) (*ec2.CreateReplaceRootVolumeTaskOutput, error)
	// Creates a listing for Amazon EC2 Standard Reserved Instances to be sold in the
	// Reserved Instance Marketplace. You can submit one Standard Reserved Instance
	// listing at a time. To get a list of your Standard Reserved Instances, you can
	// use the DescribeReservedInstancesoperation.
	//
	// Only Standard Reserved Instances can be sold in the Reserved Instance
	// Marketplace. Convertible Reserved Instances cannot be sold.
	//
	// The Reserved Instance Marketplace matches sellers who want to resell Standard
	// Reserved Instance capacity that they no longer need with buyers who want to
	// purchase additional capacity. Reserved Instances bought and sold through the
	// Reserved Instance Marketplace work like any other Reserved Instances.
	//
	// To sell your Standard Reserved Instances, you must first register as a seller
	// in the Reserved Instance Marketplace. After completing the registration process,
	// you can create a Reserved Instance Marketplace listing of some or all of your
	// Standard Reserved Instances, and specify the upfront price to receive for them.
	// Your Standard Reserved Instance listings then become available for purchase. To
	// view the details of your Standard Reserved Instance listing, you can use the DescribeReservedInstancesListings
	// operation.
	//
	// For more information, see [Sell in the Reserved Instance Marketplace] in the Amazon EC2 User Guide.
	//
	// [Sell in the Reserved Instance Marketplace]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html
	CreateReservedInstancesListing(ctx context.Context, params *ec2.CreateReservedInstancesListingInput, optFns ...func(*Options)) (*ec2.CreateReservedInstancesListingOutput, error)
	// Starts a task that restores an AMI from an Amazon S3 object that was previously
	// created by using [CreateStoreImageTask].
	//
	// To use this API, you must have the required permissions. For more information,
	// see [Permissions for storing and restoring AMIs using S3]in the Amazon EC2 User Guide.
	//
	// For more information, see [Store and restore an AMI using S3] in the Amazon EC2 User Guide.
	//
	// [CreateStoreImageTask]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html
	// [Store and restore an AMI using S3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html
	// [Permissions for storing and restoring AMIs using S3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-ami-store-restore.html#ami-s3-permissions
	CreateRestoreImageTask(ctx context.Context, params *ec2.CreateRestoreImageTaskInput, optFns ...func(*Options)) (*ec2.CreateRestoreImageTaskOutput, error)
	// Creates a route in a route table within a VPC.
	//
	// You must specify either a destination CIDR block or a prefix list ID. You must
	// also specify exactly one of the resources from the parameter list.
	//
	// When determining how to route traffic, we use the route with the most specific
	// match. For example, traffic is destined for the IPv4 address 192.0.2.3 , and the
	// route table includes the following two IPv4 routes:
	//
	//   - 192.0.2.0/24 (goes to some target A)
	//
	//   - 192.0.2.0/28 (goes to some target B)
	//
	// Both routes apply to the traffic destined for 192.0.2.3 . However, the second
	// route in the list covers a smaller number of IP addresses and is therefore more
	// specific, so we use that route to determine where to target the traffic.
	//
	// For more information about route tables, see [Route tables] in the Amazon VPC User Guide.
	//
	// [Route tables]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html
	CreateRoute(ctx context.Context, params *ec2.CreateRouteInput, optFns ...func(*Options)) (*ec2.CreateRouteOutput, error)
	// Creates a new route server to manage dynamic routing in a VPC.
	//
	// Amazon VPC Route Server simplifies routing for traffic between workloads that
	// are deployed within a VPC and its internet gateways. With this feature, VPC
	// Route Server dynamically updates VPC and internet gateway route tables with your
	// preferred IPv4 or IPv6 routes to achieve routing fault tolerance for those
	// workloads. This enables you to automatically reroute traffic within a VPC, which
	// increases the manageability of VPC routing and interoperability with third-party
	// workloads.
	//
	// Route server supports the follow route table types:
	//
	//   - VPC route tables not associated with subnets
	//
	//   - Subnet route tables
	//
	//   - Internet gateway route tables
	//
	// Route server does not support route tables associated with virtual private
	// gateways. To propagate routes into a transit gateway route table, use [Transit Gateway Connect].
	//
	// For more information see [Dynamic routing in your VPC with VPC Route Server] in the Amazon VPC User Guide.
	//
	// [Dynamic routing in your VPC with VPC Route Server]: https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html
	// [Transit Gateway Connect]: https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html
	CreateRouteServer(ctx context.Context, params *ec2.CreateRouteServerInput, optFns ...func(*Options)) (*ec2.CreateRouteServerOutput, error)
	// Creates a new endpoint for a route server in a specified subnet.
	//
	// A route server endpoint is an Amazon Web Services-managed component inside a
	// subnet that facilitates [BGP (Border Gateway Protocol)]connections between your route server and your BGP
	// peers.
	//
	// For more information see [Dynamic routing in your VPC with VPC Route Server] in the Amazon VPC User Guide.
	//
	// [Dynamic routing in your VPC with VPC Route Server]: https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html
	// [BGP (Border Gateway Protocol)]: https://en.wikipedia.org/wiki/Border_Gateway_Protocol
	CreateRouteServerEndpoint(ctx context.Context, params *ec2.CreateRouteServerEndpointInput, optFns ...func(*Options)) (*ec2.CreateRouteServerEndpointOutput, error)
	// Creates a new BGP peer for a specified route server endpoint.
	//
	// A route server peer is a session between a route server endpoint and the device
	// deployed in Amazon Web Services (such as a firewall appliance or other network
	// security function running on an EC2 instance). The device must meet these
	// requirements:
	//
	//   - Have an elastic network interface in the VPC
	//
	//   - Support BGP (Border Gateway Protocol)
	//
	//   - Can initiate BGP sessions
	//
	// For more information see [Dynamic routing in your VPC with VPC Route Server] in the Amazon VPC User Guide.
	//
	// [Dynamic routing in your VPC with VPC Route Server]: https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html
	CreateRouteServerPeer(ctx context.Context, params *ec2.CreateRouteServerPeerInput, optFns ...func(*Options)) (*ec2.CreateRouteServerPeerOutput, error)
	// Creates a route table for the specified VPC. After you create a route table,
	// you can add routes and associate the table with a subnet.
	//
	// For more information, see [Route tables] in the Amazon VPC User Guide.
	//
	// [Route tables]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html
	CreateRouteTable(ctx context.Context, params *ec2.CreateRouteTableInput, optFns ...func(*Options)) (*ec2.CreateRouteTableOutput, error)
	// Creates a secondary network.
	//
	// The allowed size for a secondary network CIDR block is between /28 netmask (16
	// IP addresses) and /12 netmask (1,048,576 IP addresses).
	CreateSecondaryNetwork(ctx context.Context, params *ec2.CreateSecondaryNetworkInput, optFns ...func(*Options)) (*ec2.CreateSecondaryNetworkOutput, error)
	// Creates a secondary subnet in a secondary network.
	//
	// A secondary subnet CIDR block must not overlap with the CIDR block of an
	// existing secondary subnet in the secondary network. After you create a secondary
	// subnet, you can't change its CIDR block.
	//
	// The allowed size for a secondary subnet CIDR block is between /28 netmask (16
	// IP addresses) and /12 netmask (1,048,576 IP addresses). Amazon reserves the
	// first four IP addresses and the last IP address in each secondary subnet for
	// internal use.
	CreateSecondarySubnet(ctx context.Context, params *ec2.CreateSecondarySubnetInput, optFns ...func(*Options)) (*ec2.CreateSecondarySubnetOutput, error)
	// Creates a security group.
	//
	// A security group acts as a virtual firewall for your instance to control
	// inbound and outbound traffic. For more information, see [Amazon EC2 security groups]in the Amazon EC2 User
	// Guide and [Security groups for your VPC]in the Amazon VPC User Guide.
	//
	// When you create a security group, you specify a friendly name of your choice.
	// You can't have two security groups for the same VPC with the same name.
	//
	// You have a default security group for use in your VPC. If you don't specify a
	// security group when you launch an instance, the instance is launched into the
	// appropriate default security group. A default security group includes a default
	// rule that grants instances unrestricted network access to each other.
	//
	// You can add or remove rules from your security groups using AuthorizeSecurityGroupIngress, AuthorizeSecurityGroupEgress, RevokeSecurityGroupIngress, and RevokeSecurityGroupEgress.
	//
	// For more information about VPC security group limits, see [Amazon VPC Limits].
	//
	// [Amazon VPC Limits]: https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html
	// [Amazon EC2 security groups]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html
	// [Security groups for your VPC]: https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html
	CreateSecurityGroup(ctx context.Context, params *ec2.CreateSecurityGroupInput, optFns ...func(*Options)) (*ec2.CreateSecurityGroupOutput, error)
	// Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use
	// snapshots for backups, to make copies of EBS volumes, and to save data before
	// shutting down an instance.
	//
	// The location of the source EBS volume determines where you can create the
	// snapshot.
	//
	//   - If the source volume is in a Region, you must create the snapshot in the
	//     same Region as the volume.
	//
	//   - If the source volume is in a Local Zone, you can create the snapshot in the
	//     same Local Zone or in its parent Amazon Web Services Region.
	//
	//   - If the source volume is on an Outpost, you can create the snapshot on the
	//     same Outpost or in its parent Amazon Web Services Region.
	//
	// When a snapshot is created, any Amazon Web Services Marketplace product codes
	// that are associated with the source volume are propagated to the snapshot.
	//
	// You can take a snapshot of an attached volume that is in use. However,
	// snapshots only capture data that has been written to your Amazon EBS volume at
	// the time the snapshot command is issued; this might exclude any data that has
	// been cached by any applications or the operating system. If you can pause any
	// file systems on the volume long enough to take a snapshot, your snapshot should
	// be complete. However, if you cannot pause all file writes to the volume, you
	// should unmount the volume from within the instance, issue the snapshot command,
	// and then remount the volume to ensure a consistent and complete snapshot. You
	// may remount and use your volume while the snapshot status is pending .
	//
	// When you create a snapshot for an EBS volume that serves as a root device, we
	// recommend that you stop the instance before taking the snapshot.
	//
	// Snapshots that are taken from encrypted volumes are automatically encrypted.
	// Volumes that are created from encrypted snapshots are also automatically
	// encrypted. Your encrypted volumes and any associated snapshots always remain
	// protected. For more information, see [Amazon EBS encryption]in the Amazon EBS User Guide.
	//
	// [Amazon EBS encryption]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html
	CreateSnapshot(ctx context.Context, params *ec2.CreateSnapshotInput, optFns ...func(*Options)) (*ec2.CreateSnapshotOutput, error)
	// Creates crash-consistent snapshots of multiple EBS volumes attached to an
	// Amazon EC2 instance. Volumes are chosen by specifying an instance. Each volume
	// attached to the specified instance will produce one snapshot that is
	// crash-consistent across the instance. You can include all of the volumes
	// currently attached to the instance, or you can exclude the root volume or
	// specific data (non-root) volumes from the multi-volume snapshot set.
	//
	// The location of the source instance determines where you can create the
	// snapshots.
	//
	//   - If the source instance is in a Region, you must create the snapshots in the
	//     same Region as the instance.
	//
	//   - If the source instance is in a Local Zone, you can create the snapshots in
	//     the same Local Zone or in its parent Amazon Web Services Region.
	//
	//   - If the source instance is on an Outpost, you can create the snapshots on
	//     the same Outpost or in its parent Amazon Web Services Region.
	CreateSnapshots(ctx context.Context, params *ec2.CreateSnapshotsInput, optFns ...func(*Options)) (*ec2.CreateSnapshotsOutput, error)
	// Creates a data feed for Spot Instances, enabling you to view Spot Instance
	// usage logs. You can create one data feed per Amazon Web Services account. For
	// more information, see [Spot Instance data feed]in the Amazon EC2 User Guide.
	//
	// [Spot Instance data feed]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html
	CreateSpotDatafeedSubscription(ctx context.Context, params *ec2.CreateSpotDatafeedSubscriptionInput, optFns ...func(*Options)) (*ec2.CreateSpotDatafeedSubscriptionOutput, error)
	// Stores an AMI as a single object in an Amazon S3 bucket.
	//
	// To use this API, you must have the required permissions. For more information,
	// see [Permissions for storing and restoring AMIs using S3]in the Amazon EC2 User Guide.
	//
	// For more information, see [Store and restore an AMI using S3] in the Amazon EC2 User Guide.
	//
	// [Store and restore an AMI using S3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html
	// [Permissions for storing and restoring AMIs using S3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-ami-store-restore.html#ami-s3-permissions
	CreateStoreImageTask(ctx context.Context, params *ec2.CreateStoreImageTaskInput, optFns ...func(*Options)) (*ec2.CreateStoreImageTaskOutput, error)
	// Creates a subnet in the specified VPC. For an IPv4 only subnet, specify an IPv4
	// CIDR block. If the VPC has an IPv6 CIDR block, you can create an IPv6 only
	// subnet or a dual stack subnet instead. For an IPv6 only subnet, specify an IPv6
	// CIDR block. For a dual stack subnet, specify both an IPv4 CIDR block and an IPv6
	// CIDR block.
	//
	// A subnet CIDR block must not overlap the CIDR block of an existing subnet in
	// the VPC. After you create a subnet, you can't change its CIDR block.
	//
	// The allowed size for an IPv4 subnet is between a /28 netmask (16 IP addresses)
	// and a /16 netmask (65,536 IP addresses). Amazon Web Services reserves both the
	// first four and the last IPv4 address in each subnet's CIDR block. They're not
	// available for your use.
	//
	// If you've associated an IPv6 CIDR block with your VPC, you can associate an
	// IPv6 CIDR block with a subnet when you create it.
	//
	// If you add more than one subnet to a VPC, they're set up in a star topology
	// with a logical router in the middle.
	//
	// When you stop an instance in a subnet, it retains its private IPv4 address.
	// It's therefore possible to have a subnet with no running instances (they're all
	// stopped), but no remaining IP addresses available.
	//
	// For more information, see [Subnets] in the Amazon VPC User Guide.
	//
	// [Subnets]: https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html
	CreateSubnet(ctx context.Context, params *ec2.CreateSubnetInput, optFns ...func(*Options)) (*ec2.CreateSubnetOutput, error)
	// Creates a subnet CIDR reservation. For more information, see [Subnet CIDR reservations] in the Amazon VPC
	// User Guide and [Manage prefixes for your network interfaces]in the Amazon EC2 User Guide.
	//
	// [Subnet CIDR reservations]: https://docs.aws.amazon.com/vpc/latest/userguide/subnet-cidr-reservation.html
	// [Manage prefixes for your network interfaces]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-prefixes.html
	CreateSubnetCidrReservation(ctx context.Context, params *ec2.CreateSubnetCidrReservationInput, optFns ...func(*Options)) (*ec2.CreateSubnetCidrReservationOutput, error)
	// Adds or overwrites only the specified tags for the specified Amazon EC2
	// resource or resources. When you specify an existing tag key, the value is
	// overwritten with the new value. Each resource can have a maximum of 50 tags.
	// Each tag consists of a key and optional value. Tag keys must be unique per
	// resource.
	//
	// For more information about tags, see [Tag your Amazon EC2 resources] in the Amazon Elastic Compute Cloud User
	// Guide. For more information about creating IAM policies that control users'
	// access to resources based on tags, see [Supported resource-level permissions for Amazon EC2 API actions]in the Amazon Elastic Compute Cloud User
	// Guide.
	//
	// [Supported resource-level permissions for Amazon EC2 API actions]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-iam-actions-resources.html
	// [Tag your Amazon EC2 resources]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html
	CreateTags(ctx context.Context, params *ec2.CreateTagsInput, optFns ...func(*Options)) (*ec2.CreateTagsOutput, error)
	// Creates a Traffic Mirror filter.
	//
	// A Traffic Mirror filter is a set of rules that defines the traffic to mirror.
	//
	// By default, no traffic is mirrored. To mirror traffic, use [CreateTrafficMirrorFilterRule] to add Traffic
	// Mirror rules to the filter. The rules you add define what traffic gets mirrored.
	// You can also use [ModifyTrafficMirrorFilterNetworkServices]to mirror supported network services.
	//
	// [CreateTrafficMirrorFilterRule]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorFilterRule.htm
	// [ModifyTrafficMirrorFilterNetworkServices]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyTrafficMirrorFilterNetworkServices.html
	CreateTrafficMirrorFilter(ctx context.Context, params *ec2.CreateTrafficMirrorFilterInput, optFns ...func(*Options)) (*ec2.CreateTrafficMirrorFilterOutput, error)
	// Creates a Traffic Mirror filter rule.
	//
	// A Traffic Mirror rule defines the Traffic Mirror source traffic to mirror.
	//
	// You need the Traffic Mirror filter ID when you create the rule.
	CreateTrafficMirrorFilterRule(ctx context.Context, params *ec2.CreateTrafficMirrorFilterRuleInput, optFns ...func(*Options)) (*ec2.CreateTrafficMirrorFilterRuleOutput, error)
	// Creates a Traffic Mirror session.
	//
	// A Traffic Mirror session actively copies packets from a Traffic Mirror source
	// to a Traffic Mirror target. Create a filter, and then assign it to the session
	// to define a subset of the traffic to mirror, for example all TCP traffic.
	//
	// The Traffic Mirror source and the Traffic Mirror target (monitoring appliances)
	// can be in the same VPC, or in a different VPC connected via VPC peering or a
	// transit gateway.
	//
	// By default, no traffic is mirrored. Use [CreateTrafficMirrorFilter] to create filter rules that specify
	// the traffic to mirror.
	//
	// [CreateTrafficMirrorFilter]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorFilter.html
	CreateTrafficMirrorSession(ctx context.Context, params *ec2.CreateTrafficMirrorSessionInput, optFns ...func(*Options)) (*ec2.CreateTrafficMirrorSessionOutput, error)
	// Creates a target for your Traffic Mirror session.
	//
	// A Traffic Mirror target is the destination for mirrored traffic. The Traffic
	// Mirror source and the Traffic Mirror target (monitoring appliances) can be in
	// the same VPC, or in different VPCs connected via VPC peering or a transit
	// gateway.
	//
	// A Traffic Mirror target can be a network interface, a Network Load Balancer, or
	// a Gateway Load Balancer endpoint.
	//
	// To use the target in a Traffic Mirror session, use [CreateTrafficMirrorSession].
	//
	// [CreateTrafficMirrorSession]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTrafficMirrorSession.htm
	CreateTrafficMirrorTarget(ctx context.Context, params *ec2.CreateTrafficMirrorTargetInput, optFns ...func(*Options)) (*ec2.CreateTrafficMirrorTargetOutput, error)
	// Creates a transit gateway.
	//
	// You can use a transit gateway to interconnect your virtual private clouds (VPC)
	// and on-premises networks. After the transit gateway enters the available state,
	// you can attach your VPCs and VPN connections to the transit gateway.
	//
	// To attach your VPCs, use CreateTransitGatewayVpcAttachment.
	//
	// To attach a VPN connection, use CreateCustomerGateway to create a customer gateway and specify the
	// ID of the customer gateway and the ID of the transit gateway in a call to CreateVpnConnection.
	//
	// When you create a transit gateway, we create a default transit gateway route
	// table and use it as the default association route table and the default
	// propagation route table. You can use CreateTransitGatewayRouteTableto create additional transit gateway route
	// tables. If you disable automatic route propagation, we do not create a default
	// transit gateway route table. You can use EnableTransitGatewayRouteTablePropagationto propagate routes from a resource
	// attachment to a transit gateway route table. If you disable automatic
	// associations, you can use AssociateTransitGatewayRouteTableto associate a resource attachment with a transit
	// gateway route table.
	CreateTransitGateway(ctx context.Context, params *ec2.CreateTransitGatewayInput, optFns ...func(*Options)) (*ec2.CreateTransitGatewayOutput, error)
	// Creates a Connect attachment from a specified transit gateway attachment. A
	// Connect attachment is a GRE-based tunnel attachment that you can use to
	// establish a connection between a transit gateway and an appliance.
	//
	// A Connect attachment uses an existing VPC or Amazon Web Services Direct Connect
	// attachment as the underlying transport mechanism.
	CreateTransitGatewayConnect(ctx context.Context, params *ec2.CreateTransitGatewayConnectInput, optFns ...func(*Options)) (*ec2.CreateTransitGatewayConnectOutput, error)
	// Creates a Connect peer for a specified transit gateway Connect attachment
	// between a transit gateway and an appliance.
	//
	// The peer address and transit gateway address must be the same IP address family
	// (IPv4 or IPv6).
	//
	// For more information, see [Connect peers] in the Amazon Web Services Transit Gateways Guide.
	//
	// [Connect peers]: https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html#tgw-connect-peer
	CreateTransitGatewayConnectPeer(ctx context.Context, params *ec2.CreateTransitGatewayConnectPeerInput, optFns ...func(*Options)) (*ec2.CreateTransitGatewayConnectPeerOutput, error)
	// Creates a metering policy for a transit gateway to track and measure network
	// traffic.
	CreateTransitGatewayMeteringPolicy(ctx context.Context, params *ec2.CreateTransitGatewayMeteringPolicyInput, optFns ...func(*Options)) (*ec2.CreateTransitGatewayMeteringPolicyOutput, error)
	// Creates an entry in a transit gateway metering policy to define traffic
	// measurement rules.
	CreateTransitGatewayMeteringPolicyEntry(ctx context.Context, params *ec2.CreateTransitGatewayMeteringPolicyEntryInput, optFns ...func(*Options)) (*ec2.CreateTransitGatewayMeteringPolicyEntryOutput, error)
	// Creates a multicast domain using the specified transit gateway.
	//
	// The transit gateway must be in the available state before you create a domain.
	// Use [DescribeTransitGateways]to see the state of transit gateway.
	//
	// [DescribeTransitGateways]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTransitGateways.html
	CreateTransitGatewayMulticastDomain(ctx context.Context, params *ec2.CreateTransitGatewayMulticastDomainInput, optFns ...func(*Options)) (*ec2.CreateTransitGatewayMulticastDomainOutput, error)
	// Requests a transit gateway peering attachment between the specified transit
	// gateway (requester) and a peer transit gateway (accepter). The peer transit
	// gateway can be in your account or a different Amazon Web Services account.
	//
	// After you create the peering attachment, the owner of the accepter transit
	// gateway must accept the attachment request.
	CreateTransitGatewayPeeringAttachment(ctx context.Context, params *ec2.CreateTransitGatewayPeeringAttachmentInput, optFns ...func(*Options)) (*ec2.CreateTransitGatewayPeeringAttachmentOutput, error)
	// Creates a transit gateway policy table.
	CreateTransitGatewayPolicyTable(ctx context.Context, params *ec2.CreateTransitGatewayPolicyTableInput, optFns ...func(*Options)) (*ec2.CreateTransitGatewayPolicyTableOutput, error)
	// Creates a reference (route) to a prefix list in a specified transit gateway
	// route table.
	CreateTransitGatewayPrefixListReference(ctx context.Context, params *ec2.CreateTransitGatewayPrefixListReferenceInput, optFns ...func(*Options)) (*ec2.CreateTransitGatewayPrefixListReferenceOutput, error)
	// Creates a static route for the specified transit gateway route table.
	CreateTransitGatewayRoute(ctx context.Context, params *ec2.CreateTransitGatewayRouteInput, optFns ...func(*Options)) (*ec2.CreateTransitGatewayRouteOutput, error)
	// Creates a route table for the specified transit gateway.
	CreateTransitGatewayRouteTable(ctx context.Context, params *ec2.CreateTransitGatewayRouteTableInput, optFns ...func(*Options)) (*ec2.CreateTransitGatewayRouteTableOutput, error)
	// Advertises a new transit gateway route table.
	CreateTransitGatewayRouteTableAnnouncement(ctx context.Context, params *ec2.CreateTransitGatewayRouteTableAnnouncementInput, optFns ...func(*Options)) (*ec2.CreateTransitGatewayRouteTableAnnouncementOutput, error)
	// Attaches the specified VPC to the specified transit gateway.
	//
	// If you attach a VPC with a CIDR range that overlaps the CIDR range of a VPC
	// that is already attached, the new VPC CIDR range is not propagated to the
	// default propagation route table.
	//
	// To send VPC traffic to an attached transit gateway, add a route to the VPC
	// route table using CreateRoute.
	CreateTransitGatewayVpcAttachment(ctx context.Context, params *ec2.CreateTransitGatewayVpcAttachmentInput, optFns ...func(*Options)) (*ec2.CreateTransitGatewayVpcAttachmentOutput, error)
	// An Amazon Web Services Verified Access endpoint is where you define your
	// application along with an optional endpoint-level access policy.
	CreateVerifiedAccessEndpoint(ctx context.Context, params *ec2.CreateVerifiedAccessEndpointInput, optFns ...func(*Options)) (*ec2.CreateVerifiedAccessEndpointOutput, error)
	// An Amazon Web Services Verified Access group is a collection of Amazon Web
	// Services Verified Access endpoints who's associated applications have similar
	// security requirements. Each instance within a Verified Access group shares an
	// Verified Access policy. For example, you can group all Verified Access instances
	// associated with "sales" applications together and use one common Verified Access
	// policy.
	CreateVerifiedAccessGroup(ctx context.Context, params *ec2.CreateVerifiedAccessGroupInput, optFns ...func(*Options)) (*ec2.CreateVerifiedAccessGroupOutput, error)
	// An Amazon Web Services Verified Access instance is a regional entity that
	// evaluates application requests and grants access only when your security
	// requirements are met.
	CreateVerifiedAccessInstance(ctx context.Context, params *ec2.CreateVerifiedAccessInstanceInput, optFns ...func(*Options)) (*ec2.CreateVerifiedAccessInstanceOutput, error)
	// A trust provider is a third-party entity that creates, maintains, and manages
	// identity information for users and devices. When an application request is made,
	// the identity information sent by the trust provider is evaluated by Verified
	// Access before allowing or denying the application request.
	CreateVerifiedAccessTrustProvider(ctx context.Context, params *ec2.CreateVerifiedAccessTrustProviderInput, optFns ...func(*Options)) (*ec2.CreateVerifiedAccessTrustProviderOutput, error)
	// Creates an EBS volume that can be attached to an instance in the same
	// Availability Zone.
	//
	// You can create a new empty volume or restore a volume from an EBS snapshot. Any
	// Amazon Web Services Marketplace product codes from the snapshot are propagated
	// to the volume.
	//
	// You can create encrypted volumes. Encrypted volumes must be attached to
	// instances that support Amazon EBS encryption. Volumes that are created from
	// encrypted snapshots are also automatically encrypted. For more information, see [Amazon EBS encryption]
	// in the Amazon EBS User Guide.
	//
	// You can tag your volumes during creation. For more information, see [Tag your Amazon EC2 resources] in the
	// Amazon EC2 User Guide.
	//
	// For more information, see [Create an Amazon EBS volume] in the Amazon EBS User Guide.
	//
	// [Amazon EBS encryption]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html
	// [Create an Amazon EBS volume]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-creating-volume.html
	// [Tag your Amazon EC2 resources]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html
	CreateVolume(ctx context.Context, params *ec2.CreateVolumeInput, optFns ...func(*Options)) (*ec2.CreateVolumeOutput, error)
	// Creates a VPC with the specified CIDR blocks.
	//
	// A VPC must have an associated IPv4 CIDR block. You can choose an IPv4 CIDR
	// block or an IPAM-allocated IPv4 CIDR block. You can optionally associate an IPv6
	// CIDR block with a VPC. You can choose an IPv6 CIDR block, an Amazon-provided
	// IPv6 CIDR block, an IPAM-allocated IPv6 CIDR block, or an IPv6 CIDR block that
	// you brought to Amazon Web Services. For more information, see [IP addressing for your VPCs and subnets]in the Amazon VPC
	// User Guide.
	//
	// By default, each instance that you launch in the VPC has the default DHCP
	// options, which include only a default DNS server that we provide
	// (AmazonProvidedDNS). For more information, see [DHCP option sets]in the Amazon VPC User Guide.
	//
	// You can specify DNS options and tenancy for a VPC when you create it. You can't
	// change the tenancy of a VPC after you create it. For more information, see [VPC configuration options]in
	// the Amazon VPC User Guide.
	//
	// [VPC configuration options]: https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc-options.html
	// [DHCP option sets]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html
	// [IP addressing for your VPCs and subnets]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html
	CreateVpc(ctx context.Context, params *ec2.CreateVpcInput, optFns ...func(*Options)) (*ec2.CreateVpcOutput, error)
	// Create a VPC Block Public Access (BPA) exclusion. A VPC BPA exclusion is a mode
	// that can be applied to a single VPC or subnet that exempts it from the account’s
	// BPA mode and will allow bidirectional or egress-only access. You can create BPA
	// exclusions for VPCs and subnets even when BPA is not enabled on the account to
	// ensure that there is no traffic disruption to the exclusions when VPC BPA is
	// turned on. To learn more about VPC BPA, see [Block public access to VPCs and subnets]in the Amazon VPC User Guide.
	//
	// [Block public access to VPCs and subnets]: https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html
	CreateVpcBlockPublicAccessExclusion(ctx context.Context, params *ec2.CreateVpcBlockPublicAccessExclusionInput, optFns ...func(*Options)) (*ec2.CreateVpcBlockPublicAccessExclusionOutput, error)
	// Creates a VPC Encryption Control configuration for a specified VPC. VPC
	// Encryption Control enables you to enforce encryption for all data in transit
	// within and between VPCs to meet compliance requirements for standards like
	// HIPAA, FedRAMP, and PCI DSS.
	//
	// For more information, see [Enforce VPC encryption in transit] in the Amazon VPC User Guide.
	//
	// [Enforce VPC encryption in transit]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html
	CreateVpcEncryptionControl(ctx context.Context, params *ec2.CreateVpcEncryptionControlInput, optFns ...func(*Options)) (*ec2.CreateVpcEncryptionControlOutput, error)
	// Creates a VPC endpoint. A VPC endpoint provides a private connection between
	// the specified VPC and the specified endpoint service. You can use an endpoint
	// service provided by Amazon Web Services, an Amazon Web Services Marketplace
	// Partner, or another Amazon Web Services account. For more information, see the [Amazon Web Services PrivateLink User Guide].
	//
	// [Amazon Web Services PrivateLink User Guide]: https://docs.aws.amazon.com/vpc/latest/privatelink/
	CreateVpcEndpoint(ctx context.Context, params *ec2.CreateVpcEndpointInput, optFns ...func(*Options)) (*ec2.CreateVpcEndpointOutput, error)
	// Creates a connection notification for a specified VPC endpoint or VPC endpoint
	// service. A connection notification notifies you of specific endpoint events. You
	// must create an SNS topic to receive notifications. For more information, see [Creating an Amazon SNS topic]in
	// the Amazon SNS Developer Guide.
	//
	// You can create a connection notification for interface endpoints only.
	//
	// [Creating an Amazon SNS topic]: https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html
	CreateVpcEndpointConnectionNotification(ctx context.Context, params *ec2.CreateVpcEndpointConnectionNotificationInput, optFns ...func(*Options)) (*ec2.CreateVpcEndpointConnectionNotificationOutput, error)
	// Creates a VPC endpoint service to which service consumers (Amazon Web Services
	// accounts, users, and IAM roles) can connect.
	//
	// Before you create an endpoint service, you must create one of the following for
	// your service:
	//
	//   - A [Network Load Balancer]. Service consumers connect to your service using an interface endpoint.
	//
	//   - A [Gateway Load Balancer]. Service consumers connect to your service using a Gateway Load Balancer
	//     endpoint.
	//
	// If you set the private DNS name, you must prove that you own the private DNS
	// domain name.
	//
	// For more information, see the [Amazon Web Services PrivateLink Guide].
	//
	// [Gateway Load Balancer]: https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/
	// [Network Load Balancer]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/
	// [Amazon Web Services PrivateLink Guide]: https://docs.aws.amazon.com/vpc/latest/privatelink/
	CreateVpcEndpointServiceConfiguration(ctx context.Context, params *ec2.CreateVpcEndpointServiceConfigurationInput, optFns ...func(*Options)) (*ec2.CreateVpcEndpointServiceConfigurationOutput, error)
	// Requests a VPC peering connection between two VPCs: a requester VPC that you
	// own and an accepter VPC with which to create the connection. The accepter VPC
	// can belong to another Amazon Web Services account and can be in a different
	// Region to the requester VPC. The requester VPC and accepter VPC cannot have
	// overlapping CIDR blocks.
	//
	// Limitations and rules apply to a VPC peering connection. For more information,
	// see the [VPC peering limitations]in the VPC Peering Guide.
	//
	// The owner of the accepter VPC must accept the peering request to activate the
	// peering connection. The VPC peering connection request expires after 7 days,
	// after which it cannot be accepted or rejected.
	//
	// If you create a VPC peering connection request between VPCs with overlapping
	// CIDR blocks, the VPC peering connection has a status of failed .
	//
	// [VPC peering limitations]: https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-basics.html#vpc-peering-limitations
	CreateVpcPeeringConnection(ctx context.Context, params *ec2.CreateVpcPeeringConnectionInput, optFns ...func(*Options)) (*ec2.CreateVpcPeeringConnectionOutput, error)
	// Creates a VPN concentrator that aggregates multiple VPN connections to a
	// transit gateway.
	CreateVpnConcentrator(ctx context.Context, params *ec2.CreateVpnConcentratorInput, optFns ...func(*Options)) (*ec2.CreateVpnConcentratorOutput, error)
	// Creates a VPN connection between an existing virtual private gateway or transit
	// gateway and a customer gateway. The supported connection type is ipsec.1 .
	//
	// The response includes information that you need to give to your network
	// administrator to configure your customer gateway.
	//
	// We strongly recommend that you use HTTPS when calling this operation because
	// the response contains sensitive cryptographic information for configuring your
	// customer gateway device.
	//
	// If you decide to shut down your VPN connection for any reason and later create
	// a new VPN connection, you must reconfigure your customer gateway with the new
	// information returned from this call.
	//
	// This is an idempotent operation. If you perform the operation more than once,
	// Amazon EC2 doesn't return an error.
	//
	// For more information, see [Amazon Web Services Site-to-Site VPN] in the Amazon Web Services Site-to-Site VPN User
	// Guide.
	//
	// [Amazon Web Services Site-to-Site VPN]: https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html
	CreateVpnConnection(ctx context.Context, params *ec2.CreateVpnConnectionInput, optFns ...func(*Options)) (*ec2.CreateVpnConnectionOutput, error)
	// Creates a static route associated with a VPN connection between an existing
	// virtual private gateway and a VPN customer gateway. The static route allows
	// traffic to be routed from the virtual private gateway to the VPN customer
	// gateway.
	//
	// For more information, see [Amazon Web Services Site-to-Site VPN] in the Amazon Web Services Site-to-Site VPN User
	// Guide.
	//
	// [Amazon Web Services Site-to-Site VPN]: https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html
	CreateVpnConnectionRoute(ctx context.Context, params *ec2.CreateVpnConnectionRouteInput, optFns ...func(*Options)) (*ec2.CreateVpnConnectionRouteOutput, error)
	// Creates a virtual private gateway. A virtual private gateway is the endpoint on
	// the VPC side of your VPN connection. You can create a virtual private gateway
	// before creating the VPC itself.
	//
	// For more information, see [Amazon Web Services Site-to-Site VPN] in the Amazon Web Services Site-to-Site VPN User
	// Guide.
	//
	// [Amazon Web Services Site-to-Site VPN]: https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html
	CreateVpnGateway(ctx context.Context, params *ec2.CreateVpnGatewayInput, optFns ...func(*Options)) (*ec2.CreateVpnGatewayOutput, error)
	//	Deletes an existing Capacity Manager data export configuration. This stops
	//
	// future scheduled exports but does not delete previously exported files from S3.
	DeleteCapacityManagerDataExport(ctx context.Context, params *ec2.DeleteCapacityManagerDataExportInput, optFns ...func(*Options)) (*ec2.DeleteCapacityManagerDataExportOutput, error)
	// Deletes a carrier gateway.
	//
	// If you do not delete the route that contains the carrier gateway as the Target,
	// the route is a blackhole route. For information about how to delete a route, see
	// [DeleteRoute].
	//
	// [DeleteRoute]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteRoute.html
	DeleteCarrierGateway(ctx context.Context, params *ec2.DeleteCarrierGatewayInput, optFns ...func(*Options)) (*ec2.DeleteCarrierGatewayOutput, error)
	// Deletes the specified Client VPN endpoint. You must disassociate all target
	// networks before you can delete a Client VPN endpoint.
	DeleteClientVpnEndpoint(ctx context.Context, params *ec2.DeleteClientVpnEndpointInput, optFns ...func(*Options)) (*ec2.DeleteClientVpnEndpointOutput, error)
	// Deletes a route from a Client VPN endpoint. You can only delete routes that you
	// manually added using the CreateClientVpnRoute action. You cannot delete routes
	// that were automatically added when associating a subnet. To remove routes that
	// have been automatically added, disassociate the target subnet from the Client
	// VPN endpoint.
	DeleteClientVpnRoute(ctx context.Context, params *ec2.DeleteClientVpnRouteInput, optFns ...func(*Options)) (*ec2.DeleteClientVpnRouteOutput, error)
	// Deletes a range of customer-owned IP addresses.
	DeleteCoipCidr(ctx context.Context, params *ec2.DeleteCoipCidrInput, optFns ...func(*Options)) (*ec2.DeleteCoipCidrOutput, error)
	// Deletes a pool of customer-owned IP (CoIP) addresses.
	DeleteCoipPool(ctx context.Context, params *ec2.DeleteCoipPoolInput, optFns ...func(*Options)) (*ec2.DeleteCoipPoolOutput, error)
	// Deletes the specified customer gateway. You must delete the VPN connection
	// before you can delete the customer gateway.
	DeleteCustomerGateway(ctx context.Context, params *ec2.DeleteCustomerGatewayInput, optFns ...func(*Options)) (*ec2.DeleteCustomerGatewayOutput, error)
	// Deletes the specified set of DHCP options. You must disassociate the set of
	// DHCP options before you can delete it. You can disassociate the set of DHCP
	// options by associating either a new set of options or the default set of options
	// with the VPC.
	DeleteDhcpOptions(ctx context.Context, params *ec2.DeleteDhcpOptionsInput, optFns ...func(*Options)) (*ec2.DeleteDhcpOptionsOutput, error)
	// Deletes an egress-only internet gateway.
	DeleteEgressOnlyInternetGateway(ctx context.Context, params *ec2.DeleteEgressOnlyInternetGatewayInput, optFns ...func(*Options)) (*ec2.DeleteEgressOnlyInternetGatewayOutput, error)
	// Deletes the specified EC2 Fleet request.
	//
	// After you delete an EC2 Fleet request, it launches no new instances.
	//
	// You must also specify whether a deleted EC2 Fleet request should terminate its
	// instances. If you choose to terminate the instances, the EC2 Fleet request
	// enters the deleted_terminating state. Otherwise, it enters the deleted_running
	// state, and the instances continue to run until they are interrupted or you
	// terminate them manually.
	//
	// A deleted instant fleet with running instances is not supported. When you
	// delete an instant fleet, Amazon EC2 automatically terminates all its instances.
	// For fleets with more than 1000 instances, the deletion request might fail. If
	// your fleet has more than 1000 instances, first terminate most of the instances
	// manually, leaving 1000 or fewer. Then delete the fleet, and the remaining
	// instances will be terminated automatically.
	//
	// Terminating an instance is permanent and irreversible.
	//
	// After you terminate an instance, you can no longer connect to it, and it can't
	// be recovered. All attached Amazon EBS volumes that are configured to be deleted
	// on termination are also permanently deleted and can't be recovered. All data
	// stored on instance store volumes is permanently lost. For more information, see [How instance termination works]
	// .
	//
	// Before you terminate an instance, ensure that you have backed up all data that
	// you need to retain after the termination to persistent storage.
	//
	// Restrictions
	//
	//   - You can delete up to 25 fleets of type instant in a single request.
	//
	//   - You can delete up to 100 fleets of type maintain or request in a single
	//     request.
	//
	//   - You can delete up to 125 fleets in a single request, provided you do not
	//     exceed the quota for each fleet type, as specified above.
	//
	//   - If you exceed the specified number of fleets to delete, no fleets are
	//     deleted.
	//
	// For more information, see [Delete an EC2 Fleet request and the instances in the fleet] in the Amazon EC2 User Guide.
	//
	// [How instance termination works]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-ec2-instance-termination-works.html
	// [Delete an EC2 Fleet request and the instances in the fleet]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/delete-fleet.html
	DeleteFleets(ctx context.Context, params *ec2.DeleteFleetsInput, optFns ...func(*Options)) (*ec2.DeleteFleetsOutput, error)
	// Deletes one or more flow logs.
	DeleteFlowLogs(ctx context.Context, params *ec2.DeleteFlowLogsInput, optFns ...func(*Options)) (*ec2.DeleteFlowLogsOutput, error)
	// Deletes the specified Amazon FPGA Image (AFI).
	DeleteFpgaImage(ctx context.Context, params *ec2.DeleteFpgaImageInput, optFns ...func(*Options)) (*ec2.DeleteFpgaImageOutput, error)
	// Deletes the specified image usage report.
	//
	// For more information, see [View your AMI usage] in the Amazon EC2 User Guide.
	//
	// [View your AMI usage]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html
	DeleteImageUsageReport(ctx context.Context, params *ec2.DeleteImageUsageReportInput, optFns ...func(*Options)) (*ec2.DeleteImageUsageReportOutput, error)
	// Deletes the specified EC2 Instance Connect Endpoint.
	DeleteInstanceConnectEndpoint(ctx context.Context, params *ec2.DeleteInstanceConnectEndpointInput, optFns ...func(*Options)) (*ec2.DeleteInstanceConnectEndpointOutput, error)
	// Deletes the specified event window.
	//
	// For more information, see [Define event windows for scheduled events] in the Amazon EC2 User Guide.
	//
	// [Define event windows for scheduled events]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html
	DeleteInstanceEventWindow(ctx context.Context, params *ec2.DeleteInstanceEventWindowInput, optFns ...func(*Options)) (*ec2.DeleteInstanceEventWindowOutput, error)
	// Deletes the specified internet gateway. You must detach the internet gateway
	// from the VPC before you can delete it.
	DeleteInternetGateway(ctx context.Context, params *ec2.DeleteInternetGatewayInput, optFns ...func(*Options)) (*ec2.DeleteInternetGatewayOutput, error)
	// Delete an IPAM. Deleting an IPAM removes all monitored data associated with the
	// IPAM including the historical data for CIDRs.
	//
	// For more information, see [Delete an IPAM] in the Amazon VPC IPAM User Guide.
	//
	// [Delete an IPAM]: https://docs.aws.amazon.com/vpc/latest/ipam/delete-ipam.html
	DeleteIpam(ctx context.Context, params *ec2.DeleteIpamInput, optFns ...func(*Options)) (*ec2.DeleteIpamOutput, error)
	// Delete a verification token.
	//
	// A verification token is an Amazon Web Services-generated random value that you
	// can use to prove ownership of an external resource. For example, you can use a
	// verification token to validate that you control a public IP address range when
	// you bring an IP address range to Amazon Web Services (BYOIP).
	DeleteIpamExternalResourceVerificationToken(ctx context.Context, params *ec2.DeleteIpamExternalResourceVerificationTokenInput, optFns ...func(*Options)) (*ec2.DeleteIpamExternalResourceVerificationTokenOutput, error)
	// Deletes an IPAM policy.
	//
	// An IPAM policy is a set of rules that define how public IPv4 addresses from
	// IPAM pools are allocated to Amazon Web Services resources. Each rule maps an
	// Amazon Web Services service to IPAM pools that the service will use to get IP
	// addresses. A single policy can have multiple rules and be applied to multiple
	// Amazon Web Services Regions. If the IPAM pool run out of addresses then the
	// services fallback to Amazon-provided IP addresses. A policy can be applied to an
	// individual Amazon Web Services account or an entity within Amazon Web Services
	// Organizations.
	DeleteIpamPolicy(ctx context.Context, params *ec2.DeleteIpamPolicyInput, optFns ...func(*Options)) (*ec2.DeleteIpamPolicyOutput, error)
	// Delete an IPAM pool.
	//
	// You cannot delete an IPAM pool if there are allocations in it or CIDRs
	// provisioned to it. To release allocations, see [ReleaseIpamPoolAllocation]. To deprovision pool CIDRs, see [DeprovisionIpamPoolCidr]
	// .
	//
	// For more information, see [Delete a pool] in the Amazon VPC IPAM User Guide.
	//
	// [ReleaseIpamPoolAllocation]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ReleaseIpamPoolAllocation.html
	// [Delete a pool]: https://docs.aws.amazon.com/vpc/latest/ipam/delete-pool-ipam.html
	// [DeprovisionIpamPoolCidr]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeprovisionIpamPoolCidr.html
	DeleteIpamPool(ctx context.Context, params *ec2.DeleteIpamPoolInput, optFns ...func(*Options)) (*ec2.DeleteIpamPoolOutput, error)
	// Deletes an IPAM prefix list resolver. Before deleting a resolver, you must
	// first delete all resolver targets associated with it.
	DeleteIpamPrefixListResolver(ctx context.Context, params *ec2.DeleteIpamPrefixListResolverInput, optFns ...func(*Options)) (*ec2.DeleteIpamPrefixListResolverOutput, error)
	// Deletes an IPAM prefix list resolver target. This removes the association
	// between the resolver and the managed prefix list, stopping automatic CIDR
	// synchronization.
	//
	// For more information about IPAM prefix list resolver, see [Automate prefix list updates with IPAM] in the Amazon VPC
	// IPAM User Guide.
	//
	// [Automate prefix list updates with IPAM]: https://docs.aws.amazon.com/vpc/latest/ipam/automate-prefix-list-updates.html
	DeleteIpamPrefixListResolverTarget(ctx context.Context, params *ec2.DeleteIpamPrefixListResolverTargetInput, optFns ...func(*Options)) (*ec2.DeleteIpamPrefixListResolverTargetOutput, error)
	// Deletes an IPAM resource discovery. A resource discovery is an IPAM component
	// that enables IPAM to manage and monitor resources that belong to the owning
	// account.
	DeleteIpamResourceDiscovery(ctx context.Context, params *ec2.DeleteIpamResourceDiscoveryInput, optFns ...func(*Options)) (*ec2.DeleteIpamResourceDiscoveryOutput, error)
	// Delete the scope for an IPAM. You cannot delete the default scopes.
	//
	// For more information, see [Delete a scope] in the Amazon VPC IPAM User Guide.
	//
	// [Delete a scope]: https://docs.aws.amazon.com/vpc/latest/ipam/delete-scope-ipam.html
	DeleteIpamScope(ctx context.Context, params *ec2.DeleteIpamScopeInput, optFns ...func(*Options)) (*ec2.DeleteIpamScopeOutput, error)
	// Deletes the specified key pair, by removing the public key from Amazon EC2.
	DeleteKeyPair(ctx context.Context, params *ec2.DeleteKeyPairInput, optFns ...func(*Options)) (*ec2.DeleteKeyPairOutput, error)
	// Deletes a launch template. Deleting a launch template deletes all of its
	// versions.
	DeleteLaunchTemplate(ctx context.Context, params *ec2.DeleteLaunchTemplateInput, optFns ...func(*Options)) (*ec2.DeleteLaunchTemplateOutput, error)
	// Deletes one or more versions of a launch template.
	//
	// You can't delete the default version of a launch template; you must first
	// assign a different version as the default. If the default version is the only
	// version for the launch template, you must delete the entire launch template
	// using DeleteLaunchTemplate.
	//
	// You can delete up to 200 launch template versions in a single request. To
	// delete more than 200 versions in a single request, use DeleteLaunchTemplate, which deletes the
	// launch template and all of its versions.
	//
	// For more information, see [Delete a launch template version] in the Amazon EC2 User Guide.
	//
	// [Delete a launch template version]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/delete-launch-template.html#delete-launch-template-version
	DeleteLaunchTemplateVersions(ctx context.Context, params *ec2.DeleteLaunchTemplateVersionsInput, optFns ...func(*Options)) (*ec2.DeleteLaunchTemplateVersionsOutput, error)
	// Deletes the specified route from the specified local gateway route table.
	DeleteLocalGatewayRoute(ctx context.Context, params *ec2.DeleteLocalGatewayRouteInput, optFns ...func(*Options)) (*ec2.DeleteLocalGatewayRouteOutput, error)
	// Deletes a local gateway route table.
	DeleteLocalGatewayRouteTable(ctx context.Context, params *ec2.DeleteLocalGatewayRouteTableInput, optFns ...func(*Options)) (*ec2.DeleteLocalGatewayRouteTableOutput, error)
	// Deletes a local gateway route table virtual interface group association.
	DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation(ctx context.Context, params *ec2.DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationInput, optFns ...func(*Options)) (*ec2.DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationOutput, error)
	// Deletes the specified association between a VPC and local gateway route table.
	DeleteLocalGatewayRouteTableVpcAssociation(ctx context.Context, params *ec2.DeleteLocalGatewayRouteTableVpcAssociationInput, optFns ...func(*Options)) (*ec2.DeleteLocalGatewayRouteTableVpcAssociationOutput, error)
	// Deletes the specified local gateway virtual interface.
	DeleteLocalGatewayVirtualInterface(ctx context.Context, params *ec2.DeleteLocalGatewayVirtualInterfaceInput, optFns ...func(*Options)) (*ec2.DeleteLocalGatewayVirtualInterfaceOutput, error)
	// Delete the specified local gateway interface group.
	DeleteLocalGatewayVirtualInterfaceGroup(ctx context.Context, params *ec2.DeleteLocalGatewayVirtualInterfaceGroupInput, optFns ...func(*Options)) (*ec2.DeleteLocalGatewayVirtualInterfaceGroupOutput, error)
	// Deletes the specified managed prefix list. You must first remove all references
	// to the prefix list in your resources.
	DeleteManagedPrefixList(ctx context.Context, params *ec2.DeleteManagedPrefixListInput, optFns ...func(*Options)) (*ec2.DeleteManagedPrefixListOutput, error)
	// Deletes the specified NAT gateway. Deleting a public NAT gateway disassociates
	// its Elastic IP address, but does not release the address from your account.
	// Deleting a NAT gateway does not delete any NAT gateway routes in your route
	// tables.
	DeleteNatGateway(ctx context.Context, params *ec2.DeleteNatGatewayInput, optFns ...func(*Options)) (*ec2.DeleteNatGatewayOutput, error)
	// Deletes the specified network ACL. You can't delete the ACL if it's associated
	// with any subnets. You can't delete the default network ACL.
	DeleteNetworkAcl(ctx context.Context, params *ec2.DeleteNetworkAclInput, optFns ...func(*Options)) (*ec2.DeleteNetworkAclOutput, error)
	// Deletes the specified ingress or egress entry (rule) from the specified network
	// ACL.
	DeleteNetworkAclEntry(ctx context.Context, params *ec2.DeleteNetworkAclEntryInput, optFns ...func(*Options)) (*ec2.DeleteNetworkAclEntryOutput, error)
	// Deletes the specified Network Access Scope.
	DeleteNetworkInsightsAccessScope(ctx context.Context, params *ec2.DeleteNetworkInsightsAccessScopeInput, optFns ...func(*Options)) (*ec2.DeleteNetworkInsightsAccessScopeOutput, error)
	// Deletes the specified Network Access Scope analysis.
	DeleteNetworkInsightsAccessScopeAnalysis(ctx context.Context, params *ec2.DeleteNetworkInsightsAccessScopeAnalysisInput, optFns ...func(*Options)) (*ec2.DeleteNetworkInsightsAccessScopeAnalysisOutput, error)
	// Deletes the specified network insights analysis.
	DeleteNetworkInsightsAnalysis(ctx context.Context, params *ec2.DeleteNetworkInsightsAnalysisInput, optFns ...func(*Options)) (*ec2.DeleteNetworkInsightsAnalysisOutput, error)
	// Deletes the specified path.
	DeleteNetworkInsightsPath(ctx context.Context, params *ec2.DeleteNetworkInsightsPathInput, optFns ...func(*Options)) (*ec2.DeleteNetworkInsightsPathOutput, error)
	// Deletes the specified network interface. You must detach the network interface
	// before you can delete it.
	DeleteNetworkInterface(ctx context.Context, params *ec2.DeleteNetworkInterfaceInput, optFns ...func(*Options)) (*ec2.DeleteNetworkInterfaceOutput, error)
	// Deletes a permission for a network interface. By default, you cannot delete the
	// permission if the account for which you're removing the permission has attached
	// the network interface to an instance. However, you can force delete the
	// permission, regardless of any attachment.
	DeleteNetworkInterfacePermission(ctx context.Context, params *ec2.DeleteNetworkInterfacePermissionInput, optFns ...func(*Options)) (*ec2.DeleteNetworkInterfacePermissionOutput, error)
	// Deletes the specified placement group. You must terminate all instances in the
	// placement group before you can delete the placement group. For more information,
	// see [Placement groups]in the Amazon EC2 User Guide.
	//
	// [Placement groups]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html
	DeletePlacementGroup(ctx context.Context, params *ec2.DeletePlacementGroupInput, optFns ...func(*Options)) (*ec2.DeletePlacementGroupOutput, error)
	// Delete a public IPv4 pool. A public IPv4 pool is an EC2 IP address pool
	// required for the public IPv4 CIDRs that you own and bring to Amazon Web Services
	// to manage with IPAM. IPv6 addresses you bring to Amazon Web Services, however,
	// use IPAM pools only.
	DeletePublicIpv4Pool(ctx context.Context, params *ec2.DeletePublicIpv4PoolInput, optFns ...func(*Options)) (*ec2.DeletePublicIpv4PoolOutput, error)
	// Deletes the queued purchases for the specified Reserved Instances.
	DeleteQueuedReservedInstances(ctx context.Context, params *ec2.DeleteQueuedReservedInstancesInput, optFns ...func(*Options)) (*ec2.DeleteQueuedReservedInstancesOutput, error)
	// Deletes the specified route from the specified route table.
	DeleteRoute(ctx context.Context, params *ec2.DeleteRouteInput, optFns ...func(*Options)) (*ec2.DeleteRouteOutput, error)
	// Deletes the specified route server.
	//
	// Amazon VPC Route Server simplifies routing for traffic between workloads that
	// are deployed within a VPC and its internet gateways. With this feature, VPC
	// Route Server dynamically updates VPC and internet gateway route tables with your
	// preferred IPv4 or IPv6 routes to achieve routing fault tolerance for those
	// workloads. This enables you to automatically reroute traffic within a VPC, which
	// increases the manageability of VPC routing and interoperability with third-party
	// workloads.
	//
	// Route server supports the follow route table types:
	//
	//   - VPC route tables not associated with subnets
	//
	//   - Subnet route tables
	//
	//   - Internet gateway route tables
	//
	// Route server does not support route tables associated with virtual private
	// gateways. To propagate routes into a transit gateway route table, use [Transit Gateway Connect].
	//
	// For more information see [Dynamic routing in your VPC with VPC Route Server] in the Amazon VPC User Guide.
	//
	// [Dynamic routing in your VPC with VPC Route Server]: https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html
	// [Transit Gateway Connect]: https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html
	DeleteRouteServer(ctx context.Context, params *ec2.DeleteRouteServerInput, optFns ...func(*Options)) (*ec2.DeleteRouteServerOutput, error)
	// Deletes the specified route server endpoint.
	//
	// A route server endpoint is an Amazon Web Services-managed component inside a
	// subnet that facilitates [BGP (Border Gateway Protocol)]connections between your route server and your BGP
	// peers.
	//
	// [BGP (Border Gateway Protocol)]: https://en.wikipedia.org/wiki/Border_Gateway_Protocol
	DeleteRouteServerEndpoint(ctx context.Context, params *ec2.DeleteRouteServerEndpointInput, optFns ...func(*Options)) (*ec2.DeleteRouteServerEndpointOutput, error)
	// Deletes the specified BGP peer from a route server.
	//
	// A route server peer is a session between a route server endpoint and the device
	// deployed in Amazon Web Services (such as a firewall appliance or other network
	// security function running on an EC2 instance). The device must meet these
	// requirements:
	//
	//   - Have an elastic network interface in the VPC
	//
	//   - Support BGP (Border Gateway Protocol)
	//
	//   - Can initiate BGP sessions
	DeleteRouteServerPeer(ctx context.Context, params *ec2.DeleteRouteServerPeerInput, optFns ...func(*Options)) (*ec2.DeleteRouteServerPeerOutput, error)
	// Deletes the specified route table. You must disassociate the route table from
	// any subnets before you can delete it. You can't delete the main route table.
	DeleteRouteTable(ctx context.Context, params *ec2.DeleteRouteTableInput, optFns ...func(*Options)) (*ec2.DeleteRouteTableOutput, error)
	// Deletes a secondary network. You must delete all secondary subnets in the
	// secondary network before you can delete the secondary network.
	DeleteSecondaryNetwork(ctx context.Context, params *ec2.DeleteSecondaryNetworkInput, optFns ...func(*Options)) (*ec2.DeleteSecondaryNetworkOutput, error)
	// Deletes a secondary subnet. A secondary subnet must not contain any secondary
	// interfaces prior to deletion.
	DeleteSecondarySubnet(ctx context.Context, params *ec2.DeleteSecondarySubnetInput, optFns ...func(*Options)) (*ec2.DeleteSecondarySubnetOutput, error)
	// Deletes a security group.
	//
	// If you attempt to delete a security group that is associated with an instance
	// or network interface, is referenced by another security group in the same VPC,
	// or has a VPC association, the operation fails with DependencyViolation .
	DeleteSecurityGroup(ctx context.Context, params *ec2.DeleteSecurityGroupInput, optFns ...func(*Options)) (*ec2.DeleteSecurityGroupOutput, error)
	// Deletes the specified snapshot.
	//
	// When you make periodic snapshots of a volume, the snapshots are incremental,
	// and only the blocks on the device that have changed since your last snapshot are
	// saved in the new snapshot. When you delete a snapshot, only the data not needed
	// for any other snapshot is removed. So regardless of which prior snapshots have
	// been deleted, all active snapshots will have access to all the information
	// needed to restore the volume.
	//
	// You cannot delete a snapshot of the root device of an EBS volume used by a
	// registered AMI. You must first deregister the AMI before you can delete the
	// snapshot.
	//
	// For more information, see [Delete an Amazon EBS snapshot] in the Amazon EBS User Guide.
	//
	// [Delete an Amazon EBS snapshot]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-deleting-snapshot.html
	DeleteSnapshot(ctx context.Context, params *ec2.DeleteSnapshotInput, optFns ...func(*Options)) (*ec2.DeleteSnapshotOutput, error)
	// Deletes the data feed for Spot Instances.
	DeleteSpotDatafeedSubscription(ctx context.Context, params *ec2.DeleteSpotDatafeedSubscriptionInput, optFns ...func(*Options)) (*ec2.DeleteSpotDatafeedSubscriptionOutput, error)
	// Deletes the specified subnet. You must terminate all running instances in the
	// subnet before you can delete the subnet.
	DeleteSubnet(ctx context.Context, params *ec2.DeleteSubnetInput, optFns ...func(*Options)) (*ec2.DeleteSubnetOutput, error)
	// Deletes a subnet CIDR reservation.
	DeleteSubnetCidrReservation(ctx context.Context, params *ec2.DeleteSubnetCidrReservationInput, optFns ...func(*Options)) (*ec2.DeleteSubnetCidrReservationOutput, error)
	// Deletes the specified set of tags from the specified set of resources.
	//
	// To list the current tags, use DescribeTags. For more information about tags, see [Tag your Amazon EC2 resources] in the
	// Amazon Elastic Compute Cloud User Guide.
	//
	// [Tag your Amazon EC2 resources]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html
	DeleteTags(ctx context.Context, params *ec2.DeleteTagsInput, optFns ...func(*Options)) (*ec2.DeleteTagsOutput, error)
	// Deletes the specified Traffic Mirror filter.
	//
	// You cannot delete a Traffic Mirror filter that is in use by a Traffic Mirror
	// session.
	DeleteTrafficMirrorFilter(ctx context.Context, params *ec2.DeleteTrafficMirrorFilterInput, optFns ...func(*Options)) (*ec2.DeleteTrafficMirrorFilterOutput, error)
	// Deletes the specified Traffic Mirror rule.
	DeleteTrafficMirrorFilterRule(ctx context.Context, params *ec2.DeleteTrafficMirrorFilterRuleInput, optFns ...func(*Options)) (*ec2.DeleteTrafficMirrorFilterRuleOutput, error)
	// Deletes the specified Traffic Mirror session.
	DeleteTrafficMirrorSession(ctx context.Context, params *ec2.DeleteTrafficMirrorSessionInput, optFns ...func(*Options)) (*ec2.DeleteTrafficMirrorSessionOutput, error)
	// Deletes the specified Traffic Mirror target.
	//
	// You cannot delete a Traffic Mirror target that is in use by a Traffic Mirror
	// session.
	DeleteTrafficMirrorTarget(ctx context.Context, params *ec2.DeleteTrafficMirrorTargetInput, optFns ...func(*Options)) (*ec2.DeleteTrafficMirrorTargetOutput, error)
	// Deletes the specified transit gateway.
	DeleteTransitGateway(ctx context.Context, params *ec2.DeleteTransitGatewayInput, optFns ...func(*Options)) (*ec2.DeleteTransitGatewayOutput, error)
	// Deletes the specified Connect attachment. You must first delete any Connect
	// peers for the attachment.
	DeleteTransitGatewayConnect(ctx context.Context, params *ec2.DeleteTransitGatewayConnectInput, optFns ...func(*Options)) (*ec2.DeleteTransitGatewayConnectOutput, error)
	// Deletes the specified Connect peer.
	DeleteTransitGatewayConnectPeer(ctx context.Context, params *ec2.DeleteTransitGatewayConnectPeerInput, optFns ...func(*Options)) (*ec2.DeleteTransitGatewayConnectPeerOutput, error)
	// Deletes a transit gateway metering policy.
	DeleteTransitGatewayMeteringPolicy(ctx context.Context, params *ec2.DeleteTransitGatewayMeteringPolicyInput, optFns ...func(*Options)) (*ec2.DeleteTransitGatewayMeteringPolicyOutput, error)
	// Deletes an entry from a transit gateway metering policy.
	DeleteTransitGatewayMeteringPolicyEntry(ctx context.Context, params *ec2.DeleteTransitGatewayMeteringPolicyEntryInput, optFns ...func(*Options)) (*ec2.DeleteTransitGatewayMeteringPolicyEntryOutput, error)
	// Deletes the specified transit gateway multicast domain.
	DeleteTransitGatewayMulticastDomain(ctx context.Context, params *ec2.DeleteTransitGatewayMulticastDomainInput, optFns ...func(*Options)) (*ec2.DeleteTransitGatewayMulticastDomainOutput, error)
	// Deletes a transit gateway peering attachment.
	DeleteTransitGatewayPeeringAttachment(ctx context.Context, params *ec2.DeleteTransitGatewayPeeringAttachmentInput, optFns ...func(*Options)) (*ec2.DeleteTransitGatewayPeeringAttachmentOutput, error)
	// Deletes the specified transit gateway policy table.
	DeleteTransitGatewayPolicyTable(ctx context.Context, params *ec2.DeleteTransitGatewayPolicyTableInput, optFns ...func(*Options)) (*ec2.DeleteTransitGatewayPolicyTableOutput, error)
	// Deletes a reference (route) to a prefix list in a specified transit gateway
	// route table.
	DeleteTransitGatewayPrefixListReference(ctx context.Context, params *ec2.DeleteTransitGatewayPrefixListReferenceInput, optFns ...func(*Options)) (*ec2.DeleteTransitGatewayPrefixListReferenceOutput, error)
	// Deletes the specified route from the specified transit gateway route table.
	DeleteTransitGatewayRoute(ctx context.Context, params *ec2.DeleteTransitGatewayRouteInput, optFns ...func(*Options)) (*ec2.DeleteTransitGatewayRouteOutput, error)
	// Deletes the specified transit gateway route table. If there are any route
	// tables associated with the transit gateway route table, you must first run DisassociateRouteTable
	// before you can delete the transit gateway route table. This removes any route
	// tables associated with the transit gateway route table.
	DeleteTransitGatewayRouteTable(ctx context.Context, params *ec2.DeleteTransitGatewayRouteTableInput, optFns ...func(*Options)) (*ec2.DeleteTransitGatewayRouteTableOutput, error)
	// Advertises to the transit gateway that a transit gateway route table is deleted.
	DeleteTransitGatewayRouteTableAnnouncement(ctx context.Context, params *ec2.DeleteTransitGatewayRouteTableAnnouncementInput, optFns ...func(*Options)) (*ec2.DeleteTransitGatewayRouteTableAnnouncementOutput, error)
	// Deletes the specified VPC attachment.
	DeleteTransitGatewayVpcAttachment(ctx context.Context, params *ec2.DeleteTransitGatewayVpcAttachmentInput, optFns ...func(*Options)) (*ec2.DeleteTransitGatewayVpcAttachmentOutput, error)
	// Delete an Amazon Web Services Verified Access endpoint.
	DeleteVerifiedAccessEndpoint(ctx context.Context, params *ec2.DeleteVerifiedAccessEndpointInput, optFns ...func(*Options)) (*ec2.DeleteVerifiedAccessEndpointOutput, error)
	// Delete an Amazon Web Services Verified Access group.
	DeleteVerifiedAccessGroup(ctx context.Context, params *ec2.DeleteVerifiedAccessGroupInput, optFns ...func(*Options)) (*ec2.DeleteVerifiedAccessGroupOutput, error)
	// Delete an Amazon Web Services Verified Access instance.
	DeleteVerifiedAccessInstance(ctx context.Context, params *ec2.DeleteVerifiedAccessInstanceInput, optFns ...func(*Options)) (*ec2.DeleteVerifiedAccessInstanceOutput, error)
	// Delete an Amazon Web Services Verified Access trust provider.
	DeleteVerifiedAccessTrustProvider(ctx context.Context, params *ec2.DeleteVerifiedAccessTrustProviderInput, optFns ...func(*Options)) (*ec2.DeleteVerifiedAccessTrustProviderOutput, error)
	// Deletes the specified EBS volume. The volume must be in the available state
	// (not attached to an instance).
	//
	// The volume can remain in the deleting state for several minutes.
	//
	// For more information, see [Delete an Amazon EBS volume] in the Amazon EBS User Guide.
	//
	// [Delete an Amazon EBS volume]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-deleting-volume.html
	DeleteVolume(ctx context.Context, params *ec2.DeleteVolumeInput, optFns ...func(*Options)) (*ec2.DeleteVolumeOutput, error)
	// Deletes the specified VPC. You must detach or delete all gateways and resources
	// that are associated with the VPC before you can delete it. For example, you must
	// terminate all instances running in the VPC, delete all security groups
	// associated with the VPC (except the default one), delete all route tables
	// associated with the VPC (except the default one), and so on. When you delete the
	// VPC, it deletes the default security group, network ACL, and route table for the
	// VPC.
	//
	// If you created a flow log for the VPC that you are deleting, note that flow
	// logs for deleted VPCs are eventually automatically removed.
	DeleteVpc(ctx context.Context, params *ec2.DeleteVpcInput, optFns ...func(*Options)) (*ec2.DeleteVpcOutput, error)
	// Delete a VPC Block Public Access (BPA) exclusion. A VPC BPA exclusion is a mode
	// that can be applied to a single VPC or subnet that exempts it from the account’s
	// BPA mode and will allow bidirectional or egress-only access. You can create BPA
	// exclusions for VPCs and subnets even when BPA is not enabled on the account to
	// ensure that there is no traffic disruption to the exclusions when VPC BPA is
	// turned on. To learn more about VPC BPA, see [Block public access to VPCs and subnets]in the Amazon VPC User Guide.
	//
	// [Block public access to VPCs and subnets]: https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html
	DeleteVpcBlockPublicAccessExclusion(ctx context.Context, params *ec2.DeleteVpcBlockPublicAccessExclusionInput, optFns ...func(*Options)) (*ec2.DeleteVpcBlockPublicAccessExclusionOutput, error)
	// Deletes a VPC Encryption Control configuration. This removes the encryption
	// policy enforcement from the specified VPC.
	//
	// For more information, see [Enforce VPC encryption in transit] in the Amazon VPC User Guide.
	//
	// [Enforce VPC encryption in transit]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html
	DeleteVpcEncryptionControl(ctx context.Context, params *ec2.DeleteVpcEncryptionControlInput, optFns ...func(*Options)) (*ec2.DeleteVpcEncryptionControlOutput, error)
	// Deletes the specified VPC endpoint connection notifications.
	DeleteVpcEndpointConnectionNotifications(ctx context.Context, params *ec2.DeleteVpcEndpointConnectionNotificationsInput, optFns ...func(*Options)) (*ec2.DeleteVpcEndpointConnectionNotificationsOutput, error)
	// Deletes the specified VPC endpoint service configurations. Before you can
	// delete an endpoint service configuration, you must reject any Available or
	// PendingAcceptance interface endpoint connections that are attached to the
	// service.
	DeleteVpcEndpointServiceConfigurations(ctx context.Context, params *ec2.DeleteVpcEndpointServiceConfigurationsInput, optFns ...func(*Options)) (*ec2.DeleteVpcEndpointServiceConfigurationsOutput, error)
	// Deletes the specified VPC endpoints.
	//
	// When you delete a gateway endpoint, we delete the endpoint routes in the route
	// tables for the endpoint.
	//
	// When you delete a Gateway Load Balancer endpoint, we delete its endpoint
	// network interfaces. You can only delete Gateway Load Balancer endpoints when the
	// routes that are associated with the endpoint are deleted.
	//
	// When you delete an interface endpoint, we delete its endpoint network
	// interfaces.
	DeleteVpcEndpoints(ctx context.Context, params *ec2.DeleteVpcEndpointsInput, optFns ...func(*Options)) (*ec2.DeleteVpcEndpointsOutput, error)
	// Deletes a VPC peering connection. Either the owner of the requester VPC or the
	// owner of the accepter VPC can delete the VPC peering connection if it's in the
	// active state. The owner of the requester VPC can delete a VPC peering connection
	// in the pending-acceptance state. You cannot delete a VPC peering connection
	// that's in the failed or rejected state.
	DeleteVpcPeeringConnection(ctx context.Context, params *ec2.DeleteVpcPeeringConnectionInput, optFns ...func(*Options)) (*ec2.DeleteVpcPeeringConnectionOutput, error)
	// Deletes the specified VPN concentrator.
	DeleteVpnConcentrator(ctx context.Context, params *ec2.DeleteVpnConcentratorInput, optFns ...func(*Options)) (*ec2.DeleteVpnConcentratorOutput, error)
	// Deletes the specified VPN connection.
	//
	// If you're deleting the VPC and its associated components, we recommend that you
	// detach the virtual private gateway from the VPC and delete the VPC before
	// deleting the VPN connection. If you believe that the tunnel credentials for your
	// VPN connection have been compromised, you can delete the VPN connection and
	// create a new one that has new keys, without needing to delete the VPC or virtual
	// private gateway. If you create a new VPN connection, you must reconfigure the
	// customer gateway device using the new configuration information returned with
	// the new VPN connection ID.
	//
	// For certificate-based authentication, delete all Certificate Manager (ACM)
	// private certificates used for the Amazon Web Services-side tunnel endpoints for
	// the VPN connection before deleting the VPN connection.
	DeleteVpnConnection(ctx context.Context, params *ec2.DeleteVpnConnectionInput, optFns ...func(*Options)) (*ec2.DeleteVpnConnectionOutput, error)
	// Deletes the specified static route associated with a VPN connection between an
	// existing virtual private gateway and a VPN customer gateway. The static route
	// allows traffic to be routed from the virtual private gateway to the VPN customer
	// gateway.
	DeleteVpnConnectionRoute(ctx context.Context, params *ec2.DeleteVpnConnectionRouteInput, optFns ...func(*Options)) (*ec2.DeleteVpnConnectionRouteOutput, error)
	// Deletes the specified virtual private gateway. You must first detach the
	// virtual private gateway from the VPC. Note that you don't need to delete the
	// virtual private gateway if you plan to delete and recreate the VPN connection
	// between your VPC and your network.
	DeleteVpnGateway(ctx context.Context, params *ec2.DeleteVpnGatewayInput, optFns ...func(*Options)) (*ec2.DeleteVpnGatewayOutput, error)
	// Releases the specified address range that you provisioned for use with your
	// Amazon Web Services resources through bring your own IP addresses (BYOIP) and
	// deletes the corresponding address pool.
	//
	// Before you can release an address range, you must stop advertising it and you
	// must not have any IP addresses allocated from its address range.
	DeprovisionByoipCidr(ctx context.Context, params *ec2.DeprovisionByoipCidrInput, optFns ...func(*Options)) (*ec2.DeprovisionByoipCidrOutput, error)
	// Deprovisions your Autonomous System Number (ASN) from your Amazon Web Services
	// account. This action can only be called after any BYOIP CIDR associations are
	// removed from your Amazon Web Services account with [DisassociateIpamByoasn]. For more information, see [Tutorial: Bring your ASN to IPAM]
	// in the Amazon VPC IPAM guide.
	//
	// [DisassociateIpamByoasn]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateIpamByoasn.html
	// [Tutorial: Bring your ASN to IPAM]: https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoasn.html
	DeprovisionIpamByoasn(ctx context.Context, params *ec2.DeprovisionIpamByoasnInput, optFns ...func(*Options)) (*ec2.DeprovisionIpamByoasnOutput, error)
	// Deprovision a CIDR provisioned from an IPAM pool. If you deprovision a CIDR
	// from a pool that has a source pool, the CIDR is recycled back into the source
	// pool. For more information, see [Deprovision pool CIDRs]in the Amazon VPC IPAM User Guide.
	//
	// [Deprovision pool CIDRs]: https://docs.aws.amazon.com/vpc/latest/ipam/depro-pool-cidr-ipam.html
	DeprovisionIpamPoolCidr(ctx context.Context, params *ec2.DeprovisionIpamPoolCidrInput, optFns ...func(*Options)) (*ec2.DeprovisionIpamPoolCidrOutput, error)
	// Deprovision a CIDR from a public IPv4 pool.
	DeprovisionPublicIpv4PoolCidr(ctx context.Context, params *ec2.DeprovisionPublicIpv4PoolCidrInput, optFns ...func(*Options)) (*ec2.DeprovisionPublicIpv4PoolCidrOutput, error)
	// Deregisters the specified AMI. A deregistered AMI can't be used to launch new
	// instances.
	//
	// If a deregistered EBS-backed AMI matches a Recycle Bin retention rule, it moves
	// to the Recycle Bin for the specified retention period. It can be restored before
	// its retention period expires, after which it is permanently deleted. If the
	// deregistered AMI doesn't match a retention rule, it is permanently deleted
	// immediately. For more information, see [Recover deleted Amazon EBS snapshots and EBS-backed AMIs with Recycle Bin]in the Amazon EBS User Guide.
	//
	// When deregistering an EBS-backed AMI, you can optionally delete its associated
	// snapshots at the same time. However, if a snapshot is associated with multiple
	// AMIs, it won't be deleted even if specified for deletion, although the AMI will
	// still be deregistered.
	//
	// Deregistering an AMI does not delete the following:
	//
	//   - Instances already launched from the AMI. You'll continue to incur usage
	//     costs for the instances until you terminate them.
	//
	//   - For EBS-backed AMIs: Snapshots that are associated with multiple AMIs.
	//     You'll continue to incur snapshot storage costs.
	//
	//   - For instance store-backed AMIs: The files uploaded to Amazon S3 during AMI
	//     creation. You'll continue to incur S3 storage costs.
	//
	// For more information, see [Deregister an Amazon EC2 AMI] in the Amazon EC2 User Guide.
	//
	// [Deregister an Amazon EC2 AMI]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/deregister-ami.html
	// [Recover deleted Amazon EBS snapshots and EBS-backed AMIs with Recycle Bin]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recycle-bin.html
	DeregisterImage(ctx context.Context, params *ec2.DeregisterImageInput, optFns ...func(*Options)) (*ec2.DeregisterImageOutput, error)
	// Deregisters tag keys to prevent tags that have the specified tag keys from
	// being included in scheduled event notifications for resources in the Region.
	DeregisterInstanceEventNotificationAttributes(ctx context.Context, params *ec2.DeregisterInstanceEventNotificationAttributesInput, optFns ...func(*Options)) (*ec2.DeregisterInstanceEventNotificationAttributesOutput, error)
	// Deregisters the specified members (network interfaces) from the transit gateway
	// multicast group.
	DeregisterTransitGatewayMulticastGroupMembers(ctx context.Context, params *ec2.DeregisterTransitGatewayMulticastGroupMembersInput, optFns ...func(*Options)) (*ec2.DeregisterTransitGatewayMulticastGroupMembersOutput, error)
	// Deregisters the specified sources (network interfaces) from the transit gateway
	// multicast group.
	DeregisterTransitGatewayMulticastGroupSources(ctx context.Context, params *ec2.DeregisterTransitGatewayMulticastGroupSourcesInput, optFns ...func(*Options)) (*ec2.DeregisterTransitGatewayMulticastGroupSourcesOutput, error)
	// Describes attributes of your Amazon Web Services account. The following are the
	// supported account attributes:
	//
	//   - default-vpc : The ID of the default VPC for your account, or none .
	//
	//   - max-instances : This attribute is no longer supported. The returned value
	//     does not reflect your actual vCPU limit for running On-Demand Instances. For
	//     more information, see [On-Demand Instance Limits]in the Amazon Elastic Compute Cloud User Guide.
	//
	//   - max-elastic-ips : The maximum number of Elastic IP addresses that you can
	//     allocate.
	//
	//   - supported-platforms : This attribute is deprecated.
	//
	//   - vpc-max-elastic-ips : The maximum number of Elastic IP addresses that you
	//     can allocate.
	//
	//   - vpc-max-security-groups-per-interface : The maximum number of security
	//     groups that you can assign to a network interface.
	//
	// The order of the elements in the response, including those within nested
	// structures, might vary. Applications should not assume the elements appear in a
	// particular order.
	//
	// [On-Demand Instance Limits]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-on-demand-instances.html#ec2-on-demand-instances-limits
	DescribeAccountAttributes(ctx context.Context, params *ec2.DescribeAccountAttributesInput, optFns ...func(*Options)) (*ec2.DescribeAccountAttributesOutput, error)
	// Describes an Elastic IP address transfer. For more information, see [Transfer Elastic IP addresses] in the
	// Amazon VPC User Guide.
	//
	// When you transfer an Elastic IP address, there is a two-step handshake between
	// the source and transfer Amazon Web Services accounts. When the source account
	// starts the transfer, the transfer account has seven days to accept the Elastic
	// IP address transfer. During those seven days, the source account can view the
	// pending transfer by using this action. After seven days, the transfer expires
	// and ownership of the Elastic IP address returns to the source account. Accepted
	// transfers are visible to the source account for 14 days after the transfers have
	// been accepted.
	//
	// [Transfer Elastic IP addresses]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro
	DescribeAddressTransfers(ctx context.Context, params *ec2.DescribeAddressTransfersInput, optFns ...func(*Options)) (*ec2.DescribeAddressTransfersOutput, error)
	// Describes the specified Elastic IP addresses or all of your Elastic IP
	// addresses.
	DescribeAddresses(ctx context.Context, params *ec2.DescribeAddressesInput, optFns ...func(*Options)) (*ec2.DescribeAddressesOutput, error)
	// Describes the attributes of the specified Elastic IP addresses. For
	// requirements, see [Using reverse DNS for email applications].
	//
	// [Using reverse DNS for email applications]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS
	DescribeAddressesAttribute(ctx context.Context, params *ec2.DescribeAddressesAttributeInput, optFns ...func(*Options)) (*ec2.DescribeAddressesAttributeOutput, error)
	// Describes the longer ID format settings for all resource types in a specific
	// Region. This request is useful for performing a quick audit to determine whether
	// a specific Region is fully opted in for longer IDs (17-character IDs).
	//
	// This request only returns information about resource types that support longer
	// IDs.
	//
	// The following resource types support longer IDs: bundle | conversion-task |
	// customer-gateway | dhcp-options | elastic-ip-allocation | elastic-ip-association
	// | export-task | flow-log | image | import-task | instance | internet-gateway |
	// network-acl | network-acl-association | network-interface |
	// network-interface-attachment | prefix-list | reservation | route-table |
	// route-table-association | security-group | snapshot | subnet |
	// subnet-cidr-block-association | volume | vpc | vpc-cidr-block-association |
	// vpc-endpoint | vpc-peering-connection | vpn-connection | vpn-gateway .
	DescribeAggregateIdFormat(ctx context.Context, params *ec2.DescribeAggregateIdFormatInput, optFns ...func(*Options)) (*ec2.DescribeAggregateIdFormatOutput, error)
	// Describes the Availability Zones, Local Zones, and Wavelength Zones that are
	// available to you.
	//
	// For more information about Availability Zones, Local Zones, and Wavelength
	// Zones, see [Regions and zones]in the Amazon EC2 User Guide.
	//
	// The order of the elements in the response, including those within nested
	// structures, might vary. Applications should not assume the elements appear in a
	// particular order.
	//
	// [Regions and zones]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
	DescribeAvailabilityZones(ctx context.Context, params *ec2.DescribeAvailabilityZonesInput, optFns ...func(*Options)) (*ec2.DescribeAvailabilityZonesOutput, error)
	// Describes the current Infrastructure Performance metric subscriptions.
	DescribeAwsNetworkPerformanceMetricSubscriptions(ctx context.Context, params *ec2.DescribeAwsNetworkPerformanceMetricSubscriptionsInput, optFns ...func(*Options)) (*ec2.DescribeAwsNetworkPerformanceMetricSubscriptionsOutput, error)
	// Describes the specified bundle tasks or all of your bundle tasks.
	//
	// Completed bundle tasks are listed for only a limited time. If your bundle task
	// is no longer in the list, you can still register an AMI from it. Just use
	// RegisterImage with the Amazon S3 bucket name and image manifest name you
	// provided to the bundle task.
	//
	// The order of the elements in the response, including those within nested
	// structures, might vary. Applications should not assume the elements appear in a
	// particular order.
	DescribeBundleTasks(ctx context.Context, params *ec2.DescribeBundleTasksInput, optFns ...func(*Options)) (*ec2.DescribeBundleTasksOutput, error)
	// Describes the IP address ranges that were provisioned for use with Amazon Web
	// Services resources through through bring your own IP addresses (BYOIP).
	DescribeByoipCidrs(ctx context.Context, params *ec2.DescribeByoipCidrsInput, optFns ...func(*Options)) (*ec2.DescribeByoipCidrsOutput, error)
	// Describes the events for the specified Capacity Block extension during the
	// specified time.
	DescribeCapacityBlockExtensionHistory(ctx context.Context, params *ec2.DescribeCapacityBlockExtensionHistoryInput, optFns ...func(*Options)) (*ec2.DescribeCapacityBlockExtensionHistoryOutput, error)
	// Describes Capacity Block extension offerings available for purchase in the
	// Amazon Web Services Region that you're currently using.
	DescribeCapacityBlockExtensionOfferings(ctx context.Context, params *ec2.DescribeCapacityBlockExtensionOfferingsInput, optFns ...func(*Options)) (*ec2.DescribeCapacityBlockExtensionOfferingsOutput, error)
	// Describes Capacity Block offerings available for purchase in the Amazon Web
	// Services Region that you're currently using. With Capacity Blocks, you can
	// purchase a specific GPU instance type or EC2 UltraServer for a period of time.
	//
	// To search for an available Capacity Block offering, you specify a reservation
	// duration and instance count.
	DescribeCapacityBlockOfferings(ctx context.Context, params *ec2.DescribeCapacityBlockOfferingsInput, optFns ...func(*Options)) (*ec2.DescribeCapacityBlockOfferingsOutput, error)
	// Describes the availability of capacity for the specified Capacity blocks, or
	// all of your Capacity Blocks.
	DescribeCapacityBlockStatus(ctx context.Context, params *ec2.DescribeCapacityBlockStatusInput, optFns ...func(*Options)) (*ec2.DescribeCapacityBlockStatusOutput, error)
	// Describes details about Capacity Blocks in the Amazon Web Services Region that
	// you're currently using.
	DescribeCapacityBlocks(ctx context.Context, params *ec2.DescribeCapacityBlocksInput, optFns ...func(*Options)) (*ec2.DescribeCapacityBlocksOutput, error)
	//	Describes one or more Capacity Manager data export configurations. Returns
	//
	// information about export settings, delivery status, and recent export activity.
	DescribeCapacityManagerDataExports(ctx context.Context, params *ec2.DescribeCapacityManagerDataExportsInput, optFns ...func(*Options)) (*ec2.DescribeCapacityManagerDataExportsOutput, error)
	// Describes a request to assign the billing of the unused capacity of a Capacity
	// Reservation. For more information, see [Billing assignment for shared Amazon EC2 Capacity Reservations].
	//
	// [Billing assignment for shared Amazon EC2 Capacity Reservations]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/transfer-billing.html
	DescribeCapacityReservationBillingRequests(ctx context.Context, params *ec2.DescribeCapacityReservationBillingRequestsInput, optFns ...func(*Options)) (*ec2.DescribeCapacityReservationBillingRequestsOutput, error)
	// Describes one or more Capacity Reservation Fleets.
	DescribeCapacityReservationFleets(ctx context.Context, params *ec2.DescribeCapacityReservationFleetsInput, optFns ...func(*Options)) (*ec2.DescribeCapacityReservationFleetsOutput, error)
	// Describes a tree-based hierarchy that represents the physical host placement of
	// your pending or active Capacity Reservations within an Availability Zone or
	// Local Zone. You can use this information to determine the relative proximity of
	// your capacity within the Amazon Web Services network before it is launched and
	// use this information to allocate capacity together to support your tightly
	// coupled workloads.
	//
	// Capacity Reservation topology is supported for specific instance types only.
	// For more information, see [Prerequisites for Amazon EC2 instance topology]in the Amazon EC2 User Guide.
	//
	// The Amazon EC2 API follows an eventual consistency model due to the distributed
	// nature of the system supporting it. As a result, when you call the
	// DescribeCapacityReservationTopology API command immediately after launching
	// instances, the response might return a null value for capacityBlockId because
	// the data might not have fully propagated across all subsystems. For more
	// information, see [Eventual consistency in the Amazon EC2 API]in the Amazon EC2 Developer Guide.
	//
	// For more information, see [Amazon EC2 topology] in the Amazon EC2 User Guide.
	//
	// [Prerequisites for Amazon EC2 instance topology]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-topology-prerequisites.html
	// [Amazon EC2 topology]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-topology.html
	// [Eventual consistency in the Amazon EC2 API]: https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html
	DescribeCapacityReservationTopology(ctx context.Context, params *ec2.DescribeCapacityReservationTopologyInput, optFns ...func(*Options)) (*ec2.DescribeCapacityReservationTopologyOutput, error)
	// Describes one or more of your Capacity Reservations. The results describe only
	// the Capacity Reservations in the Amazon Web Services Region that you're
	// currently using.
	DescribeCapacityReservations(ctx context.Context, params *ec2.DescribeCapacityReservationsInput, optFns ...func(*Options)) (*ec2.DescribeCapacityReservationsOutput, error)
	// Describes one or more of your carrier gateways.
	DescribeCarrierGateways(ctx context.Context, params *ec2.DescribeCarrierGatewaysInput, optFns ...func(*Options)) (*ec2.DescribeCarrierGatewaysOutput, error)
	// This action is deprecated.
	//
	// Describes your linked EC2-Classic instances. This request only returns
	// information about EC2-Classic instances linked to a VPC through ClassicLink. You
	// cannot use this request to return information about other instances.
	DescribeClassicLinkInstances(ctx context.Context, params *ec2.DescribeClassicLinkInstancesInput, optFns ...func(*Options)) (*ec2.DescribeClassicLinkInstancesOutput, error)
	// Describes the authorization rules for a specified Client VPN endpoint.
	DescribeClientVpnAuthorizationRules(ctx context.Context, params *ec2.DescribeClientVpnAuthorizationRulesInput, optFns ...func(*Options)) (*ec2.DescribeClientVpnAuthorizationRulesOutput, error)
	// Describes active client connections and connections that have been terminated
	// within the last 60 minutes for the specified Client VPN endpoint.
	DescribeClientVpnConnections(ctx context.Context, params *ec2.DescribeClientVpnConnectionsInput, optFns ...func(*Options)) (*ec2.DescribeClientVpnConnectionsOutput, error)
	// Describes one or more Client VPN endpoints in the account.
	DescribeClientVpnEndpoints(ctx context.Context, params *ec2.DescribeClientVpnEndpointsInput, optFns ...func(*Options)) (*ec2.DescribeClientVpnEndpointsOutput, error)
	// Describes the routes for the specified Client VPN endpoint.
	DescribeClientVpnRoutes(ctx context.Context, params *ec2.DescribeClientVpnRoutesInput, optFns ...func(*Options)) (*ec2.DescribeClientVpnRoutesOutput, error)
	// Describes the target networks associated with the specified Client VPN endpoint.
	DescribeClientVpnTargetNetworks(ctx context.Context, params *ec2.DescribeClientVpnTargetNetworksInput, optFns ...func(*Options)) (*ec2.DescribeClientVpnTargetNetworksOutput, error)
	// Describes the specified customer-owned address pools or all of your
	// customer-owned address pools.
	DescribeCoipPools(ctx context.Context, params *ec2.DescribeCoipPoolsInput, optFns ...func(*Options)) (*ec2.DescribeCoipPoolsOutput, error)
	// Describes the specified conversion tasks or all your conversion tasks. For more
	// information, see the [VM Import/Export User Guide].
	//
	// For information about the import manifest referenced by this API action, see [VM Import Manifest].
	//
	// [VM Import Manifest]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html
	// [VM Import/Export User Guide]: https://docs.aws.amazon.com/vm-import/latest/userguide/
	DescribeConversionTasks(ctx context.Context, params *ec2.DescribeConversionTasksInput, optFns ...func(*Options)) (*ec2.DescribeConversionTasksOutput, error)
	// Describes one or more of your VPN customer gateways.
	//
	// For more information, see [Amazon Web Services Site-to-Site VPN] in the Amazon Web Services Site-to-Site VPN User
	// Guide.
	//
	// [Amazon Web Services Site-to-Site VPN]: https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html
	DescribeCustomerGateways(ctx context.Context, params *ec2.DescribeCustomerGatewaysInput, optFns ...func(*Options)) (*ec2.DescribeCustomerGatewaysOutput, error)
	// Describes the metadata of an account status report, including the status of the
	// report.
	//
	// To view the full report, download it from the Amazon S3 bucket where it was
	// saved. Reports are accessible only when they have the complete status. Reports
	// with other statuses ( running , cancelled , or error ) are not available in the
	// S3 bucket. For more information about downloading objects from an S3 bucket, see
	// [Downloading objects]in the Amazon Simple Storage Service User Guide.
	//
	// For more information, see [Generating the account status report for declarative policies] in the Amazon Web Services Organizations User Guide.
	//
	// [Downloading objects]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html
	// [Generating the account status report for declarative policies]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative_status-report.html
	DescribeDeclarativePoliciesReports(ctx context.Context, params *ec2.DescribeDeclarativePoliciesReportsInput, optFns ...func(*Options)) (*ec2.DescribeDeclarativePoliciesReportsOutput, error)
	// Describes your DHCP option sets. The default is to describe all your DHCP
	// option sets. Alternatively, you can specify specific DHCP option set IDs or
	// filter the results to include only the DHCP option sets that match specific
	// criteria.
	//
	// For more information, see [DHCP option sets] in the Amazon VPC User Guide.
	//
	// [DHCP option sets]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html
	DescribeDhcpOptions(ctx context.Context, params *ec2.DescribeDhcpOptionsInput, optFns ...func(*Options)) (*ec2.DescribeDhcpOptionsOutput, error)
	// Describes your egress-only internet gateways. The default is to describe all
	// your egress-only internet gateways. Alternatively, you can specify specific
	// egress-only internet gateway IDs or filter the results to include only the
	// egress-only internet gateways that match specific criteria.
	DescribeEgressOnlyInternetGateways(ctx context.Context, params *ec2.DescribeEgressOnlyInternetGatewaysInput, optFns ...func(*Options)) (*ec2.DescribeEgressOnlyInternetGatewaysOutput, error)
	// Amazon Elastic Graphics reached end of life on January 8, 2024.
	//
	// Describes the Elastic Graphics accelerator associated with your instances.
	DescribeElasticGpus(ctx context.Context, params *ec2.DescribeElasticGpusInput, optFns ...func(*Options)) (*ec2.DescribeElasticGpusOutput, error)
	// Describes the specified export image tasks or all of your export image tasks.
	DescribeExportImageTasks(ctx context.Context, params *ec2.DescribeExportImageTasksInput, optFns ...func(*Options)) (*ec2.DescribeExportImageTasksOutput, error)
	// Describes the specified export instance tasks or all of your export instance
	// tasks.
	DescribeExportTasks(ctx context.Context, params *ec2.DescribeExportTasksInput, optFns ...func(*Options)) (*ec2.DescribeExportTasksOutput, error)
	// Describe details for Windows AMIs that are configured for Windows fast launch.
	DescribeFastLaunchImages(ctx context.Context, params *ec2.DescribeFastLaunchImagesInput, optFns ...func(*Options)) (*ec2.DescribeFastLaunchImagesOutput, error)
	// Describes the state of fast snapshot restores for your snapshots.
	DescribeFastSnapshotRestores(ctx context.Context, params *ec2.DescribeFastSnapshotRestoresInput, optFns ...func(*Options)) (*ec2.DescribeFastSnapshotRestoresOutput, error)
	// Describes the events for the specified EC2 Fleet during the specified time.
	//
	// EC2 Fleet events are delayed by up to 30 seconds before they can be described.
	// This ensures that you can query by the last evaluated time and not miss a
	// recorded event. EC2 Fleet events are available for 48 hours.
	//
	// For more information, see [Monitor fleet events using Amazon EventBridge] in the Amazon EC2 User Guide.
	//
	// [Monitor fleet events using Amazon EventBridge]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fleet-monitor.html
	DescribeFleetHistory(ctx context.Context, params *ec2.DescribeFleetHistoryInput, optFns ...func(*Options)) (*ec2.DescribeFleetHistoryOutput, error)
	// Describes the running instances for the specified EC2 Fleet.
	//
	// Currently, DescribeFleetInstances does not support fleets of type instant .
	// Instead, use DescribeFleets , specifying the instant fleet ID in the request.
	//
	// For more information, see [Describe your EC2 Fleet] in the Amazon EC2 User Guide.
	//
	// [Describe your EC2 Fleet]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#monitor-ec2-fleet
	DescribeFleetInstances(ctx context.Context, params *ec2.DescribeFleetInstancesInput, optFns ...func(*Options)) (*ec2.DescribeFleetInstancesOutput, error)
	// Describes the specified EC2 Fleet or all of your EC2 Fleets.
	//
	// If a fleet is of type instant , you must specify the fleet ID in the request,
	// otherwise the fleet does not appear in the response.
	//
	// For more information, see [Describe your EC2 Fleet] in the Amazon EC2 User Guide.
	//
	// [Describe your EC2 Fleet]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#monitor-ec2-fleet
	DescribeFleets(ctx context.Context, params *ec2.DescribeFleetsInput, optFns ...func(*Options)) (*ec2.DescribeFleetsOutput, error)
	// Describes one or more flow logs.
	//
	// To view the published flow log records, you must view the log destination. For
	// example, the CloudWatch Logs log group, the Amazon S3 bucket, or the Kinesis
	// Data Firehose delivery stream.
	DescribeFlowLogs(ctx context.Context, params *ec2.DescribeFlowLogsInput, optFns ...func(*Options)) (*ec2.DescribeFlowLogsOutput, error)
	// Describes the specified attribute of the specified Amazon FPGA Image (AFI).
	DescribeFpgaImageAttribute(ctx context.Context, params *ec2.DescribeFpgaImageAttributeInput, optFns ...func(*Options)) (*ec2.DescribeFpgaImageAttributeOutput, error)
	// Describes the Amazon FPGA Images (AFIs) available to you. These include public
	// AFIs, private AFIs that you own, and AFIs owned by other Amazon Web Services
	// accounts for which you have load permissions.
	DescribeFpgaImages(ctx context.Context, params *ec2.DescribeFpgaImagesInput, optFns ...func(*Options)) (*ec2.DescribeFpgaImagesOutput, error)
	// Describes the Dedicated Host reservations that are available to purchase.
	//
	// The results describe all of the Dedicated Host reservation offerings, including
	// offerings that might not match the instance family and Region of your Dedicated
	// Hosts. When purchasing an offering, ensure that the instance family and Region
	// of the offering matches that of the Dedicated Hosts with which it is to be
	// associated. For more information about supported instance types, see [Dedicated Hosts]in the
	// Amazon EC2 User Guide.
	//
	// [Dedicated Hosts]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-overview.html
	DescribeHostReservationOfferings(ctx context.Context, params *ec2.DescribeHostReservationOfferingsInput, optFns ...func(*Options)) (*ec2.DescribeHostReservationOfferingsOutput, error)
	// Describes reservations that are associated with Dedicated Hosts in your account.
	DescribeHostReservations(ctx context.Context, params *ec2.DescribeHostReservationsInput, optFns ...func(*Options)) (*ec2.DescribeHostReservationsOutput, error)
	// Describes the specified Dedicated Hosts or all your Dedicated Hosts.
	//
	// The results describe only the Dedicated Hosts in the Region you're currently
	// using. All listed instances consume capacity on your Dedicated Host. Dedicated
	// Hosts that have recently been released are listed with the state released .
	DescribeHosts(ctx context.Context, params *ec2.DescribeHostsInput, optFns ...func(*Options)) (*ec2.DescribeHostsOutput, error)
	// Describes your IAM instance profile associations.
	DescribeIamInstanceProfileAssociations(ctx context.Context, params *ec2.DescribeIamInstanceProfileAssociationsInput, optFns ...func(*Options)) (*ec2.DescribeIamInstanceProfileAssociationsOutput, error)
	// Describes the ID format settings for your resources on a per-Region basis, for
	// example, to view which resource types are enabled for longer IDs. This request
	// only returns information about resource types whose ID formats can be modified;
	// it does not return information about other resource types.
	//
	// The following resource types support longer IDs: bundle | conversion-task |
	// customer-gateway | dhcp-options | elastic-ip-allocation | elastic-ip-association
	// | export-task | flow-log | image | import-task | instance | internet-gateway |
	// network-acl | network-acl-association | network-interface |
	// network-interface-attachment | prefix-list | reservation | route-table |
	// route-table-association | security-group | snapshot | subnet |
	// subnet-cidr-block-association | volume | vpc | vpc-cidr-block-association |
	// vpc-endpoint | vpc-peering-connection | vpn-connection | vpn-gateway .
	//
	// These settings apply to the IAM user who makes the request; they do not apply
	// to the entire Amazon Web Services account. By default, an IAM user defaults to
	// the same settings as the root user, unless they explicitly override the settings
	// by running the ModifyIdFormatcommand. Resources created with longer IDs are visible to all
	// IAM users, regardless of these settings and provided that they have permission
	// to use the relevant Describe command for the resource type.
	DescribeIdFormat(ctx context.Context, params *ec2.DescribeIdFormatInput, optFns ...func(*Options)) (*ec2.DescribeIdFormatOutput, error)
	// Describes the ID format settings for resources for the specified IAM user, IAM
	// role, or root user. For example, you can view the resource types that are
	// enabled for longer IDs. This request only returns information about resource
	// types whose ID formats can be modified; it does not return information about
	// other resource types. For more information, see [Resource IDs]in the Amazon Elastic Compute
	// Cloud User Guide.
	//
	// The following resource types support longer IDs: bundle | conversion-task |
	// customer-gateway | dhcp-options | elastic-ip-allocation | elastic-ip-association
	// | export-task | flow-log | image | import-task | instance | internet-gateway |
	// network-acl | network-acl-association | network-interface |
	// network-interface-attachment | prefix-list | reservation | route-table |
	// route-table-association | security-group | snapshot | subnet |
	// subnet-cidr-block-association | volume | vpc | vpc-cidr-block-association |
	// vpc-endpoint | vpc-peering-connection | vpn-connection | vpn-gateway .
	//
	// These settings apply to the principal specified in the request. They do not
	// apply to the principal that makes the request.
	//
	// [Resource IDs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html
	DescribeIdentityIdFormat(ctx context.Context, params *ec2.DescribeIdentityIdFormatInput, optFns ...func(*Options)) (*ec2.DescribeIdentityIdFormatOutput, error)
	// Describes the specified attribute of the specified AMI. You can specify only
	// one attribute at a time.
	//
	// The order of the elements in the response, including those within nested
	// structures, might vary. Applications should not assume the elements appear in a
	// particular order.
	DescribeImageAttribute(ctx context.Context, params *ec2.DescribeImageAttributeInput, optFns ...func(*Options)) (*ec2.DescribeImageAttributeOutput, error)
	// Describes your Amazon Web Services resources that are referencing the specified
	// images.
	//
	// For more information, see [Identify your resources referencing specified AMIs] in the Amazon EC2 User Guide.
	//
	// [Identify your resources referencing specified AMIs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-ami-references.html
	DescribeImageReferences(ctx context.Context, params *ec2.DescribeImageReferencesInput, optFns ...func(*Options)) (*ec2.DescribeImageReferencesOutput, error)
	// Describes the entries in image usage reports, showing how your images are used
	// across other Amazon Web Services accounts.
	//
	// For more information, see [View your AMI usage] in the Amazon EC2 User Guide.
	//
	// [View your AMI usage]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html
	DescribeImageUsageReportEntries(ctx context.Context, params *ec2.DescribeImageUsageReportEntriesInput, optFns ...func(*Options)) (*ec2.DescribeImageUsageReportEntriesOutput, error)
	// Describes the configuration and status of image usage reports, filtered by
	// report IDs or image IDs.
	//
	// For more information, see [View your AMI usage] in the Amazon EC2 User Guide.
	//
	// [View your AMI usage]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html
	DescribeImageUsageReports(ctx context.Context, params *ec2.DescribeImageUsageReportsInput, optFns ...func(*Options)) (*ec2.DescribeImageUsageReportsOutput, error)
	// Describes the specified images (AMIs, AKIs, and ARIs) available to you or all
	// of the images available to you.
	//
	// The images available to you include public images, private images that you own,
	// and private images owned by other Amazon Web Services accounts for which you
	// have explicit launch permissions.
	//
	// Recently deregistered images appear in the returned results for a short
	// interval and then return empty results. After all instances that reference a
	// deregistered AMI are terminated, specifying the ID of the image will eventually
	// return an error indicating that the AMI ID cannot be found.
	//
	// When Allowed AMIs is set to enabled , only allowed images are returned in the
	// results, with the imageAllowed field set to true for each image. In audit-mode ,
	// the imageAllowed field is set to true for images that meet the account's
	// Allowed AMIs criteria, and false for images that don't meet the criteria. For
	// more information, see [Allowed AMIs].
	//
	// The Amazon EC2 API follows an eventual consistency model. This means that the
	// result of an API command you run that creates or modifies resources might not be
	// immediately available to all subsequent commands you run. For guidance on how to
	// manage eventual consistency, see [Eventual consistency in the Amazon EC2 API]in the Amazon EC2 Developer Guide.
	//
	// We strongly recommend using only paginated requests. Unpaginated requests are
	// susceptible to throttling and timeouts.
	//
	// The order of the elements in the response, including those within nested
	// structures, might vary. Applications should not assume the elements appear in a
	// particular order.
	//
	// [Allowed AMIs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html
	// [Eventual consistency in the Amazon EC2 API]: https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html
	DescribeImages(ctx context.Context, params *ec2.DescribeImagesInput, optFns ...func(*Options)) (*ec2.DescribeImagesOutput, error)
	// Displays details about an import virtual machine or import snapshot tasks that
	// are already created.
	DescribeImportImageTasks(ctx context.Context, params *ec2.DescribeImportImageTasksInput, optFns ...func(*Options)) (*ec2.DescribeImportImageTasksOutput, error)
	// Describes your import snapshot tasks.
	DescribeImportSnapshotTasks(ctx context.Context, params *ec2.DescribeImportSnapshotTasksInput, optFns ...func(*Options)) (*ec2.DescribeImportSnapshotTasksOutput, error)
	// Describes the specified attribute of the specified instance. You can specify
	// only one attribute at a time. Available attributes include SQL license exemption
	// configuration for instances registered with the SQL LE service.
	DescribeInstanceAttribute(ctx context.Context, params *ec2.DescribeInstanceAttributeInput, optFns ...func(*Options)) (*ec2.DescribeInstanceAttributeOutput, error)
	// Describes the specified EC2 Instance Connect Endpoints or all EC2 Instance
	// Connect Endpoints.
	DescribeInstanceConnectEndpoints(ctx context.Context, params *ec2.DescribeInstanceConnectEndpointsInput, optFns ...func(*Options)) (*ec2.DescribeInstanceConnectEndpointsOutput, error)
	// Describes the credit option for CPU usage of the specified burstable
	// performance instances. The credit options are standard and unlimited .
	//
	// If you do not specify an instance ID, Amazon EC2 returns burstable performance
	// instances with the unlimited credit option, as well as instances that were
	// previously configured as T2, T3, and T3a with the unlimited credit option. For
	// example, if you resize a T2 instance, while it is configured as unlimited , to
	// an M4 instance, Amazon EC2 returns the M4 instance.
	//
	// If you specify one or more instance IDs, Amazon EC2 returns the credit option (
	// standard or unlimited ) of those instances. If you specify an instance ID that
	// is not valid, such as an instance that is not a burstable performance instance,
	// an error is returned.
	//
	// Recently terminated instances might appear in the returned results. This
	// interval is usually less than one hour.
	//
	// If an Availability Zone is experiencing a service disruption and you specify
	// instance IDs in the affected zone, or do not specify any instance IDs at all,
	// the call fails. If you specify only instance IDs in an unaffected zone, the call
	// works normally.
	//
	// For more information, see [Burstable performance instances] in the Amazon EC2 User Guide.
	//
	// [Burstable performance instances]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html
	DescribeInstanceCreditSpecifications(ctx context.Context, params *ec2.DescribeInstanceCreditSpecificationsInput, optFns ...func(*Options)) (*ec2.DescribeInstanceCreditSpecificationsOutput, error)
	// Describes the tag keys that are registered to appear in scheduled event
	// notifications for resources in the current Region.
	DescribeInstanceEventNotificationAttributes(ctx context.Context, params *ec2.DescribeInstanceEventNotificationAttributesInput, optFns ...func(*Options)) (*ec2.DescribeInstanceEventNotificationAttributesOutput, error)
	// Describes the specified event windows or all event windows.
	//
	// If you specify event window IDs, the output includes information for only the
	// specified event windows. If you specify filters, the output includes information
	// for only those event windows that meet the filter criteria. If you do not
	// specify event windows IDs or filters, the output includes information for all
	// event windows, which can affect performance. We recommend that you use
	// pagination to ensure that the operation returns quickly and successfully.
	//
	// For more information, see [Define event windows for scheduled events] in the Amazon EC2 User Guide.
	//
	// [Define event windows for scheduled events]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html
	DescribeInstanceEventWindows(ctx context.Context, params *ec2.DescribeInstanceEventWindowsInput, optFns ...func(*Options)) (*ec2.DescribeInstanceEventWindowsOutput, error)
	// Describes the AMI that was used to launch an instance, even if the AMI is
	// deprecated, deregistered, made private (no longer public or shared with your
	// account), or not allowed.
	//
	// If you specify instance IDs, the output includes information for only the
	// specified instances. If you specify filters, the output includes information for
	// only those instances that meet the filter criteria. If you do not specify
	// instance IDs or filters, the output includes information for all instances,
	// which can affect performance.
	//
	// If you specify an instance ID that is not valid, an instance that doesn't
	// exist, or an instance that you do not own, an error ( InvalidInstanceID.NotFound
	// ) is returned.
	//
	// Recently terminated instances might appear in the returned results. This
	// interval is usually less than one hour.
	//
	// In the rare case where an Availability Zone is experiencing a service
	// disruption and you specify instance IDs that are in the affected Availability
	// Zone, or do not specify any instance IDs at all, the call fails. If you specify
	// only instance IDs that are in an unaffected Availability Zone, the call works
	// normally.
	//
	// The order of the elements in the response, including those within nested
	// structures, might vary. Applications should not assume the elements appear in a
	// particular order.
	DescribeInstanceImageMetadata(ctx context.Context, params *ec2.DescribeInstanceImageMetadataInput, optFns ...func(*Options)) (*ec2.DescribeInstanceImageMetadataOutput, error)
	// Describes the historical SQL Server High Availability states for Amazon EC2
	// instances that are enabled for Amazon EC2 High Availability for SQL Server
	// monitoring.
	DescribeInstanceSqlHaHistoryStates(ctx context.Context, params *ec2.DescribeInstanceSqlHaHistoryStatesInput, optFns ...func(*Options)) (*ec2.DescribeInstanceSqlHaHistoryStatesOutput, error)
	// Describes the SQL Server High Availability states for Amazon EC2 instances that
	// are enabled for Amazon EC2 High Availability for SQL Server monitoring.
	DescribeInstanceSqlHaStates(ctx context.Context, params *ec2.DescribeInstanceSqlHaStatesInput, optFns ...func(*Options)) (*ec2.DescribeInstanceSqlHaStatesOutput, error)
	// Describes the status of the specified instances or all of your instances. By
	// default, only running instances are described, unless you specifically indicate
	// to return the status of all instances.
	//
	// Instance status includes the following components:
	//
	//   - Status checks - Amazon EC2 performs status checks on running EC2 instances
	//     to identify hardware and software issues. For more information, see [Status checks for your instances]and [Troubleshoot instances with failed status checks]in
	//     the Amazon EC2 User Guide.
	//
	//   - Scheduled events - Amazon EC2 can schedule events (such as reboot, stop, or
	//     terminate) for your instances related to hardware issues, software updates, or
	//     system maintenance. For more information, see [Scheduled events for your instances]in the Amazon EC2 User Guide.
	//
	//   - Instance state - You can manage your instances from the moment you launch
	//     them through their termination. For more information, see [Instance lifecycle]in the Amazon EC2
	//     User Guide.
	//
	// The Amazon EC2 API follows an eventual consistency model. This means that the
	// result of an API command you run that creates or modifies resources might not be
	// immediately available to all subsequent commands you run. For guidance on how to
	// manage eventual consistency, see [Eventual consistency in the Amazon EC2 API]in the Amazon EC2 Developer Guide.
	//
	// The order of the elements in the response, including those within nested
	// structures, might vary. Applications should not assume the elements appear in a
	// particular order.
	//
	// [Troubleshoot instances with failed status checks]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstances.html
	// [Instance lifecycle]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html
	// [Status checks for your instances]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-system-instance-status-check.html
	// [Eventual consistency in the Amazon EC2 API]: https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html
	// [Scheduled events for your instances]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-instances-status-check_sched.html
	DescribeInstanceStatus(ctx context.Context, params *ec2.DescribeInstanceStatusInput, optFns ...func(*Options)) (*ec2.DescribeInstanceStatusOutput, error)
	// Describes a tree-based hierarchy that represents the physical host placement of
	// your EC2 instances within an Availability Zone or Local Zone. You can use this
	// information to determine the relative proximity of your EC2 instances within the
	// Amazon Web Services network to support your tightly coupled workloads.
	//
	// Instance topology is supported for specific instance types only. For more
	// information, see [Prerequisites for Amazon EC2 instance topology]in the Amazon EC2 User Guide.
	//
	// The Amazon EC2 API follows an eventual consistency model due to the distributed
	// nature of the system supporting it. As a result, when you call the
	// DescribeInstanceTopology API command immediately after launching instances, the
	// response might return a null value for capacityBlockId because the data might
	// not have fully propagated across all subsystems. For more information, see [Eventual consistency in the Amazon EC2 API]in
	// the Amazon EC2 Developer Guide.
	//
	// For more information, see [Amazon EC2 topology] in the Amazon EC2 User Guide.
	//
	// [Prerequisites for Amazon EC2 instance topology]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-topology-prerequisites.html
	// [Amazon EC2 topology]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-topology.html
	// [Eventual consistency in the Amazon EC2 API]: https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html
	DescribeInstanceTopology(ctx context.Context, params *ec2.DescribeInstanceTopologyInput, optFns ...func(*Options)) (*ec2.DescribeInstanceTopologyOutput, error)
	// Lists the instance types that are offered for the specified location. If no
	// location is specified, the default is to list the instance types that are
	// offered in the current Region.
	DescribeInstanceTypeOfferings(ctx context.Context, params *ec2.DescribeInstanceTypeOfferingsInput, optFns ...func(*Options)) (*ec2.DescribeInstanceTypeOfferingsOutput, error)
	// Describes the specified instance types. By default, all instance types for the
	// current Region are described. Alternatively, you can filter the results.
	DescribeInstanceTypes(ctx context.Context, params *ec2.DescribeInstanceTypesInput, optFns ...func(*Options)) (*ec2.DescribeInstanceTypesOutput, error)
	// Describes the specified instances or all instances.
	//
	// If you specify instance IDs, the output includes information for only the
	// specified instances. If you specify filters, the output includes information for
	// only those instances that meet the filter criteria. If you do not specify
	// instance IDs or filters, the output includes information for all instances,
	// which can affect performance. We recommend that you use pagination to ensure
	// that the operation returns quickly and successfully.
	//
	// The response includes SQL license exemption status information for instances
	// registered with the SQL LE service, providing visibility into license exemption
	// configuration and status.
	//
	// If you specify an instance ID that is not valid, an error is returned. If you
	// specify an instance that you do not own, it is not included in the output.
	//
	// Recently terminated instances might appear in the returned results. This
	// interval is usually less than one hour.
	//
	// If you describe instances in the rare case where an Availability Zone is
	// experiencing a service disruption and you specify instance IDs that are in the
	// affected zone, or do not specify any instance IDs at all, the call fails. If you
	// describe instances and specify only instance IDs that are in an unaffected zone,
	// the call works normally.
	//
	// The Amazon EC2 API follows an eventual consistency model. This means that the
	// result of an API command you run that creates or modifies resources might not be
	// immediately available to all subsequent commands you run. For guidance on how to
	// manage eventual consistency, see [Eventual consistency in the Amazon EC2 API]in the Amazon EC2 Developer Guide.
	//
	// We strongly recommend using only paginated requests. Unpaginated requests are
	// susceptible to throttling and timeouts.
	//
	// The order of the elements in the response, including those within nested
	// structures, might vary. Applications should not assume the elements appear in a
	// particular order.
	//
	// [Eventual consistency in the Amazon EC2 API]: https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html
	DescribeInstances(ctx context.Context, params *ec2.DescribeInstancesInput, optFns ...func(*Options)) (*ec2.DescribeInstancesOutput, error)
	// Describes your internet gateways. The default is to describe all your internet
	// gateways. Alternatively, you can specify specific internet gateway IDs or filter
	// the results to include only the internet gateways that match specific criteria.
	DescribeInternetGateways(ctx context.Context, params *ec2.DescribeInternetGatewaysInput, optFns ...func(*Options)) (*ec2.DescribeInternetGatewaysOutput, error)
	// Describes your Autonomous System Numbers (ASNs), their provisioning statuses,
	// and the BYOIP CIDRs with which they are associated. For more information, see [Tutorial: Bring your ASN to IPAM]
	// in the Amazon VPC IPAM guide.
	//
	// [Tutorial: Bring your ASN to IPAM]: https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoasn.html
	DescribeIpamByoasn(ctx context.Context, params *ec2.DescribeIpamByoasnInput, optFns ...func(*Options)) (*ec2.DescribeIpamByoasnOutput, error)
	// Describe verification tokens.
	//
	// A verification token is an Amazon Web Services-generated random value that you
	// can use to prove ownership of an external resource. For example, you can use a
	// verification token to validate that you control a public IP address range when
	// you bring an IP address range to Amazon Web Services (BYOIP).
	DescribeIpamExternalResourceVerificationTokens(ctx context.Context, params *ec2.DescribeIpamExternalResourceVerificationTokensInput, optFns ...func(*Options)) (*ec2.DescribeIpamExternalResourceVerificationTokensOutput, error)
	// Describes one or more IPAM policies.
	//
	// An IPAM policy is a set of rules that define how public IPv4 addresses from
	// IPAM pools are allocated to Amazon Web Services resources. Each rule maps an
	// Amazon Web Services service to IPAM pools that the service will use to get IP
	// addresses. A single policy can have multiple rules and be applied to multiple
	// Amazon Web Services Regions. If the IPAM pool run out of addresses then the
	// services fallback to Amazon-provided IP addresses. A policy can be applied to an
	// individual Amazon Web Services account or an entity within Amazon Web Services
	// Organizations.
	DescribeIpamPolicies(ctx context.Context, params *ec2.DescribeIpamPoliciesInput, optFns ...func(*Options)) (*ec2.DescribeIpamPoliciesOutput, error)
	// Get information about your IPAM pools.
	DescribeIpamPools(ctx context.Context, params *ec2.DescribeIpamPoolsInput, optFns ...func(*Options)) (*ec2.DescribeIpamPoolsOutput, error)
	// Describes one or more IPAM prefix list resolver Targets. Use this operation to
	// view the configuration and status of resolver targets.
	DescribeIpamPrefixListResolverTargets(ctx context.Context, params *ec2.DescribeIpamPrefixListResolverTargetsInput, optFns ...func(*Options)) (*ec2.DescribeIpamPrefixListResolverTargetsOutput, error)
	// Describes one or more IPAM prefix list resolvers. Use this operation to view
	// the configuration, status, and properties of your resolvers.
	DescribeIpamPrefixListResolvers(ctx context.Context, params *ec2.DescribeIpamPrefixListResolversInput, optFns ...func(*Options)) (*ec2.DescribeIpamPrefixListResolversOutput, error)
	// Describes IPAM resource discoveries. A resource discovery is an IPAM component
	// that enables IPAM to manage and monitor resources that belong to the owning
	// account.
	DescribeIpamResourceDiscoveries(ctx context.Context, params *ec2.DescribeIpamResourceDiscoveriesInput, optFns ...func(*Options)) (*ec2.DescribeIpamResourceDiscoveriesOutput, error)
	// Describes resource discovery association with an Amazon VPC IPAM. An associated
	// resource discovery is a resource discovery that has been associated with an
	// IPAM..
	DescribeIpamResourceDiscoveryAssociations(ctx context.Context, params *ec2.DescribeIpamResourceDiscoveryAssociationsInput, optFns ...func(*Options)) (*ec2.DescribeIpamResourceDiscoveryAssociationsOutput, error)
	// Get information about your IPAM scopes.
	DescribeIpamScopes(ctx context.Context, params *ec2.DescribeIpamScopesInput, optFns ...func(*Options)) (*ec2.DescribeIpamScopesOutput, error)
	// Get information about your IPAM pools.
	//
	// For more information, see [What is IPAM?] in the Amazon VPC IPAM User Guide.
	//
	// [What is IPAM?]: https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html
	DescribeIpams(ctx context.Context, params *ec2.DescribeIpamsInput, optFns ...func(*Options)) (*ec2.DescribeIpamsOutput, error)
	// Describes your IPv6 address pools.
	DescribeIpv6Pools(ctx context.Context, params *ec2.DescribeIpv6PoolsInput, optFns ...func(*Options)) (*ec2.DescribeIpv6PoolsOutput, error)
	// Describes the specified key pairs or all of your key pairs.
	//
	// For more information about key pairs, see [Amazon EC2 key pairs] in the Amazon EC2 User Guide.
	//
	// [Amazon EC2 key pairs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html
	DescribeKeyPairs(ctx context.Context, params *ec2.DescribeKeyPairsInput, optFns ...func(*Options)) (*ec2.DescribeKeyPairsOutput, error)
	// Describes one or more versions of a specified launch template. You can describe
	// all versions, individual versions, or a range of versions. You can also describe
	// all the latest versions or all the default versions of all the launch templates
	// in your account.
	DescribeLaunchTemplateVersions(ctx context.Context, params *ec2.DescribeLaunchTemplateVersionsInput, optFns ...func(*Options)) (*ec2.DescribeLaunchTemplateVersionsOutput, error)
	// Describes one or more launch templates.
	DescribeLaunchTemplates(ctx context.Context, params *ec2.DescribeLaunchTemplatesInput, optFns ...func(*Options)) (*ec2.DescribeLaunchTemplatesOutput, error)
	// Describes the associations between virtual interface groups and local gateway
	// route tables.
	DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations(ctx context.Context, params *ec2.DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput, optFns ...func(*Options)) (*ec2.DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutput, error)
	// Describes the specified associations between VPCs and local gateway route
	// tables.
	DescribeLocalGatewayRouteTableVpcAssociations(ctx context.Context, params *ec2.DescribeLocalGatewayRouteTableVpcAssociationsInput, optFns ...func(*Options)) (*ec2.DescribeLocalGatewayRouteTableVpcAssociationsOutput, error)
	// Describes one or more local gateway route tables. By default, all local gateway
	// route tables are described. Alternatively, you can filter the results.
	DescribeLocalGatewayRouteTables(ctx context.Context, params *ec2.DescribeLocalGatewayRouteTablesInput, optFns ...func(*Options)) (*ec2.DescribeLocalGatewayRouteTablesOutput, error)
	// Describes the specified local gateway virtual interface groups.
	DescribeLocalGatewayVirtualInterfaceGroups(ctx context.Context, params *ec2.DescribeLocalGatewayVirtualInterfaceGroupsInput, optFns ...func(*Options)) (*ec2.DescribeLocalGatewayVirtualInterfaceGroupsOutput, error)
	// Describes the specified local gateway virtual interfaces.
	DescribeLocalGatewayVirtualInterfaces(ctx context.Context, params *ec2.DescribeLocalGatewayVirtualInterfacesInput, optFns ...func(*Options)) (*ec2.DescribeLocalGatewayVirtualInterfacesOutput, error)
	// Describes one or more local gateways. By default, all local gateways are
	// described. Alternatively, you can filter the results.
	DescribeLocalGateways(ctx context.Context, params *ec2.DescribeLocalGatewaysInput, optFns ...func(*Options)) (*ec2.DescribeLocalGatewaysOutput, error)
	// Describes the lock status for a snapshot.
	DescribeLockedSnapshots(ctx context.Context, params *ec2.DescribeLockedSnapshotsInput, optFns ...func(*Options)) (*ec2.DescribeLockedSnapshotsOutput, error)
	// Describes the specified EC2 Mac Dedicated Host or all of your EC2 Mac Dedicated
	// Hosts.
	DescribeMacHosts(ctx context.Context, params *ec2.DescribeMacHostsInput, optFns ...func(*Options)) (*ec2.DescribeMacHostsOutput, error)
	// Describes a System Integrity Protection (SIP) modification task or volume
	// ownership delegation task for an Amazon EC2 Mac instance. For more information,
	// see [Configure SIP for Amazon EC2 instances]in the Amazon EC2 User Guide.
	//
	// [Configure SIP for Amazon EC2 instances]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mac-sip-settings.html#mac-sip-configure
	DescribeMacModificationTasks(ctx context.Context, params *ec2.DescribeMacModificationTasksInput, optFns ...func(*Options)) (*ec2.DescribeMacModificationTasksOutput, error)
	// Describes your managed prefix lists and any Amazon Web Services-managed prefix
	// lists.
	DescribeManagedPrefixLists(ctx context.Context, params *ec2.DescribeManagedPrefixListsInput, optFns ...func(*Options)) (*ec2.DescribeManagedPrefixListsOutput, error)
	// This action is deprecated.
	//
	// Describes your Elastic IP addresses that are being moved from or being restored
	// to the EC2-Classic platform. This request does not return information about any
	// other Elastic IP addresses in your account.
	DescribeMovingAddresses(ctx context.Context, params *ec2.DescribeMovingAddressesInput, optFns ...func(*Options)) (*ec2.DescribeMovingAddressesOutput, error)
	// Describes your NAT gateways. The default is to describe all your NAT gateways.
	// Alternatively, you can specify specific NAT gateway IDs or filter the results to
	// include only the NAT gateways that match specific criteria.
	DescribeNatGateways(ctx context.Context, params *ec2.DescribeNatGatewaysInput, optFns ...func(*Options)) (*ec2.DescribeNatGatewaysOutput, error)
	// Describes your network ACLs. The default is to describe all your network ACLs.
	// Alternatively, you can specify specific network ACL IDs or filter the results to
	// include only the network ACLs that match specific criteria.
	//
	// For more information, see [Network ACLs] in the Amazon VPC User Guide.
	//
	// [Network ACLs]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html
	DescribeNetworkAcls(ctx context.Context, params *ec2.DescribeNetworkAclsInput, optFns ...func(*Options)) (*ec2.DescribeNetworkAclsOutput, error)
	// Describes the specified Network Access Scope analyses.
	DescribeNetworkInsightsAccessScopeAnalyses(ctx context.Context, params *ec2.DescribeNetworkInsightsAccessScopeAnalysesInput, optFns ...func(*Options)) (*ec2.DescribeNetworkInsightsAccessScopeAnalysesOutput, error)
	// Describes the specified Network Access Scopes.
	DescribeNetworkInsightsAccessScopes(ctx context.Context, params *ec2.DescribeNetworkInsightsAccessScopesInput, optFns ...func(*Options)) (*ec2.DescribeNetworkInsightsAccessScopesOutput, error)
	// Describes one or more of your network insights analyses.
	DescribeNetworkInsightsAnalyses(ctx context.Context, params *ec2.DescribeNetworkInsightsAnalysesInput, optFns ...func(*Options)) (*ec2.DescribeNetworkInsightsAnalysesOutput, error)
	// Describes one or more of your paths.
	DescribeNetworkInsightsPaths(ctx context.Context, params *ec2.DescribeNetworkInsightsPathsInput, optFns ...func(*Options)) (*ec2.DescribeNetworkInsightsPathsOutput, error)
	// Describes a network interface attribute. You can specify only one attribute at
	// a time.
	DescribeNetworkInterfaceAttribute(ctx context.Context, params *ec2.DescribeNetworkInterfaceAttributeInput, optFns ...func(*Options)) (*ec2.DescribeNetworkInterfaceAttributeOutput, error)
	// Describes the permissions for your network interfaces.
	DescribeNetworkInterfacePermissions(ctx context.Context, params *ec2.DescribeNetworkInterfacePermissionsInput, optFns ...func(*Options)) (*ec2.DescribeNetworkInterfacePermissionsOutput, error)
	// Describes the specified network interfaces or all your network interfaces.
	//
	// If you have a large number of network interfaces, the operation fails unless
	// you use pagination or one of the following filters: group-id , mac-address ,
	// private-dns-name , private-ip-address , subnet-id , or vpc-id .
	//
	// We strongly recommend using only paginated requests. Unpaginated requests are
	// susceptible to throttling and timeouts.
	DescribeNetworkInterfaces(ctx context.Context, params *ec2.DescribeNetworkInterfacesInput, optFns ...func(*Options)) (*ec2.DescribeNetworkInterfacesOutput, error)
	// Describes the Outposts link aggregation groups (LAGs).
	//
	// LAGs are only available for second-generation Outposts racks at this time.
	DescribeOutpostLags(ctx context.Context, params *ec2.DescribeOutpostLagsInput, optFns ...func(*Options)) (*ec2.DescribeOutpostLagsOutput, error)
	// Describes the specified placement groups or all of your placement groups.
	//
	// To describe a specific placement group that is shared with your account, you
	// must specify the ID of the placement group using the GroupId parameter.
	// Specifying the name of a shared placement group using the GroupNames parameter
	// will result in an error.
	//
	// For more information, see [Placement groups] in the Amazon EC2 User Guide.
	//
	// [Placement groups]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html
	DescribePlacementGroups(ctx context.Context, params *ec2.DescribePlacementGroupsInput, optFns ...func(*Options)) (*ec2.DescribePlacementGroupsOutput, error)
	// Describes available Amazon Web Services services in a prefix list format, which
	// includes the prefix list name and prefix list ID of the service and the IP
	// address range for the service.
	DescribePrefixLists(ctx context.Context, params *ec2.DescribePrefixListsInput, optFns ...func(*Options)) (*ec2.DescribePrefixListsOutput, error)
	// Describes the ID format settings for the root user and all IAM roles and IAM
	// users that have explicitly specified a longer ID (17-character ID) preference.
	//
	// By default, all IAM roles and IAM users default to the same ID settings as the
	// root user, unless they explicitly override the settings. This request is useful
	// for identifying those IAM users and IAM roles that have overridden the default
	// ID settings.
	//
	// The following resource types support longer IDs: bundle | conversion-task |
	// customer-gateway | dhcp-options | elastic-ip-allocation | elastic-ip-association
	// | export-task | flow-log | image | import-task | instance | internet-gateway |
	// network-acl | network-acl-association | network-interface |
	// network-interface-attachment | prefix-list | reservation | route-table |
	// route-table-association | security-group | snapshot | subnet |
	// subnet-cidr-block-association | volume | vpc | vpc-cidr-block-association |
	// vpc-endpoint | vpc-peering-connection | vpn-connection | vpn-gateway .
	DescribePrincipalIdFormat(ctx context.Context, params *ec2.DescribePrincipalIdFormatInput, optFns ...func(*Options)) (*ec2.DescribePrincipalIdFormatOutput, error)
	// Describes the specified IPv4 address pools.
	DescribePublicIpv4Pools(ctx context.Context, params *ec2.DescribePublicIpv4PoolsInput, optFns ...func(*Options)) (*ec2.DescribePublicIpv4PoolsOutput, error)
	// Describes the Regions that are enabled for your account, or all Regions.
	//
	// For a list of the Regions supported by Amazon EC2, see [Amazon EC2 service endpoints].
	//
	// For information about enabling and disabling Regions for your account, see [Specify which Amazon Web Services Regions your account can use] in
	// the Amazon Web Services Account Management Reference Guide.
	//
	// The order of the elements in the response, including those within nested
	// structures, might vary. Applications should not assume the elements appear in a
	// particular order.
	//
	// [Specify which Amazon Web Services Regions your account can use]: https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html
	// [Amazon EC2 service endpoints]: https://docs.aws.amazon.com/ec2/latest/devguide/ec2-endpoints.html
	DescribeRegions(ctx context.Context, params *ec2.DescribeRegionsInput, optFns ...func(*Options)) (*ec2.DescribeRegionsOutput, error)
	// Describes a root volume replacement task. For more information, see [Replace a root volume] in the
	// Amazon EC2 User Guide.
	//
	// [Replace a root volume]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/replace-root.html
	DescribeReplaceRootVolumeTasks(ctx context.Context, params *ec2.DescribeReplaceRootVolumeTasksInput, optFns ...func(*Options)) (*ec2.DescribeReplaceRootVolumeTasksOutput, error)
	// Describes one or more of the Reserved Instances that you purchased.
	//
	// For more information about Reserved Instances, see [Reserved Instances] in the Amazon EC2 User
	// Guide.
	//
	// The order of the elements in the response, including those within nested
	// structures, might vary. Applications should not assume the elements appear in a
	// particular order.
	//
	// [Reserved Instances]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html
	DescribeReservedInstances(ctx context.Context, params *ec2.DescribeReservedInstancesInput, optFns ...func(*Options)) (*ec2.DescribeReservedInstancesOutput, error)
	// Describes your account's Reserved Instance listings in the Reserved Instance
	// Marketplace.
	//
	// The Reserved Instance Marketplace matches sellers who want to resell Reserved
	// Instance capacity that they no longer need with buyers who want to purchase
	// additional capacity. Reserved Instances bought and sold through the Reserved
	// Instance Marketplace work like any other Reserved Instances.
	//
	// As a seller, you choose to list some or all of your Reserved Instances, and you
	// specify the upfront price to receive for them. Your Reserved Instances are then
	// listed in the Reserved Instance Marketplace and are available for purchase.
	//
	// As a buyer, you specify the configuration of the Reserved Instance to purchase,
	// and the Marketplace matches what you're searching for with what's available. The
	// Marketplace first sells the lowest priced Reserved Instances to you, and
	// continues to sell available Reserved Instance listings to you until your demand
	// is met. You are charged based on the total price of all of the listings that you
	// purchase.
	//
	// For more information, see [Sell in the Reserved Instance Marketplace] in the Amazon EC2 User Guide.
	//
	// The order of the elements in the response, including those within nested
	// structures, might vary. Applications should not assume the elements appear in a
	// particular order.
	//
	// [Sell in the Reserved Instance Marketplace]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html
	DescribeReservedInstancesListings(ctx context.Context, params *ec2.DescribeReservedInstancesListingsInput, optFns ...func(*Options)) (*ec2.DescribeReservedInstancesListingsOutput, error)
	// Describes the modifications made to your Reserved Instances. If no parameter is
	// specified, information about all your Reserved Instances modification requests
	// is returned. If a modification ID is specified, only information about the
	// specific modification is returned.
	//
	// For more information, see [Modify Reserved Instances] in the Amazon EC2 User Guide.
	//
	// The order of the elements in the response, including those within nested
	// structures, might vary. Applications should not assume the elements appear in a
	// particular order.
	//
	// [Modify Reserved Instances]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html
	DescribeReservedInstancesModifications(ctx context.Context, params *ec2.DescribeReservedInstancesModificationsInput, optFns ...func(*Options)) (*ec2.DescribeReservedInstancesModificationsOutput, error)
	// Describes Reserved Instance offerings that are available for purchase. With
	// Reserved Instances, you purchase the right to launch instances for a period of
	// time. During that time period, you do not receive insufficient capacity errors,
	// and you pay a lower usage rate than the rate charged for On-Demand instances for
	// the actual time used.
	//
	// If you have listed your own Reserved Instances for sale in the Reserved
	// Instance Marketplace, they will be excluded from these results. This is to
	// ensure that you do not purchase your own Reserved Instances.
	//
	// For more information, see [Sell in the Reserved Instance Marketplace] in the Amazon EC2 User Guide.
	//
	// The order of the elements in the response, including those within nested
	// structures, might vary. Applications should not assume the elements appear in a
	// particular order.
	//
	// [Sell in the Reserved Instance Marketplace]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html
	DescribeReservedInstancesOfferings(ctx context.Context, params *ec2.DescribeReservedInstancesOfferingsInput, optFns ...func(*Options)) (*ec2.DescribeReservedInstancesOfferingsOutput, error)
	// Describes one or more route server endpoints.
	//
	// A route server endpoint is an Amazon Web Services-managed component inside a
	// subnet that facilitates [BGP (Border Gateway Protocol)]connections between your route server and your BGP
	// peers.
	//
	// For more information see [Dynamic routing in your VPC with VPC Route Server] in the Amazon VPC User Guide.
	//
	// [Dynamic routing in your VPC with VPC Route Server]: https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html
	// [BGP (Border Gateway Protocol)]: https://en.wikipedia.org/wiki/Border_Gateway_Protocol
	DescribeRouteServerEndpoints(ctx context.Context, params *ec2.DescribeRouteServerEndpointsInput, optFns ...func(*Options)) (*ec2.DescribeRouteServerEndpointsOutput, error)
	// Describes one or more route server peers.
	//
	// A route server peer is a session between a route server endpoint and the device
	// deployed in Amazon Web Services (such as a firewall appliance or other network
	// security function running on an EC2 instance). The device must meet these
	// requirements:
	//
	//   - Have an elastic network interface in the VPC
	//
	//   - Support BGP (Border Gateway Protocol)
	//
	//   - Can initiate BGP sessions
	//
	// For more information see [Dynamic routing in your VPC with VPC Route Server] in the Amazon VPC User Guide.
	//
	// [Dynamic routing in your VPC with VPC Route Server]: https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html
	DescribeRouteServerPeers(ctx context.Context, params *ec2.DescribeRouteServerPeersInput, optFns ...func(*Options)) (*ec2.DescribeRouteServerPeersOutput, error)
	// Describes one or more route servers.
	//
	// Amazon VPC Route Server simplifies routing for traffic between workloads that
	// are deployed within a VPC and its internet gateways. With this feature, VPC
	// Route Server dynamically updates VPC and internet gateway route tables with your
	// preferred IPv4 or IPv6 routes to achieve routing fault tolerance for those
	// workloads. This enables you to automatically reroute traffic within a VPC, which
	// increases the manageability of VPC routing and interoperability with third-party
	// workloads.
	//
	// Route server supports the follow route table types:
	//
	//   - VPC route tables not associated with subnets
	//
	//   - Subnet route tables
	//
	//   - Internet gateway route tables
	//
	// Route server does not support route tables associated with virtual private
	// gateways. To propagate routes into a transit gateway route table, use [Transit Gateway Connect].
	//
	// For more information see [Dynamic routing in your VPC with VPC Route Server] in the Amazon VPC User Guide.
	//
	// [Dynamic routing in your VPC with VPC Route Server]: https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html
	// [Transit Gateway Connect]: https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html
	DescribeRouteServers(ctx context.Context, params *ec2.DescribeRouteServersInput, optFns ...func(*Options)) (*ec2.DescribeRouteServersOutput, error)
	// Describes your route tables. The default is to describe all your route tables.
	// Alternatively, you can specify specific route table IDs or filter the results to
	// include only the route tables that match specific criteria.
	//
	// Each subnet in your VPC must be associated with a route table. If a subnet is
	// not explicitly associated with any route table, it is implicitly associated with
	// the main route table. This command does not return the subnet ID for implicit
	// associations.
	//
	// For more information, see [Route tables] in the Amazon VPC User Guide.
	//
	// [Route tables]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html
	DescribeRouteTables(ctx context.Context, params *ec2.DescribeRouteTablesInput, optFns ...func(*Options)) (*ec2.DescribeRouteTablesOutput, error)
	// Finds available schedules that meet the specified criteria.
	//
	// You can search for an available schedule no more than 3 months in advance. You
	// must meet the minimum required duration of 1,200 hours per year. For example,
	// the minimum daily schedule is 4 hours, the minimum weekly schedule is 24 hours,
	// and the minimum monthly schedule is 100 hours.
	//
	// After you find a schedule that meets your needs, call PurchaseScheduledInstances to purchase Scheduled
	// Instances with that schedule.
	DescribeScheduledInstanceAvailability(ctx context.Context, params *ec2.DescribeScheduledInstanceAvailabilityInput, optFns ...func(*Options)) (*ec2.DescribeScheduledInstanceAvailabilityOutput, error)
	// Describes the specified Scheduled Instances or all your Scheduled Instances.
	DescribeScheduledInstances(ctx context.Context, params *ec2.DescribeScheduledInstancesInput, optFns ...func(*Options)) (*ec2.DescribeScheduledInstancesOutput, error)
	// Describes one or more of your secondary interfaces.
	DescribeSecondaryInterfaces(ctx context.Context, params *ec2.DescribeSecondaryInterfacesInput, optFns ...func(*Options)) (*ec2.DescribeSecondaryInterfacesOutput, error)
	// Describes one or more secondary networks.
	DescribeSecondaryNetworks(ctx context.Context, params *ec2.DescribeSecondaryNetworksInput, optFns ...func(*Options)) (*ec2.DescribeSecondaryNetworksOutput, error)
	// Describes one or more of your secondary subnets.
	DescribeSecondarySubnets(ctx context.Context, params *ec2.DescribeSecondarySubnetsInput, optFns ...func(*Options)) (*ec2.DescribeSecondarySubnetsOutput, error)
	// Describes the VPCs on the other side of a VPC peering or Transit Gateway
	// connection that are referencing the security groups you've specified in this
	// request.
	DescribeSecurityGroupReferences(ctx context.Context, params *ec2.DescribeSecurityGroupReferencesInput, optFns ...func(*Options)) (*ec2.DescribeSecurityGroupReferencesOutput, error)
	// Describes one or more of your security group rules.
	DescribeSecurityGroupRules(ctx context.Context, params *ec2.DescribeSecurityGroupRulesInput, optFns ...func(*Options)) (*ec2.DescribeSecurityGroupRulesOutput, error)
	// Describes security group VPC associations made with [AssociateSecurityGroupVpc].
	//
	// [AssociateSecurityGroupVpc]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateSecurityGroupVpc.html
	DescribeSecurityGroupVpcAssociations(ctx context.Context, params *ec2.DescribeSecurityGroupVpcAssociationsInput, optFns ...func(*Options)) (*ec2.DescribeSecurityGroupVpcAssociationsOutput, error)
	// Describes the specified security groups or all of your security groups.
	DescribeSecurityGroups(ctx context.Context, params *ec2.DescribeSecurityGroupsInput, optFns ...func(*Options)) (*ec2.DescribeSecurityGroupsOutput, error)
	// Describes the Outpost service link virtual interfaces.
	DescribeServiceLinkVirtualInterfaces(ctx context.Context, params *ec2.DescribeServiceLinkVirtualInterfacesInput, optFns ...func(*Options)) (*ec2.DescribeServiceLinkVirtualInterfacesOutput, error)
	// Describes the specified attribute of the specified snapshot. You can specify
	// only one attribute at a time.
	//
	// For more information about EBS snapshots, see [Amazon EBS snapshots] in the Amazon EBS User Guide.
	//
	// [Amazon EBS snapshots]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-snapshots.html
	DescribeSnapshotAttribute(ctx context.Context, params *ec2.DescribeSnapshotAttributeInput, optFns ...func(*Options)) (*ec2.DescribeSnapshotAttributeOutput, error)
	// Describes the storage tier status of one or more Amazon EBS snapshots.
	DescribeSnapshotTierStatus(ctx context.Context, params *ec2.DescribeSnapshotTierStatusInput, optFns ...func(*Options)) (*ec2.DescribeSnapshotTierStatusOutput, error)
	// Describes the specified EBS snapshots available to you or all of the EBS
	// snapshots available to you.
	//
	// The snapshots available to you include public snapshots, private snapshots that
	// you own, and private snapshots owned by other Amazon Web Services accounts for
	// which you have explicit create volume permissions.
	//
	// The create volume permissions fall into the following categories:
	//
	//   - public: The owner of the snapshot granted create volume permissions for the
	//     snapshot to the all group. All Amazon Web Services accounts have create volume
	//     permissions for these snapshots.
	//
	//   - explicit: The owner of the snapshot granted create volume permissions to a
	//     specific Amazon Web Services account.
	//
	//   - implicit: An Amazon Web Services account has implicit create volume
	//     permissions for all snapshots it owns.
	//
	// The list of snapshots returned can be filtered by specifying snapshot IDs,
	// snapshot owners, or Amazon Web Services accounts with create volume permissions.
	// If no options are specified, Amazon EC2 returns all snapshots for which you have
	// create volume permissions.
	//
	// If you specify one or more snapshot IDs, only snapshots that have the specified
	// IDs are returned. If you specify an invalid snapshot ID, an error is returned.
	// If you specify a snapshot ID for which you do not have access, it is not
	// included in the returned results.
	//
	// If you specify one or more snapshot owners using the OwnerIds option, only
	// snapshots from the specified owners and for which you have access are returned.
	// The results can include the Amazon Web Services account IDs of the specified
	// owners, amazon for snapshots owned by Amazon, or self for snapshots that you
	// own.
	//
	// If you specify a list of restorable users, only snapshots with create snapshot
	// permissions for those users are returned. You can specify Amazon Web Services
	// account IDs (if you own the snapshots), self for snapshots for which you own or
	// have explicit permissions, or all for public snapshots.
	//
	// If you are describing a long list of snapshots, we recommend that you paginate
	// the output to make the list more manageable. For more information, see [Pagination].
	//
	// For more information about EBS snapshots, see [Amazon EBS snapshots] in the Amazon EBS User Guide.
	//
	// We strongly recommend using only paginated requests. Unpaginated requests are
	// susceptible to throttling and timeouts.
	//
	// [Pagination]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination
	// [Amazon EBS snapshots]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-snapshots.html
	DescribeSnapshots(ctx context.Context, params *ec2.DescribeSnapshotsInput, optFns ...func(*Options)) (*ec2.DescribeSnapshotsOutput, error)
	// Describes the data feed for Spot Instances. For more information, see [Spot Instance data feed] in the
	// Amazon EC2 User Guide.
	//
	// [Spot Instance data feed]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html
	DescribeSpotDatafeedSubscription(ctx context.Context, params *ec2.DescribeSpotDatafeedSubscriptionInput, optFns ...func(*Options)) (*ec2.DescribeSpotDatafeedSubscriptionOutput, error)
	// Describes the running instances for the specified Spot Fleet.
	DescribeSpotFleetInstances(ctx context.Context, params *ec2.DescribeSpotFleetInstancesInput, optFns ...func(*Options)) (*ec2.DescribeSpotFleetInstancesOutput, error)
	// Describes the events for the specified Spot Fleet request during the specified
	// time.
	//
	// Spot Fleet events are delayed by up to 30 seconds before they can be described.
	// This ensures that you can query by the last evaluated time and not miss a
	// recorded event. Spot Fleet events are available for 48 hours.
	//
	// For more information, see [Monitor fleet events using Amazon EventBridge] in the Amazon EC2 User Guide.
	//
	// [Monitor fleet events using Amazon EventBridge]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fleet-monitor.html
	DescribeSpotFleetRequestHistory(ctx context.Context, params *ec2.DescribeSpotFleetRequestHistoryInput, optFns ...func(*Options)) (*ec2.DescribeSpotFleetRequestHistoryOutput, error)
	// Describes your Spot Fleet requests.
	//
	// Spot Fleet requests are deleted 48 hours after they are canceled and their
	// instances are terminated.
	DescribeSpotFleetRequests(ctx context.Context, params *ec2.DescribeSpotFleetRequestsInput, optFns ...func(*Options)) (*ec2.DescribeSpotFleetRequestsOutput, error)
	// Describes the specified Spot Instance requests.
	//
	// You can use DescribeSpotInstanceRequests to find a running Spot Instance by
	// examining the response. If the status of the Spot Instance is fulfilled , the
	// instance ID appears in the response and contains the identifier of the instance.
	// Alternatively, you can use [DescribeInstances]with a filter to look for instances where the
	// instance lifecycle is spot .
	//
	// We recommend that you set MaxResults to a value between 5 and 1000 to limit the
	// number of items returned. This paginates the output, which makes the list more
	// manageable and returns the items faster. If the list of items exceeds your
	// MaxResults value, then that number of items is returned along with a NextToken
	// value that can be passed to a subsequent DescribeSpotInstanceRequests request
	// to retrieve the remaining items.
	//
	// Spot Instance requests are deleted four hours after they are canceled and their
	// instances are terminated.
	//
	// [DescribeInstances]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances
	DescribeSpotInstanceRequests(ctx context.Context, params *ec2.DescribeSpotInstanceRequestsInput, optFns ...func(*Options)) (*ec2.DescribeSpotInstanceRequestsOutput, error)
	// Describes the Spot price history. For more information, see [Spot Instance pricing history] in the Amazon EC2
	// User Guide.
	//
	// When you specify a start and end time, the operation returns the prices of the
	// instance types within that time range. It also returns the last price change
	// before the start time, which is the effective price as of the start time.
	//
	// [Spot Instance pricing history]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances-history.html
	DescribeSpotPriceHistory(ctx context.Context, params *ec2.DescribeSpotPriceHistoryInput, optFns ...func(*Options)) (*ec2.DescribeSpotPriceHistoryOutput, error)
	// Describes the stale security group rules for security groups referenced across
	// a VPC peering connection, transit gateway connection, or with a security group
	// VPC association. Rules are stale when they reference a deleted security group.
	// Rules can also be stale if they reference a security group in a peer VPC for
	// which the VPC peering connection has been deleted, across a transit gateway
	// where the transit gateway has been deleted (or [the transit gateway security group referencing feature]has been disabled), or if a
	// security group VPC association has been disassociated.
	//
	// [the transit gateway security group referencing feature]: https://docs.aws.amazon.com/vpc/latest/tgw/tgw-vpc-attachments.html#vpc-attachment-security
	DescribeStaleSecurityGroups(ctx context.Context, params *ec2.DescribeStaleSecurityGroupsInput, optFns ...func(*Options)) (*ec2.DescribeStaleSecurityGroupsOutput, error)
	// Describes the progress of the AMI store tasks. You can describe the store tasks
	// for specified AMIs. If you don't specify the AMIs, you get a paginated list of
	// store tasks from the last 31 days.
	//
	// For each AMI task, the response indicates if the task is InProgress , Completed
	// , or Failed . For tasks InProgress , the response shows the estimated progress
	// as a percentage.
	//
	// Tasks are listed in reverse chronological order. Currently, only tasks from the
	// past 31 days can be viewed.
	//
	// To use this API, you must have the required permissions. For more information,
	// see [Permissions for storing and restoring AMIs using S3]in the Amazon EC2 User Guide.
	//
	// For more information, see [Store and restore an AMI using S3] in the Amazon EC2 User Guide.
	//
	// [Store and restore an AMI using S3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html
	// [Permissions for storing and restoring AMIs using S3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-ami-store-restore.html#ami-s3-permissions
	DescribeStoreImageTasks(ctx context.Context, params *ec2.DescribeStoreImageTasksInput, optFns ...func(*Options)) (*ec2.DescribeStoreImageTasksOutput, error)
	// Describes your subnets. The default is to describe all your subnets.
	// Alternatively, you can specify specific subnet IDs or filter the results to
	// include only the subnets that match specific criteria.
	//
	// For more information, see [Subnets] in the Amazon VPC User Guide.
	//
	// [Subnets]: https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html
	DescribeSubnets(ctx context.Context, params *ec2.DescribeSubnetsInput, optFns ...func(*Options)) (*ec2.DescribeSubnetsOutput, error)
	// Describes the specified tags for your EC2 resources.
	//
	// For more information about tags, see [Tag your Amazon EC2 resources] in the Amazon Elastic Compute Cloud User
	// Guide.
	//
	// We strongly recommend using only paginated requests. Unpaginated requests are
	// susceptible to throttling and timeouts.
	//
	// The order of the elements in the response, including those within nested
	// structures, might vary. Applications should not assume the elements appear in a
	// particular order.
	//
	// [Tag your Amazon EC2 resources]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html
	DescribeTags(ctx context.Context, params *ec2.DescribeTagsInput, optFns ...func(*Options)) (*ec2.DescribeTagsOutput, error)
	// Describe traffic mirror filters that determine the traffic that is mirrored.
	DescribeTrafficMirrorFilterRules(ctx context.Context, params *ec2.DescribeTrafficMirrorFilterRulesInput, optFns ...func(*Options)) (*ec2.DescribeTrafficMirrorFilterRulesOutput, error)
	// Describes one or more Traffic Mirror filters.
	DescribeTrafficMirrorFilters(ctx context.Context, params *ec2.DescribeTrafficMirrorFiltersInput, optFns ...func(*Options)) (*ec2.DescribeTrafficMirrorFiltersOutput, error)
	// Describes one or more Traffic Mirror sessions. By default, all Traffic Mirror
	// sessions are described. Alternatively, you can filter the results.
	DescribeTrafficMirrorSessions(ctx context.Context, params *ec2.DescribeTrafficMirrorSessionsInput, optFns ...func(*Options)) (*ec2.DescribeTrafficMirrorSessionsOutput, error)
	// Information about one or more Traffic Mirror targets.
	DescribeTrafficMirrorTargets(ctx context.Context, params *ec2.DescribeTrafficMirrorTargetsInput, optFns ...func(*Options)) (*ec2.DescribeTrafficMirrorTargetsOutput, error)
	// Describes one or more attachments between resources and transit gateways. By
	// default, all attachments are described. Alternatively, you can filter the
	// results by attachment ID, attachment state, resource ID, or resource owner.
	DescribeTransitGatewayAttachments(ctx context.Context, params *ec2.DescribeTransitGatewayAttachmentsInput, optFns ...func(*Options)) (*ec2.DescribeTransitGatewayAttachmentsOutput, error)
	// Describes one or more Connect peers.
	DescribeTransitGatewayConnectPeers(ctx context.Context, params *ec2.DescribeTransitGatewayConnectPeersInput, optFns ...func(*Options)) (*ec2.DescribeTransitGatewayConnectPeersOutput, error)
	// Describes one or more Connect attachments.
	DescribeTransitGatewayConnects(ctx context.Context, params *ec2.DescribeTransitGatewayConnectsInput, optFns ...func(*Options)) (*ec2.DescribeTransitGatewayConnectsOutput, error)
	// Describes one or more transit gateway metering policies.
	DescribeTransitGatewayMeteringPolicies(ctx context.Context, params *ec2.DescribeTransitGatewayMeteringPoliciesInput, optFns ...func(*Options)) (*ec2.DescribeTransitGatewayMeteringPoliciesOutput, error)
	// Describes one or more transit gateway multicast domains.
	DescribeTransitGatewayMulticastDomains(ctx context.Context, params *ec2.DescribeTransitGatewayMulticastDomainsInput, optFns ...func(*Options)) (*ec2.DescribeTransitGatewayMulticastDomainsOutput, error)
	// Describes your transit gateway peering attachments.
	DescribeTransitGatewayPeeringAttachments(ctx context.Context, params *ec2.DescribeTransitGatewayPeeringAttachmentsInput, optFns ...func(*Options)) (*ec2.DescribeTransitGatewayPeeringAttachmentsOutput, error)
	// Describes one or more transit gateway route policy tables.
	DescribeTransitGatewayPolicyTables(ctx context.Context, params *ec2.DescribeTransitGatewayPolicyTablesInput, optFns ...func(*Options)) (*ec2.DescribeTransitGatewayPolicyTablesOutput, error)
	// Describes one or more transit gateway route table advertisements.
	DescribeTransitGatewayRouteTableAnnouncements(ctx context.Context, params *ec2.DescribeTransitGatewayRouteTableAnnouncementsInput, optFns ...func(*Options)) (*ec2.DescribeTransitGatewayRouteTableAnnouncementsOutput, error)
	// Describes one or more transit gateway route tables. By default, all transit
	// gateway route tables are described. Alternatively, you can filter the results.
	DescribeTransitGatewayRouteTables(ctx context.Context, params *ec2.DescribeTransitGatewayRouteTablesInput, optFns ...func(*Options)) (*ec2.DescribeTransitGatewayRouteTablesOutput, error)
	// Describes one or more VPC attachments. By default, all VPC attachments are
	// described. Alternatively, you can filter the results.
	DescribeTransitGatewayVpcAttachments(ctx context.Context, params *ec2.DescribeTransitGatewayVpcAttachmentsInput, optFns ...func(*Options)) (*ec2.DescribeTransitGatewayVpcAttachmentsOutput, error)
	// Describes one or more transit gateways. By default, all transit gateways are
	// described. Alternatively, you can filter the results.
	DescribeTransitGateways(ctx context.Context, params *ec2.DescribeTransitGatewaysInput, optFns ...func(*Options)) (*ec2.DescribeTransitGatewaysOutput, error)
	// Describes one or more network interface trunk associations.
	DescribeTrunkInterfaceAssociations(ctx context.Context, params *ec2.DescribeTrunkInterfaceAssociationsInput, optFns ...func(*Options)) (*ec2.DescribeTrunkInterfaceAssociationsOutput, error)
	// Describes the specified Amazon Web Services Verified Access endpoints.
	DescribeVerifiedAccessEndpoints(ctx context.Context, params *ec2.DescribeVerifiedAccessEndpointsInput, optFns ...func(*Options)) (*ec2.DescribeVerifiedAccessEndpointsOutput, error)
	// Describes the specified Verified Access groups.
	DescribeVerifiedAccessGroups(ctx context.Context, params *ec2.DescribeVerifiedAccessGroupsInput, optFns ...func(*Options)) (*ec2.DescribeVerifiedAccessGroupsOutput, error)
	// Describes the specified Amazon Web Services Verified Access instances.
	DescribeVerifiedAccessInstanceLoggingConfigurations(ctx context.Context, params *ec2.DescribeVerifiedAccessInstanceLoggingConfigurationsInput, optFns ...func(*Options)) (*ec2.DescribeVerifiedAccessInstanceLoggingConfigurationsOutput, error)
	// Describes the specified Amazon Web Services Verified Access instances.
	DescribeVerifiedAccessInstances(ctx context.Context, params *ec2.DescribeVerifiedAccessInstancesInput, optFns ...func(*Options)) (*ec2.DescribeVerifiedAccessInstancesOutput, error)
	// Describes the specified Amazon Web Services Verified Access trust providers.
	DescribeVerifiedAccessTrustProviders(ctx context.Context, params *ec2.DescribeVerifiedAccessTrustProvidersInput, optFns ...func(*Options)) (*ec2.DescribeVerifiedAccessTrustProvidersOutput, error)
	// Describes the specified attribute of the specified volume. You can specify only
	// one attribute at a time.
	//
	// For more information about EBS volumes, see [Amazon EBS volumes] in the Amazon EBS User Guide.
	//
	// [Amazon EBS volumes]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html
	DescribeVolumeAttribute(ctx context.Context, params *ec2.DescribeVolumeAttributeInput, optFns ...func(*Options)) (*ec2.DescribeVolumeAttributeOutput, error)
	// Describes the status of the specified volumes. Volume status provides the
	// result of the checks performed on your volumes to determine events that can
	// impair the performance of your volumes. The performance of a volume can be
	// affected if an issue occurs on the volume's underlying host. If the volume's
	// underlying host experiences a power outage or system issue, after the system is
	// restored, there could be data inconsistencies on the volume. Volume events
	// notify you if this occurs. Volume actions notify you if any action needs to be
	// taken in response to the event.
	//
	// The DescribeVolumeStatus operation provides the following information about the
	// specified volumes:
	//
	// Status: Reflects the current status of the volume. The possible values are ok ,
	// impaired , warning , or insufficient-data . If all checks pass, the overall
	// status of the volume is ok . If the check fails, the overall status is impaired
	// . If the status is insufficient-data , then the checks might still be taking
	// place on your volume at the time. We recommend that you retry the request. For
	// more information about volume status, see [Monitor the status of your volumes]in the Amazon EBS User Guide.
	//
	// Events: Reflect the cause of a volume status and might require you to take
	// action. For example, if your volume returns an impaired status, then the volume
	// event might be potential-data-inconsistency . This means that your volume has
	// been affected by an issue with the underlying host, has all I/O operations
	// disabled, and might have inconsistent data.
	//
	// Actions: Reflect the actions you might have to take in response to an event.
	// For example, if the status of the volume is impaired and the volume event shows
	// potential-data-inconsistency , then the action shows enable-volume-io . This
	// means that you may want to enable the I/O operations for the volume and then
	// check the volume for data consistency. For more information, see [Work with an impaired EBS volume].
	//
	// Volume status is based on the volume status checks, and does not reflect the
	// volume state. Therefore, volume status does not indicate volumes in the error
	// state (for example, when a volume is incapable of accepting I/O.)
	//
	// The order of the elements in the response, including those within nested
	// structures, might vary. Applications should not assume the elements appear in a
	// particular order.
	//
	// [Monitor the status of your volumes]: https://docs.aws.amazon.com/ebs/latest/userguide/monitoring-volume-status.html
	// [Work with an impaired EBS volume]: https://docs.aws.amazon.com/ebs/latest/userguide/work_volumes_impaired.html
	DescribeVolumeStatus(ctx context.Context, params *ec2.DescribeVolumeStatusInput, optFns ...func(*Options)) (*ec2.DescribeVolumeStatusOutput, error)
	// Describes the specified EBS volumes or all of your EBS volumes.
	//
	// If you are describing a long list of volumes, we recommend that you paginate
	// the output to make the list more manageable. For more information, see [Pagination].
	//
	// For more information about EBS volumes, see [Amazon EBS volumes] in the Amazon EBS User Guide.
	//
	// We strongly recommend using only paginated requests. Unpaginated requests are
	// susceptible to throttling and timeouts.
	//
	// The order of the elements in the response, including those within nested
	// structures, might vary. Applications should not assume the elements appear in a
	// particular order.
	//
	// [Pagination]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination
	// [Amazon EBS volumes]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html
	DescribeVolumes(ctx context.Context, params *ec2.DescribeVolumesInput, optFns ...func(*Options)) (*ec2.DescribeVolumesOutput, error)
	// Describes the most recent volume modification request for the specified EBS
	// volumes.
	//
	// For more information, see [Monitor the progress of volume modifications] in the Amazon EBS User Guide.
	//
	// [Monitor the progress of volume modifications]: https://docs.aws.amazon.com/ebs/latest/userguide/monitoring-volume-modifications.html
	DescribeVolumesModifications(ctx context.Context, params *ec2.DescribeVolumesModificationsInput, optFns ...func(*Options)) (*ec2.DescribeVolumesModificationsOutput, error)
	// Describes the specified attribute of the specified VPC. You can specify only
	// one attribute at a time.
	DescribeVpcAttribute(ctx context.Context, params *ec2.DescribeVpcAttributeInput, optFns ...func(*Options)) (*ec2.DescribeVpcAttributeOutput, error)
	// Describe VPC Block Public Access (BPA) exclusions. A VPC BPA exclusion is a
	// mode that can be applied to a single VPC or subnet that exempts it from the
	// account’s BPA mode and will allow bidirectional or egress-only access. You can
	// create BPA exclusions for VPCs and subnets even when BPA is not enabled on the
	// account to ensure that there is no traffic disruption to the exclusions when VPC
	// BPA is turned on. To learn more about VPC BPA, see [Block public access to VPCs and subnets]in the Amazon VPC User Guide.
	//
	// [Block public access to VPCs and subnets]: https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html
	DescribeVpcBlockPublicAccessExclusions(ctx context.Context, params *ec2.DescribeVpcBlockPublicAccessExclusionsInput, optFns ...func(*Options)) (*ec2.DescribeVpcBlockPublicAccessExclusionsOutput, error)
	// Describe VPC Block Public Access (BPA) options. VPC Block Public Access (BPA)
	// enables you to block resources in VPCs and subnets that you own in a Region from
	// reaching or being reached from the internet through internet gateways and
	// egress-only internet gateways. To learn more about VPC BPA, see [Block public access to VPCs and subnets]in the Amazon
	// VPC User Guide.
	//
	// [Block public access to VPCs and subnets]: https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html
	DescribeVpcBlockPublicAccessOptions(ctx context.Context, params *ec2.DescribeVpcBlockPublicAccessOptionsInput, optFns ...func(*Options)) (*ec2.DescribeVpcBlockPublicAccessOptionsOutput, error)
	// This action is deprecated.
	//
	// Describes the ClassicLink status of the specified VPCs.
	DescribeVpcClassicLink(ctx context.Context, params *ec2.DescribeVpcClassicLinkInput, optFns ...func(*Options)) (*ec2.DescribeVpcClassicLinkOutput, error)
	// This action is deprecated.
	//
	// Describes the ClassicLink DNS support status of one or more VPCs. If enabled,
	// the DNS hostname of a linked EC2-Classic instance resolves to its private IP
	// address when addressed from an instance in the VPC to which it's linked.
	// Similarly, the DNS hostname of an instance in a VPC resolves to its private IP
	// address when addressed from a linked EC2-Classic instance.
	DescribeVpcClassicLinkDnsSupport(ctx context.Context, params *ec2.DescribeVpcClassicLinkDnsSupportInput, optFns ...func(*Options)) (*ec2.DescribeVpcClassicLinkDnsSupportOutput, error)
	// Describes one or more VPC Encryption Control configurations. VPC Encryption
	// Control enables you to enforce encryption for all data in transit within and
	// between VPCs to meet compliance requirements You can filter the results to
	// return information about specific encryption controls or VPCs.
	//
	// For more information, see [Enforce VPC encryption in transit] in the Amazon VPC User Guide.
	//
	// [Enforce VPC encryption in transit]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html
	DescribeVpcEncryptionControls(ctx context.Context, params *ec2.DescribeVpcEncryptionControlsInput, optFns ...func(*Options)) (*ec2.DescribeVpcEncryptionControlsOutput, error)
	// Describes the VPC resources, VPC endpoint services, Amazon Lattice services, or
	// service networks associated with the VPC endpoint.
	DescribeVpcEndpointAssociations(ctx context.Context, params *ec2.DescribeVpcEndpointAssociationsInput, optFns ...func(*Options)) (*ec2.DescribeVpcEndpointAssociationsOutput, error)
	// Describes the connection notifications for VPC endpoints and VPC endpoint
	// services.
	DescribeVpcEndpointConnectionNotifications(ctx context.Context, params *ec2.DescribeVpcEndpointConnectionNotificationsInput, optFns ...func(*Options)) (*ec2.DescribeVpcEndpointConnectionNotificationsOutput, error)
	// Describes the VPC endpoint connections to your VPC endpoint services, including
	// any endpoints that are pending your acceptance.
	DescribeVpcEndpointConnections(ctx context.Context, params *ec2.DescribeVpcEndpointConnectionsInput, optFns ...func(*Options)) (*ec2.DescribeVpcEndpointConnectionsOutput, error)
	// Describes the VPC endpoint service configurations in your account (your
	// services).
	DescribeVpcEndpointServiceConfigurations(ctx context.Context, params *ec2.DescribeVpcEndpointServiceConfigurationsInput, optFns ...func(*Options)) (*ec2.DescribeVpcEndpointServiceConfigurationsOutput, error)
	// Describes the principals (service consumers) that are permitted to discover
	// your VPC endpoint service. Principal ARNs with path components aren't supported.
	DescribeVpcEndpointServicePermissions(ctx context.Context, params *ec2.DescribeVpcEndpointServicePermissionsInput, optFns ...func(*Options)) (*ec2.DescribeVpcEndpointServicePermissionsOutput, error)
	// Describes available services to which you can create a VPC endpoint.
	//
	// When the service provider and the consumer have different accounts in multiple
	// Availability Zones, and the consumer views the VPC endpoint service information,
	// the response only includes the common Availability Zones. For example, when the
	// service provider account uses us-east-1a and us-east-1c and the consumer uses
	// us-east-1a and us-east-1b , the response includes the VPC endpoint services in
	// the common Availability Zone, us-east-1a .
	DescribeVpcEndpointServices(ctx context.Context, params *ec2.DescribeVpcEndpointServicesInput, optFns ...func(*Options)) (*ec2.DescribeVpcEndpointServicesOutput, error)
	// Describes your VPC endpoints. The default is to describe all your VPC
	// endpoints. Alternatively, you can specify specific VPC endpoint IDs or filter
	// the results to include only the VPC endpoints that match specific criteria.
	DescribeVpcEndpoints(ctx context.Context, params *ec2.DescribeVpcEndpointsInput, optFns ...func(*Options)) (*ec2.DescribeVpcEndpointsOutput, error)
	// Describes your VPC peering connections. The default is to describe all your VPC
	// peering connections. Alternatively, you can specify specific VPC peering
	// connection IDs or filter the results to include only the VPC peering connections
	// that match specific criteria.
	DescribeVpcPeeringConnections(ctx context.Context, params *ec2.DescribeVpcPeeringConnectionsInput, optFns ...func(*Options)) (*ec2.DescribeVpcPeeringConnectionsOutput, error)
	// Describes your VPCs. The default is to describe all your VPCs. Alternatively,
	// you can specify specific VPC IDs or filter the results to include only the VPCs
	// that match specific criteria.
	DescribeVpcs(ctx context.Context, params *ec2.DescribeVpcsInput, optFns ...func(*Options)) (*ec2.DescribeVpcsOutput, error)
	// Describes one or more of your VPN concentrators.
	DescribeVpnConcentrators(ctx context.Context, params *ec2.DescribeVpnConcentratorsInput, optFns ...func(*Options)) (*ec2.DescribeVpnConcentratorsOutput, error)
	// Describes one or more of your VPN connections.
	//
	// For more information, see [Amazon Web Services Site-to-Site VPN] in the Amazon Web Services Site-to-Site VPN User
	// Guide.
	//
	// [Amazon Web Services Site-to-Site VPN]: https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html
	DescribeVpnConnections(ctx context.Context, params *ec2.DescribeVpnConnectionsInput, optFns ...func(*Options)) (*ec2.DescribeVpnConnectionsOutput, error)
	// Describes one or more of your virtual private gateways.
	//
	// For more information, see [Amazon Web Services Site-to-Site VPN] in the Amazon Web Services Site-to-Site VPN User
	// Guide.
	//
	// [Amazon Web Services Site-to-Site VPN]: https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html
	DescribeVpnGateways(ctx context.Context, params *ec2.DescribeVpnGatewaysInput, optFns ...func(*Options)) (*ec2.DescribeVpnGatewaysOutput, error)
	// This action is deprecated.
	//
	// Unlinks (detaches) a linked EC2-Classic instance from a VPC. After the instance
	// has been unlinked, the VPC security groups are no longer associated with it. An
	// instance is automatically unlinked from a VPC when it's stopped.
	DetachClassicLinkVpc(ctx context.Context, params *ec2.DetachClassicLinkVpcInput, optFns ...func(*Options)) (*ec2.DetachClassicLinkVpcOutput, error)
	// Detaches an internet gateway from a VPC, disabling connectivity between the
	// internet and the VPC. The VPC must not contain any running instances with
	// Elastic IP addresses or public IPv4 addresses.
	DetachInternetGateway(ctx context.Context, params *ec2.DetachInternetGatewayInput, optFns ...func(*Options)) (*ec2.DetachInternetGatewayOutput, error)
	// Detaches a network interface from an instance.
	DetachNetworkInterface(ctx context.Context, params *ec2.DetachNetworkInterfaceInput, optFns ...func(*Options)) (*ec2.DetachNetworkInterfaceOutput, error)
	// Detaches the specified Amazon Web Services Verified Access trust provider from
	// the specified Amazon Web Services Verified Access instance.
	DetachVerifiedAccessTrustProvider(ctx context.Context, params *ec2.DetachVerifiedAccessTrustProviderInput, optFns ...func(*Options)) (*ec2.DetachVerifiedAccessTrustProviderOutput, error)
	// Detaches an EBS volume from an instance. Make sure to unmount any file systems
	// on the device within your operating system before detaching the volume. Failure
	// to do so can result in the volume becoming stuck in the busy state while
	// detaching. If this happens, detachment can be delayed indefinitely until you
	// unmount the volume, force detachment, reboot the instance, or all three. If an
	// EBS volume is the root device of an instance, it can't be detached while the
	// instance is running. To detach the root volume, stop the instance first.
	//
	// When a volume with an Amazon Web Services Marketplace product code is detached
	// from an instance, the product code is no longer associated with the instance.
	//
	// You can't detach or force detach volumes that are attached to Amazon Web
	// Services-managed resources. Attempting to do this results in the
	// UnsupportedOperationException exception.
	//
	// For more information, see [Detach an Amazon EBS volume] in the Amazon EBS User Guide.
	//
	// [Detach an Amazon EBS volume]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-detaching-volume.html
	DetachVolume(ctx context.Context, params *ec2.DetachVolumeInput, optFns ...func(*Options)) (*ec2.DetachVolumeOutput, error)
	// Detaches a virtual private gateway from a VPC. You do this if you're planning
	// to turn off the VPC and not use it anymore. You can confirm a virtual private
	// gateway has been completely detached from a VPC by describing the virtual
	// private gateway (any attachments to the virtual private gateway are also
	// described).
	//
	// You must wait for the attachment's state to switch to detached before you can
	// delete the VPC or attach a different VPC to the virtual private gateway.
	DetachVpnGateway(ctx context.Context, params *ec2.DetachVpnGatewayInput, optFns ...func(*Options)) (*ec2.DetachVpnGatewayOutput, error)
	// Disables Elastic IP address transfer. For more information, see [Transfer Elastic IP addresses] in the Amazon
	// VPC User Guide.
	//
	// [Transfer Elastic IP addresses]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro
	DisableAddressTransfer(ctx context.Context, params *ec2.DisableAddressTransferInput, optFns ...func(*Options)) (*ec2.DisableAddressTransferOutput, error)
	// Disables Allowed AMIs for your account in the specified Amazon Web Services
	// Region. When set to disabled , the image criteria in your Allowed AMIs settings
	// do not apply, and no restrictions are placed on AMI discoverability or usage.
	// Users in your account can launch instances using any public AMI or AMI shared
	// with your account.
	//
	// The Allowed AMIs feature does not restrict the AMIs owned by your account.
	// Regardless of the criteria you set, the AMIs created by your account will always
	// be discoverable and usable by users in your account.
	//
	// For more information, see [Control the discovery and use of AMIs in Amazon EC2 with Allowed AMIs] in Amazon EC2 User Guide.
	//
	// [Control the discovery and use of AMIs in Amazon EC2 with Allowed AMIs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html
	DisableAllowedImagesSettings(ctx context.Context, params *ec2.DisableAllowedImagesSettingsInput, optFns ...func(*Options)) (*ec2.DisableAllowedImagesSettingsOutput, error)
	// Disables Infrastructure Performance metric subscriptions.
	DisableAwsNetworkPerformanceMetricSubscription(ctx context.Context, params *ec2.DisableAwsNetworkPerformanceMetricSubscriptionInput, optFns ...func(*Options)) (*ec2.DisableAwsNetworkPerformanceMetricSubscriptionOutput, error)
	//	Disables EC2 Capacity Manager for your account. This stops data ingestion and
	//
	// removes access to capacity analytics and optimization recommendations.
	// Previously collected data is retained but no new data will be processed.
	DisableCapacityManager(ctx context.Context, params *ec2.DisableCapacityManagerInput, optFns ...func(*Options)) (*ec2.DisableCapacityManagerOutput, error)
	// Disables EBS encryption by default for your account in the current Region.
	//
	// After you disable encryption by default, you can still create encrypted volumes
	// by enabling encryption when you create each volume.
	//
	// Disabling encryption by default does not change the encryption status of your
	// existing volumes.
	//
	// For more information, see [Amazon EBS encryption] in the Amazon EBS User Guide.
	//
	// [Amazon EBS encryption]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html
	DisableEbsEncryptionByDefault(ctx context.Context, params *ec2.DisableEbsEncryptionByDefaultInput, optFns ...func(*Options)) (*ec2.DisableEbsEncryptionByDefaultOutput, error)
	// Discontinue Windows fast launch for a Windows AMI, and clean up existing
	// pre-provisioned snapshots. After you disable Windows fast launch, the AMI uses
	// the standard launch process for each new instance. Amazon EC2 must remove all
	// pre-provisioned snapshots before you can enable Windows fast launch again.
	//
	// You can only change these settings for Windows AMIs that you own or that have
	// been shared with you.
	DisableFastLaunch(ctx context.Context, params *ec2.DisableFastLaunchInput, optFns ...func(*Options)) (*ec2.DisableFastLaunchOutput, error)
	// Disables fast snapshot restores for the specified snapshots in the specified
	// Availability Zones.
	DisableFastSnapshotRestores(ctx context.Context, params *ec2.DisableFastSnapshotRestoresInput, optFns ...func(*Options)) (*ec2.DisableFastSnapshotRestoresOutput, error)
	// Sets the AMI state to disabled and removes all launch permissions from the AMI.
	// A disabled AMI can't be used for instance launches.
	//
	// A disabled AMI can't be shared. If an AMI was public or previously shared, it
	// is made private. If an AMI was shared with an Amazon Web Services account,
	// organization, or Organizational Unit, they lose access to the disabled AMI.
	//
	// A disabled AMI does not appear in [DescribeImages] API calls by default.
	//
	// Only the AMI owner can disable an AMI.
	//
	// You can re-enable a disabled AMI using [EnableImage].
	//
	// For more information, see [Disable an AMI] in the Amazon EC2 User Guide.
	//
	// [DescribeImages]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html
	// [Disable an AMI]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/disable-an-ami.html
	// [EnableImage]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EnableImage.html
	DisableImage(ctx context.Context, params *ec2.DisableImageInput, optFns ...func(*Options)) (*ec2.DisableImageOutput, error)
	// Disables block public access for AMIs at the account level in the specified
	// Amazon Web Services Region. This removes the block public access restriction
	// from your account. With the restriction removed, you can publicly share your
	// AMIs in the specified Amazon Web Services Region.
	//
	// For more information, see [Block public access to your AMIs] in the Amazon EC2 User Guide.
	//
	// [Block public access to your AMIs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-public-access-to-amis.html
	DisableImageBlockPublicAccess(ctx context.Context, params *ec2.DisableImageBlockPublicAccessInput, optFns ...func(*Options)) (*ec2.DisableImageBlockPublicAccessOutput, error)
	// Cancels the deprecation of the specified AMI.
	//
	// For more information, see [Deprecate an Amazon EC2 AMI] in the Amazon EC2 User Guide.
	//
	// [Deprecate an Amazon EC2 AMI]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html
	DisableImageDeprecation(ctx context.Context, params *ec2.DisableImageDeprecationInput, optFns ...func(*Options)) (*ec2.DisableImageDeprecationOutput, error)
	// Disables deregistration protection for an AMI. When deregistration protection
	// is disabled, the AMI can be deregistered.
	//
	// If you chose to include a 24-hour cooldown period when you enabled
	// deregistration protection for the AMI, then, when you disable deregistration
	// protection, you won’t immediately be able to deregister the AMI.
	//
	// For more information, see [Protect an Amazon EC2 AMI from deregistration] in the Amazon EC2 User Guide.
	//
	// [Protect an Amazon EC2 AMI from deregistration]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deregistration-protection.html
	DisableImageDeregistrationProtection(ctx context.Context, params *ec2.DisableImageDeregistrationProtectionInput, optFns ...func(*Options)) (*ec2.DisableImageDeregistrationProtectionOutput, error)
	// Disable Amazon EC2 instances running in an SQL Server High Availability cluster
	// from SQL Server High Availability instance standby detection monitoring. Once
	// disabled, Amazon Web Services no longer monitors the metadata for the instances
	// to determine whether they are active or standby nodes in the SQL Server High
	// Availability cluster.
	DisableInstanceSqlHaStandbyDetections(ctx context.Context, params *ec2.DisableInstanceSqlHaStandbyDetectionsInput, optFns ...func(*Options)) (*ec2.DisableInstanceSqlHaStandbyDetectionsOutput, error)
	// Disable the IPAM account. For more information, see [Enable integration with Organizations] in the Amazon VPC IPAM
	// User Guide.
	//
	// [Enable integration with Organizations]: https://docs.aws.amazon.com/vpc/latest/ipam/enable-integ-ipam.html
	DisableIpamOrganizationAdminAccount(ctx context.Context, params *ec2.DisableIpamOrganizationAdminAccountInput, optFns ...func(*Options)) (*ec2.DisableIpamOrganizationAdminAccountOutput, error)
	// Disables an IPAM policy.
	//
	// An IPAM policy is a set of rules that define how public IPv4 addresses from
	// IPAM pools are allocated to Amazon Web Services resources. Each rule maps an
	// Amazon Web Services service to IPAM pools that the service will use to get IP
	// addresses. A single policy can have multiple rules and be applied to multiple
	// Amazon Web Services Regions. If the IPAM pool run out of addresses then the
	// services fallback to Amazon-provided IP addresses. A policy can be applied to an
	// individual Amazon Web Services account or an entity within Amazon Web Services
	// Organizations.
	DisableIpamPolicy(ctx context.Context, params *ec2.DisableIpamPolicyInput, optFns ...func(*Options)) (*ec2.DisableIpamPolicyOutput, error)
	// Disables route propagation from a route server to a specified route table.
	//
	// When enabled, route server propagation installs the routes in the FIB on the
	// route table you've specified. Route server supports IPv4 and IPv6 route
	// propagation.
	//
	// Amazon VPC Route Server simplifies routing for traffic between workloads that
	// are deployed within a VPC and its internet gateways. With this feature, VPC
	// Route Server dynamically updates VPC and internet gateway route tables with your
	// preferred IPv4 or IPv6 routes to achieve routing fault tolerance for those
	// workloads. This enables you to automatically reroute traffic within a VPC, which
	// increases the manageability of VPC routing and interoperability with third-party
	// workloads.
	//
	// Route server supports the follow route table types:
	//
	//   - VPC route tables not associated with subnets
	//
	//   - Subnet route tables
	//
	//   - Internet gateway route tables
	//
	// Route server does not support route tables associated with virtual private
	// gateways. To propagate routes into a transit gateway route table, use [Transit Gateway Connect].
	//
	// For more information see [Dynamic routing in your VPC with VPC Route Server] in the Amazon VPC User Guide.
	//
	// [Dynamic routing in your VPC with VPC Route Server]: https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html
	// [Transit Gateway Connect]: https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html
	DisableRouteServerPropagation(ctx context.Context, params *ec2.DisableRouteServerPropagationInput, optFns ...func(*Options)) (*ec2.DisableRouteServerPropagationOutput, error)
	// Disables access to the EC2 serial console of all instances for your account. By
	// default, access to the EC2 serial console is disabled for your account. For more
	// information, see [Manage account access to the EC2 serial console]in the Amazon EC2 User Guide.
	//
	// [Manage account access to the EC2 serial console]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access
	DisableSerialConsoleAccess(ctx context.Context, params *ec2.DisableSerialConsoleAccessInput, optFns ...func(*Options)) (*ec2.DisableSerialConsoleAccessOutput, error)
	// Disables the block public access for snapshots setting at the account level for
	// the specified Amazon Web Services Region. After you disable block public access
	// for snapshots in a Region, users can publicly share snapshots in that Region.
	//
	// Enabling block public access for snapshots in block-all-sharing mode does not
	// change the permissions for snapshots that are already publicly shared. Instead,
	// it prevents these snapshots from be publicly visible and publicly accessible.
	// Therefore, the attributes for these snapshots still indicate that they are
	// publicly shared, even though they are not publicly available.
	//
	// If you disable block public access , these snapshots will become publicly
	// available again.
	//
	// For more information, see [Block public access for snapshots] in the Amazon EBS User Guide .
	//
	// [Block public access for snapshots]: https://docs.aws.amazon.com/ebs/latest/userguide/block-public-access-snapshots.html
	DisableSnapshotBlockPublicAccess(ctx context.Context, params *ec2.DisableSnapshotBlockPublicAccessInput, optFns ...func(*Options)) (*ec2.DisableSnapshotBlockPublicAccessOutput, error)
	// Disables the specified resource attachment from propagating routes to the
	// specified propagation route table.
	DisableTransitGatewayRouteTablePropagation(ctx context.Context, params *ec2.DisableTransitGatewayRouteTablePropagationInput, optFns ...func(*Options)) (*ec2.DisableTransitGatewayRouteTablePropagationOutput, error)
	// Disables a virtual private gateway (VGW) from propagating routes to a specified
	// route table of a VPC.
	DisableVgwRoutePropagation(ctx context.Context, params *ec2.DisableVgwRoutePropagationInput, optFns ...func(*Options)) (*ec2.DisableVgwRoutePropagationOutput, error)
	// This action is deprecated.
	//
	// Disables ClassicLink for a VPC. You cannot disable ClassicLink for a VPC that
	// has EC2-Classic instances linked to it.
	DisableVpcClassicLink(ctx context.Context, params *ec2.DisableVpcClassicLinkInput, optFns ...func(*Options)) (*ec2.DisableVpcClassicLinkOutput, error)
	// This action is deprecated.
	//
	// Disables ClassicLink DNS support for a VPC. If disabled, DNS hostnames resolve
	// to public IP addresses when addressed between a linked EC2-Classic instance and
	// instances in the VPC to which it's linked.
	//
	// You must specify a VPC ID in the request.
	DisableVpcClassicLinkDnsSupport(ctx context.Context, params *ec2.DisableVpcClassicLinkDnsSupportInput, optFns ...func(*Options)) (*ec2.DisableVpcClassicLinkDnsSupportOutput, error)
	// Disassociates an Elastic IP address from the instance or network interface it's
	// associated with.
	//
	// This is an idempotent operation. If you perform the operation more than once,
	// Amazon EC2 doesn't return an error.
	//
	// An address cannot be disassociated if the all of the following conditions are
	// met:
	//
	//   - Network interface has a publicDualStackDnsName publicDnsName
	//
	//   - Public IPv4 address is the primary public IPv4 address
	//
	//   - Network interface only has one remaining public IPv4 address
	DisassociateAddress(ctx context.Context, params *ec2.DisassociateAddressInput, optFns ...func(*Options)) (*ec2.DisassociateAddressOutput, error)
	// Cancels a pending request to assign billing of the unused capacity of a
	// Capacity Reservation to a consumer account, or revokes a request that has
	// already been accepted. For more information, see [Billing assignment for shared Amazon EC2 Capacity Reservations].
	//
	// [Billing assignment for shared Amazon EC2 Capacity Reservations]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/assign-billing.html
	DisassociateCapacityReservationBillingOwner(ctx context.Context, params *ec2.DisassociateCapacityReservationBillingOwnerInput, optFns ...func(*Options)) (*ec2.DisassociateCapacityReservationBillingOwnerOutput, error)
	// Disassociates a target network from the specified Client VPN endpoint. When you
	// disassociate the last target network from a Client VPN, the following happens:
	//
	//   - The route that was automatically added for the VPC is deleted
	//
	//   - All active client connections are terminated
	//
	//   - New client connections are disallowed
	//
	//   - The Client VPN endpoint's status changes to pending-associate
	DisassociateClientVpnTargetNetwork(ctx context.Context, params *ec2.DisassociateClientVpnTargetNetworkInput, optFns ...func(*Options)) (*ec2.DisassociateClientVpnTargetNetworkOutput, error)
	// Disassociates an IAM role from an Certificate Manager (ACM) certificate.
	// Disassociating an IAM role from an ACM certificate removes the Amazon S3 object
	// that contains the certificate, certificate chain, and encrypted private key from
	// the Amazon S3 bucket. It also revokes the IAM role's permission to use the KMS
	// key used to encrypt the private key. This effectively revokes the role's
	// permission to use the certificate.
	DisassociateEnclaveCertificateIamRole(ctx context.Context, params *ec2.DisassociateEnclaveCertificateIamRoleInput, optFns ...func(*Options)) (*ec2.DisassociateEnclaveCertificateIamRoleOutput, error)
	// Disassociates an IAM instance profile from a running or stopped instance.
	//
	// Use DescribeIamInstanceProfileAssociations to get the association ID.
	DisassociateIamInstanceProfile(ctx context.Context, params *ec2.DisassociateIamInstanceProfileInput, optFns ...func(*Options)) (*ec2.DisassociateIamInstanceProfileOutput, error)
	// Disassociates one or more targets from an event window.
	//
	// For more information, see [Define event windows for scheduled events] in the Amazon EC2 User Guide.
	//
	// [Define event windows for scheduled events]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html
	DisassociateInstanceEventWindow(ctx context.Context, params *ec2.DisassociateInstanceEventWindowInput, optFns ...func(*Options)) (*ec2.DisassociateInstanceEventWindowOutput, error)
	// Remove the association between your Autonomous System Number (ASN) and your
	// BYOIP CIDR. You may want to use this action to disassociate an ASN from a CIDR
	// or if you want to swap ASNs. For more information, see [Tutorial: Bring your ASN to IPAM]in the Amazon VPC IPAM
	// guide.
	//
	// [Tutorial: Bring your ASN to IPAM]: https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoasn.html
	DisassociateIpamByoasn(ctx context.Context, params *ec2.DisassociateIpamByoasnInput, optFns ...func(*Options)) (*ec2.DisassociateIpamByoasnOutput, error)
	// Disassociates a resource discovery from an Amazon VPC IPAM. A resource
	// discovery is an IPAM component that enables IPAM to manage and monitor resources
	// that belong to the owning account.
	DisassociateIpamResourceDiscovery(ctx context.Context, params *ec2.DisassociateIpamResourceDiscoveryInput, optFns ...func(*Options)) (*ec2.DisassociateIpamResourceDiscoveryOutput, error)
	// Disassociates secondary Elastic IP addresses (EIPs) from a public NAT gateway.
	// You cannot disassociate your primary EIP. For more information, see [Edit secondary IP address associations]in the
	// Amazon VPC User Guide.
	//
	// While disassociating is in progress, you cannot associate/disassociate
	// additional EIPs while the connections are being drained. You are, however,
	// allowed to delete the NAT gateway.
	//
	// An EIP is released only at the end of MaxDrainDurationSeconds. It stays
	// associated and supports the existing connections but does not support any new
	// connections (new connections are distributed across the remaining associated
	// EIPs). As the existing connections drain out, the EIPs (and the corresponding
	// private IP addresses mapped to them) are released.
	//
	// [Edit secondary IP address associations]: https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html#nat-gateway-edit-secondary
	DisassociateNatGatewayAddress(ctx context.Context, params *ec2.DisassociateNatGatewayAddressInput, optFns ...func(*Options)) (*ec2.DisassociateNatGatewayAddressOutput, error)
	// Disassociates a route server from a VPC.
	//
	// A route server association is the connection established between a route server
	// and a VPC.
	//
	// For more information see [Dynamic routing in your VPC with VPC Route Server] in the Amazon VPC User Guide.
	//
	// [Dynamic routing in your VPC with VPC Route Server]: https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html
	DisassociateRouteServer(ctx context.Context, params *ec2.DisassociateRouteServerInput, optFns ...func(*Options)) (*ec2.DisassociateRouteServerOutput, error)
	// Disassociates a subnet or gateway from a route table.
	//
	// After you perform this action, the subnet no longer uses the routes in the
	// route table. Instead, it uses the routes in the VPC's main route table. For more
	// information about route tables, see [Route tables]in the Amazon VPC User Guide.
	//
	// [Route tables]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html
	DisassociateRouteTable(ctx context.Context, params *ec2.DisassociateRouteTableInput, optFns ...func(*Options)) (*ec2.DisassociateRouteTableOutput, error)
	// Disassociates a security group from a VPC. You cannot disassociate the security
	// group if any Elastic network interfaces in the associated VPC are still
	// associated with the security group.
	//
	// Note that the disassociation is asynchronous and you can check the status of
	// the request with [DescribeSecurityGroupVpcAssociations].
	//
	// [DescribeSecurityGroupVpcAssociations]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroupVpcAssociations.html
	DisassociateSecurityGroupVpc(ctx context.Context, params *ec2.DisassociateSecurityGroupVpcInput, optFns ...func(*Options)) (*ec2.DisassociateSecurityGroupVpcOutput, error)
	// Disassociates a CIDR block from a subnet. Currently, you can disassociate an
	// IPv6 CIDR block only. You must detach or delete all gateways and resources that
	// are associated with the CIDR block before you can disassociate it.
	DisassociateSubnetCidrBlock(ctx context.Context, params *ec2.DisassociateSubnetCidrBlockInput, optFns ...func(*Options)) (*ec2.DisassociateSubnetCidrBlockOutput, error)
	// Disassociates the specified subnets from the transit gateway multicast domain.
	DisassociateTransitGatewayMulticastDomain(ctx context.Context, params *ec2.DisassociateTransitGatewayMulticastDomainInput, optFns ...func(*Options)) (*ec2.DisassociateTransitGatewayMulticastDomainOutput, error)
	// Removes the association between an an attachment and a policy table.
	DisassociateTransitGatewayPolicyTable(ctx context.Context, params *ec2.DisassociateTransitGatewayPolicyTableInput, optFns ...func(*Options)) (*ec2.DisassociateTransitGatewayPolicyTableOutput, error)
	// Disassociates a resource attachment from a transit gateway route table.
	DisassociateTransitGatewayRouteTable(ctx context.Context, params *ec2.DisassociateTransitGatewayRouteTableInput, optFns ...func(*Options)) (*ec2.DisassociateTransitGatewayRouteTableOutput, error)
	// Removes an association between a branch network interface with a trunk network
	// interface.
	DisassociateTrunkInterface(ctx context.Context, params *ec2.DisassociateTrunkInterfaceInput, optFns ...func(*Options)) (*ec2.DisassociateTrunkInterfaceOutput, error)
	// Disassociates a CIDR block from a VPC. To disassociate the CIDR block, you must
	// specify its association ID. You can get the association ID by using DescribeVpcs. You must
	// detach or delete all gateways and resources that are associated with the CIDR
	// block before you can disassociate it.
	//
	// You cannot disassociate the CIDR block with which you originally created the
	// VPC (the primary CIDR block).
	DisassociateVpcCidrBlock(ctx context.Context, params *ec2.DisassociateVpcCidrBlockInput, optFns ...func(*Options)) (*ec2.DisassociateVpcCidrBlockOutput, error)
	// Enables Elastic IP address transfer. For more information, see [Transfer Elastic IP addresses] in the Amazon
	// VPC User Guide.
	//
	// [Transfer Elastic IP addresses]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro
	EnableAddressTransfer(ctx context.Context, params *ec2.EnableAddressTransferInput, optFns ...func(*Options)) (*ec2.EnableAddressTransferOutput, error)
	// Enables Allowed AMIs for your account in the specified Amazon Web Services
	// Region. Two values are accepted:
	//
	//   - enabled : The image criteria in your Allowed AMIs settings are applied. As a
	//     result, only AMIs matching these criteria are discoverable and can be used by
	//     your account to launch instances.
	//
	//   - audit-mode : The image criteria in your Allowed AMIs settings are not
	//     applied. No restrictions are placed on AMI discoverability or usage. Users in
	//     your account can launch instances using any public AMI or AMI shared with your
	//     account.
	//
	// The purpose of audit-mode is to indicate which AMIs will be affected when
	//
	//	Allowed AMIs is enabled . In audit-mode , each AMI displays either
	//	"ImageAllowed": true or "ImageAllowed": false to indicate whether the AMI will
	//	be discoverable and available to users in the account when Allowed AMIs is
	//	enabled.
	//
	// The Allowed AMIs feature does not restrict the AMIs owned by your account.
	// Regardless of the criteria you set, the AMIs created by your account will always
	// be discoverable and usable by users in your account.
	//
	// For more information, see [Control the discovery and use of AMIs in Amazon EC2 with Allowed AMIs] in Amazon EC2 User Guide.
	//
	// [Control the discovery and use of AMIs in Amazon EC2 with Allowed AMIs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html
	EnableAllowedImagesSettings(ctx context.Context, params *ec2.EnableAllowedImagesSettingsInput, optFns ...func(*Options)) (*ec2.EnableAllowedImagesSettingsOutput, error)
	// Enables Infrastructure Performance subscriptions.
	EnableAwsNetworkPerformanceMetricSubscription(ctx context.Context, params *ec2.EnableAwsNetworkPerformanceMetricSubscriptionInput, optFns ...func(*Options)) (*ec2.EnableAwsNetworkPerformanceMetricSubscriptionOutput, error)
	//	Enables EC2 Capacity Manager for your account. This starts data ingestion for
	//
	// your EC2 capacity usage across On-Demand, Spot, and Capacity Reservations.
	// Initial data processing may take several hours to complete.
	EnableCapacityManager(ctx context.Context, params *ec2.EnableCapacityManagerInput, optFns ...func(*Options)) (*ec2.EnableCapacityManagerOutput, error)
	// Enables EBS encryption by default for your account in the current Region.
	//
	// After you enable encryption by default, the EBS volumes that you create are
	// always encrypted, either using the default KMS key or the KMS key that you
	// specified when you created each volume. For more information, see [Amazon EBS encryption]in the Amazon
	// EBS User Guide.
	//
	// Enabling encryption by default has no effect on the encryption status of your
	// existing volumes.
	//
	// After you enable encryption by default, you can no longer launch instances
	// using instance types that do not support encryption. For more information, see [Supported instance types].
	//
	// [Amazon EBS encryption]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html
	// [Supported instance types]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html#ebs-encryption_supported_instances
	EnableEbsEncryptionByDefault(ctx context.Context, params *ec2.EnableEbsEncryptionByDefaultInput, optFns ...func(*Options)) (*ec2.EnableEbsEncryptionByDefaultOutput, error)
	// When you enable Windows fast launch for a Windows AMI, images are
	// pre-provisioned, using snapshots to launch instances up to 65% faster. To create
	// the optimized Windows image, Amazon EC2 launches an instance and runs through
	// Sysprep steps, rebooting as required. Then it creates a set of reserved
	// snapshots that are used for subsequent launches. The reserved snapshots are
	// automatically replenished as they are used, depending on your settings for
	// launch frequency.
	//
	// You can only change these settings for Windows AMIs that you own or that have
	// been shared with you.
	EnableFastLaunch(ctx context.Context, params *ec2.EnableFastLaunchInput, optFns ...func(*Options)) (*ec2.EnableFastLaunchOutput, error)
	// Enables fast snapshot restores for the specified snapshots in the specified
	// Availability Zones.
	//
	// You get the full benefit of fast snapshot restores after they enter the enabled
	// state.
	//
	// For more information, see [Amazon EBS fast snapshot restore] in the Amazon EBS User Guide.
	//
	// [Amazon EBS fast snapshot restore]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-fast-snapshot-restore.html
	EnableFastSnapshotRestores(ctx context.Context, params *ec2.EnableFastSnapshotRestoresInput, optFns ...func(*Options)) (*ec2.EnableFastSnapshotRestoresOutput, error)
	// Re-enables a disabled AMI. The re-enabled AMI is marked as available and can be
	// used for instance launches, appears in describe operations, and can be shared.
	// Amazon Web Services accounts, organizations, and Organizational Units that lost
	// access to the AMI when it was disabled do not regain access automatically. Once
	// the AMI is available, it can be shared with them again.
	//
	// Only the AMI owner can re-enable a disabled AMI.
	//
	// For more information, see [Disable an Amazon EC2 AMI] in the Amazon EC2 User Guide.
	//
	// [Disable an Amazon EC2 AMI]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/disable-an-ami.html
	EnableImage(ctx context.Context, params *ec2.EnableImageInput, optFns ...func(*Options)) (*ec2.EnableImageOutput, error)
	// Enables block public access for AMIs at the account level in the specified
	// Amazon Web Services Region. This prevents the public sharing of your AMIs.
	// However, if you already have public AMIs, they will remain publicly available.
	//
	// The API can take up to 10 minutes to configure this setting. During this time,
	// if you run [GetImageBlockPublicAccessState], the response will be unblocked . When the API has completed the
	// configuration, the response will be block-new-sharing .
	//
	// For more information, see [Block public access to your AMIs] in the Amazon EC2 User Guide.
	//
	// [Block public access to your AMIs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-public-access-to-amis.html
	// [GetImageBlockPublicAccessState]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetImageBlockPublicAccessState.html
	EnableImageBlockPublicAccess(ctx context.Context, params *ec2.EnableImageBlockPublicAccessInput, optFns ...func(*Options)) (*ec2.EnableImageBlockPublicAccessOutput, error)
	// Enables deprecation of the specified AMI at the specified date and time.
	//
	// For more information, see [Deprecate an AMI] in the Amazon EC2 User Guide.
	//
	// [Deprecate an AMI]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html
	EnableImageDeprecation(ctx context.Context, params *ec2.EnableImageDeprecationInput, optFns ...func(*Options)) (*ec2.EnableImageDeprecationOutput, error)
	// Enables deregistration protection for an AMI. When deregistration protection is
	// enabled, the AMI can't be deregistered.
	//
	// To allow the AMI to be deregistered, you must first disable deregistration
	// protection.
	//
	// For more information, see [Protect an Amazon EC2 AMI from deregistration] in the Amazon EC2 User Guide.
	//
	// [Protect an Amazon EC2 AMI from deregistration]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deregistration-protection.html
	EnableImageDeregistrationProtection(ctx context.Context, params *ec2.EnableImageDeregistrationProtectionInput, optFns ...func(*Options)) (*ec2.EnableImageDeregistrationProtectionOutput, error)
	// Enable Amazon EC2 instances running in an SQL Server High Availability cluster
	// for SQL Server High Availability instance standby detection monitoring. Once
	// enabled, Amazon Web Services monitors the metadata for the instances to
	// determine whether they are active or standby nodes in the SQL Server High
	// Availability cluster. If the instances are determined to be standby failover
	// nodes, Amazon Web Services automatically applies SQL Server licensing fee waiver
	// for those instances.
	//
	// To register an instance, it must be running a Windows SQL Server
	// license-included AMI and have the Amazon Web Services Systems Manager agent
	// installed and running. Only Windows Server 2019 and later and SQL Server
	// (Standard and Enterprise editions) 2017 and later are supported. For more
	// information, see [Prerequisites for using SQL Server High Availability instance standby detection].
	//
	// [Prerequisites for using SQL Server High Availability instance standby detection]: https://docs.aws.amazon.com/sql-server-ec2/latest/userguide/prerequisites-and-requirements.html
	EnableInstanceSqlHaStandbyDetections(ctx context.Context, params *ec2.EnableInstanceSqlHaStandbyDetectionsInput, optFns ...func(*Options)) (*ec2.EnableInstanceSqlHaStandbyDetectionsOutput, error)
	// Enable an Organizations member account as the IPAM admin account. You cannot
	// select the Organizations management account as the IPAM admin account. For more
	// information, see [Enable integration with Organizations]in the Amazon VPC IPAM User Guide.
	//
	// [Enable integration with Organizations]: https://docs.aws.amazon.com/vpc/latest/ipam/enable-integ-ipam.html
	EnableIpamOrganizationAdminAccount(ctx context.Context, params *ec2.EnableIpamOrganizationAdminAccountInput, optFns ...func(*Options)) (*ec2.EnableIpamOrganizationAdminAccountOutput, error)
	// Enables an IPAM policy.
	//
	// An IPAM policy is a set of rules that define how public IPv4 addresses from
	// IPAM pools are allocated to Amazon Web Services resources. Each rule maps an
	// Amazon Web Services service to IPAM pools that the service will use to get IP
	// addresses. A single policy can have multiple rules and be applied to multiple
	// Amazon Web Services Regions. If the IPAM pool run out of addresses then the
	// services fallback to Amazon-provided IP addresses. A policy can be applied to an
	// individual Amazon Web Services account or an entity within Amazon Web Services
	// Organizations.
	//
	// For more information, see [Define public IPv4 allocation strategy with IPAM policies] in the Amazon VPC IPAM User Guide.
	//
	// [Define public IPv4 allocation strategy with IPAM policies]: https://docs.aws.amazon.com/vpc/latest/ipam/define-public-ipv4-allocation-strategy-with-ipam-policies.html
	EnableIpamPolicy(ctx context.Context, params *ec2.EnableIpamPolicyInput, optFns ...func(*Options)) (*ec2.EnableIpamPolicyOutput, error)
	// Establishes a trust relationship between Reachability Analyzer and
	// Organizations. This operation must be performed by the management account for
	// the organization.
	//
	// After you establish a trust relationship, a user in the management account or a
	// delegated administrator account can run a cross-account analysis using resources
	// from the member accounts.
	EnableReachabilityAnalyzerOrganizationSharing(ctx context.Context, params *ec2.EnableReachabilityAnalyzerOrganizationSharingInput, optFns ...func(*Options)) (*ec2.EnableReachabilityAnalyzerOrganizationSharingOutput, error)
	// Defines which route tables the route server can update with routes.
	//
	// When enabled, route server propagation installs the routes in the FIB on the
	// route table you've specified. Route server supports IPv4 and IPv6 route
	// propagation.
	//
	// For more information see [Dynamic routing in your VPC with VPC Route Server] in the Amazon VPC User Guide.
	//
	// [Dynamic routing in your VPC with VPC Route Server]: https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html
	EnableRouteServerPropagation(ctx context.Context, params *ec2.EnableRouteServerPropagationInput, optFns ...func(*Options)) (*ec2.EnableRouteServerPropagationOutput, error)
	// Enables access to the EC2 serial console of all instances for your account. By
	// default, access to the EC2 serial console is disabled for your account. For more
	// information, see [Manage account access to the EC2 serial console]in the Amazon EC2 User Guide.
	//
	// [Manage account access to the EC2 serial console]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access
	EnableSerialConsoleAccess(ctx context.Context, params *ec2.EnableSerialConsoleAccessInput, optFns ...func(*Options)) (*ec2.EnableSerialConsoleAccessOutput, error)
	// Enables or modifies the block public access for snapshots setting at the
	// account level for the specified Amazon Web Services Region. After you enable
	// block public access for snapshots in a Region, users can no longer request
	// public sharing for snapshots in that Region. Snapshots that are already publicly
	// shared are either treated as private or they remain publicly shared, depending
	// on the State that you specify.
	//
	// Enabling block public access for snapshots in block all sharing mode does not
	// change the permissions for snapshots that are already publicly shared. Instead,
	// it prevents these snapshots from be publicly visible and publicly accessible.
	// Therefore, the attributes for these snapshots still indicate that they are
	// publicly shared, even though they are not publicly available.
	//
	// If you later disable block public access or change the mode to block new
	// sharing, these snapshots will become publicly available again.
	//
	// For more information, see [Block public access for snapshots] in the Amazon EBS User Guide.
	//
	// [Block public access for snapshots]: https://docs.aws.amazon.com/ebs/latest/userguide/block-public-access-snapshots.html
	EnableSnapshotBlockPublicAccess(ctx context.Context, params *ec2.EnableSnapshotBlockPublicAccessInput, optFns ...func(*Options)) (*ec2.EnableSnapshotBlockPublicAccessOutput, error)
	// Enables the specified attachment to propagate routes to the specified
	// propagation route table.
	EnableTransitGatewayRouteTablePropagation(ctx context.Context, params *ec2.EnableTransitGatewayRouteTablePropagationInput, optFns ...func(*Options)) (*ec2.EnableTransitGatewayRouteTablePropagationOutput, error)
	// Enables a virtual private gateway (VGW) to propagate routes to the specified
	// route table of a VPC.
	EnableVgwRoutePropagation(ctx context.Context, params *ec2.EnableVgwRoutePropagationInput, optFns ...func(*Options)) (*ec2.EnableVgwRoutePropagationOutput, error)
	// Enables I/O operations for a volume that had I/O operations disabled because
	// the data on the volume was potentially inconsistent.
	EnableVolumeIO(ctx context.Context, params *ec2.EnableVolumeIOInput, optFns ...func(*Options)) (*ec2.EnableVolumeIOOutput, error)
	// This action is deprecated.
	//
	// Enables a VPC for ClassicLink. You can then link EC2-Classic instances to your
	// ClassicLink-enabled VPC to allow communication over private IP addresses. You
	// cannot enable your VPC for ClassicLink if any of your VPC route tables have
	// existing routes for address ranges within the 10.0.0.0/8 IP address range,
	// excluding local routes for VPCs in the 10.0.0.0/16 and 10.1.0.0/16 IP address
	// ranges.
	EnableVpcClassicLink(ctx context.Context, params *ec2.EnableVpcClassicLinkInput, optFns ...func(*Options)) (*ec2.EnableVpcClassicLinkOutput, error)
	// This action is deprecated.
	//
	// Enables a VPC to support DNS hostname resolution for ClassicLink. If enabled,
	// the DNS hostname of a linked EC2-Classic instance resolves to its private IP
	// address when addressed from an instance in the VPC to which it's linked.
	// Similarly, the DNS hostname of an instance in a VPC resolves to its private IP
	// address when addressed from a linked EC2-Classic instance.
	//
	// You must specify a VPC ID in the request.
	EnableVpcClassicLinkDnsSupport(ctx context.Context, params *ec2.EnableVpcClassicLinkDnsSupportInput, optFns ...func(*Options)) (*ec2.EnableVpcClassicLinkDnsSupportOutput, error)
	// Downloads the client certificate revocation list for the specified Client VPN
	// endpoint.
	ExportClientVpnClientCertificateRevocationList(ctx context.Context, params *ec2.ExportClientVpnClientCertificateRevocationListInput, optFns ...func(*Options)) (*ec2.ExportClientVpnClientCertificateRevocationListOutput, error)
	// Downloads the contents of the Client VPN endpoint configuration file for the
	// specified Client VPN endpoint. The Client VPN endpoint configuration file
	// includes the Client VPN endpoint and certificate information clients need to
	// establish a connection with the Client VPN endpoint.
	ExportClientVpnClientConfiguration(ctx context.Context, params *ec2.ExportClientVpnClientConfigurationInput, optFns ...func(*Options)) (*ec2.ExportClientVpnClientConfigurationOutput, error)
	// Exports an Amazon Machine Image (AMI) to a VM file. For more information, see [Exporting a VM directly from an Amazon Machine Image (AMI)]
	// in the VM Import/Export User Guide.
	//
	// [Exporting a VM directly from an Amazon Machine Image (AMI)]: https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport_image.html
	ExportImage(ctx context.Context, params *ec2.ExportImageInput, optFns ...func(*Options)) (*ec2.ExportImageOutput, error)
	// Exports routes from the specified transit gateway route table to the specified
	// S3 bucket. By default, all routes are exported. Alternatively, you can filter by
	// CIDR range.
	//
	// The routes are saved to the specified bucket in a JSON file. For more
	// information, see [Export route tables to Amazon S3]in the Amazon Web Services Transit Gateways Guide.
	//
	// [Export route tables to Amazon S3]: https://docs.aws.amazon.com/vpc/latest/tgw/tgw-route-tables.html#tgw-export-route-tables
	ExportTransitGatewayRoutes(ctx context.Context, params *ec2.ExportTransitGatewayRoutesInput, optFns ...func(*Options)) (*ec2.ExportTransitGatewayRoutesOutput, error)
	// Exports the client configuration for a Verified Access instance.
	ExportVerifiedAccessInstanceClientConfiguration(ctx context.Context, params *ec2.ExportVerifiedAccessInstanceClientConfigurationInput, optFns ...func(*Options)) (*ec2.ExportVerifiedAccessInstanceClientConfigurationOutput, error)
	// Returns the currently negotiated security parameters for an active VPN tunnel,
	// including IKE version, DH groups, encryption algorithms, and integrity
	// algorithms.
	GetActiveVpnTunnelStatus(ctx context.Context, params *ec2.GetActiveVpnTunnelStatusInput, optFns ...func(*Options)) (*ec2.GetActiveVpnTunnelStatusOutput, error)
	// Gets the current state of the Allowed AMIs setting and the list of Allowed AMIs
	// criteria at the account level in the specified Region.
	//
	// The Allowed AMIs feature does not restrict the AMIs owned by your account.
	// Regardless of the criteria you set, the AMIs created by your account will always
	// be discoverable and usable by users in your account.
	//
	// For more information, see [Control the discovery and use of AMIs in Amazon EC2 with Allowed AMIs] in Amazon EC2 User Guide.
	//
	// [Control the discovery and use of AMIs in Amazon EC2 with Allowed AMIs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html
	GetAllowedImagesSettings(ctx context.Context, params *ec2.GetAllowedImagesSettingsInput, optFns ...func(*Options)) (*ec2.GetAllowedImagesSettingsOutput, error)
	// Returns the IAM roles that are associated with the specified ACM (ACM)
	// certificate. It also returns the name of the Amazon S3 bucket and the Amazon S3
	// object key where the certificate, certificate chain, and encrypted private key
	// bundle are stored, and the ARN of the KMS key that's used to encrypt the private
	// key.
	GetAssociatedEnclaveCertificateIamRoles(ctx context.Context, params *ec2.GetAssociatedEnclaveCertificateIamRolesInput, optFns ...func(*Options)) (*ec2.GetAssociatedEnclaveCertificateIamRolesOutput, error)
	// Gets information about the IPv6 CIDR block associations for a specified IPv6
	// address pool.
	GetAssociatedIpv6PoolCidrs(ctx context.Context, params *ec2.GetAssociatedIpv6PoolCidrsInput, optFns ...func(*Options)) (*ec2.GetAssociatedIpv6PoolCidrsOutput, error)
	// Gets network performance data.
	GetAwsNetworkPerformanceData(ctx context.Context, params *ec2.GetAwsNetworkPerformanceDataInput, optFns ...func(*Options)) (*ec2.GetAwsNetworkPerformanceDataOutput, error)
	//	Retrieves the current configuration and status of EC2 Capacity Manager for
	//
	// your account, including enablement status, Organizations access settings, and
	// data ingestion status.
	GetCapacityManagerAttributes(ctx context.Context, params *ec2.GetCapacityManagerAttributesInput, optFns ...func(*Options)) (*ec2.GetCapacityManagerAttributesOutput, error)
	//	Retrieves capacity usage metrics for your EC2 resources. Returns time-series
	//
	// data for metrics like unused capacity, utilization rates, and costs across
	// On-Demand, Spot, and Capacity Reservations. Data can be grouped and filtered by
	// various dimensions such as region, account, and instance family.
	GetCapacityManagerMetricData(ctx context.Context, params *ec2.GetCapacityManagerMetricDataInput, optFns ...func(*Options)) (*ec2.GetCapacityManagerMetricDataOutput, error)
	//	Retrieves the available dimension values for capacity metrics within a
	//
	// specified time range. This is useful for discovering what accounts, regions,
	// instance families, and other dimensions have data available for filtering and
	// grouping.
	GetCapacityManagerMetricDimensions(ctx context.Context, params *ec2.GetCapacityManagerMetricDimensionsInput, optFns ...func(*Options)) (*ec2.GetCapacityManagerMetricDimensionsOutput, error)
	// Gets usage information about a Capacity Reservation. If the Capacity
	// Reservation is shared, it shows usage information for the Capacity Reservation
	// owner and each Amazon Web Services account that is currently using the shared
	// capacity. If the Capacity Reservation is not shared, it shows only the Capacity
	// Reservation owner's usage.
	GetCapacityReservationUsage(ctx context.Context, params *ec2.GetCapacityReservationUsageInput, optFns ...func(*Options)) (*ec2.GetCapacityReservationUsageOutput, error)
	// Describes the allocations from the specified customer-owned address pool.
	GetCoipPoolUsage(ctx context.Context, params *ec2.GetCoipPoolUsageInput, optFns ...func(*Options)) (*ec2.GetCoipPoolUsageOutput, error)
	// Gets the console output for the specified instance. For Linux instances, the
	// instance console output displays the exact console output that would normally be
	// displayed on a physical monitor attached to a computer. For Windows instances,
	// the instance console output includes the last three system event log errors.
	//
	// For more information, see [Instance console output] in the Amazon EC2 User Guide.
	//
	// [Instance console output]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html#instance-console-console-output
	GetConsoleOutput(ctx context.Context, params *ec2.GetConsoleOutputInput, optFns ...func(*Options)) (*ec2.GetConsoleOutputOutput, error)
	// Retrieve a JPG-format screenshot of a running instance to help with
	// troubleshooting.
	//
	// The returned content is Base64-encoded.
	//
	// For more information, see [Instance console output] in the Amazon EC2 User Guide.
	//
	// [Instance console output]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/troubleshoot-unreachable-instance.html#instance-console-console-output
	GetConsoleScreenshot(ctx context.Context, params *ec2.GetConsoleScreenshotInput, optFns ...func(*Options)) (*ec2.GetConsoleScreenshotOutput, error)
	// Retrieves a summary of the account status report.
	//
	// To view the full report, download it from the Amazon S3 bucket where it was
	// saved. Reports are accessible only when they have the complete status. Reports
	// with other statuses ( running , cancelled , or error ) are not available in the
	// S3 bucket. For more information about downloading objects from an S3 bucket, see
	// [Downloading objects]in the Amazon Simple Storage Service User Guide.
	//
	// For more information, see [Generating the account status report for declarative policies] in the Amazon Web Services Organizations User Guide.
	//
	// [Downloading objects]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html
	// [Generating the account status report for declarative policies]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative_status-report.html
	GetDeclarativePoliciesReportSummary(ctx context.Context, params *ec2.GetDeclarativePoliciesReportSummaryInput, optFns ...func(*Options)) (*ec2.GetDeclarativePoliciesReportSummaryOutput, error)
	// Describes the default credit option for CPU usage of a burstable performance
	// instance family.
	//
	// For more information, see [Burstable performance instances] in the Amazon EC2 User Guide.
	//
	// [Burstable performance instances]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html
	GetDefaultCreditSpecification(ctx context.Context, params *ec2.GetDefaultCreditSpecificationInput, optFns ...func(*Options)) (*ec2.GetDefaultCreditSpecificationOutput, error)
	// Describes the default KMS key for EBS encryption by default for your account in
	// this Region.
	//
	// For more information, see [Amazon EBS encryption] in the Amazon EBS User Guide.
	//
	// [Amazon EBS encryption]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html
	GetEbsDefaultKmsKeyId(ctx context.Context, params *ec2.GetEbsDefaultKmsKeyIdInput, optFns ...func(*Options)) (*ec2.GetEbsDefaultKmsKeyIdOutput, error)
	// Describes whether EBS encryption by default is enabled for your account in the
	// current Region.
	//
	// For more information, see [Amazon EBS encryption] in the Amazon EBS User Guide.
	//
	// [Amazon EBS encryption]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html
	GetEbsEncryptionByDefault(ctx context.Context, params *ec2.GetEbsEncryptionByDefaultInput, optFns ...func(*Options)) (*ec2.GetEbsEncryptionByDefaultOutput, error)
	// Gets the enabled IPAM policy.
	//
	// An IPAM policy is a set of rules that define how public IPv4 addresses from
	// IPAM pools are allocated to Amazon Web Services resources. Each rule maps an
	// Amazon Web Services service to IPAM pools that the service will use to get IP
	// addresses. A single policy can have multiple rules and be applied to multiple
	// Amazon Web Services Regions. If the IPAM pool run out of addresses then the
	// services fallback to Amazon-provided IP addresses. A policy can be applied to an
	// individual Amazon Web Services account or an entity within Amazon Web Services
	// Organizations.
	GetEnabledIpamPolicy(ctx context.Context, params *ec2.GetEnabledIpamPolicyInput, optFns ...func(*Options)) (*ec2.GetEnabledIpamPolicyOutput, error)
	// Generates a CloudFormation template that streamlines and automates the
	// integration of VPC flow logs with Amazon Athena. This make it easier for you to
	// query and gain insights from VPC flow logs data. Based on the information that
	// you provide, we configure resources in the template to do the following:
	//
	//   - Create a table in Athena that maps fields to a custom log format
	//
	//   - Create a Lambda function that updates the table with new partitions on a
	//     daily, weekly, or monthly basis
	//
	//   - Create a table partitioned between two timestamps in the past
	//
	//   - Create a set of named queries in Athena that you can use to get started
	//     quickly
	//
	// GetFlowLogsIntegrationTemplate does not support integration between Amazon Web
	// Services Transit Gateway Flow Logs and Amazon Athena.
	GetFlowLogsIntegrationTemplate(ctx context.Context, params *ec2.GetFlowLogsIntegrationTemplateInput, optFns ...func(*Options)) (*ec2.GetFlowLogsIntegrationTemplateOutput, error)
	// Lists the resource groups to which a Capacity Reservation has been added.
	GetGroupsForCapacityReservation(ctx context.Context, params *ec2.GetGroupsForCapacityReservationInput, optFns ...func(*Options)) (*ec2.GetGroupsForCapacityReservationOutput, error)
	// Preview a reservation purchase with configurations that match those of your
	// Dedicated Host. You must have active Dedicated Hosts in your account before you
	// purchase a reservation.
	//
	// This is a preview of the PurchaseHostReservation action and does not result in the offering being
	// purchased.
	GetHostReservationPurchasePreview(ctx context.Context, params *ec2.GetHostReservationPurchasePreviewInput, optFns ...func(*Options)) (*ec2.GetHostReservationPurchasePreviewOutput, error)
	// Retrieves the ancestry chain of the specified AMI, tracing its lineage back to
	// the root AMI. For more information, see [AMI ancestry]in Amazon EC2 User Guide.
	//
	// [AMI ancestry]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-ancestry.html
	GetImageAncestry(ctx context.Context, params *ec2.GetImageAncestryInput, optFns ...func(*Options)) (*ec2.GetImageAncestryOutput, error)
	// Gets the current state of block public access for AMIs at the account level in
	// the specified Amazon Web Services Region.
	//
	// For more information, see [Block public access to your AMIs] in the Amazon EC2 User Guide.
	//
	// [Block public access to your AMIs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-public-access-to-amis.html
	GetImageBlockPublicAccessState(ctx context.Context, params *ec2.GetImageBlockPublicAccessStateInput, optFns ...func(*Options)) (*ec2.GetImageBlockPublicAccessStateOutput, error)
	// Gets the default instance metadata service (IMDS) settings that are set at the
	// account level in the specified Amazon Web Services
 Region.
	//
	// For more information, see [Order of precedence for instance metadata options] in the Amazon EC2 User Guide.
	//
	// [Order of precedence for instance metadata options]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html#instance-metadata-options-order-of-precedence
	GetInstanceMetadataDefaults(ctx context.Context, params *ec2.GetInstanceMetadataDefaultsInput, optFns ...func(*Options)) (*ec2.GetInstanceMetadataDefaultsOutput, error)
	// Gets the public endorsement key associated with the Nitro Trusted Platform
	// Module (NitroTPM) for the specified instance.
	GetInstanceTpmEkPub(ctx context.Context, params *ec2.GetInstanceTpmEkPubInput, optFns ...func(*Options)) (*ec2.GetInstanceTpmEkPubOutput, error)
	// Returns a list of instance types with the specified instance attributes. You
	// can use the response to preview the instance types without launching instances.
	// Note that the response does not consider capacity.
	//
	// When you specify multiple parameters, you get instance types that satisfy all
	// of the specified parameters. If you specify multiple values for a parameter, you
	// get instance types that satisfy any of the specified values.
	//
	// For more information, see [Preview instance types with specified attributes], [Specify attributes for instance type selection for EC2 Fleet or Spot Fleet], and [Spot placement score] in the Amazon EC2 User Guide, and [Creating mixed instance groups using attribute-based instance type selection] in the
	// Amazon EC2 Auto Scaling User Guide.
	//
	// [Specify attributes for instance type selection for EC2 Fleet or Spot Fleet]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html
	// [Preview instance types with specified attributes]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html#ec2fleet-get-instance-types-from-instance-requirements
	// [Creating mixed instance groups using attribute-based instance type selection]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html
	// [Spot placement score]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html
	GetInstanceTypesFromInstanceRequirements(ctx context.Context, params *ec2.GetInstanceTypesFromInstanceRequirementsInput, optFns ...func(*Options)) (*ec2.GetInstanceTypesFromInstanceRequirementsOutput, error)
	// A binary representation of the UEFI variable store. Only non-volatile variables
	// are stored. This is a base64 encoded and zlib compressed binary value that must
	// be properly encoded.
	//
	// When you use [register-image] to create an AMI, you can create an exact copy of your variable
	// store by passing the UEFI data in the UefiData parameter. You can modify the
	// UEFI data by using the [python-uefivars tool]on GitHub. You can use the tool to convert the UEFI data
	// into a human-readable format (JSON), which you can inspect and modify, and then
	// convert back into the binary format to use with register-image.
	//
	// For more information, see [UEFI Secure Boot] in the Amazon EC2 User Guide.
	//
	// [UEFI Secure Boot]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/uefi-secure-boot.html
	// [python-uefivars tool]: https://github.com/awslabs/python-uefivars
	// [register-image]: https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html
	GetInstanceUefiData(ctx context.Context, params *ec2.GetInstanceUefiDataInput, optFns ...func(*Options)) (*ec2.GetInstanceUefiDataOutput, error)
	// Retrieve historical information about a CIDR within an IPAM scope. For more
	// information, see [View the history of IP addresses]in the Amazon VPC IPAM User Guide.
	//
	// [View the history of IP addresses]: https://docs.aws.amazon.com/vpc/latest/ipam/view-history-cidr-ipam.html
	GetIpamAddressHistory(ctx context.Context, params *ec2.GetIpamAddressHistoryInput, optFns ...func(*Options)) (*ec2.GetIpamAddressHistoryOutput, error)
	// Gets IPAM discovered accounts. A discovered account is an Amazon Web Services
	// account that is monitored under a resource discovery. If you have integrated
	// IPAM with Amazon Web Services Organizations, all accounts in the organization
	// are discovered accounts. Only the IPAM account can get all discovered accounts
	// in the organization.
	GetIpamDiscoveredAccounts(ctx context.Context, params *ec2.GetIpamDiscoveredAccountsInput, optFns ...func(*Options)) (*ec2.GetIpamDiscoveredAccountsOutput, error)
	// Gets the public IP addresses that have been discovered by IPAM.
	GetIpamDiscoveredPublicAddresses(ctx context.Context, params *ec2.GetIpamDiscoveredPublicAddressesInput, optFns ...func(*Options)) (*ec2.GetIpamDiscoveredPublicAddressesOutput, error)
	// Returns the resource CIDRs that are monitored as part of a resource discovery.
	// A discovered resource is a resource CIDR monitored under a resource discovery.
	// The following resources can be discovered: VPCs, Public IPv4 pools, VPC subnets,
	// and Elastic IP addresses.
	GetIpamDiscoveredResourceCidrs(ctx context.Context, params *ec2.GetIpamDiscoveredResourceCidrsInput, optFns ...func(*Options)) (*ec2.GetIpamDiscoveredResourceCidrsOutput, error)
	// Gets the allocation rules for an IPAM policy.
	//
	// An IPAM policy is a set of rules that define how public IPv4 addresses from
	// IPAM pools are allocated to Amazon Web Services resources. Each rule maps an
	// Amazon Web Services service to IPAM pools that the service will use to get IP
	// addresses. A single policy can have multiple rules and be applied to multiple
	// Amazon Web Services Regions. If the IPAM pool run out of addresses then the
	// services fallback to Amazon-provided IP addresses. A policy can be applied to an
	// individual Amazon Web Services account or an entity within Amazon Web Services
	// Organizations.
	//
	// Allocation rules are optional configurations within an IPAM policy that map
	// Amazon Web Services resource types to specific IPAM pools. If no rules are
	// defined, the resource types default to using Amazon-provided IP addresses.
	GetIpamPolicyAllocationRules(ctx context.Context, params *ec2.GetIpamPolicyAllocationRulesInput, optFns ...func(*Options)) (*ec2.GetIpamPolicyAllocationRulesOutput, error)
	// Gets the Amazon Web Services Organizations targets for an IPAM policy.
	//
	// An IPAM policy is a set of rules that define how public IPv4 addresses from
	// IPAM pools are allocated to Amazon Web Services resources. Each rule maps an
	// Amazon Web Services service to IPAM pools that the service will use to get IP
	// addresses. A single policy can have multiple rules and be applied to multiple
	// Amazon Web Services Regions. If the IPAM pool run out of addresses then the
	// services fallback to Amazon-provided IP addresses. A policy can be applied to an
	// individual Amazon Web Services account or an entity within Amazon Web Services
	// Organizations.
	//
	// A target can be an individual Amazon Web Services account or an entity within
	// an Amazon Web Services Organization to which an IPAM policy can be applied.
	GetIpamPolicyOrganizationTargets(ctx context.Context, params *ec2.GetIpamPolicyOrganizationTargetsInput, optFns ...func(*Options)) (*ec2.GetIpamPolicyOrganizationTargetsOutput, error)
	// Get a list of all the CIDR allocations in an IPAM pool. The Region you use
	// should be the IPAM pool locale. The locale is the Amazon Web Services Region
	// where this IPAM pool is available for allocations.
	//
	// If you use this action after [AllocateIpamPoolCidr] or [ReleaseIpamPoolAllocation], note that all EC2 API actions follow an [eventual consistency]
	// model.
	//
	// [ReleaseIpamPoolAllocation]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ReleaseIpamPoolAllocation.html
	// [AllocateIpamPoolCidr]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AllocateIpamPoolCidr.html
	// [eventual consistency]: https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html
	GetIpamPoolAllocations(ctx context.Context, params *ec2.GetIpamPoolAllocationsInput, optFns ...func(*Options)) (*ec2.GetIpamPoolAllocationsOutput, error)
	// Get the CIDRs provisioned to an IPAM pool.
	GetIpamPoolCidrs(ctx context.Context, params *ec2.GetIpamPoolCidrsInput, optFns ...func(*Options)) (*ec2.GetIpamPoolCidrsOutput, error)
	// Retrieves the CIDR selection rules for an IPAM prefix list resolver. Use this
	// operation to view the business logic that determines which CIDRs are selected
	// for synchronization with prefix lists.
	GetIpamPrefixListResolverRules(ctx context.Context, params *ec2.GetIpamPrefixListResolverRulesInput, optFns ...func(*Options)) (*ec2.GetIpamPrefixListResolverRulesOutput, error)
	// Retrieves the CIDR entries for a specific version of an IPAM prefix list
	// resolver. This shows the actual CIDRs that were selected and synchronized at a
	// particular point in time.
	GetIpamPrefixListResolverVersionEntries(ctx context.Context, params *ec2.GetIpamPrefixListResolverVersionEntriesInput, optFns ...func(*Options)) (*ec2.GetIpamPrefixListResolverVersionEntriesOutput, error)
	// Retrieves version information for an IPAM prefix list resolver.
	//
	// Each version is a snapshot of what CIDRs matched your rules at that moment in
	// time. The version number increments every time the CIDR list changes due to
	// infrastructure changes.
	//
	// Version example:
	//
	// Initial State (Version 1)
	//
	// Production environment:
	//
	//   - vpc-prod-web (10.1.0.0/16) - tagged env=prod
	//
	//   - vpc-prod-db (10.2.0.0/16) - tagged env=prod
	//
	// Resolver rule: Include all VPCs tagged env=prod
	//
	// Version 1 CIDRs: 10.1.0.0/16, 10.2.0.0/16
	//
	// Infrastructure Change (Version 2)
	//
	// New VPC added:
	//
	//   - vpc-prod-api (10.3.0.0/16) - tagged env=prod
	//
	// IPAM automatically detects the change and creates a new version.
	//
	// Version 2 CIDRs: 10.1.0.0/16, 10.2.0.0/16, 10.3.0.0/16
	GetIpamPrefixListResolverVersions(ctx context.Context, params *ec2.GetIpamPrefixListResolverVersionsInput, optFns ...func(*Options)) (*ec2.GetIpamPrefixListResolverVersionsOutput, error)
	// Returns resource CIDRs managed by IPAM in a given scope. If an IPAM is
	// associated with more than one resource discovery, the resource CIDRs across all
	// of the resource discoveries is returned. A resource discovery is an IPAM
	// component that enables IPAM to manage and monitor resources that belong to the
	// owning account.
	GetIpamResourceCidrs(ctx context.Context, params *ec2.GetIpamResourceCidrsInput, optFns ...func(*Options)) (*ec2.GetIpamResourceCidrsOutput, error)
	// Retrieves the configuration data of the specified instance. You can use this
	// data to create a launch template.
	//
	// This action calls on other describe actions to get instance information.
	// Depending on your instance configuration, you may need to allow the following
	// actions in your IAM policy: DescribeSpotInstanceRequests ,
	// DescribeInstanceCreditSpecifications , DescribeVolumes , and
	// DescribeInstanceAttribute . Or, you can allow describe* depending on your
	// instance requirements.
	GetLaunchTemplateData(ctx context.Context, params *ec2.GetLaunchTemplateDataInput, optFns ...func(*Options)) (*ec2.GetLaunchTemplateDataOutput, error)
	// Gets information about the resources that are associated with the specified
	// managed prefix list.
	GetManagedPrefixListAssociations(ctx context.Context, params *ec2.GetManagedPrefixListAssociationsInput, optFns ...func(*Options)) (*ec2.GetManagedPrefixListAssociationsOutput, error)
	// Gets information about the entries for a specified managed prefix list.
	GetManagedPrefixListEntries(ctx context.Context, params *ec2.GetManagedPrefixListEntriesInput, optFns ...func(*Options)) (*ec2.GetManagedPrefixListEntriesOutput, error)
	// Gets the findings for the specified Network Access Scope analysis.
	GetNetworkInsightsAccessScopeAnalysisFindings(ctx context.Context, params *ec2.GetNetworkInsightsAccessScopeAnalysisFindingsInput, optFns ...func(*Options)) (*ec2.GetNetworkInsightsAccessScopeAnalysisFindingsOutput, error)
	// Gets the content for the specified Network Access Scope.
	GetNetworkInsightsAccessScopeContent(ctx context.Context, params *ec2.GetNetworkInsightsAccessScopeContentInput, optFns ...func(*Options)) (*ec2.GetNetworkInsightsAccessScopeContentOutput, error)
	// Retrieves the encrypted administrator password for a running Windows instance.
	//
	// The Windows password is generated at boot by the EC2Config service or EC2Launch
	// scripts (Windows Server 2016 and later). This usually only happens the first
	// time an instance is launched. For more information, see [EC2Config]and [EC2Launch] in the Amazon EC2
	// User Guide.
	//
	// For the EC2Config service, the password is not generated for rebundled AMIs
	// unless Ec2SetPassword is enabled before bundling.
	//
	// The password is encrypted using the key pair that you specified when you
	// launched the instance. You must provide the corresponding key pair file.
	//
	// When you launch an instance, password generation and encryption may take a few
	// minutes. If you try to retrieve the password before it's available, the output
	// returns an empty string. We recommend that you wait up to 15 minutes after
	// launching an instance before trying to retrieve the generated password.
	//
	// [EC2Launch]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2launch.html
	// [EC2Config]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingConfig_WinAMI.html
	GetPasswordData(ctx context.Context, params *ec2.GetPasswordDataInput, optFns ...func(*Options)) (*ec2.GetPasswordDataOutput, error)
	// Returns a quote and exchange information for exchanging one or more specified
	// Convertible Reserved Instances for a new Convertible Reserved Instance. If the
	// exchange cannot be performed, the reason is returned in the response. Use AcceptReservedInstancesExchangeQuoteto
	// perform the exchange.
	GetReservedInstancesExchangeQuote(ctx context.Context, params *ec2.GetReservedInstancesExchangeQuoteInput, optFns ...func(*Options)) (*ec2.GetReservedInstancesExchangeQuoteOutput, error)
	// Gets information about the associations for the specified route server.
	//
	// A route server association is the connection established between a route server
	// and a VPC.
	//
	// For more information see [Dynamic routing in your VPC with VPC Route Server] in the Amazon VPC User Guide.
	//
	// [Dynamic routing in your VPC with VPC Route Server]: https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html
	GetRouteServerAssociations(ctx context.Context, params *ec2.GetRouteServerAssociationsInput, optFns ...func(*Options)) (*ec2.GetRouteServerAssociationsOutput, error)
	// Gets information about the route propagations for the specified route server.
	//
	// When enabled, route server propagation installs the routes in the FIB on the
	// route table you've specified. Route server supports IPv4 and IPv6 route
	// propagation.
	//
	// Amazon VPC Route Server simplifies routing for traffic between workloads that
	// are deployed within a VPC and its internet gateways. With this feature, VPC
	// Route Server dynamically updates VPC and internet gateway route tables with your
	// preferred IPv4 or IPv6 routes to achieve routing fault tolerance for those
	// workloads. This enables you to automatically reroute traffic within a VPC, which
	// increases the manageability of VPC routing and interoperability with third-party
	// workloads.
	//
	// Route server supports the follow route table types:
	//
	//   - VPC route tables not associated with subnets
	//
	//   - Subnet route tables
	//
	//   - Internet gateway route tables
	//
	// Route server does not support route tables associated with virtual private
	// gateways. To propagate routes into a transit gateway route table, use [Transit Gateway Connect].
	//
	// [Transit Gateway Connect]: https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html
	GetRouteServerPropagations(ctx context.Context, params *ec2.GetRouteServerPropagationsInput, optFns ...func(*Options)) (*ec2.GetRouteServerPropagationsOutput, error)
	// Gets the routing database for the specified route server. The [Routing Information Base (RIB)] serves as a
	// database that stores all the routing information and network topology data
	// collected by a router or routing system, such as routes learned from BGP peers.
	// The RIB is constantly updated as new routing information is received or existing
	// routes change. This ensures that the route server always has the most current
	// view of the network topology and can make optimal routing decisions.
	//
	// Amazon VPC Route Server simplifies routing for traffic between workloads that
	// are deployed within a VPC and its internet gateways. With this feature, VPC
	// Route Server dynamically updates VPC and internet gateway route tables with your
	// preferred IPv4 or IPv6 routes to achieve routing fault tolerance for those
	// workloads. This enables you to automatically reroute traffic within a VPC, which
	// increases the manageability of VPC routing and interoperability with third-party
	// workloads.
	//
	// Route server supports the follow route table types:
	//
	//   - VPC route tables not associated with subnets
	//
	//   - Subnet route tables
	//
	//   - Internet gateway route tables
	//
	// Route server does not support route tables associated with virtual private
	// gateways. To propagate routes into a transit gateway route table, use [Transit Gateway Connect].
	//
	// [Routing Information Base (RIB)]: https://en.wikipedia.org/wiki/Routing_table
	// [Transit Gateway Connect]: https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html
	GetRouteServerRoutingDatabase(ctx context.Context, params *ec2.GetRouteServerRoutingDatabaseInput, optFns ...func(*Options)) (*ec2.GetRouteServerRoutingDatabaseOutput, error)
	// Gets security groups that can be associated by the Amazon Web Services account
	// making the request with network interfaces in the specified VPC.
	GetSecurityGroupsForVpc(ctx context.Context, params *ec2.GetSecurityGroupsForVpcInput, optFns ...func(*Options)) (*ec2.GetSecurityGroupsForVpcOutput, error)
	// Retrieves the access status of your account to the EC2 serial console of all
	// instances. By default, access to the EC2 serial console is disabled for your
	// account. For more information, see [Manage account access to the EC2 serial console]in the Amazon EC2 User Guide.
	//
	// [Manage account access to the EC2 serial console]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configure-access-to-serial-console.html#serial-console-account-access
	GetSerialConsoleAccessStatus(ctx context.Context, params *ec2.GetSerialConsoleAccessStatusInput, optFns ...func(*Options)) (*ec2.GetSerialConsoleAccessStatusOutput, error)
	// Gets the current state of block public access for snapshots setting for the
	// account and Region.
	//
	// For more information, see [Block public access for snapshots] in the Amazon EBS User Guide.
	//
	// [Block public access for snapshots]: https://docs.aws.amazon.com/ebs/latest/userguide/block-public-access-snapshots.html
	GetSnapshotBlockPublicAccessState(ctx context.Context, params *ec2.GetSnapshotBlockPublicAccessStateInput, optFns ...func(*Options)) (*ec2.GetSnapshotBlockPublicAccessStateOutput, error)
	// Calculates the Spot placement score for a Region or Availability Zone based on
	// the specified target capacity and compute requirements.
	//
	// You can specify your compute requirements either by using
	// InstanceRequirementsWithMetadata and letting Amazon EC2 choose the optimal
	// instance types to fulfill your Spot request, or you can specify the instance
	// types by using InstanceTypes .
	//
	// For more information, see [Spot placement score] in the Amazon EC2 User Guide.
	//
	// [Spot placement score]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html
	GetSpotPlacementScores(ctx context.Context, params *ec2.GetSpotPlacementScoresInput, optFns ...func(*Options)) (*ec2.GetSpotPlacementScoresOutput, error)
	// Gets information about the subnet CIDR reservations.
	GetSubnetCidrReservations(ctx context.Context, params *ec2.GetSubnetCidrReservationsInput, optFns ...func(*Options)) (*ec2.GetSubnetCidrReservationsOutput, error)
	// Lists the route tables to which the specified resource attachment propagates
	// routes.
	GetTransitGatewayAttachmentPropagations(ctx context.Context, params *ec2.GetTransitGatewayAttachmentPropagationsInput, optFns ...func(*Options)) (*ec2.GetTransitGatewayAttachmentPropagationsOutput, error)
	// Retrieves the entries for a transit gateway metering policy.
	GetTransitGatewayMeteringPolicyEntries(ctx context.Context, params *ec2.GetTransitGatewayMeteringPolicyEntriesInput, optFns ...func(*Options)) (*ec2.GetTransitGatewayMeteringPolicyEntriesOutput, error)
	// Gets information about the associations for the transit gateway multicast
	// domain.
	GetTransitGatewayMulticastDomainAssociations(ctx context.Context, params *ec2.GetTransitGatewayMulticastDomainAssociationsInput, optFns ...func(*Options)) (*ec2.GetTransitGatewayMulticastDomainAssociationsOutput, error)
	// Gets a list of the transit gateway policy table associations.
	GetTransitGatewayPolicyTableAssociations(ctx context.Context, params *ec2.GetTransitGatewayPolicyTableAssociationsInput, optFns ...func(*Options)) (*ec2.GetTransitGatewayPolicyTableAssociationsOutput, error)
	// Returns a list of transit gateway policy table entries.
	GetTransitGatewayPolicyTableEntries(ctx context.Context, params *ec2.GetTransitGatewayPolicyTableEntriesInput, optFns ...func(*Options)) (*ec2.GetTransitGatewayPolicyTableEntriesOutput, error)
	// Gets information about the prefix list references in a specified transit
	// gateway route table.
	GetTransitGatewayPrefixListReferences(ctx context.Context, params *ec2.GetTransitGatewayPrefixListReferencesInput, optFns ...func(*Options)) (*ec2.GetTransitGatewayPrefixListReferencesOutput, error)
	// Gets information about the associations for the specified transit gateway route
	// table.
	GetTransitGatewayRouteTableAssociations(ctx context.Context, params *ec2.GetTransitGatewayRouteTableAssociationsInput, optFns ...func(*Options)) (*ec2.GetTransitGatewayRouteTableAssociationsOutput, error)
	// Gets information about the route table propagations for the specified transit
	// gateway route table.
	GetTransitGatewayRouteTablePropagations(ctx context.Context, params *ec2.GetTransitGatewayRouteTablePropagationsInput, optFns ...func(*Options)) (*ec2.GetTransitGatewayRouteTablePropagationsOutput, error)
	// Get the Verified Access policy associated with the endpoint.
	GetVerifiedAccessEndpointPolicy(ctx context.Context, params *ec2.GetVerifiedAccessEndpointPolicyInput, optFns ...func(*Options)) (*ec2.GetVerifiedAccessEndpointPolicyOutput, error)
	// Gets the targets for the specified network CIDR endpoint for Verified Access.
	GetVerifiedAccessEndpointTargets(ctx context.Context, params *ec2.GetVerifiedAccessEndpointTargetsInput, optFns ...func(*Options)) (*ec2.GetVerifiedAccessEndpointTargetsOutput, error)
	// Shows the contents of the Verified Access policy associated with the group.
	GetVerifiedAccessGroupPolicy(ctx context.Context, params *ec2.GetVerifiedAccessGroupPolicyInput, optFns ...func(*Options)) (*ec2.GetVerifiedAccessGroupPolicyOutput, error)
	// Gets information about resources in a VPC that are blocking encryption
	// enforcement.
	//
	// For more information, see [Enforce VPC encryption in transit] in the Amazon VPC User Guide.
	//
	// [Enforce VPC encryption in transit]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html
	GetVpcResourcesBlockingEncryptionEnforcement(ctx context.Context, params *ec2.GetVpcResourcesBlockingEncryptionEnforcementInput, optFns ...func(*Options)) (*ec2.GetVpcResourcesBlockingEncryptionEnforcementOutput, error)
	// Download an Amazon Web Services-provided sample configuration file to be used
	// with the customer gateway device specified for your Site-to-Site VPN connection.
	GetVpnConnectionDeviceSampleConfiguration(ctx context.Context, params *ec2.GetVpnConnectionDeviceSampleConfigurationInput, optFns ...func(*Options)) (*ec2.GetVpnConnectionDeviceSampleConfigurationOutput, error)
	// Obtain a list of customer gateway devices for which sample configuration files
	// can be provided. The request has no additional parameters. You can also see the
	// list of device types with sample configuration files available under [Your customer gateway device]in the
	// Amazon Web Services Site-to-Site VPN User Guide.
	//
	// [Your customer gateway device]: https://docs.aws.amazon.com/vpn/latest/s2svpn/your-cgw.html
	GetVpnConnectionDeviceTypes(ctx context.Context, params *ec2.GetVpnConnectionDeviceTypesInput, optFns ...func(*Options)) (*ec2.GetVpnConnectionDeviceTypesOutput, error)
	// Get details of available tunnel endpoint maintenance.
	GetVpnTunnelReplacementStatus(ctx context.Context, params *ec2.GetVpnTunnelReplacementStatusInput, optFns ...func(*Options)) (*ec2.GetVpnTunnelReplacementStatusOutput, error)
	// Uploads a client certificate revocation list to the specified Client VPN
	// endpoint. Uploading a client certificate revocation list overwrites the existing
	// client certificate revocation list.
	//
	// Uploading a client certificate revocation list resets existing client
	// connections.
	ImportClientVpnClientCertificateRevocationList(ctx context.Context, params *ec2.ImportClientVpnClientCertificateRevocationListInput, optFns ...func(*Options)) (*ec2.ImportClientVpnClientCertificateRevocationListOutput, error)
	// To import your virtual machines (VMs) with a console-based experience, you can
	// use the Import virtual machine images to Amazon Web Services template in the [Migration Hub Orchestrator console].
	// For more information, see the [Migration Hub Orchestrator User Guide].
	//
	// Import single or multi-volume disk images or EBS snapshots into an Amazon
	// Machine Image (AMI).
	//
	// Amazon Web Services VM Import/Export strongly recommends specifying a value for
	// either the --license-type or --usage-operation parameter when you create a new
	// VM Import task. This ensures your operating system is licensed appropriately and
	// your billing is optimized.
	//
	// For more information, see [Importing a VM as an image using VM Import/Export] in the VM Import/Export User Guide.
	//
	// [Migration Hub Orchestrator console]: https://console.aws.amazon.com/migrationhub/orchestrator
	// [Importing a VM as an image using VM Import/Export]: https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html
	// [Migration Hub Orchestrator User Guide]: https://docs.aws.amazon.com/migrationhub-orchestrator/latest/userguide/import-vm-images.html
	ImportImage(ctx context.Context, params *ec2.ImportImageInput, optFns ...func(*Options)) (*ec2.ImportImageOutput, error)
	// We recommend that you use the [ImportImage]ImportImage API instead. For more information,
	// see [Importing a VM as an image using VM Import/Export]in the VM Import/Export User Guide.
	//
	// Creates an import instance task using metadata from the specified disk image.
	//
	// This API action supports only single-volume VMs. To import multi-volume VMs,
	// use ImportImageinstead.
	//
	// For information about the import manifest referenced by this API action, see [VM Import Manifest].
	//
	// This API action is not supported by the Command Line Interface (CLI).
	//
	// [Importing a VM as an image using VM Import/Export]: https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html
	// [ImportImage]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportImage.html
	// [VM Import Manifest]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html
	ImportInstance(ctx context.Context, params *ec2.ImportInstanceInput, optFns ...func(*Options)) (*ec2.ImportInstanceOutput, error)
	// Imports the public key from an RSA or ED25519 key pair that you created using a
	// third-party tool. You give Amazon Web Services only the public key. The private
	// key is never transferred between you and Amazon Web Services.
	//
	// For more information about the requirements for importing a key pair, see [Create a key pair and import the public key to Amazon EC2] in
	// the Amazon EC2 User Guide.
	//
	// [Create a key pair and import the public key to Amazon EC2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html#how-to-generate-your-own-key-and-import-it-to-aws
	ImportKeyPair(ctx context.Context, params *ec2.ImportKeyPairInput, optFns ...func(*Options)) (*ec2.ImportKeyPairOutput, error)
	// Imports a disk into an EBS snapshot.
	//
	// For more information, see [Importing a disk as a snapshot using VM Import/Export] in the VM Import/Export User Guide.
	//
	// [Importing a disk as a snapshot using VM Import/Export]: https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-import-snapshot.html
	ImportSnapshot(ctx context.Context, params *ec2.ImportSnapshotInput, optFns ...func(*Options)) (*ec2.ImportSnapshotOutput, error)
	// This API action supports only single-volume VMs. To import multi-volume VMs,
	// use ImportImageinstead. To import a disk to a snapshot, use ImportSnapshot instead.
	//
	// Creates an import volume task using metadata from the specified disk image.
	//
	// For information about the import manifest referenced by this API action, see [VM Import Manifest].
	//
	// This API action is not supported by the Command Line Interface (CLI).
	//
	// [VM Import Manifest]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html
	ImportVolume(ctx context.Context, params *ec2.ImportVolumeInput, optFns ...func(*Options)) (*ec2.ImportVolumeOutput, error)
	// Lists one or more AMIs that are currently in the Recycle Bin. For more
	// information, see [Recycle Bin]in the Amazon EC2 User Guide.
	//
	// [Recycle Bin]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recycle-bin.html
	ListImagesInRecycleBin(ctx context.Context, params *ec2.ListImagesInRecycleBinInput, optFns ...func(*Options)) (*ec2.ListImagesInRecycleBinOutput, error)
	// Lists one or more snapshots that are currently in the Recycle Bin.
	ListSnapshotsInRecycleBin(ctx context.Context, params *ec2.ListSnapshotsInRecycleBinInput, optFns ...func(*Options)) (*ec2.ListSnapshotsInRecycleBinOutput, error)
	// Lists one or more volumes that are currently in the Recycle Bin.
	ListVolumesInRecycleBin(ctx context.Context, params *ec2.ListVolumesInRecycleBinInput, optFns ...func(*Options)) (*ec2.ListVolumesInRecycleBinOutput, error)
	// Locks an Amazon EBS snapshot in either governance or compliance mode to protect
	// it against accidental or malicious deletions for a specific duration. A locked
	// snapshot can't be deleted.
	//
	// You can also use this action to modify the lock settings for a snapshot that is
	// already locked. The allowed modifications depend on the lock mode and lock
	// state:
	//
	//   - If the snapshot is locked in governance mode, you can modify the lock mode
	//     and the lock duration or lock expiration date.
	//
	//   - If the snapshot is locked in compliance mode and it is in the cooling-off
	//     period, you can modify the lock mode and the lock duration or lock expiration
	//     date.
	//
	//   - If the snapshot is locked in compliance mode and the cooling-off period has
	//     lapsed, you can only increase the lock duration or extend the lock expiration
	//     date.
	LockSnapshot(ctx context.Context, params *ec2.LockSnapshotInput, optFns ...func(*Options)) (*ec2.LockSnapshotOutput, error)
	// Modifies an attribute of the specified Elastic IP address. For requirements,
	// see [Using reverse DNS for email applications].
	//
	// [Using reverse DNS for email applications]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS
	ModifyAddressAttribute(ctx context.Context, params *ec2.ModifyAddressAttributeInput, optFns ...func(*Options)) (*ec2.ModifyAddressAttributeOutput, error)
	// Changes the opt-in status of the specified zone group for your account.
	ModifyAvailabilityZoneGroup(ctx context.Context, params *ec2.ModifyAvailabilityZoneGroupInput, optFns ...func(*Options)) (*ec2.ModifyAvailabilityZoneGroupOutput, error)
	// Modifies a Capacity Reservation's capacity, instance eligibility, and the
	// conditions under which it is to be released. You can't modify a Capacity
	// Reservation's instance type, EBS optimization, platform, instance store
	// settings, Availability Zone, or tenancy. If you need to modify any of these
	// attributes, we recommend that you cancel the Capacity Reservation, and then
	// create a new one with the required attributes. For more information, see [Modify an active Capacity Reservation].
	//
	// The allowed modifications depend on the state of the Capacity Reservation:
	//
	//   - assessing or scheduled state - You can modify the tags only.
	//
	//   - pending state - You can't modify the Capacity Reservation in any way.
	//
	//   - active state but still within the commitment duration - You can't decrease
	//     the instance count or set an end date that is within the commitment duration.
	//     All other modifications are allowed.
	//
	//   - active state with no commitment duration or elapsed commitment duration -
	//     All modifications are allowed.
	//
	//   - expired , cancelled , unsupported , or failed state - You can't modify the
	//     Capacity Reservation in any way.
	//
	// [Modify an active Capacity Reservation]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-modify.html
	ModifyCapacityReservation(ctx context.Context, params *ec2.ModifyCapacityReservationInput, optFns ...func(*Options)) (*ec2.ModifyCapacityReservationOutput, error)
	// Modifies a Capacity Reservation Fleet.
	//
	// When you modify the total target capacity of a Capacity Reservation Fleet, the
	// Fleet automatically creates new Capacity Reservations, or modifies or cancels
	// existing Capacity Reservations in the Fleet to meet the new total target
	// capacity. When you modify the end date for the Fleet, the end dates for all of
	// the individual Capacity Reservations in the Fleet are updated accordingly.
	ModifyCapacityReservationFleet(ctx context.Context, params *ec2.ModifyCapacityReservationFleetInput, optFns ...func(*Options)) (*ec2.ModifyCapacityReservationFleetOutput, error)
	// Modifies the specified Client VPN endpoint. Modifying the DNS server resets
	// existing client connections.
	ModifyClientVpnEndpoint(ctx context.Context, params *ec2.ModifyClientVpnEndpointInput, optFns ...func(*Options)) (*ec2.ModifyClientVpnEndpointOutput, error)
	// Modifies the default credit option for CPU usage of burstable performance
	// instances. The default credit option is set at the account level per Amazon Web
	// Services Region, and is specified per instance family. All new burstable
	// performance instances in the account launch using the default credit option.
	//
	// ModifyDefaultCreditSpecification is an asynchronous operation, which works at
	// an Amazon Web Services Region level and modifies the credit option for each
	// Availability Zone. All zones in a Region are updated within five minutes. But if
	// instances are launched during this operation, they might not get the new credit
	// option until the zone is updated. To verify whether the update has occurred, you
	// can call GetDefaultCreditSpecification and check DefaultCreditSpecification for
	// updates.
	//
	// For more information, see [Burstable performance instances] in the Amazon EC2 User Guide.
	//
	// [Burstable performance instances]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html
	ModifyDefaultCreditSpecification(ctx context.Context, params *ec2.ModifyDefaultCreditSpecificationInput, optFns ...func(*Options)) (*ec2.ModifyDefaultCreditSpecificationOutput, error)
	// Changes the default KMS key for EBS encryption by default for your account in
	// this Region.
	//
	// Amazon Web Services creates a unique Amazon Web Services managed KMS key in
	// each Region for use with encryption by default. If you change the default KMS
	// key to a symmetric customer managed KMS key, it is used instead of the Amazon
	// Web Services managed KMS key. Amazon EBS does not support asymmetric KMS keys.
	//
	// If you delete or disable the customer managed KMS key that you specified for
	// use with encryption by default, your instances will fail to launch.
	//
	// For more information, see [Amazon EBS encryption] in the Amazon EBS User Guide.
	//
	// [Amazon EBS encryption]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html
	ModifyEbsDefaultKmsKeyId(ctx context.Context, params *ec2.ModifyEbsDefaultKmsKeyIdInput, optFns ...func(*Options)) (*ec2.ModifyEbsDefaultKmsKeyIdOutput, error)
	// Modifies the specified EC2 Fleet.
	//
	// You can only modify an EC2 Fleet request of type maintain .
	//
	// While the EC2 Fleet is being modified, it is in the modifying state.
	//
	// To scale up your EC2 Fleet, increase its target capacity. The EC2 Fleet
	// launches the additional Spot Instances according to the allocation strategy for
	// the EC2 Fleet request. If the allocation strategy is lowest-price , the EC2
	// Fleet launches instances using the Spot Instance pool with the lowest price. If
	// the allocation strategy is diversified , the EC2 Fleet distributes the instances
	// across the Spot Instance pools. If the allocation strategy is capacity-optimized
	// , EC2 Fleet launches instances from Spot Instance pools with optimal capacity
	// for the number of instances that are launching.
	//
	// To scale down your EC2 Fleet, decrease its target capacity. First, the EC2
	// Fleet cancels any open requests that exceed the new target capacity. You can
	// request that the EC2 Fleet terminate Spot Instances until the size of the fleet
	// no longer exceeds the new target capacity. If the allocation strategy is
	// lowest-price , the EC2 Fleet terminates the instances with the highest price per
	// unit. If the allocation strategy is capacity-optimized , the EC2 Fleet
	// terminates the instances in the Spot Instance pools that have the least
	// available Spot Instance capacity. If the allocation strategy is diversified ,
	// the EC2 Fleet terminates instances across the Spot Instance pools.
	// Alternatively, you can request that the EC2 Fleet keep the fleet at its current
	// size, but not replace any Spot Instances that are interrupted or that you
	// terminate manually.
	//
	// If you are finished with your EC2 Fleet for now, but will use it again later,
	// you can set the target capacity to 0.
	ModifyFleet(ctx context.Context, params *ec2.ModifyFleetInput, optFns ...func(*Options)) (*ec2.ModifyFleetOutput, error)
	// Modifies the specified attribute of the specified Amazon FPGA Image (AFI).
	ModifyFpgaImageAttribute(ctx context.Context, params *ec2.ModifyFpgaImageAttributeInput, optFns ...func(*Options)) (*ec2.ModifyFpgaImageAttributeOutput, error)
	// Modify the auto-placement setting of a Dedicated Host. When auto-placement is
	// enabled, any instances that you launch with a tenancy of host but without a
	// specific host ID are placed onto any available Dedicated Host in your account
	// that has auto-placement enabled. When auto-placement is disabled, you need to
	// provide a host ID to have the instance launch onto a specific host. If no host
	// ID is provided, the instance is launched onto a suitable host with
	// auto-placement enabled.
	//
	// You can also use this API action to modify a Dedicated Host to support either
	// multiple instance types in an instance family, or to support a specific instance
	// type only.
	ModifyHosts(ctx context.Context, params *ec2.ModifyHostsInput, optFns ...func(*Options)) (*ec2.ModifyHostsOutput, error)
	// Modifies the ID format for the specified resource on a per-Region basis. You
	// can specify that resources should receive longer IDs (17-character IDs) when
	// they are created.
	//
	// This request can only be used to modify longer ID settings for resource types
	// that are within the opt-in period. Resources currently in their opt-in period
	// include: bundle | conversion-task | customer-gateway | dhcp-options |
	// elastic-ip-allocation | elastic-ip-association | export-task | flow-log | image
	// | import-task | internet-gateway | network-acl | network-acl-association |
	// network-interface | network-interface-attachment | prefix-list | route-table |
	// route-table-association | security-group | subnet |
	// subnet-cidr-block-association | vpc | vpc-cidr-block-association | vpc-endpoint
	// | vpc-peering-connection | vpn-connection | vpn-gateway .
	//
	// This setting applies to the IAM user who makes the request; it does not apply
	// to the entire Amazon Web Services account. By default, an IAM user defaults to
	// the same settings as the root user. If you're using this action as the root
	// user, then these settings apply to the entire account, unless an IAM user
	// explicitly overrides these settings for themselves. For more information, see [Resource IDs]
	// in the Amazon Elastic Compute Cloud User Guide.
	//
	// Resources created with longer IDs are visible to all IAM roles and users,
	// regardless of these settings and provided that they have permission to use the
	// relevant Describe command for the resource type.
	//
	// [Resource IDs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html
	ModifyIdFormat(ctx context.Context, params *ec2.ModifyIdFormatInput, optFns ...func(*Options)) (*ec2.ModifyIdFormatOutput, error)
	// Modifies the ID format of a resource for a specified IAM user, IAM role, or the
	// root user for an account; or all IAM users, IAM roles, and the root user for an
	// account. You can specify that resources should receive longer IDs (17-character
	// IDs) when they are created.
	//
	// This request can only be used to modify longer ID settings for resource types
	// that are within the opt-in period. Resources currently in their opt-in period
	// include: bundle | conversion-task | customer-gateway | dhcp-options |
	// elastic-ip-allocation | elastic-ip-association | export-task | flow-log | image
	// | import-task | internet-gateway | network-acl | network-acl-association |
	// network-interface | network-interface-attachment | prefix-list | route-table |
	// route-table-association | security-group | subnet |
	// subnet-cidr-block-association | vpc | vpc-cidr-block-association | vpc-endpoint
	// | vpc-peering-connection | vpn-connection | vpn-gateway .
	//
	// For more information, see [Resource IDs] in the Amazon Elastic Compute Cloud User Guide.
	//
	// This setting applies to the principal specified in the request; it does not
	// apply to the principal that makes the request.
	//
	// Resources created with longer IDs are visible to all IAM roles and users,
	// regardless of these settings and provided that they have permission to use the
	// relevant Describe command for the resource type.
	//
	// [Resource IDs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html
	ModifyIdentityIdFormat(ctx context.Context, params *ec2.ModifyIdentityIdFormatInput, optFns ...func(*Options)) (*ec2.ModifyIdentityIdFormatOutput, error)
	// Modifies the specified attribute of the specified AMI. You can specify only one
	// attribute at a time.
	//
	// To specify the attribute, you can use the Attribute parameter, or one of the
	// following parameters: Description , ImdsSupport , or LaunchPermission .
	//
	// Images with an Amazon Web Services Marketplace product code cannot be made
	// public.
	//
	// To enable the SriovNetSupport enhanced networking attribute of an image, enable
	// SriovNetSupport on an instance and create an AMI from the instance.
	ModifyImageAttribute(ctx context.Context, params *ec2.ModifyImageAttributeInput, optFns ...func(*Options)) (*ec2.ModifyImageAttributeOutput, error)
	// Modifies the specified attribute of the specified instance. You can specify
	// only one attribute at a time.
	//
	// Note: Using this action to change the security groups associated with an
	// elastic network interface (ENI) attached to an instance can result in an error
	// if the instance has more than one ENI. To change the security groups associated
	// with an ENI attached to an instance that has multiple ENIs, we recommend that
	// you use the ModifyNetworkInterfaceAttributeaction.
	//
	// To modify some attributes, the instance must be stopped. For more information,
	// see [Modify a stopped instance]in the Amazon EC2 User Guide.
	//
	// [Modify a stopped instance]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_ChangingAttributesWhileInstanceStopped.html
	ModifyInstanceAttribute(ctx context.Context, params *ec2.ModifyInstanceAttributeInput, optFns ...func(*Options)) (*ec2.ModifyInstanceAttributeOutput, error)
	// Modifies the Capacity Reservation settings for a stopped instance. Use this
	// action to configure an instance to target a specific Capacity Reservation, run
	// in any open Capacity Reservation with matching attributes, run in On-Demand
	// Instance capacity, or only run in a Capacity Reservation.
	ModifyInstanceCapacityReservationAttributes(ctx context.Context, params *ec2.ModifyInstanceCapacityReservationAttributesInput, optFns ...func(*Options)) (*ec2.ModifyInstanceCapacityReservationAttributesOutput, error)
	// Modifies the specified EC2 Instance Connect Endpoint.
	//
	// For more information, see [Modify an EC2 Instance Connect Endpoint] in the Amazon EC2 User Guide.
	//
	// [Modify an EC2 Instance Connect Endpoint]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/modify-ec2-instance-connect-endpoint.html
	ModifyInstanceConnectEndpoint(ctx context.Context, params *ec2.ModifyInstanceConnectEndpointInput, optFns ...func(*Options)) (*ec2.ModifyInstanceConnectEndpointOutput, error)
	// By default, all vCPUs for the instance type are active when you launch an
	// instance. When you configure the number of active vCPUs for the instance, it can
	// help you save on licensing costs and optimize performance. The base cost of the
	// instance remains unchanged.
	//
	// The number of active vCPUs equals the number of threads per CPU core multiplied
	// by the number of cores. The instance must be in a Stopped state before you make
	// changes.
	//
	// Some instance type options do not support this capability. For more
	// information, see [Supported CPU options]in the Amazon EC2 User Guide.
	//
	// [Supported CPU options]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html
	ModifyInstanceCpuOptions(ctx context.Context, params *ec2.ModifyInstanceCpuOptionsInput, optFns ...func(*Options)) (*ec2.ModifyInstanceCpuOptionsOutput, error)
	// Modifies the credit option for CPU usage on a running or stopped burstable
	// performance instance. The credit options are standard and unlimited .
	//
	// For more information, see [Burstable performance instances] in the Amazon EC2 User Guide.
	//
	// [Burstable performance instances]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html
	ModifyInstanceCreditSpecification(ctx context.Context, params *ec2.ModifyInstanceCreditSpecificationInput, optFns ...func(*Options)) (*ec2.ModifyInstanceCreditSpecificationOutput, error)
	// Modifies the start time for a scheduled Amazon EC2 instance event.
	ModifyInstanceEventStartTime(ctx context.Context, params *ec2.ModifyInstanceEventStartTimeInput, optFns ...func(*Options)) (*ec2.ModifyInstanceEventStartTimeOutput, error)
	// Modifies the specified event window.
	//
	// You can define either a set of time ranges or a cron expression when modifying
	// the event window, but not both.
	//
	// To modify the targets associated with the event window, use the AssociateInstanceEventWindow and DisassociateInstanceEventWindow API.
	//
	// If Amazon Web Services has already scheduled an event, modifying an event
	// window won't change the time of the scheduled event.
	//
	// For more information, see [Define event windows for scheduled events] in the Amazon EC2 User Guide.
	//
	// [Define event windows for scheduled events]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html
	ModifyInstanceEventWindow(ctx context.Context, params *ec2.ModifyInstanceEventWindowInput, optFns ...func(*Options)) (*ec2.ModifyInstanceEventWindowOutput, error)
	// Modifies the recovery behavior of your instance to disable simplified automatic
	// recovery or set the recovery behavior to default. The default configuration will
	// not enable simplified automatic recovery for an unsupported instance type. For
	// more information, see [Simplified automatic recovery].
	//
	// Modifies the reboot migration behavior during a user-initiated reboot of an
	// instance that has a pending system-reboot event. For more information, see [Enable or disable reboot migration].
	//
	// [Simplified automatic recovery]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html#instance-configuration-recovery
	// [Enable or disable reboot migration]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/schedevents_actions_reboot.html#reboot-migration
	ModifyInstanceMaintenanceOptions(ctx context.Context, params *ec2.ModifyInstanceMaintenanceOptionsInput, optFns ...func(*Options)) (*ec2.ModifyInstanceMaintenanceOptionsOutput, error)
	// Modifies the default instance metadata service (IMDS) settings at the account
	// level in the specified Amazon Web Services
 Region.
	//
	// To remove a parameter's account-level default setting, specify no-preference .
	// If an account-level setting is cleared with no-preference , then the instance
	// launch considers the other instance metadata settings. For more information, see
	// [Order of precedence for instance metadata options]in the Amazon EC2 User Guide.
	//
	// [Order of precedence for instance metadata options]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html#instance-metadata-options-order-of-precedence
	ModifyInstanceMetadataDefaults(ctx context.Context, params *ec2.ModifyInstanceMetadataDefaultsInput, optFns ...func(*Options)) (*ec2.ModifyInstanceMetadataDefaultsOutput, error)
	// Modify the instance metadata parameters on a running or stopped instance. When
	// you modify the parameters on a stopped instance, they are applied when the
	// instance is started. When you modify the parameters on a running instance, the
	// API responds with a state of “pending”. After the parameter modifications are
	// successfully applied to the instance, the state of the modifications changes
	// from “pending” to “applied” in subsequent describe-instances API calls. For more
	// information, see [Instance metadata and user data]in the Amazon EC2 User Guide.
	//
	// [Instance metadata and user data]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
	ModifyInstanceMetadataOptions(ctx context.Context, params *ec2.ModifyInstanceMetadataOptionsInput, optFns ...func(*Options)) (*ec2.ModifyInstanceMetadataOptionsOutput, error)
	// Change the configuration of the network performance options for an existing
	// instance.
	ModifyInstanceNetworkPerformanceOptions(ctx context.Context, params *ec2.ModifyInstanceNetworkPerformanceOptionsInput, optFns ...func(*Options)) (*ec2.ModifyInstanceNetworkPerformanceOptionsOutput, error)
	// Modifies the placement attributes for a specified instance. You can do the
	// following:
	//
	//   - Modify the affinity between an instance and a [Dedicated Host]. When affinity is set to host
	//     and the instance is not associated with a specific Dedicated Host, the next time
	//     the instance is started, it is automatically associated with the host on which
	//     it lands. If the instance is restarted or rebooted, this relationship persists.
	//
	//   - Change the Dedicated Host with which an instance is associated.
	//
	//   - Change the instance tenancy of an instance.
	//
	//   - Move an instance to or from a [placement group].
	//
	// At least one attribute for affinity, host ID, tenancy, or placement group name
	// must be specified in the request. Affinity and tenancy can be modified in the
	// same request.
	//
	// To modify the host ID, tenancy, placement group, or partition for an instance,
	// the instance must be in the stopped state.
	//
	// [Dedicated Host]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-overview.html
	// [placement group]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html
	ModifyInstancePlacement(ctx context.Context, params *ec2.ModifyInstancePlacementInput, optFns ...func(*Options)) (*ec2.ModifyInstancePlacementOutput, error)
	// Modify the configurations of an IPAM.
	ModifyIpam(ctx context.Context, params *ec2.ModifyIpamInput, optFns ...func(*Options)) (*ec2.ModifyIpamOutput, error)
	// Modifies the allocation rules in an IPAM policy.
	//
	// An IPAM policy is a set of rules that define how public IPv4 addresses from
	// IPAM pools are allocated to Amazon Web Services resources. Each rule maps an
	// Amazon Web Services service to IPAM pools that the service will use to get IP
	// addresses. A single policy can have multiple rules and be applied to multiple
	// Amazon Web Services Regions. If the IPAM pool run out of addresses then the
	// services fallback to Amazon-provided IP addresses. A policy can be applied to an
	// individual Amazon Web Services account or an entity within Amazon Web Services
	// Organizations.
	//
	// Allocation rules are optional configurations within an IPAM policy that map
	// Amazon Web Services resource types to specific IPAM pools. If no rules are
	// defined, the resource types default to using Amazon-provided IP addresses.
	ModifyIpamPolicyAllocationRules(ctx context.Context, params *ec2.ModifyIpamPolicyAllocationRulesInput, optFns ...func(*Options)) (*ec2.ModifyIpamPolicyAllocationRulesOutput, error)
	// Modify the configurations of an IPAM pool.
	//
	// For more information, see [Modify a pool] in the Amazon VPC IPAM User Guide.
	//
	// [Modify a pool]: https://docs.aws.amazon.com/vpc/latest/ipam/mod-pool-ipam.html
	ModifyIpamPool(ctx context.Context, params *ec2.ModifyIpamPoolInput, optFns ...func(*Options)) (*ec2.ModifyIpamPoolOutput, error)
	// Modifies an IPAM prefix list resolver. You can update the description and CIDR
	// selection rules. Changes to rules will trigger re-evaluation and potential
	// updates to associated prefix lists.
	ModifyIpamPrefixListResolver(ctx context.Context, params *ec2.ModifyIpamPrefixListResolverInput, optFns ...func(*Options)) (*ec2.ModifyIpamPrefixListResolverOutput, error)
	// Modifies an IPAM prefix list resolver target. You can update version tracking
	// settings and the desired version of the target prefix list.
	ModifyIpamPrefixListResolverTarget(ctx context.Context, params *ec2.ModifyIpamPrefixListResolverTargetInput, optFns ...func(*Options)) (*ec2.ModifyIpamPrefixListResolverTargetOutput, error)
	// Modify a resource CIDR. You can use this action to transfer resource CIDRs
	// between scopes and ignore resource CIDRs that you do not want to manage. If set
	// to false, the resource will not be tracked for overlap, it cannot be
	// auto-imported into a pool, and it will be removed from any pool it has an
	// allocation in.
	//
	// For more information, see [Move resource CIDRs between scopes] and [Change the monitoring state of resource CIDRs] in the Amazon VPC IPAM User Guide.
	//
	// [Change the monitoring state of resource CIDRs]: https://docs.aws.amazon.com/vpc/latest/ipam/change-monitoring-state-ipam.html
	// [Move resource CIDRs between scopes]: https://docs.aws.amazon.com/vpc/latest/ipam/move-resource-ipam.html
	ModifyIpamResourceCidr(ctx context.Context, params *ec2.ModifyIpamResourceCidrInput, optFns ...func(*Options)) (*ec2.ModifyIpamResourceCidrOutput, error)
	// Modifies a resource discovery. A resource discovery is an IPAM component that
	// enables IPAM to manage and monitor resources that belong to the owning account.
	ModifyIpamResourceDiscovery(ctx context.Context, params *ec2.ModifyIpamResourceDiscoveryInput, optFns ...func(*Options)) (*ec2.ModifyIpamResourceDiscoveryOutput, error)
	// Modify an IPAM scope.
	ModifyIpamScope(ctx context.Context, params *ec2.ModifyIpamScopeInput, optFns ...func(*Options)) (*ec2.ModifyIpamScopeOutput, error)
	// Modifies a launch template. You can specify which version of the launch
	// template to set as the default version. When launching an instance, the default
	// version applies when a launch template version is not specified.
	ModifyLaunchTemplate(ctx context.Context, params *ec2.ModifyLaunchTemplateInput, optFns ...func(*Options)) (*ec2.ModifyLaunchTemplateOutput, error)
	// Modifies the specified local gateway route.
	ModifyLocalGatewayRoute(ctx context.Context, params *ec2.ModifyLocalGatewayRouteInput, optFns ...func(*Options)) (*ec2.ModifyLocalGatewayRouteOutput, error)
	// Modifies the specified managed prefix list.
	//
	// Adding or removing entries in a prefix list creates a new version of the prefix
	// list. Changing the name of the prefix list does not affect the version.
	//
	// If you specify a current version number that does not match the true current
	// version number, the request fails.
	ModifyManagedPrefixList(ctx context.Context, params *ec2.ModifyManagedPrefixListInput, optFns ...func(*Options)) (*ec2.ModifyManagedPrefixListOutput, error)
	// Modifies the specified network interface attribute. You can specify only one
	// attribute at a time. You can use this action to attach and detach security
	// groups from an existing EC2 instance.
	ModifyNetworkInterfaceAttribute(ctx context.Context, params *ec2.ModifyNetworkInterfaceAttributeInput, optFns ...func(*Options)) (*ec2.ModifyNetworkInterfaceAttributeOutput, error)
	// Modifies the options for instance hostnames for the specified instance.
	ModifyPrivateDnsNameOptions(ctx context.Context, params *ec2.ModifyPrivateDnsNameOptionsInput, optFns ...func(*Options)) (*ec2.ModifyPrivateDnsNameOptionsOutput, error)
	// Modify public hostname options for a network interface. For more information,
	// see [EC2 instance hostnames, DNS names, and domains]in the Amazon EC2 User Guide.
	//
	// [EC2 instance hostnames, DNS names, and domains]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html
	ModifyPublicIpDnsNameOptions(ctx context.Context, params *ec2.ModifyPublicIpDnsNameOptionsInput, optFns ...func(*Options)) (*ec2.ModifyPublicIpDnsNameOptionsOutput, error)
	// Modifies the configuration of your Reserved Instances, such as the Availability
	// Zone, instance count, or instance type. The Reserved Instances to be modified
	// must be identical, except for Availability Zone, network platform, and instance
	// type.
	//
	// For more information, see [Modify Reserved Instances] in the Amazon EC2 User Guide.
	//
	// [Modify Reserved Instances]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html
	ModifyReservedInstances(ctx context.Context, params *ec2.ModifyReservedInstancesInput, optFns ...func(*Options)) (*ec2.ModifyReservedInstancesOutput, error)
	// Modifies the configuration of an existing route server.
	//
	// Amazon VPC Route Server simplifies routing for traffic between workloads that
	// are deployed within a VPC and its internet gateways. With this feature, VPC
	// Route Server dynamically updates VPC and internet gateway route tables with your
	// preferred IPv4 or IPv6 routes to achieve routing fault tolerance for those
	// workloads. This enables you to automatically reroute traffic within a VPC, which
	// increases the manageability of VPC routing and interoperability with third-party
	// workloads.
	//
	// Route server supports the follow route table types:
	//
	//   - VPC route tables not associated with subnets
	//
	//   - Subnet route tables
	//
	//   - Internet gateway route tables
	//
	// Route server does not support route tables associated with virtual private
	// gateways. To propagate routes into a transit gateway route table, use [Transit Gateway Connect].
	//
	// For more information see [Dynamic routing in your VPC with VPC Route Server] in the Amazon VPC User Guide.
	//
	// [Dynamic routing in your VPC with VPC Route Server]: https://docs.aws.amazon.com/vpc/latest/userguide/dynamic-routing-route-server.html
	// [Transit Gateway Connect]: https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html
	ModifyRouteServer(ctx context.Context, params *ec2.ModifyRouteServerInput, optFns ...func(*Options)) (*ec2.ModifyRouteServerOutput, error)
	// Modifies the rules of a security group.
	ModifySecurityGroupRules(ctx context.Context, params *ec2.ModifySecurityGroupRulesInput, optFns ...func(*Options)) (*ec2.ModifySecurityGroupRulesOutput, error)
	// Adds or removes permission settings for the specified snapshot. You may add or
	// remove specified Amazon Web Services account IDs from a snapshot's list of
	// create volume permissions, but you cannot do both in a single operation. If you
	// need to both add and remove account IDs for a snapshot, you must use multiple
	// operations. You can make up to 500 modifications to a snapshot in a single
	// operation.
	//
	// Encrypted snapshots and snapshots with Amazon Web Services Marketplace product
	// codes cannot be made public. Snapshots encrypted with your default KMS key
	// cannot be shared with other accounts.
	//
	// For more information about modifying snapshot permissions, see [Share a snapshot] in the Amazon
	// EBS User Guide.
	//
	// [Share a snapshot]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-modifying-snapshot-permissions.html
	ModifySnapshotAttribute(ctx context.Context, params *ec2.ModifySnapshotAttributeInput, optFns ...func(*Options)) (*ec2.ModifySnapshotAttributeOutput, error)
	// Archives an Amazon EBS snapshot. When you archive a snapshot, it is converted
	// to a full snapshot that includes all of the blocks of data that were written to
	// the volume at the time the snapshot was created, and moved from the standard
	// tier to the archive tier. For more information, see [Archive Amazon EBS snapshots]in the Amazon EBS User
	// Guide.
	//
	// [Archive Amazon EBS snapshots]: https://docs.aws.amazon.com/ebs/latest/userguide/snapshot-archive.html
	ModifySnapshotTier(ctx context.Context, params *ec2.ModifySnapshotTierInput, optFns ...func(*Options)) (*ec2.ModifySnapshotTierOutput, error)
	// Modifies the specified Spot Fleet request.
	//
	// You can only modify a Spot Fleet request of type maintain .
	//
	// While the Spot Fleet request is being modified, it is in the modifying state.
	//
	// To scale up your Spot Fleet, increase its target capacity. The Spot Fleet
	// launches the additional Spot Instances according to the allocation strategy for
	// the Spot Fleet request. If the allocation strategy is lowestPrice , the Spot
	// Fleet launches instances using the Spot Instance pool with the lowest price. If
	// the allocation strategy is diversified , the Spot Fleet distributes the
	// instances across the Spot Instance pools. If the allocation strategy is
	// capacityOptimized , Spot Fleet launches instances from Spot Instance pools with
	// optimal capacity for the number of instances that are launching.
	//
	// To scale down your Spot Fleet, decrease its target capacity. First, the Spot
	// Fleet cancels any open requests that exceed the new target capacity. You can
	// request that the Spot Fleet terminate Spot Instances until the size of the fleet
	// no longer exceeds the new target capacity. If the allocation strategy is
	// lowestPrice , the Spot Fleet terminates the instances with the highest price per
	// unit. If the allocation strategy is capacityOptimized , the Spot Fleet
	// terminates the instances in the Spot Instance pools that have the least
	// available Spot Instance capacity. If the allocation strategy is diversified ,
	// the Spot Fleet terminates instances across the Spot Instance pools.
	// Alternatively, you can request that the Spot Fleet keep the fleet at its current
	// size, but not replace any Spot Instances that are interrupted or that you
	// terminate manually.
	//
	// If you are finished with your Spot Fleet for now, but will use it again later,
	// you can set the target capacity to 0.
	ModifySpotFleetRequest(ctx context.Context, params *ec2.ModifySpotFleetRequestInput, optFns ...func(*Options)) (*ec2.ModifySpotFleetRequestOutput, error)
	// Modifies a subnet attribute. You can only modify one attribute at a time.
	//
	// Use this action to modify subnets on Amazon Web Services Outposts.
	//
	//   - To modify a subnet on an Outpost rack, set both MapCustomerOwnedIpOnLaunch
	//     and CustomerOwnedIpv4Pool . These two parameters act as a single attribute.
	//
	//   - To modify a subnet on an Outpost server, set either EnableLniAtDeviceIndex
	//     or DisableLniAtDeviceIndex .
	//
	// For more information about Amazon Web Services Outposts, see the following:
	//
	// [Outpost servers]
	//
	// [Outpost racks]
	//
	// [Outpost servers]: https://docs.aws.amazon.com/outposts/latest/userguide/how-servers-work.html
	// [Outpost racks]: https://docs.aws.amazon.com/outposts/latest/userguide/how-racks-work.html
	ModifySubnetAttribute(ctx context.Context, params *ec2.ModifySubnetAttributeInput, optFns ...func(*Options)) (*ec2.ModifySubnetAttributeOutput, error)
	// Allows or restricts mirroring network services.
	//
	// By default, Amazon DNS network services are not eligible for Traffic Mirror.
	// Use AddNetworkServices to add network services to a Traffic Mirror filter. When
	// a network service is added to the Traffic Mirror filter, all traffic related to
	// that network service will be mirrored. When you no longer want to mirror network
	// services, use RemoveNetworkServices to remove the network services from the
	// Traffic Mirror filter.
	ModifyTrafficMirrorFilterNetworkServices(ctx context.Context, params *ec2.ModifyTrafficMirrorFilterNetworkServicesInput, optFns ...func(*Options)) (*ec2.ModifyTrafficMirrorFilterNetworkServicesOutput, error)
	// Modifies the specified Traffic Mirror rule.
	//
	// DestinationCidrBlock and SourceCidrBlock must both be an IPv4 range or an IPv6
	// range.
	ModifyTrafficMirrorFilterRule(ctx context.Context, params *ec2.ModifyTrafficMirrorFilterRuleInput, optFns ...func(*Options)) (*ec2.ModifyTrafficMirrorFilterRuleOutput, error)
	// Modifies a Traffic Mirror session.
	ModifyTrafficMirrorSession(ctx context.Context, params *ec2.ModifyTrafficMirrorSessionInput, optFns ...func(*Options)) (*ec2.ModifyTrafficMirrorSessionOutput, error)
	// Modifies the specified transit gateway. When you modify a transit gateway, the
	// modified options are applied to new transit gateway attachments only. Your
	// existing transit gateway attachments are not modified.
	ModifyTransitGateway(ctx context.Context, params *ec2.ModifyTransitGatewayInput, optFns ...func(*Options)) (*ec2.ModifyTransitGatewayOutput, error)
	// Modifies a transit gateway metering policy.
	ModifyTransitGatewayMeteringPolicy(ctx context.Context, params *ec2.ModifyTransitGatewayMeteringPolicyInput, optFns ...func(*Options)) (*ec2.ModifyTransitGatewayMeteringPolicyOutput, error)
	// Modifies a reference (route) to a prefix list in a specified transit gateway
	// route table.
	ModifyTransitGatewayPrefixListReference(ctx context.Context, params *ec2.ModifyTransitGatewayPrefixListReferenceInput, optFns ...func(*Options)) (*ec2.ModifyTransitGatewayPrefixListReferenceOutput, error)
	// Modifies the specified VPC attachment.
	ModifyTransitGatewayVpcAttachment(ctx context.Context, params *ec2.ModifyTransitGatewayVpcAttachmentInput, optFns ...func(*Options)) (*ec2.ModifyTransitGatewayVpcAttachmentOutput, error)
	// Modifies the configuration of the specified Amazon Web Services Verified Access
	// endpoint.
	ModifyVerifiedAccessEndpoint(ctx context.Context, params *ec2.ModifyVerifiedAccessEndpointInput, optFns ...func(*Options)) (*ec2.ModifyVerifiedAccessEndpointOutput, error)
	// Modifies the specified Amazon Web Services Verified Access endpoint policy.
	ModifyVerifiedAccessEndpointPolicy(ctx context.Context, params *ec2.ModifyVerifiedAccessEndpointPolicyInput, optFns ...func(*Options)) (*ec2.ModifyVerifiedAccessEndpointPolicyOutput, error)
	// Modifies the specified Amazon Web Services Verified Access group configuration.
	ModifyVerifiedAccessGroup(ctx context.Context, params *ec2.ModifyVerifiedAccessGroupInput, optFns ...func(*Options)) (*ec2.ModifyVerifiedAccessGroupOutput, error)
	// Modifies the specified Amazon Web Services Verified Access group policy.
	ModifyVerifiedAccessGroupPolicy(ctx context.Context, params *ec2.ModifyVerifiedAccessGroupPolicyInput, optFns ...func(*Options)) (*ec2.ModifyVerifiedAccessGroupPolicyOutput, error)
	// Modifies the configuration of the specified Amazon Web Services Verified Access
	// instance.
	ModifyVerifiedAccessInstance(ctx context.Context, params *ec2.ModifyVerifiedAccessInstanceInput, optFns ...func(*Options)) (*ec2.ModifyVerifiedAccessInstanceOutput, error)
	// Modifies the logging configuration for the specified Amazon Web Services
	// Verified Access instance.
	ModifyVerifiedAccessInstanceLoggingConfiguration(ctx context.Context, params *ec2.ModifyVerifiedAccessInstanceLoggingConfigurationInput, optFns ...func(*Options)) (*ec2.ModifyVerifiedAccessInstanceLoggingConfigurationOutput, error)
	// Modifies the configuration of the specified Amazon Web Services Verified Access
	// trust provider.
	ModifyVerifiedAccessTrustProvider(ctx context.Context, params *ec2.ModifyVerifiedAccessTrustProviderInput, optFns ...func(*Options)) (*ec2.ModifyVerifiedAccessTrustProviderOutput, error)
	// You can modify several parameters of an existing EBS volume, including volume
	// size, volume type, and IOPS capacity. If your EBS volume is attached to a
	// current-generation EC2 instance type, you might be able to apply these changes
	// without stopping the instance or detaching the volume from it. For more
	// information about modifying EBS volumes, see [Amazon EBS Elastic Volumes]in the Amazon EBS User Guide.
	//
	// When you complete a resize operation on your volume, you need to extend the
	// volume's file-system size to take advantage of the new storage capacity. For
	// more information, see [Extend the file system].
	//
	// For more information, see [Monitor the progress of volume modifications] in the Amazon EBS User Guide.
	//
	// With previous-generation instance types, resizing an EBS volume might require
	// detaching and reattaching the volume or stopping and restarting the instance.
	//
	// After you initiate a volume modification, you must wait for that modification
	// to reach the completed state before you can initiate another modification for
	// the same volume. You can modify a volume up to four times within a rolling
	// 24-hour period, as long as the volume is in the in-use or available state, and
	// all previous modifications for that volume are completed . If you exceed this
	// limit, you get an error message that indicates when you can perform your next
	// modification.
	//
	// [Monitor the progress of volume modifications]: https://docs.aws.amazon.com/ebs/latest/userguide/monitoring-volume-modifications.html
	// [Amazon EBS Elastic Volumes]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-modify-volume.html
	// [Extend the file system]: https://docs.aws.amazon.com/ebs/latest/userguide/recognize-expanded-volume-linux.html
	ModifyVolume(ctx context.Context, params *ec2.ModifyVolumeInput, optFns ...func(*Options)) (*ec2.ModifyVolumeOutput, error)
	// Modifies a volume attribute.
	//
	// By default, all I/O operations for the volume are suspended when the data on
	// the volume is determined to be potentially inconsistent, to prevent
	// undetectable, latent data corruption. The I/O access to the volume can be
	// resumed by first enabling I/O access and then checking the data consistency on
	// your volume.
	//
	// You can change the default behavior to resume I/O operations. We recommend that
	// you change this only for boot volumes or for volumes that are stateless or
	// disposable.
	ModifyVolumeAttribute(ctx context.Context, params *ec2.ModifyVolumeAttributeInput, optFns ...func(*Options)) (*ec2.ModifyVolumeAttributeOutput, error)
	// Modifies the specified attribute of the specified VPC.
	ModifyVpcAttribute(ctx context.Context, params *ec2.ModifyVpcAttributeInput, optFns ...func(*Options)) (*ec2.ModifyVpcAttributeOutput, error)
	// Modify VPC Block Public Access (BPA) exclusions. A VPC BPA exclusion is a mode
	// that can be applied to a single VPC or subnet that exempts it from the account’s
	// BPA mode and will allow bidirectional or egress-only access. You can create BPA
	// exclusions for VPCs and subnets even when BPA is not enabled on the account to
	// ensure that there is no traffic disruption to the exclusions when VPC BPA is
	// turned on.
	ModifyVpcBlockPublicAccessExclusion(ctx context.Context, params *ec2.ModifyVpcBlockPublicAccessExclusionInput, optFns ...func(*Options)) (*ec2.ModifyVpcBlockPublicAccessExclusionOutput, error)
	// Modify VPC Block Public Access (BPA) options. VPC Block Public Access (BPA)
	// enables you to block resources in VPCs and subnets that you own in a Region from
	// reaching or being reached from the internet through internet gateways and
	// egress-only internet gateways. To learn more about VPC BPA, see [Block public access to VPCs and subnets]in the Amazon
	// VPC User Guide.
	//
	// [Block public access to VPCs and subnets]: https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html
	ModifyVpcBlockPublicAccessOptions(ctx context.Context, params *ec2.ModifyVpcBlockPublicAccessOptionsInput, optFns ...func(*Options)) (*ec2.ModifyVpcBlockPublicAccessOptionsOutput, error)
	// Modifies the encryption control configuration for a VPC. You can update the
	// encryption mode and exclusion settings for various gateway types and peering
	// connections.
	//
	// For more information, see [Enforce VPC encryption in transit] in the Amazon VPC User Guide.
	//
	// [Enforce VPC encryption in transit]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-encryption-controls.html
	ModifyVpcEncryptionControl(ctx context.Context, params *ec2.ModifyVpcEncryptionControlInput, optFns ...func(*Options)) (*ec2.ModifyVpcEncryptionControlOutput, error)
	// Modifies attributes of a specified VPC endpoint. The attributes that you can
	// modify depend on the type of VPC endpoint (interface, gateway, or Gateway Load
	// Balancer). For more information, see the [Amazon Web Services PrivateLink Guide].
	//
	// [Amazon Web Services PrivateLink Guide]: https://docs.aws.amazon.com/vpc/latest/privatelink/
	ModifyVpcEndpoint(ctx context.Context, params *ec2.ModifyVpcEndpointInput, optFns ...func(*Options)) (*ec2.ModifyVpcEndpointOutput, error)
	// Modifies a connection notification for VPC endpoint or VPC endpoint service.
	// You can change the SNS topic for the notification, or the events for which to be
	// notified.
	ModifyVpcEndpointConnectionNotification(ctx context.Context, params *ec2.ModifyVpcEndpointConnectionNotificationInput, optFns ...func(*Options)) (*ec2.ModifyVpcEndpointConnectionNotificationOutput, error)
	// Modifies the attributes of the specified VPC endpoint service configuration.
	//
	// If you set or modify the private DNS name, you must prove that you own the
	// private DNS domain name.
	ModifyVpcEndpointServiceConfiguration(ctx context.Context, params *ec2.ModifyVpcEndpointServiceConfigurationInput, optFns ...func(*Options)) (*ec2.ModifyVpcEndpointServiceConfigurationOutput, error)
	// Modifies the payer responsibility for your VPC endpoint service.
	ModifyVpcEndpointServicePayerResponsibility(ctx context.Context, params *ec2.ModifyVpcEndpointServicePayerResponsibilityInput, optFns ...func(*Options)) (*ec2.ModifyVpcEndpointServicePayerResponsibilityOutput, error)
	// Modifies the permissions for your VPC endpoint service. You can add or remove
	// permissions for service consumers (Amazon Web Services accounts, users, and IAM
	// roles) to connect to your endpoint service. Principal ARNs with path components
	// aren't supported.
	//
	// If you grant permissions to all principals, the service is public. Any users
	// who know the name of a public service can send a request to attach an endpoint.
	// If the service does not require manual approval, attachments are automatically
	// approved.
	ModifyVpcEndpointServicePermissions(ctx context.Context, params *ec2.ModifyVpcEndpointServicePermissionsInput, optFns ...func(*Options)) (*ec2.ModifyVpcEndpointServicePermissionsOutput, error)
	// Modifies the VPC peering connection options on one side of a VPC peering
	// connection.
	//
	// If the peered VPCs are in the same Amazon Web Services account, you can enable
	// DNS resolution for queries from the local VPC. This ensures that queries from
	// the local VPC resolve to private IP addresses in the peer VPC. This option is
	// not available if the peered VPCs are in different Amazon Web Services accounts
	// or different Regions. For peered VPCs in different Amazon Web Services accounts,
	// each Amazon Web Services account owner must initiate a separate request to
	// modify the peering connection options. For inter-region peering connections, you
	// must use the Region for the requester VPC to modify the requester VPC peering
	// options and the Region for the accepter VPC to modify the accepter VPC peering
	// options. To verify which VPCs are the accepter and the requester for a VPC
	// peering connection, use the DescribeVpcPeeringConnectionscommand.
	ModifyVpcPeeringConnectionOptions(ctx context.Context, params *ec2.ModifyVpcPeeringConnectionOptionsInput, optFns ...func(*Options)) (*ec2.ModifyVpcPeeringConnectionOptionsOutput, error)
	// Modifies the instance tenancy attribute of the specified VPC. You can change
	// the instance tenancy attribute of a VPC to default only. You cannot change the
	// instance tenancy attribute to dedicated .
	//
	// After you modify the tenancy of the VPC, any new instances that you launch into
	// the VPC have a tenancy of default , unless you specify otherwise during launch.
	// The tenancy of any existing instances in the VPC is not affected.
	//
	// For more information, see [Dedicated Instances] in the Amazon EC2 User Guide.
	//
	// [Dedicated Instances]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html
	ModifyVpcTenancy(ctx context.Context, params *ec2.ModifyVpcTenancyInput, optFns ...func(*Options)) (*ec2.ModifyVpcTenancyOutput, error)
	// Modifies the customer gateway or the target gateway of an Amazon Web Services
	// Site-to-Site VPN connection. To modify the target gateway, the following
	// migration options are available:
	//
	//   - An existing virtual private gateway to a new virtual private gateway
	//
	//   - An existing virtual private gateway to a transit gateway
	//
	//   - An existing transit gateway to a new transit gateway
	//
	//   - An existing transit gateway to a virtual private gateway
	//
	// Before you perform the migration to the new gateway, you must configure the new
	// gateway. Use CreateVpnGatewayto create a virtual private gateway, or CreateTransitGateway to create a transit
	// gateway.
	//
	// This step is required when you migrate from a virtual private gateway with
	// static routes to a transit gateway.
	//
	// You must delete the static routes before you migrate to the new gateway.
	//
	// Keep a copy of the static route before you delete it. You will need to add back
	// these routes to the transit gateway after the VPN connection migration is
	// complete.
	//
	// After you migrate to the new gateway, you might need to modify your VPC route
	// table. Use CreateRouteand DeleteRoute to make the changes described in [Update VPC route tables] in the Amazon Web Services
	// Site-to-Site VPN User Guide.
	//
	// When the new gateway is a transit gateway, modify the transit gateway route
	// table to allow traffic between the VPC and the Amazon Web Services Site-to-Site
	// VPN connection. Use CreateTransitGatewayRouteto add the routes.
	//
	// If you deleted VPN static routes, you must add the static routes to the transit
	// gateway route table.
	//
	// After you perform this operation, the VPN endpoint's IP addresses on the Amazon
	// Web Services side and the tunnel options remain intact. Your Amazon Web Services
	// Site-to-Site VPN connection will be temporarily unavailable for a brief period
	// while we provision the new endpoints.
	//
	// [Update VPC route tables]: https://docs.aws.amazon.com/vpn/latest/s2svpn/modify-vpn-target.html#step-update-routing
	ModifyVpnConnection(ctx context.Context, params *ec2.ModifyVpnConnectionInput, optFns ...func(*Options)) (*ec2.ModifyVpnConnectionOutput, error)
	// Modifies the connection options for your Site-to-Site VPN connection.
	//
	// When you modify the VPN connection options, the VPN endpoint IP addresses on
	// the Amazon Web Services side do not change, and the tunnel options do not
	// change. Your VPN connection will be temporarily unavailable for a brief period
	// while the VPN connection is updated.
	ModifyVpnConnectionOptions(ctx context.Context, params *ec2.ModifyVpnConnectionOptionsInput, optFns ...func(*Options)) (*ec2.ModifyVpnConnectionOptionsOutput, error)
	// Modifies the VPN tunnel endpoint certificate.
	ModifyVpnTunnelCertificate(ctx context.Context, params *ec2.ModifyVpnTunnelCertificateInput, optFns ...func(*Options)) (*ec2.ModifyVpnTunnelCertificateOutput, error)
	// Modifies the options for a VPN tunnel in an Amazon Web Services Site-to-Site
	// VPN connection. You can modify multiple options for a tunnel in a single
	// request, but you can only modify one tunnel at a time. For more information, see
	// [Site-to-Site VPN tunnel options for your Site-to-Site VPN connection]in the Amazon Web Services Site-to-Site VPN User Guide.
	//
	// [Site-to-Site VPN tunnel options for your Site-to-Site VPN connection]: https://docs.aws.amazon.com/vpn/latest/s2svpn/VPNTunnels.html
	ModifyVpnTunnelOptions(ctx context.Context, params *ec2.ModifyVpnTunnelOptionsInput, optFns ...func(*Options)) (*ec2.ModifyVpnTunnelOptionsOutput, error)
	// Enables detailed monitoring for a running instance. Otherwise, basic monitoring
	// is enabled. For more information, see [Monitor your instances using CloudWatch]in the Amazon EC2 User Guide.
	//
	// To disable detailed monitoring, see [UnmonitorInstances].
	//
	// [Monitor your instances using CloudWatch]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html
	// [UnmonitorInstances]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_UnmonitorInstances.html
	MonitorInstances(ctx context.Context, params *ec2.MonitorInstancesInput, optFns ...func(*Options)) (*ec2.MonitorInstancesOutput, error)
	// This action is deprecated.
	//
	// Moves an Elastic IP address from the EC2-Classic platform to the EC2-VPC
	// platform. The Elastic IP address must be allocated to your account for more than
	// 24 hours, and it must not be associated with an instance. After the Elastic IP
	// address is moved, it is no longer available for use in the EC2-Classic platform.
	// You cannot move an Elastic IP address that was originally allocated for use in
	// the EC2-VPC platform to the EC2-Classic platform.
	MoveAddressToVpc(ctx context.Context, params *ec2.MoveAddressToVpcInput, optFns ...func(*Options)) (*ec2.MoveAddressToVpcOutput, error)
	// Move a BYOIPv4 CIDR to IPAM from a public IPv4 pool.
	//
	// If you already have a BYOIPv4 CIDR with Amazon Web Services, you can move the
	// CIDR to IPAM from a public IPv4 pool. You cannot move an IPv6 CIDR to IPAM. If
	// you are bringing a new IP address to Amazon Web Services for the first time,
	// complete the steps in [Tutorial: BYOIP address CIDRs to IPAM].
	//
	// [Tutorial: BYOIP address CIDRs to IPAM]: https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoip-ipam.html
	MoveByoipCidrToIpam(ctx context.Context, params *ec2.MoveByoipCidrToIpamInput, optFns ...func(*Options)) (*ec2.MoveByoipCidrToIpamOutput, error)
	// Move available capacity from a source Capacity Reservation to a destination
	// Capacity Reservation. The source Capacity Reservation and the destination
	// Capacity Reservation must be active , owned by your Amazon Web Services account,
	// and share the following:
	//
	//   - Instance type
	//
	//   - Platform
	//
	//   - Availability Zone
	//
	//   - Tenancy
	//
	//   - Placement group
	//
	//   - Capacity Reservation end time - At specific time or Manually .
	MoveCapacityReservationInstances(ctx context.Context, params *ec2.MoveCapacityReservationInstancesInput, optFns ...func(*Options)) (*ec2.MoveCapacityReservationInstancesOutput, error)
	// Provisions an IPv4 or IPv6 address range for use with your Amazon Web Services
	// resources through bring your own IP addresses (BYOIP) and creates a
	// corresponding address pool. After the address range is provisioned, it is ready
	// to be advertised.
	//
	// Amazon Web Services verifies that you own the address range and are authorized
	// to advertise it. You must ensure that the address range is registered to you and
	// that you created an RPKI ROA to authorize Amazon ASNs 16509 and 14618 to
	// advertise the address range. For more information, see [Bring your own IP addresses (BYOIP)]in the Amazon EC2 User
	// Guide.
	//
	// Provisioning an address range is an asynchronous operation, so the call returns
	// immediately, but the address range is not ready to use until its status changes
	// from pending-provision to provisioned . For more information, see [Onboard your address range].
	//
	// [Bring your own IP addresses (BYOIP)]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html
	// [Onboard your address range]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/byoip-onboard.html
	ProvisionByoipCidr(ctx context.Context, params *ec2.ProvisionByoipCidrInput, optFns ...func(*Options)) (*ec2.ProvisionByoipCidrOutput, error)
	// Provisions your Autonomous System Number (ASN) for use in your Amazon Web
	// Services account. This action requires authorization context for Amazon to bring
	// the ASN to an Amazon Web Services account. For more information, see [Tutorial: Bring your ASN to IPAM]in the
	// Amazon VPC IPAM guide.
	//
	// [Tutorial: Bring your ASN to IPAM]: https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-byoasn.html
	ProvisionIpamByoasn(ctx context.Context, params *ec2.ProvisionIpamByoasnInput, optFns ...func(*Options)) (*ec2.ProvisionIpamByoasnOutput, error)
	// Provision a CIDR to an IPAM pool. You can use this action to provision new
	// CIDRs to a top-level pool or to transfer a CIDR from a top-level pool to a pool
	// within it.
	//
	// For more information, see [Provision CIDRs to pools] in the Amazon VPC IPAM User Guide.
	//
	// [Provision CIDRs to pools]: https://docs.aws.amazon.com/vpc/latest/ipam/prov-cidr-ipam.html
	ProvisionIpamPoolCidr(ctx context.Context, params *ec2.ProvisionIpamPoolCidrInput, optFns ...func(*Options)) (*ec2.ProvisionIpamPoolCidrOutput, error)
	// Provision a CIDR to a public IPv4 pool.
	//
	// For more information about IPAM, see [What is IPAM?] in the Amazon VPC IPAM User Guide.
	//
	// [What is IPAM?]: https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html
	ProvisionPublicIpv4PoolCidr(ctx context.Context, params *ec2.ProvisionPublicIpv4PoolCidrInput, optFns ...func(*Options)) (*ec2.ProvisionPublicIpv4PoolCidrOutput, error)
	// Purchase the Capacity Block for use with your account. With Capacity Blocks you
	// ensure GPU capacity is available for machine learning (ML) workloads. You must
	// specify the ID of the Capacity Block offering you are purchasing.
	PurchaseCapacityBlock(ctx context.Context, params *ec2.PurchaseCapacityBlockInput, optFns ...func(*Options)) (*ec2.PurchaseCapacityBlockOutput, error)
	// Purchase the Capacity Block extension for use with your account. You must
	// specify the ID of the Capacity Block extension offering you are purchasing.
	PurchaseCapacityBlockExtension(ctx context.Context, params *ec2.PurchaseCapacityBlockExtensionInput, optFns ...func(*Options)) (*ec2.PurchaseCapacityBlockExtensionOutput, error)
	// Purchase a reservation with configurations that match those of your Dedicated
	// Host. You must have active Dedicated Hosts in your account before you purchase a
	// reservation. This action results in the specified reservation being purchased
	// and charged to your account.
	PurchaseHostReservation(ctx context.Context, params *ec2.PurchaseHostReservationInput, optFns ...func(*Options)) (*ec2.PurchaseHostReservationOutput, error)
	// Purchases a Reserved Instance for use with your account. With Reserved
	// Instances, you pay a lower hourly rate compared to On-Demand instance pricing.
	//
	// Use DescribeReservedInstancesOfferings to get a list of Reserved Instance offerings that match your
	// specifications. After you've purchased a Reserved Instance, you can check for
	// your new Reserved Instance with DescribeReservedInstances.
	//
	// To queue a purchase for a future date and time, specify a purchase time. If you
	// do not specify a purchase time, the default is the current time.
	//
	// For more information, see [Reserved Instances] and [Sell in the Reserved Instance Marketplace] in the Amazon EC2 User Guide.
	//
	// [Reserved Instances]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html
	// [Sell in the Reserved Instance Marketplace]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html
	PurchaseReservedInstancesOffering(ctx context.Context, params *ec2.PurchaseReservedInstancesOfferingInput, optFns ...func(*Options)) (*ec2.PurchaseReservedInstancesOfferingOutput, error)
	// You can no longer purchase Scheduled Instances.
	//
	// Purchases the Scheduled Instances with the specified schedule.
	//
	// Scheduled Instances enable you to purchase Amazon EC2 compute capacity by the
	// hour for a one-year term. Before you can purchase a Scheduled Instance, you must
	// call DescribeScheduledInstanceAvailabilityto check for available schedules and obtain a purchase token. After you
	// purchase a Scheduled Instance, you must call RunScheduledInstancesduring each scheduled time period.
	//
	// After you purchase a Scheduled Instance, you can't cancel, modify, or resell
	// your purchase.
	PurchaseScheduledInstances(ctx context.Context, params *ec2.PurchaseScheduledInstancesInput, optFns ...func(*Options)) (*ec2.PurchaseScheduledInstancesOutput, error)
	// Requests a reboot of the specified instances. This operation is asynchronous;
	// it only queues a request to reboot the specified instances. The operation
	// succeeds if the instances are valid and belong to you. Requests to reboot
	// terminated instances are ignored.
	//
	// If an instance does not cleanly shut down within a few minutes, Amazon EC2
	// performs a hard reboot.
	//
	// For more information about troubleshooting, see [Troubleshoot an unreachable instance] in the Amazon EC2 User Guide.
	//
	// [Troubleshoot an unreachable instance]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html
	RebootInstances(ctx context.Context, params *ec2.RebootInstancesInput, optFns ...func(*Options)) (*ec2.RebootInstancesOutput, error)
	// Registers an AMI. When you're creating an instance-store backed AMI,
	// registering the AMI is the final step in the creation process. For more
	// information about creating AMIs, see [Create an AMI from a snapshot]and [Create an instance-store backed AMI] in the Amazon EC2 User Guide.
	//
	// If needed, you can deregister an AMI at any time. Any modifications you make to
	// an AMI backed by an instance store volume invalidates its registration. If you
	// make changes to an image, deregister the previous image and register the new
	// image.
	//
	// # Register a snapshot of a root device volume
	//
	// You can use RegisterImage to create an Amazon EBS-backed Linux AMI from a
	// snapshot of a root device volume. You specify the snapshot using a block device
	// mapping. You can't set the encryption state of the volume using the block device
	// mapping. If the snapshot is encrypted, or encryption by default is enabled, the
	// root volume of an instance launched from the AMI is encrypted.
	//
	// For more information, see [Create an AMI from a snapshot] and [Use encryption with EBS-backed AMIs] in the Amazon EC2 User Guide.
	//
	// # Amazon Web Services Marketplace product codes
	//
	// If any snapshots have Amazon Web Services Marketplace product codes, they are
	// copied to the new AMI.
	//
	// In most cases, AMIs for Windows, RedHat, SUSE, and SQL Server require correct
	// licensing information to be present on the AMI. For more information, see [Understand AMI billing information]in
	// the Amazon EC2 User Guide. When creating an AMI from a snapshot, the
	// RegisterImage operation derives the correct billing information from the
	// snapshot's metadata, but this requires the appropriate metadata to be present.
	// To verify if the correct billing information was applied, check the
	// PlatformDetails field on the new AMI. If the field is empty or doesn't match the
	// expected operating system code (for example, Windows, RedHat, SUSE, or SQL), the
	// AMI creation was unsuccessful, and you should discard the AMI and instead create
	// the AMI from an instance. For more information, see [Create an AMI from an instance]in the Amazon EC2 User
	// Guide.
	//
	// If you purchase a Reserved Instance to apply to an On-Demand Instance that was
	// launched from an AMI with a billing product code, make sure that the Reserved
	// Instance has the matching billing product code. If you purchase a Reserved
	// Instance without the matching billing product code, the Reserved Instance is not
	// applied to the On-Demand Instance. For information about how to obtain the
	// platform details and billing information of an AMI, see [Understand AMI billing information]in the Amazon EC2 User
	// Guide.
	//
	// [Use encryption with EBS-backed AMIs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIEncryption.html
	// [Understand AMI billing information]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-billing-info.html
	// [Create an instance-store backed AMI]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-instance-store.html
	// [Create an AMI from an instance]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html#how-to-create-ebs-ami
	// [Create an AMI from a snapshot]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html#creating-launching-ami-from-snapshot
	RegisterImage(ctx context.Context, params *ec2.RegisterImageInput, optFns ...func(*Options)) (*ec2.RegisterImageOutput, error)
	// Registers a set of tag keys to include in scheduled event notifications for
	// your resources.
	//
	// To remove tags, use [DeregisterInstanceEventNotificationAttributes].
	//
	// [DeregisterInstanceEventNotificationAttributes]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeregisterInstanceEventNotificationAttributes.html
	RegisterInstanceEventNotificationAttributes(ctx context.Context, params *ec2.RegisterInstanceEventNotificationAttributesInput, optFns ...func(*Options)) (*ec2.RegisterInstanceEventNotificationAttributesOutput, error)
	// Registers members (network interfaces) with the transit gateway multicast
	// group. A member is a network interface associated with a supported EC2 instance
	// that receives multicast traffic. For more information, see [Multicast on transit gateways]in the Amazon Web
	// Services Transit Gateways Guide.
	//
	// After you add the members, use [SearchTransitGatewayMulticastGroups] to verify that the members were added to the
	// transit gateway multicast group.
	//
	// [SearchTransitGatewayMulticastGroups]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SearchTransitGatewayMulticastGroups.html
	// [Multicast on transit gateways]: https://docs.aws.amazon.com/vpc/latest/tgw/tgw-multicast-overview.html
	RegisterTransitGatewayMulticastGroupMembers(ctx context.Context, params *ec2.RegisterTransitGatewayMulticastGroupMembersInput, optFns ...func(*Options)) (*ec2.RegisterTransitGatewayMulticastGroupMembersOutput, error)
	// Registers sources (network interfaces) with the specified transit gateway
	// multicast group.
	//
	// A multicast source is a network interface attached to a supported instance that
	// sends multicast traffic. For more information about supported instances, see [Multicast on transit gateways]in
	// the Amazon Web Services Transit Gateways Guide.
	//
	// After you add the source, use [SearchTransitGatewayMulticastGroups] to verify that the source was added to the
	// multicast group.
	//
	// [SearchTransitGatewayMulticastGroups]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SearchTransitGatewayMulticastGroups.html
	// [Multicast on transit gateways]: https://docs.aws.amazon.com/vpc/latest/tgw/tgw-multicast-overview.html
	RegisterTransitGatewayMulticastGroupSources(ctx context.Context, params *ec2.RegisterTransitGatewayMulticastGroupSourcesInput, optFns ...func(*Options)) (*ec2.RegisterTransitGatewayMulticastGroupSourcesOutput, error)
	// Rejects a request to assign billing of the available capacity of a shared
	// Capacity Reservation to your account. For more information, see [Billing assignment for shared Amazon EC2 Capacity Reservations].
	//
	// [Billing assignment for shared Amazon EC2 Capacity Reservations]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/assign-billing.html
	RejectCapacityReservationBillingOwnership(ctx context.Context, params *ec2.RejectCapacityReservationBillingOwnershipInput, optFns ...func(*Options)) (*ec2.RejectCapacityReservationBillingOwnershipOutput, error)
	// Rejects a request to associate cross-account subnets with a transit gateway
	// multicast domain.
	RejectTransitGatewayMulticastDomainAssociations(ctx context.Context, params *ec2.RejectTransitGatewayMulticastDomainAssociationsInput, optFns ...func(*Options)) (*ec2.RejectTransitGatewayMulticastDomainAssociationsOutput, error)
	// Rejects a transit gateway peering attachment request.
	RejectTransitGatewayPeeringAttachment(ctx context.Context, params *ec2.RejectTransitGatewayPeeringAttachmentInput, optFns ...func(*Options)) (*ec2.RejectTransitGatewayPeeringAttachmentOutput, error)
	// Rejects a request to attach a VPC to a transit gateway.
	//
	// The VPC attachment must be in the pendingAcceptance state. Use DescribeTransitGatewayVpcAttachments to view your
	// pending VPC attachment requests. Use AcceptTransitGatewayVpcAttachmentto accept a VPC attachment request.
	RejectTransitGatewayVpcAttachment(ctx context.Context, params *ec2.RejectTransitGatewayVpcAttachmentInput, optFns ...func(*Options)) (*ec2.RejectTransitGatewayVpcAttachmentOutput, error)
	// Rejects VPC endpoint connection requests to your VPC endpoint service.
	RejectVpcEndpointConnections(ctx context.Context, params *ec2.RejectVpcEndpointConnectionsInput, optFns ...func(*Options)) (*ec2.RejectVpcEndpointConnectionsOutput, error)
	// Rejects a VPC peering connection request. The VPC peering connection must be in
	// the pending-acceptance state. Use the DescribeVpcPeeringConnections request to view your outstanding VPC
	// peering connection requests. To delete an active VPC peering connection, or to
	// delete a VPC peering connection request that you initiated, use DeleteVpcPeeringConnection.
	RejectVpcPeeringConnection(ctx context.Context, params *ec2.RejectVpcPeeringConnectionInput, optFns ...func(*Options)) (*ec2.RejectVpcPeeringConnectionOutput, error)
	// Releases the specified Elastic IP address.
	//
	// [Default VPC] Releasing an Elastic IP address automatically disassociates it
	// from any instance that it's associated with. Alternatively, you can disassociate
	// an Elastic IP address without releasing it.
	//
	// [Nondefault VPC] You must disassociate the Elastic IP address before you can
	// release it. Otherwise, Amazon EC2 returns an error ( InvalidIPAddress.InUse ).
	//
	// After releasing an Elastic IP address, it is released to the IP address pool.
	// Be sure to update your DNS records and any servers or devices that communicate
	// with the address. If you attempt to release an Elastic IP address that you
	// already released, you'll get an AuthFailure error if the address is already
	// allocated to another Amazon Web Services account.
	//
	// After you release an Elastic IP address, you might be able to recover it. For
	// more information, see [Release an Elastic IP address].
	//
	// [Release an Elastic IP address]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing-eips-releasing.html
	ReleaseAddress(ctx context.Context, params *ec2.ReleaseAddressInput, optFns ...func(*Options)) (*ec2.ReleaseAddressOutput, error)
	// When you no longer want to use an On-Demand Dedicated Host it can be released.
	// On-Demand billing is stopped and the host goes into released state. The host ID
	// of Dedicated Hosts that have been released can no longer be specified in another
	// request, for example, to modify the host. You must stop or terminate all
	// instances on a host before it can be released.
	//
	// When Dedicated Hosts are released, it may take some time for them to stop
	// counting toward your limit and you may receive capacity errors when trying to
	// allocate new Dedicated Hosts. Wait a few minutes and then try again.
	//
	// Released hosts still appear in a DescribeHosts response.
	ReleaseHosts(ctx context.Context, params *ec2.ReleaseHostsInput, optFns ...func(*Options)) (*ec2.ReleaseHostsOutput, error)
	// Release an allocation within an IPAM pool. The Region you use should be the
	// IPAM pool locale. The locale is the Amazon Web Services Region where this IPAM
	// pool is available for allocations. You can only use this action to release
	// manual allocations. To remove an allocation for a resource without deleting the
	// resource, set its monitored state to false using [ModifyIpamResourceCidr]. For more information, see [Release an allocation]
	// in the Amazon VPC IPAM User Guide.
	//
	// All EC2 API actions follow an [eventual consistency] model.
	//
	// [Release an allocation]: https://docs.aws.amazon.com/vpc/latest/ipam/release-alloc-ipam.html
	// [eventual consistency]: https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html
	// [ModifyIpamResourceCidr]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyIpamResourceCidr.html
	ReleaseIpamPoolAllocation(ctx context.Context, params *ec2.ReleaseIpamPoolAllocationInput, optFns ...func(*Options)) (*ec2.ReleaseIpamPoolAllocationOutput, error)
	// Replaces an IAM instance profile for the specified running instance. You can
	// use this action to change the IAM instance profile that's associated with an
	// instance without having to disassociate the existing IAM instance profile first.
	//
	// Use DescribeIamInstanceProfileAssociations to get the association ID.
	ReplaceIamInstanceProfileAssociation(ctx context.Context, params *ec2.ReplaceIamInstanceProfileAssociationInput, optFns ...func(*Options)) (*ec2.ReplaceIamInstanceProfileAssociationOutput, error)
	// Sets or replaces the criteria for Allowed AMIs.
	//
	// The Allowed AMIs feature does not restrict the AMIs owned by your account.
	// Regardless of the criteria you set, the AMIs created by your account will always
	// be discoverable and usable by users in your account.
	//
	// For more information, see [Control the discovery and use of AMIs in Amazon EC2 with Allowed AMIs] in Amazon EC2 User Guide.
	//
	// [Control the discovery and use of AMIs in Amazon EC2 with Allowed AMIs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-allowed-amis.html
	ReplaceImageCriteriaInAllowedImagesSettings(ctx context.Context, params *ec2.ReplaceImageCriteriaInAllowedImagesSettingsInput, optFns ...func(*Options)) (*ec2.ReplaceImageCriteriaInAllowedImagesSettingsOutput, error)
	// Changes which network ACL a subnet is associated with. By default when you
	// create a subnet, it's automatically associated with the default network ACL. For
	// more information, see [Network ACLs]in the Amazon VPC User Guide.
	//
	// This is an idempotent operation.
	//
	// [Network ACLs]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html
	ReplaceNetworkAclAssociation(ctx context.Context, params *ec2.ReplaceNetworkAclAssociationInput, optFns ...func(*Options)) (*ec2.ReplaceNetworkAclAssociationOutput, error)
	// Replaces an entry (rule) in a network ACL. For more information, see [Network ACLs] in the
	// Amazon VPC User Guide.
	//
	// [Network ACLs]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html
	ReplaceNetworkAclEntry(ctx context.Context, params *ec2.ReplaceNetworkAclEntryInput, optFns ...func(*Options)) (*ec2.ReplaceNetworkAclEntryOutput, error)
	// Replaces an existing route within a route table in a VPC.
	//
	// You must specify either a destination CIDR block or a prefix list ID. You must
	// also specify exactly one of the resources from the parameter list, or reset the
	// local route to its default target.
	//
	// For more information, see [Route tables] in the Amazon VPC User Guide.
	//
	// [Route tables]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html
	ReplaceRoute(ctx context.Context, params *ec2.ReplaceRouteInput, optFns ...func(*Options)) (*ec2.ReplaceRouteOutput, error)
	// Changes the route table associated with a given subnet, internet gateway, or
	// virtual private gateway in a VPC. After the operation completes, the subnet or
	// gateway uses the routes in the new route table. For more information about route
	// tables, see [Route tables]in the Amazon VPC User Guide.
	//
	// You can also use this operation to change which table is the main route table
	// in the VPC. Specify the main route table's association ID and the route table ID
	// of the new main route table.
	//
	// [Route tables]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html
	ReplaceRouteTableAssociation(ctx context.Context, params *ec2.ReplaceRouteTableAssociationInput, optFns ...func(*Options)) (*ec2.ReplaceRouteTableAssociationOutput, error)
	// Replaces the specified route in the specified transit gateway route table.
	ReplaceTransitGatewayRoute(ctx context.Context, params *ec2.ReplaceTransitGatewayRouteInput, optFns ...func(*Options)) (*ec2.ReplaceTransitGatewayRouteOutput, error)
	// Trigger replacement of specified VPN tunnel.
	ReplaceVpnTunnel(ctx context.Context, params *ec2.ReplaceVpnTunnelInput, optFns ...func(*Options)) (*ec2.ReplaceVpnTunnelOutput, error)
	// Submits feedback about the status of an instance. The instance must be in the
	// running state. If your experience with the instance differs from the instance
	// status returned by DescribeInstanceStatus, use ReportInstanceStatus to report your experience with the instance. Amazon
	// EC2 collects this information to improve the accuracy of status checks.
	//
	// Use of this action does not change the value returned by DescribeInstanceStatus.
	ReportInstanceStatus(ctx context.Context, params *ec2.ReportInstanceStatusInput, optFns ...func(*Options)) (*ec2.ReportInstanceStatusOutput, error)
	// Creates a Spot Fleet request.
	//
	// The Spot Fleet request specifies the total target capacity and the On-Demand
	// target capacity. Amazon EC2 calculates the difference between the total capacity
	// and On-Demand capacity, and launches the difference as Spot capacity.
	//
	// You can submit a single request that includes multiple launch specifications
	// that vary by instance type, AMI, Availability Zone, or subnet.
	//
	// By default, the Spot Fleet requests Spot Instances in the Spot Instance pool
	// where the price per unit is the lowest. Each launch specification can include
	// its own instance weighting that reflects the value of the instance type to your
	// application workload.
	//
	// Alternatively, you can specify that the Spot Fleet distribute the target
	// capacity across the Spot pools included in its launch specifications. By
	// ensuring that the Spot Instances in your Spot Fleet are in different Spot pools,
	// you can improve the availability of your fleet.
	//
	// You can specify tags for the Spot Fleet request and instances launched by the
	// fleet. You cannot tag other resource types in a Spot Fleet request because only
	// the spot-fleet-request and instance resource types are supported.
	//
	// For more information, see [Spot Fleet requests] in the Amazon EC2 User Guide.
	//
	// We strongly discourage using the RequestSpotFleet API because it is a legacy
	// API with no planned investment. For options for requesting Spot Instances, see [Which is the best Spot request method to use?]
	// in the Amazon EC2 User Guide.
	//
	// [Spot Fleet requests]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html
	// [Which is the best Spot request method to use?]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-best-practices.html#which-spot-request-method-to-use
	RequestSpotFleet(ctx context.Context, params *ec2.RequestSpotFleetInput, optFns ...func(*Options)) (*ec2.RequestSpotFleetOutput, error)
	// Creates a Spot Instance request.
	//
	// For more information, see [Work with Spot Instance] in the Amazon EC2 User Guide.
	//
	// We strongly discourage using the RequestSpotInstances API because it is a
	// legacy API with no planned investment. For options for requesting Spot
	// Instances, see [Which is the best Spot request method to use?]in the Amazon EC2 User Guide.
	//
	// [Work with Spot Instance]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html
	// [Which is the best Spot request method to use?]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-best-practices.html#which-spot-request-method-to-use
	RequestSpotInstances(ctx context.Context, params *ec2.RequestSpotInstancesInput, optFns ...func(*Options)) (*ec2.RequestSpotInstancesOutput, error)
	// Resets the attribute of the specified IP address. For requirements, see [Using reverse DNS for email applications].
	//
	// [Using reverse DNS for email applications]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#Using_Elastic_Addressing_Reverse_DNS
	ResetAddressAttribute(ctx context.Context, params *ec2.ResetAddressAttributeInput, optFns ...func(*Options)) (*ec2.ResetAddressAttributeOutput, error)
	// Resets the default KMS key for EBS encryption for your account in this Region
	// to the Amazon Web Services managed KMS key for EBS.
	//
	// After resetting the default KMS key to the Amazon Web Services managed KMS key,
	// you can continue to encrypt by a customer managed KMS key by specifying it when
	// you create the volume. For more information, see [Amazon EBS encryption]in the Amazon EBS User Guide.
	//
	// [Amazon EBS encryption]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html
	ResetEbsDefaultKmsKeyId(ctx context.Context, params *ec2.ResetEbsDefaultKmsKeyIdInput, optFns ...func(*Options)) (*ec2.ResetEbsDefaultKmsKeyIdOutput, error)
	// Resets the specified attribute of the specified Amazon FPGA Image (AFI) to its
	// default value. You can only reset the load permission attribute.
	ResetFpgaImageAttribute(ctx context.Context, params *ec2.ResetFpgaImageAttributeInput, optFns ...func(*Options)) (*ec2.ResetFpgaImageAttributeOutput, error)
	// Resets an attribute of an AMI to its default value.
	ResetImageAttribute(ctx context.Context, params *ec2.ResetImageAttributeInput, optFns ...func(*Options)) (*ec2.ResetImageAttributeOutput, error)
	// Resets an attribute of an instance to its default value. To reset the kernel or
	// ramdisk , the instance must be in a stopped state. To reset the sourceDestCheck
	// , the instance can be either running or stopped.
	//
	// The sourceDestCheck attribute controls whether source/destination checking is
	// enabled. The default value is true , which means checking is enabled. This value
	// must be false for a NAT instance to perform NAT. For more information, see [NAT instances] in
	// the Amazon VPC User Guide.
	//
	// [NAT instances]: https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html
	ResetInstanceAttribute(ctx context.Context, params *ec2.ResetInstanceAttributeInput, optFns ...func(*Options)) (*ec2.ResetInstanceAttributeOutput, error)
	// Resets a network interface attribute. You can specify only one attribute at a
	// time.
	ResetNetworkInterfaceAttribute(ctx context.Context, params *ec2.ResetNetworkInterfaceAttributeInput, optFns ...func(*Options)) (*ec2.ResetNetworkInterfaceAttributeOutput, error)
	// Resets permission settings for the specified snapshot.
	//
	// For more information about modifying snapshot permissions, see [Share a snapshot] in the Amazon
	// EBS User Guide.
	//
	// [Share a snapshot]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-modifying-snapshot-permissions.html
	ResetSnapshotAttribute(ctx context.Context, params *ec2.ResetSnapshotAttributeInput, optFns ...func(*Options)) (*ec2.ResetSnapshotAttributeOutput, error)
	// This action is deprecated.
	//
	// Restores an Elastic IP address that was previously moved to the EC2-VPC
	// platform back to the EC2-Classic platform. You cannot move an Elastic IP address
	// that was originally allocated for use in EC2-VPC. The Elastic IP address must
	// not be associated with an instance or network interface.
	RestoreAddressToClassic(ctx context.Context, params *ec2.RestoreAddressToClassicInput, optFns ...func(*Options)) (*ec2.RestoreAddressToClassicOutput, error)
	// Restores an AMI from the Recycle Bin. For more information, see [Recover deleted Amazon EBS snapshots and EBS-back AMIs with Recycle Bin] in the Amazon
	// EC2 User Guide.
	//
	// [Recover deleted Amazon EBS snapshots and EBS-back AMIs with Recycle Bin]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recycle-bin.html
	RestoreImageFromRecycleBin(ctx context.Context, params *ec2.RestoreImageFromRecycleBinInput, optFns ...func(*Options)) (*ec2.RestoreImageFromRecycleBinOutput, error)
	// Restores the entries from a previous version of a managed prefix list to a new
	// version of the prefix list.
	RestoreManagedPrefixListVersion(ctx context.Context, params *ec2.RestoreManagedPrefixListVersionInput, optFns ...func(*Options)) (*ec2.RestoreManagedPrefixListVersionOutput, error)
	// Restores a snapshot from the Recycle Bin. For more information, see [Restore snapshots from the Recycle Bin] in the
	// Amazon EBS User Guide.
	//
	// [Restore snapshots from the Recycle Bin]: https://docs.aws.amazon.com/ebs/latest/userguide/recycle-bin-working-with-snaps.html#recycle-bin-restore-snaps
	RestoreSnapshotFromRecycleBin(ctx context.Context, params *ec2.RestoreSnapshotFromRecycleBinInput, optFns ...func(*Options)) (*ec2.RestoreSnapshotFromRecycleBinOutput, error)
	// Restores an archived Amazon EBS snapshot for use temporarily or permanently, or
	// modifies the restore period or restore type for a snapshot that was previously
	// temporarily restored.
	//
	// For more information see [Restore an archived snapshot] and [modify the restore period or restore type for a temporarily restored snapshot] in the Amazon EBS User Guide.
	//
	// [Restore an archived snapshot]: https://docs.aws.amazon.com/ebs/latest/userguide/working-with-snapshot-archiving.html#restore-archived-snapshot
	// [modify the restore period or restore type for a temporarily restored snapshot]: https://docs.aws.amazon.com/ebs/latest/userguide/working-with-snapshot-archiving.html#modify-temp-restore-period
	RestoreSnapshotTier(ctx context.Context, params *ec2.RestoreSnapshotTierInput, optFns ...func(*Options)) (*ec2.RestoreSnapshotTierOutput, error)
	// Restores a volume from the Recycle Bin. For more information, see [Restore volumes from the Recycle Bin] in the
	// Amazon EBS User Guide.
	//
	// [Restore volumes from the Recycle Bin]: https://docs.aws.amazon.com/ebs/latest/userguide/recycle-bin-working-with-volumes.html#recycle-bin-restore-volumes
	RestoreVolumeFromRecycleBin(ctx context.Context, params *ec2.RestoreVolumeFromRecycleBinInput, optFns ...func(*Options)) (*ec2.RestoreVolumeFromRecycleBinOutput, error)
	// Removes an ingress authorization rule from a Client VPN endpoint.
	RevokeClientVpnIngress(ctx context.Context, params *ec2.RevokeClientVpnIngressInput, optFns ...func(*Options)) (*ec2.RevokeClientVpnIngressOutput, error)
	// Removes the specified outbound (egress) rules from the specified security group.
	//
	// You can specify rules using either rule IDs or security group rule properties.
	// If you use rule properties, the values that you specify (for example, ports)
	// must match the existing rule's values exactly. Each rule has a protocol, from
	// and to ports, and destination (CIDR range, security group, or prefix list). For
	// the TCP and UDP protocols, you must also specify the destination port or range
	// of ports. For the ICMP protocol, you must also specify the ICMP type and code.
	// If the security group rule has a description, you do not need to specify the
	// description to revoke the rule.
	//
	// For a default VPC, if the values you specify do not match the existing rule's
	// values, no error is returned, and the output describes the security group rules
	// that were not revoked.
	//
	// Amazon Web Services recommends that you describe the security group to verify
	// that the rules were removed.
	//
	// Rule changes are propagated to instances within the security group as quickly
	// as possible. However, a small delay might occur.
	RevokeSecurityGroupEgress(ctx context.Context, params *ec2.RevokeSecurityGroupEgressInput, optFns ...func(*Options)) (*ec2.RevokeSecurityGroupEgressOutput, error)
	// Removes the specified inbound (ingress) rules from a security group.
	//
	// You can specify rules using either rule IDs or security group rule properties.
	// If you use rule properties, the values that you specify (for example, ports)
	// must match the existing rule's values exactly. Each rule has a protocol, from
	// and to ports, and source (CIDR range, security group, or prefix list). For the
	// TCP and UDP protocols, you must also specify the destination port or range of
	// ports. For the ICMP protocol, you must also specify the ICMP type and code. If
	// the security group rule has a description, you do not need to specify the
	// description to revoke the rule.
	//
	// For a default VPC, if the values you specify do not match the existing rule's
	// values, no error is returned, and the output describes the security group rules
	// that were not revoked.
	//
	// For a non-default VPC, if the values you specify do not match the existing
	// rule's values, an InvalidPermission.NotFound client error is returned, and no
	// rules are revoked.
	//
	// Amazon Web Services recommends that you describe the security group to verify
	// that the rules were removed.
	//
	// Rule changes are propagated to instances within the security group as quickly
	// as possible. However, a small delay might occur.
	RevokeSecurityGroupIngress(ctx context.Context, params *ec2.RevokeSecurityGroupIngressInput, optFns ...func(*Options)) (*ec2.RevokeSecurityGroupIngressOutput, error)
	// Launches the specified number of instances using an AMI for which you have
	// permissions.
	//
	// You can specify a number of options, or leave the default options. The
	// following rules apply:
	//
	//   - If you don't specify a subnet ID, we choose a default subnet from your
	//     default VPC for you. If you don't have a default VPC, you must specify a subnet
	//     ID in the request.
	//
	//   - All instances have a network interface with a primary private IPv4 address.
	//     If you don't specify this address, we choose one from the IPv4 range of your
	//     subnet.
	//
	//   - Not all instance types support IPv6 addresses. For more information, see [Instance types].
	//
	//   - If you don't specify a security group ID, we use the default security group
	//     for the VPC. For more information, see [Security groups].
	//
	//   - If any of the AMIs have a product code attached for which the user has not
	//     subscribed, the request fails.
	//
	// You can create a [launch template], which is a resource that contains the parameters to launch
	// an instance. When you launch an instance using RunInstances, you can specify the launch
	// template instead of specifying the launch parameters.
	//
	// To ensure faster instance launches, break up large requests into smaller
	// batches. For example, create five separate launch requests for 100 instances
	// each instead of one launch request for 500 instances.
	//
	// RunInstances is subject to both request rate limiting and resource rate
	// limiting. For more information, see [Request throttling].
	//
	// An instance is ready for you to use when it's in the running state. You can
	// check the state of your instance using DescribeInstances. You can tag instances and EBS volumes
	// during launch, after launch, or both. For more information, see CreateTagsand [Tagging your Amazon EC2 resources].
	//
	// Linux instances have access to the public key of the key pair at boot. You can
	// use this key to provide secure access to the instance. Amazon EC2 public images
	// use this feature to provide secure access without passwords. For more
	// information, see [Key pairs].
	//
	// For troubleshooting, see [What to do if an instance immediately terminates], and [Troubleshooting connecting to your instance].
	//
	// [Key pairs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html
	// [What to do if an instance immediately terminates]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_InstanceStraightToTerminated.html
	// [Tagging your Amazon EC2 resources]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html
	// [launch template]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html
	// [Security groups]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html
	// [Request throttling]: https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-throttling.html
	// [Instance types]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html
	// [Troubleshooting connecting to your instance]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html
	RunInstances(ctx context.Context, params *ec2.RunInstancesInput, optFns ...func(*Options)) (*ec2.RunInstancesOutput, error)
	// Launches the specified Scheduled Instances.
	//
	// Before you can launch a Scheduled Instance, you must purchase it and obtain an
	// identifier using PurchaseScheduledInstances.
	//
	// You must launch a Scheduled Instance during its scheduled time period. You
	// can't stop or reboot a Scheduled Instance, but you can terminate it as needed.
	// If you terminate a Scheduled Instance before the current scheduled time period
	// ends, you can launch it again after a few minutes.
	RunScheduledInstances(ctx context.Context, params *ec2.RunScheduledInstancesInput, optFns ...func(*Options)) (*ec2.RunScheduledInstancesOutput, error)
	// Searches for routes in the specified local gateway route table.
	SearchLocalGatewayRoutes(ctx context.Context, params *ec2.SearchLocalGatewayRoutesInput, optFns ...func(*Options)) (*ec2.SearchLocalGatewayRoutesOutput, error)
	// Searches one or more transit gateway multicast groups and returns the group
	// membership information.
	SearchTransitGatewayMulticastGroups(ctx context.Context, params *ec2.SearchTransitGatewayMulticastGroupsInput, optFns ...func(*Options)) (*ec2.SearchTransitGatewayMulticastGroupsOutput, error)
	// Searches for routes in the specified transit gateway route table.
	SearchTransitGatewayRoutes(ctx context.Context, params *ec2.SearchTransitGatewayRoutesInput, optFns ...func(*Options)) (*ec2.SearchTransitGatewayRoutesOutput, error)
	// Sends a diagnostic interrupt to the specified Amazon EC2 instance to trigger a
	// kernel panic (on Linux instances), or a blue screen/stop error (on Windows
	// instances). For instances based on Intel and AMD processors, the interrupt is
	// received as a non-maskable interrupt (NMI).
	//
	// In general, the operating system crashes and reboots when a kernel panic or
	// stop error is triggered. The operating system can also be configured to perform
	// diagnostic tasks, such as generating a memory dump file, loading a secondary
	// kernel, or obtaining a call trace.
	//
	// Before sending a diagnostic interrupt to your instance, ensure that its
	// operating system is configured to perform the required diagnostic tasks.
	//
	// For more information about configuring your operating system to generate a
	// crash dump when a kernel panic or stop error occurs, see [Send a diagnostic interrupt (for advanced users)]in the Amazon EC2 User
	// Guide.
	//
	// [Send a diagnostic interrupt (for advanced users)]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/diagnostic-interrupt.html
	SendDiagnosticInterrupt(ctx context.Context, params *ec2.SendDiagnosticInterruptInput, optFns ...func(*Options)) (*ec2.SendDiagnosticInterruptOutput, error)
	// Generates an account status report. The report is generated asynchronously, and
	// can take several hours to complete.
	//
	// The report provides the current status of all attributes supported by
	// declarative policies for the accounts within the specified scope. The scope is
	// determined by the specified TargetId , which can represent an individual
	// account, or all the accounts that fall under the specified organizational unit
	// (OU) or root (the entire Amazon Web Services Organization).
	//
	// The report is saved to your specified S3 bucket, using the following path
	// structure (with the capitalized placeholders representing your specific values):
	//
	//	s3://AMZN-S3-DEMO-BUCKET/YOUR-OPTIONAL-S3-PREFIX/ec2_TARGETID_REPORTID_YYYYMMDDTHHMMZ.csv
	//
	// Prerequisites for generating a report
	//
	//   - The StartDeclarativePoliciesReport API can only be called by the management
	//     account or delegated administrators for the organization.
	//
	//   - An S3 bucket must be available before generating the report (you can create
	//     a new one or use an existing one), it must be in the same Region where the
	//     report generation request is made, and it must have an appropriate bucket
	//     policy. For a sample S3 policy, see Sample Amazon S3 policy under [Examples].
	//
	//   - Trusted access must be enabled for the service for which the declarative
	//     policy will enforce a baseline configuration. If you use the Amazon Web Services
	//     Organizations console, this is done automatically when you enable declarative
	//     policies. The API uses the following service principal to identify the EC2
	//     service: ec2.amazonaws.com . For more information on how to enable trusted
	//     access with the Amazon Web Services CLI and Amazon Web Services SDKs, see [Using Organizations with other Amazon Web Services services]in
	//     the Amazon Web Services Organizations User Guide.
	//
	//   - Only one report per organization can be generated at a time. Attempting to
	//     generate a report while another is in progress will result in an error.
	//
	// For more information, including the required IAM permissions to run this API,
	// see [Generating the account status report for declarative policies]in the Amazon Web Services Organizations User Guide.
	//
	// [Generating the account status report for declarative policies]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative_status-report.html
	// [Using Organizations with other Amazon Web Services services]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html
	// [Examples]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_StartDeclarativePoliciesReport.html#API_StartDeclarativePoliciesReport_Examples
	StartDeclarativePoliciesReport(ctx context.Context, params *ec2.StartDeclarativePoliciesReportInput, optFns ...func(*Options)) (*ec2.StartDeclarativePoliciesReportOutput, error)
	// Starts an Amazon EBS-backed instance that you've previously stopped.
	//
	// Instances that use Amazon EBS volumes as their root devices can be quickly
	// stopped and started. When an instance is stopped, the compute resources are
	// released and you are not billed for instance usage. However, your root partition
	// Amazon EBS volume remains and continues to persist your data, and you are
	// charged for Amazon EBS volume usage. You can restart your instance at any time.
	// Every time you start your instance, Amazon EC2 charges a one-minute minimum for
	// instance usage, and thereafter charges per second for instance usage.
	//
	// Before stopping an instance, make sure it is in a state from which it can be
	// restarted. Stopping an instance does not preserve data stored in RAM.
	//
	// Performing this operation on an instance that uses an instance store as its
	// root device returns an error.
	//
	// If you attempt to start a T3 instance with host tenancy and the unlimited CPU
	// credit option, the request fails. The unlimited CPU credit option is not
	// supported on Dedicated Hosts. Before you start the instance, either change its
	// CPU credit option to standard , or change its tenancy to default or dedicated .
	//
	// For more information, see [Stop and start Amazon EC2 instances] in the Amazon EC2 User Guide.
	//
	// [Stop and start Amazon EC2 instances]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html
	StartInstances(ctx context.Context, params *ec2.StartInstancesInput, optFns ...func(*Options)) (*ec2.StartInstancesOutput, error)
	// Starts analyzing the specified Network Access Scope.
	StartNetworkInsightsAccessScopeAnalysis(ctx context.Context, params *ec2.StartNetworkInsightsAccessScopeAnalysisInput, optFns ...func(*Options)) (*ec2.StartNetworkInsightsAccessScopeAnalysisOutput, error)
	// Starts analyzing the specified path. If the path is reachable, the operation
	// returns the shortest feasible path.
	StartNetworkInsightsAnalysis(ctx context.Context, params *ec2.StartNetworkInsightsAnalysisInput, optFns ...func(*Options)) (*ec2.StartNetworkInsightsAnalysisOutput, error)
	// Initiates the verification process to prove that the service provider owns the
	// private DNS name domain for the endpoint service.
	//
	// The service provider must successfully perform the verification before the
	// consumer can use the name to access the service.
	//
	// Before the service provider runs this command, they must add a record to the
	// DNS server.
	StartVpcEndpointServicePrivateDnsVerification(ctx context.Context, params *ec2.StartVpcEndpointServicePrivateDnsVerificationInput, optFns ...func(*Options)) (*ec2.StartVpcEndpointServicePrivateDnsVerificationOutput, error)
	// Stops an Amazon EBS-backed instance. You can restart your instance at any time
	// using the [StartInstances]API. For more information, see [Stop and start Amazon EC2 instances] in the Amazon EC2 User Guide.
	//
	// When you stop or hibernate an instance, we shut it down. By default, this
	// includes a graceful operating system (OS) shutdown. To bypass the graceful
	// shutdown, use the skipOsShutdown parameter; however, this might risk data
	// integrity.
	//
	// You can use the StopInstances operation together with the Hibernate parameter
	// to hibernate an instance if the instance is [enabled for hibernation]and meets the [hibernation prerequisites]. Stopping an
	// instance doesn't preserve data stored in RAM, while hibernation does. If
	// hibernation fails, a normal shutdown occurs. For more information, see [Hibernate your Amazon EC2 instance]in the
	// Amazon EC2 User Guide.
	//
	// If your instance appears stuck in the stopping state, there might be an issue
	// with the underlying host computer. You can use the StopInstances operation
	// together with the Force parameter to force stop your instance. For more
	// information, see [Troubleshoot Amazon EC2 instance stop issues]in the Amazon EC2 User Guide.
	//
	// Stopping and hibernating an instance differs from rebooting or terminating it.
	// For example, a stopped or hibernated instance retains its root volume and any
	// data volumes, unlike terminated instances where these volumes are automatically
	// deleted. For more information about the differences between stopping,
	// hibernating, rebooting, and terminating instances, see [Amazon EC2 instance state changes]in the Amazon EC2 User
	// Guide.
	//
	// We don't charge for instance usage or data transfer fees when an instance is
	// stopped. However, the root volume and any data volumes remain and continue to
	// persist your data, and you're charged for volume usage. Every time you start
	// your instance, Amazon EC2 charges a one-minute minimum for instance usage,
	// followed by per-second billing.
	//
	// You can't stop or hibernate instance store-backed instances.
	//
	// [Troubleshoot Amazon EC2 instance stop issues]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesStopping.html
	// [Stop and start Amazon EC2 instances]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html
	// [Hibernate your Amazon EC2 instance]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html
	// [Amazon EC2 instance state changes]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html
	// [enabled for hibernation]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enabling-hibernation.html
	// [StartInstances]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_StartInstances.html
	// [hibernation prerequisites]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html
	StopInstances(ctx context.Context, params *ec2.StopInstancesInput, optFns ...func(*Options)) (*ec2.StopInstancesOutput, error)
	// Terminates active Client VPN endpoint connections. This action can be used to
	// terminate a specific client connection, or up to five connections established by
	// a specific user.
	TerminateClientVpnConnections(ctx context.Context, params *ec2.TerminateClientVpnConnectionsInput, optFns ...func(*Options)) (*ec2.TerminateClientVpnConnectionsOutput, error)
	// Terminates (deletes) the specified instances. This operation is [idempotent]; if you
	// terminate an instance more than once, each call succeeds.
	//
	// Terminating an instance is permanent and irreversible.
	//
	// After you terminate an instance, you can no longer connect to it, and it can't
	// be recovered. All attached Amazon EBS volumes that are configured to be deleted
	// on termination are also permanently deleted and can't be recovered. All data
	// stored on instance store volumes is permanently lost. For more information, see [How instance termination works]
	// .
	//
	// Before you terminate an instance, ensure that you have backed up all data that
	// you need to retain after the termination to persistent storage.
	//
	// If you specify multiple instances and the request fails (for example, because
	// of a single incorrect instance ID), none of the instances are terminated.
	//
	// If you terminate multiple instances across multiple Availability Zones, and one
	// or more of the specified instances are enabled for termination protection, the
	// request fails with the following results:
	//
	//   - The specified instances that are in the same Availability Zone as the
	//     protected instance are not terminated.
	//
	//   - The specified instances that are in different Availability Zones, where no
	//     other specified instances are protected, are successfully terminated.
	//
	// For example, say you have the following instances:
	//
	//   - Instance A: us-east-1a ; Not protected
	//
	//   - Instance B: us-east-1a ; Not protected
	//
	//   - Instance C: us-east-1b ; Protected
	//
	//   - Instance D: us-east-1b ; not protected
	//
	// If you attempt to terminate all of these instances in the same request, the
	// request reports failure with the following results:
	//
	//   - Instance A and Instance B are successfully terminated because none of the
	//     specified instances in us-east-1a are enabled for termination protection.
	//
	//   - Instance C and Instance D fail to terminate because at least one of the
	//     specified instances in us-east-1b (Instance C) is enabled for termination
	//     protection.
	//
	// Terminated instances remain visible after termination (for approximately one
	// hour).
	//
	// By default, Amazon EC2 deletes all EBS volumes that were attached when the
	// instance launched. Volumes attached after instance launch continue running.
	//
	// By default, the TerminateInstances operation includes a graceful operating
	// system (OS) shutdown. To bypass the graceful shutdown, use the skipOsShutdown
	// parameter; however, this might risk data integrity.
	//
	// You can stop, start, and terminate EBS-backed instances. You can only terminate
	// instance store-backed instances. What happens to an instance differs if you stop
	// or terminate it. For example, when you stop an instance, the root device and any
	// other devices attached to the instance persist. When you terminate an instance,
	// any attached EBS volumes with the DeleteOnTermination block device mapping
	// parameter set to true are automatically deleted. For more information about the
	// differences between stopping and terminating instances, see [Amazon EC2 instance state changes]in the Amazon EC2
	// User Guide.
	//
	// When you terminate an instance, we attempt to terminate it forcibly after a
	// short while. If your instance appears stuck in the shutting-down state after a
	// period of time, there might be an issue with the underlying host computer. For
	// more information about terminating and troubleshooting terminating your
	// instances, see [Terminate Amazon EC2 instances]and [Troubleshooting terminating your instance] in the Amazon EC2 User Guide.
	//
	// [idempotent]: https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html
	// [How instance termination works]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-ec2-instance-termination-works.html
	// [Troubleshooting terminating your instance]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesShuttingDown.html
	// [Amazon EC2 instance state changes]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html
	// [Terminate Amazon EC2 instances]: https://docs.aws.amazon.com/
	TerminateInstances(ctx context.Context, params *ec2.TerminateInstancesInput, optFns ...func(*Options)) (*ec2.TerminateInstancesOutput, error)
	// Unassigns the specified IPv6 addresses or Prefix Delegation prefixes from a
	// network interface.
	UnassignIpv6Addresses(ctx context.Context, params *ec2.UnassignIpv6AddressesInput, optFns ...func(*Options)) (*ec2.UnassignIpv6AddressesOutput, error)
	// Unassigns the specified secondary private IP addresses or IPv4 Prefix
	// Delegation prefixes from a network interface.
	UnassignPrivateIpAddresses(ctx context.Context, params *ec2.UnassignPrivateIpAddressesInput, optFns ...func(*Options)) (*ec2.UnassignPrivateIpAddressesOutput, error)
	// Unassigns secondary private IPv4 addresses from a private NAT gateway. You
	// cannot unassign your primary private IP. For more information, see [Edit secondary IP address associations]in the
	// Amazon VPC User Guide.
	//
	// While unassigning is in progress, you cannot assign/unassign additional IP
	// addresses while the connections are being drained. You are, however, allowed to
	// delete the NAT gateway.
	//
	// A private IP address will only be released at the end of
	// MaxDrainDurationSeconds. The private IP addresses stay associated and support
	// the existing connections, but do not support any new connections (new
	// connections are distributed across the remaining assigned private IP address).
	// After the existing connections drain out, the private IP addresses are released.
	//
	// [Edit secondary IP address associations]: https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-working-with.html#nat-gateway-edit-secondary
	UnassignPrivateNatGatewayAddress(ctx context.Context, params *ec2.UnassignPrivateNatGatewayAddressInput, optFns ...func(*Options)) (*ec2.UnassignPrivateNatGatewayAddressOutput, error)
	// Unlocks a snapshot that is locked in governance mode or that is locked in
	// compliance mode but still in the cooling-off period. You can't unlock a snapshot
	// that is locked in compliance mode after the cooling-off period has expired.
	UnlockSnapshot(ctx context.Context, params *ec2.UnlockSnapshotInput, optFns ...func(*Options)) (*ec2.UnlockSnapshotOutput, error)
	// Disables detailed monitoring for a running instance. For more information, see [Monitoring your instances and volumes]
	// in the Amazon EC2 User Guide.
	//
	// [Monitoring your instances and volumes]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html
	UnmonitorInstances(ctx context.Context, params *ec2.UnmonitorInstancesInput, optFns ...func(*Options)) (*ec2.UnmonitorInstancesOutput, error)
	//	Updates the Organizations access setting for EC2 Capacity Manager. This
	//
	// controls whether Capacity Manager can aggregate data from all accounts in your
	// Amazon Web Services Organization or only from the current account.
	UpdateCapacityManagerOrganizationsAccess(ctx context.Context, params *ec2.UpdateCapacityManagerOrganizationsAccessInput, optFns ...func(*Options)) (*ec2.UpdateCapacityManagerOrganizationsAccessOutput, error)
	//	Modifies the number of instances allocated to an interruptible reservation,
	//
	// allowing you to add more capacity or reclaim capacity to your source Capacity
	// Reservation.
	UpdateInterruptibleCapacityReservationAllocation(ctx context.Context, params *ec2.UpdateInterruptibleCapacityReservationAllocationInput, optFns ...func(*Options)) (*ec2.UpdateInterruptibleCapacityReservationAllocationOutput, error)
	// Updates the description of an egress (outbound) security group rule. You can
	// replace an existing description, or add a description to a rule that did not
	// have one previously. You can remove a description for a security group rule by
	// omitting the description parameter in the request.
	UpdateSecurityGroupRuleDescriptionsEgress(ctx context.Context, params *ec2.UpdateSecurityGroupRuleDescriptionsEgressInput, optFns ...func(*Options)) (*ec2.UpdateSecurityGroupRuleDescriptionsEgressOutput, error)
	// Updates the description of an ingress (inbound) security group rule. You can
	// replace an existing description, or add a description to a rule that did not
	// have one previously. You can remove a description for a security group rule by
	// omitting the description parameter in the request.
	UpdateSecurityGroupRuleDescriptionsIngress(ctx context.Context, params *ec2.UpdateSecurityGroupRuleDescriptionsIngressInput, optFns ...func(*Options)) (*ec2.UpdateSecurityGroupRuleDescriptionsIngressOutput, error)
	// Stops advertising an address range that is provisioned as an address pool.
	//
	// You can perform this operation at most once every 10 seconds, even if you
	// specify different address ranges each time.
	//
	// It can take a few minutes before traffic to the specified addresses stops
	// routing to Amazon Web Services because of BGP propagation delays.
	WithdrawByoipCidr(ctx context.Context, params *ec2.WithdrawByoipCidrInput, optFns ...func(*Options)) (*ec2.WithdrawByoipCidrOutput, error)
}

EC2 provides an interface to the AWS EC2 service.

type EKS added in v0.98.0

type EKS interface {
	// Options returns a copy of the client configuration.
	//
	// Callers SHOULD NOT perform mutations on any inner structures within client
	// config. Config overrides should instead be made on a per-operation basis through
	// functional options.
	Options() eks.Options
	// Associates an access policy and its scope to an access entry. For more
	// information about associating access policies, see [Associating and disassociating access policies to and from access entries]in the Amazon EKS User Guide.
	//
	// [Associating and disassociating access policies to and from access entries]: https://docs.aws.amazon.com/eks/latest/userguide/access-policies.html
	AssociateAccessPolicy(ctx context.Context, params *eks.AssociateAccessPolicyInput, optFns ...func(*Options)) (*eks.AssociateAccessPolicyOutput, error)
	// Associates an encryption configuration to an existing cluster.
	//
	// Use this API to enable encryption on existing clusters that don't already have
	// encryption enabled. This allows you to implement a defense-in-depth security
	// strategy without migrating applications to new Amazon EKS clusters.
	AssociateEncryptionConfig(ctx context.Context, params *eks.AssociateEncryptionConfigInput, optFns ...func(*Options)) (*eks.AssociateEncryptionConfigOutput, error)
	// Associates an identity provider configuration to a cluster.
	//
	// If you want to authenticate identities using an identity provider, you can
	// create an identity provider configuration and associate it to your cluster.
	// After configuring authentication to your cluster you can create Kubernetes Role
	// and ClusterRole objects, assign permissions to them, and then bind them to the
	// identities using Kubernetes RoleBinding and ClusterRoleBinding objects. For
	// more information see [Using RBAC Authorization]in the Kubernetes documentation.
	//
	// [Using RBAC Authorization]: https://kubernetes.io/docs/reference/access-authn-authz/rbac/
	AssociateIdentityProviderConfig(ctx context.Context, params *eks.AssociateIdentityProviderConfigInput, optFns ...func(*Options)) (*eks.AssociateIdentityProviderConfigOutput, error)
	// Cancels an in-progress update to an Amazon EKS cluster on a best-effort basis.
	// Cancellation is only performed if the update can be cancelled. Currently, this
	// is supported for VersionRollback update types on EKS Auto Mode clusters when
	// nodes are rolling back.
	//
	// A successful cancellation stops the node rollback. After cancellation, nodes
	// converge to the current cluster version honoring configured disruption controls.
	// If the control plane rollback has already begun, the cancellation request fails.
	CancelUpdate(ctx context.Context, params *eks.CancelUpdateInput, optFns ...func(*Options)) (*eks.CancelUpdateOutput, error)
	// Creates an access entry.
	//
	// An access entry allows an IAM principal to access your cluster. Access entries
	// can replace the need to maintain entries in the aws-auth ConfigMap for
	// authentication. You have the following options for authorizing an IAM principal
	// to access Kubernetes objects on your cluster: Kubernetes role-based access
	// control (RBAC), Amazon EKS, or both. Kubernetes RBAC authorization requires you
	// to create and manage Kubernetes Role , ClusterRole , RoleBinding , and
	// ClusterRoleBinding objects, in addition to managing access entries. If you use
	// Amazon EKS authorization exclusively, you don't need to create and manage
	// Kubernetes Role , ClusterRole , RoleBinding , and ClusterRoleBinding objects.
	//
	// For more information about access entries, see [Access entries] in the Amazon EKS User Guide.
	//
	// [Access entries]: https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html
	CreateAccessEntry(ctx context.Context, params *eks.CreateAccessEntryInput, optFns ...func(*Options)) (*eks.CreateAccessEntryOutput, error)
	// Creates an Amazon EKS add-on.
	//
	// Amazon EKS add-ons help to automate the provisioning and lifecycle management
	// of common operational software for Amazon EKS clusters. For more information,
	// see [Amazon EKS add-ons]in the Amazon EKS User Guide.
	//
	// [Amazon EKS add-ons]: https://docs.aws.amazon.com/eks/latest/userguide/eks-add-ons.html
	CreateAddon(ctx context.Context, params *eks.CreateAddonInput, optFns ...func(*Options)) (*eks.CreateAddonOutput, error)
	// Creates a managed capability resource for an Amazon EKS cluster.
	//
	// Capabilities provide fully managed capabilities to build and scale with
	// Kubernetes. When you create a capability, Amazon EKSprovisions and manages the
	// infrastructure required to run the capability outside of your cluster. This
	// approach reduces operational overhead and preserves cluster resources.
	//
	// You can only create one Capability of each type on a given Amazon EKS cluster.
	// Valid types are Argo CD for declarative GitOps deployment, Amazon Web Services
	// Controllers for Kubernetes (ACK) for resource management, and Kube Resource
	// Orchestrator (KRO) for Kubernetes custom resource orchestration.
	//
	// For more information, see [EKS Capabilities] in the Amazon EKS User Guide.
	//
	// [EKS Capabilities]: https://docs.aws.amazon.com/eks/latest/userguide/capabilities.html
	CreateCapability(ctx context.Context, params *eks.CreateCapabilityInput, optFns ...func(*Options)) (*eks.CreateCapabilityOutput, error)
	// Creates an Amazon EKS control plane.
	//
	// The Amazon EKS control plane consists of control plane instances that run the
	// Kubernetes software, such as etcd and the API server. The control plane runs in
	// an account managed by Amazon Web Services, and the Kubernetes API is exposed by
	// the Amazon EKS API server endpoint. Each Amazon EKS cluster control plane is
	// single tenant and unique. It runs on its own set of Amazon EC2 instances.
	//
	// The cluster control plane is provisioned across multiple Availability Zones and
	// fronted by an Elastic Load Balancing Network Load Balancer. Amazon EKS also
	// provisions elastic network interfaces in your VPC subnets to provide
	// connectivity from the control plane instances to the nodes (for example, to
	// support kubectl exec , logs , and proxy data flows).
	//
	// Amazon EKS nodes run in your Amazon Web Services account and connect to your
	// cluster's control plane over the Kubernetes API server endpoint and a
	// certificate file that is created for your cluster.
	//
	// You can use the endpointPublicAccess and endpointPrivateAccess parameters to
	// enable or disable public and private access to your cluster's Kubernetes API
	// server endpoint. By default, public access is enabled, and private access is
	// disabled. The endpoint domain name and IP address family depends on the value of
	// the ipFamily for the cluster. For more information, see [Amazon EKS Cluster Endpoint Access Control] in the Amazon EKS User
	// Guide .
	//
	// You can use the logging parameter to enable or disable exporting the Kubernetes
	// control plane logs for your cluster to CloudWatch Logs. By default, cluster
	// control plane logs aren't exported to CloudWatch Logs. For more information, see
	// [Amazon EKS Cluster Control Plane Logs]in the Amazon EKS User Guide .
	//
	// CloudWatch Logs ingestion, archive storage, and data scanning rates apply to
	// exported control plane logs. For more information, see [CloudWatch Pricing].
	//
	// In most cases, it takes several minutes to create a cluster. After you create
	// an Amazon EKS cluster, you must configure your Kubernetes tooling to communicate
	// with the API server and launch nodes into your cluster. For more information,
	// see [Allowing users to access your cluster]and [Launching Amazon EKS nodes] in the Amazon EKS User Guide.
	//
	// [Allowing users to access your cluster]: https://docs.aws.amazon.com/eks/latest/userguide/cluster-auth.html
	// [CloudWatch Pricing]: http://aws.amazon.com/cloudwatch/pricing/
	// [Amazon EKS Cluster Control Plane Logs]: https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html
	// [Amazon EKS Cluster Endpoint Access Control]: https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html
	// [Launching Amazon EKS nodes]: https://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html
	CreateCluster(ctx context.Context, params *eks.CreateClusterInput, optFns ...func(*Options)) (*eks.CreateClusterOutput, error)
	// Creates an EKS Anywhere subscription. When a subscription is created, it is a
	// contract agreement for the length of the term specified in the request. Licenses
	// that are used to validate support are provisioned in Amazon Web Services License
	// Manager and the caller account is granted access to EKS Anywhere Curated
	// Packages.
	CreateEksAnywhereSubscription(ctx context.Context, params *eks.CreateEksAnywhereSubscriptionInput, optFns ...func(*Options)) (*eks.CreateEksAnywhereSubscriptionOutput, error)
	// Creates an Fargate profile for your Amazon EKS cluster. You must have at least
	// one Fargate profile in a cluster to be able to run pods on Fargate.
	//
	// The Fargate profile allows an administrator to declare which pods run on
	// Fargate and specify which pods run on which Fargate profile. This declaration is
	// done through the profile's selectors. Each profile can have up to five selectors
	// that contain a namespace and labels. A namespace is required for every selector.
	// The label field consists of multiple optional key-value pairs. Pods that match
	// the selectors are scheduled on Fargate. If a to-be-scheduled pod matches any of
	// the selectors in the Fargate profile, then that pod is run on Fargate.
	//
	// When you create a Fargate profile, you must specify a pod execution role to use
	// with the pods that are scheduled with the profile. This role is added to the
	// cluster's Kubernetes [Role Based Access Control](RBAC) for authorization so that the kubelet that is
	// running on the Fargate infrastructure can register with your Amazon EKS cluster
	// so that it can appear in your cluster as a node. The pod execution role also
	// provides IAM permissions to the Fargate infrastructure to allow read access to
	// Amazon ECR image repositories. For more information, see [Pod Execution Role]in the Amazon EKS User
	// Guide.
	//
	// Fargate profiles are immutable. However, you can create a new updated profile
	// to replace an existing profile and then delete the original after the updated
	// profile has finished creating.
	//
	// If any Fargate profiles in a cluster are in the DELETING status, you must wait
	// for that Fargate profile to finish deleting before you can create any other
	// profiles in that cluster.
	//
	// For more information, see [Fargate profile] in the Amazon EKS User Guide.
	//
	// [Role Based Access Control]: https://kubernetes.io/docs/reference/access-authn-authz/rbac/
	// [Fargate profile]: https://docs.aws.amazon.com/eks/latest/userguide/fargate-profile.html
	// [Pod Execution Role]: https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html
	CreateFargateProfile(ctx context.Context, params *eks.CreateFargateProfileInput, optFns ...func(*Options)) (*eks.CreateFargateProfileOutput, error)
	// Creates a managed node group for an Amazon EKS cluster.
	//
	// You can only create a node group for your cluster that is equal to the current
	// Kubernetes version for the cluster. All node groups are created with the latest
	// AMI release version for the respective minor Kubernetes version of the cluster,
	// unless you deploy a custom AMI using a launch template.
	//
	// For later updates, you will only be able to update a node group using a launch
	// template only if it was originally deployed with a launch template.
	// Additionally, the launch template ID or name must match what was used when the
	// node group was created. You can update the launch template version with
	// necessary changes. For more information about using launch templates, see [Customizing managed nodes with launch templates].
	//
	// An Amazon EKS managed node group is an Amazon EC2 Auto Scaling group and
	// associated Amazon EC2 instances that are managed by Amazon Web Services for an
	// Amazon EKS cluster. For more information, see [Managed node groups]in the Amazon EKS User Guide.
	//
	// Windows AMI types are only supported for commercial Amazon Web Services Regions
	// that support Windows on Amazon EKS.
	//
	// [Customizing managed nodes with launch templates]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
	// [Managed node groups]: https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html
	CreateNodegroup(ctx context.Context, params *eks.CreateNodegroupInput, optFns ...func(*Options)) (*eks.CreateNodegroupOutput, error)
	// Creates an EKS Pod Identity association between a service account in an Amazon
	// EKS cluster and an IAM role with EKS Pod Identity. Use EKS Pod Identity to give
	// temporary IAM credentials to Pods and the credentials are rotated automatically.
	//
	// Amazon EKS Pod Identity associations provide the ability to manage credentials
	// for your applications, similar to the way that Amazon EC2 instance profiles
	// provide credentials to Amazon EC2 instances.
	//
	// If a Pod uses a service account that has an association, Amazon EKS sets
	// environment variables in the containers of the Pod. The environment variables
	// configure the Amazon Web Services SDKs, including the Command Line Interface, to
	// use the EKS Pod Identity credentials.
	//
	// EKS Pod Identity is a simpler method than IAM roles for service accounts, as
	// this method doesn't use OIDC identity providers. Additionally, you can configure
	// a role for EKS Pod Identity once, and reuse it across clusters.
	//
	// Similar to Amazon Web Services IAM behavior, EKS Pod Identity associations are
	// eventually consistent, and may take several seconds to be effective after the
	// initial API call returns successfully. You must design your applications to
	// account for these potential delays. We recommend that you don’t include
	// association create/updates in the critical, high-availability code paths of your
	// application. Instead, make changes in a separate initialization or setup routine
	// that you run less frequently.
	//
	// You can set a target IAM role in the same or a different account for advanced
	// scenarios. With a target role, EKS Pod Identity automatically performs two role
	// assumptions in sequence: first assuming the role in the association that is in
	// this account, then using those credentials to assume the target IAM role. This
	// process provides your Pod with temporary credentials that have the permissions
	// defined in the target role, allowing secure access to resources in another
	// Amazon Web Services account.
	CreatePodIdentityAssociation(ctx context.Context, params *eks.CreatePodIdentityAssociationInput, optFns ...func(*Options)) (*eks.CreatePodIdentityAssociationOutput, error)
	// Deletes an access entry.
	//
	// Deleting an access entry of a type other than Standard can cause your cluster
	// to function improperly. If you delete an access entry in error, you can recreate
	// it.
	DeleteAccessEntry(ctx context.Context, params *eks.DeleteAccessEntryInput, optFns ...func(*Options)) (*eks.DeleteAccessEntryOutput, error)
	// Deletes an Amazon EKS add-on.
	//
	// When you remove an add-on, it's deleted from the cluster. You can always
	// manually start an add-on on the cluster using the Kubernetes API.
	DeleteAddon(ctx context.Context, params *eks.DeleteAddonInput, optFns ...func(*Options)) (*eks.DeleteAddonOutput, error)
	// Deletes a managed capability from your Amazon EKS cluster. When you delete a
	// capability, Amazon EKS removes the capability infrastructure but retains all
	// resources that were managed by the capability.
	//
	// Before deleting a capability, you should delete all Kubernetes resources that
	// were created by the capability. After the capability is deleted, these resources
	// become difficult to manage because the controller that managed them is no longer
	// available. To delete resources before removing the capability, use kubectl
	// delete or remove them through your GitOps workflow.
	DeleteCapability(ctx context.Context, params *eks.DeleteCapabilityInput, optFns ...func(*Options)) (*eks.DeleteCapabilityOutput, error)
	// Deletes an Amazon EKS cluster control plane.
	//
	// If you have active services and ingress resources in your cluster that are
	// associated with a load balancer, you must delete those services before deleting
	// the cluster so that the load balancers are deleted properly. Otherwise, you can
	// have orphaned resources in your VPC that prevent you from being able to delete
	// the VPC. For more information, see [Deleting a cluster]in the Amazon EKS User Guide.
	//
	// If you have managed node groups or Fargate profiles attached to the cluster,
	// you must delete them first. For more information, see DeleteNodgroup and
	// DeleteFargateProfile .
	//
	// [Deleting a cluster]: https://docs.aws.amazon.com/eks/latest/userguide/delete-cluster.html
	DeleteCluster(ctx context.Context, params *eks.DeleteClusterInput, optFns ...func(*Options)) (*eks.DeleteClusterOutput, error)
	// Deletes an expired or inactive subscription. Deleting inactive subscriptions
	// removes them from the Amazon Web Services Management Console view and from
	// list/describe API responses. Subscriptions can only be cancelled within 7 days
	// of creation and are cancelled by creating a ticket in the Amazon Web Services
	// Support Center.
	DeleteEksAnywhereSubscription(ctx context.Context, params *eks.DeleteEksAnywhereSubscriptionInput, optFns ...func(*Options)) (*eks.DeleteEksAnywhereSubscriptionOutput, error)
	// Deletes an Fargate profile.
	//
	// When you delete a Fargate profile, any Pod running on Fargate that was created
	// with the profile is deleted. If the Pod matches another Fargate profile, then
	// it is scheduled on Fargate with that profile. If it no longer matches any
	// Fargate profiles, then it's not scheduled on Fargate and may remain in a pending
	// state.
	//
	// Only one Fargate profile in a cluster can be in the DELETING status at a time.
	// You must wait for a Fargate profile to finish deleting before you can delete any
	// other profiles in that cluster.
	DeleteFargateProfile(ctx context.Context, params *eks.DeleteFargateProfileInput, optFns ...func(*Options)) (*eks.DeleteFargateProfileOutput, error)
	// Deletes a managed node group.
	DeleteNodegroup(ctx context.Context, params *eks.DeleteNodegroupInput, optFns ...func(*Options)) (*eks.DeleteNodegroupOutput, error)
	// Deletes a EKS Pod Identity association.
	//
	// The temporary Amazon Web Services credentials from the previous IAM role
	// session might still be valid until the session expiry. If you need to
	// immediately revoke the temporary session credentials, then go to the role in the
	// IAM console.
	DeletePodIdentityAssociation(ctx context.Context, params *eks.DeletePodIdentityAssociationInput, optFns ...func(*Options)) (*eks.DeletePodIdentityAssociationOutput, error)
	// Deregisters a connected cluster to remove it from the Amazon EKS control plane.
	//
	// A connected cluster is a Kubernetes cluster that you've connected to your
	// control plane using the [Amazon EKS Connector].
	//
	// [Amazon EKS Connector]: https://docs.aws.amazon.com/eks/latest/userguide/eks-connector.html
	DeregisterCluster(ctx context.Context, params *eks.DeregisterClusterInput, optFns ...func(*Options)) (*eks.DeregisterClusterOutput, error)
	// Describes an access entry.
	DescribeAccessEntry(ctx context.Context, params *eks.DescribeAccessEntryInput, optFns ...func(*Options)) (*eks.DescribeAccessEntryOutput, error)
	// Describes an Amazon EKS add-on.
	DescribeAddon(ctx context.Context, params *eks.DescribeAddonInput, optFns ...func(*Options)) (*eks.DescribeAddonOutput, error)
	// Returns configuration options.
	DescribeAddonConfiguration(ctx context.Context, params *eks.DescribeAddonConfigurationInput, optFns ...func(*Options)) (*eks.DescribeAddonConfigurationOutput, error)
	// Describes the versions for an add-on.
	//
	// Information such as the Kubernetes versions that you can use the add-on with,
	// the owner , publisher , and the type of the add-on are returned.
	DescribeAddonVersions(ctx context.Context, params *eks.DescribeAddonVersionsInput, optFns ...func(*Options)) (*eks.DescribeAddonVersionsOutput, error)
	// Returns detailed information about a specific managed capability in your Amazon
	// EKS cluster, including its current status, configuration, health information,
	// and any issues that may be affecting its operation.
	DescribeCapability(ctx context.Context, params *eks.DescribeCapabilityInput, optFns ...func(*Options)) (*eks.DescribeCapabilityOutput, error)
	// Describes an Amazon EKS cluster.
	//
	// The API server endpoint and certificate authority data returned by this
	// operation are required for kubelet and kubectl to communicate with your
	// Kubernetes API server. For more information, see [Creating or updating a kubeconfig file for an Amazon EKS cluster]kubeconfig .
	//
	// The API server endpoint and certificate authority data aren't available until
	// the cluster reaches the ACTIVE state.
	//
	// [Creating or updating a kubeconfig file for an Amazon EKS cluster]: https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html
	DescribeCluster(ctx context.Context, params *eks.DescribeClusterInput, optFns ...func(*Options)) (*eks.DescribeClusterOutput, error)
	// Lists available Kubernetes versions for Amazon EKS clusters.
	DescribeClusterVersions(ctx context.Context, params *eks.DescribeClusterVersionsInput, optFns ...func(*Options)) (*eks.DescribeClusterVersionsOutput, error)
	// Returns descriptive information about a subscription.
	DescribeEksAnywhereSubscription(ctx context.Context, params *eks.DescribeEksAnywhereSubscriptionInput, optFns ...func(*Options)) (*eks.DescribeEksAnywhereSubscriptionOutput, error)
	// Describes an Fargate profile.
	DescribeFargateProfile(ctx context.Context, params *eks.DescribeFargateProfileInput, optFns ...func(*Options)) (*eks.DescribeFargateProfileOutput, error)
	// Describes an identity provider configuration.
	DescribeIdentityProviderConfig(ctx context.Context, params *eks.DescribeIdentityProviderConfigInput, optFns ...func(*Options)) (*eks.DescribeIdentityProviderConfigOutput, error)
	// Returns details about an insight that you specify using its ID.
	DescribeInsight(ctx context.Context, params *eks.DescribeInsightInput, optFns ...func(*Options)) (*eks.DescribeInsightOutput, error)
	// Returns the status of the latest on-demand cluster insights refresh operation.
	DescribeInsightsRefresh(ctx context.Context, params *eks.DescribeInsightsRefreshInput, optFns ...func(*Options)) (*eks.DescribeInsightsRefreshOutput, error)
	// Describes a managed node group.
	DescribeNodegroup(ctx context.Context, params *eks.DescribeNodegroupInput, optFns ...func(*Options)) (*eks.DescribeNodegroupOutput, error)
	// Returns descriptive information about an EKS Pod Identity association.
	//
	// This action requires the ID of the association. You can get the ID from the
	// response to the CreatePodIdentityAssocation for newly created associations. Or,
	// you can list the IDs for associations with ListPodIdentityAssociations and
	// filter the list by namespace or service account.
	DescribePodIdentityAssociation(ctx context.Context, params *eks.DescribePodIdentityAssociationInput, optFns ...func(*Options)) (*eks.DescribePodIdentityAssociationOutput, error)
	// Describes an update to an Amazon EKS resource.
	//
	// When the status of the update is Successful , the update is complete. If an
	// update fails, the status is Failed , and an error detail explains the reason for
	// the failure.
	DescribeUpdate(ctx context.Context, params *eks.DescribeUpdateInput, optFns ...func(*Options)) (*eks.DescribeUpdateOutput, error)
	// Disassociates an access policy from an access entry.
	DisassociateAccessPolicy(ctx context.Context, params *eks.DisassociateAccessPolicyInput, optFns ...func(*Options)) (*eks.DisassociateAccessPolicyOutput, error)
	// Disassociates an identity provider configuration from a cluster.
	//
	// If you disassociate an identity provider from your cluster, users included in
	// the provider can no longer access the cluster. However, you can still access the
	// cluster with IAM principals.
	DisassociateIdentityProviderConfig(ctx context.Context, params *eks.DisassociateIdentityProviderConfigInput, optFns ...func(*Options)) (*eks.DisassociateIdentityProviderConfigOutput, error)
	// Lists the access entries for your cluster.
	ListAccessEntries(ctx context.Context, params *eks.ListAccessEntriesInput, optFns ...func(*Options)) (*eks.ListAccessEntriesOutput, error)
	// Lists the available access policies.
	ListAccessPolicies(ctx context.Context, params *eks.ListAccessPoliciesInput, optFns ...func(*Options)) (*eks.ListAccessPoliciesOutput, error)
	// Lists the installed add-ons.
	ListAddons(ctx context.Context, params *eks.ListAddonsInput, optFns ...func(*Options)) (*eks.ListAddonsOutput, error)
	// Lists the access policies associated with an access entry.
	ListAssociatedAccessPolicies(ctx context.Context, params *eks.ListAssociatedAccessPoliciesInput, optFns ...func(*Options)) (*eks.ListAssociatedAccessPoliciesOutput, error)
	// Lists all managed capabilities in your Amazon EKS cluster. You can use this
	// operation to get an overview of all capabilities and their current status.
	ListCapabilities(ctx context.Context, params *eks.ListCapabilitiesInput, optFns ...func(*Options)) (*eks.ListCapabilitiesOutput, error)
	// Lists the Amazon EKS clusters in your Amazon Web Services account in the
	// specified Amazon Web Services Region.
	ListClusters(ctx context.Context, params *eks.ListClustersInput, optFns ...func(*Options)) (*eks.ListClustersOutput, error)
	// Displays the full description of the subscription.
	ListEksAnywhereSubscriptions(ctx context.Context, params *eks.ListEksAnywhereSubscriptionsInput, optFns ...func(*Options)) (*eks.ListEksAnywhereSubscriptionsOutput, error)
	// Lists the Fargate profiles associated with the specified cluster in your Amazon
	// Web Services account in the specified Amazon Web Services Region.
	ListFargateProfiles(ctx context.Context, params *eks.ListFargateProfilesInput, optFns ...func(*Options)) (*eks.ListFargateProfilesOutput, error)
	// Lists the identity provider configurations for your cluster.
	ListIdentityProviderConfigs(ctx context.Context, params *eks.ListIdentityProviderConfigsInput, optFns ...func(*Options)) (*eks.ListIdentityProviderConfigsOutput, error)
	// Returns a list of all insights checked for against the specified cluster. You
	// can filter which insights are returned by category, associated Kubernetes
	// version, and status. The default filter lists all categories and every status.
	//
	// The following lists the available categories:
	//
	//   - UPGRADE_READINESS : Amazon EKS identifies issues that could impact your
	//     ability to upgrade to new versions of Kubernetes. These are called upgrade
	//     insights.
	//
	//   - MISCONFIGURATION : Amazon EKS identifies misconfiguration in your EKS Hybrid
	//     Nodes setup that could impair functionality of your cluster or workloads. These
	//     are called configuration insights.
	ListInsights(ctx context.Context, params *eks.ListInsightsInput, optFns ...func(*Options)) (*eks.ListInsightsOutput, error)
	// Lists the managed node groups associated with the specified cluster in your
	// Amazon Web Services account in the specified Amazon Web Services Region.
	// Self-managed node groups aren't listed.
	ListNodegroups(ctx context.Context, params *eks.ListNodegroupsInput, optFns ...func(*Options)) (*eks.ListNodegroupsOutput, error)
	// List the EKS Pod Identity associations in a cluster. You can filter the list by
	// the namespace that the association is in or the service account that the
	// association uses.
	ListPodIdentityAssociations(ctx context.Context, params *eks.ListPodIdentityAssociationsInput, optFns ...func(*Options)) (*eks.ListPodIdentityAssociationsOutput, error)
	// List the tags for an Amazon EKS resource.
	ListTagsForResource(ctx context.Context, params *eks.ListTagsForResourceInput, optFns ...func(*Options)) (*eks.ListTagsForResourceOutput, error)
	// Lists the updates associated with an Amazon EKS resource in your Amazon Web
	// Services account, in the specified Amazon Web Services Region.
	ListUpdates(ctx context.Context, params *eks.ListUpdatesInput, optFns ...func(*Options)) (*eks.ListUpdatesOutput, error)
	// Connects a Kubernetes cluster to the Amazon EKS control plane.
	//
	// Any Kubernetes cluster can be connected to the Amazon EKS control plane to view
	// current information about the cluster and its nodes.
	//
	// Cluster connection requires two steps. First, send a [RegisterClusterRequest]RegisterClusterRequest to
	// add it to the Amazon EKS control plane.
	//
	// Second, a [Manifest] containing the activationID and activationCode must be applied to
	// the Kubernetes cluster through it's native provider to provide visibility.
	//
	// After the manifest is updated and applied, the connected cluster is visible to
	// the Amazon EKS control plane. If the manifest isn't applied within three days,
	// the connected cluster will no longer be visible and must be deregistered using
	// DeregisterCluster .
	//
	// [RegisterClusterRequest]: https://docs.aws.amazon.com/eks/latest/APIReference/API_RegisterClusterRequest.html
	// [Manifest]: https://amazon-eks.s3.us-west-2.amazonaws.com/eks-connector/manifests/eks-connector/latest/eks-connector.yaml
	RegisterCluster(ctx context.Context, params *eks.RegisterClusterInput, optFns ...func(*Options)) (*eks.RegisterClusterOutput, error)
	// Initiates an on-demand refresh operation for cluster insights, getting the
	// latest analysis outside of the standard refresh schedule.
	StartInsightsRefresh(ctx context.Context, params *eks.StartInsightsRefreshInput, optFns ...func(*Options)) (*eks.StartInsightsRefreshOutput, error)
	// Associates the specified tags to an Amazon EKS resource with the specified
	// resourceArn . If existing tags on a resource are not specified in the request
	// parameters, they aren't changed. When a resource is deleted, the tags associated
	// with that resource are also deleted. Tags that you create for Amazon EKS
	// resources don't propagate to any other resources associated with the cluster.
	// For example, if you tag a cluster with this operation, that tag doesn't
	// automatically propagate to the subnets and nodes associated with the cluster.
	TagResource(ctx context.Context, params *eks.TagResourceInput, optFns ...func(*Options)) (*eks.TagResourceOutput, error)
	// Deletes specified tags from an Amazon EKS resource.
	UntagResource(ctx context.Context, params *eks.UntagResourceInput, optFns ...func(*Options)) (*eks.UntagResourceOutput, error)
	// Updates an access entry.
	UpdateAccessEntry(ctx context.Context, params *eks.UpdateAccessEntryInput, optFns ...func(*Options)) (*eks.UpdateAccessEntryOutput, error)
	// Updates an Amazon EKS add-on.
	UpdateAddon(ctx context.Context, params *eks.UpdateAddonInput, optFns ...func(*Options)) (*eks.UpdateAddonOutput, error)
	// Updates the configuration of a managed capability in your Amazon EKS cluster.
	// You can update the IAM role, configuration settings, and delete propagation
	// policy for a capability.
	//
	// When you update a capability, Amazon EKS applies the changes and may restart
	// capability components as needed. The capability remains available during the
	// update process, but some operations may be temporarily unavailable.
	UpdateCapability(ctx context.Context, params *eks.UpdateCapabilityInput, optFns ...func(*Options)) (*eks.UpdateCapabilityOutput, error)
	// Updates an Amazon EKS cluster configuration. Your cluster continues to function
	// during the update. The response output includes an update ID that you can use to
	// track the status of your cluster update with DescribeUpdate .
	//
	// You can use this operation to do the following actions:
	//
	//   - You can use this API operation to enable or disable exporting the
	//     Kubernetes control plane logs for your cluster to CloudWatch Logs. By default,
	//     cluster control plane logs aren't exported to CloudWatch Logs. For more
	//     information, see [Amazon EKS Cluster control plane logs]in the Amazon EKS User Guide .
	//
	// CloudWatch Logs ingestion, archive storage, and data scanning rates apply to
	//
	//	exported control plane logs. For more information, see [CloudWatch Pricing].
	//
	//	- You can also use this API operation to enable or disable public and private
	//	access to your cluster's Kubernetes API server endpoint. By default, public
	//	access is enabled, and private access is disabled. For more information, see [Cluster API server endpoint]
	//	in the Amazon EKS User Guide .
	//
	//	- You can also use this API operation to choose different subnets and
	//	security groups for the cluster. You must specify at least two subnets that are
	//	in different Availability Zones. You can't change which VPC the subnets are
	//	from, the subnets must be in the same VPC as the subnets that the cluster was
	//	created with. For more information about the VPC requirements, see [https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html]in the
	//	Amazon EKS User Guide .
	//
	//	- You can also use this API operation to enable or disable ARC zonal shift.
	//	If zonal shift is enabled, Amazon Web Services configures zonal autoshift for
	//	the cluster.
	//
	//	- You can also use this API operation to add, change, or remove the
	//	configuration in the cluster for EKS Hybrid Nodes. To remove the configuration,
	//	use the remoteNetworkConfig key with an object containing both subkeys with
	//	empty arrays for each. Here is an inline example: "remoteNetworkConfig": {
	//	"remoteNodeNetworks": [], "remotePodNetworks": [] } .
	//
	// Cluster updates are asynchronous, and they should finish within a few minutes.
	// During an update, the cluster status moves to UPDATING (this status transition
	// is eventually consistent). When the update is complete (either Failed or
	// Successful ), the cluster status moves to Active .
	//
	// [Amazon EKS Cluster control plane logs]: https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html
	//
	// [Cluster API server endpoint]: https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html
	// [CloudWatch Pricing]: http://aws.amazon.com/cloudwatch/pricing/
	// [https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html]: https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html
	UpdateClusterConfig(ctx context.Context, params *eks.UpdateClusterConfigInput, optFns ...func(*Options)) (*eks.UpdateClusterConfigOutput, error)
	// Updates an Amazon EKS cluster to the specified Kubernetes version. Your cluster
	// continues to function during the update. The response output includes an update
	// ID that you can use to track the status of your cluster update with the [DescribeUpdate]
	// DescribeUpdate API operation.
	//
	// Cluster updates are asynchronous, and they should finish within a few minutes.
	// During an update, the cluster status moves to UPDATING (this status transition
	// is eventually consistent). When the update is complete (either Failed or
	// Successful ), the cluster status moves to Active .
	//
	// If your cluster has managed node groups attached to it, all of your node
	// groups' Kubernetes versions must match the cluster's Kubernetes version in order
	// to update the cluster to a new Kubernetes version.
	//
	// [DescribeUpdate]: https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeUpdate.html
	UpdateClusterVersion(ctx context.Context, params *eks.UpdateClusterVersionInput, optFns ...func(*Options)) (*eks.UpdateClusterVersionOutput, error)
	// Update an EKS Anywhere Subscription. Only auto renewal and tags can be updated
	// after subscription creation.
	UpdateEksAnywhereSubscription(ctx context.Context, params *eks.UpdateEksAnywhereSubscriptionInput, optFns ...func(*Options)) (*eks.UpdateEksAnywhereSubscriptionOutput, error)
	// Updates an Amazon EKS managed node group configuration. Your node group
	// continues to function during the update. The response output includes an update
	// ID that you can use to track the status of your node group update with the [DescribeUpdate]
	// DescribeUpdate API operation. You can update the Kubernetes labels and taints
	// for a node group and the scaling and version update configuration.
	//
	// [DescribeUpdate]: https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeUpdate.html
	UpdateNodegroupConfig(ctx context.Context, params *eks.UpdateNodegroupConfigInput, optFns ...func(*Options)) (*eks.UpdateNodegroupConfigOutput, error)
	// Updates the Kubernetes version or AMI version of an Amazon EKS managed node
	// group.
	//
	// You can update a node group using a launch template only if the node group was
	// originally deployed with a launch template. Additionally, the launch template ID
	// or name must match what was used when the node group was created. You can update
	// the launch template version with necessary changes.
	//
	// If you need to update a custom AMI in a node group that was deployed with a
	// launch template, then update your custom AMI, specify the new ID in a new
	// version of the launch template, and then update the node group to the new
	// version of the launch template.
	//
	// If you update without a launch template, then you can update to the latest
	// available AMI version of a node group's current Kubernetes version by not
	// specifying a Kubernetes version in the request. You can update to the latest AMI
	// version of your cluster's current Kubernetes version by specifying your
	// cluster's Kubernetes version in the request. For information about Linux
	// versions, see [Amazon EKS optimized Amazon Linux AMI versions]in the Amazon EKS User Guide. For information about Windows
	// versions, see [Amazon EKS optimized Windows AMI versions]in the Amazon EKS User Guide.
	//
	// You cannot roll back a node group to an earlier Kubernetes version or AMI
	// version.
	//
	// When a node in a managed node group is terminated due to a scaling action or
	// update, every Pod on that node is drained first. Amazon EKS attempts to drain
	// the nodes gracefully and will fail if it is unable to do so. You can force the
	// update if Amazon EKS is unable to drain the nodes as a result of a Pod
	// disruption budget issue.
	//
	// [Amazon EKS optimized Amazon Linux AMI versions]: https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html
	// [Amazon EKS optimized Windows AMI versions]: https://docs.aws.amazon.com/eks/latest/userguide/eks-ami-versions-windows.html
	UpdateNodegroupVersion(ctx context.Context, params *eks.UpdateNodegroupVersionInput, optFns ...func(*Options)) (*eks.UpdateNodegroupVersionOutput, error)
	// Updates a EKS Pod Identity association. In an update, you can change the IAM
	// role, the target IAM role, or disableSessionTags . You must change at least one
	// of these in an update. An association can't be moved between clusters,
	// namespaces, or service accounts. If you need to edit the namespace or service
	// account, you need to delete the association and then create a new association
	// with your desired settings.
	//
	// Similar to Amazon Web Services IAM behavior, EKS Pod Identity associations are
	// eventually consistent, and may take several seconds to be effective after the
	// initial API call returns successfully. You must design your applications to
	// account for these potential delays. We recommend that you don’t include
	// association create/updates in the critical, high-availability code paths of your
	// application. Instead, make changes in a separate initialization or setup routine
	// that you run less frequently.
	//
	// You can set a target IAM role in the same or a different account for advanced
	// scenarios. With a target role, EKS Pod Identity automatically performs two role
	// assumptions in sequence: first assuming the role in the association that is in
	// this account, then using those credentials to assume the target IAM role. This
	// process provides your Pod with temporary credentials that have the permissions
	// defined in the target role, allowing secure access to resources in another
	// Amazon Web Services account.
	UpdatePodIdentityAssociation(ctx context.Context, params *eks.UpdatePodIdentityAssociationInput, optFns ...func(*Options)) (*eks.UpdatePodIdentityAssociationOutput, error)
}

EKS provides an interface to the AWS EKS service.

type ELB added in v0.91.0

type ELB interface {
	// Options returns a copy of the client configuration.
	//
	// Callers SHOULD NOT perform mutations on any inner structures within client
	// config. Config overrides should instead be made on a per-operation basis through
	// functional options.
	Options() elasticloadbalancing.Options
	// Adds the specified tags to the specified load balancer. Each load balancer can
	// have a maximum of 10 tags.
	//
	// Each tag consists of a key and an optional value. If a tag with the same key is
	// already associated with the load balancer, AddTags updates its value.
	//
	// For more information, see [Tag Your Classic Load Balancer] in the Classic Load Balancers Guide.
	//
	// [Tag Your Classic Load Balancer]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/add-remove-tags.html
	AddTags(ctx context.Context, params *elasticloadbalancing.AddTagsInput, optFns ...func(*Options)) (*elasticloadbalancing.AddTagsOutput, error)
	// Associates one or more security groups with your load balancer in a virtual
	// private cloud (VPC). The specified security groups override the previously
	// associated security groups.
	//
	// For more information, see [Security Groups for Load Balancers in a VPC] in the Classic Load Balancers Guide.
	//
	// [Security Groups for Load Balancers in a VPC]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-security-groups.html#elb-vpc-security-groups
	ApplySecurityGroupsToLoadBalancer(ctx context.Context, params *elasticloadbalancing.ApplySecurityGroupsToLoadBalancerInput, optFns ...func(*Options)) (*elasticloadbalancing.ApplySecurityGroupsToLoadBalancerOutput, error)
	// Adds one or more subnets to the set of configured subnets for the specified
	// load balancer.
	//
	// The load balancer evenly distributes requests across all registered subnets.
	// For more information, see [Add or Remove Subnets for Your Load Balancer in a VPC]in the Classic Load Balancers Guide.
	//
	// [Add or Remove Subnets for Your Load Balancer in a VPC]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-manage-subnets.html
	AttachLoadBalancerToSubnets(ctx context.Context, params *elasticloadbalancing.AttachLoadBalancerToSubnetsInput, optFns ...func(*Options)) (*elasticloadbalancing.AttachLoadBalancerToSubnetsOutput, error)
	// Specifies the health check settings to use when evaluating the health state of
	// your EC2 instances.
	//
	// For more information, see [Configure Health Checks for Your Load Balancer] in the Classic Load Balancers Guide.
	//
	// [Configure Health Checks for Your Load Balancer]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-healthchecks.html
	ConfigureHealthCheck(ctx context.Context, params *elasticloadbalancing.ConfigureHealthCheckInput, optFns ...func(*Options)) (*elasticloadbalancing.ConfigureHealthCheckOutput, error)
	// Generates a stickiness policy with sticky session lifetimes that follow that of
	// an application-generated cookie. This policy can be associated only with
	// HTTP/HTTPS listeners.
	//
	// This policy is similar to the policy created by CreateLBCookieStickinessPolicy, except that the lifetime of
	// the special Elastic Load Balancing cookie, AWSELB , follows the lifetime of the
	// application-generated cookie specified in the policy configuration. The load
	// balancer only inserts a new stickiness cookie when the application response
	// includes a new application cookie.
	//
	// If the application cookie is explicitly removed or expires, the session stops
	// being sticky until a new application cookie is issued.
	//
	// For more information, see [Application-Controlled Session Stickiness] in the Classic Load Balancers Guide.
	//
	// [Application-Controlled Session Stickiness]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html#enable-sticky-sessions-application
	CreateAppCookieStickinessPolicy(ctx context.Context, params *elasticloadbalancing.CreateAppCookieStickinessPolicyInput, optFns ...func(*Options)) (*elasticloadbalancing.CreateAppCookieStickinessPolicyOutput, error)
	// Generates a stickiness policy with sticky session lifetimes controlled by the
	// lifetime of the browser (user-agent) or a specified expiration period. This
	// policy can be associated only with HTTP/HTTPS listeners.
	//
	// When a load balancer implements this policy, the load balancer uses a special
	// cookie to track the instance for each request. When the load balancer receives a
	// request, it first checks to see if this cookie is present in the request. If so,
	// the load balancer sends the request to the application server specified in the
	// cookie. If not, the load balancer sends the request to a server that is chosen
	// based on the existing load-balancing algorithm.
	//
	// A cookie is inserted into the response for binding subsequent requests from the
	// same user to that server. The validity of the cookie is based on the cookie
	// expiration time, which is specified in the policy configuration.
	//
	// For more information, see [Duration-Based Session Stickiness] in the Classic Load Balancers Guide.
	//
	// [Duration-Based Session Stickiness]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html#enable-sticky-sessions-duration
	CreateLBCookieStickinessPolicy(ctx context.Context, params *elasticloadbalancing.CreateLBCookieStickinessPolicyInput, optFns ...func(*Options)) (*elasticloadbalancing.CreateLBCookieStickinessPolicyOutput, error)
	// Creates a Classic Load Balancer.
	//
	// You can add listeners, security groups, subnets, and tags when you create your
	// load balancer, or you can add them later using CreateLoadBalancerListeners, ApplySecurityGroupsToLoadBalancer, AttachLoadBalancerToSubnets, and AddTags.
	//
	// To describe your current load balancers, see DescribeLoadBalancers. When you are finished with a
	// load balancer, you can delete it using DeleteLoadBalancer.
	//
	// You can create up to 20 load balancers per region per account. You can request
	// an increase for the number of load balancers for your account. For more
	// information, see [Limits for Your Classic Load Balancer]in the Classic Load Balancers Guide.
	//
	// [Limits for Your Classic Load Balancer]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-limits.html
	CreateLoadBalancer(ctx context.Context, params *elasticloadbalancing.CreateLoadBalancerInput, optFns ...func(*Options)) (*elasticloadbalancing.CreateLoadBalancerOutput, error)
	// Creates one or more listeners for the specified load balancer. If a listener
	// with the specified port does not already exist, it is created; otherwise, the
	// properties of the new listener must match the properties of the existing
	// listener.
	//
	// For more information, see [Listeners for Your Classic Load Balancer] in the Classic Load Balancers Guide.
	//
	// [Listeners for Your Classic Load Balancer]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-listener-config.html
	CreateLoadBalancerListeners(ctx context.Context, params *elasticloadbalancing.CreateLoadBalancerListenersInput, optFns ...func(*Options)) (*elasticloadbalancing.CreateLoadBalancerListenersOutput, error)
	// Creates a policy with the specified attributes for the specified load balancer.
	//
	// Policies are settings that are saved for your load balancer and that can be
	// applied to the listener or the application server, depending on the policy type.
	CreateLoadBalancerPolicy(ctx context.Context, params *elasticloadbalancing.CreateLoadBalancerPolicyInput, optFns ...func(*Options)) (*elasticloadbalancing.CreateLoadBalancerPolicyOutput, error)
	// Deletes the specified load balancer.
	//
	// If you are attempting to recreate a load balancer, you must reconfigure all
	// settings. The DNS name associated with a deleted load balancer are no longer
	// usable. The name and associated DNS record of the deleted load balancer no
	// longer exist and traffic sent to any of its IP addresses is no longer delivered
	// to your instances.
	//
	// If the load balancer does not exist or has already been deleted, the call to
	// DeleteLoadBalancer still succeeds.
	DeleteLoadBalancer(ctx context.Context, params *elasticloadbalancing.DeleteLoadBalancerInput, optFns ...func(*Options)) (*elasticloadbalancing.DeleteLoadBalancerOutput, error)
	// Deletes the specified listeners from the specified load balancer.
	DeleteLoadBalancerListeners(ctx context.Context, params *elasticloadbalancing.DeleteLoadBalancerListenersInput, optFns ...func(*Options)) (*elasticloadbalancing.DeleteLoadBalancerListenersOutput, error)
	// Deletes the specified policy from the specified load balancer. This policy must
	// not be enabled for any listeners.
	DeleteLoadBalancerPolicy(ctx context.Context, params *elasticloadbalancing.DeleteLoadBalancerPolicyInput, optFns ...func(*Options)) (*elasticloadbalancing.DeleteLoadBalancerPolicyOutput, error)
	// Deregisters the specified instances from the specified load balancer. After the
	// instance is deregistered, it no longer receives traffic from the load balancer.
	//
	// You can use DescribeLoadBalancers to verify that the instance is deregistered from the load balancer.
	//
	// For more information, see [Register or De-Register EC2 Instances] in the Classic Load Balancers Guide.
	//
	// [Register or De-Register EC2 Instances]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-deregister-register-instances.html
	DeregisterInstancesFromLoadBalancer(ctx context.Context, params *elasticloadbalancing.DeregisterInstancesFromLoadBalancerInput, optFns ...func(*Options)) (*elasticloadbalancing.DeregisterInstancesFromLoadBalancerOutput, error)
	// Describes the current Elastic Load Balancing resource limits for your AWS
	// account.
	//
	// For more information, see [Limits for Your Classic Load Balancer] in the Classic Load Balancers Guide.
	//
	// [Limits for Your Classic Load Balancer]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-limits.html
	DescribeAccountLimits(ctx context.Context, params *elasticloadbalancing.DescribeAccountLimitsInput, optFns ...func(*Options)) (*elasticloadbalancing.DescribeAccountLimitsOutput, error)
	// Describes the state of the specified instances with respect to the specified
	// load balancer. If no instances are specified, the call describes the state of
	// all instances that are currently registered with the load balancer. If instances
	// are specified, their state is returned even if they are no longer registered
	// with the load balancer. The state of terminated instances is not returned.
	DescribeInstanceHealth(ctx context.Context, params *elasticloadbalancing.DescribeInstanceHealthInput, optFns ...func(*Options)) (*elasticloadbalancing.DescribeInstanceHealthOutput, error)
	// Describes the attributes for the specified load balancer.
	DescribeLoadBalancerAttributes(ctx context.Context, params *elasticloadbalancing.DescribeLoadBalancerAttributesInput, optFns ...func(*Options)) (*elasticloadbalancing.DescribeLoadBalancerAttributesOutput, error)
	// Describes the specified policies.
	//
	// If you specify a load balancer name, the action returns the descriptions of all
	// policies created for the load balancer. If you specify a policy name associated
	// with your load balancer, the action returns the description of that policy. If
	// you don't specify a load balancer name, the action returns descriptions of the
	// specified sample policies, or descriptions of all sample policies. The names of
	// the sample policies have the ELBSample- prefix.
	DescribeLoadBalancerPolicies(ctx context.Context, params *elasticloadbalancing.DescribeLoadBalancerPoliciesInput, optFns ...func(*Options)) (*elasticloadbalancing.DescribeLoadBalancerPoliciesOutput, error)
	// Describes the specified load balancer policy types or all load balancer policy
	// types.
	//
	// The description of each type indicates how it can be used. For example, some
	// policies can be used only with layer 7 listeners, some policies can be used only
	// with layer 4 listeners, and some policies can be used only with your EC2
	// instances.
	//
	// You can use CreateLoadBalancerPolicy to create a policy configuration for any of these policy types.
	// Then, depending on the policy type, use either SetLoadBalancerPoliciesOfListeneror SetLoadBalancerPoliciesForBackendServer to set the policy.
	DescribeLoadBalancerPolicyTypes(ctx context.Context, params *elasticloadbalancing.DescribeLoadBalancerPolicyTypesInput, optFns ...func(*Options)) (*elasticloadbalancing.DescribeLoadBalancerPolicyTypesOutput, error)
	// Describes the specified the load balancers. If no load balancers are specified,
	// the call describes all of your load balancers.
	DescribeLoadBalancers(ctx context.Context, params *elasticloadbalancing.DescribeLoadBalancersInput, optFns ...func(*Options)) (*elasticloadbalancing.DescribeLoadBalancersOutput, error)
	// Describes the tags associated with the specified load balancers.
	DescribeTags(ctx context.Context, params *elasticloadbalancing.DescribeTagsInput, optFns ...func(*Options)) (*elasticloadbalancing.DescribeTagsOutput, error)
	// Removes the specified subnets from the set of configured subnets for the load
	// balancer.
	//
	// After a subnet is removed, all EC2 instances registered with the load balancer
	// in the removed subnet go into the OutOfService state. Then, the load balancer
	// balances the traffic among the remaining routable subnets.
	DetachLoadBalancerFromSubnets(ctx context.Context, params *elasticloadbalancing.DetachLoadBalancerFromSubnetsInput, optFns ...func(*Options)) (*elasticloadbalancing.DetachLoadBalancerFromSubnetsOutput, error)
	// Removes the specified Availability Zones from the set of Availability Zones for
	// the specified load balancer in EC2-Classic or a default VPC.
	//
	// For load balancers in a non-default VPC, use DetachLoadBalancerFromSubnets.
	//
	// There must be at least one Availability Zone registered with a load balancer at
	// all times. After an Availability Zone is removed, all instances registered with
	// the load balancer that are in the removed Availability Zone go into the
	// OutOfService state. Then, the load balancer attempts to equally balance the
	// traffic among its remaining Availability Zones.
	//
	// For more information, see [Add or Remove Availability Zones] in the Classic Load Balancers Guide.
	//
	// [Add or Remove Availability Zones]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-az.html
	DisableAvailabilityZonesForLoadBalancer(ctx context.Context, params *elasticloadbalancing.DisableAvailabilityZonesForLoadBalancerInput, optFns ...func(*Options)) (*elasticloadbalancing.DisableAvailabilityZonesForLoadBalancerOutput, error)
	// Adds the specified Availability Zones to the set of Availability Zones for the
	// specified load balancer in EC2-Classic or a default VPC.
	//
	// For load balancers in a non-default VPC, use AttachLoadBalancerToSubnets.
	//
	// The load balancer evenly distributes requests across all its registered
	// Availability Zones that contain instances. For more information, see [Add or Remove Availability Zones]in the
	// Classic Load Balancers Guide.
	//
	// [Add or Remove Availability Zones]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-az.html
	EnableAvailabilityZonesForLoadBalancer(ctx context.Context, params *elasticloadbalancing.EnableAvailabilityZonesForLoadBalancerInput, optFns ...func(*Options)) (*elasticloadbalancing.EnableAvailabilityZonesForLoadBalancerOutput, error)
	// Modifies the attributes of the specified load balancer.
	//
	// You can modify the load balancer attributes, such as AccessLogs ,
	// ConnectionDraining , and CrossZoneLoadBalancing by either enabling or disabling
	// them. Or, you can modify the load balancer attribute ConnectionSettings by
	// specifying an idle connection timeout value for your load balancer.
	//
	// For more information, see the following in the Classic Load Balancers Guide:
	//
	// [Cross-Zone Load Balancing]
	//
	// [Connection Draining]
	//
	// [Access Logs]
	//
	// [Idle Connection Timeout]
	//
	// [Cross-Zone Load Balancing]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-crosszone-lb.html
	// [Idle Connection Timeout]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html
	// [Access Logs]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/access-log-collection.html
	// [Connection Draining]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html
	ModifyLoadBalancerAttributes(ctx context.Context, params *elasticloadbalancing.ModifyLoadBalancerAttributesInput, optFns ...func(*Options)) (*elasticloadbalancing.ModifyLoadBalancerAttributesOutput, error)
	// Adds the specified instances to the specified load balancer.
	//
	// The instance must be a running instance in the same network as the load
	// balancer (EC2-Classic or the same VPC). If you have EC2-Classic instances and a
	// load balancer in a VPC with ClassicLink enabled, you can link the EC2-Classic
	// instances to that VPC and then register the linked EC2-Classic instances with
	// the load balancer in the VPC.
	//
	// Note that RegisterInstanceWithLoadBalancer completes when the request has been
	// registered. Instance registration takes a little time to complete. To check the
	// state of the registered instances, use DescribeLoadBalancersor DescribeInstanceHealth.
	//
	// After the instance is registered, it starts receiving traffic and requests from
	// the load balancer. Any instance that is not in one of the Availability Zones
	// registered for the load balancer is moved to the OutOfService state. If an
	// Availability Zone is added to the load balancer later, any instances registered
	// with the load balancer move to the InService state.
	//
	// To deregister instances from a load balancer, use DeregisterInstancesFromLoadBalancer.
	//
	// For more information, see [Register or De-Register EC2 Instances] in the Classic Load Balancers Guide.
	//
	// [Register or De-Register EC2 Instances]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-deregister-register-instances.html
	RegisterInstancesWithLoadBalancer(ctx context.Context, params *elasticloadbalancing.RegisterInstancesWithLoadBalancerInput, optFns ...func(*Options)) (*elasticloadbalancing.RegisterInstancesWithLoadBalancerOutput, error)
	// Removes one or more tags from the specified load balancer.
	RemoveTags(ctx context.Context, params *elasticloadbalancing.RemoveTagsInput, optFns ...func(*Options)) (*elasticloadbalancing.RemoveTagsOutput, error)
	// Sets the certificate that terminates the specified listener's SSL connections.
	// The specified certificate replaces any prior certificate that was used on the
	// same load balancer and port.
	//
	// For more information about updating your SSL certificate, see [Replace the SSL Certificate for Your Load Balancer] in the Classic
	// Load Balancers Guide.
	//
	// [Replace the SSL Certificate for Your Load Balancer]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-update-ssl-cert.html
	SetLoadBalancerListenerSSLCertificate(ctx context.Context, params *elasticloadbalancing.SetLoadBalancerListenerSSLCertificateInput, optFns ...func(*Options)) (*elasticloadbalancing.SetLoadBalancerListenerSSLCertificateOutput, error)
	// Replaces the set of policies associated with the specified port on which the
	// EC2 instance is listening with a new set of policies. At this time, only the
	// back-end server authentication policy type can be applied to the instance ports;
	// this policy type is composed of multiple public key policies.
	//
	// Each time you use SetLoadBalancerPoliciesForBackendServer to enable the
	// policies, use the PolicyNames parameter to list the policies that you want to
	// enable.
	//
	// You can use DescribeLoadBalancers or DescribeLoadBalancerPolicies to verify that the policy is associated with the EC2 instance.
	//
	// For more information about enabling back-end instance authentication, see [Configure Back-end Instance Authentication] in
	// the Classic Load Balancers Guide. For more information about Proxy Protocol, see
	// [Configure Proxy Protocol Support]in the Classic Load Balancers Guide.
	//
	// [Configure Back-end Instance Authentication]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-create-https-ssl-load-balancer.html#configure_backendauth_clt
	// [Configure Proxy Protocol Support]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-proxy-protocol.html
	SetLoadBalancerPoliciesForBackendServer(ctx context.Context, params *elasticloadbalancing.SetLoadBalancerPoliciesForBackendServerInput, optFns ...func(*Options)) (*elasticloadbalancing.SetLoadBalancerPoliciesForBackendServerOutput, error)
	// Replaces the current set of policies for the specified load balancer port with
	// the specified set of policies.
	//
	// To enable back-end server authentication, use SetLoadBalancerPoliciesForBackendServer.
	//
	// For more information about setting policies, see [Update the SSL Negotiation Configuration], [Duration-Based Session Stickiness], and [Application-Controlled Session Stickiness] in the Classic Load
	// Balancers Guide.
	//
	// [Update the SSL Negotiation Configuration]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/ssl-config-update.html
	// [Duration-Based Session Stickiness]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html#enable-sticky-sessions-duration
	// [Application-Controlled Session Stickiness]: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html#enable-sticky-sessions-application
	SetLoadBalancerPoliciesOfListener(ctx context.Context, params *elasticloadbalancing.SetLoadBalancerPoliciesOfListenerInput, optFns ...func(*Options)) (*elasticloadbalancing.SetLoadBalancerPoliciesOfListenerOutput, error)
}

ELB provides an interface to the AWS ELB service.

type ELBV2 added in v0.91.0

type ELBV2 interface {
	// Options returns a copy of the client configuration.
	//
	// Callers SHOULD NOT perform mutations on any inner structures within client
	// config. Config overrides should instead be made on a per-operation basis through
	// functional options.
	Options() elasticloadbalancingv2.Options
	// Adds the specified SSL server certificate to the certificate list for the
	// specified HTTPS or TLS listener.
	//
	// If the certificate in already in the certificate list, the call is successful
	// but the certificate is not added again.
	//
	// For more information, see [SSL certificates] in the Application Load Balancers Guide or [Server certificates] in the
	// Network Load Balancers Guide.
	//
	// [Server certificates]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/tls-listener-certificates.html
	// [SSL certificates]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/https-listener-certificates.html
	AddListenerCertificates(ctx context.Context, params *elasticloadbalancingv2.AddListenerCertificatesInput, optFns ...func(*Options)) (*elasticloadbalancingv2.AddListenerCertificatesOutput, error)
	// Adds the specified tags to the specified Elastic Load Balancing resource. You
	// can tag your Application Load Balancers, Network Load Balancers, Gateway Load
	// Balancers, target groups, trust stores, listeners, and rules.
	//
	// Each tag consists of a key and an optional value. If a resource already has a
	// tag with the same key, AddTags updates its value.
	AddTags(ctx context.Context, params *elasticloadbalancingv2.AddTagsInput, optFns ...func(*Options)) (*elasticloadbalancingv2.AddTagsOutput, error)
	// Adds the specified revocation file to the specified trust store.
	AddTrustStoreRevocations(ctx context.Context, params *elasticloadbalancingv2.AddTrustStoreRevocationsInput, optFns ...func(*Options)) (*elasticloadbalancingv2.AddTrustStoreRevocationsOutput, error)
	// Creates a listener for the specified Application Load Balancer, Network Load
	// Balancer, or Gateway Load Balancer.
	//
	// For more information, see the following:
	//
	// [Listeners for your Application Load Balancers]
	//
	// [Listeners for your Network Load Balancers]
	//
	// [Listeners for your Gateway Load Balancers]
	//
	// This operation is idempotent, which means that it completes at most one time.
	// If you attempt to create multiple listeners with the same settings, each call
	// succeeds.
	//
	// [Listeners for your Gateway Load Balancers]: https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/gateway-listeners.html
	// [Listeners for your Application Load Balancers]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html
	// [Listeners for your Network Load Balancers]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-listeners.html
	CreateListener(ctx context.Context, params *elasticloadbalancingv2.CreateListenerInput, optFns ...func(*Options)) (*elasticloadbalancingv2.CreateListenerOutput, error)
	// Creates an Application Load Balancer, Network Load Balancer, or Gateway Load
	// Balancer.
	//
	// For more information, see the following:
	//
	// [Application Load Balancers]
	//
	// [Network Load Balancers]
	//
	// [Gateway Load Balancers]
	//
	// This operation is idempotent, which means that it completes at most one time.
	// If you attempt to create multiple load balancers with the same settings, each
	// call succeeds.
	//
	// [Gateway Load Balancers]: https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/gateway-load-balancers.html
	// [Network Load Balancers]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html
	// [Application Load Balancers]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html
	CreateLoadBalancer(ctx context.Context, params *elasticloadbalancingv2.CreateLoadBalancerInput, optFns ...func(*Options)) (*elasticloadbalancingv2.CreateLoadBalancerOutput, error)
	// Creates a rule for the specified listener. The listener must be associated with
	// an Application Load Balancer.
	//
	// Each rule consists of a priority, one or more actions, one or more conditions,
	// and up to two optional transforms. Rules are evaluated in priority order, from
	// the lowest value to the highest value. When the conditions for a rule are met,
	// its actions are performed. If the conditions for no rules are met, the actions
	// for the default rule are performed. For more information, see [Listener rules]in the
	// Application Load Balancers Guide.
	//
	// [Listener rules]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#listener-rules
	CreateRule(ctx context.Context, params *elasticloadbalancingv2.CreateRuleInput, optFns ...func(*Options)) (*elasticloadbalancingv2.CreateRuleOutput, error)
	// Creates a target group.
	//
	// For more information, see the following:
	//
	// [Target groups for your Application Load Balancers]
	//
	// [Target groups for your Network Load Balancers]
	//
	// [Target groups for your Gateway Load Balancers]
	//
	// This operation is idempotent, which means that it completes at most one time.
	// If you attempt to create multiple target groups with the same settings, each
	// call succeeds.
	//
	// [Target groups for your Gateway Load Balancers]: https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/target-groups.html
	// [Target groups for your Application Load Balancers]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html
	// [Target groups for your Network Load Balancers]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html
	CreateTargetGroup(ctx context.Context, params *elasticloadbalancingv2.CreateTargetGroupInput, optFns ...func(*Options)) (*elasticloadbalancingv2.CreateTargetGroupOutput, error)
	// Creates a trust store.
	//
	// For more information, see [Mutual TLS for Application Load Balancers].
	//
	// [Mutual TLS for Application Load Balancers]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/mutual-authentication.html
	CreateTrustStore(ctx context.Context, params *elasticloadbalancingv2.CreateTrustStoreInput, optFns ...func(*Options)) (*elasticloadbalancingv2.CreateTrustStoreOutput, error)
	// Deletes the specified listener.
	//
	// Alternatively, your listener is deleted when you delete the load balancer to
	// which it is attached.
	DeleteListener(ctx context.Context, params *elasticloadbalancingv2.DeleteListenerInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DeleteListenerOutput, error)
	// Deletes the specified Application Load Balancer, Network Load Balancer, or
	// Gateway Load Balancer. Deleting a load balancer also deletes its listeners.
	//
	// You can't delete a load balancer if deletion protection is enabled. If the load
	// balancer does not exist or has already been deleted, the call succeeds.
	//
	// Deleting a load balancer does not affect its registered targets. For example,
	// your EC2 instances continue to run and are still registered to their target
	// groups. If you no longer need these EC2 instances, you can stop or terminate
	// them.
	DeleteLoadBalancer(ctx context.Context, params *elasticloadbalancingv2.DeleteLoadBalancerInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DeleteLoadBalancerOutput, error)
	// Deletes the specified rule.
	//
	// You can't delete the default rule.
	DeleteRule(ctx context.Context, params *elasticloadbalancingv2.DeleteRuleInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DeleteRuleOutput, error)
	// Deletes a shared trust store association.
	DeleteSharedTrustStoreAssociation(ctx context.Context, params *elasticloadbalancingv2.DeleteSharedTrustStoreAssociationInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DeleteSharedTrustStoreAssociationOutput, error)
	// Deletes the specified target group.
	//
	// You can delete a target group if it is not referenced by any actions. Deleting
	// a target group also deletes any associated health checks. Deleting a target
	// group does not affect its registered targets. For example, any EC2 instances
	// continue to run until you stop or terminate them.
	DeleteTargetGroup(ctx context.Context, params *elasticloadbalancingv2.DeleteTargetGroupInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DeleteTargetGroupOutput, error)
	// Deletes a trust store.
	DeleteTrustStore(ctx context.Context, params *elasticloadbalancingv2.DeleteTrustStoreInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DeleteTrustStoreOutput, error)
	// Deregisters the specified targets from the specified target group. After the
	// targets are deregistered, they no longer receive traffic from the load balancer.
	//
	// The load balancer stops sending requests to targets that are deregistering, but
	// uses connection draining to ensure that in-flight traffic completes on the
	// existing connections. This deregistration delay is configured by default but can
	// be updated for each target group.
	//
	// For more information, see the following:
	//
	// [Deregistration delay]
	//   - in the Application Load Balancers User Guide
	//
	// [Deregistration delay]
	//   - in the Network Load Balancers User Guide
	//
	// [Deregistration delay]
	//   - in the Gateway Load Balancers User Guide
	//
	// Note: If the specified target does not exist, the action returns successfully.
	//
	// [Deregistration delay]: https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/edit-target-group-attributes.html#deregistration-delay
	DeregisterTargets(ctx context.Context, params *elasticloadbalancingv2.DeregisterTargetsInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DeregisterTargetsOutput, error)
	// Describes the current Elastic Load Balancing resource limits for your Amazon
	// Web Services account.
	//
	// For more information, see the following:
	//
	// [Quotas for your Application Load Balancers]
	//
	// [Quotas for your Network Load Balancers]
	//
	// [Quotas for your Gateway Load Balancers]
	//
	// [Quotas for your Gateway Load Balancers]: https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/quotas-limits.html
	// [Quotas for your Application Load Balancers]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html
	// [Quotas for your Network Load Balancers]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-limits.html
	DescribeAccountLimits(ctx context.Context, params *elasticloadbalancingv2.DescribeAccountLimitsInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DescribeAccountLimitsOutput, error)
	// Describes the capacity reservation status for the specified load balancer.
	DescribeCapacityReservation(ctx context.Context, params *elasticloadbalancingv2.DescribeCapacityReservationInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DescribeCapacityReservationOutput, error)
	// Describes the attributes for the specified listener.
	DescribeListenerAttributes(ctx context.Context, params *elasticloadbalancingv2.DescribeListenerAttributesInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DescribeListenerAttributesOutput, error)
	// Describes the default certificate and the certificate list for the specified
	// HTTPS or TLS listener.
	//
	// If the default certificate is also in the certificate list, it appears twice in
	// the results (once with IsDefault set to true and once with IsDefault set to
	// false).
	//
	// For more information, see [SSL certificates] in the Application Load Balancers Guide or [Server certificates] in the
	// Network Load Balancers Guide.
	//
	// [Server certificates]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/tls-listener-certificates.html
	// [SSL certificates]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/https-listener-certificates.html
	DescribeListenerCertificates(ctx context.Context, params *elasticloadbalancingv2.DescribeListenerCertificatesInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DescribeListenerCertificatesOutput, error)
	// Describes the specified listeners or the listeners for the specified
	// Application Load Balancer, Network Load Balancer, or Gateway Load Balancer. You
	// must specify either a load balancer or one or more listeners.
	DescribeListeners(ctx context.Context, params *elasticloadbalancingv2.DescribeListenersInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DescribeListenersOutput, error)
	// Describes the attributes for the specified Application Load Balancer, Network
	// Load Balancer, or Gateway Load Balancer.
	//
	// For more information, see the following:
	//
	// [Load balancer attributes]
	//   - in the Application Load Balancers Guide
	//
	// [Load balancer attributes]
	//   - in the Network Load Balancers Guide
	//
	// [Load balancer attributes]
	//   - in the Gateway Load Balancers Guide
	//
	// [Load balancer attributes]: https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/gateway-load-balancers.html#load-balancer-attributes
	DescribeLoadBalancerAttributes(ctx context.Context, params *elasticloadbalancingv2.DescribeLoadBalancerAttributesInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DescribeLoadBalancerAttributesOutput, error)
	// Describes the specified load balancers or all of your load balancers.
	DescribeLoadBalancers(ctx context.Context, params *elasticloadbalancingv2.DescribeLoadBalancersInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DescribeLoadBalancersOutput, error)
	// Describes the specified rules or the rules for the specified listener. You must
	// specify either a listener or rules.
	DescribeRules(ctx context.Context, params *elasticloadbalancingv2.DescribeRulesInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DescribeRulesOutput, error)
	// Describes the specified policies or all policies used for SSL negotiation.
	//
	// For more information, see [Security policies] in the Application Load Balancers Guide and [Security policies] in the
	// Network Load Balancers Guide.
	//
	// [Security policies]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/describe-ssl-policies.html
	DescribeSSLPolicies(ctx context.Context, params *elasticloadbalancingv2.DescribeSSLPoliciesInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DescribeSSLPoliciesOutput, error)
	// Describes the tags for the specified Elastic Load Balancing resources. You can
	// describe the tags for one or more Application Load Balancers, Network Load
	// Balancers, Gateway Load Balancers, target groups, listeners, or rules.
	DescribeTags(ctx context.Context, params *elasticloadbalancingv2.DescribeTagsInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DescribeTagsOutput, error)
	// Describes the attributes for the specified target group.
	//
	// For more information, see the following:
	//
	// [Target group attributes]
	//   - in the Application Load Balancers Guide
	//
	// [Target group attributes]
	//   - in the Network Load Balancers Guide
	//
	// [Target group attributes]
	//   - in the Gateway Load Balancers Guide
	//
	// [Target group attributes]: https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/target-groups.html#target-group-attributes
	DescribeTargetGroupAttributes(ctx context.Context, params *elasticloadbalancingv2.DescribeTargetGroupAttributesInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DescribeTargetGroupAttributesOutput, error)
	// Describes the specified target groups or all of your target groups. By default,
	// all target groups are described. Alternatively, you can specify one of the
	// following to filter the results: the ARN of the load balancer, the names of one
	// or more target groups, or the ARNs of one or more target groups.
	DescribeTargetGroups(ctx context.Context, params *elasticloadbalancingv2.DescribeTargetGroupsInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DescribeTargetGroupsOutput, error)
	// Describes the health of the specified targets or all of your targets.
	DescribeTargetHealth(ctx context.Context, params *elasticloadbalancingv2.DescribeTargetHealthInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DescribeTargetHealthOutput, error)
	// Describes all resources associated with the specified trust store.
	DescribeTrustStoreAssociations(ctx context.Context, params *elasticloadbalancingv2.DescribeTrustStoreAssociationsInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DescribeTrustStoreAssociationsOutput, error)
	// Describes the revocation files in use by the specified trust store or
	// revocation files.
	DescribeTrustStoreRevocations(ctx context.Context, params *elasticloadbalancingv2.DescribeTrustStoreRevocationsInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DescribeTrustStoreRevocationsOutput, error)
	// Describes all trust stores for the specified account.
	DescribeTrustStores(ctx context.Context, params *elasticloadbalancingv2.DescribeTrustStoresInput, optFns ...func(*Options)) (*elasticloadbalancingv2.DescribeTrustStoresOutput, error)
	// Retrieves the resource policy for a specified resource.
	GetResourcePolicy(ctx context.Context, params *elasticloadbalancingv2.GetResourcePolicyInput, optFns ...func(*Options)) (*elasticloadbalancingv2.GetResourcePolicyOutput, error)
	// Retrieves the ca certificate bundle.
	//
	// This action returns a pre-signed S3 URI which is active for ten minutes.
	GetTrustStoreCaCertificatesBundle(ctx context.Context, params *elasticloadbalancingv2.GetTrustStoreCaCertificatesBundleInput, optFns ...func(*Options)) (*elasticloadbalancingv2.GetTrustStoreCaCertificatesBundleOutput, error)
	// Retrieves the specified revocation file.
	//
	// This action returns a pre-signed S3 URI which is active for ten minutes.
	GetTrustStoreRevocationContent(ctx context.Context, params *elasticloadbalancingv2.GetTrustStoreRevocationContentInput, optFns ...func(*Options)) (*elasticloadbalancingv2.GetTrustStoreRevocationContentOutput, error)
	// Modifies the capacity reservation of the specified load balancer.
	//
	// When modifying capacity reservation, you must include at least one
	// MinimumLoadBalancerCapacity or ResetCapacityReservation .
	ModifyCapacityReservation(ctx context.Context, params *elasticloadbalancingv2.ModifyCapacityReservationInput, optFns ...func(*Options)) (*elasticloadbalancingv2.ModifyCapacityReservationOutput, error)
	// [Application Load Balancers] Modify the IP pool associated to a load balancer.
	ModifyIpPools(ctx context.Context, params *elasticloadbalancingv2.ModifyIpPoolsInput, optFns ...func(*Options)) (*elasticloadbalancingv2.ModifyIpPoolsOutput, error)
	// Replaces the specified properties of the specified listener. Any properties
	// that you do not specify remain unchanged.
	//
	// Changing the protocol from HTTPS to HTTP, or from TLS to TCP, removes the
	// security policy and default certificate properties. If you change the protocol
	// from HTTP to HTTPS, or from TCP to TLS, you must add the security policy and
	// default certificate properties.
	//
	// To add an item to a list, remove an item from a list, or update an item in a
	// list, you must provide the entire list. For example, to add an action, specify a
	// list with the current actions plus the new action.
	ModifyListener(ctx context.Context, params *elasticloadbalancingv2.ModifyListenerInput, optFns ...func(*Options)) (*elasticloadbalancingv2.ModifyListenerOutput, error)
	// Modifies the specified attributes of the specified listener.
	ModifyListenerAttributes(ctx context.Context, params *elasticloadbalancingv2.ModifyListenerAttributesInput, optFns ...func(*Options)) (*elasticloadbalancingv2.ModifyListenerAttributesOutput, error)
	// Modifies the specified attributes of the specified Application Load Balancer,
	// Network Load Balancer, or Gateway Load Balancer.
	//
	// If any of the specified attributes can't be modified as requested, the call
	// fails. Any existing attributes that you do not modify retain their current
	// values.
	ModifyLoadBalancerAttributes(ctx context.Context, params *elasticloadbalancingv2.ModifyLoadBalancerAttributesInput, optFns ...func(*Options)) (*elasticloadbalancingv2.ModifyLoadBalancerAttributesOutput, error)
	// Replaces the specified properties of the specified rule. Any properties that
	// you do not specify are unchanged.
	//
	// To add an item to a list, remove an item from a list, or update an item in a
	// list, you must provide the entire list. For example, to add an action, specify a
	// list with the current actions plus the new action.
	ModifyRule(ctx context.Context, params *elasticloadbalancingv2.ModifyRuleInput, optFns ...func(*Options)) (*elasticloadbalancingv2.ModifyRuleOutput, error)
	// Modifies the health checks used when evaluating the health state of the targets
	// in the specified target group.
	ModifyTargetGroup(ctx context.Context, params *elasticloadbalancingv2.ModifyTargetGroupInput, optFns ...func(*Options)) (*elasticloadbalancingv2.ModifyTargetGroupOutput, error)
	// Modifies the specified attributes of the specified target group.
	ModifyTargetGroupAttributes(ctx context.Context, params *elasticloadbalancingv2.ModifyTargetGroupAttributesInput, optFns ...func(*Options)) (*elasticloadbalancingv2.ModifyTargetGroupAttributesOutput, error)
	// Update the ca certificate bundle for the specified trust store.
	ModifyTrustStore(ctx context.Context, params *elasticloadbalancingv2.ModifyTrustStoreInput, optFns ...func(*Options)) (*elasticloadbalancingv2.ModifyTrustStoreOutput, error)
	// Registers the specified targets with the specified target group.
	//
	// If the target is an EC2 instance, it must be in the running state when you
	// register it.
	//
	// By default, the load balancer routes requests to registered targets using the
	// protocol and port for the target group. Alternatively, you can override the port
	// for a target when you register it. You can register each EC2 instance or IP
	// address with the same target group multiple times using different ports.
	//
	// For more information, see the following:
	//
	// [Register targets for your Application Load Balancer]
	//
	// [Register targets for your Network Load Balancer]
	//
	// [Register targets for your Gateway Load Balancer]
	//
	// [Register targets for your Network Load Balancer]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-register-targets.html
	// [Register targets for your Gateway Load Balancer]: https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/target-group-register-targets.html
	// [Register targets for your Application Load Balancer]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-register-targets.html
	RegisterTargets(ctx context.Context, params *elasticloadbalancingv2.RegisterTargetsInput, optFns ...func(*Options)) (*elasticloadbalancingv2.RegisterTargetsOutput, error)
	// Removes the specified certificate from the certificate list for the specified
	// HTTPS or TLS listener.
	RemoveListenerCertificates(ctx context.Context, params *elasticloadbalancingv2.RemoveListenerCertificatesInput, optFns ...func(*Options)) (*elasticloadbalancingv2.RemoveListenerCertificatesOutput, error)
	// Removes the specified tags from the specified Elastic Load Balancing resources.
	// You can remove the tags for one or more Application Load Balancers, Network Load
	// Balancers, Gateway Load Balancers, target groups, listeners, or rules.
	RemoveTags(ctx context.Context, params *elasticloadbalancingv2.RemoveTagsInput, optFns ...func(*Options)) (*elasticloadbalancingv2.RemoveTagsOutput, error)
	// Removes the specified revocation file from the specified trust store.
	RemoveTrustStoreRevocations(ctx context.Context, params *elasticloadbalancingv2.RemoveTrustStoreRevocationsInput, optFns ...func(*Options)) (*elasticloadbalancingv2.RemoveTrustStoreRevocationsOutput, error)
	// Sets the type of IP addresses used by the subnets of the specified load
	// balancer.
	SetIpAddressType(ctx context.Context, params *elasticloadbalancingv2.SetIpAddressTypeInput, optFns ...func(*Options)) (*elasticloadbalancingv2.SetIpAddressTypeOutput, error)
	// Sets the priorities of the specified rules.
	//
	// You can reorder the rules as long as there are no priority conflicts in the new
	// order. Any existing rules that you do not specify retain their current priority.
	SetRulePriorities(ctx context.Context, params *elasticloadbalancingv2.SetRulePrioritiesInput, optFns ...func(*Options)) (*elasticloadbalancingv2.SetRulePrioritiesOutput, error)
	// Associates the specified security groups with the specified Application Load
	// Balancer or Network Load Balancer. The specified security groups override the
	// previously associated security groups.
	//
	// You can't perform this operation on a Network Load Balancer unless you
	// specified a security group for the load balancer when you created it.
	//
	// You can't associate a security group with a Gateway Load Balancer.
	SetSecurityGroups(ctx context.Context, params *elasticloadbalancingv2.SetSecurityGroupsInput, optFns ...func(*Options)) (*elasticloadbalancingv2.SetSecurityGroupsOutput, error)
	// Enables the Availability Zones for the specified public subnets for the
	// specified Application Load Balancer, Network Load Balancer or Gateway Load
	// Balancer. The specified subnets replace the previously enabled subnets.
	SetSubnets(ctx context.Context, params *elasticloadbalancingv2.SetSubnetsInput, optFns ...func(*Options)) (*elasticloadbalancingv2.SetSubnetsOutput, error)
}

ELBV2 provides an interface to the AWS ELBV2 service.

type IAM added in v0.94.0

type IAM interface {
	// Options returns a copy of the client configuration.
	//
	// Callers SHOULD NOT perform mutations on any inner structures within client
	// config. Config overrides should instead be made on a per-operation basis through
	// functional options.
	Options() iam.Options
	// Accepts a delegation request, granting the requested temporary access.
	//
	// Once the delegation request is accepted, it is eligible to send the exchange
	// token to the partner. The [SendDelegationToken]API has to be explicitly called to send the
	// delegation token.
	//
	// At the time of acceptance, IAM records the details and the state of the
	// identity that called this API. This is the identity that gets mapped to the
	// delegated credential.
	//
	// An accepted request may be rejected before the exchange token is sent to the
	// partner.
	//
	// [SendDelegationToken]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_SendDelegationToken.html
	AcceptDelegationRequest(ctx context.Context, params *iam.AcceptDelegationRequestInput, optFns ...func(*Options)) (*iam.AcceptDelegationRequestOutput, error)
	// Adds a new client ID (also known as audience) to the list of client IDs already
	// registered for the specified IAM OpenID Connect (OIDC) provider resource.
	//
	// This operation is idempotent; it does not fail or return an error if you add an
	// existing client ID to the provider.
	AddClientIDToOpenIDConnectProvider(ctx context.Context, params *iam.AddClientIDToOpenIDConnectProviderInput, optFns ...func(*Options)) (*iam.AddClientIDToOpenIDConnectProviderOutput, error)
	// Adds the specified IAM role to the specified instance profile. An instance
	// profile can contain only one role, and this quota cannot be increased. You can
	// remove the existing role and then add a different role to an instance profile.
	// You must then wait for the change to appear across all of Amazon Web Services
	// because of [eventual consistency]. To force the change, you must [disassociate the instance profile] and then [associate the instance profile], or you can stop your
	// instance and then restart it.
	//
	// The caller of this operation must be granted the PassRole permission on the IAM
	// role by a permissions policy.
	//
	// When using the [iam:AssociatedResourceArn] condition in a policy to restrict the [PassRole] IAM action, special
	// considerations apply if the policy is intended to define access for the
	// AddRoleToInstanceProfile action. In this case, you cannot specify a Region or
	// instance ID in the EC2 instance ARN. The ARN value must be
	// arn:aws:ec2:*:CallerAccountId:instance/* . Using any other ARN value may lead to
	// unexpected evaluation results.
	//
	// For more information about roles, see [IAM roles] in the IAM User Guide. For more
	// information about instance profiles, see [Using instance profiles]in the IAM User Guide.
	//
	// [disassociate the instance profile]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateIamInstanceProfile.html
	// [associate the instance profile]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateIamInstanceProfile.html
	// [Using instance profiles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html
	// [PassRole]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html
	// [iam:AssociatedResourceArn]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#available-keys-for-iam
	// [eventual consistency]: https://en.wikipedia.org/wiki/Eventual_consistency
	// [IAM roles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html
	AddRoleToInstanceProfile(ctx context.Context, params *iam.AddRoleToInstanceProfileInput, optFns ...func(*Options)) (*iam.AddRoleToInstanceProfileOutput, error)
	// Adds the specified user to the specified group.
	AddUserToGroup(ctx context.Context, params *iam.AddUserToGroupInput, optFns ...func(*Options)) (*iam.AddUserToGroupOutput, error)
	// Associates a delegation request with the current identity.
	//
	// If the partner that created the delegation request has specified the owner
	// account during creation, only an identity from that owner account can call the
	// AssociateDelegationRequest API for the specified delegation request. Once the
	// AssociateDelegationRequest API call is successful, the ARN of the current
	// calling identity will be stored as the ownerId of the request.
	//
	// If the partner that created the delegation request has not specified the owner
	// account during creation, any caller from any account can call the
	// AssociateDelegationRequest API for the delegation request. Once this API call is
	// successful, the ARN of the current calling identity will be stored as the
	// ownerId and the Amazon Web Services account ID of the current calling identity
	// will be stored as the ownerAccount of the request.
	//
	// For more details, see [Managing Permissions for Delegation Requests].
	//
	// [Managing Permissions for Delegation Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation.html#temporary-delegation-managing-permissions
	AssociateDelegationRequest(ctx context.Context, params *iam.AssociateDelegationRequestInput, optFns ...func(*Options)) (*iam.AssociateDelegationRequestOutput, error)
	// Attaches the specified managed policy to the specified IAM group.
	//
	// You use this operation to attach a managed policy to a group. To embed an
	// inline policy in a group, use [PutGroupPolicy]PutGroupPolicy .
	//
	// As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies] in
	// the IAM User Guide.
	//
	// For more information about policies, see [Managed policies and inline policies] in the IAM User Guide.
	//
	// [PutGroupPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutGroupPolicy.html
	// [Validating IAM policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	AttachGroupPolicy(ctx context.Context, params *iam.AttachGroupPolicyInput, optFns ...func(*Options)) (*iam.AttachGroupPolicyOutput, error)
	// Attaches the specified managed policy to the specified IAM role. When you
	// attach a managed policy to a role, the managed policy becomes part of the role's
	// permission (access) policy.
	//
	// You cannot use a managed policy as the role's trust policy. The role's trust
	// policy is created at the same time as the role, using [CreateRole]CreateRole . You can
	// update a role's trust policy using [UpdateAssumerolePolicy]UpdateAssumerolePolicy .
	//
	// Use this operation to attach a managed policy to a role. To embed an inline
	// policy in a role, use [PutRolePolicy]PutRolePolicy . For more information about policies, see [Managed policies and inline policies]
	// in the IAM User Guide.
	//
	// As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies] in
	// the IAM User Guide.
	//
	// [Validating IAM policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html
	// [UpdateAssumerolePolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAssumeRolePolicy.html
	// [PutRolePolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePolicy.html
	// [CreateRole]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	AttachRolePolicy(ctx context.Context, params *iam.AttachRolePolicyInput, optFns ...func(*Options)) (*iam.AttachRolePolicyOutput, error)
	// Attaches the specified managed policy to the specified user.
	//
	// You use this operation to attach a managed policy to a user. To embed an inline
	// policy in a user, use [PutUserPolicy]PutUserPolicy .
	//
	// As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies] in
	// the IAM User Guide.
	//
	// For more information about policies, see [Managed policies and inline policies] in the IAM User Guide.
	//
	// [Validating IAM policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html
	// [PutUserPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutUserPolicy.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	AttachUserPolicy(ctx context.Context, params *iam.AttachUserPolicyInput, optFns ...func(*Options)) (*iam.AttachUserPolicyOutput, error)
	// Changes the password of the IAM user who is calling this operation. This
	// operation can be performed using the CLI, the Amazon Web Services API, or the My
	// Security Credentials page in the Amazon Web Services Management Console. The
	// Amazon Web Services account root user password is not affected by this
	// operation.
	//
	// Use [UpdateLoginProfile] to use the CLI, the Amazon Web Services API, or the Users page in the IAM
	// console to change the password for any IAM user. For more information about
	// modifying passwords, see [Managing passwords]in the IAM User Guide.
	//
	// [UpdateLoginProfile]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateLoginProfile.html
	// [Managing passwords]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html
	ChangePassword(ctx context.Context, params *iam.ChangePasswordInput, optFns ...func(*Options)) (*iam.ChangePasswordOutput, error)
	//	Creates a new Amazon Web Services secret access key and corresponding Amazon
	//
	// Web Services access key ID for the specified user. The default status for new
	// keys is Active .
	//
	// If you do not specify a user name, IAM determines the user name implicitly
	// based on the Amazon Web Services access key ID signing the request. This
	// operation works for access keys under the Amazon Web Services account.
	// Consequently, you can use this operation to manage Amazon Web Services account
	// root user credentials. This is true even if the Amazon Web Services account has
	// no associated users.
	//
	// For information about quotas on the number of keys you can create, see [IAM and STS quotas] in the
	// IAM User Guide.
	//
	// To ensure the security of your Amazon Web Services account, the secret access
	// key is accessible only during key and user creation. You must save the key (for
	// example, in a text file) if you want to be able to access it again. If a secret
	// key is lost, you can delete the access keys for the associated user and then
	// create new keys.
	//
	// [IAM and STS quotas]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html
	CreateAccessKey(ctx context.Context, params *iam.CreateAccessKeyInput, optFns ...func(*Options)) (*iam.CreateAccessKeyOutput, error)
	// Creates an alias for your Amazon Web Services account. For information about
	// using an Amazon Web Services account alias, see [Creating, deleting, and listing an Amazon Web Services account alias]in the Amazon Web Services
	// Sign-In User Guide.
	//
	// [Creating, deleting, and listing an Amazon Web Services account alias]: https://docs.aws.amazon.com/signin/latest/userguide/CreateAccountAlias.html
	CreateAccountAlias(ctx context.Context, params *iam.CreateAccountAliasInput, optFns ...func(*Options)) (*iam.CreateAccountAliasOutput, error)
	// Creates an IAM delegation request for temporary access delegation.
	//
	// This API is not available for general use. In order to use this API, a caller
	// first need to go through an onboarding process described in the [partner onboarding documentation].
	//
	// [partner onboarding documentation]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation-partner-guide.html
	CreateDelegationRequest(ctx context.Context, params *iam.CreateDelegationRequestInput, optFns ...func(*Options)) (*iam.CreateDelegationRequestOutput, error)
	// Creates a new group.
	//
	// For information about the number of groups you can create, see [IAM and STS quotas] in the IAM User
	// Guide.
	//
	// [IAM and STS quotas]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html
	CreateGroup(ctx context.Context, params *iam.CreateGroupInput, optFns ...func(*Options)) (*iam.CreateGroupOutput, error)
	//	Creates a new instance profile. For information about instance profiles, see [Using roles for applications on Amazon EC2]
	//
	// in the IAM User Guide, and [Instance profiles]in the Amazon EC2 User Guide.
	//
	// For information about the number of instance profiles you can create, see [IAM object quotas] in
	// the IAM User Guide.
	//
	// [Instance profiles]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#ec2-instance-profile
	// [IAM object quotas]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html
	//
	// [Using roles for applications on Amazon EC2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html
	CreateInstanceProfile(ctx context.Context, params *iam.CreateInstanceProfileInput, optFns ...func(*Options)) (*iam.CreateInstanceProfileOutput, error)
	// Creates a password for the specified IAM user. A password allows an IAM user to
	// access Amazon Web Services services through the Amazon Web Services Management
	// Console.
	//
	// You can use the CLI, the Amazon Web Services API, or the Users page in the IAM
	// console to create a password for any IAM user. Use [ChangePassword]to update your own existing
	// password in the My Security Credentials page in the Amazon Web Services
	// Management Console.
	//
	// For more information about managing passwords, see [Managing passwords] in the IAM User Guide.
	//
	// [ChangePassword]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html
	// [Managing passwords]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html
	CreateLoginProfile(ctx context.Context, params *iam.CreateLoginProfileInput, optFns ...func(*Options)) (*iam.CreateLoginProfileOutput, error)
	// Creates an IAM entity to describe an identity provider (IdP) that supports [OpenID Connect (OIDC)].
	//
	// The OIDC provider that you create with this operation can be used as a
	// principal in a role's trust policy. Such a policy establishes a trust
	// relationship between Amazon Web Services and the OIDC provider.
	//
	// If you are using an OIDC identity provider from Google, Facebook, or Amazon
	// Cognito, you don't need to create a separate IAM identity provider. These OIDC
	// identity providers are already built-in to Amazon Web Services and are available
	// for your use. Instead, you can move directly to creating new roles using your
	// identity provider. To learn more, see [Creating a role for web identity or OpenID connect federation]in the IAM User Guide.
	//
	// When you create the IAM OIDC provider, you specify the following:
	//
	//   - The URL of the OIDC identity provider (IdP) to trust
	//
	//   - A list of client IDs (also known as audiences) that identify the
	//     application or applications allowed to authenticate using the OIDC provider
	//
	//   - A list of tags that are attached to the specified IAM OIDC provider
	//
	//   - A list of thumbprints of one or more server certificates that the IdP uses
	//
	// You get all of this information from the OIDC IdP you want to use to access
	// Amazon Web Services.
	//
	// Amazon Web Services secures communication with OIDC identity providers (IdPs)
	// using our library of trusted root certificate authorities (CAs) to verify the
	// JSON Web Key Set (JWKS) endpoint's TLS certificate. If your OIDC IdP relies on a
	// certificate that is not signed by one of these trusted CAs, only then we secure
	// communication using the thumbprints set in the IdP's configuration.
	//
	// The trust for the OIDC provider is derived from the IAM provider that this
	// operation creates. Therefore, it is best to limit access to the [CreateOpenIDConnectProvider]operation to
	// highly privileged users.
	//
	// [OpenID Connect (OIDC)]: http://openid.net/connect/
	// [Creating a role for web identity or OpenID connect federation]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_oidc.html
	// [CreateOpenIDConnectProvider]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html
	CreateOpenIDConnectProvider(ctx context.Context, params *iam.CreateOpenIDConnectProviderInput, optFns ...func(*Options)) (*iam.CreateOpenIDConnectProviderOutput, error)
	// Creates a new managed policy for your Amazon Web Services account.
	//
	// This operation creates a policy version with a version identifier of v1 and
	// sets v1 as the policy's default version. For more information about policy
	// versions, see [Versioning for managed policies]in the IAM User Guide.
	//
	// As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies] in
	// the IAM User Guide.
	//
	// For more information about managed policies in general, see [Managed policies and inline policies] in the IAM User
	// Guide.
	//
	// [Validating IAM policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html
	// [Versioning for managed policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	CreatePolicy(ctx context.Context, params *iam.CreatePolicyInput, optFns ...func(*Options)) (*iam.CreatePolicyOutput, error)
	// Creates a new version of the specified managed policy. To update a managed
	// policy, you create a new policy version. A managed policy can have up to five
	// versions. If the policy has five versions, you must delete an existing version
	// using [DeletePolicyVersion]before you create a new version.
	//
	// Optionally, you can set the new version as the policy's default version. The
	// default version is the version that is in effect for the IAM users, groups, and
	// roles to which the policy is attached.
	//
	// For more information about managed policy versions, see [Versioning for managed policies] in the IAM User Guide.
	//
	// [DeletePolicyVersion]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicyVersion.html
	// [Versioning for managed policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html
	CreatePolicyVersion(ctx context.Context, params *iam.CreatePolicyVersionInput, optFns ...func(*Options)) (*iam.CreatePolicyVersionOutput, error)
	// Creates a new role for your Amazon Web Services account.
	//
	// For more information about roles, see [IAM roles] in the IAM User Guide. For information
	// about quotas for role names and the number of roles you can create, see [IAM and STS quotas]in the
	// IAM User Guide.
	//
	// [IAM and STS quotas]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html
	// [IAM roles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html
	CreateRole(ctx context.Context, params *iam.CreateRoleInput, optFns ...func(*Options)) (*iam.CreateRoleOutput, error)
	// Creates an IAM resource that describes an identity provider (IdP) that supports
	// SAML 2.0.
	//
	// The SAML provider resource that you create with this operation can be used as a
	// principal in an IAM role's trust policy. Such a policy can enable federated
	// users who sign in using the SAML IdP to assume the role. You can create an IAM
	// role that supports Web-based single sign-on (SSO) to the Amazon Web Services
	// Management Console or one that supports API access to Amazon Web Services.
	//
	// When you create the SAML provider resource, you upload a SAML metadata document
	// that you get from your IdP. That document includes the issuer's name, expiration
	// information, and keys that can be used to validate the SAML authentication
	// response (assertions) that the IdP sends. You must generate the metadata
	// document using the identity management software that is used as your
	// organization's IdP.
	//
	// This operation requires [Signature Version 4].
	//
	// For more information, see [Enabling SAML 2.0 federated users to access the Amazon Web Services Management Console] and [About SAML 2.0-based federation] in the IAM User Guide.
	//
	// [Signature Version 4]: https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html
	// [About SAML 2.0-based federation]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html
	// [Enabling SAML 2.0 federated users to access the Amazon Web Services Management Console]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-saml.html
	CreateSAMLProvider(ctx context.Context, params *iam.CreateSAMLProviderInput, optFns ...func(*Options)) (*iam.CreateSAMLProviderOutput, error)
	// Creates an IAM role that is linked to a specific Amazon Web Services service.
	// The service controls the attached policies and when the role can be deleted.
	// This helps ensure that the service is not broken by an unexpectedly changed or
	// deleted role, which could put your Amazon Web Services resources into an unknown
	// state. Allowing the service to control the role helps improve service stability
	// and proper cleanup when a service and its role are no longer needed. For more
	// information, see [Using service-linked roles]in the IAM User Guide.
	//
	// To attach a policy to this service-linked role, you must make the request using
	// the Amazon Web Services service that depends on this role.
	//
	// [Using service-linked roles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html
	CreateServiceLinkedRole(ctx context.Context, params *iam.CreateServiceLinkedRoleInput, optFns ...func(*Options)) (*iam.CreateServiceLinkedRoleOutput, error)
	// Generates a set of credentials consisting of a user name and password that can
	// be used to access the service specified in the request. These credentials are
	// generated by IAM, and can be used only for the specified service.
	//
	// You can have a maximum of two sets of service-specific credentials for each
	// supported service per user.
	//
	// You can create service-specific credentials for Amazon Bedrock, CodeCommit and
	// Amazon Keyspaces (for Apache Cassandra).
	//
	// You can reset the password to a new service-generated value by calling [ResetServiceSpecificCredential].
	//
	// For more information about service-specific credentials, see [Service-specific credentials for IAM users] in the IAM User
	// Guide.
	//
	// [ResetServiceSpecificCredential]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html
	// [Service-specific credentials for IAM users]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bedrock.html
	CreateServiceSpecificCredential(ctx context.Context, params *iam.CreateServiceSpecificCredentialInput, optFns ...func(*Options)) (*iam.CreateServiceSpecificCredentialOutput, error)
	// Creates a new IAM user for your Amazon Web Services account.
	//
	// For information about quotas for the number of IAM users you can create, see [IAM and STS quotas]
	// in the IAM User Guide.
	//
	// [IAM and STS quotas]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html
	CreateUser(ctx context.Context, params *iam.CreateUserInput, optFns ...func(*Options)) (*iam.CreateUserOutput, error)
	// Creates a new virtual MFA device for the Amazon Web Services account. After
	// creating the virtual MFA, use [EnableMFADevice]to attach the MFA device to an IAM user. For more
	// information about creating and working with virtual MFA devices, see [Using a virtual MFA device]in the IAM
	// User Guide.
	//
	// For information about the maximum number of MFA devices you can create, see [IAM and STS quotas] in
	// the IAM User Guide.
	//
	// The seed information contained in the QR code and the Base32 string should be
	// treated like any other secret access information. In other words, protect the
	// seed information as you would your Amazon Web Services access keys or your
	// passwords. After you provision your virtual device, you should ensure that the
	// information is destroyed following secure procedures.
	//
	// [Using a virtual MFA device]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html
	// [EnableMFADevice]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html
	// [IAM and STS quotas]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html
	CreateVirtualMFADevice(ctx context.Context, params *iam.CreateVirtualMFADeviceInput, optFns ...func(*Options)) (*iam.CreateVirtualMFADeviceOutput, error)
	// Deactivates the specified MFA device and removes it from association with the
	// user name for which it was originally enabled.
	//
	// For more information about creating and working with virtual MFA devices, see [Enabling a virtual multi-factor authentication (MFA) device]
	// in the IAM User Guide.
	//
	// [Enabling a virtual multi-factor authentication (MFA) device]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html
	DeactivateMFADevice(ctx context.Context, params *iam.DeactivateMFADeviceInput, optFns ...func(*Options)) (*iam.DeactivateMFADeviceOutput, error)
	// Deletes the access key pair associated with the specified IAM user.
	//
	// If you do not specify a user name, IAM determines the user name implicitly
	// based on the Amazon Web Services access key ID signing the request. This
	// operation works for access keys under the Amazon Web Services account.
	// Consequently, you can use this operation to manage Amazon Web Services account
	// root user credentials even if the Amazon Web Services account has no associated
	// users.
	DeleteAccessKey(ctx context.Context, params *iam.DeleteAccessKeyInput, optFns ...func(*Options)) (*iam.DeleteAccessKeyOutput, error)
	//	Deletes the specified Amazon Web Services account alias. For information about
	//
	// using an Amazon Web Services account alias, see [Creating, deleting, and listing an Amazon Web Services account alias]in the Amazon Web Services
	// Sign-In User Guide.
	//
	// [Creating, deleting, and listing an Amazon Web Services account alias]: https://docs.aws.amazon.com/signin/latest/userguide/CreateAccountAlias.html
	DeleteAccountAlias(ctx context.Context, params *iam.DeleteAccountAliasInput, optFns ...func(*Options)) (*iam.DeleteAccountAliasOutput, error)
	// Deletes the password policy for the Amazon Web Services account. There are no
	// parameters.
	DeleteAccountPasswordPolicy(ctx context.Context, params *iam.DeleteAccountPasswordPolicyInput, optFns ...func(*Options)) (*iam.DeleteAccountPasswordPolicyOutput, error)
	// Deletes the specified IAM group. The group must not contain any users or have
	// any attached policies.
	DeleteGroup(ctx context.Context, params *iam.DeleteGroupInput, optFns ...func(*Options)) (*iam.DeleteGroupOutput, error)
	// Deletes the specified inline policy that is embedded in the specified IAM group.
	//
	// A group can also have managed policies attached to it. To detach a managed
	// policy from a group, use [DetachGroupPolicy]. For more information about policies, refer to [Managed policies and inline policies] in
	// the IAM User Guide.
	//
	// [DetachGroupPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachGroupPolicy.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	DeleteGroupPolicy(ctx context.Context, params *iam.DeleteGroupPolicyInput, optFns ...func(*Options)) (*iam.DeleteGroupPolicyOutput, error)
	// Deletes the specified instance profile. The instance profile must not have an
	// associated role.
	//
	// Make sure that you do not have any Amazon EC2 instances running with the
	// instance profile you are about to delete. Deleting a role or instance profile
	// that is associated with a running instance will break any applications running
	// on the instance.
	//
	// For more information about instance profiles, see [Using instance profiles] in the IAM User Guide.
	//
	// [Using instance profiles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html
	DeleteInstanceProfile(ctx context.Context, params *iam.DeleteInstanceProfileInput, optFns ...func(*Options)) (*iam.DeleteInstanceProfileOutput, error)
	// Deletes the password for the specified IAM user or root user, For more
	// information, see [Managing passwords for IAM users].
	//
	// You can use the CLI, the Amazon Web Services API, or the Users page in the IAM
	// console to delete a password for any IAM user. You can use [ChangePassword]to update, but not
	// delete, your own password in the My Security Credentials page in the Amazon Web
	// Services Management Console.
	//
	// Deleting a user's password does not prevent a user from accessing Amazon Web
	// Services through the command line interface or the API. To prevent all user
	// access, you must also either make any access keys inactive or delete them. For
	// more information about making keys inactive or deleting them, see [UpdateAccessKey]and [DeleteAccessKey].
	//
	// [ChangePassword]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html
	// [DeleteAccessKey]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html
	// [Managing passwords for IAM users]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_admin-change-user.html
	// [UpdateAccessKey]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html
	DeleteLoginProfile(ctx context.Context, params *iam.DeleteLoginProfileInput, optFns ...func(*Options)) (*iam.DeleteLoginProfileOutput, error)
	// Deletes an OpenID Connect identity provider (IdP) resource object in IAM.
	//
	// Deleting an IAM OIDC provider resource does not update any roles that reference
	// the provider as a principal in their trust policies. Any attempt to assume a
	// role that references a deleted provider fails.
	//
	// This operation is idempotent; it does not fail or return an error if you call
	// the operation for a provider that does not exist.
	DeleteOpenIDConnectProvider(ctx context.Context, params *iam.DeleteOpenIDConnectProviderInput, optFns ...func(*Options)) (*iam.DeleteOpenIDConnectProviderOutput, error)
	// Deletes the specified managed policy.
	//
	// Before you can delete a managed policy, you must first detach the policy from
	// all users, groups, and roles that it is attached to. In addition, you must
	// delete all the policy's versions. The following steps describe the process for
	// deleting a managed policy:
	//
	//   - Detach the policy from all users, groups, and roles that the policy is
	//     attached to, using [DetachUserPolicy], [DetachGroupPolicy], or [DetachRolePolicy]. To list all the users, groups, and roles that a
	//     policy is attached to, use [ListEntitiesForPolicy].
	//
	//   - Delete all versions of the policy using [DeletePolicyVersion]. To list the policy's versions,
	//     use [ListPolicyVersions]. You cannot use [DeletePolicyVersion]to delete the version that is marked as the default
	//     version. You delete the policy's default version in the next step of the
	//     process.
	//
	//   - Delete the policy (this automatically deletes the policy's default version)
	//     using this operation.
	//
	// For information about managed policies, see [Managed policies and inline policies] in the IAM User Guide.
	//
	// [DetachUserPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachUserPolicy.html
	// [DetachRolePolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachRolePolicy.html
	// [ListEntitiesForPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html
	// [DeletePolicyVersion]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicyVersion.html
	// [DetachGroupPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachGroupPolicy.html
	// [ListPolicyVersions]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicyVersions.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	DeletePolicy(ctx context.Context, params *iam.DeletePolicyInput, optFns ...func(*Options)) (*iam.DeletePolicyOutput, error)
	// Deletes the specified version from the specified managed policy.
	//
	// You cannot delete the default version from a policy using this operation. To
	// delete the default version from a policy, use [DeletePolicy]. To find out which version of a
	// policy is marked as the default version, use [ListPolicyVersions].
	//
	// For information about versions for managed policies, see [Versioning for managed policies] in the IAM User Guide.
	//
	// [DeletePolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicy.html
	// [Versioning for managed policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html
	// [ListPolicyVersions]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicyVersions.html
	DeletePolicyVersion(ctx context.Context, params *iam.DeletePolicyVersionInput, optFns ...func(*Options)) (*iam.DeletePolicyVersionOutput, error)
	// Deletes the specified role. Unlike the Amazon Web Services Management Console,
	// when you delete a role programmatically, you must delete the items attached to
	// the role manually, or the deletion fails. For more information, see [Deleting an IAM role]. Before
	// attempting to delete a role, remove the following attached items:
	//
	//   - Inline policies ([DeleteRolePolicy] )
	//
	//   - Attached managed policies ([DetachRolePolicy] )
	//
	//   - Instance profile ([RemoveRoleFromInstanceProfile] )
	//
	//   - Optional – Delete instance profile after detaching from role for resource
	//     clean up ([DeleteInstanceProfile] )
	//
	// Make sure that you do not have any Amazon EC2 instances running with the role
	// you are about to delete. Deleting a role or instance profile that is associated
	// with a running instance will break any applications running on the instance.
	//
	// [DetachRolePolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachRolePolicy.html
	// [RemoveRoleFromInstanceProfile]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveRoleFromInstanceProfile.html
	// [DeleteRolePolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteRolePolicy.html
	// [DeleteInstanceProfile]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteInstanceProfile.html
	// [Deleting an IAM role]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html#roles-managingrole-deleting-cli
	DeleteRole(ctx context.Context, params *iam.DeleteRoleInput, optFns ...func(*Options)) (*iam.DeleteRoleOutput, error)
	// Deletes the permissions boundary for the specified IAM role.
	//
	// You cannot set the boundary for a service-linked role.
	//
	// Deleting the permissions boundary for a role might increase its permissions.
	// For example, it might allow anyone who assumes the role to perform all the
	// actions granted in its permissions policies.
	DeleteRolePermissionsBoundary(ctx context.Context, params *iam.DeleteRolePermissionsBoundaryInput, optFns ...func(*Options)) (*iam.DeleteRolePermissionsBoundaryOutput, error)
	// Deletes the specified inline policy that is embedded in the specified IAM role.
	//
	// A role can also have managed policies attached to it. To detach a managed
	// policy from a role, use [DetachRolePolicy]. For more information about policies, refer to [Managed policies and inline policies] in the
	// IAM User Guide.
	//
	// [DetachRolePolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachRolePolicy.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	DeleteRolePolicy(ctx context.Context, params *iam.DeleteRolePolicyInput, optFns ...func(*Options)) (*iam.DeleteRolePolicyOutput, error)
	// Deletes a SAML provider resource in IAM.
	//
	// Deleting the provider resource from IAM does not update any roles that
	// reference the SAML provider resource's ARN as a principal in their trust
	// policies. Any attempt to assume a role that references a non-existent provider
	// resource ARN fails.
	//
	// This operation requires [Signature Version 4].
	//
	// [Signature Version 4]: https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html
	DeleteSAMLProvider(ctx context.Context, params *iam.DeleteSAMLProviderInput, optFns ...func(*Options)) (*iam.DeleteSAMLProviderOutput, error)
	// Deletes the specified SSH public key.
	//
	// The SSH public key deleted by this operation is used only for authenticating
	// the associated IAM user to an CodeCommit repository. For more information about
	// using SSH keys to authenticate to an CodeCommit repository, see [Set up CodeCommit for SSH connections]in the
	// CodeCommit User Guide.
	//
	// [Set up CodeCommit for SSH connections]: https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html
	DeleteSSHPublicKey(ctx context.Context, params *iam.DeleteSSHPublicKeyInput, optFns ...func(*Options)) (*iam.DeleteSSHPublicKeyOutput, error)
	// Deletes the specified server certificate.
	//
	// For more information about working with server certificates, see [Working with server certificates] in the IAM
	// User Guide. This topic also includes a list of Amazon Web Services services that
	// can use the server certificates that you manage with IAM.
	//
	// If you are using a server certificate with Elastic Load Balancing, deleting the
	// certificate could have implications for your application. If Elastic Load
	// Balancing doesn't detect the deletion of bound certificates, it may continue to
	// use the certificates. This could cause Elastic Load Balancing to stop accepting
	// traffic. We recommend that you remove the reference to the certificate from
	// Elastic Load Balancing before using this command to delete the certificate. For
	// more information, see [DeleteLoadBalancerListeners]in the Elastic Load Balancing API Reference.
	//
	// [Working with server certificates]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html
	// [DeleteLoadBalancerListeners]: https://docs.aws.amazon.com/ElasticLoadBalancing/latest/APIReference/API_DeleteLoadBalancerListeners.html
	DeleteServerCertificate(ctx context.Context, params *iam.DeleteServerCertificateInput, optFns ...func(*Options)) (*iam.DeleteServerCertificateOutput, error)
	// Submits a service-linked role deletion request and returns a DeletionTaskId ,
	// which you can use to check the status of the deletion. Before you call this
	// operation, confirm that the role has no active sessions and that any resources
	// used by the role in the linked service are deleted. If you call this operation
	// more than once for the same service-linked role and an earlier deletion task is
	// not complete, then the DeletionTaskId of the earlier request is returned.
	//
	// If you submit a deletion request for a service-linked role whose linked service
	// is still accessing a resource, then the deletion task fails. If it fails, the [GetServiceLinkedRoleDeletionStatus]
	// operation returns the reason for the failure, usually including the resources
	// that must be deleted. To delete the service-linked role, you must first remove
	// those resources from the linked service and then submit the deletion request
	// again. Resources are specific to the service that is linked to the role. For
	// more information about removing resources from a service, see the [Amazon Web Services documentation]for your
	// service.
	//
	// For more information about service-linked roles, see [Roles terms and concepts: Amazon Web Services service-linked role] in the IAM User Guide.
	//
	// [Roles terms and concepts: Amazon Web Services service-linked role]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role
	// [Amazon Web Services documentation]: http://docs.aws.amazon.com/
	// [GetServiceLinkedRoleDeletionStatus]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLinkedRoleDeletionStatus.html
	DeleteServiceLinkedRole(ctx context.Context, params *iam.DeleteServiceLinkedRoleInput, optFns ...func(*Options)) (*iam.DeleteServiceLinkedRoleOutput, error)
	// Deletes the specified service-specific credential.
	DeleteServiceSpecificCredential(ctx context.Context, params *iam.DeleteServiceSpecificCredentialInput, optFns ...func(*Options)) (*iam.DeleteServiceSpecificCredentialOutput, error)
	// Deletes a signing certificate associated with the specified IAM user.
	//
	// If you do not specify a user name, IAM determines the user name implicitly
	// based on the Amazon Web Services access key ID signing the request. This
	// operation works for access keys under the Amazon Web Services account.
	// Consequently, you can use this operation to manage Amazon Web Services account
	// root user credentials even if the Amazon Web Services account has no associated
	// IAM users.
	DeleteSigningCertificate(ctx context.Context, params *iam.DeleteSigningCertificateInput, optFns ...func(*Options)) (*iam.DeleteSigningCertificateOutput, error)
	// Deletes the specified IAM user. Unlike the Amazon Web Services Management
	// Console, when you delete a user programmatically, you must delete the items
	// attached to the user manually, or the deletion fails. For more information, see [Deleting an IAM user]
	// . Before attempting to delete a user, remove the following items:
	//
	//   - Password ([DeleteLoginProfile] )
	//
	//   - Access keys ([DeleteAccessKey] )
	//
	//   - Signing certificate ([DeleteSigningCertificate] )
	//
	//   - SSH public key ([DeleteSSHPublicKey] )
	//
	//   - Git credentials ([DeleteServiceSpecificCredential] )
	//
	//   - Multi-factor authentication (MFA) device ([DeactivateMFADevice] , [DeleteVirtualMFADevice])
	//
	//   - Inline policies ([DeleteUserPolicy] )
	//
	//   - Attached managed policies ([DetachUserPolicy] )
	//
	//   - Group memberships ([RemoveUserFromGroup] )
	//
	// [DetachUserPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachUserPolicy.html
	// [DeleteAccessKey]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html
	// [DeleteVirtualMFADevice]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteVirtualMFADevice.html
	// [Deleting an IAM user]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting_cli
	// [DeleteUserPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUserPolicy.html
	// [RemoveUserFromGroup]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveUserFromGroup.html
	// [DeleteLoginProfile]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteLoginProfile.html
	// [DeleteServiceSpecificCredential]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html
	// [DeleteSigningCertificate]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteSigningCertificate.html
	// [DeleteSSHPublicKey]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteSSHPublicKey.html
	// [DeactivateMFADevice]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html
	DeleteUser(ctx context.Context, params *iam.DeleteUserInput, optFns ...func(*Options)) (*iam.DeleteUserOutput, error)
	// Deletes the permissions boundary for the specified IAM user.
	//
	// Deleting the permissions boundary for a user might increase its permissions by
	// allowing the user to perform all the actions granted in its permissions
	// policies.
	DeleteUserPermissionsBoundary(ctx context.Context, params *iam.DeleteUserPermissionsBoundaryInput, optFns ...func(*Options)) (*iam.DeleteUserPermissionsBoundaryOutput, error)
	// Deletes the specified inline policy that is embedded in the specified IAM user.
	//
	// A user can also have managed policies attached to it. To detach a managed
	// policy from a user, use [DetachUserPolicy]. For more information about policies, refer to [Managed policies and inline policies] in the
	// IAM User Guide.
	//
	// [DetachUserPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachUserPolicy.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	DeleteUserPolicy(ctx context.Context, params *iam.DeleteUserPolicyInput, optFns ...func(*Options)) (*iam.DeleteUserPolicyOutput, error)
	// Deletes a virtual MFA device.
	//
	// You must deactivate a user's virtual MFA device before you can delete it. For
	// information about deactivating MFA devices, see [DeactivateMFADevice].
	//
	// [DeactivateMFADevice]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html
	DeleteVirtualMFADevice(ctx context.Context, params *iam.DeleteVirtualMFADeviceInput, optFns ...func(*Options)) (*iam.DeleteVirtualMFADeviceOutput, error)
	// Removes the specified managed policy from the specified IAM group.
	//
	// A group can also have inline policies embedded with it. To delete an inline
	// policy, use [DeleteGroupPolicy]. For information about policies, see [Managed policies and inline policies] in the IAM User Guide.
	//
	// [DeleteGroupPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteGroupPolicy.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	DetachGroupPolicy(ctx context.Context, params *iam.DetachGroupPolicyInput, optFns ...func(*Options)) (*iam.DetachGroupPolicyOutput, error)
	// Removes the specified managed policy from the specified role.
	//
	// A role can also have inline policies embedded with it. To delete an inline
	// policy, use [DeleteRolePolicy]. For information about policies, see [Managed policies and inline policies] in the IAM User Guide.
	//
	// [DeleteRolePolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteRolePolicy.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	DetachRolePolicy(ctx context.Context, params *iam.DetachRolePolicyInput, optFns ...func(*Options)) (*iam.DetachRolePolicyOutput, error)
	// Removes the specified managed policy from the specified user.
	//
	// A user can also have inline policies embedded with it. To delete an inline
	// policy, use [DeleteUserPolicy]. For information about policies, see [Managed policies and inline policies] in the IAM User Guide.
	//
	// [DeleteUserPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUserPolicy.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	DetachUserPolicy(ctx context.Context, params *iam.DetachUserPolicyInput, optFns ...func(*Options)) (*iam.DetachUserPolicyOutput, error)
	// Disables the management of privileged root user credentials across member
	// accounts in your organization. When you disable this feature, the management
	// account and the delegated administrator for IAM can no longer manage root user
	// credentials for member accounts in your organization.
	DisableOrganizationsRootCredentialsManagement(ctx context.Context, params *iam.DisableOrganizationsRootCredentialsManagementInput, optFns ...func(*Options)) (*iam.DisableOrganizationsRootCredentialsManagementOutput, error)
	// Disables root user sessions for privileged tasks across member accounts in your
	// organization. When you disable this feature, the management account and the
	// delegated administrator for IAM can no longer perform privileged tasks on member
	// accounts in your organization.
	DisableOrganizationsRootSessions(ctx context.Context, params *iam.DisableOrganizationsRootSessionsInput, optFns ...func(*Options)) (*iam.DisableOrganizationsRootSessionsOutput, error)
	// Disables the outbound identity federation feature for your Amazon Web Services
	// account. When disabled, IAM principals in the account cannot use the
	// GetWebIdentityToken API to obtain JSON Web Tokens (JWTs) for authentication with
	// external services. This operation does not affect tokens that were issued before
	// the feature was disabled.
	DisableOutboundWebIdentityFederation(ctx context.Context, params *iam.DisableOutboundWebIdentityFederationInput, optFns ...func(*Options)) (*iam.DisableOutboundWebIdentityFederationOutput, error)
	// Enables the specified MFA device and associates it with the specified IAM user.
	// When enabled, the MFA device is required for every subsequent login by the IAM
	// user associated with the device.
	EnableMFADevice(ctx context.Context, params *iam.EnableMFADeviceInput, optFns ...func(*Options)) (*iam.EnableMFADeviceOutput, error)
	// Enables the management of privileged root user credentials across member
	// accounts in your organization. When you enable root credentials management for [centralized root access]
	// , the management account and the delegated administrator for IAM can manage root
	// user credentials for member accounts in your organization.
	//
	// Before you enable centralized root access, you must have an account configured
	// with the following settings:
	//
	//   - You must manage your Amazon Web Services accounts in [Organizations].
	//
	//   - Enable trusted access for Identity and Access Management in Organizations.
	//     For details, see [IAM and Organizations]in the Organizations User Guide.
	//
	// [Organizations]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html
	// [centralized root access]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#id_root-user-access-management
	// [IAM and Organizations]: https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-iam.html
	EnableOrganizationsRootCredentialsManagement(ctx context.Context, params *iam.EnableOrganizationsRootCredentialsManagementInput, optFns ...func(*Options)) (*iam.EnableOrganizationsRootCredentialsManagementOutput, error)
	// Allows the management account or delegated administrator to perform privileged
	// tasks on member accounts in your organization. For more information, see [Centrally manage root access for member accounts]in the
	// Identity and Access Management User Guide.
	//
	// Before you enable this feature, you must have an account configured with the
	// following settings:
	//
	//   - You must manage your Amazon Web Services accounts in [Organizations].
	//
	//   - Enable trusted access for Identity and Access Management in Organizations.
	//     For details, see [IAM and Organizations]in the Organizations User Guide.
	//
	// [Centrally manage root access for member accounts]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#id_root-user-access-management
	// [Organizations]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html
	// [IAM and Organizations]: https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-ra.html
	EnableOrganizationsRootSessions(ctx context.Context, params *iam.EnableOrganizationsRootSessionsInput, optFns ...func(*Options)) (*iam.EnableOrganizationsRootSessionsOutput, error)
	// Enables the outbound identity federation feature for your Amazon Web Services
	// account. When enabled, IAM principals in your account can use the
	// GetWebIdentityToken API to obtain JSON Web Tokens (JWTs) for secure
	// authentication with external services. This operation also generates a unique
	// issuer URL for your Amazon Web Services account.
	EnableOutboundWebIdentityFederation(ctx context.Context, params *iam.EnableOutboundWebIdentityFederationInput, optFns ...func(*Options)) (*iam.EnableOutboundWebIdentityFederationOutput, error)
	//	Generates a credential report for the Amazon Web Services account. For more
	//
	// information about the credential report, see [Getting credential reports]in the IAM User Guide.
	//
	// [Getting credential reports]: https://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html
	GenerateCredentialReport(ctx context.Context, params *iam.GenerateCredentialReportInput, optFns ...func(*Options)) (*iam.GenerateCredentialReportOutput, error)
	// Generates a report for service last accessed data for Organizations. You can
	// generate a report for any entities (organization root, organizational unit, or
	// account) or policies in your organization.
	//
	// To call this operation, you must be signed in using your Organizations
	// management account credentials. You can use your long-term IAM user or root user
	// credentials, or temporary credentials from assuming an IAM role. SCPs must be
	// enabled for your organization root. You must have the required IAM and
	// Organizations permissions. For more information, see [Refining permissions using service last accessed data]in the IAM User Guide.
	//
	// You can generate a service last accessed data report for entities by specifying
	// only the entity's path. This data includes a list of services that are allowed
	// by any service control policies (SCPs) that apply to the entity.
	//
	// You can generate a service last accessed data report for a policy by specifying
	// an entity's path and an optional Organizations policy ID. This data includes a
	// list of services that are allowed by the specified SCP.
	//
	// For each service in both report types, the data includes the most recent
	// account activity that the policy allows to account principals in the entity or
	// the entity's children. For important information about the data, reporting
	// period, permissions required, troubleshooting, and supported Regions see [Reducing permissions using service last accessed data]in the
	// IAM User Guide.
	//
	// The data includes all attempts to access Amazon Web Services, not just the
	// successful ones. This includes all attempts that were made using the Amazon Web
	// Services Management Console, the Amazon Web Services API through any of the
	// SDKs, or any of the command line tools. An unexpected entry in the service last
	// accessed data does not mean that an account has been compromised, because the
	// request might have been denied. Refer to your CloudTrail logs as the
	// authoritative source for information about all API calls and whether they were
	// successful or denied access. For more information, see [Logging IAM events with CloudTrail]in the IAM User Guide.
	//
	// This operation returns a JobId . Use this parameter in the [GetOrganizationsAccessReport] operation to check
	// the status of the report generation. To check the status of this request, use
	// the JobId parameter in the [GetOrganizationsAccessReport] operation and test the JobStatus response
	// parameter. When the job is complete, you can retrieve the report.
	//
	// To generate a service last accessed data report for entities, specify an entity
	// path without specifying the optional Organizations policy ID. The type of entity
	// that you specify determines the data returned in the report.
	//
	//   - Root – When you specify the organizations root as the entity, the resulting
	//     report lists all of the services allowed by SCPs that are attached to your root.
	//     For each service, the report includes data for all accounts in your organization
	//     except the management account, because the management account is not limited by
	//     SCPs.
	//
	//   - OU – When you specify an organizational unit (OU) as the entity, the
	//     resulting report lists all of the services allowed by SCPs that are attached to
	//     the OU and its parents. For each service, the report includes data for all
	//     accounts in the OU or its children. This data excludes the management account,
	//     because the management account is not limited by SCPs.
	//
	//   - management account – When you specify the management account, the resulting
	//     report lists all Amazon Web Services services, because the management account is
	//     not limited by SCPs. For each service, the report includes data for only the
	//     management account.
	//
	//   - Account – When you specify another account as the entity, the resulting
	//     report lists all of the services allowed by SCPs that are attached to the
	//     account and its parents. For each service, the report includes data for only the
	//     specified account.
	//
	// To generate a service last accessed data report for policies, specify an entity
	// path and the optional Organizations policy ID. The type of entity that you
	// specify determines the data returned for each service.
	//
	//   - Root – When you specify the root entity and a policy ID, the resulting
	//     report lists all of the services that are allowed by the specified SCP. For each
	//     service, the report includes data for all accounts in your organization to which
	//     the SCP applies. This data excludes the management account, because the
	//     management account is not limited by SCPs. If the SCP is not attached to any
	//     entities in the organization, then the report will return a list of services
	//     with no data.
	//
	//   - OU – When you specify an OU entity and a policy ID, the resulting report
	//     lists all of the services that are allowed by the specified SCP. For each
	//     service, the report includes data for all accounts in the OU or its children to
	//     which the SCP applies. This means that other accounts outside the OU that are
	//     affected by the SCP might not be included in the data. This data excludes the
	//     management account, because the management account is not limited by SCPs. If
	//     the SCP is not attached to the OU or one of its children, the report will return
	//     a list of services with no data.
	//
	//   - management account – When you specify the management account, the resulting
	//     report lists all Amazon Web Services services, because the management account is
	//     not limited by SCPs. If you specify a policy ID in the CLI or API, the policy is
	//     ignored. For each service, the report includes data for only the management
	//     account.
	//
	//   - Account – When you specify another account entity and a policy ID, the
	//     resulting report lists all of the services that are allowed by the specified
	//     SCP. For each service, the report includes data for only the specified account.
	//     This means that other accounts in the organization that are affected by the SCP
	//     might not be included in the data. If the SCP is not attached to the account,
	//     the report will return a list of services with no data.
	//
	// Service last accessed data does not use other policy types when determining
	// whether a principal could access a service. These other policy types include
	// identity-based policies, resource-based policies, access control lists, IAM
	// permissions boundaries, and STS assume role policies. It only applies SCP logic.
	// For more about the evaluation of policy types, see [Evaluating policies]in the IAM User Guide.
	//
	// For more information about service last accessed data, see [Reducing policy scope by viewing user activity] in the IAM User
	// Guide.
	//
	// [Logging IAM events with CloudTrail]: https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html
	// [Refining permissions using service last accessed data]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html
	// [Reducing permissions using service last accessed data]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html
	// [GetOrganizationsAccessReport]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOrganizationsAccessReport.html
	// [Evaluating policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics
	// [Reducing policy scope by viewing user activity]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html
	GenerateOrganizationsAccessReport(ctx context.Context, params *iam.GenerateOrganizationsAccessReportInput, optFns ...func(*Options)) (*iam.GenerateOrganizationsAccessReportOutput, error)
	// Generates a report that includes details about when an IAM resource (user,
	// group, role, or policy) was last used in an attempt to access Amazon Web
	// Services services. Recent activity usually appears within four hours. IAM
	// reports activity for at least the last 400 days, or less if your Region began
	// supporting this feature within the last year. For more information, see [Regions where data is tracked]. For
	// more information about services and actions for which action last accessed
	// information is displayed, see [IAM action last accessed information services and actions].
	//
	// The service last accessed data includes all attempts to access an Amazon Web
	// Services API, not just the successful ones. This includes all attempts that were
	// made using the Amazon Web Services Management Console, the Amazon Web Services
	// API through any of the SDKs, or any of the command line tools. An unexpected
	// entry in the service last accessed data does not mean that your account has been
	// compromised, because the request might have been denied. Refer to your
	// CloudTrail logs as the authoritative source for information about all API calls
	// and whether they were successful or denied access. For more information, see [Logging IAM events with CloudTrail]in
	// the IAM User Guide.
	//
	// The GenerateServiceLastAccessedDetails operation returns a JobId . Use this
	// parameter in the following operations to retrieve the following details from
	// your report:
	//
	// [GetServiceLastAccessedDetails]
	//   - – Use this operation for users, groups, roles, or policies to list every
	//     Amazon Web Services service that the resource could access using permissions
	//     policies. For each service, the response includes information about the most
	//     recent access attempt.
	//
	// The JobId returned by GenerateServiceLastAccessedDetail must be used by the same
	//
	//	role within a session, or by the same user when used to call
	//	GetServiceLastAccessedDetail .
	//
	// [GetServiceLastAccessedDetailsWithEntities]
	//   - – Use this operation for groups and policies to list information about the
	//     associated entities (users or roles) that attempted to access a specific Amazon
	//     Web Services service.
	//
	// To check the status of the GenerateServiceLastAccessedDetails request, use the
	// JobId parameter in the same operations and test the JobStatus response
	// parameter.
	//
	// For additional information about the permissions policies that allow an
	// identity (user, group, or role) to access specific services, use the [ListPoliciesGrantingServiceAccess]operation.
	//
	// Service last accessed data does not use other policy types when determining
	// whether a resource could access a service. These other policy types include
	// resource-based policies, access control lists, Organizations policies, IAM
	// permissions boundaries, and STS assume role policies. It only applies
	// permissions policy logic. For more about the evaluation of policy types, see [Evaluating policies]in
	// the IAM User Guide.
	//
	// For more information about service and action last accessed data, see [Reducing permissions using service last accessed data] in the
	// IAM User Guide.
	//
	// [Logging IAM events with CloudTrail]: https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html
	// [GetServiceLastAccessedDetails]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetails.html
	// [ListPoliciesGrantingServiceAccess]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPoliciesGrantingServiceAccess.html
	// [Reducing permissions using service last accessed data]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html
	// [Regions where data is tracked]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period
	// [Evaluating policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics
	// [GetServiceLastAccessedDetailsWithEntities]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetailsWithEntities.html
	// [IAM action last accessed information services and actions]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor-action-last-accessed.html
	GenerateServiceLastAccessedDetails(ctx context.Context, params *iam.GenerateServiceLastAccessedDetailsInput, optFns ...func(*Options)) (*iam.GenerateServiceLastAccessedDetailsOutput, error)
	// Retrieves information about when the specified access key was last used. The
	// information includes the date and time of last use, along with the Amazon Web
	// Services service and Region that were specified in the last request made with
	// that key.
	GetAccessKeyLastUsed(ctx context.Context, params *iam.GetAccessKeyLastUsedInput, optFns ...func(*Options)) (*iam.GetAccessKeyLastUsedOutput, error)
	// Retrieves information about all IAM users, groups, roles, and policies in your
	// Amazon Web Services account, including their relationships to one another. Use
	// this operation to obtain a snapshot of the configuration of IAM permissions
	// (users, groups, roles, and policies) in your account.
	//
	// Policies returned by this operation are URL-encoded compliant with [RFC 3986]. You can
	// use a URL decoding method to convert the policy back to plain JSON text. For
	// example, if you use Java, you can use the decode method of the
	// java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs
	// provide similar functionality, and some SDKs do this decoding automatically.
	//
	// You can optionally filter the results using the Filter parameter. You can
	// paginate the results using the MaxItems and Marker parameters.
	//
	// [RFC 3986]: https://tools.ietf.org/html/rfc3986
	GetAccountAuthorizationDetails(ctx context.Context, params *iam.GetAccountAuthorizationDetailsInput, optFns ...func(*Options)) (*iam.GetAccountAuthorizationDetailsOutput, error)
	// Retrieves the password policy for the Amazon Web Services account. This tells
	// you the complexity requirements and mandatory rotation periods for the IAM user
	// passwords in your account. For more information about using a password policy,
	// see [Managing an IAM password policy].
	//
	// [Managing an IAM password policy]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html
	GetAccountPasswordPolicy(ctx context.Context, params *iam.GetAccountPasswordPolicyInput, optFns ...func(*Options)) (*iam.GetAccountPasswordPolicyOutput, error)
	// Retrieves information about IAM entity usage and IAM quotas in the Amazon Web
	// Services account.
	//
	// For information about IAM quotas, see [IAM and STS quotas] in the IAM User Guide.
	//
	// [IAM and STS quotas]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html
	GetAccountSummary(ctx context.Context, params *iam.GetAccountSummaryInput, optFns ...func(*Options)) (*iam.GetAccountSummaryOutput, error)
	// Gets a list of all of the context keys referenced in the input policies. The
	// policies are supplied as a list of one or more strings. To get the context keys
	// from policies associated with an IAM user, group, or role, use [GetContextKeysForPrincipalPolicy].
	//
	// Context keys are variables maintained by Amazon Web Services and its services
	// that provide details about the context of an API query request. Context keys can
	// be evaluated by testing against a value specified in an IAM policy. Use
	// GetContextKeysForCustomPolicy to understand what key names and values you must
	// supply when you call [SimulateCustomPolicy]. Note that all parameters are shown in unencoded form
	// here for clarity but must be URL encoded to be included as a part of a real HTML
	// request.
	//
	// [GetContextKeysForPrincipalPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html
	// [SimulateCustomPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html
	GetContextKeysForCustomPolicy(ctx context.Context, params *iam.GetContextKeysForCustomPolicyInput, optFns ...func(*Options)) (*iam.GetContextKeysForCustomPolicyOutput, error)
	// Gets a list of all of the context keys referenced in all the IAM policies that
	// are attached to the specified IAM entity. The entity can be an IAM user, group,
	// or role. If you specify a user, then the request also includes all of the
	// policies attached to groups that the user is a member of.
	//
	// You can optionally include a list of one or more additional policies, specified
	// as strings. If you want to include only a list of policies by string, use [GetContextKeysForCustomPolicy]
	// instead.
	//
	// Note: This operation discloses information about the permissions granted to
	// other users. If you do not want users to see other user's permissions, then
	// consider allowing them to use [GetContextKeysForCustomPolicy]instead.
	//
	// Context keys are variables maintained by Amazon Web Services and its services
	// that provide details about the context of an API query request. Context keys can
	// be evaluated by testing against a value in an IAM policy. Use [GetContextKeysForPrincipalPolicy]to understand
	// what key names and values you must supply when you call [SimulatePrincipalPolicy].
	//
	// [GetContextKeysForPrincipalPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html
	// [GetContextKeysForCustomPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html
	// [SimulatePrincipalPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html
	GetContextKeysForPrincipalPolicy(ctx context.Context, params *iam.GetContextKeysForPrincipalPolicyInput, optFns ...func(*Options)) (*iam.GetContextKeysForPrincipalPolicyOutput, error)
	//	Retrieves a credential report for the Amazon Web Services account. For more
	//
	// information about the credential report, see [Getting credential reports]in the IAM User Guide.
	//
	// [Getting credential reports]: https://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html
	GetCredentialReport(ctx context.Context, params *iam.GetCredentialReportInput, optFns ...func(*Options)) (*iam.GetCredentialReportOutput, error)
	// Retrieves information about a specific delegation request.
	//
	// If a delegation request has no owner or owner account, GetDelegationRequest for
	// that delegation request can be called by any account. If the owner account is
	// assigned but there is no owner id, only identities within that owner account can
	// call GetDelegationRequest for the delegation request. Once the delegation
	// request is fully owned, the owner of the request gets a default permission to
	// get that delegation request. For more details, see [Managing Permissions for Delegation Requests].
	//
	// [Managing Permissions for Delegation Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation.html#temporary-delegation-managing-permissions
	GetDelegationRequest(ctx context.Context, params *iam.GetDelegationRequestInput, optFns ...func(*Options)) (*iam.GetDelegationRequestOutput, error)
	//	Returns a list of IAM users that are in the specified IAM group. You can
	//
	// paginate the results using the MaxItems and Marker parameters.
	GetGroup(ctx context.Context, params *iam.GetGroupInput, optFns ...func(*Options)) (*iam.GetGroupOutput, error)
	// Retrieves the specified inline policy document that is embedded in the
	// specified IAM group.
	//
	// Policies returned by this operation are URL-encoded compliant with [RFC 3986]. You can
	// use a URL decoding method to convert the policy back to plain JSON text. For
	// example, if you use Java, you can use the decode method of the
	// java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs
	// provide similar functionality, and some SDKs do this decoding automatically.
	//
	// An IAM group can also have managed policies attached to it. To retrieve a
	// managed policy document that is attached to a group, use [GetPolicy]to determine the
	// policy's default version, then use [GetPolicyVersion]to retrieve the policy document.
	//
	// For more information about policies, see [Managed policies and inline policies] in the IAM User Guide.
	//
	// [RFC 3986]: https://tools.ietf.org/html/rfc3986
	// [GetPolicyVersion]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html
	// [GetPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	GetGroupPolicy(ctx context.Context, params *iam.GetGroupPolicyInput, optFns ...func(*Options)) (*iam.GetGroupPolicyOutput, error)
	// Retrieves a human readable summary for a given entity. At this time, the only
	// supported entity type is delegation-request
	//
	// This method uses a Large Language Model (LLM) to generate the summary.
	//
	// If a delegation request has no owner or owner account, GetHumanReadableSummary
	// for that delegation request can be called by any account. If the owner account
	// is assigned but there is no owner id, only identities within that owner account
	// can call GetHumanReadableSummary for the delegation request to retrieve a
	// summary of that request. Once the delegation request is fully owned, the owner
	// of the request gets a default permission to get that delegation request. For
	// more details, read default permissions granted to delegation requests. These rules are identical to [GetDelegationRequest] API behavior, such that a
	// party who has permissions to call [GetDelegationRequest]for a given delegation request will always be
	// able to retrieve the human readable summary for that request.
	//
	// [GetDelegationRequest]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetDelegationRequest.html
	GetHumanReadableSummary(ctx context.Context, params *iam.GetHumanReadableSummaryInput, optFns ...func(*Options)) (*iam.GetHumanReadableSummaryOutput, error)
	//	Retrieves information about the specified instance profile, including the
	//
	// instance profile's path, GUID, ARN, and role. For more information about
	// instance profiles, see [Using instance profiles]in the IAM User Guide.
	//
	// [Using instance profiles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html
	GetInstanceProfile(ctx context.Context, params *iam.GetInstanceProfileInput, optFns ...func(*Options)) (*iam.GetInstanceProfileOutput, error)
	// Retrieves the user name for the specified IAM user. A login profile is created
	// when you create a password for the user to access the Amazon Web Services
	// Management Console. If the user does not exist or does not have a password, the
	// operation returns a 404 ( NoSuchEntity ) error.
	//
	// If you create an IAM user with access to the console, the CreateDate reflects
	// the date you created the initial password for the user.
	//
	// If you create an IAM user with programmatic access, and then later add a
	// password for the user to access the Amazon Web Services Management Console, the
	// CreateDate reflects the initial password creation date. A user with programmatic
	// access does not have a login profile unless you create a password for the user
	// to access the Amazon Web Services Management Console.
	GetLoginProfile(ctx context.Context, params *iam.GetLoginProfileInput, optFns ...func(*Options)) (*iam.GetLoginProfileOutput, error)
	// Retrieves information about an MFA device for a specified user.
	GetMFADevice(ctx context.Context, params *iam.GetMFADeviceInput, optFns ...func(*Options)) (*iam.GetMFADeviceOutput, error)
	// Returns information about the specified OpenID Connect (OIDC) provider resource
	// object in IAM.
	GetOpenIDConnectProvider(ctx context.Context, params *iam.GetOpenIDConnectProviderInput, optFns ...func(*Options)) (*iam.GetOpenIDConnectProviderOutput, error)
	// Retrieves the service last accessed data report for Organizations that was
	// previously generated using the [GenerateOrganizationsAccessReport]operation. This operation retrieves the status
	// of your report job and the report contents.
	//
	// Depending on the parameters that you passed when you generated the report, the
	// data returned could include different information. For details, see [GenerateOrganizationsAccessReport].
	//
	// To call this operation, you must be signed in to the management account in your
	// organization. SCPs must be enabled for your organization root. You must have
	// permissions to perform this operation. For more information, see [Refining permissions using service last accessed data]in the IAM
	// User Guide.
	//
	// For each service that principals in an account (root user, IAM users, or IAM
	// roles) could access using SCPs, the operation returns details about the most
	// recent access attempt. If there was no attempt, the service is listed without
	// details about the most recent attempt to access the service. If the operation
	// fails, it returns the reason that it failed.
	//
	// By default, the list is sorted by service namespace.
	//
	// [GenerateOrganizationsAccessReport]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateOrganizationsAccessReport.html
	// [Refining permissions using service last accessed data]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html
	GetOrganizationsAccessReport(ctx context.Context, params *iam.GetOrganizationsAccessReportInput, optFns ...func(*Options)) (*iam.GetOrganizationsAccessReportOutput, error)
	// Retrieves the configuration information for the outbound identity federation
	// feature in your Amazon Web Services account. The response includes the unique
	// issuer URL for your Amazon Web Services account and the current enabled/disabled
	// status of the feature. Use this operation to obtain the issuer URL that you need
	// to configure trust relationships with external services.
	GetOutboundWebIdentityFederationInfo(ctx context.Context, params *iam.GetOutboundWebIdentityFederationInfoInput, optFns ...func(*Options)) (*iam.GetOutboundWebIdentityFederationInfoOutput, error)
	// Retrieves information about the specified managed policy, including the
	// policy's default version and the total number of IAM users, groups, and roles to
	// which the policy is attached. To retrieve the list of the specific users,
	// groups, and roles that the policy is attached to, use [ListEntitiesForPolicy]. This operation returns
	// metadata about the policy. To retrieve the actual policy document for a specific
	// version of the policy, use [GetPolicyVersion].
	//
	// This operation retrieves information about managed policies. To retrieve
	// information about an inline policy that is embedded with an IAM user, group, or
	// role, use [GetUserPolicy], [GetGroupPolicy], or [GetRolePolicy].
	//
	// For more information about policies, see [Managed policies and inline policies] in the IAM User Guide.
	//
	// [ListEntitiesForPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html
	// [GetRolePolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRolePolicy.html
	// [GetPolicyVersion]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html
	// [GetGroupPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroupPolicy.html
	// [GetUserPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUserPolicy.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	GetPolicy(ctx context.Context, params *iam.GetPolicyInput, optFns ...func(*Options)) (*iam.GetPolicyOutput, error)
	// Retrieves information about the specified version of the specified managed
	// policy, including the policy document.
	//
	// Policies returned by this operation are URL-encoded compliant with [RFC 3986]. You can
	// use a URL decoding method to convert the policy back to plain JSON text. For
	// example, if you use Java, you can use the decode method of the
	// java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs
	// provide similar functionality, and some SDKs do this decoding automatically.
	//
	// To list the available versions for a policy, use [ListPolicyVersions].
	//
	// This operation retrieves information about managed policies. To retrieve
	// information about an inline policy that is embedded in a user, group, or role,
	// use [GetUserPolicy], [GetGroupPolicy], or [GetRolePolicy].
	//
	// For more information about the types of policies, see [Managed policies and inline policies] in the IAM User Guide.
	//
	// For more information about managed policy versions, see [Versioning for managed policies] in the IAM User Guide.
	//
	// [RFC 3986]: https://tools.ietf.org/html/rfc3986
	// [GetRolePolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRolePolicy.html
	// [GetGroupPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroupPolicy.html
	// [GetUserPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUserPolicy.html
	// [Versioning for managed policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html
	// [ListPolicyVersions]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicyVersions.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	GetPolicyVersion(ctx context.Context, params *iam.GetPolicyVersionInput, optFns ...func(*Options)) (*iam.GetPolicyVersionOutput, error)
	// Retrieves information about the specified role, including the role's path,
	// GUID, ARN, and the role's trust policy that grants permission to assume the
	// role. For more information about roles, see [IAM roles]in the IAM User Guide.
	//
	// Policies returned by this operation are URL-encoded compliant with [RFC 3986]. You can
	// use a URL decoding method to convert the policy back to plain JSON text. For
	// example, if you use Java, you can use the decode method of the
	// java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs
	// provide similar functionality, and some SDKs do this decoding automatically.
	//
	// [RFC 3986]: https://tools.ietf.org/html/rfc3986
	// [IAM roles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html
	GetRole(ctx context.Context, params *iam.GetRoleInput, optFns ...func(*Options)) (*iam.GetRoleOutput, error)
	// Retrieves the specified inline policy document that is embedded with the
	// specified IAM role.
	//
	// Policies returned by this operation are URL-encoded compliant with [RFC 3986]. You can
	// use a URL decoding method to convert the policy back to plain JSON text. For
	// example, if you use Java, you can use the decode method of the
	// java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs
	// provide similar functionality, and some SDKs do this decoding automatically.
	//
	// An IAM role can also have managed policies attached to it. To retrieve a
	// managed policy document that is attached to a role, use [GetPolicy]to determine the
	// policy's default version, then use [GetPolicyVersion]to retrieve the policy document.
	//
	// For more information about policies, see [Managed policies and inline policies] in the IAM User Guide.
	//
	// For more information about roles, see [IAM roles] in the IAM User Guide.
	//
	// [RFC 3986]: https://tools.ietf.org/html/rfc3986
	// [IAM roles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html
	// [GetPolicyVersion]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html
	// [GetPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	GetRolePolicy(ctx context.Context, params *iam.GetRolePolicyInput, optFns ...func(*Options)) (*iam.GetRolePolicyOutput, error)
	// Returns the SAML provider metadocument that was uploaded when the IAM SAML
	// provider resource object was created or updated.
	//
	// This operation requires [Signature Version 4].
	//
	// [Signature Version 4]: https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html
	GetSAMLProvider(ctx context.Context, params *iam.GetSAMLProviderInput, optFns ...func(*Options)) (*iam.GetSAMLProviderOutput, error)
	// Retrieves the specified SSH public key, including metadata about the key.
	//
	// The SSH public key retrieved by this operation is used only for authenticating
	// the associated IAM user to an CodeCommit repository. For more information about
	// using SSH keys to authenticate to an CodeCommit repository, see [Set up CodeCommit for SSH connections]in the
	// CodeCommit User Guide.
	//
	// [Set up CodeCommit for SSH connections]: https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html
	GetSSHPublicKey(ctx context.Context, params *iam.GetSSHPublicKeyInput, optFns ...func(*Options)) (*iam.GetSSHPublicKeyOutput, error)
	// Retrieves information about the specified server certificate stored in IAM.
	//
	// For more information about working with server certificates, see [Working with server certificates] in the IAM
	// User Guide. This topic includes a list of Amazon Web Services services that can
	// use the server certificates that you manage with IAM.
	//
	// [Working with server certificates]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html
	GetServerCertificate(ctx context.Context, params *iam.GetServerCertificateInput, optFns ...func(*Options)) (*iam.GetServerCertificateOutput, error)
	// Retrieves a service last accessed report that was created using the
	// GenerateServiceLastAccessedDetails operation. You can use the JobId parameter
	// in GetServiceLastAccessedDetails to retrieve the status of your report job.
	// When the report is complete, you can retrieve the generated report. The report
	// includes a list of Amazon Web Services services that the resource (user, group,
	// role, or managed policy) can access.
	//
	// Service last accessed data does not use other policy types when determining
	// whether a resource could access a service. These other policy types include
	// resource-based policies, access control lists, Organizations policies, IAM
	// permissions boundaries, and STS assume role policies. It only applies
	// permissions policy logic. For more about the evaluation of policy types, see [Evaluating policies]in
	// the IAM User Guide.
	//
	// For each service that the resource could access using permissions policies, the
	// operation returns details about the most recent access attempt. If there was no
	// attempt, the service is listed without details about the most recent attempt to
	// access the service. If the operation fails, the GetServiceLastAccessedDetails
	// operation returns the reason that it failed.
	//
	// The GetServiceLastAccessedDetails operation returns a list of services. This
	// list includes the number of entities that have attempted to access the service
	// and the date and time of the last attempt. It also returns the ARN of the
	// following entity, depending on the resource ARN that you used to generate the
	// report:
	//
	//   - User – Returns the user ARN that you used to generate the report
	//
	//   - Group – Returns the ARN of the group member (user) that last attempted to
	//     access the service
	//
	//   - Role – Returns the role ARN that you used to generate the report
	//
	//   - Policy – Returns the ARN of the user or role that last used the policy to
	//     attempt to access the service
	//
	// By default, the list is sorted by service namespace.
	//
	// If you specified ACTION_LEVEL granularity when you generated the report, this
	// operation returns service and action last accessed data. This includes the most
	// recent access attempt for each tracked action within a service. Otherwise, this
	// operation returns only service data.
	//
	// For more information about service and action last accessed data, see [Reducing permissions using service last accessed data] in the
	// IAM User Guide.
	//
	// [Reducing permissions using service last accessed data]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html
	// [Evaluating policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics
	GetServiceLastAccessedDetails(ctx context.Context, params *iam.GetServiceLastAccessedDetailsInput, optFns ...func(*Options)) (*iam.GetServiceLastAccessedDetailsOutput, error)
	// After you generate a group or policy report using the
	// GenerateServiceLastAccessedDetails operation, you can use the JobId parameter
	// in GetServiceLastAccessedDetailsWithEntities . This operation retrieves the
	// status of your report job and a list of entities that could have used group or
	// policy permissions to access the specified service.
	//
	//   - Group – For a group report, this operation returns a list of users in the
	//     group that could have used the group’s policies in an attempt to access the
	//     service.
	//
	//   - Policy – For a policy report, this operation returns a list of entities
	//     (users or roles) that could have used the policy in an attempt to access the
	//     service.
	//
	// You can also use this operation for user or role reports to retrieve details
	// about those entities.
	//
	// If the operation fails, the GetServiceLastAccessedDetailsWithEntities operation
	// returns the reason that it failed.
	//
	// By default, the list of associated entities is sorted by date, with the most
	// recent access listed first.
	GetServiceLastAccessedDetailsWithEntities(ctx context.Context, params *iam.GetServiceLastAccessedDetailsWithEntitiesInput, optFns ...func(*Options)) (*iam.GetServiceLastAccessedDetailsWithEntitiesOutput, error)
	// Retrieves the status of your service-linked role deletion. After you use [DeleteServiceLinkedRole] to
	// submit a service-linked role for deletion, you can use the DeletionTaskId
	// parameter in GetServiceLinkedRoleDeletionStatus to check the status of the
	// deletion. If the deletion fails, this operation returns the reason that it
	// failed, if that information is returned by the service.
	//
	// [DeleteServiceLinkedRole]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceLinkedRole.html
	GetServiceLinkedRoleDeletionStatus(ctx context.Context, params *iam.GetServiceLinkedRoleDeletionStatusInput, optFns ...func(*Options)) (*iam.GetServiceLinkedRoleDeletionStatusOutput, error)
	// Retrieves information about the specified IAM user, including the user's
	// creation date, path, unique ID, and ARN.
	//
	// If you do not specify a user name, IAM determines the user name implicitly
	// based on the Amazon Web Services access key ID used to sign the request to this
	// operation.
	GetUser(ctx context.Context, params *iam.GetUserInput, optFns ...func(*Options)) (*iam.GetUserOutput, error)
	// Retrieves the specified inline policy document that is embedded in the
	// specified IAM user.
	//
	// Policies returned by this operation are URL-encoded compliant with [RFC 3986]. You can
	// use a URL decoding method to convert the policy back to plain JSON text. For
	// example, if you use Java, you can use the decode method of the
	// java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs
	// provide similar functionality, and some SDKs do this decoding automatically.
	//
	// An IAM user can also have managed policies attached to it. To retrieve a
	// managed policy document that is attached to a user, use [GetPolicy]to determine the
	// policy's default version. Then use [GetPolicyVersion]to retrieve the policy document.
	//
	// For more information about policies, see [Managed policies and inline policies] in the IAM User Guide.
	//
	// [RFC 3986]: https://tools.ietf.org/html/rfc3986
	// [GetPolicyVersion]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html
	// [GetPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	GetUserPolicy(ctx context.Context, params *iam.GetUserPolicyInput, optFns ...func(*Options)) (*iam.GetUserPolicyOutput, error)
	// Returns information about the access key IDs associated with the specified IAM
	// user. If there is none, the operation returns an empty list.
	//
	// Although each user is limited to a small number of keys, you can still paginate
	// the results using the MaxItems and Marker parameters.
	//
	// If the UserName is not specified, the user name is determined implicitly based
	// on the Amazon Web Services access key ID used to sign the request. If a
	// temporary access key is used, then UserName is required. If a long-term key is
	// assigned to the user, then UserName is not required.
	//
	// This operation works for access keys under the Amazon Web Services account. If
	// the Amazon Web Services account has no associated users, the root user returns
	// it's own access key IDs by running this command.
	//
	// To ensure the security of your Amazon Web Services account, the secret access
	// key is accessible only during key and user creation.
	ListAccessKeys(ctx context.Context, params *iam.ListAccessKeysInput, optFns ...func(*Options)) (*iam.ListAccessKeysOutput, error)
	// Lists the account alias associated with the Amazon Web Services account (Note:
	// you can have only one). For information about using an Amazon Web Services
	// account alias, see [Creating, deleting, and listing an Amazon Web Services account alias]in the IAM User Guide.
	//
	// [Creating, deleting, and listing an Amazon Web Services account alias]: https://docs.aws.amazon.com/IAM/latest/UserGuide/console_account-alias.html#CreateAccountAlias
	ListAccountAliases(ctx context.Context, params *iam.ListAccountAliasesInput, optFns ...func(*Options)) (*iam.ListAccountAliasesOutput, error)
	// Lists all managed policies that are attached to the specified IAM group.
	//
	// An IAM group can also have inline policies embedded with it. To list the inline
	// policies for a group, use [ListGroupPolicies]. For information about policies, see [Managed policies and inline policies] in the IAM
	// User Guide.
	//
	// You can paginate the results using the MaxItems and Marker parameters. You can
	// use the PathPrefix parameter to limit the list of policies to only those
	// matching the specified path prefix. If there are no policies attached to the
	// specified group (or none that match the specified path prefix), the operation
	// returns an empty list.
	//
	// [ListGroupPolicies]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupPolicies.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	ListAttachedGroupPolicies(ctx context.Context, params *iam.ListAttachedGroupPoliciesInput, optFns ...func(*Options)) (*iam.ListAttachedGroupPoliciesOutput, error)
	// Lists all managed policies that are attached to the specified IAM role.
	//
	// An IAM role can also have inline policies embedded with it. To list the inline
	// policies for a role, use [ListRolePolicies]. For information about policies, see [Managed policies and inline policies] in the IAM User
	// Guide.
	//
	// You can paginate the results using the MaxItems and Marker parameters. You can
	// use the PathPrefix parameter to limit the list of policies to only those
	// matching the specified path prefix. If there are no policies attached to the
	// specified role (or none that match the specified path prefix), the operation
	// returns an empty list.
	//
	// [ListRolePolicies]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRolePolicies.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	ListAttachedRolePolicies(ctx context.Context, params *iam.ListAttachedRolePoliciesInput, optFns ...func(*Options)) (*iam.ListAttachedRolePoliciesOutput, error)
	// Lists all managed policies that are attached to the specified IAM user.
	//
	// An IAM user can also have inline policies embedded with it. To list the inline
	// policies for a user, use [ListUserPolicies]. For information about policies, see [Managed policies and inline policies] in the IAM User
	// Guide.
	//
	// You can paginate the results using the MaxItems and Marker parameters. You can
	// use the PathPrefix parameter to limit the list of policies to only those
	// matching the specified path prefix. If there are no policies attached to the
	// specified group (or none that match the specified path prefix), the operation
	// returns an empty list.
	//
	// [ListUserPolicies]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserPolicies.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	ListAttachedUserPolicies(ctx context.Context, params *iam.ListAttachedUserPoliciesInput, optFns ...func(*Options)) (*iam.ListAttachedUserPoliciesOutput, error)
	// Lists delegation requests based on the specified criteria.
	//
	// If a delegation request has no owner, even if it is assigned to a specific
	// account, it will not be part of the ListDelegationRequests output for that
	// account.
	//
	// For more details, see [Managing Permissions for Delegation Requests].
	//
	// [Managing Permissions for Delegation Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation.html#temporary-delegation-managing-permissions
	ListDelegationRequests(ctx context.Context, params *iam.ListDelegationRequestsInput, optFns ...func(*Options)) (*iam.ListDelegationRequestsOutput, error)
	// Lists all IAM users, groups, and roles that the specified managed policy is
	// attached to.
	//
	// You can use the optional EntityFilter parameter to limit the results to a
	// particular type of entity (users, groups, or roles). For example, to list only
	// the roles that are attached to the specified policy, set EntityFilter to Role .
	//
	// You can paginate the results using the MaxItems and Marker parameters.
	ListEntitiesForPolicy(ctx context.Context, params *iam.ListEntitiesForPolicyInput, optFns ...func(*Options)) (*iam.ListEntitiesForPolicyOutput, error)
	// Lists the names of the inline policies that are embedded in the specified IAM
	// group.
	//
	// An IAM group can also have managed policies attached to it. To list the managed
	// policies that are attached to a group, use [ListAttachedGroupPolicies]. For more information about
	// policies, see [Managed policies and inline policies]in the IAM User Guide.
	//
	// You can paginate the results using the MaxItems and Marker parameters. If there
	// are no inline policies embedded with the specified group, the operation returns
	// an empty list.
	//
	// [ListAttachedGroupPolicies]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedGroupPolicies.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	ListGroupPolicies(ctx context.Context, params *iam.ListGroupPoliciesInput, optFns ...func(*Options)) (*iam.ListGroupPoliciesOutput, error)
	// Lists the IAM groups that have the specified path prefix.
	//
	// You can paginate the results using the MaxItems and Marker parameters.
	ListGroups(ctx context.Context, params *iam.ListGroupsInput, optFns ...func(*Options)) (*iam.ListGroupsOutput, error)
	// Lists the IAM groups that the specified IAM user belongs to.
	//
	// You can paginate the results using the MaxItems and Marker parameters.
	ListGroupsForUser(ctx context.Context, params *iam.ListGroupsForUserInput, optFns ...func(*Options)) (*iam.ListGroupsForUserOutput, error)
	// Lists the tags that are attached to the specified IAM instance profile. The
	// returned list of tags is sorted by tag key. For more information about tagging,
	// see [Tagging IAM resources]in the IAM User Guide.
	//
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	ListInstanceProfileTags(ctx context.Context, params *iam.ListInstanceProfileTagsInput, optFns ...func(*Options)) (*iam.ListInstanceProfileTagsOutput, error)
	// Lists the instance profiles that have the specified path prefix. If there are
	// none, the operation returns an empty list. For more information about instance
	// profiles, see [Using instance profiles]in the IAM User Guide.
	//
	// IAM resource-listing operations return a subset of the available attributes for
	// the resource. For example, this operation does not return tags, even though they
	// are an attribute of the returned object. To view all of the information for an
	// instance profile, see [GetInstanceProfile].
	//
	// You can paginate the results using the MaxItems and Marker parameters.
	//
	// [Using instance profiles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html
	// [GetInstanceProfile]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetInstanceProfile.html
	ListInstanceProfiles(ctx context.Context, params *iam.ListInstanceProfilesInput, optFns ...func(*Options)) (*iam.ListInstanceProfilesOutput, error)
	// Lists the instance profiles that have the specified associated IAM role. If
	// there are none, the operation returns an empty list. For more information about
	// instance profiles, go to [Using instance profiles]in the IAM User Guide.
	//
	// You can paginate the results using the MaxItems and Marker parameters.
	//
	// [Using instance profiles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html
	ListInstanceProfilesForRole(ctx context.Context, params *iam.ListInstanceProfilesForRoleInput, optFns ...func(*Options)) (*iam.ListInstanceProfilesForRoleOutput, error)
	// Lists the tags that are attached to the specified IAM virtual multi-factor
	// authentication (MFA) device. The returned list of tags is sorted by tag key. For
	// more information about tagging, see [Tagging IAM resources]in the IAM User Guide.
	//
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	ListMFADeviceTags(ctx context.Context, params *iam.ListMFADeviceTagsInput, optFns ...func(*Options)) (*iam.ListMFADeviceTagsOutput, error)
	// Lists the MFA devices for an IAM user. If the request includes a IAM user name,
	// then this operation lists all the MFA devices associated with the specified
	// user. If you do not specify a user name, IAM determines the user name implicitly
	// based on the Amazon Web Services access key ID signing the request for this
	// operation.
	//
	// You can paginate the results using the MaxItems and Marker parameters.
	ListMFADevices(ctx context.Context, params *iam.ListMFADevicesInput, optFns ...func(*Options)) (*iam.ListMFADevicesOutput, error)
	// Lists the tags that are attached to the specified OpenID Connect
	// (OIDC)-compatible identity provider. The returned list of tags is sorted by tag
	// key. For more information, see [About web identity federation].
	//
	// For more information about tagging, see [Tagging IAM resources] in the IAM User Guide.
	//
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	// [About web identity federation]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html
	ListOpenIDConnectProviderTags(ctx context.Context, params *iam.ListOpenIDConnectProviderTagsInput, optFns ...func(*Options)) (*iam.ListOpenIDConnectProviderTagsOutput, error)
	// Lists information about the IAM OpenID Connect (OIDC) provider resource objects
	// defined in the Amazon Web Services account.
	//
	// IAM resource-listing operations return a subset of the available attributes for
	// the resource. For example, this operation does not return tags, even though they
	// are an attribute of the returned object. To view all of the information for an
	// OIDC provider, see [GetOpenIDConnectProvider].
	//
	// [GetOpenIDConnectProvider]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOpenIDConnectProvider.html
	ListOpenIDConnectProviders(ctx context.Context, params *iam.ListOpenIDConnectProvidersInput, optFns ...func(*Options)) (*iam.ListOpenIDConnectProvidersOutput, error)
	// Lists the centralized root access features enabled for your organization. For
	// more information, see [Centrally manage root access for member accounts].
	//
	// [Centrally manage root access for member accounts]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#id_root-user-access-management
	ListOrganizationsFeatures(ctx context.Context, params *iam.ListOrganizationsFeaturesInput, optFns ...func(*Options)) (*iam.ListOrganizationsFeaturesOutput, error)
	// Lists all the managed policies that are available in your Amazon Web Services
	// account, including your own customer-defined managed policies and all Amazon Web
	// Services managed policies.
	//
	// You can filter the list of policies that is returned using the optional
	// OnlyAttached , Scope , and PathPrefix parameters. For example, to list only the
	// customer managed policies in your Amazon Web Services account, set Scope to
	// Local . To list only Amazon Web Services managed policies, set Scope to AWS .
	//
	// You can paginate the results using the MaxItems and Marker parameters.
	//
	// For more information about managed policies, see [Managed policies and inline policies] in the IAM User Guide.
	//
	// IAM resource-listing operations return a subset of the available attributes for
	// the resource. For example, this operation does not return tags, even though they
	// are an attribute of the returned object. To view all of the information for a
	// customer manged policy, see [GetPolicy].
	//
	// [GetPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	ListPolicies(ctx context.Context, params *iam.ListPoliciesInput, optFns ...func(*Options)) (*iam.ListPoliciesOutput, error)
	// Retrieves a list of policies that the IAM identity (user, group, or role) can
	// use to access each specified service.
	//
	// This operation does not use other policy types when determining whether a
	// resource could access a service. These other policy types include resource-based
	// policies, access control lists, Organizations policies, IAM permissions
	// boundaries, and STS assume role policies. It only applies permissions policy
	// logic. For more about the evaluation of policy types, see [Evaluating policies]in the IAM User Guide.
	//
	// The list of policies returned by the operation depends on the ARN of the
	// identity that you provide.
	//
	//   - User – The list of policies includes the managed and inline policies that
	//     are attached to the user directly. The list also includes any additional managed
	//     and inline policies that are attached to the group to which the user belongs.
	//
	//   - Group – The list of policies includes only the managed and inline policies
	//     that are attached to the group directly. Policies that are attached to the
	//     group’s user are not included.
	//
	//   - Role – The list of policies includes only the managed and inline policies
	//     that are attached to the role.
	//
	// For each managed policy, this operation returns the ARN and policy name. For
	// each inline policy, it returns the policy name and the entity to which it is
	// attached. Inline policies do not have an ARN. For more information about these
	// policy types, see [Managed policies and inline policies]in the IAM User Guide.
	//
	// Policies that are attached to users and roles as permissions boundaries are not
	// returned. To view which managed policy is currently used to set the permissions
	// boundary for a user or role, use the [GetUser]or [GetRole] operations.
	//
	// [GetRole]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html
	// [Evaluating policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html
	// [GetUser]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html
	ListPoliciesGrantingServiceAccess(ctx context.Context, params *iam.ListPoliciesGrantingServiceAccessInput, optFns ...func(*Options)) (*iam.ListPoliciesGrantingServiceAccessOutput, error)
	// Lists the tags that are attached to the specified IAM customer managed policy.
	// The returned list of tags is sorted by tag key. For more information about
	// tagging, see [Tagging IAM resources]in the IAM User Guide.
	//
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	ListPolicyTags(ctx context.Context, params *iam.ListPolicyTagsInput, optFns ...func(*Options)) (*iam.ListPolicyTagsOutput, error)
	// Lists information about the versions of the specified managed policy, including
	// the version that is currently set as the policy's default version.
	//
	// For more information about managed policies, see [Managed policies and inline policies] in the IAM User Guide.
	//
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	ListPolicyVersions(ctx context.Context, params *iam.ListPolicyVersionsInput, optFns ...func(*Options)) (*iam.ListPolicyVersionsOutput, error)
	// Lists the names of the inline policies that are embedded in the specified IAM
	// role.
	//
	// An IAM role can also have managed policies attached to it. To list the managed
	// policies that are attached to a role, use [ListAttachedRolePolicies]. For more information about
	// policies, see [Managed policies and inline policies]in the IAM User Guide.
	//
	// You can paginate the results using the MaxItems and Marker parameters. If there
	// are no inline policies embedded with the specified role, the operation returns
	// an empty list.
	//
	// [ListAttachedRolePolicies]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedRolePolicies.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	ListRolePolicies(ctx context.Context, params *iam.ListRolePoliciesInput, optFns ...func(*Options)) (*iam.ListRolePoliciesOutput, error)
	// Lists the tags that are attached to the specified role. The returned list of
	// tags is sorted by tag key. For more information about tagging, see [Tagging IAM resources]in the IAM
	// User Guide.
	//
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	ListRoleTags(ctx context.Context, params *iam.ListRoleTagsInput, optFns ...func(*Options)) (*iam.ListRoleTagsOutput, error)
	// Lists the IAM roles that have the specified path prefix. If there are none, the
	// operation returns an empty list. For more information about roles, see [IAM roles]in the
	// IAM User Guide.
	//
	// IAM resource-listing operations return a subset of the available attributes for
	// the resource. This operation does not return the following attributes, even
	// though they are an attribute of the returned object:
	//
	//   - PermissionsBoundary
	//
	//   - RoleLastUsed
	//
	//   - Tags
	//
	// To view all of the information for a role, see [GetRole].
	//
	// You can paginate the results using the MaxItems and Marker parameters.
	//
	// [GetRole]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html
	// [IAM roles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html
	ListRoles(ctx context.Context, params *iam.ListRolesInput, optFns ...func(*Options)) (*iam.ListRolesOutput, error)
	// Lists the tags that are attached to the specified Security Assertion Markup
	// Language (SAML) identity provider. The returned list of tags is sorted by tag
	// key. For more information, see [About SAML 2.0-based federation].
	//
	// For more information about tagging, see [Tagging IAM resources] in the IAM User Guide.
	//
	// [About SAML 2.0-based federation]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	ListSAMLProviderTags(ctx context.Context, params *iam.ListSAMLProviderTagsInput, optFns ...func(*Options)) (*iam.ListSAMLProviderTagsOutput, error)
	// Lists the SAML provider resource objects defined in IAM in the account. IAM
	// resource-listing operations return a subset of the available attributes for the
	// resource. For example, this operation does not return tags, even though they are
	// an attribute of the returned object. To view all of the information for a SAML
	// provider, see [GetSAMLProvider].
	//
	// This operation requires [Signature Version 4].
	//
	// [Signature Version 4]: https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html
	// [GetSAMLProvider]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetSAMLProvider.html
	ListSAMLProviders(ctx context.Context, params *iam.ListSAMLProvidersInput, optFns ...func(*Options)) (*iam.ListSAMLProvidersOutput, error)
	// Returns information about the SSH public keys associated with the specified IAM
	// user. If none exists, the operation returns an empty list.
	//
	// The SSH public keys returned by this operation are used only for authenticating
	// the IAM user to an CodeCommit repository. For more information about using SSH
	// keys to authenticate to an CodeCommit repository, see [Set up CodeCommit for SSH connections]in the CodeCommit User
	// Guide.
	//
	// Although each user is limited to a small number of keys, you can still paginate
	// the results using the MaxItems and Marker parameters.
	//
	// [Set up CodeCommit for SSH connections]: https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html
	ListSSHPublicKeys(ctx context.Context, params *iam.ListSSHPublicKeysInput, optFns ...func(*Options)) (*iam.ListSSHPublicKeysOutput, error)
	// Lists the tags that are attached to the specified IAM server certificate. The
	// returned list of tags is sorted by tag key. For more information about tagging,
	// see [Tagging IAM resources]in the IAM User Guide.
	//
	// For certificates in a Region supported by Certificate Manager (ACM), we
	// recommend that you don't use IAM server certificates. Instead, use ACM to
	// provision, manage, and deploy your server certificates. For more information
	// about IAM server certificates, [Working with server certificates]in the IAM User Guide.
	//
	// [Working with server certificates]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	ListServerCertificateTags(ctx context.Context, params *iam.ListServerCertificateTagsInput, optFns ...func(*Options)) (*iam.ListServerCertificateTagsOutput, error)
	// Lists the server certificates stored in IAM that have the specified path
	// prefix. If none exist, the operation returns an empty list.
	//
	// You can paginate the results using the MaxItems and Marker parameters.
	//
	// For more information about working with server certificates, see [Working with server certificates] in the IAM
	// User Guide. This topic also includes a list of Amazon Web Services services that
	// can use the server certificates that you manage with IAM.
	//
	// IAM resource-listing operations return a subset of the available attributes for
	// the resource. For example, this operation does not return tags, even though they
	// are an attribute of the returned object. To view all of the information for a
	// servercertificate, see [GetServerCertificate].
	//
	// [GetServerCertificate]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServerCertificate.html
	// [Working with server certificates]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html
	ListServerCertificates(ctx context.Context, params *iam.ListServerCertificatesInput, optFns ...func(*Options)) (*iam.ListServerCertificatesOutput, error)
	// Returns information about the service-specific credentials associated with the
	// specified IAM user. If none exists, the operation returns an empty list. The
	// service-specific credentials returned by this operation are used only for
	// authenticating the IAM user to a specific service. For more information about
	// using service-specific credentials to authenticate to an Amazon Web Services
	// service, see [Set up service-specific credentials]in the CodeCommit User Guide.
	//
	// [Set up service-specific credentials]: https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html
	ListServiceSpecificCredentials(ctx context.Context, params *iam.ListServiceSpecificCredentialsInput, optFns ...func(*Options)) (*iam.ListServiceSpecificCredentialsOutput, error)
	// Returns information about the signing certificates associated with the
	// specified IAM user. If none exists, the operation returns an empty list.
	//
	// Although each user is limited to a small number of signing certificates, you
	// can still paginate the results using the MaxItems and Marker parameters.
	//
	// If the UserName field is not specified, the user name is determined implicitly
	// based on the Amazon Web Services access key ID used to sign the request for this
	// operation. This operation works for access keys under the Amazon Web Services
	// account. Consequently, you can use this operation to manage Amazon Web Services
	// account root user credentials even if the Amazon Web Services account has no
	// associated users.
	ListSigningCertificates(ctx context.Context, params *iam.ListSigningCertificatesInput, optFns ...func(*Options)) (*iam.ListSigningCertificatesOutput, error)
	// Lists the names of the inline policies embedded in the specified IAM user.
	//
	// An IAM user can also have managed policies attached to it. To list the managed
	// policies that are attached to a user, use [ListAttachedUserPolicies]. For more information about
	// policies, see [Managed policies and inline policies]in the IAM User Guide.
	//
	// You can paginate the results using the MaxItems and Marker parameters. If there
	// are no inline policies embedded with the specified user, the operation returns
	// an empty list.
	//
	// [ListAttachedUserPolicies]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedUserPolicies.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	ListUserPolicies(ctx context.Context, params *iam.ListUserPoliciesInput, optFns ...func(*Options)) (*iam.ListUserPoliciesOutput, error)
	// Lists the tags that are attached to the specified IAM user. The returned list
	// of tags is sorted by tag key. For more information about tagging, see [Tagging IAM resources]in the
	// IAM User Guide.
	//
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	ListUserTags(ctx context.Context, params *iam.ListUserTagsInput, optFns ...func(*Options)) (*iam.ListUserTagsOutput, error)
	// Lists the IAM users that have the specified path prefix. If no path prefix is
	// specified, the operation returns all users in the Amazon Web Services account.
	// If there are none, the operation returns an empty list.
	//
	// IAM resource-listing operations return a subset of the available attributes for
	// the resource. This operation does not return the following attributes, even
	// though they are an attribute of the returned object:
	//
	//   - PermissionsBoundary
	//
	//   - Tags
	//
	// To view all of the information for a user, see [GetUser].
	//
	// You can paginate the results using the MaxItems and Marker parameters.
	//
	// [GetUser]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html
	ListUsers(ctx context.Context, params *iam.ListUsersInput, optFns ...func(*Options)) (*iam.ListUsersOutput, error)
	// Lists the virtual MFA devices defined in the Amazon Web Services account by
	// assignment status. If you do not specify an assignment status, the operation
	// returns a list of all virtual MFA devices. Assignment status can be Assigned ,
	// Unassigned , or Any .
	//
	// IAM resource-listing operations return a subset of the available attributes for
	// the resource. For example, this operation does not return tags, even though they
	// are an attribute of the returned object. To view tag information for a virtual
	// MFA device, see [ListMFADeviceTags].
	//
	// You can paginate the results using the MaxItems and Marker parameters.
	//
	// [ListMFADeviceTags]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListMFADeviceTags.html
	ListVirtualMFADevices(ctx context.Context, params *iam.ListVirtualMFADevicesInput, optFns ...func(*Options)) (*iam.ListVirtualMFADevicesOutput, error)
	// Adds or updates an inline policy document that is embedded in the specified IAM
	// group.
	//
	// A user can also have managed policies attached to it. To attach a managed
	// policy to a group, use [AttachGroupPolicy]AttachGroupPolicy . To create a new managed policy, use [CreatePolicy]
	// CreatePolicy . For information about policies, see [Managed policies and inline policies] in the IAM User Guide.
	//
	// For information about the maximum number of inline policies that you can embed
	// in a group, see [IAM and STS quotas]in the IAM User Guide.
	//
	// Because policy documents can be large, you should use POST rather than GET when
	// calling PutGroupPolicy . For general information about using the Query API with
	// IAM, see [Making query requests]in the IAM User Guide.
	//
	// [CreatePolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html
	// [IAM and STS quotas]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html
	// [Making query requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html
	// [AttachGroupPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachGroupPolicy.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	PutGroupPolicy(ctx context.Context, params *iam.PutGroupPolicyInput, optFns ...func(*Options)) (*iam.PutGroupPolicyOutput, error)
	// Adds or updates the policy that is specified as the IAM role's permissions
	// boundary. You can use an Amazon Web Services managed policy or a customer
	// managed policy to set the boundary for a role. Use the boundary to control the
	// maximum permissions that the role can have. Setting a permissions boundary is an
	// advanced feature that can affect the permissions for the role.
	//
	// You cannot set the boundary for a service-linked role.
	//
	// Policies used as permissions boundaries do not provide permissions. You must
	// also attach a permissions policy to the role. To learn how the effective
	// permissions for a role are evaluated, see [IAM JSON policy evaluation logic]in the IAM User Guide.
	//
	// [IAM JSON policy evaluation logic]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html
	PutRolePermissionsBoundary(ctx context.Context, params *iam.PutRolePermissionsBoundaryInput, optFns ...func(*Options)) (*iam.PutRolePermissionsBoundaryOutput, error)
	// Adds or updates an inline policy document that is embedded in the specified IAM
	// role.
	//
	// When you embed an inline policy in a role, the inline policy is used as part of
	// the role's access (permissions) policy. The role's trust policy is created at
	// the same time as the role, using [CreateRole]CreateRole . You can update a role's trust
	// policy using [UpdateAssumeRolePolicy]UpdateAssumeRolePolicy . For more information about roles, see [IAM roles] in
	// the IAM User Guide.
	//
	// A role can also have a managed policy attached to it. To attach a managed
	// policy to a role, use [AttachRolePolicy]AttachRolePolicy . To create a new managed policy, use [CreatePolicy]
	// CreatePolicy . For information about policies, see [Managed policies and inline policies] in the IAM User Guide.
	//
	// For information about the maximum number of inline policies that you can embed
	// with a role, see [IAM and STS quotas]in the IAM User Guide.
	//
	// Because policy documents can be large, you should use POST rather than GET when
	// calling PutRolePolicy . For general information about using the Query API with
	// IAM, see [Making query requests]in the IAM User Guide.
	//
	// [UpdateAssumeRolePolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAssumeRolePolicy.html
	// [AttachRolePolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachRolePolicy.html
	// [CreatePolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html
	// [IAM and STS quotas]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html
	// [Making query requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html
	// [IAM roles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html
	// [CreateRole]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	PutRolePolicy(ctx context.Context, params *iam.PutRolePolicyInput, optFns ...func(*Options)) (*iam.PutRolePolicyOutput, error)
	// Adds or updates the policy that is specified as the IAM user's permissions
	// boundary. You can use an Amazon Web Services managed policy or a customer
	// managed policy to set the boundary for a user. Use the boundary to control the
	// maximum permissions that the user can have. Setting a permissions boundary is an
	// advanced feature that can affect the permissions for the user.
	//
	// Policies that are used as permissions boundaries do not provide permissions.
	// You must also attach a permissions policy to the user. To learn how the
	// effective permissions for a user are evaluated, see [IAM JSON policy evaluation logic]in the IAM User Guide.
	//
	// [IAM JSON policy evaluation logic]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html
	PutUserPermissionsBoundary(ctx context.Context, params *iam.PutUserPermissionsBoundaryInput, optFns ...func(*Options)) (*iam.PutUserPermissionsBoundaryOutput, error)
	// Adds or updates an inline policy document that is embedded in the specified IAM
	// user.
	//
	// An IAM user can also have a managed policy attached to it. To attach a managed
	// policy to a user, use [AttachUserPolicy]AttachUserPolicy . To create a new managed policy, use [CreatePolicy]
	// CreatePolicy . For information about policies, see [Managed policies and inline policies] in the IAM User Guide.
	//
	// For information about the maximum number of inline policies that you can embed
	// in a user, see [IAM and STS quotas]in the IAM User Guide.
	//
	// Because policy documents can be large, you should use POST rather than GET when
	// calling PutUserPolicy . For general information about using the Query API with
	// IAM, see [Making query requests]in the IAM User Guide.
	//
	// [CreatePolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html
	// [IAM and STS quotas]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html
	// [Making query requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html
	// [AttachUserPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachUserPolicy.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	PutUserPolicy(ctx context.Context, params *iam.PutUserPolicyInput, optFns ...func(*Options)) (*iam.PutUserPolicyOutput, error)
	// Rejects a delegation request, denying the requested temporary access.
	//
	// Once a request is rejected, it cannot be accepted or updated later. Rejected
	// requests expire after 7 days.
	//
	// When rejecting a request, an optional explanation can be added using the Notes
	// request parameter.
	//
	// For more details, see [Managing Permissions for Delegation Requests].
	//
	// [Managing Permissions for Delegation Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation.html#temporary-delegation-managing-permissions
	RejectDelegationRequest(ctx context.Context, params *iam.RejectDelegationRequestInput, optFns ...func(*Options)) (*iam.RejectDelegationRequestOutput, error)
	// Removes the specified client ID (also known as audience) from the list of
	// client IDs registered for the specified IAM OpenID Connect (OIDC) provider
	// resource object.
	//
	// This operation is idempotent; it does not fail or return an error if you try to
	// remove a client ID that does not exist.
	RemoveClientIDFromOpenIDConnectProvider(ctx context.Context, params *iam.RemoveClientIDFromOpenIDConnectProviderInput, optFns ...func(*Options)) (*iam.RemoveClientIDFromOpenIDConnectProviderOutput, error)
	// Removes the specified IAM role from the specified Amazon EC2 instance profile.
	//
	// Make sure that you do not have any Amazon EC2 instances running with the role
	// you are about to remove from the instance profile. Removing a role from an
	// instance profile that is associated with a running instance might break any
	// applications running on the instance.
	//
	// For more information about roles, see [IAM roles] in the IAM User Guide. For more
	// information about instance profiles, see [Using instance profiles]in the IAM User Guide.
	//
	// [Using instance profiles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html
	// [IAM roles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html
	RemoveRoleFromInstanceProfile(ctx context.Context, params *iam.RemoveRoleFromInstanceProfileInput, optFns ...func(*Options)) (*iam.RemoveRoleFromInstanceProfileOutput, error)
	// Removes the specified user from the specified group.
	RemoveUserFromGroup(ctx context.Context, params *iam.RemoveUserFromGroupInput, optFns ...func(*Options)) (*iam.RemoveUserFromGroupOutput, error)
	// Resets the password for a service-specific credential. The new password is
	// Amazon Web Services generated and cryptographically strong. It cannot be
	// configured by the user. Resetting the password immediately invalidates the
	// previous password associated with this user.
	ResetServiceSpecificCredential(ctx context.Context, params *iam.ResetServiceSpecificCredentialInput, optFns ...func(*Options)) (*iam.ResetServiceSpecificCredentialOutput, error)
	// Synchronizes the specified MFA device with its IAM resource object on the
	// Amazon Web Services servers.
	//
	// For more information about creating and working with virtual MFA devices, see [Using a virtual MFA device]
	// in the IAM User Guide.
	//
	// [Using a virtual MFA device]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html
	ResyncMFADevice(ctx context.Context, params *iam.ResyncMFADeviceInput, optFns ...func(*Options)) (*iam.ResyncMFADeviceOutput, error)
	// Sends the exchange token for an accepted delegation request.
	//
	// The exchange token is sent to the partner via an asynchronous notification
	// channel, established by the partner.
	//
	// The delegation request must be in the ACCEPTED state when calling this API.
	// After the SendDelegationToken API call is successful, the request transitions
	// to a FINALIZED state and cannot be rolled back. However, a user may reject an
	// accepted request before the SendDelegationToken API is called.
	//
	// For more details, see [Managing Permissions for Delegation Requests].
	//
	// [Managing Permissions for Delegation Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation.html#temporary-delegation-managing-permissions
	SendDelegationToken(ctx context.Context, params *iam.SendDelegationTokenInput, optFns ...func(*Options)) (*iam.SendDelegationTokenOutput, error)
	// Sets the specified version of the specified policy as the policy's default
	// (operative) version.
	//
	// This operation affects all users, groups, and roles that the policy is attached
	// to. To list the users, groups, and roles that the policy is attached to, use [ListEntitiesForPolicy].
	//
	// For information about managed policies, see [Managed policies and inline policies] in the IAM User Guide.
	//
	// [ListEntitiesForPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html
	// [Managed policies and inline policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
	SetDefaultPolicyVersion(ctx context.Context, params *iam.SetDefaultPolicyVersionInput, optFns ...func(*Options)) (*iam.SetDefaultPolicyVersionOutput, error)
	// Sets the specified version of the global endpoint token as the token version
	// used for the Amazon Web Services account.
	//
	// By default, Security Token Service (STS) is available as a global service, and
	// all STS requests go to a single endpoint at https://sts.amazonaws.com . Amazon
	// Web Services recommends using Regional STS endpoints to reduce latency, build in
	// redundancy, and increase session token availability. For information about
	// Regional endpoints for STS, see [Security Token Service endpoints and quotas]in the Amazon Web Services General Reference.
	//
	// If you make an STS call to the global endpoint, the resulting session tokens
	// might be valid in some Regions but not others. It depends on the version that is
	// set in this operation. Version 1 tokens are valid only in Amazon Web Services
	// Regions that are available by default. These tokens do not work in manually
	// enabled Regions, such as Asia Pacific (Hong Kong). Version 2 tokens are valid in
	// all Regions. However, version 2 tokens are longer and might affect systems where
	// you temporarily store tokens. For information, see [Activating and deactivating STS in an Amazon Web Services Region]in the IAM User Guide.
	//
	// To view the current session token version, see the GlobalEndpointTokenVersion
	// entry in the response of the [GetAccountSummary]operation.
	//
	// [Activating and deactivating STS in an Amazon Web Services Region]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html
	// [GetAccountSummary]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountSummary.html
	// [Security Token Service endpoints and quotas]: https://docs.aws.amazon.com/general/latest/gr/sts.html
	SetSecurityTokenServicePreferences(ctx context.Context, params *iam.SetSecurityTokenServicePreferencesInput, optFns ...func(*Options)) (*iam.SetSecurityTokenServicePreferencesOutput, error)
	// Simulate how a set of IAM policies and optionally a resource-based policy works
	// with a list of API operations and Amazon Web Services resources to determine the
	// policies' effective permissions. The policies are provided as strings.
	//
	// The simulation does not perform the API operations; it only checks the
	// authorization to determine if the simulated policies allow or deny the
	// operations. You can simulate resources that don't exist in your account.
	//
	// If you want to simulate existing policies that are attached to an IAM user,
	// group, or role, use [SimulatePrincipalPolicy]instead.
	//
	// Context keys are variables that are maintained by Amazon Web Services and its
	// services and which provide details about the context of an API query request.
	// You can use the Condition element of an IAM policy to evaluate context keys. To
	// get the list of context keys that the policies require for correct simulation,
	// use [GetContextKeysForCustomPolicy].
	//
	// If the output is long, you can use MaxItems and Marker parameters to paginate
	// the results.
	//
	// The IAM policy simulator evaluates statements in the identity-based policy and
	// the inputs that you provide during simulation. The policy simulator results can
	// differ from your live Amazon Web Services environment. We recommend that you
	// check your policies against your live Amazon Web Services environment after
	// testing using the policy simulator to confirm that you have the desired results.
	// For more information about using the policy simulator, see [Testing IAM policies with the IAM policy simulator]in the IAM User
	// Guide.
	//
	// [GetContextKeysForCustomPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html
	// [Testing IAM policies with the IAM policy simulator]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html
	// [SimulatePrincipalPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html
	SimulateCustomPolicy(ctx context.Context, params *iam.SimulateCustomPolicyInput, optFns ...func(*Options)) (*iam.SimulateCustomPolicyOutput, error)
	// Simulate how a set of IAM policies attached to an IAM entity works with a list
	// of API operations and Amazon Web Services resources to determine the policies'
	// effective permissions. The entity can be an IAM user, group, or role. If you
	// specify a user, then the simulation also includes all of the policies that are
	// attached to groups that the user belongs to. You can simulate resources that
	// don't exist in your account.
	//
	// You can optionally include a list of one or more additional policies specified
	// as strings to include in the simulation. If you want to simulate only policies
	// specified as strings, use [SimulateCustomPolicy]instead.
	//
	// You can also optionally include one resource-based policy to be evaluated with
	// each of the resources included in the simulation for IAM users only.
	//
	// The simulation does not perform the API operations; it only checks the
	// authorization to determine if the simulated policies allow or deny the
	// operations.
	//
	// Note: This operation discloses information about the permissions granted to
	// other users. If you do not want users to see other user's permissions, then
	// consider allowing them to use [SimulateCustomPolicy]instead.
	//
	// Context keys are variables maintained by Amazon Web Services and its services
	// that provide details about the context of an API query request. You can use the
	// Condition element of an IAM policy to evaluate context keys. To get the list of
	// context keys that the policies require for correct simulation, use [GetContextKeysForPrincipalPolicy].
	//
	// If the output is long, you can use the MaxItems and Marker parameters to
	// paginate the results.
	//
	// The IAM policy simulator evaluates statements in the identity-based policy and
	// the inputs that you provide during simulation. The policy simulator results can
	// differ from your live Amazon Web Services environment. We recommend that you
	// check your policies against your live Amazon Web Services environment after
	// testing using the policy simulator to confirm that you have the desired results.
	// For more information about using the policy simulator, see [Testing IAM policies with the IAM policy simulator]in the IAM User
	// Guide.
	//
	// [GetContextKeysForPrincipalPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html
	// [Testing IAM policies with the IAM policy simulator]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html
	// [SimulateCustomPolicy]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html
	SimulatePrincipalPolicy(ctx context.Context, params *iam.SimulatePrincipalPolicyInput, optFns ...func(*Options)) (*iam.SimulatePrincipalPolicyOutput, error)
	// Adds one or more tags to an IAM instance profile. If a tag with the same key
	// name already exists, then that tag is overwritten with the new value.
	//
	// Each tag consists of a key name and an associated value. By assigning tags to
	// your resources, you can do the following:
	//
	//   - Administrative grouping and discovery - Attach tags to resources to aid in
	//     organization and search. For example, you could search for all resources with
	//     the key name Project and the value MyImportantProject. Or search for all
	//     resources with the key name Cost Center and the value 41200.
	//
	//   - Access control - Include tags in IAM user-based and resource-based
	//     policies. You can use tags to restrict access to only an IAM instance profile
	//     that has a specified tag attached. For examples of policies that show how to use
	//     tags to control access, see [Control access using IAM tags]in the IAM User Guide.
	//
	//   - If any one of the tags is invalid or if you exceed the allowed maximum
	//     number of tags, then the entire request fails and the resource is not created.
	//     For more information about tagging, see [Tagging IAM resources]in the IAM User Guide.
	//
	//   - Amazon Web Services always interprets the tag Value as a single string. If
	//     you need to store an array, you can store comma-separated values in the string.
	//     However, you must interpret the value in your code.
	//
	// [Control access using IAM tags]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	TagInstanceProfile(ctx context.Context, params *iam.TagInstanceProfileInput, optFns ...func(*Options)) (*iam.TagInstanceProfileOutput, error)
	// Adds one or more tags to an IAM virtual multi-factor authentication (MFA)
	// device. If a tag with the same key name already exists, then that tag is
	// overwritten with the new value.
	//
	// A tag consists of a key name and an associated value. By assigning tags to your
	// resources, you can do the following:
	//
	//   - Administrative grouping and discovery - Attach tags to resources to aid in
	//     organization and search. For example, you could search for all resources with
	//     the key name Project and the value MyImportantProject. Or search for all
	//     resources with the key name Cost Center and the value 41200.
	//
	//   - Access control - Include tags in IAM user-based and resource-based
	//     policies. You can use tags to restrict access to only an IAM virtual MFA device
	//     that has a specified tag attached. For examples of policies that show how to use
	//     tags to control access, see [Control access using IAM tags]in the IAM User Guide.
	//
	//   - If any one of the tags is invalid or if you exceed the allowed maximum
	//     number of tags, then the entire request fails and the resource is not created.
	//     For more information about tagging, see [Tagging IAM resources]in the IAM User Guide.
	//
	//   - Amazon Web Services always interprets the tag Value as a single string. If
	//     you need to store an array, you can store comma-separated values in the string.
	//     However, you must interpret the value in your code.
	//
	// [Control access using IAM tags]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	TagMFADevice(ctx context.Context, params *iam.TagMFADeviceInput, optFns ...func(*Options)) (*iam.TagMFADeviceOutput, error)
	// Adds one or more tags to an OpenID Connect (OIDC)-compatible identity provider.
	// For more information about these providers, see [About web identity federation]. If a tag with the same key
	// name already exists, then that tag is overwritten with the new value.
	//
	// A tag consists of a key name and an associated value. By assigning tags to your
	// resources, you can do the following:
	//
	//   - Administrative grouping and discovery - Attach tags to resources to aid in
	//     organization and search. For example, you could search for all resources with
	//     the key name Project and the value MyImportantProject. Or search for all
	//     resources with the key name Cost Center and the value 41200.
	//
	//   - Access control - Include tags in IAM identity-based and resource-based
	//     policies. You can use tags to restrict access to only an OIDC provider that has
	//     a specified tag attached. For examples of policies that show how to use tags to
	//     control access, see [Control access using IAM tags]in the IAM User Guide.
	//
	//   - If any one of the tags is invalid or if you exceed the allowed maximum
	//     number of tags, then the entire request fails and the resource is not created.
	//     For more information about tagging, see [Tagging IAM resources]in the IAM User Guide.
	//
	//   - Amazon Web Services always interprets the tag Value as a single string. If
	//     you need to store an array, you can store comma-separated values in the string.
	//     However, you must interpret the value in your code.
	//
	// [Control access using IAM tags]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	// [About web identity federation]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html
	TagOpenIDConnectProvider(ctx context.Context, params *iam.TagOpenIDConnectProviderInput, optFns ...func(*Options)) (*iam.TagOpenIDConnectProviderOutput, error)
	// Adds one or more tags to an IAM customer managed policy. If a tag with the same
	// key name already exists, then that tag is overwritten with the new value.
	//
	// A tag consists of a key name and an associated value. By assigning tags to your
	// resources, you can do the following:
	//
	//   - Administrative grouping and discovery - Attach tags to resources to aid in
	//     organization and search. For example, you could search for all resources with
	//     the key name Project and the value MyImportantProject. Or search for all
	//     resources with the key name Cost Center and the value 41200.
	//
	//   - Access control - Include tags in IAM user-based and resource-based
	//     policies. You can use tags to restrict access to only an IAM customer managed
	//     policy that has a specified tag attached. For examples of policies that show how
	//     to use tags to control access, see [Control access using IAM tags]in the IAM User Guide.
	//
	//   - If any one of the tags is invalid or if you exceed the allowed maximum
	//     number of tags, then the entire request fails and the resource is not created.
	//     For more information about tagging, see [Tagging IAM resources]in the IAM User Guide.
	//
	//   - Amazon Web Services always interprets the tag Value as a single string. If
	//     you need to store an array, you can store comma-separated values in the string.
	//     However, you must interpret the value in your code.
	//
	// [Control access using IAM tags]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	TagPolicy(ctx context.Context, params *iam.TagPolicyInput, optFns ...func(*Options)) (*iam.TagPolicyOutput, error)
	// Adds one or more tags to an IAM role. The role can be a regular role or a
	// service-linked role. If a tag with the same key name already exists, then that
	// tag is overwritten with the new value.
	//
	// A tag consists of a key name and an associated value. By assigning tags to your
	// resources, you can do the following:
	//
	//   - Administrative grouping and discovery - Attach tags to resources to aid in
	//     organization and search. For example, you could search for all resources with
	//     the key name Project and the value MyImportantProject. Or search for all
	//     resources with the key name Cost Center and the value 41200.
	//
	//   - Access control - Include tags in IAM user-based and resource-based
	//     policies. You can use tags to restrict access to only an IAM role that has a
	//     specified tag attached. You can also restrict access to only those resources
	//     that have a certain tag attached. For examples of policies that show how to use
	//     tags to control access, see [Control access using IAM tags]in the IAM User Guide.
	//
	//   - Cost allocation - Use tags to help track which individuals and teams are
	//     using which Amazon Web Services resources.
	//
	//   - If any one of the tags is invalid or if you exceed the allowed maximum
	//     number of tags, then the entire request fails and the resource is not created.
	//     For more information about tagging, see [Tagging IAM resources]in the IAM User Guide.
	//
	//   - Amazon Web Services always interprets the tag Value as a single string. If
	//     you need to store an array, you can store comma-separated values in the string.
	//     However, you must interpret the value in your code.
	//
	// For more information about tagging, see [Tagging IAM identities] in the IAM User Guide.
	//
	// [Control access using IAM tags]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	// [Tagging IAM identities]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	TagRole(ctx context.Context, params *iam.TagRoleInput, optFns ...func(*Options)) (*iam.TagRoleOutput, error)
	// Adds one or more tags to a Security Assertion Markup Language (SAML) identity
	// provider. For more information about these providers, see [About SAML 2.0-based federation]. If a tag with the
	// same key name already exists, then that tag is overwritten with the new value.
	//
	// A tag consists of a key name and an associated value. By assigning tags to your
	// resources, you can do the following:
	//
	//   - Administrative grouping and discovery - Attach tags to resources to aid in
	//     organization and search. For example, you could search for all resources with
	//     the key name Project and the value MyImportantProject. Or search for all
	//     resources with the key name Cost Center and the value 41200.
	//
	//   - Access control - Include tags in IAM user-based and resource-based
	//     policies. You can use tags to restrict access to only a SAML identity provider
	//     that has a specified tag attached. For examples of policies that show how to use
	//     tags to control access, see [Control access using IAM tags]in the IAM User Guide.
	//
	//   - If any one of the tags is invalid or if you exceed the allowed maximum
	//     number of tags, then the entire request fails and the resource is not created.
	//     For more information about tagging, see [Tagging IAM resources]in the IAM User Guide.
	//
	//   - Amazon Web Services always interprets the tag Value as a single string. If
	//     you need to store an array, you can store comma-separated values in the string.
	//     However, you must interpret the value in your code.
	//
	// [Control access using IAM tags]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html
	// [About SAML 2.0-based federation]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	TagSAMLProvider(ctx context.Context, params *iam.TagSAMLProviderInput, optFns ...func(*Options)) (*iam.TagSAMLProviderOutput, error)
	// Adds one or more tags to an IAM server certificate. If a tag with the same key
	// name already exists, then that tag is overwritten with the new value.
	//
	// For certificates in a Region supported by Certificate Manager (ACM), we
	// recommend that you don't use IAM server certificates. Instead, use ACM to
	// provision, manage, and deploy your server certificates. For more information
	// about IAM server certificates, [Working with server certificates]in the IAM User Guide.
	//
	// A tag consists of a key name and an associated value. By assigning tags to your
	// resources, you can do the following:
	//
	//   - Administrative grouping and discovery - Attach tags to resources to aid in
	//     organization and search. For example, you could search for all resources with
	//     the key name Project and the value MyImportantProject. Or search for all
	//     resources with the key name Cost Center and the value 41200.
	//
	//   - Access control - Include tags in IAM user-based and resource-based
	//     policies. You can use tags to restrict access to only a server certificate that
	//     has a specified tag attached. For examples of policies that show how to use tags
	//     to control access, see [Control access using IAM tags]in the IAM User Guide.
	//
	//   - Cost allocation - Use tags to help track which individuals and teams are
	//     using which Amazon Web Services resources.
	//
	//   - If any one of the tags is invalid or if you exceed the allowed maximum
	//     number of tags, then the entire request fails and the resource is not created.
	//     For more information about tagging, see [Tagging IAM resources]in the IAM User Guide.
	//
	//   - Amazon Web Services always interprets the tag Value as a single string. If
	//     you need to store an array, you can store comma-separated values in the string.
	//     However, you must interpret the value in your code.
	//
	// [Control access using IAM tags]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html
	// [Working with server certificates]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	TagServerCertificate(ctx context.Context, params *iam.TagServerCertificateInput, optFns ...func(*Options)) (*iam.TagServerCertificateOutput, error)
	// Adds one or more tags to an IAM user. If a tag with the same key name already
	// exists, then that tag is overwritten with the new value.
	//
	// A tag consists of a key name and an associated value. By assigning tags to your
	// resources, you can do the following:
	//
	//   - Administrative grouping and discovery - Attach tags to resources to aid in
	//     organization and search. For example, you could search for all resources with
	//     the key name Project and the value MyImportantProject. Or search for all
	//     resources with the key name Cost Center and the value 41200.
	//
	//   - Access control - Include tags in IAM identity-based and resource-based
	//     policies. You can use tags to restrict access to only an IAM requesting user
	//     that has a specified tag attached. You can also restrict access to only those
	//     resources that have a certain tag attached. For examples of policies that show
	//     how to use tags to control access, see [Control access using IAM tags]in the IAM User Guide.
	//
	//   - Cost allocation - Use tags to help track which individuals and teams are
	//     using which Amazon Web Services resources.
	//
	//   - If any one of the tags is invalid or if you exceed the allowed maximum
	//     number of tags, then the entire request fails and the resource is not created.
	//     For more information about tagging, see [Tagging IAM resources]in the IAM User Guide.
	//
	//   - Amazon Web Services always interprets the tag Value as a single string. If
	//     you need to store an array, you can store comma-separated values in the string.
	//     However, you must interpret the value in your code.
	//
	// For more information about tagging, see [Tagging IAM identities] in the IAM User Guide.
	//
	// [Control access using IAM tags]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	// [Tagging IAM identities]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	TagUser(ctx context.Context, params *iam.TagUserInput, optFns ...func(*Options)) (*iam.TagUserOutput, error)
	// Removes the specified tags from the IAM instance profile. For more information
	// about tagging, see [Tagging IAM resources]in the IAM User Guide.
	//
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	UntagInstanceProfile(ctx context.Context, params *iam.UntagInstanceProfileInput, optFns ...func(*Options)) (*iam.UntagInstanceProfileOutput, error)
	// Removes the specified tags from the IAM virtual multi-factor authentication
	// (MFA) device. For more information about tagging, see [Tagging IAM resources]in the IAM User Guide.
	//
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	UntagMFADevice(ctx context.Context, params *iam.UntagMFADeviceInput, optFns ...func(*Options)) (*iam.UntagMFADeviceOutput, error)
	// Removes the specified tags from the specified OpenID Connect (OIDC)-compatible
	// identity provider in IAM. For more information about OIDC providers, see [About web identity federation]. For
	// more information about tagging, see [Tagging IAM resources]in the IAM User Guide.
	//
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	// [About web identity federation]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html
	UntagOpenIDConnectProvider(ctx context.Context, params *iam.UntagOpenIDConnectProviderInput, optFns ...func(*Options)) (*iam.UntagOpenIDConnectProviderOutput, error)
	// Removes the specified tags from the customer managed policy. For more
	// information about tagging, see [Tagging IAM resources]in the IAM User Guide.
	//
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	UntagPolicy(ctx context.Context, params *iam.UntagPolicyInput, optFns ...func(*Options)) (*iam.UntagPolicyOutput, error)
	// Removes the specified tags from the role. For more information about tagging,
	// see [Tagging IAM resources]in the IAM User Guide.
	//
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	UntagRole(ctx context.Context, params *iam.UntagRoleInput, optFns ...func(*Options)) (*iam.UntagRoleOutput, error)
	// Removes the specified tags from the specified Security Assertion Markup
	// Language (SAML) identity provider in IAM. For more information about these
	// providers, see [About web identity federation]. For more information about tagging, see [Tagging IAM resources] in the IAM User Guide.
	//
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	// [About web identity federation]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html
	UntagSAMLProvider(ctx context.Context, params *iam.UntagSAMLProviderInput, optFns ...func(*Options)) (*iam.UntagSAMLProviderOutput, error)
	// Removes the specified tags from the IAM server certificate. For more
	// information about tagging, see [Tagging IAM resources]in the IAM User Guide.
	//
	// For certificates in a Region supported by Certificate Manager (ACM), we
	// recommend that you don't use IAM server certificates. Instead, use ACM to
	// provision, manage, and deploy your server certificates. For more information
	// about IAM server certificates, [Working with server certificates]in the IAM User Guide.
	//
	// [Working with server certificates]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	UntagServerCertificate(ctx context.Context, params *iam.UntagServerCertificateInput, optFns ...func(*Options)) (*iam.UntagServerCertificateOutput, error)
	// Removes the specified tags from the user. For more information about tagging,
	// see [Tagging IAM resources]in the IAM User Guide.
	//
	// [Tagging IAM resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
	UntagUser(ctx context.Context, params *iam.UntagUserInput, optFns ...func(*Options)) (*iam.UntagUserOutput, error)
	// Changes the status of the specified access key from Active to Inactive, or vice
	// versa. This operation can be used to disable a user's key as part of a key
	// rotation workflow.
	//
	// If the UserName is not specified, the user name is determined implicitly based
	// on the Amazon Web Services access key ID used to sign the request. If a
	// temporary access key is used, then UserName is required. If a long-term key is
	// assigned to the user, then UserName is not required. This operation works for
	// access keys under the Amazon Web Services account. Consequently, you can use
	// this operation to manage Amazon Web Services account root user credentials even
	// if the Amazon Web Services account has no associated users.
	//
	// For information about rotating keys, see [Managing keys and certificates] in the IAM User Guide.
	//
	// [Managing keys and certificates]: https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingCredentials.html
	UpdateAccessKey(ctx context.Context, params *iam.UpdateAccessKeyInput, optFns ...func(*Options)) (*iam.UpdateAccessKeyOutput, error)
	// Updates the password policy settings for the Amazon Web Services account.
	//
	// This operation does not support partial updates. No parameters are required,
	// but if you do not specify a parameter, that parameter's value reverts to its
	// default value. See the Request Parameters section for each parameter's default
	// value. Also note that some parameters do not allow the default parameter to be
	// explicitly set. Instead, to invoke the default value, do not include that
	// parameter when you invoke the operation.
	//
	// For more information about using a password policy, see [Managing an IAM password policy] in the IAM User Guide.
	//
	// [Managing an IAM password policy]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html
	UpdateAccountPasswordPolicy(ctx context.Context, params *iam.UpdateAccountPasswordPolicyInput, optFns ...func(*Options)) (*iam.UpdateAccountPasswordPolicyOutput, error)
	// Updates the policy that grants an IAM entity permission to assume a role. This
	// is typically referred to as the "role trust policy". For more information about
	// roles, see [Using roles to delegate permissions and federate identities].
	//
	// [Using roles to delegate permissions and federate identities]: https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html
	UpdateAssumeRolePolicy(ctx context.Context, params *iam.UpdateAssumeRolePolicyInput, optFns ...func(*Options)) (*iam.UpdateAssumeRolePolicyOutput, error)
	// Updates an existing delegation request with additional information. When the
	// delegation request is updated, it reaches the PENDING_APPROVAL state.
	//
	// Once a delegation request has an owner, that owner gets a default permission to
	// update the delegation request. For more details, see [Managing Permissions for Delegation Requests].
	//
	// [Managing Permissions for Delegation Requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-temporary-delegation.html#temporary-delegation-managing-permissions
	UpdateDelegationRequest(ctx context.Context, params *iam.UpdateDelegationRequestInput, optFns ...func(*Options)) (*iam.UpdateDelegationRequestOutput, error)
	// Updates the name and/or the path of the specified IAM group.
	//
	// You should understand the implications of changing a group's path or name. For
	// more information, see [Renaming users and groups]in the IAM User Guide.
	//
	// The person making the request (the principal), must have permission to change
	// the role group with the old name and the new name. For example, to change the
	// group named Managers to MGRs , the principal must have a policy that allows them
	// to update both groups. If the principal has permission to update the Managers
	// group, but not the MGRs group, then the update fails. For more information
	// about permissions, see [Access management].
	//
	// [Access management]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html
	// [Renaming users and groups]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_WorkingWithGroupsAndUsers.html
	UpdateGroup(ctx context.Context, params *iam.UpdateGroupInput, optFns ...func(*Options)) (*iam.UpdateGroupOutput, error)
	// Changes the password for the specified IAM user. You can use the CLI, the
	// Amazon Web Services API, or the Users page in the IAM console to change the
	// password for any IAM user. Use [ChangePassword]to change your own password in the My Security
	// Credentials page in the Amazon Web Services Management Console.
	//
	// For more information about modifying passwords, see [Managing passwords] in the IAM User Guide.
	//
	// [ChangePassword]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html
	// [Managing passwords]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html
	UpdateLoginProfile(ctx context.Context, params *iam.UpdateLoginProfileInput, optFns ...func(*Options)) (*iam.UpdateLoginProfileOutput, error)
	// Replaces the existing list of server certificate thumbprints associated with an
	// OpenID Connect (OIDC) provider resource object with a new list of thumbprints.
	//
	// The list that you pass with this operation completely replaces the existing
	// list of thumbprints. (The lists are not merged.)
	//
	// Typically, you need to update a thumbprint only when the identity provider
	// certificate changes, which occurs rarely. However, if the provider's certificate
	// does change, any attempt to assume an IAM role that specifies the OIDC provider
	// as a principal fails until the certificate thumbprint is updated.
	//
	// Amazon Web Services secures communication with OIDC identity providers (IdPs)
	// using our library of trusted root certificate authorities (CAs) to verify the
	// JSON Web Key Set (JWKS) endpoint's TLS certificate. If your OIDC IdP relies on a
	// certificate that is not signed by one of these trusted CAs, only then we secure
	// communication using the thumbprints set in the IdP's configuration.
	//
	// Trust for the OIDC provider is derived from the provider certificate and is
	// validated by the thumbprint. Therefore, it is best to limit access to the
	// UpdateOpenIDConnectProviderThumbprint operation to highly privileged users.
	UpdateOpenIDConnectProviderThumbprint(ctx context.Context, params *iam.UpdateOpenIDConnectProviderThumbprintInput, optFns ...func(*Options)) (*iam.UpdateOpenIDConnectProviderThumbprintOutput, error)
	// Updates the description or maximum session duration setting of a role.
	UpdateRole(ctx context.Context, params *iam.UpdateRoleInput, optFns ...func(*Options)) (*iam.UpdateRoleOutput, error)
	// Use [UpdateRole] instead.
	//
	// Modifies only the description of a role. This operation performs the same
	// function as the Description parameter in the UpdateRole operation.
	//
	// [UpdateRole]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRole.html
	UpdateRoleDescription(ctx context.Context, params *iam.UpdateRoleDescriptionInput, optFns ...func(*Options)) (*iam.UpdateRoleDescriptionOutput, error)
	// Updates the metadata document, SAML encryption settings, and private keys for
	// an existing SAML provider. To rotate private keys, add your new private key and
	// then remove the old key in a separate request.
	UpdateSAMLProvider(ctx context.Context, params *iam.UpdateSAMLProviderInput, optFns ...func(*Options)) (*iam.UpdateSAMLProviderOutput, error)
	// Sets the status of an IAM user's SSH public key to active or inactive. SSH
	// public keys that are inactive cannot be used for authentication. This operation
	// can be used to disable a user's SSH public key as part of a key rotation work
	// flow.
	//
	// The SSH public key affected by this operation is used only for authenticating
	// the associated IAM user to an CodeCommit repository. For more information about
	// using SSH keys to authenticate to an CodeCommit repository, see [Set up CodeCommit for SSH connections]in the
	// CodeCommit User Guide.
	//
	// [Set up CodeCommit for SSH connections]: https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html
	UpdateSSHPublicKey(ctx context.Context, params *iam.UpdateSSHPublicKeyInput, optFns ...func(*Options)) (*iam.UpdateSSHPublicKeyOutput, error)
	// Updates the name and/or the path of the specified server certificate stored in
	// IAM.
	//
	// For more information about working with server certificates, see [Working with server certificates] in the IAM
	// User Guide. This topic also includes a list of Amazon Web Services services that
	// can use the server certificates that you manage with IAM.
	//
	// You should understand the implications of changing a server certificate's path
	// or name. For more information, see [Renaming a server certificate]in the IAM User Guide.
	//
	// The person making the request (the principal), must have permission to change
	// the server certificate with the old name and the new name. For example, to
	// change the certificate named ProductionCert to ProdCert , the principal must
	// have a policy that allows them to update both certificates. If the principal has
	// permission to update the ProductionCert group, but not the ProdCert
	// certificate, then the update fails. For more information about permissions, see [Access management]
	// in the IAM User Guide.
	//
	// [Renaming a server certificate]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs_manage.html#RenamingServerCerts
	// [Access management]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html
	// [Working with server certificates]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html
	UpdateServerCertificate(ctx context.Context, params *iam.UpdateServerCertificateInput, optFns ...func(*Options)) (*iam.UpdateServerCertificateOutput, error)
	// Sets the status of a service-specific credential to Active or Inactive .
	// Service-specific credentials that are inactive cannot be used for authentication
	// to the service. This operation can be used to disable a user's service-specific
	// credential as part of a credential rotation work flow.
	UpdateServiceSpecificCredential(ctx context.Context, params *iam.UpdateServiceSpecificCredentialInput, optFns ...func(*Options)) (*iam.UpdateServiceSpecificCredentialOutput, error)
	// Changes the status of the specified user signing certificate from active to
	// disabled, or vice versa. This operation can be used to disable an IAM user's
	// signing certificate as part of a certificate rotation work flow.
	//
	// If the UserName field is not specified, the user name is determined implicitly
	// based on the Amazon Web Services access key ID used to sign the request. This
	// operation works for access keys under the Amazon Web Services account.
	// Consequently, you can use this operation to manage Amazon Web Services account
	// root user credentials even if the Amazon Web Services account has no associated
	// users.
	UpdateSigningCertificate(ctx context.Context, params *iam.UpdateSigningCertificateInput, optFns ...func(*Options)) (*iam.UpdateSigningCertificateOutput, error)
	// Updates the name and/or the path of the specified IAM user.
	//
	// You should understand the implications of changing an IAM user's path or name.
	// For more information, see [Renaming an IAM user]and [Renaming an IAM group] in the IAM User Guide.
	//
	// To change a user name, the requester must have appropriate permissions on both
	// the source object and the target object. For example, to change Bob to Robert,
	// the entity making the request must have permission on Bob and Robert, or must
	// have permission on all (*). For more information about permissions, see [Permissions and policies].
	//
	// [Renaming an IAM user]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_renaming
	// [Renaming an IAM group]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_manage_rename.html
	// [Permissions and policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/PermissionsAndPolicies.html
	UpdateUser(ctx context.Context, params *iam.UpdateUserInput, optFns ...func(*Options)) (*iam.UpdateUserOutput, error)
	// Uploads an SSH public key and associates it with the specified IAM user.
	//
	// The SSH public key uploaded by this operation can be used only for
	// authenticating the associated IAM user to an CodeCommit repository. For more
	// information about using SSH keys to authenticate to an CodeCommit repository,
	// see [Set up CodeCommit for SSH connections]in the CodeCommit User Guide.
	//
	// [Set up CodeCommit for SSH connections]: https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html
	UploadSSHPublicKey(ctx context.Context, params *iam.UploadSSHPublicKeyInput, optFns ...func(*Options)) (*iam.UploadSSHPublicKeyOutput, error)
	// Uploads a server certificate entity for the Amazon Web Services account. The
	// server certificate entity includes a public key certificate, a private key, and
	// an optional certificate chain, which should all be PEM-encoded.
	//
	// We recommend that you use [Certificate Manager] to provision, manage, and deploy your server
	// certificates. With ACM you can request a certificate, deploy it to Amazon Web
	// Services resources, and let ACM handle certificate renewals for you.
	// Certificates provided by ACM are free. For more information about using ACM, see
	// the [Certificate Manager User Guide].
	//
	// For more information about working with server certificates, see [Working with server certificates] in the IAM
	// User Guide. This topic includes a list of Amazon Web Services services that can
	// use the server certificates that you manage with IAM.
	//
	// For information about the number of server certificates you can upload, see [IAM and STS quotas] in
	// the IAM User Guide.
	//
	// Because the body of the public key certificate, private key, and the
	// certificate chain can be large, you should use POST rather than GET when calling
	// UploadServerCertificate . For information about setting up signatures and
	// authorization through the API, see [Signing Amazon Web Services API requests]in the Amazon Web Services General
	// Reference. For general information about using the Query API with IAM, see [Calling the API by making HTTP query requests]in
	// the IAM User Guide.
	//
	// [Certificate Manager]: https://docs.aws.amazon.com/acm/
	// [Certificate Manager User Guide]: https://docs.aws.amazon.com/acm/latest/userguide/
	// [IAM and STS quotas]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html
	// [Working with server certificates]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html
	// [Signing Amazon Web Services API requests]: https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html
	// [Calling the API by making HTTP query requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/programming.html
	UploadServerCertificate(ctx context.Context, params *iam.UploadServerCertificateInput, optFns ...func(*Options)) (*iam.UploadServerCertificateOutput, error)
	// Uploads an X.509 signing certificate and associates it with the specified IAM
	// user. Some Amazon Web Services services require you to use certificates to
	// validate requests that are signed with a corresponding private key. When you
	// upload the certificate, its default status is Active .
	//
	// For information about when you would use an X.509 signing certificate, see [Managing server certificates in IAM] in
	// the IAM User Guide.
	//
	// If the UserName is not specified, the IAM user name is determined implicitly
	// based on the Amazon Web Services access key ID used to sign the request. This
	// operation works for access keys under the Amazon Web Services account.
	// Consequently, you can use this operation to manage Amazon Web Services account
	// root user credentials even if the Amazon Web Services account has no associated
	// users.
	//
	// Because the body of an X.509 certificate can be large, you should use POST
	// rather than GET when calling UploadSigningCertificate . For information about
	// setting up signatures and authorization through the API, see [Signing Amazon Web Services API requests]in the Amazon Web
	// Services General Reference. For general information about using the Query API
	// with IAM, see [Making query requests]in the IAM User Guide.
	//
	// [Managing server certificates in IAM]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html
	// [Making query requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html
	// [Signing Amazon Web Services API requests]: https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html
	UploadSigningCertificate(ctx context.Context, params *iam.UploadSigningCertificateInput, optFns ...func(*Options)) (*iam.UploadSigningCertificateOutput, error)
}

IAM provides an interface to the AWS IAM service.

type Outposts added in v0.112.0

type Outposts interface {
	// Options returns a copy of the client configuration.
	//
	// Callers SHOULD NOT perform mutations on any inner structures within client
	// config. Config overrides should instead be made on a per-operation basis through
	// functional options.
	Options() outposts.Options
	// Cancels the capacity task.
	CancelCapacityTask(ctx context.Context, params *outposts.CancelCapacityTaskInput, optFns ...func(*Options)) (*outposts.CancelCapacityTaskOutput, error)
	// Cancels the specified order for an Outpost.
	CancelOrder(ctx context.Context, params *outposts.CancelOrderInput, optFns ...func(*Options)) (*outposts.CancelOrderOutput, error)
	// Creates an order for an Outpost.
	CreateOrder(ctx context.Context, params *outposts.CreateOrderInput, optFns ...func(*Options)) (*outposts.CreateOrderOutput, error)
	// Creates an Outpost.
	//
	// You can specify either an Availability one or an AZ ID.
	CreateOutpost(ctx context.Context, params *outposts.CreateOutpostInput, optFns ...func(*Options)) (*outposts.CreateOutpostOutput, error)
	// Creates a site for an Outpost.
	CreateSite(ctx context.Context, params *outposts.CreateSiteInput, optFns ...func(*Options)) (*outposts.CreateSiteOutput, error)
	// Deletes the specified Outpost.
	DeleteOutpost(ctx context.Context, params *outposts.DeleteOutpostInput, optFns ...func(*Options)) (*outposts.DeleteOutpostOutput, error)
	// Deletes the specified site.
	DeleteSite(ctx context.Context, params *outposts.DeleteSiteInput, optFns ...func(*Options)) (*outposts.DeleteSiteOutput, error)
	// Gets details of the specified capacity task.
	GetCapacityTask(ctx context.Context, params *outposts.GetCapacityTaskInput, optFns ...func(*Options)) (*outposts.GetCapacityTaskOutput, error)
	// Gets information about the specified catalog item.
	GetCatalogItem(ctx context.Context, params *outposts.GetCatalogItemInput, optFns ...func(*Options)) (*outposts.GetCatalogItemOutput, error)
	//	Amazon Web Services uses this action to install Outpost servers.
	//
	// Gets information about the specified connection.
	//
	// Use CloudTrail to monitor this action or Amazon Web Services managed policy for
	// Amazon Web Services Outposts to secure it. For more information, see [Amazon Web Services managed policies for Amazon Web Services Outposts]and [Logging Amazon Web Services Outposts API calls with Amazon Web Services CloudTrail] in
	// the Amazon Web Services Outposts User Guide.
	//
	// [Logging Amazon Web Services Outposts API calls with Amazon Web Services CloudTrail]: https://docs.aws.amazon.com/outposts/latest/userguide/logging-using-cloudtrail.html
	// [Amazon Web Services managed policies for Amazon Web Services Outposts]: https://docs.aws.amazon.com/outposts/latest/userguide/security-iam-awsmanpol.html
	GetConnection(ctx context.Context, params *outposts.GetConnectionInput, optFns ...func(*Options)) (*outposts.GetConnectionOutput, error)
	// Gets information about the specified order.
	GetOrder(ctx context.Context, params *outposts.GetOrderInput, optFns ...func(*Options)) (*outposts.GetOrderOutput, error)
	// Gets information about the specified Outpost.
	GetOutpost(ctx context.Context, params *outposts.GetOutpostInput, optFns ...func(*Options)) (*outposts.GetOutpostOutput, error)
	// Gets current and historical billing information about the specified Outpost.
	GetOutpostBillingInformation(ctx context.Context, params *outposts.GetOutpostBillingInformationInput, optFns ...func(*Options)) (*outposts.GetOutpostBillingInformationOutput, error)
	// Gets the instance types for the specified Outpost.
	GetOutpostInstanceTypes(ctx context.Context, params *outposts.GetOutpostInstanceTypesInput, optFns ...func(*Options)) (*outposts.GetOutpostInstanceTypesOutput, error)
	// Gets the instance types that an Outpost can support in InstanceTypeCapacity .
	// This will generally include instance types that are not currently configured and
	// therefore cannot be launched with the current Outpost capacity configuration.
	GetOutpostSupportedInstanceTypes(ctx context.Context, params *outposts.GetOutpostSupportedInstanceTypesInput, optFns ...func(*Options)) (*outposts.GetOutpostSupportedInstanceTypesOutput, error)
	// Gets information about the specified Outpost site.
	GetSite(ctx context.Context, params *outposts.GetSiteInput, optFns ...func(*Options)) (*outposts.GetSiteOutput, error)
	// Gets the site address of the specified site.
	GetSiteAddress(ctx context.Context, params *outposts.GetSiteAddressInput, optFns ...func(*Options)) (*outposts.GetSiteAddressOutput, error)
	// A list of Amazon EC2 instances, belonging to all accounts, running on the
	// specified Outpost. Does not include Amazon EBS or Amazon S3 instances.
	ListAssetInstances(ctx context.Context, params *outposts.ListAssetInstancesInput, optFns ...func(*Options)) (*outposts.ListAssetInstancesOutput, error)
	// Lists the hardware assets for the specified Outpost.
	//
	// Use filters to return specific results. If you specify multiple filters, the
	// results include only the resources that match all of the specified filters. For
	// a filter where you can specify multiple values, the results include items that
	// match any of the values that you specify for the filter.
	ListAssets(ctx context.Context, params *outposts.ListAssetsInput, optFns ...func(*Options)) (*outposts.ListAssetsOutput, error)
	// A list of Amazon EC2 instances running on the Outpost and belonging to the
	// account that initiated the capacity task. Use this list to specify the instances
	// you cannot stop to free up capacity to run the capacity task.
	ListBlockingInstancesForCapacityTask(ctx context.Context, params *outposts.ListBlockingInstancesForCapacityTaskInput, optFns ...func(*Options)) (*outposts.ListBlockingInstancesForCapacityTaskOutput, error)
	// Lists the capacity tasks for your Amazon Web Services account.
	//
	// Use filters to return specific results. If you specify multiple filters, the
	// results include only the resources that match all of the specified filters. For
	// a filter where you can specify multiple values, the results include items that
	// match any of the values that you specify for the filter.
	ListCapacityTasks(ctx context.Context, params *outposts.ListCapacityTasksInput, optFns ...func(*Options)) (*outposts.ListCapacityTasksOutput, error)
	// Lists the items in the catalog.
	//
	// Use filters to return specific results. If you specify multiple filters, the
	// results include only the resources that match all of the specified filters. For
	// a filter where you can specify multiple values, the results include items that
	// match any of the values that you specify for the filter.
	ListCatalogItems(ctx context.Context, params *outposts.ListCatalogItemsInput, optFns ...func(*Options)) (*outposts.ListCatalogItemsOutput, error)
	// Lists the Outpost orders for your Amazon Web Services account.
	ListOrders(ctx context.Context, params *outposts.ListOrdersInput, optFns ...func(*Options)) (*outposts.ListOrdersOutput, error)
	// Lists the Outposts for your Amazon Web Services account.
	//
	// Use filters to return specific results. If you specify multiple filters, the
	// results include only the resources that match all of the specified filters. For
	// a filter where you can specify multiple values, the results include items that
	// match any of the values that you specify for the filter.
	ListOutposts(ctx context.Context, params *outposts.ListOutpostsInput, optFns ...func(*Options)) (*outposts.ListOutpostsOutput, error)
	// Lists the Outpost sites for your Amazon Web Services account. Use filters to
	// return specific results.
	//
	// Use filters to return specific results. If you specify multiple filters, the
	// results include only the resources that match all of the specified filters. For
	// a filter where you can specify multiple values, the results include items that
	// match any of the values that you specify for the filter.
	ListSites(ctx context.Context, params *outposts.ListSitesInput, optFns ...func(*Options)) (*outposts.ListSitesOutput, error)
	// Lists the tags for the specified resource.
	ListTagsForResource(ctx context.Context, params *outposts.ListTagsForResourceInput, optFns ...func(*Options)) (*outposts.ListTagsForResourceOutput, error)
	// Starts the specified capacity task. You can have one active capacity task for
	// each order and each Outpost.
	StartCapacityTask(ctx context.Context, params *outposts.StartCapacityTaskInput, optFns ...func(*Options)) (*outposts.StartCapacityTaskOutput, error)
	//	Amazon Web Services uses this action to install Outpost servers.
	//
	// Starts the connection required for Outpost server installation.
	//
	// Use CloudTrail to monitor this action or Amazon Web Services managed policy for
	// Amazon Web Services Outposts to secure it. For more information, see [Amazon Web Services managed policies for Amazon Web Services Outposts]and [Logging Amazon Web Services Outposts API calls with Amazon Web Services CloudTrail] in
	// the Amazon Web Services Outposts User Guide.
	//
	// [Logging Amazon Web Services Outposts API calls with Amazon Web Services CloudTrail]: https://docs.aws.amazon.com/outposts/latest/userguide/logging-using-cloudtrail.html
	// [Amazon Web Services managed policies for Amazon Web Services Outposts]: https://docs.aws.amazon.com/outposts/latest/userguide/security-iam-awsmanpol.html
	StartConnection(ctx context.Context, params *outposts.StartConnectionInput, optFns ...func(*Options)) (*outposts.StartConnectionOutput, error)
	// Starts the decommission process to return the Outposts racks or servers.
	StartOutpostDecommission(ctx context.Context, params *outposts.StartOutpostDecommissionInput, optFns ...func(*Options)) (*outposts.StartOutpostDecommissionOutput, error)
	// Adds tags to the specified resource.
	TagResource(ctx context.Context, params *outposts.TagResourceInput, optFns ...func(*Options)) (*outposts.TagResourceOutput, error)
	// Removes tags from the specified resource.
	UntagResource(ctx context.Context, params *outposts.UntagResourceInput, optFns ...func(*Options)) (*outposts.UntagResourceOutput, error)
	// Updates an Outpost.
	UpdateOutpost(ctx context.Context, params *outposts.UpdateOutpostInput, optFns ...func(*Options)) (*outposts.UpdateOutpostOutput, error)
	// Updates the specified site.
	UpdateSite(ctx context.Context, params *outposts.UpdateSiteInput, optFns ...func(*Options)) (*outposts.UpdateSiteOutput, error)
	// Updates the address of the specified site.
	//
	// You can't update a site address if there is an order in progress. You must wait
	// for the order to complete or cancel the order.
	//
	// You can update the operating address before you place an order at the site, or
	// after all Outposts that belong to the site have been deactivated.
	UpdateSiteAddress(ctx context.Context, params *outposts.UpdateSiteAddressInput, optFns ...func(*Options)) (*outposts.UpdateSiteAddressOutput, error)
	// Update the physical and logistical details for a rack at a site. For more
	// information about hardware requirements for racks, see [Network readiness checklist]in the Amazon Web
	// Services Outposts User Guide.
	//
	// To update a rack at a site with an order of IN_PROGRESS , you must wait for the
	// order to complete or cancel the order.
	//
	// [Network readiness checklist]: https://docs.aws.amazon.com/outposts/latest/userguide/outposts-requirements.html#checklist
	UpdateSiteRackPhysicalProperties(ctx context.Context, params *outposts.UpdateSiteRackPhysicalPropertiesInput, optFns ...func(*Options)) (*outposts.UpdateSiteRackPhysicalPropertiesOutput, error)
}

Outposts provides an interface to the AWS Outposts service.

type SSM added in v0.91.0

type SSM interface {
	// Options returns a copy of the client configuration.
	//
	// Callers SHOULD NOT perform mutations on any inner structures within client
	// config. Config overrides should instead be made on a per-operation basis through
	// functional options.
	Options() ssm.Options
	// Adds or overwrites one or more tags for the specified resource. Tags are
	// metadata that you can assign to your automations, documents, managed nodes,
	// maintenance windows, Parameter Store parameters, and patch baselines. Tags
	// enable you to categorize your resources in different ways, for example, by
	// purpose, owner, or environment. Each tag consists of a key and an optional
	// value, both of which you define. For example, you could define a set of tags for
	// your account's managed nodes that helps you track each node's owner and stack
	// level. For example:
	//
	//   - Key=Owner,Value=DbAdmin
	//
	//   - Key=Owner,Value=SysAdmin
	//
	//   - Key=Owner,Value=Dev
	//
	//   - Key=Stack,Value=Production
	//
	//   - Key=Stack,Value=Pre-Production
	//
	//   - Key=Stack,Value=Test
	//
	// Most resources can have a maximum of 50 tags. Automations can have a maximum of
	// 5 tags.
	//
	// We recommend that you devise a set of tag keys that meets your needs for each
	// resource type. Using a consistent set of tag keys makes it easier for you to
	// manage your resources. You can search and filter the resources based on the tags
	// you add. Tags don't have any semantic meaning to and are interpreted strictly as
	// a string of characters.
	//
	// For more information about using tags with Amazon Elastic Compute Cloud (Amazon
	// EC2) instances, see [Tag your Amazon EC2 resources]in the Amazon EC2 User Guide.
	//
	// [Tag your Amazon EC2 resources]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html
	AddTagsToResource(ctx context.Context, params *ssm.AddTagsToResourceInput, optFns ...func(*Options)) (*ssm.AddTagsToResourceOutput, error)
	// Associates a related item to a Systems Manager OpsCenter OpsItem. For example,
	// you can associate an Incident Manager incident or analysis with an OpsItem.
	// Incident Manager and OpsCenter are tools in Amazon Web Services Systems Manager.
	AssociateOpsItemRelatedItem(ctx context.Context, params *ssm.AssociateOpsItemRelatedItemInput, optFns ...func(*Options)) (*ssm.AssociateOpsItemRelatedItemOutput, error)
	// Attempts to cancel the command specified by the Command ID. There is no
	// guarantee that the command will be terminated and the underlying process
	// stopped.
	CancelCommand(ctx context.Context, params *ssm.CancelCommandInput, optFns ...func(*Options)) (*ssm.CancelCommandOutput, error)
	// Stops a maintenance window execution that is already in progress and cancels
	// any tasks in the window that haven't already starting running. Tasks already in
	// progress will continue to completion.
	CancelMaintenanceWindowExecution(ctx context.Context, params *ssm.CancelMaintenanceWindowExecutionInput, optFns ...func(*Options)) (*ssm.CancelMaintenanceWindowExecutionOutput, error)
	// Generates an activation code and activation ID you can use to register your
	// on-premises servers, edge devices, or virtual machine (VM) with Amazon Web
	// Services Systems Manager. Registering these machines with Systems Manager makes
	// it possible to manage them using Systems Manager tools. You use the activation
	// code and ID when installing SSM Agent on machines in your hybrid environment.
	// For more information about requirements for managing on-premises machines using
	// Systems Manager, see [Using Amazon Web Services Systems Manager in hybrid and multicloud environments]in the Amazon Web Services Systems Manager User Guide.
	//
	// Amazon Elastic Compute Cloud (Amazon EC2) instances, edge devices, and
	// on-premises servers and VMs that are configured for Systems Manager are all
	// called managed nodes.
	//
	// [Using Amazon Web Services Systems Manager in hybrid and multicloud environments]: https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-hybrid-multicloud.html
	CreateActivation(ctx context.Context, params *ssm.CreateActivationInput, optFns ...func(*Options)) (*ssm.CreateActivationOutput, error)
	// A State Manager association defines the state that you want to maintain on your
	// managed nodes. For example, an association can specify that anti-virus software
	// must be installed and running on your managed nodes, or that certain ports must
	// be closed. For static targets, the association specifies a schedule for when the
	// configuration is reapplied. For dynamic targets, such as an Amazon Web Services
	// resource group or an Amazon Web Services autoscaling group, State Manager, a
	// tool in Amazon Web Services Systems Manager applies the configuration when new
	// managed nodes are added to the group. The association also specifies actions to
	// take when applying the configuration. For example, an association for anti-virus
	// software might run once a day. If the software isn't installed, then State
	// Manager installs it. If the software is installed, but the service isn't
	// running, then the association might instruct State Manager to start the service.
	CreateAssociation(ctx context.Context, params *ssm.CreateAssociationInput, optFns ...func(*Options)) (*ssm.CreateAssociationOutput, error)
	// Associates the specified Amazon Web Services Systems Manager document (SSM
	// document) with the specified managed nodes or targets.
	//
	// When you associate a document with one or more managed nodes using IDs or tags,
	// Amazon Web Services Systems Manager Agent (SSM Agent) running on the managed
	// node processes the document and configures the node as specified.
	//
	// If you associate a document with a managed node that already has an associated
	// document, the system returns the AssociationAlreadyExists exception.
	CreateAssociationBatch(ctx context.Context, params *ssm.CreateAssociationBatchInput, optFns ...func(*Options)) (*ssm.CreateAssociationBatchOutput, error)
	// Creates a Amazon Web Services Systems Manager (SSM document). An SSM document
	// defines the actions that Systems Manager performs on your managed nodes. For
	// more information about SSM documents, including information about supported
	// schemas, features, and syntax, see [Amazon Web Services Systems Manager Documents]in the Amazon Web Services Systems Manager
	// User Guide.
	//
	// [Amazon Web Services Systems Manager Documents]: https://docs.aws.amazon.com/systems-manager/latest/userguide/documents.html
	CreateDocument(ctx context.Context, params *ssm.CreateDocumentInput, optFns ...func(*Options)) (*ssm.CreateDocumentOutput, error)
	// Creates a new maintenance window.
	//
	// The value you specify for Duration determines the specific end time for the
	// maintenance window based on the time it begins. No maintenance window tasks are
	// permitted to start after the resulting endtime minus the number of hours you
	// specify for Cutoff . For example, if the maintenance window starts at 3 PM, the
	// duration is three hours, and the value you specify for Cutoff is one hour, no
	// maintenance window tasks can start after 5 PM.
	CreateMaintenanceWindow(ctx context.Context, params *ssm.CreateMaintenanceWindowInput, optFns ...func(*Options)) (*ssm.CreateMaintenanceWindowOutput, error)
	// Creates a new OpsItem. You must have permission in Identity and Access
	// Management (IAM) to create a new OpsItem. For more information, see [Set up OpsCenter]in the
	// Amazon Web Services Systems Manager User Guide.
	//
	// Operations engineers and IT professionals use Amazon Web Services Systems
	// Manager OpsCenter to view, investigate, and remediate operational issues
	// impacting the performance and health of their Amazon Web Services resources. For
	// more information, see [Amazon Web Services Systems Manager OpsCenter]in the Amazon Web Services Systems Manager User Guide.
	//
	// [Amazon Web Services Systems Manager OpsCenter]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html
	// [Set up OpsCenter]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-setup.html
	CreateOpsItem(ctx context.Context, params *ssm.CreateOpsItemInput, optFns ...func(*Options)) (*ssm.CreateOpsItemOutput, error)
	// If you create a new application in Application Manager, Amazon Web Services
	// Systems Manager calls this API operation to specify information about the new
	// application, including the application type.
	CreateOpsMetadata(ctx context.Context, params *ssm.CreateOpsMetadataInput, optFns ...func(*Options)) (*ssm.CreateOpsMetadataOutput, error)
	// Creates a patch baseline.
	//
	// For information about valid key-value pairs in PatchFilters for each supported
	// operating system type, see PatchFilter.
	CreatePatchBaseline(ctx context.Context, params *ssm.CreatePatchBaselineInput, optFns ...func(*Options)) (*ssm.CreatePatchBaselineOutput, error)
	// A resource data sync helps you view data from multiple sources in a single
	// location. Amazon Web Services Systems Manager offers two types of resource data
	// sync: SyncToDestination and SyncFromSource .
	//
	// You can configure Systems Manager Inventory to use the SyncToDestination type
	// to synchronize Inventory data from multiple Amazon Web Services Regions to a
	// single Amazon Simple Storage Service (Amazon S3) bucket. For more information,
	// see [Creating a resource data sync for Inventory]in the Amazon Web Services Systems Manager User Guide.
	//
	// You can configure Systems Manager Explorer to use the SyncFromSource type to
	// synchronize operational work items (OpsItems) and operational data (OpsData)
	// from multiple Amazon Web Services Regions to a single Amazon S3 bucket. This
	// type can synchronize OpsItems and OpsData from multiple Amazon Web Services
	// accounts and Amazon Web Services Regions or EntireOrganization by using
	// Organizations. For more information, see [Setting up Systems Manager Explorer to display data from multiple accounts and Regions]in the Amazon Web Services Systems
	// Manager User Guide.
	//
	// A resource data sync is an asynchronous operation that returns immediately.
	// After a successful initial sync is completed, the system continuously syncs
	// data. To check the status of a sync, use the ListResourceDataSync.
	//
	// By default, data isn't encrypted in Amazon S3. We strongly recommend that you
	// enable encryption in Amazon S3 to ensure secure data storage. We also recommend
	// that you secure access to the Amazon S3 bucket by creating a restrictive bucket
	// policy.
	//
	// [Setting up Systems Manager Explorer to display data from multiple accounts and Regions]: https://docs.aws.amazon.com/systems-manager/latest/userguide/Explorer-resource-data-sync.html
	// [Creating a resource data sync for Inventory]: https://docs.aws.amazon.com/systems-manager/latest/userguide/inventory-create-resource-data-sync.html
	CreateResourceDataSync(ctx context.Context, params *ssm.CreateResourceDataSyncInput, optFns ...func(*Options)) (*ssm.CreateResourceDataSyncOutput, error)
	// Deletes an activation. You aren't required to delete an activation. If you
	// delete an activation, you can no longer use it to register additional managed
	// nodes. Deleting an activation doesn't de-register managed nodes. You must
	// manually de-register managed nodes.
	DeleteActivation(ctx context.Context, params *ssm.DeleteActivationInput, optFns ...func(*Options)) (*ssm.DeleteActivationOutput, error)
	// Disassociates the specified Amazon Web Services Systems Manager document (SSM
	// document) from the specified managed node. If you created the association by
	// using the Targets parameter, then you must delete the association by using the
	// association ID.
	//
	// When you disassociate a document from a managed node, it doesn't change the
	// configuration of the node. To change the configuration state of a managed node
	// after you disassociate a document, you must create a new document with the
	// desired configuration and associate it with the node.
	DeleteAssociation(ctx context.Context, params *ssm.DeleteAssociationInput, optFns ...func(*Options)) (*ssm.DeleteAssociationOutput, error)
	// Deletes the Amazon Web Services Systems Manager document (SSM document) and all
	// managed node associations to the document.
	//
	// Before you delete the document, we recommend that you use DeleteAssociation to disassociate all
	// managed nodes that are associated with the document.
	DeleteDocument(ctx context.Context, params *ssm.DeleteDocumentInput, optFns ...func(*Options)) (*ssm.DeleteDocumentOutput, error)
	// Delete a custom inventory type or the data associated with a custom Inventory
	// type. Deleting a custom inventory type is also referred to as deleting a custom
	// inventory schema.
	DeleteInventory(ctx context.Context, params *ssm.DeleteInventoryInput, optFns ...func(*Options)) (*ssm.DeleteInventoryOutput, error)
	// Deletes a maintenance window.
	DeleteMaintenanceWindow(ctx context.Context, params *ssm.DeleteMaintenanceWindowInput, optFns ...func(*Options)) (*ssm.DeleteMaintenanceWindowOutput, error)
	// Delete an OpsItem. You must have permission in Identity and Access Management
	// (IAM) to delete an OpsItem.
	//
	// Note the following important information about this operation.
	//
	//   - Deleting an OpsItem is irreversible. You can't restore a deleted OpsItem.
	//
	//   - This operation uses an eventual consistency model, which means the system
	//     can take a few minutes to complete this operation. If you delete an OpsItem and
	//     immediately call, for example, GetOpsItem, the deleted OpsItem might still appear in
	//     the response.
	//
	//   - This operation is idempotent. The system doesn't throw an exception if you
	//     repeatedly call this operation for the same OpsItem. If the first call is
	//     successful, all additional calls return the same successful response as the
	//     first call.
	//
	//   - This operation doesn't support cross-account calls. A delegated
	//     administrator or management account can't delete OpsItems in other accounts,
	//     even if OpsCenter has been set up for cross-account administration. For more
	//     information about cross-account administration, see [Setting up OpsCenter to centrally manage OpsItems across accounts]in the Systems Manager
	//     User Guide.
	//
	// [Setting up OpsCenter to centrally manage OpsItems across accounts]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-setting-up-cross-account.html
	DeleteOpsItem(ctx context.Context, params *ssm.DeleteOpsItemInput, optFns ...func(*Options)) (*ssm.DeleteOpsItemOutput, error)
	// Delete OpsMetadata related to an application.
	DeleteOpsMetadata(ctx context.Context, params *ssm.DeleteOpsMetadataInput, optFns ...func(*Options)) (*ssm.DeleteOpsMetadataOutput, error)
	// Delete a parameter from the system. After deleting a parameter, wait for at
	// least 30 seconds to create a parameter with the same name.
	DeleteParameter(ctx context.Context, params *ssm.DeleteParameterInput, optFns ...func(*Options)) (*ssm.DeleteParameterOutput, error)
	// Delete a list of parameters. After deleting a parameter, wait for at least 30
	// seconds to create a parameter with the same name.
	DeleteParameters(ctx context.Context, params *ssm.DeleteParametersInput, optFns ...func(*Options)) (*ssm.DeleteParametersOutput, error)
	// Deletes a patch baseline.
	DeletePatchBaseline(ctx context.Context, params *ssm.DeletePatchBaselineInput, optFns ...func(*Options)) (*ssm.DeletePatchBaselineOutput, error)
	// Deletes a resource data sync configuration. After the configuration is deleted,
	// changes to data on managed nodes are no longer synced to or from the target.
	// Deleting a sync configuration doesn't delete data.
	DeleteResourceDataSync(ctx context.Context, params *ssm.DeleteResourceDataSyncInput, optFns ...func(*Options)) (*ssm.DeleteResourceDataSyncOutput, error)
	// Deletes a Systems Manager resource policy. A resource policy helps you to
	// define the IAM entity (for example, an Amazon Web Services account) that can
	// manage your Systems Manager resources. The following resources support Systems
	// Manager resource policies.
	//
	//   - OpsItemGroup - The resource policy for OpsItemGroup enables Amazon Web
	//     Services accounts to view and interact with OpsCenter operational work items
	//     (OpsItems).
	//
	//   - Parameter - The resource policy is used to share a parameter with other
	//     accounts using Resource Access Manager (RAM). For more information about
	//     cross-account sharing of parameters, see [Working with shared parameters]in the Amazon Web Services Systems
	//     Manager User Guide.
	//
	// [Working with shared parameters]: https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-shared-parameters.html
	DeleteResourcePolicy(ctx context.Context, params *ssm.DeleteResourcePolicyInput, optFns ...func(*Options)) (*ssm.DeleteResourcePolicyOutput, error)
	// Removes the server or virtual machine from the list of registered servers.
	//
	// If you want to reregister an on-premises server, edge device, or VM, you must
	// use a different Activation Code and Activation ID than used to register the
	// machine previously. The Activation Code and Activation ID must not have already
	// been used on the maximum number of activations specified when they were created.
	// For more information, see [Deregistering managed nodes in a hybrid and multicloud environment]in the Amazon Web Services Systems Manager User Guide.
	//
	// [Deregistering managed nodes in a hybrid and multicloud environment]: https://docs.aws.amazon.com/systems-manager/latest/userguide/fleet-manager-deregister-hybrid-nodes.html
	DeregisterManagedInstance(ctx context.Context, params *ssm.DeregisterManagedInstanceInput, optFns ...func(*Options)) (*ssm.DeregisterManagedInstanceOutput, error)
	// Removes a patch group from a patch baseline.
	DeregisterPatchBaselineForPatchGroup(ctx context.Context, params *ssm.DeregisterPatchBaselineForPatchGroupInput, optFns ...func(*Options)) (*ssm.DeregisterPatchBaselineForPatchGroupOutput, error)
	// Removes a target from a maintenance window.
	DeregisterTargetFromMaintenanceWindow(ctx context.Context, params *ssm.DeregisterTargetFromMaintenanceWindowInput, optFns ...func(*Options)) (*ssm.DeregisterTargetFromMaintenanceWindowOutput, error)
	// Removes a task from a maintenance window.
	DeregisterTaskFromMaintenanceWindow(ctx context.Context, params *ssm.DeregisterTaskFromMaintenanceWindowInput, optFns ...func(*Options)) (*ssm.DeregisterTaskFromMaintenanceWindowOutput, error)
	// Describes details about the activation, such as the date and time the
	// activation was created, its expiration date, the Identity and Access Management
	// (IAM) role assigned to the managed nodes in the activation, and the number of
	// nodes registered by using this activation.
	DescribeActivations(ctx context.Context, params *ssm.DescribeActivationsInput, optFns ...func(*Options)) (*ssm.DescribeActivationsOutput, error)
	// Describes the association for the specified target or managed node. If you
	// created the association by using the Targets parameter, then you must retrieve
	// the association by using the association ID.
	DescribeAssociation(ctx context.Context, params *ssm.DescribeAssociationInput, optFns ...func(*Options)) (*ssm.DescribeAssociationOutput, error)
	// Views information about a specific execution of a specific association.
	DescribeAssociationExecutionTargets(ctx context.Context, params *ssm.DescribeAssociationExecutionTargetsInput, optFns ...func(*Options)) (*ssm.DescribeAssociationExecutionTargetsOutput, error)
	// Views all executions for a specific association ID.
	DescribeAssociationExecutions(ctx context.Context, params *ssm.DescribeAssociationExecutionsInput, optFns ...func(*Options)) (*ssm.DescribeAssociationExecutionsOutput, error)
	// Provides details about all active and terminated Automation executions.
	DescribeAutomationExecutions(ctx context.Context, params *ssm.DescribeAutomationExecutionsInput, optFns ...func(*Options)) (*ssm.DescribeAutomationExecutionsOutput, error)
	// Information about all active and terminated step executions in an Automation
	// workflow.
	DescribeAutomationStepExecutions(ctx context.Context, params *ssm.DescribeAutomationStepExecutionsInput, optFns ...func(*Options)) (*ssm.DescribeAutomationStepExecutionsOutput, error)
	// Lists all patches eligible to be included in a patch baseline.
	//
	// Currently, DescribeAvailablePatches supports only the Amazon Linux 1, Amazon
	// Linux 2, and Windows Server operating systems.
	DescribeAvailablePatches(ctx context.Context, params *ssm.DescribeAvailablePatchesInput, optFns ...func(*Options)) (*ssm.DescribeAvailablePatchesOutput, error)
	// Describes the specified Amazon Web Services Systems Manager document (SSM
	// document).
	DescribeDocument(ctx context.Context, params *ssm.DescribeDocumentInput, optFns ...func(*Options)) (*ssm.DescribeDocumentOutput, error)
	// Describes the permissions for a Amazon Web Services Systems Manager document
	// (SSM document). If you created the document, you are the owner. If a document is
	// shared, it can either be shared privately (by specifying a user's Amazon Web
	// Services account ID) or publicly (All).
	DescribeDocumentPermission(ctx context.Context, params *ssm.DescribeDocumentPermissionInput, optFns ...func(*Options)) (*ssm.DescribeDocumentPermissionOutput, error)
	// All associations for the managed nodes.
	DescribeEffectiveInstanceAssociations(ctx context.Context, params *ssm.DescribeEffectiveInstanceAssociationsInput, optFns ...func(*Options)) (*ssm.DescribeEffectiveInstanceAssociationsOutput, error)
	// Retrieves the current effective patches (the patch and the approval state) for
	// the specified patch baseline. Applies to patch baselines for Windows only.
	DescribeEffectivePatchesForPatchBaseline(ctx context.Context, params *ssm.DescribeEffectivePatchesForPatchBaselineInput, optFns ...func(*Options)) (*ssm.DescribeEffectivePatchesForPatchBaselineOutput, error)
	// The status of the associations for the managed nodes.
	DescribeInstanceAssociationsStatus(ctx context.Context, params *ssm.DescribeInstanceAssociationsStatusInput, optFns ...func(*Options)) (*ssm.DescribeInstanceAssociationsStatusOutput, error)
	// Provides information about one or more of your managed nodes, including the
	// operating system platform, SSM Agent version, association status, and IP
	// address. This operation does not return information for nodes that are either
	// Stopped or Terminated.
	//
	// If you specify one or more node IDs, the operation returns information for
	// those managed nodes. If you don't specify node IDs, it returns information for
	// all your managed nodes. If you specify a node ID that isn't valid or a node that
	// you don't own, you receive an error.
	//
	// The IamRole field returned for this API operation is the role assigned to an
	// Amazon EC2 instance configured with a Systems Manager Quick Setup host
	// management configuration or the role assigned to an on-premises managed node.
	DescribeInstanceInformation(ctx context.Context, params *ssm.DescribeInstanceInformationInput, optFns ...func(*Options)) (*ssm.DescribeInstanceInformationOutput, error)
	// Retrieves the high-level patch state of one or more managed nodes.
	DescribeInstancePatchStates(ctx context.Context, params *ssm.DescribeInstancePatchStatesInput, optFns ...func(*Options)) (*ssm.DescribeInstancePatchStatesOutput, error)
	// Retrieves the high-level patch state for the managed nodes in the specified
	// patch group.
	DescribeInstancePatchStatesForPatchGroup(ctx context.Context, params *ssm.DescribeInstancePatchStatesForPatchGroupInput, optFns ...func(*Options)) (*ssm.DescribeInstancePatchStatesForPatchGroupOutput, error)
	// Retrieves information about the patches on the specified managed node and their
	// state relative to the patch baseline being used for the node.
	DescribeInstancePatches(ctx context.Context, params *ssm.DescribeInstancePatchesInput, optFns ...func(*Options)) (*ssm.DescribeInstancePatchesOutput, error)
	// An API operation used by the Systems Manager console to display information
	// about Systems Manager managed nodes.
	DescribeInstanceProperties(ctx context.Context, params *ssm.DescribeInstancePropertiesInput, optFns ...func(*Options)) (*ssm.DescribeInstancePropertiesOutput, error)
	// Describes a specific delete inventory operation.
	DescribeInventoryDeletions(ctx context.Context, params *ssm.DescribeInventoryDeletionsInput, optFns ...func(*Options)) (*ssm.DescribeInventoryDeletionsOutput, error)
	// Retrieves the individual task executions (one per target) for a particular task
	// run as part of a maintenance window execution.
	DescribeMaintenanceWindowExecutionTaskInvocations(ctx context.Context, params *ssm.DescribeMaintenanceWindowExecutionTaskInvocationsInput, optFns ...func(*Options)) (*ssm.DescribeMaintenanceWindowExecutionTaskInvocationsOutput, error)
	// For a given maintenance window execution, lists the tasks that were run.
	DescribeMaintenanceWindowExecutionTasks(ctx context.Context, params *ssm.DescribeMaintenanceWindowExecutionTasksInput, optFns ...func(*Options)) (*ssm.DescribeMaintenanceWindowExecutionTasksOutput, error)
	// Lists the executions of a maintenance window. This includes information about
	// when the maintenance window was scheduled to be active, and information about
	// tasks registered and run with the maintenance window.
	DescribeMaintenanceWindowExecutions(ctx context.Context, params *ssm.DescribeMaintenanceWindowExecutionsInput, optFns ...func(*Options)) (*ssm.DescribeMaintenanceWindowExecutionsOutput, error)
	// Retrieves information about upcoming executions of a maintenance window.
	DescribeMaintenanceWindowSchedule(ctx context.Context, params *ssm.DescribeMaintenanceWindowScheduleInput, optFns ...func(*Options)) (*ssm.DescribeMaintenanceWindowScheduleOutput, error)
	// Lists the targets registered with the maintenance window.
	DescribeMaintenanceWindowTargets(ctx context.Context, params *ssm.DescribeMaintenanceWindowTargetsInput, optFns ...func(*Options)) (*ssm.DescribeMaintenanceWindowTargetsOutput, error)
	// Lists the tasks in a maintenance window.
	//
	// For maintenance window tasks without a specified target, you can't supply
	// values for --max-errors and --max-concurrency . Instead, the system inserts a
	// placeholder value of 1 , which may be reported in the response to this command.
	// These values don't affect the running of your task and can be ignored.
	DescribeMaintenanceWindowTasks(ctx context.Context, params *ssm.DescribeMaintenanceWindowTasksInput, optFns ...func(*Options)) (*ssm.DescribeMaintenanceWindowTasksOutput, error)
	// Retrieves the maintenance windows in an Amazon Web Services account.
	DescribeMaintenanceWindows(ctx context.Context, params *ssm.DescribeMaintenanceWindowsInput, optFns ...func(*Options)) (*ssm.DescribeMaintenanceWindowsOutput, error)
	// Retrieves information about the maintenance window targets or tasks that a
	// managed node is associated with.
	DescribeMaintenanceWindowsForTarget(ctx context.Context, params *ssm.DescribeMaintenanceWindowsForTargetInput, optFns ...func(*Options)) (*ssm.DescribeMaintenanceWindowsForTargetOutput, error)
	// Query a set of OpsItems. You must have permission in Identity and Access
	// Management (IAM) to query a list of OpsItems. For more information, see [Set up OpsCenter]in the
	// Amazon Web Services Systems Manager User Guide.
	//
	// Operations engineers and IT professionals use Amazon Web Services Systems
	// Manager OpsCenter to view, investigate, and remediate operational issues
	// impacting the performance and health of their Amazon Web Services resources. For
	// more information, see [Amazon Web Services Systems Manager OpsCenter]in the Amazon Web Services Systems Manager User Guide.
	//
	// [Amazon Web Services Systems Manager OpsCenter]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html
	// [Set up OpsCenter]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-setup.html
	DescribeOpsItems(ctx context.Context, params *ssm.DescribeOpsItemsInput, optFns ...func(*Options)) (*ssm.DescribeOpsItemsOutput, error)
	// Lists the parameters in your Amazon Web Services account or the parameters
	// shared with you when you enable the [Shared]option.
	//
	// Request results are returned on a best-effort basis. If you specify MaxResults
	// in the request, the response includes information up to the limit specified. The
	// number of items returned, however, can be between zero and the value of
	// MaxResults . If the service reaches an internal limit while processing the
	// results, it stops the operation and returns the matching values up to that point
	// and a NextToken . You can specify the NextToken in a subsequent call to get the
	// next set of results.
	//
	// Parameter names can't contain spaces. The service removes any spaces specified
	// for the beginning or end of a parameter name. If the specified name for a
	// parameter contains spaces between characters, the request fails with a
	// ValidationException error.
	//
	// If you change the KMS key alias for the KMS key used to encrypt a parameter,
	// then you must also update the key alias the parameter uses to reference KMS.
	// Otherwise, DescribeParameters retrieves whatever the original key alias was
	// referencing.
	//
	// [Shared]: https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeParameters.html#systemsmanager-DescribeParameters-request-Shared
	DescribeParameters(ctx context.Context, params *ssm.DescribeParametersInput, optFns ...func(*Options)) (*ssm.DescribeParametersOutput, error)
	// Lists the patch baselines in your Amazon Web Services account.
	DescribePatchBaselines(ctx context.Context, params *ssm.DescribePatchBaselinesInput, optFns ...func(*Options)) (*ssm.DescribePatchBaselinesOutput, error)
	// Returns high-level aggregated patch compliance state information for a patch
	// group.
	DescribePatchGroupState(ctx context.Context, params *ssm.DescribePatchGroupStateInput, optFns ...func(*Options)) (*ssm.DescribePatchGroupStateOutput, error)
	// Lists all patch groups that have been registered with patch baselines.
	DescribePatchGroups(ctx context.Context, params *ssm.DescribePatchGroupsInput, optFns ...func(*Options)) (*ssm.DescribePatchGroupsOutput, error)
	// Lists the properties of available patches organized by product, product family,
	// classification, severity, and other properties of available patches. You can use
	// the reported properties in the filters you specify in requests for operations
	// such as CreatePatchBaseline, UpdatePatchBaseline, DescribeAvailablePatches, and DescribePatchBaselines.
	//
	// The following section lists the properties that can be used in filters for each
	// major operating system type:
	//
	// AMAZON_LINUX Valid properties: PRODUCT | CLASSIFICATION | SEVERITY
	//
	// AMAZON_LINUX_2 Valid properties: PRODUCT | CLASSIFICATION | SEVERITY
	//
	// AMAZON_LINUX_2023 Valid properties: PRODUCT | CLASSIFICATION | SEVERITY
	//
	// CENTOS Valid properties: PRODUCT | CLASSIFICATION | SEVERITY
	//
	// DEBIAN Valid properties: PRODUCT | PRIORITY
	//
	// MACOS Valid properties: PRODUCT | CLASSIFICATION
	//
	// ORACLE_LINUX Valid properties: PRODUCT | CLASSIFICATION | SEVERITY
	//
	// REDHAT_ENTERPRISE_LINUX Valid properties: PRODUCT | CLASSIFICATION | SEVERITY
	//
	// SUSE Valid properties: PRODUCT | CLASSIFICATION | SEVERITY
	//
	// UBUNTU Valid properties: PRODUCT | PRIORITY
	//
	// WINDOWS Valid properties: PRODUCT | PRODUCT_FAMILY | CLASSIFICATION |
	// MSRC_SEVERITY
	DescribePatchProperties(ctx context.Context, params *ssm.DescribePatchPropertiesInput, optFns ...func(*Options)) (*ssm.DescribePatchPropertiesOutput, error)
	// Retrieves a list of all active sessions (both connected and disconnected) or
	// terminated sessions from the past 30 days.
	DescribeSessions(ctx context.Context, params *ssm.DescribeSessionsInput, optFns ...func(*Options)) (*ssm.DescribeSessionsOutput, error)
	// Deletes the association between an OpsItem and a related item. For example,
	// this API operation can delete an Incident Manager incident from an OpsItem.
	// Incident Manager is a tool in Amazon Web Services Systems Manager.
	DisassociateOpsItemRelatedItem(ctx context.Context, params *ssm.DisassociateOpsItemRelatedItemInput, optFns ...func(*Options)) (*ssm.DisassociateOpsItemRelatedItemOutput, error)
	// Returns a credentials set to be used with just-in-time node access.
	GetAccessToken(ctx context.Context, params *ssm.GetAccessTokenInput, optFns ...func(*Options)) (*ssm.GetAccessTokenOutput, error)
	// Get detailed information about a particular Automation execution.
	GetAutomationExecution(ctx context.Context, params *ssm.GetAutomationExecutionInput, optFns ...func(*Options)) (*ssm.GetAutomationExecutionOutput, error)
	// Gets the state of a Amazon Web Services Systems Manager change calendar at the
	// current time or a specified time. If you specify a time, GetCalendarState
	// returns the state of the calendar at that specific time, and returns the next
	// time that the change calendar state will transition. If you don't specify a
	// time, GetCalendarState uses the current time. Change Calendar entries have two
	// possible states: OPEN or CLOSED .
	//
	// If you specify more than one calendar in a request, the command returns the
	// status of OPEN only if all calendars in the request are open. If one or more
	// calendars in the request are closed, the status returned is CLOSED .
	//
	// For more information about Change Calendar, a tool in Amazon Web Services
	// Systems Manager, see [Amazon Web Services Systems Manager Change Calendar]in the Amazon Web Services Systems Manager User Guide.
	//
	// [Amazon Web Services Systems Manager Change Calendar]: https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar.html
	GetCalendarState(ctx context.Context, params *ssm.GetCalendarStateInput, optFns ...func(*Options)) (*ssm.GetCalendarStateOutput, error)
	// Returns detailed information about command execution for an invocation or
	// plugin. The Run Command API follows an eventual consistency model, due to the
	// distributed nature of the system supporting the API. This means that the result
	// of an API command you run that affects your resources might not be immediately
	// visible to all subsequent commands you run. You should keep this in mind when
	// you carry out an API command that immediately follows a previous API command.
	//
	// GetCommandInvocation only gives the execution status of a plugin in a document.
	// To get the command execution status on a specific managed node, use ListCommandInvocations. To get
	// the command execution status across managed nodes, use ListCommands.
	GetCommandInvocation(ctx context.Context, params *ssm.GetCommandInvocationInput, optFns ...func(*Options)) (*ssm.GetCommandInvocationOutput, error)
	// Retrieves the Session Manager connection status for a managed node to determine
	// whether it is running and ready to receive Session Manager connections.
	GetConnectionStatus(ctx context.Context, params *ssm.GetConnectionStatusInput, optFns ...func(*Options)) (*ssm.GetConnectionStatusOutput, error)
	// Retrieves the default patch baseline. Amazon Web Services Systems Manager
	// supports creating multiple default patch baselines. For example, you can create
	// a default patch baseline for each operating system.
	//
	// If you don't specify an operating system value, the default patch baseline for
	// Windows is returned.
	GetDefaultPatchBaseline(ctx context.Context, params *ssm.GetDefaultPatchBaselineInput, optFns ...func(*Options)) (*ssm.GetDefaultPatchBaselineOutput, error)
	// Retrieves the current snapshot for the patch baseline the managed node uses.
	// This API is primarily used by the AWS-RunPatchBaseline Systems Manager document
	// (SSM document).
	//
	// If you run the command locally, such as with the Command Line Interface (CLI),
	// the system attempts to use your local Amazon Web Services credentials and the
	// operation fails. To avoid this, you can run the command in the Amazon Web
	// Services Systems Manager console. Use Run Command, a tool in Amazon Web Services
	// Systems Manager, with an SSM document that enables you to target a managed node
	// with a script or command. For example, run the command using the
	// AWS-RunShellScript document or the AWS-RunPowerShellScript document.
	GetDeployablePatchSnapshotForInstance(ctx context.Context, params *ssm.GetDeployablePatchSnapshotForInstanceInput, optFns ...func(*Options)) (*ssm.GetDeployablePatchSnapshotForInstanceOutput, error)
	// Gets the contents of the specified Amazon Web Services Systems Manager document
	// (SSM document).
	GetDocument(ctx context.Context, params *ssm.GetDocumentInput, optFns ...func(*Options)) (*ssm.GetDocumentOutput, error)
	// Initiates the process of retrieving an existing preview that shows the effects
	// that running a specified Automation runbook would have on the targeted
	// resources.
	GetExecutionPreview(ctx context.Context, params *ssm.GetExecutionPreviewInput, optFns ...func(*Options)) (*ssm.GetExecutionPreviewOutput, error)
	// Query inventory information. This includes managed node status, such as Stopped
	// or Terminated .
	GetInventory(ctx context.Context, params *ssm.GetInventoryInput, optFns ...func(*Options)) (*ssm.GetInventoryOutput, error)
	// Return a list of inventory type names for the account, or return a list of
	// attribute names for a specific Inventory item type.
	GetInventorySchema(ctx context.Context, params *ssm.GetInventorySchemaInput, optFns ...func(*Options)) (*ssm.GetInventorySchemaOutput, error)
	// Retrieves a maintenance window.
	GetMaintenanceWindow(ctx context.Context, params *ssm.GetMaintenanceWindowInput, optFns ...func(*Options)) (*ssm.GetMaintenanceWindowOutput, error)
	// Retrieves details about a specific a maintenance window execution.
	GetMaintenanceWindowExecution(ctx context.Context, params *ssm.GetMaintenanceWindowExecutionInput, optFns ...func(*Options)) (*ssm.GetMaintenanceWindowExecutionOutput, error)
	// Retrieves the details about a specific task run as part of a maintenance window
	// execution.
	GetMaintenanceWindowExecutionTask(ctx context.Context, params *ssm.GetMaintenanceWindowExecutionTaskInput, optFns ...func(*Options)) (*ssm.GetMaintenanceWindowExecutionTaskOutput, error)
	// Retrieves information about a specific task running on a specific target.
	GetMaintenanceWindowExecutionTaskInvocation(ctx context.Context, params *ssm.GetMaintenanceWindowExecutionTaskInvocationInput, optFns ...func(*Options)) (*ssm.GetMaintenanceWindowExecutionTaskInvocationOutput, error)
	// Retrieves the details of a maintenance window task.
	//
	// For maintenance window tasks without a specified target, you can't supply
	// values for --max-errors and --max-concurrency . Instead, the system inserts a
	// placeholder value of 1 , which may be reported in the response to this command.
	// These values don't affect the running of your task and can be ignored.
	//
	// To retrieve a list of tasks in a maintenance window, instead use the DescribeMaintenanceWindowTasks command.
	GetMaintenanceWindowTask(ctx context.Context, params *ssm.GetMaintenanceWindowTaskInput, optFns ...func(*Options)) (*ssm.GetMaintenanceWindowTaskOutput, error)
	// Get information about an OpsItem by using the ID. You must have permission in
	// Identity and Access Management (IAM) to view information about an OpsItem. For
	// more information, see [Set up OpsCenter]in the Amazon Web Services Systems Manager User Guide.
	//
	// Operations engineers and IT professionals use Amazon Web Services Systems
	// Manager OpsCenter to view, investigate, and remediate operational issues
	// impacting the performance and health of their Amazon Web Services resources. For
	// more information, see [Amazon Web Services Systems Manager OpsCenter]in the Amazon Web Services Systems Manager User Guide.
	//
	// [Amazon Web Services Systems Manager OpsCenter]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html
	// [Set up OpsCenter]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-setup.html
	GetOpsItem(ctx context.Context, params *ssm.GetOpsItemInput, optFns ...func(*Options)) (*ssm.GetOpsItemOutput, error)
	// View operational metadata related to an application in Application Manager.
	GetOpsMetadata(ctx context.Context, params *ssm.GetOpsMetadataInput, optFns ...func(*Options)) (*ssm.GetOpsMetadataOutput, error)
	// View a summary of operations metadata (OpsData) based on specified filters and
	// aggregators. OpsData can include information about Amazon Web Services Systems
	// Manager OpsCenter operational workitems (OpsItems) as well as information about
	// any Amazon Web Services resource or service configured to report OpsData to
	// Amazon Web Services Systems Manager Explorer.
	GetOpsSummary(ctx context.Context, params *ssm.GetOpsSummaryInput, optFns ...func(*Options)) (*ssm.GetOpsSummaryOutput, error)
	// Get information about a single parameter by specifying the parameter name.
	//
	// Parameter names can't contain spaces. The service removes any spaces specified
	// for the beginning or end of a parameter name. If the specified name for a
	// parameter contains spaces between characters, the request fails with a
	// ValidationException error.
	//
	// To get information about more than one parameter at a time, use the GetParameters operation.
	GetParameter(ctx context.Context, params *ssm.GetParameterInput, optFns ...func(*Options)) (*ssm.GetParameterOutput, error)
	// Retrieves the history of all changes to a parameter.
	//
	// Parameter names can't contain spaces. The service removes any spaces specified
	// for the beginning or end of a parameter name. If the specified name for a
	// parameter contains spaces between characters, the request fails with a
	// ValidationException error.
	//
	// If you change the KMS key alias for the KMS key used to encrypt a parameter,
	// then you must also update the key alias the parameter uses to reference KMS.
	// Otherwise, GetParameterHistory retrieves whatever the original key alias was
	// referencing.
	GetParameterHistory(ctx context.Context, params *ssm.GetParameterHistoryInput, optFns ...func(*Options)) (*ssm.GetParameterHistoryOutput, error)
	// Get information about one or more parameters by specifying multiple parameter
	// names.
	//
	// To get information about a single parameter, you can use the GetParameter operation instead.
	//
	// Parameter names can't contain spaces. The service removes any spaces specified
	// for the beginning or end of a parameter name. If the specified name for a
	// parameter contains spaces between characters, the request fails with a
	// ValidationException error.
	GetParameters(ctx context.Context, params *ssm.GetParametersInput, optFns ...func(*Options)) (*ssm.GetParametersOutput, error)
	// Retrieve information about one or more parameters under a specified level in a
	// hierarchy.
	//
	// Request results are returned on a best-effort basis. If you specify MaxResults
	// in the request, the response includes information up to the limit specified. The
	// number of items returned, however, can be between zero and the value of
	// MaxResults . If the service reaches an internal limit while processing the
	// results, it stops the operation and returns the matching values up to that point
	// and a NextToken . You can specify the NextToken in a subsequent call to get the
	// next set of results.
	//
	// Parameter names can't contain spaces. The service removes any spaces specified
	// for the beginning or end of a parameter name. If the specified name for a
	// parameter contains spaces between characters, the request fails with a
	// ValidationException error.
	GetParametersByPath(ctx context.Context, params *ssm.GetParametersByPathInput, optFns ...func(*Options)) (*ssm.GetParametersByPathOutput, error)
	// Retrieves information about a patch baseline.
	GetPatchBaseline(ctx context.Context, params *ssm.GetPatchBaselineInput, optFns ...func(*Options)) (*ssm.GetPatchBaselineOutput, error)
	// Retrieves the patch baseline that should be used for the specified patch group.
	GetPatchBaselineForPatchGroup(ctx context.Context, params *ssm.GetPatchBaselineForPatchGroupInput, optFns ...func(*Options)) (*ssm.GetPatchBaselineForPatchGroupOutput, error)
	// Returns an array of the Policy object.
	GetResourcePolicies(ctx context.Context, params *ssm.GetResourcePoliciesInput, optFns ...func(*Options)) (*ssm.GetResourcePoliciesOutput, error)
	// ServiceSetting is an account-level setting for an Amazon Web Services service.
	// This setting defines how a user interacts with or uses a service or a feature of
	// a service. For example, if an Amazon Web Services service charges money to the
	// account based on feature or service usage, then the Amazon Web Services service
	// team might create a default setting of false . This means the user can't use
	// this feature unless they change the setting to true and intentionally opt in
	// for a paid feature.
	//
	// Services map a SettingId object to a setting value. Amazon Web Services
	// services teams define the default value for a SettingId . You can't create a new
	// SettingId , but you can overwrite the default value if you have the
	// ssm:UpdateServiceSetting permission for the setting. Use the UpdateServiceSetting API operation to
	// change the default setting. Or use the ResetServiceSettingto change the value back to the original
	// value defined by the Amazon Web Services service team.
	//
	// Query the current service setting for the Amazon Web Services account.
	GetServiceSetting(ctx context.Context, params *ssm.GetServiceSettingInput, optFns ...func(*Options)) (*ssm.GetServiceSettingOutput, error)
	// A parameter label is a user-defined alias to help you manage different versions
	// of a parameter. When you modify a parameter, Amazon Web Services Systems Manager
	// automatically saves a new version and increments the version number by one. A
	// label can help you remember the purpose of a parameter when there are multiple
	// versions.
	//
	// Parameter labels have the following requirements and restrictions.
	//
	//   - A version of a parameter can have a maximum of 10 labels.
	//
	//   - You can't attach the same label to different versions of the same
	//     parameter. For example, if version 1 has the label Production, then you can't
	//     attach Production to version 2.
	//
	//   - You can move a label from one version of a parameter to another.
	//
	//   - You can't create a label when you create a new parameter. You must attach a
	//     label to a specific version of a parameter.
	//
	//   - If you no longer want to use a parameter label, then you can either delete
	//     it or move it to a different version of a parameter.
	//
	//   - A label can have a maximum of 100 characters.
	//
	//   - Labels can contain letters (case sensitive), numbers, periods (.), hyphens
	//     (-), or underscores (_).
	//
	//   - Labels can't begin with a number, " aws " or " ssm " (not case sensitive).
	//     If a label fails to meet these requirements, then the label isn't associated
	//     with a parameter and the system displays it in the list of InvalidLabels.
	//
	//   - Parameter names can't contain spaces. The service removes any spaces
	//     specified for the beginning or end of a parameter name. If the specified name
	//     for a parameter contains spaces between characters, the request fails with a
	//     ValidationException error.
	LabelParameterVersion(ctx context.Context, params *ssm.LabelParameterVersionInput, optFns ...func(*Options)) (*ssm.LabelParameterVersionOutput, error)
	// Retrieves all versions of an association for a specific association ID.
	ListAssociationVersions(ctx context.Context, params *ssm.ListAssociationVersionsInput, optFns ...func(*Options)) (*ssm.ListAssociationVersionsOutput, error)
	// Returns all State Manager associations in the current Amazon Web Services
	// account and Amazon Web Services Region. You can limit the results to a specific
	// State Manager association document or managed node by specifying a filter. State
	// Manager is a tool in Amazon Web Services Systems Manager.
	ListAssociations(ctx context.Context, params *ssm.ListAssociationsInput, optFns ...func(*Options)) (*ssm.ListAssociationsOutput, error)
	// An invocation is copy of a command sent to a specific managed node. A command
	// can apply to one or more managed nodes. A command invocation applies to one
	// managed node. For example, if a user runs SendCommand against three managed
	// nodes, then a command invocation is created for each requested managed node ID.
	// ListCommandInvocations provide status about command execution.
	ListCommandInvocations(ctx context.Context, params *ssm.ListCommandInvocationsInput, optFns ...func(*Options)) (*ssm.ListCommandInvocationsOutput, error)
	// Lists the commands requested by users of the Amazon Web Services account.
	ListCommands(ctx context.Context, params *ssm.ListCommandsInput, optFns ...func(*Options)) (*ssm.ListCommandsOutput, error)
	// For a specified resource ID, this API operation returns a list of compliance
	// statuses for different resource types. Currently, you can only specify one
	// resource ID per call. List results depend on the criteria specified in the
	// filter.
	ListComplianceItems(ctx context.Context, params *ssm.ListComplianceItemsInput, optFns ...func(*Options)) (*ssm.ListComplianceItemsOutput, error)
	// Returns a summary count of compliant and non-compliant resources for a
	// compliance type. For example, this call can return State Manager associations,
	// patches, or custom compliance types according to the filter criteria that you
	// specify.
	ListComplianceSummaries(ctx context.Context, params *ssm.ListComplianceSummariesInput, optFns ...func(*Options)) (*ssm.ListComplianceSummariesOutput, error)
	// Amazon Web Services Systems Manager Change Manager is no longer open to new
	// customers. Existing customers can continue to use the service as normal. For
	// more information, see [Amazon Web Services Systems Manager Change Manager availability change].
	//
	// Information about approval reviews for a version of a change template in Change
	// Manager.
	//
	// [Amazon Web Services Systems Manager Change Manager availability change]: https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html
	ListDocumentMetadataHistory(ctx context.Context, params *ssm.ListDocumentMetadataHistoryInput, optFns ...func(*Options)) (*ssm.ListDocumentMetadataHistoryOutput, error)
	// List all versions for a document.
	ListDocumentVersions(ctx context.Context, params *ssm.ListDocumentVersionsInput, optFns ...func(*Options)) (*ssm.ListDocumentVersionsOutput, error)
	// Returns all Systems Manager (SSM) documents in the current Amazon Web Services
	// account and Amazon Web Services Region. You can limit the results of this
	// request by using a filter.
	ListDocuments(ctx context.Context, params *ssm.ListDocumentsInput, optFns ...func(*Options)) (*ssm.ListDocumentsOutput, error)
	// A list of inventory items returned by the request.
	ListInventoryEntries(ctx context.Context, params *ssm.ListInventoryEntriesInput, optFns ...func(*Options)) (*ssm.ListInventoryEntriesOutput, error)
	// Takes in filters and returns a list of managed nodes matching the filter
	// criteria.
	ListNodes(ctx context.Context, params *ssm.ListNodesInput, optFns ...func(*Options)) (*ssm.ListNodesOutput, error)
	// Generates a summary of managed instance/node metadata based on the filters and
	// aggregators you specify. Results are grouped by the input aggregator you
	// specify.
	ListNodesSummary(ctx context.Context, params *ssm.ListNodesSummaryInput, optFns ...func(*Options)) (*ssm.ListNodesSummaryOutput, error)
	// Returns a list of all OpsItem events in the current Amazon Web Services Region
	// and Amazon Web Services account. You can limit the results to events associated
	// with specific OpsItems by specifying a filter.
	ListOpsItemEvents(ctx context.Context, params *ssm.ListOpsItemEventsInput, optFns ...func(*Options)) (*ssm.ListOpsItemEventsOutput, error)
	// Lists all related-item resources associated with a Systems Manager OpsCenter
	// OpsItem. OpsCenter is a tool in Amazon Web Services Systems Manager.
	ListOpsItemRelatedItems(ctx context.Context, params *ssm.ListOpsItemRelatedItemsInput, optFns ...func(*Options)) (*ssm.ListOpsItemRelatedItemsOutput, error)
	// Amazon Web Services Systems Manager calls this API operation when displaying
	// all Application Manager OpsMetadata objects or blobs.
	ListOpsMetadata(ctx context.Context, params *ssm.ListOpsMetadataInput, optFns ...func(*Options)) (*ssm.ListOpsMetadataOutput, error)
	// Returns a resource-level summary count. The summary includes information about
	// compliant and non-compliant statuses and detailed compliance-item severity
	// counts, according to the filter criteria you specify.
	ListResourceComplianceSummaries(ctx context.Context, params *ssm.ListResourceComplianceSummariesInput, optFns ...func(*Options)) (*ssm.ListResourceComplianceSummariesOutput, error)
	// Lists your resource data sync configurations. Includes information about the
	// last time a sync attempted to start, the last sync status, and the last time a
	// sync successfully completed.
	//
	// The number of sync configurations might be too large to return using a single
	// call to ListResourceDataSync . You can limit the number of sync configurations
	// returned by using the MaxResults parameter. To determine whether there are more
	// sync configurations to list, check the value of NextToken in the output. If
	// there are more sync configurations to list, you can request them by specifying
	// the NextToken returned in the call to the parameter of a subsequent call.
	ListResourceDataSync(ctx context.Context, params *ssm.ListResourceDataSyncInput, optFns ...func(*Options)) (*ssm.ListResourceDataSyncOutput, error)
	// Returns a list of the tags assigned to the specified resource.
	//
	// For information about the ID format for each supported resource type, see AddTagsToResource.
	ListTagsForResource(ctx context.Context, params *ssm.ListTagsForResourceInput, optFns ...func(*Options)) (*ssm.ListTagsForResourceOutput, error)
	// Shares a Amazon Web Services Systems Manager document (SSM document)publicly or
	// privately. If you share a document privately, you must specify the Amazon Web
	// Services user IDs for those people who can use the document. If you share a
	// document publicly, you must specify All as the account ID.
	ModifyDocumentPermission(ctx context.Context, params *ssm.ModifyDocumentPermissionInput, optFns ...func(*Options)) (*ssm.ModifyDocumentPermissionOutput, error)
	// Registers a compliance type and other compliance details on a designated
	// resource. This operation lets you register custom compliance details with a
	// resource. This call overwrites existing compliance information on the resource,
	// so you must provide a full list of compliance items each time that you send the
	// request.
	//
	// ComplianceType can be one of the following:
	//
	//   - ExecutionId: The execution ID when the patch, association, or custom
	//     compliance item was applied.
	//
	//   - ExecutionType: Specify patch, association, or Custom: string .
	//
	//   - ExecutionTime. The time the patch, association, or custom compliance item
	//     was applied to the managed node.
	//
	// For State Manager associations, this represents the time when compliance status
	//
	//	was captured by the Systems Manager service during its internal compliance
	//	aggregation workflow, not necessarily when the association was executed on the
	//	managed node. State Manager updates compliance information for all associations
	//	on an instance whenever any association executes, which may result in multiple
	//	associations showing the same execution time.
	//
	//	- Id: The patch, association, or custom compliance ID.
	//
	//	- Title: A title.
	//
	//	- Status: The status of the compliance item. For example, approved for
	//	patches, or Failed for associations.
	//
	//	- Severity: A patch severity. For example, Critical .
	//
	//	- DocumentName: An SSM document name. For example, AWS-RunPatchBaseline .
	//
	//	- DocumentVersion: An SSM document version number. For example, 4.
	//
	//	- Classification: A patch classification. For example, security updates .
	//
	//	- PatchBaselineId: A patch baseline ID.
	//
	//	- PatchSeverity: A patch severity. For example, Critical .
	//
	//	- PatchState: A patch state. For example, InstancesWithFailedPatches .
	//
	//	- PatchGroup: The name of a patch group.
	//
	//	- InstalledTime: The time the association, patch, or custom compliance item
	//	was applied to the resource. Specify the time by using the following format:
	//	yyyy-MM-dd'T'HH:mm:ss'Z'
	PutComplianceItems(ctx context.Context, params *ssm.PutComplianceItemsInput, optFns ...func(*Options)) (*ssm.PutComplianceItemsOutput, error)
	// Bulk update custom inventory items on one or more managed nodes. The request
	// adds an inventory item, if it doesn't already exist, or updates an inventory
	// item, if it does exist.
	PutInventory(ctx context.Context, params *ssm.PutInventoryInput, optFns ...func(*Options)) (*ssm.PutInventoryOutput, error)
	// Create or update a parameter in Parameter Store.
	PutParameter(ctx context.Context, params *ssm.PutParameterInput, optFns ...func(*Options)) (*ssm.PutParameterOutput, error)
	// Creates or updates a Systems Manager resource policy. A resource policy helps
	// you to define the IAM entity (for example, an Amazon Web Services account) that
	// can manage your Systems Manager resources. The following resources support
	// Systems Manager resource policies.
	//
	//   - OpsItemGroup - The resource policy for OpsItemGroup enables Amazon Web
	//     Services accounts to view and interact with OpsCenter operational work items
	//     (OpsItems).
	//
	//   - Parameter - The resource policy is used to share a parameter with other
	//     accounts using Resource Access Manager (RAM).
	//
	// To share a parameter, it must be in the advanced parameter tier. For
	//
	//	information about parameter tiers, see [Managing parameter tiers]. For information about changing an
	//	existing standard parameter to an advanced parameter, see [Changing a standard parameter to an advanced parameter].
	//
	// To share a SecureString parameter, it must be encrypted with a customer managed
	//
	//	key, and you must share the key separately through Key Management Service.
	//	Amazon Web Services managed keys cannot be shared. Parameters encrypted with the
	//	default Amazon Web Services managed key can be updated to use a customer managed
	//	key instead. For KMS key definitions, see [KMS concepts]in the Key Management Service
	//	Developer Guide.
	//
	// While you can share a parameter using the Systems Manager PutResourcePolicy
	//
	//	operation, we recommend using Resource Access Manager (RAM) instead. This is
	//	because using PutResourcePolicy requires the extra step of promoting the
	//	parameter to a standard RAM Resource Share using the RAM [PromoteResourceShareCreatedFromPolicy]API operation.
	//	Otherwise, the parameter won't be returned by the Systems Manager [DescribeParameters]API
	//	operation using the --shared option.
	//
	// For more information, see [Sharing a parameter]in the Amazon Web Services Systems Manager User Guide
	//
	// [Sharing a parameter]: https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-shared-parameters.html#share
	//
	// [Managing parameter tiers]: https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-advanced-parameters.html
	// [Changing a standard parameter to an advanced parameter]: https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-advanced-parameters.html#parameter-store-advanced-parameters-enabling
	// [PromoteResourceShareCreatedFromPolicy]: https://docs.aws.amazon.com/ram/latest/APIReference/API_PromoteResourceShareCreatedFromPolicy.html
	// [KMS concepts]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html
	// [DescribeParameters]: https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeParameters.html
	PutResourcePolicy(ctx context.Context, params *ssm.PutResourcePolicyInput, optFns ...func(*Options)) (*ssm.PutResourcePolicyOutput, error)
	// Defines the default patch baseline for the relevant operating system.
	//
	// To reset the Amazon Web Services-predefined patch baseline as the default,
	// specify the full patch baseline Amazon Resource Name (ARN) as the baseline ID
	// value. For example, for CentOS, specify
	// arn:aws:ssm:us-east-2:733109147000:patchbaseline/pb-0574b43a65ea646ed instead of
	// pb-0574b43a65ea646ed .
	RegisterDefaultPatchBaseline(ctx context.Context, params *ssm.RegisterDefaultPatchBaselineInput, optFns ...func(*Options)) (*ssm.RegisterDefaultPatchBaselineOutput, error)
	// Registers a patch baseline for a patch group.
	RegisterPatchBaselineForPatchGroup(ctx context.Context, params *ssm.RegisterPatchBaselineForPatchGroupInput, optFns ...func(*Options)) (*ssm.RegisterPatchBaselineForPatchGroupOutput, error)
	// Registers a target with a maintenance window.
	RegisterTargetWithMaintenanceWindow(ctx context.Context, params *ssm.RegisterTargetWithMaintenanceWindowInput, optFns ...func(*Options)) (*ssm.RegisterTargetWithMaintenanceWindowOutput, error)
	// Adds a new task to a maintenance window.
	RegisterTaskWithMaintenanceWindow(ctx context.Context, params *ssm.RegisterTaskWithMaintenanceWindowInput, optFns ...func(*Options)) (*ssm.RegisterTaskWithMaintenanceWindowOutput, error)
	// Removes tag keys from the specified resource.
	RemoveTagsFromResource(ctx context.Context, params *ssm.RemoveTagsFromResourceInput, optFns ...func(*Options)) (*ssm.RemoveTagsFromResourceOutput, error)
	// ServiceSetting is an account-level setting for an Amazon Web Services service.
	// This setting defines how a user interacts with or uses a service or a feature of
	// a service. For example, if an Amazon Web Services service charges money to the
	// account based on feature or service usage, then the Amazon Web Services service
	// team might create a default setting of "false". This means the user can't use
	// this feature unless they change the setting to "true" and intentionally opt in
	// for a paid feature.
	//
	// Services map a SettingId object to a setting value. Amazon Web Services
	// services teams define the default value for a SettingId . You can't create a new
	// SettingId , but you can overwrite the default value if you have the
	// ssm:UpdateServiceSetting permission for the setting. Use the GetServiceSetting API operation to
	// view the current value. Use the UpdateServiceSettingAPI operation to change the default setting.
	//
	// Reset the service setting for the account to the default value as provisioned
	// by the Amazon Web Services service team.
	ResetServiceSetting(ctx context.Context, params *ssm.ResetServiceSettingInput, optFns ...func(*Options)) (*ssm.ResetServiceSettingOutput, error)
	// Reconnects a session to a managed node after it has been disconnected.
	// Connections can be resumed for disconnected sessions, but not terminated
	// sessions.
	//
	// This command is primarily for use by client machines to automatically reconnect
	// during intermittent network issues. It isn't intended for any other use.
	ResumeSession(ctx context.Context, params *ssm.ResumeSessionInput, optFns ...func(*Options)) (*ssm.ResumeSessionOutput, error)
	// Sends a signal to an Automation execution to change the current behavior or
	// status of the execution.
	SendAutomationSignal(ctx context.Context, params *ssm.SendAutomationSignalInput, optFns ...func(*Options)) (*ssm.SendAutomationSignalOutput, error)
	// Runs commands on one or more managed nodes.
	SendCommand(ctx context.Context, params *ssm.SendCommandInput, optFns ...func(*Options)) (*ssm.SendCommandOutput, error)
	// Starts the workflow for just-in-time node access sessions.
	StartAccessRequest(ctx context.Context, params *ssm.StartAccessRequestInput, optFns ...func(*Options)) (*ssm.StartAccessRequestOutput, error)
	// Runs an association immediately and only one time. This operation can be
	// helpful when troubleshooting associations.
	StartAssociationsOnce(ctx context.Context, params *ssm.StartAssociationsOnceInput, optFns ...func(*Options)) (*ssm.StartAssociationsOnceOutput, error)
	// Initiates execution of an Automation runbook.
	StartAutomationExecution(ctx context.Context, params *ssm.StartAutomationExecutionInput, optFns ...func(*Options)) (*ssm.StartAutomationExecutionOutput, error)
	// Amazon Web Services Systems Manager Change Manager is no longer open to new
	// customers. Existing customers can continue to use the service as normal. For
	// more information, see [Amazon Web Services Systems Manager Change Manager availability change].
	//
	// Creates a change request for Change Manager. The Automation runbooks specified
	// in the change request run only after all required approvals for the change
	// request have been received.
	//
	// [Amazon Web Services Systems Manager Change Manager availability change]: https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html
	StartChangeRequestExecution(ctx context.Context, params *ssm.StartChangeRequestExecutionInput, optFns ...func(*Options)) (*ssm.StartChangeRequestExecutionOutput, error)
	// Initiates the process of creating a preview showing the effects that running a
	// specified Automation runbook would have on the targeted resources.
	StartExecutionPreview(ctx context.Context, params *ssm.StartExecutionPreviewInput, optFns ...func(*Options)) (*ssm.StartExecutionPreviewOutput, error)
	// Initiates a connection to a target (for example, a managed node) for a Session
	// Manager session. Returns a URL and token that can be used to open a WebSocket
	// connection for sending input and receiving outputs.
	//
	// Amazon Web Services CLI usage: start-session is an interactive command that
	// requires the Session Manager plugin to be installed on the client machine making
	// the call. For information, see [Install the Session Manager plugin for the Amazon Web Services CLI]in the Amazon Web Services Systems Manager User
	// Guide.
	//
	// Amazon Web Services Tools for PowerShell usage: Start-SSMSession isn't
	// currently supported by Amazon Web Services Tools for PowerShell on Windows local
	// machines.
	//
	// [Install the Session Manager plugin for the Amazon Web Services CLI]: https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html
	StartSession(ctx context.Context, params *ssm.StartSessionInput, optFns ...func(*Options)) (*ssm.StartSessionOutput, error)
	// Stop an Automation that is currently running.
	StopAutomationExecution(ctx context.Context, params *ssm.StopAutomationExecutionInput, optFns ...func(*Options)) (*ssm.StopAutomationExecutionOutput, error)
	// Permanently ends a session and closes the data connection between the Session
	// Manager client and SSM Agent on the managed node. A terminated session can't be
	// resumed.
	TerminateSession(ctx context.Context, params *ssm.TerminateSessionInput, optFns ...func(*Options)) (*ssm.TerminateSessionOutput, error)
	// Remove a label or labels from a parameter.
	//
	// Parameter names can't contain spaces. The service removes any spaces specified
	// for the beginning or end of a parameter name. If the specified name for a
	// parameter contains spaces between characters, the request fails with a
	// ValidationException error.
	UnlabelParameterVersion(ctx context.Context, params *ssm.UnlabelParameterVersionInput, optFns ...func(*Options)) (*ssm.UnlabelParameterVersionOutput, error)
	// Updates an association. You can update the association name and version, the
	// document version, schedule, parameters, and Amazon Simple Storage Service
	// (Amazon S3) output. When you call UpdateAssociation , the system removes all
	// optional parameters from the request and overwrites the association with null
	// values for those parameters. This is by design. You must specify all optional
	// parameters in the call, even if you are not changing the parameters. This
	// includes the Name parameter. Before calling this API action, we recommend that
	// you call the DescribeAssociationAPI operation and make a note of all optional parameters required
	// for your UpdateAssociation call.
	//
	// In order to call this API operation, a user, group, or role must be granted
	// permission to call the DescribeAssociationAPI operation. If you don't have permission to call
	// DescribeAssociation , then you receive the following error: An error occurred
	// (AccessDeniedException) when calling the UpdateAssociation operation: User:
	// isn't authorized to perform: ssm:DescribeAssociation on resource:
	//
	// When you update an association, the association immediately runs against the
	// specified targets. You can add the ApplyOnlyAtCronInterval parameter to run the
	// association during the next schedule run.
	UpdateAssociation(ctx context.Context, params *ssm.UpdateAssociationInput, optFns ...func(*Options)) (*ssm.UpdateAssociationOutput, error)
	// Updates the status of the Amazon Web Services Systems Manager document (SSM
	// document) associated with the specified managed node.
	//
	// UpdateAssociationStatus is primarily used by the Amazon Web Services Systems
	// Manager Agent (SSM Agent) to report status updates about your associations and
	// is only used for associations created with the InstanceId legacy parameter.
	UpdateAssociationStatus(ctx context.Context, params *ssm.UpdateAssociationStatusInput, optFns ...func(*Options)) (*ssm.UpdateAssociationStatusOutput, error)
	// Updates one or more values for an SSM document.
	UpdateDocument(ctx context.Context, params *ssm.UpdateDocumentInput, optFns ...func(*Options)) (*ssm.UpdateDocumentOutput, error)
	// Set the default version of a document.
	//
	// If you change a document version for a State Manager association, Systems
	// Manager immediately runs the association unless you previously specifed the
	// apply-only-at-cron-interval parameter.
	UpdateDocumentDefaultVersion(ctx context.Context, params *ssm.UpdateDocumentDefaultVersionInput, optFns ...func(*Options)) (*ssm.UpdateDocumentDefaultVersionOutput, error)
	// Amazon Web Services Systems Manager Change Manager is no longer open to new
	// customers. Existing customers can continue to use the service as normal. For
	// more information, see [Amazon Web Services Systems Manager Change Manager availability change].
	//
	// Updates information related to approval reviews for a specific version of a
	// change template in Change Manager.
	//
	// [Amazon Web Services Systems Manager Change Manager availability change]: https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html
	UpdateDocumentMetadata(ctx context.Context, params *ssm.UpdateDocumentMetadataInput, optFns ...func(*Options)) (*ssm.UpdateDocumentMetadataOutput, error)
	// Updates an existing maintenance window. Only specified parameters are modified.
	//
	// The value you specify for Duration determines the specific end time for the
	// maintenance window based on the time it begins. No maintenance window tasks are
	// permitted to start after the resulting endtime minus the number of hours you
	// specify for Cutoff . For example, if the maintenance window starts at 3 PM, the
	// duration is three hours, and the value you specify for Cutoff is one hour, no
	// maintenance window tasks can start after 5 PM.
	UpdateMaintenanceWindow(ctx context.Context, params *ssm.UpdateMaintenanceWindowInput, optFns ...func(*Options)) (*ssm.UpdateMaintenanceWindowOutput, error)
	// Modifies the target of an existing maintenance window. You can change the
	// following:
	//
	//   - Name
	//
	//   - Description
	//
	//   - Owner
	//
	//   - IDs for an ID target
	//
	//   - Tags for a Tag target
	//
	//   - From any supported tag type to another. The three supported tag types are
	//     ID target, Tag target, and resource group. For more information, see Target.
	//
	// If a parameter is null, then the corresponding field isn't modified.
	UpdateMaintenanceWindowTarget(ctx context.Context, params *ssm.UpdateMaintenanceWindowTargetInput, optFns ...func(*Options)) (*ssm.UpdateMaintenanceWindowTargetOutput, error)
	// Modifies a task assigned to a maintenance window. You can't change the task
	// type, but you can change the following values:
	//
	//   - TaskARN . For example, you can change a RUN_COMMAND task from
	//     AWS-RunPowerShellScript to AWS-RunShellScript .
	//
	//   - ServiceRoleArn
	//
	//   - TaskInvocationParameters
	//
	//   - Priority
	//
	//   - MaxConcurrency
	//
	//   - MaxErrors
	//
	// One or more targets must be specified for maintenance window Run Command-type
	// tasks. Depending on the task, targets are optional for other maintenance window
	// task types (Automation, Lambda, and Step Functions). For more information about
	// running tasks that don't specify targets, see [Registering maintenance window tasks without targets]in the Amazon Web Services
	// Systems Manager User Guide.
	//
	// If the value for a parameter in UpdateMaintenanceWindowTask is null, then the
	// corresponding field isn't modified. If you set Replace to true, then all fields
	// required by the RegisterTaskWithMaintenanceWindowoperation are required for this request. Optional fields that
	// aren't specified are set to null.
	//
	// When you update a maintenance window task that has options specified in
	// TaskInvocationParameters , you must provide again all the
	// TaskInvocationParameters values that you want to retain. The values you don't
	// specify again are removed. For example, suppose that when you registered a Run
	// Command task, you specified TaskInvocationParameters values for Comment ,
	// NotificationConfig , and OutputS3BucketName . If you update the maintenance
	// window task and specify only a different OutputS3BucketName value, the values
	// for Comment and NotificationConfig are removed.
	//
	// [Registering maintenance window tasks without targets]: https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows-targetless-tasks.html
	UpdateMaintenanceWindowTask(ctx context.Context, params *ssm.UpdateMaintenanceWindowTaskInput, optFns ...func(*Options)) (*ssm.UpdateMaintenanceWindowTaskOutput, error)
	// Changes the Identity and Access Management (IAM) role that is assigned to the
	// on-premises server, edge device, or virtual machines (VM). IAM roles are first
	// assigned to these hybrid nodes during the activation process. For more
	// information, see CreateActivation.
	UpdateManagedInstanceRole(ctx context.Context, params *ssm.UpdateManagedInstanceRoleInput, optFns ...func(*Options)) (*ssm.UpdateManagedInstanceRoleOutput, error)
	// Edit or change an OpsItem. You must have permission in Identity and Access
	// Management (IAM) to update an OpsItem. For more information, see [Set up OpsCenter]in the Amazon
	// Web Services Systems Manager User Guide.
	//
	// Operations engineers and IT professionals use Amazon Web Services Systems
	// Manager OpsCenter to view, investigate, and remediate operational issues
	// impacting the performance and health of their Amazon Web Services resources. For
	// more information, see [Amazon Web Services Systems Manager OpsCenter]in the Amazon Web Services Systems Manager User Guide.
	//
	// [Amazon Web Services Systems Manager OpsCenter]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html
	// [Set up OpsCenter]: https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-setup.html
	UpdateOpsItem(ctx context.Context, params *ssm.UpdateOpsItemInput, optFns ...func(*Options)) (*ssm.UpdateOpsItemOutput, error)
	// Amazon Web Services Systems Manager calls this API operation when you edit
	// OpsMetadata in Application Manager.
	UpdateOpsMetadata(ctx context.Context, params *ssm.UpdateOpsMetadataInput, optFns ...func(*Options)) (*ssm.UpdateOpsMetadataOutput, error)
	// Modifies an existing patch baseline. Fields not specified in the request are
	// left unchanged.
	//
	// For information about valid key-value pairs in PatchFilters for each supported
	// operating system type, see PatchFilter.
	UpdatePatchBaseline(ctx context.Context, params *ssm.UpdatePatchBaselineInput, optFns ...func(*Options)) (*ssm.UpdatePatchBaselineOutput, error)
	// Update a resource data sync. After you create a resource data sync for a
	// Region, you can't change the account options for that sync. For example, if you
	// create a sync in the us-east-2 (Ohio) Region and you choose the Include only
	// the current account option, you can't edit that sync later and choose the
	// Include all accounts from my Organizations configuration option. Instead, you
	// must delete the first resource data sync, and create a new one.
	//
	// This API operation only supports a resource data sync that was created with a
	// SyncFromSource SyncType .
	UpdateResourceDataSync(ctx context.Context, params *ssm.UpdateResourceDataSyncInput, optFns ...func(*Options)) (*ssm.UpdateResourceDataSyncOutput, error)
	// ServiceSetting is an account-level setting for an Amazon Web Services service.
	// This setting defines how a user interacts with or uses a service or a feature of
	// a service. For example, if an Amazon Web Services service charges money to the
	// account based on feature or service usage, then the Amazon Web Services service
	// team might create a default setting of "false". This means the user can't use
	// this feature unless they change the setting to "true" and intentionally opt in
	// for a paid feature.
	//
	// Services map a SettingId object to a setting value. Amazon Web Services
	// services teams define the default value for a SettingId . You can't create a new
	// SettingId , but you can overwrite the default value if you have the
	// ssm:UpdateServiceSetting permission for the setting. Use the GetServiceSetting API operation to
	// view the current value. Or, use the ResetServiceSettingto change the value back to the original
	// value defined by the Amazon Web Services service team.
	//
	// Update the service setting for the account.
	UpdateServiceSetting(ctx context.Context, params *ssm.UpdateServiceSettingInput, optFns ...func(*Options)) (*ssm.UpdateServiceSettingOutput, error)
}

SSM provides an interface to the AWS SSM service.

type STS

type STS interface {
	// GetCallerIdentity returns details about the IAM user or role whose credentials are used to call
	// the operation. No permissions are required to perform this operation. If an
	// administrator attaches a policy to your identity that explicitly denies access
	// to the sts:GetCallerIdentity action, you can still perform this operation.
	// Permissions are not required because the same information is returned when
	// access is denied. To view an example response, see I Am Not Authorized to
	// Perform: iam:DeleteVirtualMFADevice (https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_access-denied-delete-mfa)
	// in the IAM User Guide.
	GetCallerIdentity(ctx context.Context, params *sts.GetCallerIdentityInput, optFns ...func(*sts.Options)) (*sts.GetCallerIdentityOutput, error)
}

STS provides an interface to the AWS STS service.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL