Module elasticloadbalancingv2

@pulumi/awsx > elasticloadbalancingv2

class ApplicationListener

extends Listener
implements ContainerPortMappingProvider, ContainerLoadBalancerProvider

constructor

new ApplicationListener(name: string, args: ApplicationListenerArgs, opts?: pulumi.ComponentResourceOptions)

method addListenerRule

public addListenerRule(name: string, args: x.elasticloadbalancingv2.ListenerRuleArgs, opts?: pulumi.ComponentResourceOptions): ListenerRule

method containerLoadBalancer

public containerLoadBalancer(name: string, parent: pulumi.Resource): ContainerLoadBalancer | Promise<ContainerLoadBalancer> | OutputInstance<ContainerLoadBalancer>

method containerPortMapping

public containerPortMapping(name: string, parent: pulumi.Resource): PortMapping | Promise<PortMapping> | OutputInstance<PortMapping>

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.

method registerOutputs

protected registerOutputs(outputs?: Inputs | Promise<Inputs> | Output<Inputs>): void

property defaultTargetGroup

public defaultTargetGroup?: x.elasticloadbalancingv2.ApplicationTargetGroup;

property endpoint

public endpoint: pulumi.Output<ListenerEndpoint>;

property listener

public listener: aws.elasticloadbalancingv2.Listener;

property loadBalancer

public loadBalancer: ApplicationLoadBalancer;

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

class ApplicationLoadBalancer

extends LoadBalancer

A application load balancer serves as the single point of contact for clients. The load balancer distributes incoming application traffic across multiple targets, such as EC2 instances, in multiple Availability Zones. This increases the availability of your application. You add one or more listeners to your load balancer.

See https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html for more details.

constructor

new ApplicationLoadBalancer(name: string, args: ApplicationLoadBalancerArgs, opts?: pulumi.ComponentResourceOptions)

method createListener

public createListener(name: string, args: ApplicationListenerArgs, opts: pulumi.ComponentResourceOptions): ApplicationListener

Creates a new listener for this [ApplicationLoadBalancer] see ApplicationListener for more details.

method createTargetGroup

public createTargetGroup(name: string, args: ApplicationTargetGroupArgs, opts: pulumi.ComponentResourceOptions): ApplicationTargetGroup

Creates a target group for this [ApplicationLoadBalancer] see ApplicationTargetGroup for more details.

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.

method registerOutputs

protected registerOutputs(outputs?: Inputs | Promise<Inputs> | Output<Inputs>): void

property listeners

public listeners: ApplicationListener[];

property loadBalancer

public loadBalancer: aws.elasticloadbalancingv2.LoadBalancer;

property securityGroups

public securityGroups: x.ec2.SecurityGroup[];

property targetGroups

public targetGroups: ApplicationTargetGroup[];

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

property vpc

public vpc: x.ec2.Vpc;

class ApplicationTargetGroup

extends TargetGroup
implements ContainerPortMappingProvider, ContainerLoadBalancerProvider, ListenerDefaultAction

Each target group routes requests to one or more registered targets, such as EC2 instances, using the protocol and port number that you specify. You can register a target with multiple target groups. You can configure health checks on a per target group basis. Health checks are performed on all targets registered to a target group that is specified in a listener rule for your load balancer.

constructor

new ApplicationTargetGroup(name: string, args: ApplicationTargetGroupArgs, opts?: pulumi.ComponentResourceOptions)

method containerLoadBalancer

public containerLoadBalancer(): pulumi.Input<x.ecs.ContainerLoadBalancer>

method containerPortMapping

public containerPortMapping(): pulumi.Input<aws.ecs.PortMapping>

method createListener

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

public static isInstance(obj: any): boolean

method listenerDefaultAction

public listenerDefaultAction(): pulumi.Input<mod.ListenerDefaultActionArgs>

method registerListener

public registerListener(listener: x.elasticloadbalancingv2.Listener): void

Do not call directly. Intended for use by [Listener] and [ListenerRule]

method registerOutputs

protected registerOutputs(outputs?: Inputs | Promise<Inputs> | Output<Inputs>): void

property listeners

public listeners: x.elasticloadbalancingv2.ApplicationListener[];

property loadBalancer

public loadBalancer: ApplicationLoadBalancer;

property targetGroup

public targetGroup: aws.elasticloadbalancingv2.TargetGroup;

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

property vpc

public vpc: x.ec2.Vpc;

class Listener

extends ComponentResource
implements ContainerPortMappingProvider, ContainerLoadBalancerProvider

constructor

new Listener(type: string, name: string, defaultListenerAction: ListenerDefaultAction | undefined, args: ListenerArgs, opts?: pulumi.ComponentResourceOptions)

method addListenerRule

public addListenerRule(name: string, args: x.elasticloadbalancingv2.ListenerRuleArgs, opts?: pulumi.ComponentResourceOptions): ListenerRule

method containerLoadBalancer

public containerLoadBalancer(name: string, parent: pulumi.Resource): ContainerLoadBalancer | Promise<ContainerLoadBalancer> | OutputInstance<ContainerLoadBalancer>

method containerPortMapping

public containerPortMapping(name: string, parent: pulumi.Resource): PortMapping | Promise<PortMapping> | OutputInstance<PortMapping>

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.

method registerOutputs

protected registerOutputs(outputs?: Inputs | Promise<Inputs> | Output<Inputs>): void

property endpoint

public endpoint: pulumi.Output<ListenerEndpoint>;

property listener

public listener: aws.elasticloadbalancingv2.Listener;

property loadBalancer

public loadBalancer: x.elasticloadbalancingv2.LoadBalancer;

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

class ListenerRule

extends ComponentResource

The rules that you define for your listener determine how the load balancer routes requests to the targets in one or more target groups.

Each rule consists of a priority, one or more actions, an optional host condition, and an optional path condition. For more information, see https://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-update-rules.html

constructor

new ListenerRule(name: string, listener: x.elasticloadbalancingv2.Listener, args: ListenerRuleArgs, opts: pulumi.ComponentResourceOptions)

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.

method registerOutputs

protected registerOutputs(outputs?: Inputs | Promise<Inputs> | Output<Inputs>): void

property listenerRule

public listenerRule: aws.elasticloadbalancingv2.ListenerRule;

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

class LoadBalancer

extends ComponentResource

constructor

new LoadBalancer(type: string, name: string, args: LoadBalancerArgs, opts?: pulumi.ComponentResourceOptions)

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.

method registerOutputs

protected registerOutputs(outputs?: Inputs | Promise<Inputs> | Output<Inputs>): void

property loadBalancer

public loadBalancer: aws.elasticloadbalancingv2.LoadBalancer;

property securityGroups

public securityGroups: x.ec2.SecurityGroup[];

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

property vpc

public vpc: x.ec2.Vpc;

class NetworkListener

extends Listener
implements ContainerPortMappingProvider, ContainerLoadBalancerProvider, IntegrationRouteTargetProvider

A listener is a process that checks for connection requests, using the protocol and port that you configure. The rules that you define for a listener determine how the load balancer routes requests to the targets in one or more target groups.

See https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-listeners.html for more details.

constructor

new NetworkListener(name: string, args: NetworkListenerArgs, opts: pulumi.ComponentResourceOptions)

method addListenerRule

public addListenerRule(name: string, args: x.elasticloadbalancingv2.ListenerRuleArgs, opts?: pulumi.ComponentResourceOptions): ListenerRule

method containerLoadBalancer

public containerLoadBalancer(name: string, parent: pulumi.Resource): ContainerLoadBalancer | Promise<ContainerLoadBalancer> | OutputInstance<ContainerLoadBalancer>

method containerPortMapping

public containerPortMapping(name: string, parent: pulumi.Resource): PortMapping | Promise<PortMapping> | OutputInstance<PortMapping>

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.

method registerOutputs

protected registerOutputs(outputs?: Inputs | Promise<Inputs> | Output<Inputs>): void

method target

public target(name: string, parent: pulumi.Resource): pulumi.Input<x.apigateway.IntegrationTarget>

property defaultTargetGroup

public defaultTargetGroup?: x.elasticloadbalancingv2.NetworkTargetGroup;

property endpoint

public endpoint: pulumi.Output<ListenerEndpoint>;

property listener

public listener: aws.elasticloadbalancingv2.Listener;

property loadBalancer

public loadBalancer: NetworkLoadBalancer;

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

class NetworkLoadBalancer

extends LoadBalancer

constructor

new NetworkLoadBalancer(name: string, args: NetworkLoadBalancerArgs, opts?: pulumi.ComponentResourceOptions)

method createListener

public createListener(name: string, args: NetworkListenerArgs, opts: pulumi.ComponentResourceOptions): NetworkListener

method createTargetGroup

public createTargetGroup(name: string, args: NetworkTargetGroupArgs, opts: pulumi.ComponentResourceOptions): NetworkTargetGroup

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.

method registerOutputs

protected registerOutputs(outputs?: Inputs | Promise<Inputs> | Output<Inputs>): void

property listeners

public listeners: NetworkListener[];

property loadBalancer

public loadBalancer: aws.elasticloadbalancingv2.LoadBalancer;

property securityGroups

public securityGroups: x.ec2.SecurityGroup[];

property targetGroups

public targetGroups: NetworkTargetGroup[];

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

property vpc

public vpc: x.ec2.Vpc;

class NetworkTargetGroup

extends TargetGroup
implements ContainerPortMappingProvider, ContainerLoadBalancerProvider, ListenerDefaultAction

Each target group is used to route requests to one or more registered targets. When you create each listener rule, you specify a target group and conditions. When a rule condition is met, traffic is forwarded to the corresponding target group. You can create different target groups for different types of requests. For example, create one target group for general requests and other target groups for requests to the microservices for your application.

You define health check settings for your load balancer on a per target group basis. Each target group uses the default health check settings, unless you override them when you create the target group or modify them later on. After you specify a target group in a rule for a listener, the load balancer continually monitors the health of all targets registered with the target group that are in an Availability Zone enabled for the load balancer. The load balancer routes requests to the registered targets that are healthy.

See https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html for more details.

constructor

new NetworkTargetGroup(name: string, args: NetworkTargetGroupArgs, opts: pulumi.ComponentResourceOptions)

method containerLoadBalancer

public containerLoadBalancer(): pulumi.Input<x.ecs.ContainerLoadBalancer>

method containerPortMapping

public containerPortMapping(): pulumi.Input<aws.ecs.PortMapping>

method createListener

public createListener(name: string, args: NetworkListenerArgs, opts: pulumi.ComponentResourceOptions): NetworkListener

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.

method listenerDefaultAction

public listenerDefaultAction(): pulumi.Input<mod.ListenerDefaultActionArgs>

method registerListener

public registerListener(listener: x.elasticloadbalancingv2.Listener): void

Do not call directly. Intended for use by [Listener] and [ListenerRule]

method registerOutputs

protected registerOutputs(outputs?: Inputs | Promise<Inputs> | Output<Inputs>): void

property listeners

public listeners: x.elasticloadbalancingv2.NetworkListener[];

property loadBalancer

public loadBalancer: NetworkLoadBalancer;

property targetGroup

public targetGroup: aws.elasticloadbalancingv2.TargetGroup;

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

property vpc

public vpc: x.ec2.Vpc;

class TargetGroup

extends ComponentResource
implements ContainerPortMappingProvider, ContainerLoadBalancerProvider, ListenerDefaultAction

constructor

new TargetGroup(type: string, name: string, loadBalancer: mod.LoadBalancer, args: TargetGroupArgs, opts?: pulumi.ComponentResourceOptions)

method containerLoadBalancer

public containerLoadBalancer(): pulumi.Input<x.ecs.ContainerLoadBalancer>

method containerPortMapping

public containerPortMapping(): pulumi.Input<aws.ecs.PortMapping>

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

static isInstance(obj: any): boolean

Returns true if the given object is an instance of CustomResource. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.

method listenerDefaultAction

public listenerDefaultAction(): pulumi.Input<mod.ListenerDefaultActionArgs>

method registerListener

public registerListener(listener: x.elasticloadbalancingv2.Listener): void

Do not call directly. Intended for use by [Listener] and [ListenerRule]

method registerOutputs

protected registerOutputs(outputs?: Inputs | Promise<Inputs> | Output<Inputs>): void

property listeners

public listeners: x.elasticloadbalancingv2.Listener[] =  [];

property loadBalancer

public loadBalancer: mod.LoadBalancer;

property targetGroup

public targetGroup: aws.elasticloadbalancingv2.TargetGroup;

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

property vpc

public vpc: x.ec2.Vpc;

function isListenerActions

function isListenerDefaultAction

interface ApplicationListenerArgs

property certificateArn

certificateArn?: pulumi.Input<string>;

The ARN of the default SSL server certificate. Exactly one certificate is required if the protocol is HTTPS. For adding additional SSL certificates, see the aws_lb_listener_certificate resource.

property defaultAction

defaultAction?: pulumi.Input<mod.ListenerDefaultActionArgs> | x.elasticloadbalancingv2.ListenerDefaultAction;

An Action block. If neither this nor [defaultActions] is provided, a suitable defaultAction will be chosen that forwards to a new [ApplicationTargetGroup] created from [port].

Do not provide both [defaultAction] and [defaultActions].

property defaultActions

defaultActions?: pulumi.Input<pulumi.Input<mod.ListenerDefaultActionArgs>[]>;

An list of Action blocks. If neither this nor [defaultActions] is provided, a suitable defaultAction will be chosen that forwards to a new [ApplicationTargetGroup] created from [port].

Do not provide both [defaultAction] and [defaultActions].

property external

external?: undefined | false | true;

If the listener should be available externally.

If this is [true] and the LoadBalancer for this Listener is [external=true], then this listener is available to the entire internet. If this is [true] and the LoadBalancer is [external=false], then this listener is available to everything in the LoadBalancer’s VPC. In both cases, the security groups for the ALB will all get ingress rules to the port for this listener from any IPv4 location.

If this is [false] then access will controlled entirely by the egress and ingress rules of the security groups of the LoadBalancer. No changes will be made to the security groups of the ALB.

Defaults to [true].

property loadBalancer

loadBalancer?: ApplicationLoadBalancer;

The load balancer this listener is associated with. If not provided, a new load balancer will be automatically created.

property port

port?: pulumi.Input<number>;

The port. Specify a value from 1 to 65535. Computed from “protocol” if not provided.

property protocol

protocol?: pulumi.Input<ApplicationProtocol>;

The protocol. Valid values are HTTP, HTTPS. Computed from “port” if not provided.

property sslPolicy

sslPolicy?: pulumi.Input<string>;

The name of the SSL Policy for the listener. Required if protocol is HTTPS.

property vpc

vpc?: x.ec2.Vpc;

The vpc this load balancer will be used with. Defaults to [Vpc.getDefault] if unspecified.

interface ApplicationLoadBalancerArgs

property accessLogs

accessLogs?: undefined | {
    bucket: pulumi.Input<string>;
    enabled: pulumi.Input<boolean>;
    prefix: pulumi.Input<string>;
} | Promise<{
    bucket: pulumi.Input<string>;
    enabled: pulumi.Input<boolean>;
    prefix: pulumi.Input<string>;
}> | OutputInstance<{
    bucket: pulumi.Input<string>;
    enabled: pulumi.Input<boolean>;
    prefix: pulumi.Input<string>;
}>;

An Access Logs block. Access Logs documented below.

property enableDeletionProtection

enableDeletionProtection?: pulumi.Input<boolean>;

If true, deletion of the load balancer will be disabled via the AWS API. This will prevent Terraform from deleting the load balancer. Defaults to false.

property enableHttp2

enableHttp2?: pulumi.Input<boolean>;

Indicates whether HTTP/2 is enabled. Defaults to true.

property external

external?: undefined | false | true;

Whether or not the load balancer is exposed to the internet. Defaults to false if unspecified.

property idleTimeout

idleTimeout?: pulumi.Input<number>;

The time in seconds that the connection is allowed to be idle. Default: 60.

property ipAddressType

ipAddressType?: pulumi.Input<"ipv4" | "dualstack">;

The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 and dualstack

property securityGroups

securityGroups?: x.ec2.SecurityGroupOrId[];

A list of security group IDs to assign to the ALB. If not provided, a default instance will be created for the ALB. To prevent a default instance from being created, pass in an empty array here.

property subnetMappings

subnetMappings?: undefined | {
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
} | Promise<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
}> | OutputInstance<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
}>[] | Promise<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
} | Promise<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
}> | OutputInstance<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
}>[]> | OutputInstance<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
} | Promise<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
}> | OutputInstance<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
}>[]>;

A subnet mapping block as documented below.

property subnets

subnets?: pulumi.Input<pulumi.Input<string>[]> | x.elasticloadbalancingv2.LoadBalancerSubnets;

A list of subnet IDs to attach to the LB. Subnets cannot be updated for Load Balancers of type network. Changing this value for load balancers of type network will force a recreation of the resource.

property tags

tags?: pulumi.Input<aws.Tags>;

A mapping of tags to assign to the resource.

property vpc

vpc?: x.ec2.Vpc;

The vpc this load balancer will be used with. Defaults to [Vpc.getDefault] if unspecified.

interface ApplicationTargetGroupArgs

property deregistrationDelay

deregistrationDelay?: pulumi.Input<number>;

The amount time for Elastic Load Balancing to wait before changing the state of a deregistering target from draining to unused. The range is 0-3600 seconds. The default value is 300 seconds.

property healthCheck

healthCheck?: pulumi.Input<ApplicationTargetGroupHealthCheck>;

A Health Check block.

property loadBalancer

loadBalancer?: ApplicationLoadBalancer;

The load balancer this target group is associated with. If not provided, a new load balancer will be automatically created.

property port

port?: pulumi.Input<number>;

The port to use to connect with the target. Valid values are either ports 1-65536. If unspecified will be inferred from the [protocol].

property protocol

protocol?: pulumi.Input<ApplicationProtocol>;

The protocol to use to connect with the target. If unspecified will be inferred from [port].

property proxyProtocolV2

proxyProtocolV2?: pulumi.Input<boolean>;

Boolean to enable / disable support for proxy protocol v2 on Network Load Balancers. See doc for more information.

property slowStart

slowStart?: pulumi.Input<number>;

The amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds.

property stickiness

stickiness?: undefined | {
    cookieDuration: pulumi.Input<number>;
    enabled: pulumi.Input<boolean>;
    type: pulumi.Input<string>;
} | Promise<{
    cookieDuration: pulumi.Input<number>;
    enabled: pulumi.Input<boolean>;
    type: pulumi.Input<string>;
}> | OutputInstance<{
    cookieDuration: pulumi.Input<number>;
    enabled: pulumi.Input<boolean>;
    type: pulumi.Input<string>;
}>;

A Stickiness block. Stickiness blocks are documented below. stickiness is only valid if used with Load Balancers of type Application

property tags

tags?: pulumi.Input<aws.Tags>;

A mapping of tags to assign to the resource.

property targetType

targetType?: pulumi.Input<"instance" | "ip">;

The type of target that you must specify when registering targets with this target group. The possible values are instance (targets are specified by instance ID) or ip (targets are specified by IP address). The default is ip.

Note that you can’t specify targets for a target group using both instance IDs and IP addresses. If the target type is ip, specify IP addresses from the subnets of the virtual private cloud (VPC) for the target group, the RFC 1918 range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the RFC 6598 range (100.64.0.0/10). You can’t specify publicly routable IP addresses.

property vpc

vpc?: x.ec2.Vpc;

The vpc this load balancer will be used with. Defaults to [Vpc.getDefault] if unspecified.

interface ApplicationTargetGroupHealthCheck

extends TargetGroupHealthCheck

A Health Check block.

The Health Check parameters you can set vary by the protocol of the Target Group. See http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html for a complete reference. Keep in mind, that health checks produce actual requests to the backend. The underlying function is invoked when target_type is set to lambda.

property healthyThreshold

healthyThreshold?: pulumi.Input<number>;

The number of consecutive health checks successes required before considering an unhealthy target healthy. Defaults to 3.

property interval

interval?: pulumi.Input<number>;

The approximate amount of time, in seconds, between health checks of an individual target. Minimum value 5 seconds, Maximum value 300 seconds. For lambda target groups, it needs to be greater as the [timeout] of the underlying [lambda]. Default 30 seconds.

property matcher

matcher?: pulumi.Input<string>;

The HTTP codes to use when checking for a successful response from a target. You can specify multiple values (for example, “200,202”) or a range of values (for example, “200-299”). Applies to Application Load Balancers only (HTTP/HTTPS), not Network Load Balancers (TCP)

property path

path: pulumi.Input<string>;

(Required for HTTP/HTTPS ALB) The destination for the health check request.

property port

port?: pulumi.Input<string>;

The port to use to connect with the target.

property protocol

protocol?: pulumi.Input<string>;

The protocol to use to connect with the target. Defaults to HTTP. Not applicable when target_type is [lambda].

property timeout

timeout?: pulumi.Input<number>;

The amount of time, in seconds, during which no response means a failed health check. For Application Load Balancers, the range is 2 to 60 seconds and the default is 5 seconds.

property unhealthyThreshold

unhealthyThreshold?: pulumi.Input<number>;

The number of consecutive health check failures required before considering the target unhealthy. Defaults to 3.

interface ListenerActions

method actions

actions(): {
    authenticateCognito: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        userPoolArn: pulumi.Input<string>;
        userPoolClientId: pulumi.Input<string>;
        userPoolDomain: pulumi.Input<string>;
    }>;
    authenticateOidc: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        authorizationEndpoint: pulumi.Input<string>;
        clientId: pulumi.Input<string>;
        clientSecret: pulumi.Input<string>;
        issuer: pulumi.Input<string>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        tokenEndpoint: pulumi.Input<string>;
        userInfoEndpoint: pulumi.Input<string>;
    }>;
    fixedResponse: pulumi.Input<{
        contentType: pulumi.Input<string>;
        messageBody: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    order: pulumi.Input<number>;
    redirect: pulumi.Input<{
        host: pulumi.Input<string>;
        path: pulumi.Input<string>;
        port: pulumi.Input<string>;
        protocol: pulumi.Input<string>;
        query: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    targetGroupArn: pulumi.Input<string>;
    type: pulumi.Input<string>;
} | Promise<{
    authenticateCognito: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        userPoolArn: pulumi.Input<string>;
        userPoolClientId: pulumi.Input<string>;
        userPoolDomain: pulumi.Input<string>;
    }>;
    authenticateOidc: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        authorizationEndpoint: pulumi.Input<string>;
        clientId: pulumi.Input<string>;
        clientSecret: pulumi.Input<string>;
        issuer: pulumi.Input<string>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        tokenEndpoint: pulumi.Input<string>;
        userInfoEndpoint: pulumi.Input<string>;
    }>;
    fixedResponse: pulumi.Input<{
        contentType: pulumi.Input<string>;
        messageBody: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    order: pulumi.Input<number>;
    redirect: pulumi.Input<{
        host: pulumi.Input<string>;
        path: pulumi.Input<string>;
        port: pulumi.Input<string>;
        protocol: pulumi.Input<string>;
        query: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    targetGroupArn: pulumi.Input<string>;
    type: pulumi.Input<string>;
}> | OutputInstance<{
    authenticateCognito: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        userPoolArn: pulumi.Input<string>;
        userPoolClientId: pulumi.Input<string>;
        userPoolDomain: pulumi.Input<string>;
    }>;
    authenticateOidc: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        authorizationEndpoint: pulumi.Input<string>;
        clientId: pulumi.Input<string>;
        clientSecret: pulumi.Input<string>;
        issuer: pulumi.Input<string>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        tokenEndpoint: pulumi.Input<string>;
        userInfoEndpoint: pulumi.Input<string>;
    }>;
    fixedResponse: pulumi.Input<{
        contentType: pulumi.Input<string>;
        messageBody: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    order: pulumi.Input<number>;
    redirect: pulumi.Input<{
        host: pulumi.Input<string>;
        path: pulumi.Input<string>;
        port: pulumi.Input<string>;
        protocol: pulumi.Input<string>;
        query: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    targetGroupArn: pulumi.Input<string>;
    type: pulumi.Input<string>;
}>[] | Promise<{
    authenticateCognito: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        userPoolArn: pulumi.Input<string>;
        userPoolClientId: pulumi.Input<string>;
        userPoolDomain: pulumi.Input<string>;
    }>;
    authenticateOidc: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        authorizationEndpoint: pulumi.Input<string>;
        clientId: pulumi.Input<string>;
        clientSecret: pulumi.Input<string>;
        issuer: pulumi.Input<string>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        tokenEndpoint: pulumi.Input<string>;
        userInfoEndpoint: pulumi.Input<string>;
    }>;
    fixedResponse: pulumi.Input<{
        contentType: pulumi.Input<string>;
        messageBody: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    order: pulumi.Input<number>;
    redirect: pulumi.Input<{
        host: pulumi.Input<string>;
        path: pulumi.Input<string>;
        port: pulumi.Input<string>;
        protocol: pulumi.Input<string>;
        query: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    targetGroupArn: pulumi.Input<string>;
    type: pulumi.Input<string>;
} | Promise<{
    authenticateCognito: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        userPoolArn: pulumi.Input<string>;
        userPoolClientId: pulumi.Input<string>;
        userPoolDomain: pulumi.Input<string>;
    }>;
    authenticateOidc: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        authorizationEndpoint: pulumi.Input<string>;
        clientId: pulumi.Input<string>;
        clientSecret: pulumi.Input<string>;
        issuer: pulumi.Input<string>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        tokenEndpoint: pulumi.Input<string>;
        userInfoEndpoint: pulumi.Input<string>;
    }>;
    fixedResponse: pulumi.Input<{
        contentType: pulumi.Input<string>;
        messageBody: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    order: pulumi.Input<number>;
    redirect: pulumi.Input<{
        host: pulumi.Input<string>;
        path: pulumi.Input<string>;
        port: pulumi.Input<string>;
        protocol: pulumi.Input<string>;
        query: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    targetGroupArn: pulumi.Input<string>;
    type: pulumi.Input<string>;
}> | OutputInstance<{
    authenticateCognito: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        userPoolArn: pulumi.Input<string>;
        userPoolClientId: pulumi.Input<string>;
        userPoolDomain: pulumi.Input<string>;
    }>;
    authenticateOidc: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        authorizationEndpoint: pulumi.Input<string>;
        clientId: pulumi.Input<string>;
        clientSecret: pulumi.Input<string>;
        issuer: pulumi.Input<string>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        tokenEndpoint: pulumi.Input<string>;
        userInfoEndpoint: pulumi.Input<string>;
    }>;
    fixedResponse: pulumi.Input<{
        contentType: pulumi.Input<string>;
        messageBody: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    order: pulumi.Input<number>;
    redirect: pulumi.Input<{
        host: pulumi.Input<string>;
        path: pulumi.Input<string>;
        port: pulumi.Input<string>;
        protocol: pulumi.Input<string>;
        query: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    targetGroupArn: pulumi.Input<string>;
    type: pulumi.Input<string>;
}>[]> | OutputInstance<{
    authenticateCognito: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        userPoolArn: pulumi.Input<string>;
        userPoolClientId: pulumi.Input<string>;
        userPoolDomain: pulumi.Input<string>;
    }>;
    authenticateOidc: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        authorizationEndpoint: pulumi.Input<string>;
        clientId: pulumi.Input<string>;
        clientSecret: pulumi.Input<string>;
        issuer: pulumi.Input<string>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        tokenEndpoint: pulumi.Input<string>;
        userInfoEndpoint: pulumi.Input<string>;
    }>;
    fixedResponse: pulumi.Input<{
        contentType: pulumi.Input<string>;
        messageBody: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    order: pulumi.Input<number>;
    redirect: pulumi.Input<{
        host: pulumi.Input<string>;
        path: pulumi.Input<string>;
        port: pulumi.Input<string>;
        protocol: pulumi.Input<string>;
        query: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    targetGroupArn: pulumi.Input<string>;
    type: pulumi.Input<string>;
} | Promise<{
    authenticateCognito: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        userPoolArn: pulumi.Input<string>;
        userPoolClientId: pulumi.Input<string>;
        userPoolDomain: pulumi.Input<string>;
    }>;
    authenticateOidc: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        authorizationEndpoint: pulumi.Input<string>;
        clientId: pulumi.Input<string>;
        clientSecret: pulumi.Input<string>;
        issuer: pulumi.Input<string>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        tokenEndpoint: pulumi.Input<string>;
        userInfoEndpoint: pulumi.Input<string>;
    }>;
    fixedResponse: pulumi.Input<{
        contentType: pulumi.Input<string>;
        messageBody: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    order: pulumi.Input<number>;
    redirect: pulumi.Input<{
        host: pulumi.Input<string>;
        path: pulumi.Input<string>;
        port: pulumi.Input<string>;
        protocol: pulumi.Input<string>;
        query: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    targetGroupArn: pulumi.Input<string>;
    type: pulumi.Input<string>;
}> | OutputInstance<{
    authenticateCognito: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        userPoolArn: pulumi.Input<string>;
        userPoolClientId: pulumi.Input<string>;
        userPoolDomain: pulumi.Input<string>;
    }>;
    authenticateOidc: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        authorizationEndpoint: pulumi.Input<string>;
        clientId: pulumi.Input<string>;
        clientSecret: pulumi.Input<string>;
        issuer: pulumi.Input<string>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        tokenEndpoint: pulumi.Input<string>;
        userInfoEndpoint: pulumi.Input<string>;
    }>;
    fixedResponse: pulumi.Input<{
        contentType: pulumi.Input<string>;
        messageBody: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    order: pulumi.Input<number>;
    redirect: pulumi.Input<{
        host: pulumi.Input<string>;
        path: pulumi.Input<string>;
        port: pulumi.Input<string>;
        protocol: pulumi.Input<string>;
        query: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    targetGroupArn: pulumi.Input<string>;
    type: pulumi.Input<string>;
}>[]>

method registerListener

registerListener(listener: Listener): void

interface ListenerArgs

property certificateArn

certificateArn?: pulumi.Input<string>;

The ARN of the default SSL server certificate. Exactly one certificate is required if the protocol is HTTPS. For adding additional SSL certificates, see the aws_lb_listener_certificate resource.

property defaultActions

defaultActions: pulumi.Input<pulumi.Input<ListenerDefaultActionArgs>[]>;

An list of Action blocks. See [ListenerDefaultActionArgs] for more information.

property loadBalancer

loadBalancer: x.elasticloadbalancingv2.LoadBalancer;

property port

port: pulumi.Input<number>;

The port. Specify a value from 1 to 65535.

property protocol

protocol: pulumi.Input<"HTTP" | "HTTPS" | "TCP" | "TLS">;

The protocol.

property sslPolicy

sslPolicy?: pulumi.Input<string>;

The name of the SSL Policy for the listener. Required if protocol is HTTPS.

interface ListenerDefaultAction

interface ListenerDefaultActionArgs

See https://www.terraform.io/docs/providers/aws/r/lb_listener.html#default_action

property authenticateCognito

authenticateCognito?: pulumi.Input<{
    authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
    onUnauthenticatedRequest: pulumi.Input<string>;
    scope: pulumi.Input<string>;
    sessionCookieName: pulumi.Input<string>;
    sessionTimeout: pulumi.Input<number>;
    userPoolArn: pulumi.Input<string>;
    userPoolClientId: pulumi.Input<string>;
    userPoolDomain: pulumi.Input<string>;
}>;

property authenticateOidc

authenticateOidc?: pulumi.Input<{
    authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
    authorizationEndpoint: pulumi.Input<string>;
    clientId: pulumi.Input<string>;
    clientSecret: pulumi.Input<string>;
    issuer: pulumi.Input<string>;
    onUnauthenticatedRequest: pulumi.Input<string>;
    scope: pulumi.Input<string>;
    sessionCookieName: pulumi.Input<string>;
    sessionTimeout: pulumi.Input<number>;
    tokenEndpoint: pulumi.Input<string>;
    userInfoEndpoint: pulumi.Input<string>;
}>;

property fixedResponse

fixedResponse?: pulumi.Input<{
    contentType: pulumi.Input<string>;
    messageBody: pulumi.Input<string>;
    statusCode: pulumi.Input<string>;
}>;

Information for creating an action that returns a custom HTTP response. Required if type is “fixed-response”.

property order

order?: pulumi.Input<number>;

property redirect

redirect?: pulumi.Input<{
    host: pulumi.Input<string>;
    path: pulumi.Input<string>;
    port: pulumi.Input<string>;
    protocol: pulumi.Input<string>;
    query: pulumi.Input<string>;
    statusCode: pulumi.Input<string>;
}>;

Information for creating a redirect action. Required if type is “redirect”.

property targetGroupArn

targetGroupArn?: pulumi.Input<string>;

The ARN of the Target Group to which to route traffic. Required if type is “forward”.

property type

type: pulumi.Input<string>;

The type of routing action. Valid values are “forward”, “redirect”, “fixed-response”, “authenticate-cognito” and “authenticate-oidc”.

interface ListenerEndpoint

interface ListenerRuleArgs

property actions

actions: {
    authenticateCognito: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        userPoolArn: pulumi.Input<string>;
        userPoolClientId: pulumi.Input<string>;
        userPoolDomain: pulumi.Input<string>;
    }>;
    authenticateOidc: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        authorizationEndpoint: pulumi.Input<string>;
        clientId: pulumi.Input<string>;
        clientSecret: pulumi.Input<string>;
        issuer: pulumi.Input<string>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        tokenEndpoint: pulumi.Input<string>;
        userInfoEndpoint: pulumi.Input<string>;
    }>;
    fixedResponse: pulumi.Input<{
        contentType: pulumi.Input<string>;
        messageBody: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    order: pulumi.Input<number>;
    redirect: pulumi.Input<{
        host: pulumi.Input<string>;
        path: pulumi.Input<string>;
        port: pulumi.Input<string>;
        protocol: pulumi.Input<string>;
        query: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    targetGroupArn: pulumi.Input<string>;
    type: pulumi.Input<string>;
} | Promise<{
    authenticateCognito: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        userPoolArn: pulumi.Input<string>;
        userPoolClientId: pulumi.Input<string>;
        userPoolDomain: pulumi.Input<string>;
    }>;
    authenticateOidc: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        authorizationEndpoint: pulumi.Input<string>;
        clientId: pulumi.Input<string>;
        clientSecret: pulumi.Input<string>;
        issuer: pulumi.Input<string>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        tokenEndpoint: pulumi.Input<string>;
        userInfoEndpoint: pulumi.Input<string>;
    }>;
    fixedResponse: pulumi.Input<{
        contentType: pulumi.Input<string>;
        messageBody: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    order: pulumi.Input<number>;
    redirect: pulumi.Input<{
        host: pulumi.Input<string>;
        path: pulumi.Input<string>;
        port: pulumi.Input<string>;
        protocol: pulumi.Input<string>;
        query: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    targetGroupArn: pulumi.Input<string>;
    type: pulumi.Input<string>;
}> | OutputInstance<{
    authenticateCognito: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        userPoolArn: pulumi.Input<string>;
        userPoolClientId: pulumi.Input<string>;
        userPoolDomain: pulumi.Input<string>;
    }>;
    authenticateOidc: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        authorizationEndpoint: pulumi.Input<string>;
        clientId: pulumi.Input<string>;
        clientSecret: pulumi.Input<string>;
        issuer: pulumi.Input<string>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        tokenEndpoint: pulumi.Input<string>;
        userInfoEndpoint: pulumi.Input<string>;
    }>;
    fixedResponse: pulumi.Input<{
        contentType: pulumi.Input<string>;
        messageBody: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    order: pulumi.Input<number>;
    redirect: pulumi.Input<{
        host: pulumi.Input<string>;
        path: pulumi.Input<string>;
        port: pulumi.Input<string>;
        protocol: pulumi.Input<string>;
        query: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    targetGroupArn: pulumi.Input<string>;
    type: pulumi.Input<string>;
}>[] | Promise<{
    authenticateCognito: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        userPoolArn: pulumi.Input<string>;
        userPoolClientId: pulumi.Input<string>;
        userPoolDomain: pulumi.Input<string>;
    }>;
    authenticateOidc: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        authorizationEndpoint: pulumi.Input<string>;
        clientId: pulumi.Input<string>;
        clientSecret: pulumi.Input<string>;
        issuer: pulumi.Input<string>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        tokenEndpoint: pulumi.Input<string>;
        userInfoEndpoint: pulumi.Input<string>;
    }>;
    fixedResponse: pulumi.Input<{
        contentType: pulumi.Input<string>;
        messageBody: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    order: pulumi.Input<number>;
    redirect: pulumi.Input<{
        host: pulumi.Input<string>;
        path: pulumi.Input<string>;
        port: pulumi.Input<string>;
        protocol: pulumi.Input<string>;
        query: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    targetGroupArn: pulumi.Input<string>;
    type: pulumi.Input<string>;
} | Promise<{
    authenticateCognito: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        userPoolArn: pulumi.Input<string>;
        userPoolClientId: pulumi.Input<string>;
        userPoolDomain: pulumi.Input<string>;
    }>;
    authenticateOidc: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        authorizationEndpoint: pulumi.Input<string>;
        clientId: pulumi.Input<string>;
        clientSecret: pulumi.Input<string>;
        issuer: pulumi.Input<string>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        tokenEndpoint: pulumi.Input<string>;
        userInfoEndpoint: pulumi.Input<string>;
    }>;
    fixedResponse: pulumi.Input<{
        contentType: pulumi.Input<string>;
        messageBody: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    order: pulumi.Input<number>;
    redirect: pulumi.Input<{
        host: pulumi.Input<string>;
        path: pulumi.Input<string>;
        port: pulumi.Input<string>;
        protocol: pulumi.Input<string>;
        query: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    targetGroupArn: pulumi.Input<string>;
    type: pulumi.Input<string>;
}> | OutputInstance<{
    authenticateCognito: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        userPoolArn: pulumi.Input<string>;
        userPoolClientId: pulumi.Input<string>;
        userPoolDomain: pulumi.Input<string>;
    }>;
    authenticateOidc: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        authorizationEndpoint: pulumi.Input<string>;
        clientId: pulumi.Input<string>;
        clientSecret: pulumi.Input<string>;
        issuer: pulumi.Input<string>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        tokenEndpoint: pulumi.Input<string>;
        userInfoEndpoint: pulumi.Input<string>;
    }>;
    fixedResponse: pulumi.Input<{
        contentType: pulumi.Input<string>;
        messageBody: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    order: pulumi.Input<number>;
    redirect: pulumi.Input<{
        host: pulumi.Input<string>;
        path: pulumi.Input<string>;
        port: pulumi.Input<string>;
        protocol: pulumi.Input<string>;
        query: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    targetGroupArn: pulumi.Input<string>;
    type: pulumi.Input<string>;
}>[]> | OutputInstance<{
    authenticateCognito: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        userPoolArn: pulumi.Input<string>;
        userPoolClientId: pulumi.Input<string>;
        userPoolDomain: pulumi.Input<string>;
    }>;
    authenticateOidc: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        authorizationEndpoint: pulumi.Input<string>;
        clientId: pulumi.Input<string>;
        clientSecret: pulumi.Input<string>;
        issuer: pulumi.Input<string>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        tokenEndpoint: pulumi.Input<string>;
        userInfoEndpoint: pulumi.Input<string>;
    }>;
    fixedResponse: pulumi.Input<{
        contentType: pulumi.Input<string>;
        messageBody: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    order: pulumi.Input<number>;
    redirect: pulumi.Input<{
        host: pulumi.Input<string>;
        path: pulumi.Input<string>;
        port: pulumi.Input<string>;
        protocol: pulumi.Input<string>;
        query: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    targetGroupArn: pulumi.Input<string>;
    type: pulumi.Input<string>;
} | Promise<{
    authenticateCognito: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        userPoolArn: pulumi.Input<string>;
        userPoolClientId: pulumi.Input<string>;
        userPoolDomain: pulumi.Input<string>;
    }>;
    authenticateOidc: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        authorizationEndpoint: pulumi.Input<string>;
        clientId: pulumi.Input<string>;
        clientSecret: pulumi.Input<string>;
        issuer: pulumi.Input<string>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        tokenEndpoint: pulumi.Input<string>;
        userInfoEndpoint: pulumi.Input<string>;
    }>;
    fixedResponse: pulumi.Input<{
        contentType: pulumi.Input<string>;
        messageBody: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    order: pulumi.Input<number>;
    redirect: pulumi.Input<{
        host: pulumi.Input<string>;
        path: pulumi.Input<string>;
        port: pulumi.Input<string>;
        protocol: pulumi.Input<string>;
        query: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    targetGroupArn: pulumi.Input<string>;
    type: pulumi.Input<string>;
}> | OutputInstance<{
    authenticateCognito: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        userPoolArn: pulumi.Input<string>;
        userPoolClientId: pulumi.Input<string>;
        userPoolDomain: pulumi.Input<string>;
    }>;
    authenticateOidc: pulumi.Input<{
        authenticationRequestExtraParams: pulumi.Input<{[key: string]: any}>;
        authorizationEndpoint: pulumi.Input<string>;
        clientId: pulumi.Input<string>;
        clientSecret: pulumi.Input<string>;
        issuer: pulumi.Input<string>;
        onUnauthenticatedRequest: pulumi.Input<string>;
        scope: pulumi.Input<string>;
        sessionCookieName: pulumi.Input<string>;
        sessionTimeout: pulumi.Input<number>;
        tokenEndpoint: pulumi.Input<string>;
        userInfoEndpoint: pulumi.Input<string>;
    }>;
    fixedResponse: pulumi.Input<{
        contentType: pulumi.Input<string>;
        messageBody: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    order: pulumi.Input<number>;
    redirect: pulumi.Input<{
        host: pulumi.Input<string>;
        path: pulumi.Input<string>;
        port: pulumi.Input<string>;
        protocol: pulumi.Input<string>;
        query: pulumi.Input<string>;
        statusCode: pulumi.Input<string>;
    }>;
    targetGroupArn: pulumi.Input<string>;
    type: pulumi.Input<string>;
}>[]> | x.elasticloadbalancingv2.ListenerActions;

An Action block. Action blocks are documented below.

property conditions

conditions: {
    field: pulumi.Input<string>;
    values: pulumi.Input<string>;
} | Promise<{
    field: pulumi.Input<string>;
    values: pulumi.Input<string>;
}> | OutputInstance<{
    field: pulumi.Input<string>;
    values: pulumi.Input<string>;
}>[] | Promise<{
    field: pulumi.Input<string>;
    values: pulumi.Input<string>;
} | Promise<{
    field: pulumi.Input<string>;
    values: pulumi.Input<string>;
}> | OutputInstance<{
    field: pulumi.Input<string>;
    values: pulumi.Input<string>;
}>[]> | OutputInstance<{
    field: pulumi.Input<string>;
    values: pulumi.Input<string>;
} | Promise<{
    field: pulumi.Input<string>;
    values: pulumi.Input<string>;
}> | OutputInstance<{
    field: pulumi.Input<string>;
    values: pulumi.Input<string>;
}>[]>;

A Condition block. Condition blocks are documented below.

property priority

priority?: pulumi.Input<number>;

The priority for the rule between 1 and 50000. Leaving it unset will automatically set the rule with next available priority after currently existing highest rule. A listener can’t have multiple rules with the same priority.

interface LoadBalancerArgs

property enableDeletionProtection

enableDeletionProtection?: pulumi.Input<boolean>;

If true, deletion of the load balancer will be disabled via the AWS API. This will prevent Terraform from deleting the load balancer. Defaults to false.

property external

external?: undefined | false | true;

Whether or not the load balancer is exposed to the internet. Defaults to true if unspecified.

property ipAddressType

ipAddressType?: pulumi.Input<"ipv4" | "dualstack">;

The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 and dualstack

property loadBalancerType

loadBalancerType: pulumi.Input<"application" | "network">;

The type of load balancer to create. Possible values are application or network.

property securityGroups

securityGroups?: x.ec2.SecurityGroupOrId[];

A list of security group IDs to assign to the LB. Only valid for Load Balancers of type application.

property subnetMappings

subnetMappings?: undefined | {
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
} | Promise<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
}> | OutputInstance<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
}>[] | Promise<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
} | Promise<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
}> | OutputInstance<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
}>[]> | OutputInstance<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
} | Promise<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
}> | OutputInstance<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
}>[]>;

A subnet mapping block as documented below.

property subnets

subnets?: pulumi.Input<pulumi.Input<string>[]> | LoadBalancerSubnets;

The subnets to use for the load balancer. If not provided, the appropriate external or internal subnets of the [network] will be used.

property tags

tags?: pulumi.Input<aws.Tags>;

A mapping of tags to assign to the resource.

property vpc

vpc?: x.ec2.Vpc;

The vpc this load balancer will be used with. Defaults to [Vpc.getDefault] if unspecified.

interface LoadBalancerSubnets

interface NetworkListenerArgs

property certificateArn

certificateArn?: pulumi.Input<string>;

The ARN of the default SSL server certificate. Exactly one certificate is required if the protocol is HTTPS. For adding additional SSL certificates, see the aws_lb_listener_certificate resource.

property defaultAction

defaultAction?: pulumi.Input<mod.ListenerDefaultActionArgs> | x.elasticloadbalancingv2.ListenerDefaultAction;

An Action block. If neither this nor [defaultActions] is provided, a suitable defaultAction will be chosen that forwards to a new [NetworkTargetGroup] created from [port].

Do not provide both [defaultAction] and [defaultActions].

property defaultActions

defaultActions?: pulumi.Input<pulumi.Input<mod.ListenerDefaultActionArgs>[]>;

An list of Action blocks. If neither this nor [defaultAction] is provided, a suitable defaultAction will be chosen that forwards to a new [NetworkTargetGroup] created from [port].

Do not provide both [defaultAction] and [defaultActions].

property loadBalancer

loadBalancer?: NetworkLoadBalancer;

The load balancer this listener is associated with. If not provided, a new load balancer will be automatically created.

property port

port: pulumi.Input<number>;

The port. Specify a value from 1 to 65535.

property protocol

protocol?: pulumi.Input<NetworkProtocol>;

The protocol for connections from clients to the load balancer. Valid values are TCP, TLS, HTTP and HTTPS. Defaults to TCP.

property sslPolicy

sslPolicy?: pulumi.Input<string>;

The name of the SSL Policy for the listener. Required if protocol is HTTPS.

property vpc

vpc?: x.ec2.Vpc;

The vpc this load balancer will be used with. Defaults to [Vpc.getDefault] if unspecified.

interface NetworkLoadBalancerArgs

property enableCrossZoneLoadBalancing

enableCrossZoneLoadBalancing?: pulumi.Input<boolean>;

If true, cross-zone load balancing of the load balancer will be enabled. Defaults to false.

property enableDeletionProtection

enableDeletionProtection?: pulumi.Input<boolean>;

If true, deletion of the load balancer will be disabled via the AWS API. This will prevent Terraform from deleting the load balancer. Defaults to false.

property external

external?: undefined | false | true;

Whether or not the load balancer is exposed to the internet. Defaults to false if unspecified.

property ipAddressType

ipAddressType?: pulumi.Input<"ipv4" | "dualstack">;

The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 and dualstack

property subnetMappings

subnetMappings?: undefined | {
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
} | Promise<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
}> | OutputInstance<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
}>[] | Promise<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
} | Promise<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
}> | OutputInstance<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
}>[]> | OutputInstance<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
} | Promise<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
}> | OutputInstance<{
    allocationId: pulumi.Input<string>;
    subnetId: pulumi.Input<string>;
}>[]>;

A subnet mapping block as documented below.

property subnets

subnets?: pulumi.Input<pulumi.Input<string>[]> | x.elasticloadbalancingv2.LoadBalancerSubnets;

A list of subnet IDs to attach to the LB. Subnets cannot be updated for Load Balancers of type network. Changing this value for load balancers of type network will force a recreation of the resource.

property tags

tags?: pulumi.Input<aws.Tags>;

A mapping of tags to assign to the resource.

property vpc

vpc?: x.ec2.Vpc;

The vpc this load balancer will be used with. Defaults to [Vpc.getDefault] if unspecified.

interface NetworkTargetGroupArgs

property deregistrationDelay

deregistrationDelay?: pulumi.Input<number>;

The amount time for Elastic Load Balancing to wait before changing the state of a deregistering target from draining to unused. The range is 0-3600 seconds. The default value is 300 seconds.

property healthCheck

healthCheck?: pulumi.Input<NetworkTargetGroupHealthCheck>;

A Health Check block. Health Check blocks are documented below.

property loadBalancer

loadBalancer?: NetworkLoadBalancer;

The load balancer this target group is associated with. If not provided, a new load balancer will be automatically created.

property port

port: pulumi.Input<number>;

The port to use to connect with the target. Valid values are either ports 1-65536, or traffic-port. Defaults to traffic-port.

property protocol

protocol?: pulumi.Input<NetworkProtocol>;

The protocol for connections from clients to the load balancer. Valid values are TCP, TLS, HTTP and HTTPS. Defaults to TCP.

property proxyProtocolV2

proxyProtocolV2?: pulumi.Input<boolean>;

Boolean to enable / disable support for proxy protocol v2 on Network Load Balancers. See doc for more information.

property slowStart

slowStart?: pulumi.Input<number>;

The amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds.

property stickiness

stickiness?: undefined | {
    cookieDuration: pulumi.Input<number>;
    enabled: pulumi.Input<boolean>;
    type: pulumi.Input<string>;
} | Promise<{
    cookieDuration: pulumi.Input<number>;
    enabled: pulumi.Input<boolean>;
    type: pulumi.Input<string>;
}> | OutputInstance<{
    cookieDuration: pulumi.Input<number>;
    enabled: pulumi.Input<boolean>;
    type: pulumi.Input<string>;
}>;

A Stickiness block. Stickiness blocks are documented below. stickiness is only valid if used with Load Balancers of type Application

property tags

tags?: pulumi.Input<aws.Tags>;

A mapping of tags to assign to the resource.

property targetType

targetType?: pulumi.Input<"instance" | "ip">;

The type of target that you must specify when registering targets with this target group. The possible values are instance (targets are specified by instance ID) or ip (targets are specified by IP address). The default is ip.

Note that you can’t specify targets for a target group using both instance IDs and IP addresses. If the target type is ip, specify IP addresses from the subnets of the virtual private cloud (VPC) for the target group, the RFC 1918 range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the RFC 6598 range (100.64.0.0/10). You can’t specify publicly routable IP addresses.

property vpc

vpc?: x.ec2.Vpc;

The vpc this load balancer will be used with. Defaults to [Vpc.getDefault] if unspecified.

interface NetworkTargetGroupHealthCheck

extends TargetGroupHealthCheck

A Health Check block.

The Health Check parameters you can set vary by the protocol of the Target Group. Many parameters cannot be set to custom values for network load balancers at this time. See http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html for a complete reference. Keep in mind, that health checks produce actual requests to the backend. The underlying function is invoked when target_type is set to lambda.

property healthyThreshold

healthyThreshold?: pulumi.Input<number>;

The number of consecutive health checks successes required before considering an unhealthy target healthy. Defaults to 3.

property interval

interval?: pulumi.Input<number>;

The approximate amount of time, in seconds, between health checks of an individual target. Minimum value 5 seconds, Maximum value 300 seconds. For lambda target groups, it needs to be greater as the [timeout] of the underlying [lambda]. Default 30 seconds.

property matcher

matcher?: undefined;

Applies to Application Load Balancers only (HTTP/HTTPS), not Network Load Balancers (TCP)

property path

path?: undefined;

Applies to Application Load Balancers only (HTTP/HTTPS), not Network Load Balancers (TCP).

property port

port?: pulumi.Input<string>;

The port to use to connect with the target.

property protocol

protocol?: pulumi.Input<string>;

The protocol to use to connect with the target. Defaults to HTTP. Not applicable when target_type is [lambda].

property timeout

timeout?: undefined;

For Network Load Balancers, you cannot set a custom value, and the default is 10 seconds for TCP and HTTPS health checks and 6 seconds for HTTP health checks.

property unhealthyThreshold

unhealthyThreshold?: pulumi.Input<number>;

The number of consecutive health check failures required before considering the target unhealthy . For Network Load Balancers, this value must be the same as the healthy_threshold.

interface TargetGroupArgs

property deregistrationDelay

deregistrationDelay?: pulumi.Input<number>;

The amount time for Elastic Load Balancing to wait before changing the state of a deregistering target from draining to unused. The range is 0-3600 seconds. The default value is 300 seconds.

property healthCheck

healthCheck?: pulumi.Input<TargetGroupHealthCheck>;

Health check parameters for this target group.

property port

port: pulumi.Input<number>;

The port to use to connect with the target. Valid values are either ports 1-65536, or traffic-port. Defaults to traffic-port.

property protocol

protocol: pulumi.Input<"HTTP" | "HTTPS" | "TCP" | "TLS">;

The protocol to use to connect with the target.

property proxyProtocolV2

proxyProtocolV2?: pulumi.Input<boolean>;

Boolean to enable / disable support for proxy protocol v2 on Network Load Balancers. See doc for more information.

property slowStart

slowStart?: pulumi.Input<number>;

The amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds.

property stickiness

stickiness?: undefined | {
    cookieDuration: pulumi.Input<number>;
    enabled: pulumi.Input<boolean>;
    type: pulumi.Input<string>;
} | Promise<{
    cookieDuration: pulumi.Input<number>;
    enabled: pulumi.Input<boolean>;
    type: pulumi.Input<string>;
}> | OutputInstance<{
    cookieDuration: pulumi.Input<number>;
    enabled: pulumi.Input<boolean>;
    type: pulumi.Input<string>;
}>;

A Stickiness block. Stickiness blocks are documented below. stickiness is only valid if used with Load Balancers of type Application

property tags

tags?: pulumi.Input<aws.Tags>;

A mapping of tags to assign to the resource.

property targetType

targetType?: pulumi.Input<"instance" | "ip">;

The type of target that you must specify when registering targets with this target group. The possible values are instance (targets are specified by instance ID) or ip (targets are specified by IP address). The default is ip. Note that you can’t specify targets for a target group using both instance IDs and IP addresses. If the target type is ip, specify IP addresses from the subnets of the virtual private cloud (VPC) for the target group, the RFC 1918 range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the RFC 6598 range (100.64.0.0/10). You can’t specify publicly routable IP addresses.

property vpc

vpc: x.ec2.Vpc;

The vpc for this target group.

interface TargetGroupHealthCheck

A Health Check block.

The Health Check parameters you can set vary by the protocol of the Target Group. Many parameters cannot be set to custom values for network load balancers at this time. See http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html for a complete reference. Keep in mind, that health checks produce actual requests to the backend. The underlying function is invoked when target_type is set to lambda.

property healthyThreshold

healthyThreshold?: pulumi.Input<number>;

The number of consecutive health checks successes required before considering an unhealthy target healthy. Defaults to 3.

property interval

interval?: pulumi.Input<number>;

The approximate amount of time, in seconds, between health checks of an individual target. Minimum value 5 seconds, Maximum value 300 seconds. For lambda target groups, it needs to be greater as the [timeout] of the underlying [lambda]. Default 30 seconds.

property matcher

matcher?: pulumi.Input<string>;

The HTTP codes to use when checking for a successful response from a target. You can specify multiple values (for example, “200,202”) or a range of values (for example, “200-299”). Applies to Application Load Balancers only (HTTP/HTTPS), not Network Load Balancers (TCP)

property path

path?: pulumi.Input<string>;

(Required for HTTP/HTTPS ALB) The destination for the health check request. Applies to Application Load Balancers only (HTTP/HTTPS), not Network Load Balancers (TCP).

property port

port?: pulumi.Input<string>;

The port to use to connect with the target.

property protocol

protocol?: pulumi.Input<string>;

The protocol to use to connect with the target. Defaults to HTTP. Not applicable when target_type is [lambda].

property timeout

timeout?: pulumi.Input<number>;

The amount of time, in seconds, during which no response means a failed health check. For Application Load Balancers, the range is 2 to 60 seconds and the default is 5 seconds. For Network Load Balancers, you cannot set a custom value, and the default is 10 seconds for TCP and HTTPS health checks and 6 seconds for HTTP health checks.

property unhealthyThreshold

unhealthyThreshold?: pulumi.Input<number>;

The number of consecutive health check failures required before considering the target unhealthy . For Network Load Balancers, this value must be the same as the healthy_threshold. Defaults to 3.

type ApplicationProtocol

type ApplicationProtocol = "HTTP" | "HTTPS";

type NetworkProtocol

type NetworkProtocol = "TCP" | "TLS" | "HTTP" | "HTTPS";