export interface Certificate {
    /** The Amazon Resource Name (ARN) of the certificate. */
    CertificateArn?: string;
    /** Indicates whether the certificate is the default certificate. Do not set this value when specifying a certificate as an input. This value is not included in the output when describing a listener, but  */
    IsDefault?: boolean;
}
export interface Tag {
    /** The key of the tag. */
    Key: string;
    /** The value of the tag. */
    Value?: string;
}
export interface RevocationContent {
    /** The Amazon S3 bucket for the revocation file. */
    S3Bucket?: string;
    /** The Amazon S3 path for the revocation file. */
    S3Key?: string;
    /** The Amazon S3 object version of the revocation file. */
    S3ObjectVersion?: string;
    /** The type of revocation file. */
    RevocationType?: 'CRL';
}
export interface Action {
    /** The type of action. */
    Type: 'forward' | 'authenticate-oidc' | 'authenticate-cognito' | 'redirect' | 'fixed-response' | 'jwt-validation';
    /** The Amazon Resource Name (ARN) of the target group. Specify only when Type is forward and you want to route to a single target group. To route to multiple target groups, you must use ForwardConfig ins */
    TargetGroupArn?: string;
    /** [HTTPS listeners] Information about an identity provider that is compliant with OpenID Connect (OIDC). Specify only when Type is authenticate-oidc. */
    AuthenticateOidcConfig?: any;
    /** [HTTPS listeners] Information for using Amazon Cognito to authenticate users. Specify only when Type is authenticate-cognito. */
    AuthenticateCognitoConfig?: any;
    /** The order for the action. This value is required for rules with multiple actions. The action with the lowest value for order is performed first. */
    Order?: number;
    /** [Application Load Balancer] Information for creating a redirect action. Specify only when Type is redirect. */
    RedirectConfig?: any;
    /** [Application Load Balancer] Information for creating an action that returns a custom HTTP response. Specify only when Type is fixed-response. */
    FixedResponseConfig?: any;
    /** Information for creating an action that distributes requests among multiple target groups. Specify only when Type is forward. If you specify both ForwardConfig and TargetGroupArn, you can specify only */
    ForwardConfig?: any;
    /** [HTTPS listeners] Information for validating JWT access tokens in client requests. Specify only when Type is jwt-validation. */
    JwtValidationConfig?: any;
}
export interface MutualAuthenticationAttributes {
    /** The client certificate handling method. Options are off, passthrough or verify. The default value is off. */
    Mode?: string;
    /** The Amazon Resource Name (ARN) of the trust store. */
    TrustStoreArn?: string;
    /** Indicates whether expired client certificates are ignored. */
    IgnoreClientCertificateExpiry?: boolean;
    /** Indicates a shared trust stores association status. */
    TrustStoreAssociationStatus?: 'active' | 'removed';
    /** Indicates whether trust store CA certificate names are advertised. */
    AdvertiseTrustStoreCaNames?: 'on' | 'off';
}
export interface SubnetMapping {
    /** The ID of the subnet. */
    SubnetId?: string;
    /** [Network Load Balancers] The allocation ID of the Elastic IP address for an internet-facing load balancer. */
    AllocationId?: string;
    /** [Network Load Balancers] The private IPv4 address for an internal load balancer. */
    PrivateIPv4Address?: string;
    /** [Network Load Balancers] The IPv6 address. */
    IPv6Address?: string;
    /** [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or auto_assigned to use an IPv6 prefix selected at ra */
    SourceNatIpv6Prefix?: string;
}
export interface IpamPools {
    /** The ID of the IPv4 IPAM pool. */
    Ipv4IpamPoolId?: string;
}
export interface RuleCondition {
    /** The field in the HTTP request. The following are the possible values: http-header http-request-method host-header path-pattern query-string source-ip */
    Field?: string;
    /** The condition value. Specify only when Field is host-header or path-pattern. Alternatively, to specify multiple host names or multiple path patterns, use HostHeaderConfig or PathPatternConfig. If Fiel */
    Values?: any[];
    /** Information for a host header condition. Specify only when Field is host-header. */
    HostHeaderConfig?: any;
    /** Information for a path pattern condition. Specify only when Field is path-pattern. */
    PathPatternConfig?: any;
    /** Information for an HTTP header condition. Specify only when Field is http-header. */
    HttpHeaderConfig?: any;
    /** Information for a query string condition. Specify only when Field is query-string. */
    QueryStringConfig?: any;
    /** Information for an HTTP method condition. Specify only when Field is http-request-method. */
    HttpRequestMethodConfig?: any;
    /** Information for a source IP condition. Specify only when Field is source-ip. */
    SourceIpConfig?: any;
    /** The regular expressions to match against the condition field. The maximum length of each string is 128 characters. Specify only when Field is http-header, host-header, or path-pattern. */
    RegexValues?: any[];
}
export interface RuleTransform {
    /** The type of transform. host-header-rewrite - Rewrite the host header. url-rewrite - Rewrite the request URL. */
    Type: 'host-header-rewrite' | 'url-rewrite';
    /** Information about a host header rewrite transform. This transform modifies the host header in an HTTP request. Specify only when Type is host-header-rewrite. */
    HostHeaderRewriteConfig?: any;
    /** Information about a URL rewrite transform. This transform modifies the request URL. Specify only when Type is url-rewrite. */
    UrlRewriteConfig?: any;
}
export interface Matcher {
    /** For Application Load Balancers, you can specify values between 200 and 499, with the default value being 200. You can specify multiple values (for example, "200,202") or a range of values (for example */
    HttpCode?: string;
    /** You can specify values between 0 and 99. You can specify multiple values (for example, "0,1") or a range of values (for example, "0-5"). The default value is 12. */
    GrpcCode?: string;
}
export interface TargetDescription {
    /** The ID of the target. If the target type of the target group is instance, specify an instance ID. If the target type is ip, specify an IP address. If the target type is lambda, specify the ARN of the  */
    Id: string;
    /** The port on which the target is listening. If the target group protocol is GENEVE, the supported port is 6081. If the target type is alb, the targeted Application Load Balancer must have at least one  */
    Port?: number;
    /** An Availability Zone or all. This determines whether the target receives traffic from the load balancer nodes in the specified Availability Zone or from all enabled Availability Zones for the load bal */
    AvailabilityZone?: string;
    /** The server ID for the targets. This value is required if the protocol is QUIC or TCP_QUIC and can't be used with other protocols. The ID consists of the 0x prefix followed by 16 hexadecimal characters */
    QuicServerId?: string;
}
export interface MinimumLoadBalancerCapacity {
    /** The number of capacity units. */
    CapacityUnits?: number;
}
export interface ListenerAttribute {
    /** The name of the attribute. The following attribute is supported by Network Load Balancers, and Gateway Load Balancers. tcp.idle_timeout.seconds - The tcp idle timeout value, in seconds. The valid rang */
    Key?: string;
    /** The value of the attribute. */
    Value?: string;
}
export interface LoadBalancerAttribute {
    /** The name of the attribute. The following attributes are supported by all load balancers: deletion_protection.enabled - Indicates whether deletion protection is enabled. The value is true or false. The */
    Key?: string;
    /** The value of the attribute. */
    Value?: string;
}
export interface TargetGroupAttribute {
    /** The name of the attribute. The following attributes are supported by all load balancers: deregistration_delay.timeout_seconds - The amount of time, in seconds, for Elastic Load Balancing to wait befor */
    Key?: string;
    /** The value of the attribute. */
    Value?: string;
}
export interface RulePriorityPair {
    /** The Amazon Resource Name (ARN) of the rule. */
    RuleArn?: string;
    /** The rule priority. */
    Priority?: number;
}
export interface AddListenerCertificatesInput {
    /** The certificate to add. You can specify one certificate per call. Set CertificateArn to the certificate ARN but do not set IsDefault. */
    Certificates: Certificate[];
    /** The Amazon Resource Name (ARN) of the listener. */
    ListenerArn: string;
}
export interface AddTagsInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    ResourceArns: string[];
    /** The tags. */
    Tags: Tag[];
}
export interface AddTrustStoreRevocationsInput {
    /** The Amazon Resource Name (ARN) of the trust store. */
    TrustStoreArn: string;
    /** The revocation file to add. */
    RevocationContents?: RevocationContent[];
}
export interface CreateListenerInput {
    /** The actions for the default rule. */
    DefaultActions: Action[];
    /** The Amazon Resource Name (ARN) of the load balancer. */
    LoadBalancerArn: string;
    /** [TLS listeners] The name of the Application-Layer Protocol Negotiation (ALPN) policy. You can specify one policy name. The following are the possible values: HTTP1Only HTTP2Only HTTP2Optional HTTP2Pre */
    AlpnPolicy?: string[];
    /** [HTTPS and TLS listeners] The default certificate for the listener. You must provide exactly one certificate. Set CertificateArn to the certificate ARN but do not set IsDefault. */
    Certificates?: Certificate[];
    /** [HTTPS listeners] The mutual authentication configuration information. */
    MutualAuthentication?: MutualAuthenticationAttributes;
    /** The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer. */
    Port?: number;
    /** The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, */
    Protocol?: 'HTTP' | 'HTTPS' | 'TCP' | 'TLS' | 'UDP' | 'TCP_UDP' | 'GENEVE' | 'QUIC' | 'TCP_QUIC';
    /** [HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported. For more information, see Security policies in the Application Load Balancers Guide and Security p */
    SslPolicy?: string;
    /** The tags to assign to the listener. */
    Tags?: Tag[];
}
export interface CreateLoadBalancerInput {
    /** The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a  */
    Name: string;
    /** [Application Load Balancers on Outposts] The ID of the customer-owned address pool (CoIP pool). */
    CustomerOwnedIpv4Pool?: string;
    /** [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be dualstack. The default value is off. */
    EnablePrefixForIpv6SourceNat?: 'on' | 'off';
    /** The IP address type. Internal load balancers must use ipv4. [Application Load Balancers] The possible values are ipv4 (IPv4 addresses), dualstack (IPv4 and IPv6 addresses), and dualstack-without-publi */
    IpAddressType?: 'ipv4' | 'dualstack' | 'dualstack-without-public-ipv4';
    /** [Application Load Balancers] The IPAM pools to use with the load balancer. */
    IpamPools?: IpamPools;
    /** The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Inte */
    Scheme?: 'internet-facing' | 'internal';
    /** [Application Load Balancers and Network Load Balancers] The IDs of the security groups for the load balancer. */
    SecurityGroups?: string[];
    /** The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. [Application Load Balancers] You must specify subnets f */
    SubnetMappings?: SubnetMapping[];
    /** The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappin */
    Subnets?: string[];
    /** The tags to assign to the load balancer. */
    Tags?: Tag[];
    /** The type of load balancer. The default is application. */
    Type?: 'application' | 'network' | 'gateway';
}
export interface CreateRuleInput {
    /** The actions. */
    Actions: Action[];
    /** The conditions. */
    Conditions: RuleCondition[];
    /** The Amazon Resource Name (ARN) of the listener. */
    ListenerArn: string;
    /** The rule priority. A listener can't have multiple rules with the same priority. */
    Priority: number;
    /** The tags to assign to the rule. */
    Tags?: Tag[];
    /** The transforms to apply to requests that match this rule. You can add one host header rewrite transform and one URL rewrite transform. */
    Transforms?: RuleTransform[];
}
export interface CreateTargetGroupInput {
    /** The name of the target group. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with */
    Name: string;
    /** Indicates whether health checks are enabled. If the target type is lambda, health checks are disabled by default but can be enabled. If the target type is instance, ip, or alb, health checks are alway */
    HealthCheckEnabled?: boolean;
    /** The approximate amount of time, in seconds, between health checks of an individual target. The range is 5-300. If the target group protocol is TCP, TLS, UDP, TCP_UDP, QUIC, TCP_QUIC, HTTP or HTTPS, th */
    HealthCheckIntervalSeconds?: number;
    /** [HTTP/HTTPS health checks] The destination for health checks on the targets. [HTTP1 or HTTP2 protocol version] The ping path. The default is /. [GRPC protocol version] The path of a custom health chec */
    HealthCheckPath?: string;
    /** The port the load balancer uses when performing health checks on targets. If the protocol is HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, QUIC, or TCP_QUIC the default is traffic-port, which is the port on wh */
    HealthCheckPort?: string;
    /** The protocol the load balancer uses when performing health checks on targets. For Application Load Balancers, the default is HTTP. For Network Load Balancers and Gateway Load Balancers, the default is */
    HealthCheckProtocol?: 'HTTP' | 'HTTPS' | 'TCP' | 'TLS' | 'UDP' | 'TCP_UDP' | 'GENEVE' | 'QUIC' | 'TCP_QUIC';
    /** The amount of time, in seconds, during which no response from a target means a failed health check. The range is 2–120 seconds. For target groups with a protocol of HTTP, the default is 6 seconds. For */
    HealthCheckTimeoutSeconds?: number;
    /** The number of consecutive health check successes required before considering a target healthy. The range is 2-10. If the target group protocol is TCP, TCP_UDP, UDP, TLS, HTTP or HTTPS, the default is  */
    HealthyThresholdCount?: number;
    /** The IP address type. The default value is ipv4. */
    IpAddressType?: 'ipv4' | 'ipv6';
    /** [HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a successful response from a target. For target groups with a protocol of TCP, TCP_UDP, UDP, QUIC, TCP_QUIC, or TLS the range */
    Matcher?: Matcher;
    /** The port on which the targets receive traffic. This port is used unless you specify a port override when registering the target. If the target is a Lambda function, this parameter does not apply. If t */
    Port?: number;
    /** The protocol to use for routing traffic to the targets. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UD */
    Protocol?: 'HTTP' | 'HTTPS' | 'TCP' | 'TLS' | 'UDP' | 'TCP_UDP' | 'GENEVE' | 'QUIC' | 'TCP_QUIC';
    /** [HTTP/HTTPS protocol] The protocol version. Specify GRPC to send requests to targets using gRPC. Specify HTTP2 to send requests to targets using HTTP/2. The default is HTTP1, which sends requests to t */
    ProtocolVersion?: string;
    /** The tags to assign to the target group. */
    Tags?: Tag[];
    /** The port on which the target control agent and application load balancer exchange management traffic for the target optimizer feature. */
    TargetControlPort?: number;
    /** The type of target that you must specify when registering targets with this target group. You can't specify targets for a target group using more than one target type. instance - Register targets by i */
    TargetType?: 'instance' | 'ip' | 'lambda' | 'alb';
    /** The number of consecutive health check failures required before considering a target unhealthy. The range is 2-10. If the target group protocol is TCP, TCP_UDP, UDP, TLS, QUIC, TCP_QUIC, HTTP or HTTPS */
    UnhealthyThresholdCount?: number;
    /** The identifier of the virtual private cloud (VPC). If the target is a Lambda function, this parameter does not apply. Otherwise, this parameter is required. */
    VpcId?: string;
}
export interface CreateTrustStoreInput {
    /** The Amazon S3 bucket for the ca certificates bundle. */
    CaCertificatesBundleS3Bucket: string;
    /** The Amazon S3 path for the ca certificates bundle. */
    CaCertificatesBundleS3Key: string;
    /** The name of the trust store. This name must be unique per region and can't be changed after creation. */
    Name: string;
    /** The Amazon S3 object version for the ca certificates bundle. If undefined the current version is used. */
    CaCertificatesBundleS3ObjectVersion?: string;
    /** The tags to assign to the trust store. */
    Tags?: Tag[];
}
export interface DeleteListenerInput {
    /** The Amazon Resource Name (ARN) of the listener. */
    ListenerArn: string;
}
export interface DeleteLoadBalancerInput {
    /** The Amazon Resource Name (ARN) of the load balancer. */
    LoadBalancerArn: string;
}
export interface DeleteRuleInput {
    /** The Amazon Resource Name (ARN) of the rule. */
    RuleArn: string;
}
export interface DeleteSharedTrustStoreAssociationInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    ResourceArn: string;
    /** The Amazon Resource Name (ARN) of the trust store. */
    TrustStoreArn: string;
}
export interface DeleteTargetGroupInput {
    /** The Amazon Resource Name (ARN) of the target group. */
    TargetGroupArn: string;
}
export interface DeleteTrustStoreInput {
    /** The Amazon Resource Name (ARN) of the trust store. */
    TrustStoreArn: string;
}
export interface DeregisterTargetsInput {
    /** The Amazon Resource Name (ARN) of the target group. */
    TargetGroupArn: string;
    /** The targets. If you specified a port override when you registered a target, you must specify both the target ID and the port when you deregister it. */
    Targets: TargetDescription[];
}
export interface DescribeAccountLimitsInput {
    /** The marker for the next set of results. (You received this marker from a previous call.) */
    Marker?: string;
    /** The maximum number of results to return with this call. */
    PageSize?: number;
}
export interface DescribeCapacityReservationInput {
    /** The Amazon Resource Name (ARN) of the load balancer. */
    LoadBalancerArn: string;
}
export interface DescribeListenerAttributesInput {
    /** The Amazon Resource Name (ARN) of the listener. */
    ListenerArn: string;
}
export interface DescribeListenerCertificatesInput {
    /** The Amazon Resource Names (ARN) of the listener. */
    ListenerArn: string;
    /** The marker for the next set of results. (You received this marker from a previous call.) */
    Marker?: string;
    /** The maximum number of results to return with this call. */
    PageSize?: number;
}
export interface DescribeListenersInput {
    /** The Amazon Resource Names (ARN) of the listeners. */
    ListenerArns?: string[];
    /** The Amazon Resource Name (ARN) of the load balancer. */
    LoadBalancerArn?: string;
    /** The marker for the next set of results. (You received this marker from a previous call.) */
    Marker?: string;
    /** The maximum number of results to return with this call. */
    PageSize?: number;
}
export interface DescribeLoadBalancerAttributesInput {
    /** The Amazon Resource Name (ARN) of the load balancer. */
    LoadBalancerArn: string;
}
export interface DescribeLoadBalancersInput {
    /** The Amazon Resource Names (ARN) of the load balancers. You can specify up to 20 load balancers in a single call. */
    LoadBalancerArns?: string[];
    /** The marker for the next set of results. (You received this marker from a previous call.) */
    Marker?: string;
    /** The names of the load balancers. */
    Names?: string[];
    /** The maximum number of results to return with this call. */
    PageSize?: number;
}
export interface DescribeRulesInput {
    /** The Amazon Resource Name (ARN) of the listener. */
    ListenerArn?: string;
    /** The marker for the next set of results. (You received this marker from a previous call.) */
    Marker?: string;
    /** The maximum number of results to return with this call. */
    PageSize?: number;
    /** The Amazon Resource Names (ARN) of the rules. */
    RuleArns?: string[];
}
export interface DescribeSSLPoliciesInput {
    /** The type of load balancer. The default lists the SSL policies for all load balancers. */
    LoadBalancerType?: 'application' | 'network' | 'gateway';
    /** The marker for the next set of results. (You received this marker from a previous call.) */
    Marker?: string;
    /** The names of the policies. */
    Names?: string[];
    /** The maximum number of results to return with this call. */
    PageSize?: number;
}
export interface DescribeTagsInput {
    /** The Amazon Resource Names (ARN) of the resources. You can specify up to 20 resources in a single call. */
    ResourceArns: string[];
}
export interface DescribeTargetGroupAttributesInput {
    /** The Amazon Resource Name (ARN) of the target group. */
    TargetGroupArn: string;
}
export interface DescribeTargetGroupsInput {
    /** The Amazon Resource Name (ARN) of the load balancer. */
    LoadBalancerArn?: string;
    /** The marker for the next set of results. (You received this marker from a previous call.) */
    Marker?: string;
    /** The names of the target groups. */
    Names?: string[];
    /** The maximum number of results to return with this call. */
    PageSize?: number;
    /** The Amazon Resource Names (ARN) of the target groups. */
    TargetGroupArns?: string[];
}
export interface DescribeTargetHealthInput {
    /** The Amazon Resource Name (ARN) of the target group. */
    TargetGroupArn: string;
    /** Used to include anomaly detection information. */
    Include?: 'AnomalyDetection' | 'All'[];
    /** The targets. */
    Targets?: TargetDescription[];
}
export interface DescribeTrustStoreAssociationsInput {
    /** The Amazon Resource Name (ARN) of the trust store. */
    TrustStoreArn: string;
    /** The marker for the next set of results. (You received this marker from a previous call.) */
    Marker?: string;
    /** The maximum number of results to return with this call. */
    PageSize?: number;
}
export interface DescribeTrustStoreRevocationsInput {
    /** The Amazon Resource Name (ARN) of the trust store. */
    TrustStoreArn: string;
    /** The marker for the next set of results. (You received this marker from a previous call.) */
    Marker?: string;
    /** The maximum number of results to return with this call. */
    PageSize?: number;
    /** The revocation IDs of the revocation files you want to describe. */
    RevocationIds?: number[];
}
export interface DescribeTrustStoresInput {
    /** The marker for the next set of results. (You received this marker from a previous call.) */
    Marker?: string;
    /** The names of the trust stores. */
    Names?: string[];
    /** The maximum number of results to return with this call. */
    PageSize?: number;
    /** The Amazon Resource Name (ARN) of the trust store. */
    TrustStoreArns?: string[];
}
export interface GetResourcePolicyInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    ResourceArn: string;
}
export interface GetTrustStoreCaCertificatesBundleInput {
    /** The Amazon Resource Name (ARN) of the trust store. */
    TrustStoreArn: string;
}
export interface GetTrustStoreRevocationContentInput {
    /** The revocation ID of the revocation file. */
    RevocationId: number;
    /** The Amazon Resource Name (ARN) of the trust store. */
    TrustStoreArn: string;
}
export interface ModifyCapacityReservationInput {
    /** The Amazon Resource Name (ARN) of the load balancer. */
    LoadBalancerArn: string;
    /** The minimum load balancer capacity reserved. */
    MinimumLoadBalancerCapacity?: MinimumLoadBalancerCapacity;
    /** Resets the capacity reservation. */
    ResetCapacityReservation?: boolean;
}
export interface ModifyIpPoolsInput {
    /** The Amazon Resource Name (ARN) of the load balancer. */
    LoadBalancerArn: string;
    /** The IPAM pools to be modified. */
    IpamPools?: IpamPools;
    /** Remove the IP pools in use by the load balancer. */
    RemoveIpamPools?: 'ipv4'[];
}
export interface ModifyListenerInput {
    /** The Amazon Resource Name (ARN) of the listener. */
    ListenerArn: string;
    /** [TLS listeners] The name of the Application-Layer Protocol Negotiation (ALPN) policy. You can specify one policy name. The following are the possible values: HTTP1Only HTTP2Only HTTP2Optional HTTP2Pre */
    AlpnPolicy?: string[];
    /** [HTTPS and TLS listeners] The default certificate for the listener. You must provide exactly one certificate. Set CertificateArn to the certificate ARN but do not set IsDefault. */
    Certificates?: Certificate[];
    /** The actions for the default rule. */
    DefaultActions?: Action[];
    /** [HTTPS listeners] The mutual authentication configuration information. */
    MutualAuthentication?: MutualAuthenticationAttributes;
    /** The port for connections from clients to the load balancer. You can't specify a port for a Gateway Load Balancer. */
    Port?: number;
    /** The protocol for connections from clients to the load balancer. Application Load Balancers support the HTTP and HTTPS protocols. Network Load Balancers support the TCP, TLS, UDP, TCP_UDP, QUIC, and TC */
    Protocol?: 'HTTP' | 'HTTPS' | 'TCP' | 'TLS' | 'UDP' | 'TCP_UDP' | 'GENEVE' | 'QUIC' | 'TCP_QUIC';
    /** [HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported. For more information, see Security policies in the Application Load Balancers Guide or Security po */
    SslPolicy?: string;
}
export interface ModifyListenerAttributesInput {
    /** The listener attributes. */
    Attributes: ListenerAttribute[];
    /** The Amazon Resource Name (ARN) of the listener. */
    ListenerArn: string;
}
export interface ModifyLoadBalancerAttributesInput {
    /** The load balancer attributes. */
    Attributes: LoadBalancerAttribute[];
    /** The Amazon Resource Name (ARN) of the load balancer. */
    LoadBalancerArn: string;
}
export interface ModifyRuleInput {
    /** The Amazon Resource Name (ARN) of the rule. */
    RuleArn: string;
    /** The actions. */
    Actions?: Action[];
    /** The conditions. */
    Conditions?: RuleCondition[];
    /** Indicates whether to remove all transforms from the rule. If you specify ResetTransforms, you can't specify Transforms. */
    ResetTransforms?: boolean;
    /** The transforms to apply to requests that match this rule. You can add one host header rewrite transform and one URL rewrite transform. If you specify Transforms, you can't specify ResetTransforms. */
    Transforms?: RuleTransform[];
}
export interface ModifyTargetGroupInput {
    /** The Amazon Resource Name (ARN) of the target group. */
    TargetGroupArn: string;
    /** Indicates whether health checks are enabled. If the target type is lambda, health checks are disabled by default but can be enabled. If the target type is instance, ip, or alb, health checks are alway */
    HealthCheckEnabled?: boolean;
    /** The approximate amount of time, in seconds, between health checks of an individual target. */
    HealthCheckIntervalSeconds?: number;
    /** [HTTP/HTTPS health checks] The destination for health checks on the targets. [HTTP1 or HTTP2 protocol version] The ping path. The default is /. [GRPC protocol version] The path of a custom health chec */
    HealthCheckPath?: string;
    /** The port the load balancer uses when performing health checks on targets. */
    HealthCheckPort?: string;
    /** The protocol the load balancer uses when performing health checks on targets. For Application Load Balancers, the default is HTTP. For Network Load Balancers and Gateway Load Balancers, the default is */
    HealthCheckProtocol?: 'HTTP' | 'HTTPS' | 'TCP' | 'TLS' | 'UDP' | 'TCP_UDP' | 'GENEVE' | 'QUIC' | 'TCP_QUIC';
    /** [HTTP/HTTPS health checks] The amount of time, in seconds, during which no response means a failed health check. */
    HealthCheckTimeoutSeconds?: number;
    /** The number of consecutive health checks successes required before considering an unhealthy target healthy. */
    HealthyThresholdCount?: number;
    /** [HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a successful response from a target. For target groups with a protocol of TCP, TCP_UDP, UDP or TLS the range is 200-599. For  */
    Matcher?: Matcher;
    /** The number of consecutive health check failures required before considering the target unhealthy. */
    UnhealthyThresholdCount?: number;
}
export interface ModifyTargetGroupAttributesInput {
    /** The target group attributes. */
    Attributes: TargetGroupAttribute[];
    /** The Amazon Resource Name (ARN) of the target group. */
    TargetGroupArn: string;
}
export interface ModifyTrustStoreInput {
    /** The Amazon S3 bucket for the ca certificates bundle. */
    CaCertificatesBundleS3Bucket: string;
    /** The Amazon S3 path for the ca certificates bundle. */
    CaCertificatesBundleS3Key: string;
    /** The Amazon Resource Name (ARN) of the trust store. */
    TrustStoreArn: string;
    /** The Amazon S3 object version for the ca certificates bundle. If undefined the current version is used. */
    CaCertificatesBundleS3ObjectVersion?: string;
}
export interface RegisterTargetsInput {
    /** The Amazon Resource Name (ARN) of the target group. */
    TargetGroupArn: string;
    /** The targets. */
    Targets: TargetDescription[];
}
export interface RemoveListenerCertificatesInput {
    /** The certificate to remove. You can specify one certificate per call. Set CertificateArn to the certificate ARN but do not set IsDefault. */
    Certificates: Certificate[];
    /** The Amazon Resource Name (ARN) of the listener. */
    ListenerArn: string;
}
export interface RemoveTagsInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    ResourceArns: string[];
    /** The tag keys for the tags to remove. */
    TagKeys: string[];
}
export interface RemoveTrustStoreRevocationsInput {
    /** The revocation IDs of the revocation files you want to remove. */
    RevocationIds: number[];
    /** The Amazon Resource Name (ARN) of the trust store. */
    TrustStoreArn: string;
}
export interface SetIpAddressTypeInput {
    /** The IP address type. Internal load balancers must use ipv4. [Application Load Balancers] The possible values are ipv4 (IPv4 addresses), dualstack (IPv4 and IPv6 addresses), and dualstack-without-publi */
    IpAddressType: 'ipv4' | 'dualstack' | 'dualstack-without-public-ipv4';
    /** The Amazon Resource Name (ARN) of the load balancer. */
    LoadBalancerArn: string;
}
export interface SetRulePrioritiesInput {
    /** The rule priorities. */
    RulePriorities: RulePriorityPair[];
}
export interface SetSecurityGroupsInput {
    /** The Amazon Resource Name (ARN) of the load balancer. */
    LoadBalancerArn: string;
    /** The IDs of the security groups. */
    SecurityGroups: string[];
    /** Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through Amazon Web Services PrivateLink. Applies only if the load balancer has an associated secu */
    EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic?: 'on' | 'off';
}
export interface SetSubnetsInput {
    /** The Amazon Resource Name (ARN) of the load balancer. */
    LoadBalancerArn: string;
    /** [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be dualstack. The default value is off. */
    EnablePrefixForIpv6SourceNat?: 'on' | 'off';
    /** The IP address type. [Application Load Balancers] The possible values are ipv4 (IPv4 addresses), dualstack (IPv4 and IPv6 addresses), and dualstack-without-public-ipv4 (public IPv6 addresses and priva */
    IpAddressType?: 'ipv4' | 'dualstack' | 'dualstack-without-public-ipv4';
    /** The IDs of the public subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings. [Application Load Balancers] You must specify subnets from at  */
    SubnetMappings?: SubnetMapping[];
    /** The IDs of the public subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings. [Application Load Balancers] You must specify subnets from at  */
    Subnets?: string[];
}
/** Elastic Load Balancing v2 service binding for Step Functions SDK integrations. */
export declare class ElasticLoadBalancingv2 {
    constructor();
    addListenerCertificates<T>(params: AddListenerCertificatesInput): Promise<T>;
    addTags<T>(params: AddTagsInput): Promise<T>;
    addTrustStoreRevocations<T>(params: AddTrustStoreRevocationsInput): Promise<T>;
    createListener<T>(params: CreateListenerInput): Promise<T>;
    createLoadBalancer<T>(params: CreateLoadBalancerInput): Promise<T>;
    createRule<T>(params: CreateRuleInput): Promise<T>;
    createTargetGroup<T>(params: CreateTargetGroupInput): Promise<T>;
    createTrustStore<T>(params: CreateTrustStoreInput): Promise<T>;
    deleteListener<T>(params: DeleteListenerInput): Promise<T>;
    deleteLoadBalancer<T>(params: DeleteLoadBalancerInput): Promise<T>;
    deleteRule<T>(params: DeleteRuleInput): Promise<T>;
    deleteSharedTrustStoreAssociation<T>(params: DeleteSharedTrustStoreAssociationInput): Promise<T>;
    deleteTargetGroup<T>(params: DeleteTargetGroupInput): Promise<T>;
    deleteTrustStore<T>(params: DeleteTrustStoreInput): Promise<T>;
    deregisterTargets<T>(params: DeregisterTargetsInput): Promise<T>;
    describeAccountLimits<T>(params: DescribeAccountLimitsInput): Promise<T>;
    describeCapacityReservation<T>(params: DescribeCapacityReservationInput): Promise<T>;
    describeListenerAttributes<T>(params: DescribeListenerAttributesInput): Promise<T>;
    describeListenerCertificates<T>(params: DescribeListenerCertificatesInput): Promise<T>;
    describeListeners<T>(params: DescribeListenersInput): Promise<T>;
    describeLoadBalancerAttributes<T>(params: DescribeLoadBalancerAttributesInput): Promise<T>;
    describeLoadBalancers<T>(params: DescribeLoadBalancersInput): Promise<T>;
    describeRules<T>(params: DescribeRulesInput): Promise<T>;
    describeSSLPolicies<T>(params: DescribeSSLPoliciesInput): Promise<T>;
    describeTags<T>(params: DescribeTagsInput): Promise<T>;
    describeTargetGroupAttributes<T>(params: DescribeTargetGroupAttributesInput): Promise<T>;
    describeTargetGroups<T>(params: DescribeTargetGroupsInput): Promise<T>;
    describeTargetHealth<T>(params: DescribeTargetHealthInput): Promise<T>;
    describeTrustStoreAssociations<T>(params: DescribeTrustStoreAssociationsInput): Promise<T>;
    describeTrustStoreRevocations<T>(params: DescribeTrustStoreRevocationsInput): Promise<T>;
    describeTrustStores<T>(params: DescribeTrustStoresInput): Promise<T>;
    getResourcePolicy<T>(params: GetResourcePolicyInput): Promise<T>;
    getTrustStoreCaCertificatesBundle<T>(params: GetTrustStoreCaCertificatesBundleInput): Promise<T>;
    getTrustStoreRevocationContent<T>(params: GetTrustStoreRevocationContentInput): Promise<T>;
    modifyCapacityReservation<T>(params: ModifyCapacityReservationInput): Promise<T>;
    modifyIpPools<T>(params: ModifyIpPoolsInput): Promise<T>;
    modifyListener<T>(params: ModifyListenerInput): Promise<T>;
    modifyListenerAttributes<T>(params: ModifyListenerAttributesInput): Promise<T>;
    modifyLoadBalancerAttributes<T>(params: ModifyLoadBalancerAttributesInput): Promise<T>;
    modifyRule<T>(params: ModifyRuleInput): Promise<T>;
    modifyTargetGroup<T>(params: ModifyTargetGroupInput): Promise<T>;
    modifyTargetGroupAttributes<T>(params: ModifyTargetGroupAttributesInput): Promise<T>;
    modifyTrustStore<T>(params: ModifyTrustStoreInput): Promise<T>;
    registerTargets<T>(params: RegisterTargetsInput): Promise<T>;
    removeListenerCertificates<T>(params: RemoveListenerCertificatesInput): Promise<T>;
    removeTags<T>(params: RemoveTagsInput): Promise<T>;
    removeTrustStoreRevocations<T>(params: RemoveTrustStoreRevocationsInput): Promise<T>;
    setIpAddressType<T>(params: SetIpAddressTypeInput): Promise<T>;
    setRulePriorities<T>(params: SetRulePrioritiesInput): Promise<T>;
    setSecurityGroups<T>(params: SetSecurityGroupsInput): Promise<T>;
    setSubnets<T>(params: SetSubnetsInput): Promise<T>;
}
//# sourceMappingURL=ElasticLoadBalancingv2.d.ts.map