1. Packages
  2. AWSx (Pulumi Crosswalk for AWS)
  3. API Docs
  4. lb
  5. ApplicationLoadBalancer
AWSx (Pulumi Crosswalk for AWS) v2.7.0 published on Wednesday, Apr 10, 2024 by Pulumi

awsx.lb.ApplicationLoadBalancer

Explore with Pulumi AI

awsx logo
AWSx (Pulumi Crosswalk for AWS) v2.7.0 published on Wednesday, Apr 10, 2024 by Pulumi

    Provides an Application Load Balancer resource with listeners, default target group and default security group.

    Create ApplicationLoadBalancer Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new ApplicationLoadBalancer(name: string, args?: ApplicationLoadBalancerArgs, opts?: CustomResourceOptions);
    @overload
    def ApplicationLoadBalancer(resource_name: str,
                                args: Optional[ApplicationLoadBalancerArgs] = None,
                                opts: Optional[ResourceOptions] = None)
    
    @overload
    def ApplicationLoadBalancer(resource_name: str,
                                opts: Optional[ResourceOptions] = None,
                                access_logs: Optional[pulumi_aws.lb.LoadBalancerAccessLogsArgs] = None,
                                customer_owned_ipv4_pool: Optional[str] = None,
                                default_security_group: Optional[_awsx.DefaultSecurityGroupArgs] = None,
                                default_target_group: Optional[TargetGroupArgs] = None,
                                default_target_group_port: Optional[int] = None,
                                desync_mitigation_mode: Optional[str] = None,
                                dns_record_client_routing_policy: Optional[str] = None,
                                drop_invalid_header_fields: Optional[bool] = None,
                                enable_deletion_protection: Optional[bool] = None,
                                enable_http2: Optional[bool] = None,
                                enable_tls_version_and_cipher_suite_headers: Optional[bool] = None,
                                enable_waf_fail_open: Optional[bool] = None,
                                enable_xff_client_port: Optional[bool] = None,
                                idle_timeout: Optional[int] = None,
                                internal: Optional[bool] = None,
                                ip_address_type: Optional[str] = None,
                                listener: Optional[ListenerArgs] = None,
                                listeners: Optional[Sequence[ListenerArgs]] = None,
                                name: Optional[str] = None,
                                name_prefix: Optional[str] = None,
                                preserve_host_header: Optional[bool] = None,
                                security_groups: Optional[Sequence[str]] = None,
                                subnet_ids: Optional[Sequence[str]] = None,
                                subnet_mappings: Optional[Sequence[pulumi_aws.lb.LoadBalancerSubnetMappingArgs]] = None,
                                subnets: Optional[Sequence[pulumi_aws.ec2.Subnet]] = None,
                                tags: Optional[Mapping[str, str]] = None,
                                xff_header_processing_mode: Optional[str] = None)
    func NewApplicationLoadBalancer(ctx *Context, name string, args *ApplicationLoadBalancerArgs, opts ...ResourceOption) (*ApplicationLoadBalancer, error)
    public ApplicationLoadBalancer(string name, ApplicationLoadBalancerArgs? args = null, CustomResourceOptions? opts = null)
    public ApplicationLoadBalancer(String name, ApplicationLoadBalancerArgs args)
    public ApplicationLoadBalancer(String name, ApplicationLoadBalancerArgs args, CustomResourceOptions options)
    
    type: awsx:lb:ApplicationLoadBalancer
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args ApplicationLoadBalancerArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args ApplicationLoadBalancerArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args ApplicationLoadBalancerArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ApplicationLoadBalancerArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ApplicationLoadBalancerArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Example

    The following reference example uses placeholder values for all input properties.

    var applicationLoadBalancerResource = new Awsx.Lb.ApplicationLoadBalancer("applicationLoadBalancerResource", new()
    {
        AccessLogs = new Aws.Lb.Inputs.LoadBalancerAccessLogsArgs
        {
            Bucket = "string",
            Enabled = false,
            Prefix = "string",
        },
        CustomerOwnedIpv4Pool = "string",
        DefaultSecurityGroup = new Awsx.Awsx.Inputs.DefaultSecurityGroupArgs
        {
            Args = new Awsx.Awsx.Inputs.SecurityGroupArgs
            {
                Description = "string",
                Egress = new()
                {
                    new Aws.Ec2.Inputs.SecurityGroupEgressArgs
                    {
                        FromPort = 0,
                        Protocol = "string",
                        ToPort = 0,
                        CidrBlocks = new()
                        {
                            "string",
                        },
                        Description = "string",
                        Ipv6CidrBlocks = new()
                        {
                            "string",
                        },
                        PrefixListIds = new()
                        {
                            "string",
                        },
                        SecurityGroups = new()
                        {
                            "string",
                        },
                        Self = false,
                    },
                },
                Ingress = new()
                {
                    new Aws.Ec2.Inputs.SecurityGroupIngressArgs
                    {
                        FromPort = 0,
                        Protocol = "string",
                        ToPort = 0,
                        CidrBlocks = new()
                        {
                            "string",
                        },
                        Description = "string",
                        Ipv6CidrBlocks = new()
                        {
                            "string",
                        },
                        PrefixListIds = new()
                        {
                            "string",
                        },
                        SecurityGroups = new()
                        {
                            "string",
                        },
                        Self = false,
                    },
                },
                Name = "string",
                NamePrefix = "string",
                RevokeRulesOnDelete = false,
                Tags = 
                {
                    { "string", "string" },
                },
                VpcId = "string",
            },
            SecurityGroupId = "string",
            Skip = false,
        },
        DefaultTargetGroup = new Awsx.Lb.Inputs.TargetGroupArgs
        {
            ConnectionTermination = false,
            DeregistrationDelay = 0,
            HealthCheck = new Aws.Lb.Inputs.TargetGroupHealthCheckArgs
            {
                Enabled = false,
                HealthyThreshold = 0,
                Interval = 0,
                Matcher = "string",
                Path = "string",
                Port = "string",
                Protocol = "string",
                Timeout = 0,
                UnhealthyThreshold = 0,
            },
            IpAddressType = "string",
            LambdaMultiValueHeadersEnabled = false,
            LoadBalancingAlgorithmType = "string",
            LoadBalancingCrossZoneEnabled = "string",
            Name = "string",
            NamePrefix = "string",
            Port = 0,
            PreserveClientIp = "string",
            Protocol = "string",
            ProtocolVersion = "string",
            ProxyProtocolV2 = false,
            SlowStart = 0,
            Stickiness = new Aws.Lb.Inputs.TargetGroupStickinessArgs
            {
                Type = "string",
                CookieDuration = 0,
                CookieName = "string",
                Enabled = false,
            },
            Tags = 
            {
                { "string", "string" },
            },
            TargetFailovers = new()
            {
                new Aws.Lb.Inputs.TargetGroupTargetFailoverArgs
                {
                    OnDeregistration = "string",
                    OnUnhealthy = "string",
                },
            },
            TargetHealthStates = new()
            {
                new Aws.Lb.Inputs.TargetGroupTargetHealthStateArgs
                {
                    EnableUnhealthyConnectionTermination = false,
                },
            },
            TargetType = "string",
            VpcId = "string",
        },
        DefaultTargetGroupPort = 0,
        DesyncMitigationMode = "string",
        DnsRecordClientRoutingPolicy = "string",
        DropInvalidHeaderFields = false,
        EnableDeletionProtection = false,
        EnableHttp2 = false,
        EnableTlsVersionAndCipherSuiteHeaders = false,
        EnableWafFailOpen = false,
        EnableXffClientPort = false,
        IdleTimeout = 0,
        Internal = false,
        IpAddressType = "string",
        Listener = new Awsx.Lb.Inputs.ListenerArgs
        {
            AlpnPolicy = "string",
            CertificateArn = "string",
            DefaultActions = new()
            {
                new Aws.Lb.Inputs.ListenerDefaultActionArgs
                {
                    Type = "string",
                    AuthenticateCognito = new Aws.Lb.Inputs.ListenerDefaultActionAuthenticateCognitoArgs
                    {
                        UserPoolArn = "string",
                        UserPoolClientId = "string",
                        UserPoolDomain = "string",
                        AuthenticationRequestExtraParams = 
                        {
                            { "string", "string" },
                        },
                        OnUnauthenticatedRequest = "string",
                        Scope = "string",
                        SessionCookieName = "string",
                        SessionTimeout = 0,
                    },
                    AuthenticateOidc = new Aws.Lb.Inputs.ListenerDefaultActionAuthenticateOidcArgs
                    {
                        AuthorizationEndpoint = "string",
                        ClientId = "string",
                        ClientSecret = "string",
                        Issuer = "string",
                        TokenEndpoint = "string",
                        UserInfoEndpoint = "string",
                        AuthenticationRequestExtraParams = 
                        {
                            { "string", "string" },
                        },
                        OnUnauthenticatedRequest = "string",
                        Scope = "string",
                        SessionCookieName = "string",
                        SessionTimeout = 0,
                    },
                    FixedResponse = new Aws.Lb.Inputs.ListenerDefaultActionFixedResponseArgs
                    {
                        ContentType = "string",
                        MessageBody = "string",
                        StatusCode = "string",
                    },
                    Forward = new Aws.Lb.Inputs.ListenerDefaultActionForwardArgs
                    {
                        TargetGroups = new()
                        {
                            new Aws.Lb.Inputs.ListenerDefaultActionForwardTargetGroupArgs
                            {
                                Arn = "string",
                                Weight = 0,
                            },
                        },
                        Stickiness = new Aws.Lb.Inputs.ListenerDefaultActionForwardStickinessArgs
                        {
                            Duration = 0,
                            Enabled = false,
                        },
                    },
                    Order = 0,
                    Redirect = new Aws.Lb.Inputs.ListenerDefaultActionRedirectArgs
                    {
                        StatusCode = "string",
                        Host = "string",
                        Path = "string",
                        Port = "string",
                        Protocol = "string",
                        Query = "string",
                    },
                    TargetGroupArn = "string",
                },
            },
            Port = 0,
            Protocol = "string",
            SslPolicy = "string",
            Tags = 
            {
                { "string", "string" },
            },
        },
        Listeners = new()
        {
            new Awsx.Lb.Inputs.ListenerArgs
            {
                AlpnPolicy = "string",
                CertificateArn = "string",
                DefaultActions = new()
                {
                    new Aws.Lb.Inputs.ListenerDefaultActionArgs
                    {
                        Type = "string",
                        AuthenticateCognito = new Aws.Lb.Inputs.ListenerDefaultActionAuthenticateCognitoArgs
                        {
                            UserPoolArn = "string",
                            UserPoolClientId = "string",
                            UserPoolDomain = "string",
                            AuthenticationRequestExtraParams = 
                            {
                                { "string", "string" },
                            },
                            OnUnauthenticatedRequest = "string",
                            Scope = "string",
                            SessionCookieName = "string",
                            SessionTimeout = 0,
                        },
                        AuthenticateOidc = new Aws.Lb.Inputs.ListenerDefaultActionAuthenticateOidcArgs
                        {
                            AuthorizationEndpoint = "string",
                            ClientId = "string",
                            ClientSecret = "string",
                            Issuer = "string",
                            TokenEndpoint = "string",
                            UserInfoEndpoint = "string",
                            AuthenticationRequestExtraParams = 
                            {
                                { "string", "string" },
                            },
                            OnUnauthenticatedRequest = "string",
                            Scope = "string",
                            SessionCookieName = "string",
                            SessionTimeout = 0,
                        },
                        FixedResponse = new Aws.Lb.Inputs.ListenerDefaultActionFixedResponseArgs
                        {
                            ContentType = "string",
                            MessageBody = "string",
                            StatusCode = "string",
                        },
                        Forward = new Aws.Lb.Inputs.ListenerDefaultActionForwardArgs
                        {
                            TargetGroups = new()
                            {
                                new Aws.Lb.Inputs.ListenerDefaultActionForwardTargetGroupArgs
                                {
                                    Arn = "string",
                                    Weight = 0,
                                },
                            },
                            Stickiness = new Aws.Lb.Inputs.ListenerDefaultActionForwardStickinessArgs
                            {
                                Duration = 0,
                                Enabled = false,
                            },
                        },
                        Order = 0,
                        Redirect = new Aws.Lb.Inputs.ListenerDefaultActionRedirectArgs
                        {
                            StatusCode = "string",
                            Host = "string",
                            Path = "string",
                            Port = "string",
                            Protocol = "string",
                            Query = "string",
                        },
                        TargetGroupArn = "string",
                    },
                },
                Port = 0,
                Protocol = "string",
                SslPolicy = "string",
                Tags = 
                {
                    { "string", "string" },
                },
            },
        },
        Name = "string",
        NamePrefix = "string",
        PreserveHostHeader = false,
        SecurityGroups = new[]
        {
            "string",
        },
        SubnetIds = new[]
        {
            "string",
        },
        SubnetMappings = new[]
        {
            new Aws.Lb.Inputs.LoadBalancerSubnetMappingArgs
            {
                SubnetId = "string",
                AllocationId = "string",
                Ipv6Address = "string",
                OutpostId = "string",
                PrivateIpv4Address = "string",
            },
        },
        Subnets = new[]
        {
            subnet,
        },
        Tags = 
        {
            { "string", "string" },
        },
        XffHeaderProcessingMode = "string",
    });
    
    Coming soon!
    
    var applicationLoadBalancerResource = new ApplicationLoadBalancer("applicationLoadBalancerResource", ApplicationLoadBalancerArgs.builder()        
        .accessLogs(LoadBalancerAccessLogsArgs.builder()
            .bucket("string")
            .enabled(false)
            .prefix("string")
            .build())
        .customerOwnedIpv4Pool("string")
        .defaultSecurityGroup(DefaultSecurityGroupArgs.builder()
            .args(SecurityGroupArgs.builder()
                .description("string")
                .egress(SecurityGroupEgressArgs.builder()
                    .fromPort(0)
                    .protocol("string")
                    .toPort(0)
                    .cidrBlocks("string")
                    .description("string")
                    .ipv6CidrBlocks("string")
                    .prefixListIds("string")
                    .securityGroups("string")
                    .self(false)
                    .build())
                .ingress(SecurityGroupIngressArgs.builder()
                    .fromPort(0)
                    .protocol("string")
                    .toPort(0)
                    .cidrBlocks("string")
                    .description("string")
                    .ipv6CidrBlocks("string")
                    .prefixListIds("string")
                    .securityGroups("string")
                    .self(false)
                    .build())
                .name("string")
                .namePrefix("string")
                .revokeRulesOnDelete(false)
                .tags(Map.of("string", "string"))
                .vpcId("string")
                .build())
            .securityGroupId("string")
            .skip(false)
            .build())
        .defaultTargetGroup(TargetGroupArgs.builder()
            .connectionTermination(false)
            .deregistrationDelay(0)
            .healthCheck(TargetGroupHealthCheckArgs.builder()
                .enabled(false)
                .healthyThreshold(0)
                .interval(0)
                .matcher("string")
                .path("string")
                .port("string")
                .protocol("string")
                .timeout(0)
                .unhealthyThreshold(0)
                .build())
            .ipAddressType("string")
            .lambdaMultiValueHeadersEnabled(false)
            .loadBalancingAlgorithmType("string")
            .loadBalancingCrossZoneEnabled("string")
            .name("string")
            .namePrefix("string")
            .port(0)
            .preserveClientIp("string")
            .protocol("string")
            .protocolVersion("string")
            .proxyProtocolV2(false)
            .slowStart(0)
            .stickiness(TargetGroupStickinessArgs.builder()
                .type("string")
                .cookieDuration(0)
                .cookieName("string")
                .enabled(false)
                .build())
            .tags(Map.of("string", "string"))
            .targetFailovers(TargetGroupTargetFailoverArgs.builder()
                .onDeregistration("string")
                .onUnhealthy("string")
                .build())
            .targetHealthStates(TargetGroupTargetHealthStateArgs.builder()
                .enableUnhealthyConnectionTermination(false)
                .build())
            .targetType("string")
            .vpcId("string")
            .build())
        .defaultTargetGroupPort(0)
        .desyncMitigationMode("string")
        .dnsRecordClientRoutingPolicy("string")
        .dropInvalidHeaderFields(false)
        .enableDeletionProtection(false)
        .enableHttp2(false)
        .enableTlsVersionAndCipherSuiteHeaders(false)
        .enableWafFailOpen(false)
        .enableXffClientPort(false)
        .idleTimeout(0)
        .internal(false)
        .ipAddressType("string")
        .listener(ListenerArgs.builder()
            .alpnPolicy("string")
            .certificateArn("string")
            .defaultActions(ListenerDefaultActionArgs.builder()
                .type("string")
                .authenticateCognito(ListenerDefaultActionAuthenticateCognitoArgs.builder()
                    .userPoolArn("string")
                    .userPoolClientId("string")
                    .userPoolDomain("string")
                    .authenticationRequestExtraParams(Map.of("string", "string"))
                    .onUnauthenticatedRequest("string")
                    .scope("string")
                    .sessionCookieName("string")
                    .sessionTimeout(0)
                    .build())
                .authenticateOidc(ListenerDefaultActionAuthenticateOidcArgs.builder()
                    .authorizationEndpoint("string")
                    .clientId("string")
                    .clientSecret("string")
                    .issuer("string")
                    .tokenEndpoint("string")
                    .userInfoEndpoint("string")
                    .authenticationRequestExtraParams(Map.of("string", "string"))
                    .onUnauthenticatedRequest("string")
                    .scope("string")
                    .sessionCookieName("string")
                    .sessionTimeout(0)
                    .build())
                .fixedResponse(ListenerDefaultActionFixedResponseArgs.builder()
                    .contentType("string")
                    .messageBody("string")
                    .statusCode("string")
                    .build())
                .forward(ListenerDefaultActionForwardArgs.builder()
                    .targetGroups(ListenerDefaultActionForwardTargetGroupArgs.builder()
                        .arn("string")
                        .weight(0)
                        .build())
                    .stickiness(ListenerDefaultActionForwardStickinessArgs.builder()
                        .duration(0)
                        .enabled(false)
                        .build())
                    .build())
                .order(0)
                .redirect(ListenerDefaultActionRedirectArgs.builder()
                    .statusCode("string")
                    .host("string")
                    .path("string")
                    .port("string")
                    .protocol("string")
                    .query("string")
                    .build())
                .targetGroupArn("string")
                .build())
            .port(0)
            .protocol("string")
            .sslPolicy("string")
            .tags(Map.of("string", "string"))
            .build())
        .listeners(ListenerArgs.builder()
            .alpnPolicy("string")
            .certificateArn("string")
            .defaultActions(ListenerDefaultActionArgs.builder()
                .type("string")
                .authenticateCognito(ListenerDefaultActionAuthenticateCognitoArgs.builder()
                    .userPoolArn("string")
                    .userPoolClientId("string")
                    .userPoolDomain("string")
                    .authenticationRequestExtraParams(Map.of("string", "string"))
                    .onUnauthenticatedRequest("string")
                    .scope("string")
                    .sessionCookieName("string")
                    .sessionTimeout(0)
                    .build())
                .authenticateOidc(ListenerDefaultActionAuthenticateOidcArgs.builder()
                    .authorizationEndpoint("string")
                    .clientId("string")
                    .clientSecret("string")
                    .issuer("string")
                    .tokenEndpoint("string")
                    .userInfoEndpoint("string")
                    .authenticationRequestExtraParams(Map.of("string", "string"))
                    .onUnauthenticatedRequest("string")
                    .scope("string")
                    .sessionCookieName("string")
                    .sessionTimeout(0)
                    .build())
                .fixedResponse(ListenerDefaultActionFixedResponseArgs.builder()
                    .contentType("string")
                    .messageBody("string")
                    .statusCode("string")
                    .build())
                .forward(ListenerDefaultActionForwardArgs.builder()
                    .targetGroups(ListenerDefaultActionForwardTargetGroupArgs.builder()
                        .arn("string")
                        .weight(0)
                        .build())
                    .stickiness(ListenerDefaultActionForwardStickinessArgs.builder()
                        .duration(0)
                        .enabled(false)
                        .build())
                    .build())
                .order(0)
                .redirect(ListenerDefaultActionRedirectArgs.builder()
                    .statusCode("string")
                    .host("string")
                    .path("string")
                    .port("string")
                    .protocol("string")
                    .query("string")
                    .build())
                .targetGroupArn("string")
                .build())
            .port(0)
            .protocol("string")
            .sslPolicy("string")
            .tags(Map.of("string", "string"))
            .build())
        .name("string")
        .namePrefix("string")
        .preserveHostHeader(false)
        .securityGroups("string")
        .subnetIds("string")
        .subnetMappings(LoadBalancerSubnetMappingArgs.builder()
            .subnetId("string")
            .allocationId("string")
            .ipv6Address("string")
            .outpostId("string")
            .privateIpv4Address("string")
            .build())
        .subnets(subnet)
        .tags(Map.of("string", "string"))
        .xffHeaderProcessingMode("string")
        .build());
    
    application_load_balancer_resource = awsx.lb.ApplicationLoadBalancer("applicationLoadBalancerResource",
        access_logs=aws.lb.LoadBalancerAccessLogsArgs(
            bucket="string",
            enabled=False,
            prefix="string",
        ),
        customer_owned_ipv4_pool="string",
        default_security_group=awsx.awsx.DefaultSecurityGroupArgs(
            args=awsx.awsx.SecurityGroupArgs(
                description="string",
                egress=[aws.ec2.SecurityGroupEgressArgs(
                    from_port=0,
                    protocol="string",
                    to_port=0,
                    cidr_blocks=["string"],
                    description="string",
                    ipv6_cidr_blocks=["string"],
                    prefix_list_ids=["string"],
                    security_groups=["string"],
                    self=False,
                )],
                ingress=[aws.ec2.SecurityGroupIngressArgs(
                    from_port=0,
                    protocol="string",
                    to_port=0,
                    cidr_blocks=["string"],
                    description="string",
                    ipv6_cidr_blocks=["string"],
                    prefix_list_ids=["string"],
                    security_groups=["string"],
                    self=False,
                )],
                name="string",
                name_prefix="string",
                revoke_rules_on_delete=False,
                tags={
                    "string": "string",
                },
                vpc_id="string",
            ),
            security_group_id="string",
            skip=False,
        ),
        default_target_group=awsx.lb.TargetGroupArgs(
            connection_termination=False,
            deregistration_delay=0,
            health_check=aws.lb.TargetGroupHealthCheckArgs(
                enabled=False,
                healthy_threshold=0,
                interval=0,
                matcher="string",
                path="string",
                port="string",
                protocol="string",
                timeout=0,
                unhealthy_threshold=0,
            ),
            ip_address_type="string",
            lambda_multi_value_headers_enabled=False,
            load_balancing_algorithm_type="string",
            load_balancing_cross_zone_enabled="string",
            name="string",
            name_prefix="string",
            port=0,
            preserve_client_ip="string",
            protocol="string",
            protocol_version="string",
            proxy_protocol_v2=False,
            slow_start=0,
            stickiness=aws.lb.TargetGroupStickinessArgs(
                type="string",
                cookie_duration=0,
                cookie_name="string",
                enabled=False,
            ),
            tags={
                "string": "string",
            },
            target_failovers=[aws.lb.TargetGroupTargetFailoverArgs(
                on_deregistration="string",
                on_unhealthy="string",
            )],
            target_health_states=[aws.lb.TargetGroupTargetHealthStateArgs(
                enable_unhealthy_connection_termination=False,
            )],
            target_type="string",
            vpc_id="string",
        ),
        default_target_group_port=0,
        desync_mitigation_mode="string",
        dns_record_client_routing_policy="string",
        drop_invalid_header_fields=False,
        enable_deletion_protection=False,
        enable_http2=False,
        enable_tls_version_and_cipher_suite_headers=False,
        enable_waf_fail_open=False,
        enable_xff_client_port=False,
        idle_timeout=0,
        internal=False,
        ip_address_type="string",
        listener=awsx.lb.ListenerArgs(
            alpn_policy="string",
            certificate_arn="string",
            default_actions=[aws.lb.ListenerDefaultActionArgs(
                type="string",
                authenticate_cognito=aws.lb.ListenerDefaultActionAuthenticateCognitoArgs(
                    user_pool_arn="string",
                    user_pool_client_id="string",
                    user_pool_domain="string",
                    authentication_request_extra_params={
                        "string": "string",
                    },
                    on_unauthenticated_request="string",
                    scope="string",
                    session_cookie_name="string",
                    session_timeout=0,
                ),
                authenticate_oidc=aws.lb.ListenerDefaultActionAuthenticateOidcArgs(
                    authorization_endpoint="string",
                    client_id="string",
                    client_secret="string",
                    issuer="string",
                    token_endpoint="string",
                    user_info_endpoint="string",
                    authentication_request_extra_params={
                        "string": "string",
                    },
                    on_unauthenticated_request="string",
                    scope="string",
                    session_cookie_name="string",
                    session_timeout=0,
                ),
                fixed_response=aws.lb.ListenerDefaultActionFixedResponseArgs(
                    content_type="string",
                    message_body="string",
                    status_code="string",
                ),
                forward=aws.lb.ListenerDefaultActionForwardArgs(
                    target_groups=[aws.lb.ListenerDefaultActionForwardTargetGroupArgs(
                        arn="string",
                        weight=0,
                    )],
                    stickiness=aws.lb.ListenerDefaultActionForwardStickinessArgs(
                        duration=0,
                        enabled=False,
                    ),
                ),
                order=0,
                redirect=aws.lb.ListenerDefaultActionRedirectArgs(
                    status_code="string",
                    host="string",
                    path="string",
                    port="string",
                    protocol="string",
                    query="string",
                ),
                target_group_arn="string",
            )],
            port=0,
            protocol="string",
            ssl_policy="string",
            tags={
                "string": "string",
            },
        ),
        listeners=[awsx.lb.ListenerArgs(
            alpn_policy="string",
            certificate_arn="string",
            default_actions=[aws.lb.ListenerDefaultActionArgs(
                type="string",
                authenticate_cognito=aws.lb.ListenerDefaultActionAuthenticateCognitoArgs(
                    user_pool_arn="string",
                    user_pool_client_id="string",
                    user_pool_domain="string",
                    authentication_request_extra_params={
                        "string": "string",
                    },
                    on_unauthenticated_request="string",
                    scope="string",
                    session_cookie_name="string",
                    session_timeout=0,
                ),
                authenticate_oidc=aws.lb.ListenerDefaultActionAuthenticateOidcArgs(
                    authorization_endpoint="string",
                    client_id="string",
                    client_secret="string",
                    issuer="string",
                    token_endpoint="string",
                    user_info_endpoint="string",
                    authentication_request_extra_params={
                        "string": "string",
                    },
                    on_unauthenticated_request="string",
                    scope="string",
                    session_cookie_name="string",
                    session_timeout=0,
                ),
                fixed_response=aws.lb.ListenerDefaultActionFixedResponseArgs(
                    content_type="string",
                    message_body="string",
                    status_code="string",
                ),
                forward=aws.lb.ListenerDefaultActionForwardArgs(
                    target_groups=[aws.lb.ListenerDefaultActionForwardTargetGroupArgs(
                        arn="string",
                        weight=0,
                    )],
                    stickiness=aws.lb.ListenerDefaultActionForwardStickinessArgs(
                        duration=0,
                        enabled=False,
                    ),
                ),
                order=0,
                redirect=aws.lb.ListenerDefaultActionRedirectArgs(
                    status_code="string",
                    host="string",
                    path="string",
                    port="string",
                    protocol="string",
                    query="string",
                ),
                target_group_arn="string",
            )],
            port=0,
            protocol="string",
            ssl_policy="string",
            tags={
                "string": "string",
            },
        )],
        name="string",
        name_prefix="string",
        preserve_host_header=False,
        security_groups=["string"],
        subnet_ids=["string"],
        subnet_mappings=[aws.lb.LoadBalancerSubnetMappingArgs(
            subnet_id="string",
            allocation_id="string",
            ipv6_address="string",
            outpost_id="string",
            private_ipv4_address="string",
        )],
        subnets=[subnet],
        tags={
            "string": "string",
        },
        xff_header_processing_mode="string")
    
    const applicationLoadBalancerResource = new awsx.lb.ApplicationLoadBalancer("applicationLoadBalancerResource", {
        accessLogs: {
            bucket: "string",
            enabled: false,
            prefix: "string",
        },
        customerOwnedIpv4Pool: "string",
        defaultSecurityGroup: {
            args: {
                description: "string",
                egress: [{
                    fromPort: 0,
                    protocol: "string",
                    toPort: 0,
                    cidrBlocks: ["string"],
                    description: "string",
                    ipv6CidrBlocks: ["string"],
                    prefixListIds: ["string"],
                    securityGroups: ["string"],
                    self: false,
                }],
                ingress: [{
                    fromPort: 0,
                    protocol: "string",
                    toPort: 0,
                    cidrBlocks: ["string"],
                    description: "string",
                    ipv6CidrBlocks: ["string"],
                    prefixListIds: ["string"],
                    securityGroups: ["string"],
                    self: false,
                }],
                name: "string",
                namePrefix: "string",
                revokeRulesOnDelete: false,
                tags: {
                    string: "string",
                },
                vpcId: "string",
            },
            securityGroupId: "string",
            skip: false,
        },
        defaultTargetGroup: {
            connectionTermination: false,
            deregistrationDelay: 0,
            healthCheck: {
                enabled: false,
                healthyThreshold: 0,
                interval: 0,
                matcher: "string",
                path: "string",
                port: "string",
                protocol: "string",
                timeout: 0,
                unhealthyThreshold: 0,
            },
            ipAddressType: "string",
            lambdaMultiValueHeadersEnabled: false,
            loadBalancingAlgorithmType: "string",
            loadBalancingCrossZoneEnabled: "string",
            name: "string",
            namePrefix: "string",
            port: 0,
            preserveClientIp: "string",
            protocol: "string",
            protocolVersion: "string",
            proxyProtocolV2: false,
            slowStart: 0,
            stickiness: {
                type: "string",
                cookieDuration: 0,
                cookieName: "string",
                enabled: false,
            },
            tags: {
                string: "string",
            },
            targetFailovers: [{
                onDeregistration: "string",
                onUnhealthy: "string",
            }],
            targetHealthStates: [{
                enableUnhealthyConnectionTermination: false,
            }],
            targetType: "string",
            vpcId: "string",
        },
        defaultTargetGroupPort: 0,
        desyncMitigationMode: "string",
        dnsRecordClientRoutingPolicy: "string",
        dropInvalidHeaderFields: false,
        enableDeletionProtection: false,
        enableHttp2: false,
        enableTlsVersionAndCipherSuiteHeaders: false,
        enableWafFailOpen: false,
        enableXffClientPort: false,
        idleTimeout: 0,
        internal: false,
        ipAddressType: "string",
        listener: {
            alpnPolicy: "string",
            certificateArn: "string",
            defaultActions: [{
                type: "string",
                authenticateCognito: {
                    userPoolArn: "string",
                    userPoolClientId: "string",
                    userPoolDomain: "string",
                    authenticationRequestExtraParams: {
                        string: "string",
                    },
                    onUnauthenticatedRequest: "string",
                    scope: "string",
                    sessionCookieName: "string",
                    sessionTimeout: 0,
                },
                authenticateOidc: {
                    authorizationEndpoint: "string",
                    clientId: "string",
                    clientSecret: "string",
                    issuer: "string",
                    tokenEndpoint: "string",
                    userInfoEndpoint: "string",
                    authenticationRequestExtraParams: {
                        string: "string",
                    },
                    onUnauthenticatedRequest: "string",
                    scope: "string",
                    sessionCookieName: "string",
                    sessionTimeout: 0,
                },
                fixedResponse: {
                    contentType: "string",
                    messageBody: "string",
                    statusCode: "string",
                },
                forward: {
                    targetGroups: [{
                        arn: "string",
                        weight: 0,
                    }],
                    stickiness: {
                        duration: 0,
                        enabled: false,
                    },
                },
                order: 0,
                redirect: {
                    statusCode: "string",
                    host: "string",
                    path: "string",
                    port: "string",
                    protocol: "string",
                    query: "string",
                },
                targetGroupArn: "string",
            }],
            port: 0,
            protocol: "string",
            sslPolicy: "string",
            tags: {
                string: "string",
            },
        },
        listeners: [{
            alpnPolicy: "string",
            certificateArn: "string",
            defaultActions: [{
                type: "string",
                authenticateCognito: {
                    userPoolArn: "string",
                    userPoolClientId: "string",
                    userPoolDomain: "string",
                    authenticationRequestExtraParams: {
                        string: "string",
                    },
                    onUnauthenticatedRequest: "string",
                    scope: "string",
                    sessionCookieName: "string",
                    sessionTimeout: 0,
                },
                authenticateOidc: {
                    authorizationEndpoint: "string",
                    clientId: "string",
                    clientSecret: "string",
                    issuer: "string",
                    tokenEndpoint: "string",
                    userInfoEndpoint: "string",
                    authenticationRequestExtraParams: {
                        string: "string",
                    },
                    onUnauthenticatedRequest: "string",
                    scope: "string",
                    sessionCookieName: "string",
                    sessionTimeout: 0,
                },
                fixedResponse: {
                    contentType: "string",
                    messageBody: "string",
                    statusCode: "string",
                },
                forward: {
                    targetGroups: [{
                        arn: "string",
                        weight: 0,
                    }],
                    stickiness: {
                        duration: 0,
                        enabled: false,
                    },
                },
                order: 0,
                redirect: {
                    statusCode: "string",
                    host: "string",
                    path: "string",
                    port: "string",
                    protocol: "string",
                    query: "string",
                },
                targetGroupArn: "string",
            }],
            port: 0,
            protocol: "string",
            sslPolicy: "string",
            tags: {
                string: "string",
            },
        }],
        name: "string",
        namePrefix: "string",
        preserveHostHeader: false,
        securityGroups: ["string"],
        subnetIds: ["string"],
        subnetMappings: [{
            subnetId: "string",
            allocationId: "string",
            ipv6Address: "string",
            outpostId: "string",
            privateIpv4Address: "string",
        }],
        subnets: [subnet],
        tags: {
            string: "string",
        },
        xffHeaderProcessingMode: "string",
    });
    
    type: awsx:lb:ApplicationLoadBalancer
    properties:
        accessLogs:
            bucket: string
            enabled: false
            prefix: string
        customerOwnedIpv4Pool: string
        defaultSecurityGroup:
            args:
                description: string
                egress:
                    - cidrBlocks:
                        - string
                      description: string
                      fromPort: 0
                      ipv6CidrBlocks:
                        - string
                      prefixListIds:
                        - string
                      protocol: string
                      securityGroups:
                        - string
                      self: false
                      toPort: 0
                ingress:
                    - cidrBlocks:
                        - string
                      description: string
                      fromPort: 0
                      ipv6CidrBlocks:
                        - string
                      prefixListIds:
                        - string
                      protocol: string
                      securityGroups:
                        - string
                      self: false
                      toPort: 0
                name: string
                namePrefix: string
                revokeRulesOnDelete: false
                tags:
                    string: string
                vpcId: string
            securityGroupId: string
            skip: false
        defaultTargetGroup:
            connectionTermination: false
            deregistrationDelay: 0
            healthCheck:
                enabled: false
                healthyThreshold: 0
                interval: 0
                matcher: string
                path: string
                port: string
                protocol: string
                timeout: 0
                unhealthyThreshold: 0
            ipAddressType: string
            lambdaMultiValueHeadersEnabled: false
            loadBalancingAlgorithmType: string
            loadBalancingCrossZoneEnabled: string
            name: string
            namePrefix: string
            port: 0
            preserveClientIp: string
            protocol: string
            protocolVersion: string
            proxyProtocolV2: false
            slowStart: 0
            stickiness:
                cookieDuration: 0
                cookieName: string
                enabled: false
                type: string
            tags:
                string: string
            targetFailovers:
                - onDeregistration: string
                  onUnhealthy: string
            targetHealthStates:
                - enableUnhealthyConnectionTermination: false
            targetType: string
            vpcId: string
        defaultTargetGroupPort: 0
        desyncMitigationMode: string
        dnsRecordClientRoutingPolicy: string
        dropInvalidHeaderFields: false
        enableDeletionProtection: false
        enableHttp2: false
        enableTlsVersionAndCipherSuiteHeaders: false
        enableWafFailOpen: false
        enableXffClientPort: false
        idleTimeout: 0
        internal: false
        ipAddressType: string
        listener:
            alpnPolicy: string
            certificateArn: string
            defaultActions:
                - authenticateCognito:
                    authenticationRequestExtraParams:
                        string: string
                    onUnauthenticatedRequest: string
                    scope: string
                    sessionCookieName: string
                    sessionTimeout: 0
                    userPoolArn: string
                    userPoolClientId: string
                    userPoolDomain: string
                  authenticateOidc:
                    authenticationRequestExtraParams:
                        string: string
                    authorizationEndpoint: string
                    clientId: string
                    clientSecret: string
                    issuer: string
                    onUnauthenticatedRequest: string
                    scope: string
                    sessionCookieName: string
                    sessionTimeout: 0
                    tokenEndpoint: string
                    userInfoEndpoint: string
                  fixedResponse:
                    contentType: string
                    messageBody: string
                    statusCode: string
                  forward:
                    stickiness:
                        duration: 0
                        enabled: false
                    targetGroups:
                        - arn: string
                          weight: 0
                  order: 0
                  redirect:
                    host: string
                    path: string
                    port: string
                    protocol: string
                    query: string
                    statusCode: string
                  targetGroupArn: string
                  type: string
            port: 0
            protocol: string
            sslPolicy: string
            tags:
                string: string
        listeners:
            - alpnPolicy: string
              certificateArn: string
              defaultActions:
                - authenticateCognito:
                    authenticationRequestExtraParams:
                        string: string
                    onUnauthenticatedRequest: string
                    scope: string
                    sessionCookieName: string
                    sessionTimeout: 0
                    userPoolArn: string
                    userPoolClientId: string
                    userPoolDomain: string
                  authenticateOidc:
                    authenticationRequestExtraParams:
                        string: string
                    authorizationEndpoint: string
                    clientId: string
                    clientSecret: string
                    issuer: string
                    onUnauthenticatedRequest: string
                    scope: string
                    sessionCookieName: string
                    sessionTimeout: 0
                    tokenEndpoint: string
                    userInfoEndpoint: string
                  fixedResponse:
                    contentType: string
                    messageBody: string
                    statusCode: string
                  forward:
                    stickiness:
                        duration: 0
                        enabled: false
                    targetGroups:
                        - arn: string
                          weight: 0
                  order: 0
                  redirect:
                    host: string
                    path: string
                    port: string
                    protocol: string
                    query: string
                    statusCode: string
                  targetGroupArn: string
                  type: string
              port: 0
              protocol: string
              sslPolicy: string
              tags:
                string: string
        name: string
        namePrefix: string
        preserveHostHeader: false
        securityGroups:
            - string
        subnetIds:
            - string
        subnetMappings:
            - allocationId: string
              ipv6Address: string
              outpostId: string
              privateIpv4Address: string
              subnetId: string
        subnets:
            - ${subnet}
        tags:
            string: string
        xffHeaderProcessingMode: string
    

    ApplicationLoadBalancer Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    The ApplicationLoadBalancer resource accepts the following input properties:

    AccessLogs Pulumi.Aws.LB.Inputs.LoadBalancerAccessLogs

    An Access Logs block. Access Logs documented below.

    This type is defined in the AWS Classic package.

    CustomerOwnedIpv4Pool string
    The ID of the customer owned ipv4 pool to use for this load balancer.
    DefaultSecurityGroup Pulumi.Awsx.Awsx.Inputs.DefaultSecurityGroup
    Options for creating a default security group if [securityGroups] not specified.
    DefaultTargetGroup Pulumi.Awsx.Lb.Inputs.TargetGroup
    Options creating a default target group.
    DefaultTargetGroupPort int
    Port to use to connect with the target. Valid values are ports 1-65535. Defaults to 80.
    DesyncMitigationMode string
    Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.
    DnsRecordClientRoutingPolicy string
    Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are any_availability_zone (default), availability_zone_affinity, or partial_availability_zone_affinity. See Availability Zone DNS affinity for additional details. Only valid for network type load balancers.
    DropInvalidHeaderFields bool
    Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type application.
    EnableDeletionProtection bool
    If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to false.
    EnableHttp2 bool
    Indicates whether HTTP/2 is enabled in application load balancers. Defaults to true.
    EnableTlsVersionAndCipherSuiteHeaders bool
    Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type application. Defaults to false
    EnableWafFailOpen bool
    Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to false.
    EnableXffClientPort bool
    Indicates whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in application load balancers. Defaults to false.
    IdleTimeout int
    The time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type application. Default: 60.
    Internal bool
    If true, the LB will be internal. Defaults to false.
    IpAddressType string
    The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 and dualstack.
    Listener Pulumi.Awsx.Lb.Inputs.Listener
    A listener to create. Only one of [listener] and [listeners] can be specified.
    Listeners List<Pulumi.Awsx.Lb.Inputs.Listener>
    List of listeners to create. Only one of [listener] and [listeners] can be specified.
    Name string
    The name of the LB. This name must be unique within your AWS account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. If not specified, this provider will autogenerate a name beginning with tf-lb.
    NamePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    PreserveHostHeader bool
    Indicates whether the Application Load Balancer should preserve the Host header in the HTTP request and send it to the target without any change. Defaults to false.
    SecurityGroups List<string>
    A list of security group IDs to assign to the LB. Only valid for Load Balancers of type application or network. For load balancers of type network security groups cannot be added if none are currently present, and cannot all be removed once added. If either of these conditions are met, this will force a recreation of the resource.
    SubnetIds List<string>
    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.
    SubnetMappings List<Pulumi.Aws.LB.Inputs.LoadBalancerSubnetMapping>
    A subnet mapping block as documented below.
    Subnets List<Pulumi.Aws.Ec2.Subnet>
    A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified
    Tags Dictionary<string, string>
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    XffHeaderProcessingMode string
    Determines how the load balancer modifies the X-Forwarded-For header in the HTTP request before sending the request to the target. The possible values are append, preserve, and remove. Only valid for Load Balancers of type application. The default is append.
    AccessLogs LoadBalancerAccessLogsArgs

    An Access Logs block. Access Logs documented below.

    This type is defined in the AWS Classic package.

    CustomerOwnedIpv4Pool string
    The ID of the customer owned ipv4 pool to use for this load balancer.
    DefaultSecurityGroup DefaultSecurityGroupArgs
    Options for creating a default security group if [securityGroups] not specified.
    DefaultTargetGroup TargetGroupArgs
    Options creating a default target group.
    DefaultTargetGroupPort int
    Port to use to connect with the target. Valid values are ports 1-65535. Defaults to 80.
    DesyncMitigationMode string
    Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.
    DnsRecordClientRoutingPolicy string
    Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are any_availability_zone (default), availability_zone_affinity, or partial_availability_zone_affinity. See Availability Zone DNS affinity for additional details. Only valid for network type load balancers.
    DropInvalidHeaderFields bool
    Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type application.
    EnableDeletionProtection bool
    If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to false.
    EnableHttp2 bool
    Indicates whether HTTP/2 is enabled in application load balancers. Defaults to true.
    EnableTlsVersionAndCipherSuiteHeaders bool
    Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type application. Defaults to false
    EnableWafFailOpen bool
    Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to false.
    EnableXffClientPort bool
    Indicates whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in application load balancers. Defaults to false.
    IdleTimeout int
    The time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type application. Default: 60.
    Internal bool
    If true, the LB will be internal. Defaults to false.
    IpAddressType string
    The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 and dualstack.
    Listener ListenerArgs
    A listener to create. Only one of [listener] and [listeners] can be specified.
    Listeners []ListenerArgs
    List of listeners to create. Only one of [listener] and [listeners] can be specified.
    Name string
    The name of the LB. This name must be unique within your AWS account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. If not specified, this provider will autogenerate a name beginning with tf-lb.
    NamePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    PreserveHostHeader bool
    Indicates whether the Application Load Balancer should preserve the Host header in the HTTP request and send it to the target without any change. Defaults to false.
    SecurityGroups []string
    A list of security group IDs to assign to the LB. Only valid for Load Balancers of type application or network. For load balancers of type network security groups cannot be added if none are currently present, and cannot all be removed once added. If either of these conditions are met, this will force a recreation of the resource.
    SubnetIds []string
    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.
    SubnetMappings LoadBalancerSubnetMappingArgs
    A subnet mapping block as documented below.
    Subnets Subnet
    A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified
    Tags map[string]string
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    XffHeaderProcessingMode string
    Determines how the load balancer modifies the X-Forwarded-For header in the HTTP request before sending the request to the target. The possible values are append, preserve, and remove. Only valid for Load Balancers of type application. The default is append.
    accessLogs LoadBalancerAccessLogs

    An Access Logs block. Access Logs documented below.

    This type is defined in the AWS Classic package.

    customerOwnedIpv4Pool String
    The ID of the customer owned ipv4 pool to use for this load balancer.
    defaultSecurityGroup DefaultSecurityGroup
    Options for creating a default security group if [securityGroups] not specified.
    defaultTargetGroup TargetGroup
    Options creating a default target group.
    defaultTargetGroupPort Integer
    Port to use to connect with the target. Valid values are ports 1-65535. Defaults to 80.
    desyncMitigationMode String
    Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.
    dnsRecordClientRoutingPolicy String
    Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are any_availability_zone (default), availability_zone_affinity, or partial_availability_zone_affinity. See Availability Zone DNS affinity for additional details. Only valid for network type load balancers.
    dropInvalidHeaderFields Boolean
    Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type application.
    enableDeletionProtection Boolean
    If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to false.
    enableHttp2 Boolean
    Indicates whether HTTP/2 is enabled in application load balancers. Defaults to true.
    enableTlsVersionAndCipherSuiteHeaders Boolean
    Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type application. Defaults to false
    enableWafFailOpen Boolean
    Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to false.
    enableXffClientPort Boolean
    Indicates whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in application load balancers. Defaults to false.
    idleTimeout Integer
    The time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type application. Default: 60.
    internal Boolean
    If true, the LB will be internal. Defaults to false.
    ipAddressType String
    The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 and dualstack.
    listener Listener
    A listener to create. Only one of [listener] and [listeners] can be specified.
    listeners List<Listener>
    List of listeners to create. Only one of [listener] and [listeners] can be specified.
    name String
    The name of the LB. This name must be unique within your AWS account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. If not specified, this provider will autogenerate a name beginning with tf-lb.
    namePrefix String
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    preserveHostHeader Boolean
    Indicates whether the Application Load Balancer should preserve the Host header in the HTTP request and send it to the target without any change. Defaults to false.
    securityGroups List<String>
    A list of security group IDs to assign to the LB. Only valid for Load Balancers of type application or network. For load balancers of type network security groups cannot be added if none are currently present, and cannot all be removed once added. If either of these conditions are met, this will force a recreation of the resource.
    subnetIds List<String>
    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.
    subnetMappings List<LoadBalancerSubnetMapping>
    A subnet mapping block as documented below.
    subnets List<Subnet>
    A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified
    tags Map<String,String>
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    xffHeaderProcessingMode String
    Determines how the load balancer modifies the X-Forwarded-For header in the HTTP request before sending the request to the target. The possible values are append, preserve, and remove. Only valid for Load Balancers of type application. The default is append.
    accessLogs pulumiAws.types.input.LoadBalancerAccessLogs

    An Access Logs block. Access Logs documented below.

    This type is defined in the AWS Classic package.

    customerOwnedIpv4Pool string
    The ID of the customer owned ipv4 pool to use for this load balancer.
    defaultSecurityGroup awsx.DefaultSecurityGroup
    Options for creating a default security group if [securityGroups] not specified.
    defaultTargetGroup TargetGroup
    Options creating a default target group.
    defaultTargetGroupPort number
    Port to use to connect with the target. Valid values are ports 1-65535. Defaults to 80.
    desyncMitigationMode string
    Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.
    dnsRecordClientRoutingPolicy string
    Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are any_availability_zone (default), availability_zone_affinity, or partial_availability_zone_affinity. See Availability Zone DNS affinity for additional details. Only valid for network type load balancers.
    dropInvalidHeaderFields boolean
    Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type application.
    enableDeletionProtection boolean
    If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to false.
    enableHttp2 boolean
    Indicates whether HTTP/2 is enabled in application load balancers. Defaults to true.
    enableTlsVersionAndCipherSuiteHeaders boolean
    Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type application. Defaults to false
    enableWafFailOpen boolean
    Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to false.
    enableXffClientPort boolean
    Indicates whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in application load balancers. Defaults to false.
    idleTimeout number
    The time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type application. Default: 60.
    internal boolean
    If true, the LB will be internal. Defaults to false.
    ipAddressType string
    The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 and dualstack.
    listener Listener
    A listener to create. Only one of [listener] and [listeners] can be specified.
    listeners Listener[]
    List of listeners to create. Only one of [listener] and [listeners] can be specified.
    name string
    The name of the LB. This name must be unique within your AWS account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. If not specified, this provider will autogenerate a name beginning with tf-lb.
    namePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    preserveHostHeader boolean
    Indicates whether the Application Load Balancer should preserve the Host header in the HTTP request and send it to the target without any change. Defaults to false.
    securityGroups string[]
    A list of security group IDs to assign to the LB. Only valid for Load Balancers of type application or network. For load balancers of type network security groups cannot be added if none are currently present, and cannot all be removed once added. If either of these conditions are met, this will force a recreation of the resource.
    subnetIds string[]
    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.
    subnetMappings pulumiAws.types.input.LoadBalancerSubnetMapping[]
    A subnet mapping block as documented below.
    subnets pulumiAws.ec2.Subnet[]
    A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified
    tags {[key: string]: string}
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    xffHeaderProcessingMode string
    Determines how the load balancer modifies the X-Forwarded-For header in the HTTP request before sending the request to the target. The possible values are append, preserve, and remove. Only valid for Load Balancers of type application. The default is append.
    access_logs pulumi_aws.lb.LoadBalancerAccessLogsArgs

    An Access Logs block. Access Logs documented below.

    This type is defined in the AWS Classic package.

    customer_owned_ipv4_pool str
    The ID of the customer owned ipv4 pool to use for this load balancer.
    default_security_group awsx.DefaultSecurityGroupArgs
    Options for creating a default security group if [securityGroups] not specified.
    default_target_group TargetGroupArgs
    Options creating a default target group.
    default_target_group_port int
    Port to use to connect with the target. Valid values are ports 1-65535. Defaults to 80.
    desync_mitigation_mode str
    Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.
    dns_record_client_routing_policy str
    Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are any_availability_zone (default), availability_zone_affinity, or partial_availability_zone_affinity. See Availability Zone DNS affinity for additional details. Only valid for network type load balancers.
    drop_invalid_header_fields bool
    Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type application.
    enable_deletion_protection bool
    If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to false.
    enable_http2 bool
    Indicates whether HTTP/2 is enabled in application load balancers. Defaults to true.
    enable_tls_version_and_cipher_suite_headers bool
    Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type application. Defaults to false
    enable_waf_fail_open bool
    Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to false.
    enable_xff_client_port bool
    Indicates whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in application load balancers. Defaults to false.
    idle_timeout int
    The time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type application. Default: 60.
    internal bool
    If true, the LB will be internal. Defaults to false.
    ip_address_type str
    The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 and dualstack.
    listener ListenerArgs
    A listener to create. Only one of [listener] and [listeners] can be specified.
    listeners Sequence[ListenerArgs]
    List of listeners to create. Only one of [listener] and [listeners] can be specified.
    name str
    The name of the LB. This name must be unique within your AWS account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. If not specified, this provider will autogenerate a name beginning with tf-lb.
    name_prefix str
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    preserve_host_header bool
    Indicates whether the Application Load Balancer should preserve the Host header in the HTTP request and send it to the target without any change. Defaults to false.
    security_groups Sequence[str]
    A list of security group IDs to assign to the LB. Only valid for Load Balancers of type application or network. For load balancers of type network security groups cannot be added if none are currently present, and cannot all be removed once added. If either of these conditions are met, this will force a recreation of the resource.
    subnet_ids Sequence[str]
    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.
    subnet_mappings Sequence[pulumi_aws.lb.LoadBalancerSubnetMappingArgs]
    A subnet mapping block as documented below.
    subnets Sequence[pulumi_aws.ec2.Subnet]
    A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified
    tags Mapping[str, str]
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    xff_header_processing_mode str
    Determines how the load balancer modifies the X-Forwarded-For header in the HTTP request before sending the request to the target. The possible values are append, preserve, and remove. Only valid for Load Balancers of type application. The default is append.
    accessLogs Property Map

    An Access Logs block. Access Logs documented below.

    This type is defined in the AWS Classic package.

    customerOwnedIpv4Pool String
    The ID of the customer owned ipv4 pool to use for this load balancer.
    defaultSecurityGroup Property Map
    Options for creating a default security group if [securityGroups] not specified.
    defaultTargetGroup Property Map
    Options creating a default target group.
    defaultTargetGroupPort Number
    Port to use to connect with the target. Valid values are ports 1-65535. Defaults to 80.
    desyncMitigationMode String
    Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are monitor, defensive (default), strictest.
    dnsRecordClientRoutingPolicy String
    Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are any_availability_zone (default), availability_zone_affinity, or partial_availability_zone_affinity. See Availability Zone DNS affinity for additional details. Only valid for network type load balancers.
    dropInvalidHeaderFields Boolean
    Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type application.
    enableDeletionProtection Boolean
    If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to false.
    enableHttp2 Boolean
    Indicates whether HTTP/2 is enabled in application load balancers. Defaults to true.
    enableTlsVersionAndCipherSuiteHeaders Boolean
    Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type application. Defaults to false
    enableWafFailOpen Boolean
    Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to false.
    enableXffClientPort Boolean
    Indicates whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in application load balancers. Defaults to false.
    idleTimeout Number
    The time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type application. Default: 60.
    internal Boolean
    If true, the LB will be internal. Defaults to false.
    ipAddressType String
    The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 and dualstack.
    listener Property Map
    A listener to create. Only one of [listener] and [listeners] can be specified.
    listeners List<Property Map>
    List of listeners to create. Only one of [listener] and [listeners] can be specified.
    name String
    The name of the LB. This name must be unique within your AWS account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. If not specified, this provider will autogenerate a name beginning with tf-lb.
    namePrefix String
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    preserveHostHeader Boolean
    Indicates whether the Application Load Balancer should preserve the Host header in the HTTP request and send it to the target without any change. Defaults to false.
    securityGroups List<String>
    A list of security group IDs to assign to the LB. Only valid for Load Balancers of type application or network. For load balancers of type network security groups cannot be added if none are currently present, and cannot all be removed once added. If either of these conditions are met, this will force a recreation of the resource.
    subnetIds List<String>
    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.
    subnetMappings List<Property Map>
    A subnet mapping block as documented below.
    subnets List<aws:ec2:Subnet>
    A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified
    tags Map<String>
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    xffHeaderProcessingMode String
    Determines how the load balancer modifies the X-Forwarded-For header in the HTTP request before sending the request to the target. The possible values are append, preserve, and remove. Only valid for Load Balancers of type application. The default is append.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the ApplicationLoadBalancer resource produces the following output properties:

    LoadBalancer Pulumi.Aws.LB.LoadBalancer
    Underlying Load Balancer resource This type is defined in the AWS Classic package.
    VpcId string
    Id of the VPC in which this load balancer is operating
    LoadBalancer LoadBalancer
    Underlying Load Balancer resource This type is defined in the AWS Classic package.
    VpcId string
    Id of the VPC in which this load balancer is operating
    loadBalancer LoadBalancer
    Underlying Load Balancer resource This type is defined in the AWS Classic package.
    vpcId String
    Id of the VPC in which this load balancer is operating
    loadBalancer pulumiAws.LoadBalancer
    Underlying Load Balancer resource This type is defined in the AWS Classic package.
    vpcId string
    Id of the VPC in which this load balancer is operating
    load_balancer pulumi_aws.lb.LoadBalancer
    Underlying Load Balancer resource This type is defined in the AWS Classic package.
    vpc_id str
    Id of the VPC in which this load balancer is operating
    loadBalancer aws::LoadBalancer
    Underlying Load Balancer resource This type is defined in the AWS Classic package.
    vpcId String
    Id of the VPC in which this load balancer is operating

    Supporting Types

    DefaultSecurityGroup, DefaultSecurityGroupArgs

    Args Pulumi.Awsx.Awsx.Inputs.SecurityGroup
    Args to use when creating the security group. Can't be specified if securityGroupId is used.
    SecurityGroupId string
    Id of existing security group to use instead of creating a new security group. Cannot be used in combination with args or opts.
    Skip bool
    Skips creation of the security group if set to true.
    Args SecurityGroup
    Args to use when creating the security group. Can't be specified if securityGroupId is used.
    SecurityGroupId string
    Id of existing security group to use instead of creating a new security group. Cannot be used in combination with args or opts.
    Skip bool
    Skips creation of the security group if set to true.
    args SecurityGroup
    Args to use when creating the security group. Can't be specified if securityGroupId is used.
    securityGroupId String
    Id of existing security group to use instead of creating a new security group. Cannot be used in combination with args or opts.
    skip Boolean
    Skips creation of the security group if set to true.
    args awsx.SecurityGroup
    Args to use when creating the security group. Can't be specified if securityGroupId is used.
    securityGroupId string
    Id of existing security group to use instead of creating a new security group. Cannot be used in combination with args or opts.
    skip boolean
    Skips creation of the security group if set to true.
    args awsx.SecurityGroup
    Args to use when creating the security group. Can't be specified if securityGroupId is used.
    security_group_id str
    Id of existing security group to use instead of creating a new security group. Cannot be used in combination with args or opts.
    skip bool
    Skips creation of the security group if set to true.
    args Property Map
    Args to use when creating the security group. Can't be specified if securityGroupId is used.
    securityGroupId String
    Id of existing security group to use instead of creating a new security group. Cannot be used in combination with args or opts.
    skip Boolean
    Skips creation of the security group if set to true.

    Listener, ListenerArgs

    AlpnPolicy string
    Name of the Application-Layer Protocol Negotiation (ALPN) policy. Can be set if protocol is TLS. Valid values are HTTP1Only, HTTP2Only, HTTP2Optional, HTTP2Preferred, and None.
    CertificateArn string
    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.ListenerCertificate resource.
    DefaultActions List<Pulumi.Aws.LB.Inputs.ListenerDefaultAction>
    Configuration block for default actions. Detailed below.
    Port int
    Port on which the load balancer is listening. Not valid for Gateway Load Balancers.
    Protocol string
    Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are HTTP and HTTPS, with a default of HTTP. For Network Load Balancers, valid values are TCP, TLS, UDP, and TCP_UDP. Not valid to use UDP or TCP_UDP if dual-stack mode is enabled. Not valid for Gateway Load Balancers.
    SslPolicy string
    Name of the SSL Policy for the listener. Required if protocol is HTTPS or TLS.
    Tags Dictionary<string, string>

    A map of tags to assign to the resource. .If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    NOTE:: Please note that listeners that are attached to Application Load Balancers must use either HTTP or HTTPS protocols while listeners that are attached to Network Load Balancers must use the TCP protocol.

    AlpnPolicy string
    Name of the Application-Layer Protocol Negotiation (ALPN) policy. Can be set if protocol is TLS. Valid values are HTTP1Only, HTTP2Only, HTTP2Optional, HTTP2Preferred, and None.
    CertificateArn string
    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.ListenerCertificate resource.
    DefaultActions ListenerDefaultAction
    Configuration block for default actions. Detailed below.
    Port int
    Port on which the load balancer is listening. Not valid for Gateway Load Balancers.
    Protocol string
    Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are HTTP and HTTPS, with a default of HTTP. For Network Load Balancers, valid values are TCP, TLS, UDP, and TCP_UDP. Not valid to use UDP or TCP_UDP if dual-stack mode is enabled. Not valid for Gateway Load Balancers.
    SslPolicy string
    Name of the SSL Policy for the listener. Required if protocol is HTTPS or TLS.
    Tags map[string]string

    A map of tags to assign to the resource. .If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    NOTE:: Please note that listeners that are attached to Application Load Balancers must use either HTTP or HTTPS protocols while listeners that are attached to Network Load Balancers must use the TCP protocol.

    alpnPolicy String
    Name of the Application-Layer Protocol Negotiation (ALPN) policy. Can be set if protocol is TLS. Valid values are HTTP1Only, HTTP2Only, HTTP2Optional, HTTP2Preferred, and None.
    certificateArn String
    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.ListenerCertificate resource.
    defaultActions List<ListenerDefaultAction>
    Configuration block for default actions. Detailed below.
    port Integer
    Port on which the load balancer is listening. Not valid for Gateway Load Balancers.
    protocol String
    Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are HTTP and HTTPS, with a default of HTTP. For Network Load Balancers, valid values are TCP, TLS, UDP, and TCP_UDP. Not valid to use UDP or TCP_UDP if dual-stack mode is enabled. Not valid for Gateway Load Balancers.
    sslPolicy String
    Name of the SSL Policy for the listener. Required if protocol is HTTPS or TLS.
    tags Map<String,String>

    A map of tags to assign to the resource. .If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    NOTE:: Please note that listeners that are attached to Application Load Balancers must use either HTTP or HTTPS protocols while listeners that are attached to Network Load Balancers must use the TCP protocol.

    alpnPolicy string
    Name of the Application-Layer Protocol Negotiation (ALPN) policy. Can be set if protocol is TLS. Valid values are HTTP1Only, HTTP2Only, HTTP2Optional, HTTP2Preferred, and None.
    certificateArn string
    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.ListenerCertificate resource.
    defaultActions pulumiAws.types.input.ListenerDefaultAction[]
    Configuration block for default actions. Detailed below.
    port number
    Port on which the load balancer is listening. Not valid for Gateway Load Balancers.
    protocol string
    Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are HTTP and HTTPS, with a default of HTTP. For Network Load Balancers, valid values are TCP, TLS, UDP, and TCP_UDP. Not valid to use UDP or TCP_UDP if dual-stack mode is enabled. Not valid for Gateway Load Balancers.
    sslPolicy string
    Name of the SSL Policy for the listener. Required if protocol is HTTPS or TLS.
    tags {[key: string]: string}

    A map of tags to assign to the resource. .If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    NOTE:: Please note that listeners that are attached to Application Load Balancers must use either HTTP or HTTPS protocols while listeners that are attached to Network Load Balancers must use the TCP protocol.

    alpn_policy str
    Name of the Application-Layer Protocol Negotiation (ALPN) policy. Can be set if protocol is TLS. Valid values are HTTP1Only, HTTP2Only, HTTP2Optional, HTTP2Preferred, and None.
    certificate_arn str
    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.ListenerCertificate resource.
    default_actions Sequence[pulumi_aws.lb.ListenerDefaultActionArgs]
    Configuration block for default actions. Detailed below.
    port int
    Port on which the load balancer is listening. Not valid for Gateway Load Balancers.
    protocol str
    Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are HTTP and HTTPS, with a default of HTTP. For Network Load Balancers, valid values are TCP, TLS, UDP, and TCP_UDP. Not valid to use UDP or TCP_UDP if dual-stack mode is enabled. Not valid for Gateway Load Balancers.
    ssl_policy str
    Name of the SSL Policy for the listener. Required if protocol is HTTPS or TLS.
    tags Mapping[str, str]

    A map of tags to assign to the resource. .If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    NOTE:: Please note that listeners that are attached to Application Load Balancers must use either HTTP or HTTPS protocols while listeners that are attached to Network Load Balancers must use the TCP protocol.

    alpnPolicy String
    Name of the Application-Layer Protocol Negotiation (ALPN) policy. Can be set if protocol is TLS. Valid values are HTTP1Only, HTTP2Only, HTTP2Optional, HTTP2Preferred, and None.
    certificateArn String
    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.ListenerCertificate resource.
    defaultActions List<Property Map>
    Configuration block for default actions. Detailed below.
    port Number
    Port on which the load balancer is listening. Not valid for Gateway Load Balancers.
    protocol String
    Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are HTTP and HTTPS, with a default of HTTP. For Network Load Balancers, valid values are TCP, TLS, UDP, and TCP_UDP. Not valid to use UDP or TCP_UDP if dual-stack mode is enabled. Not valid for Gateway Load Balancers.
    sslPolicy String
    Name of the SSL Policy for the listener. Required if protocol is HTTPS or TLS.
    tags Map<String>

    A map of tags to assign to the resource. .If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    NOTE:: Please note that listeners that are attached to Application Load Balancers must use either HTTP or HTTPS protocols while listeners that are attached to Network Load Balancers must use the TCP protocol.

    SecurityGroup, SecurityGroupArgs

    Description string
    Security group description. Defaults to Managed by Pulumi. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags.
    Egress List<Pulumi.Aws.Ec2.Inputs.SecurityGroupEgress>
    Configuration block for egress rules. Can be specified multiple times for each egress rule. Each egress block supports fields documented below. This argument is processed in attribute-as-blocks mode.
    Ingress List<Pulumi.Aws.Ec2.Inputs.SecurityGroupIngress>
    Configuration block for ingress rules. Can be specified multiple times for each ingress rule. Each ingress block supports fields documented below. This argument is processed in attribute-as-blocks mode.
    Name string
    Name of the security group. If omitted, the provider will assign a random, unique name.
    NamePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    RevokeRulesOnDelete bool
    Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default false.
    Tags Dictionary<string, string>
    Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    VpcId string
    VPC ID. Defaults to the region's default VPC.
    Description string
    Security group description. Defaults to Managed by Pulumi. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags.
    Egress SecurityGroupEgress
    Configuration block for egress rules. Can be specified multiple times for each egress rule. Each egress block supports fields documented below. This argument is processed in attribute-as-blocks mode.
    Ingress SecurityGroupIngress
    Configuration block for ingress rules. Can be specified multiple times for each ingress rule. Each ingress block supports fields documented below. This argument is processed in attribute-as-blocks mode.
    Name string
    Name of the security group. If omitted, the provider will assign a random, unique name.
    NamePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    RevokeRulesOnDelete bool
    Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default false.
    Tags map[string]string
    Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    VpcId string
    VPC ID. Defaults to the region's default VPC.
    description String
    Security group description. Defaults to Managed by Pulumi. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags.
    egress List<SecurityGroupEgress>
    Configuration block for egress rules. Can be specified multiple times for each egress rule. Each egress block supports fields documented below. This argument is processed in attribute-as-blocks mode.
    ingress List<SecurityGroupIngress>
    Configuration block for ingress rules. Can be specified multiple times for each ingress rule. Each ingress block supports fields documented below. This argument is processed in attribute-as-blocks mode.
    name String
    Name of the security group. If omitted, the provider will assign a random, unique name.
    namePrefix String
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    revokeRulesOnDelete Boolean
    Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default false.
    tags Map<String,String>
    Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    vpcId String
    VPC ID. Defaults to the region's default VPC.
    description string
    Security group description. Defaults to Managed by Pulumi. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags.
    egress pulumiAws.types.input.ec2.SecurityGroupEgress[]
    Configuration block for egress rules. Can be specified multiple times for each egress rule. Each egress block supports fields documented below. This argument is processed in attribute-as-blocks mode.
    ingress pulumiAws.types.input.ec2.SecurityGroupIngress[]
    Configuration block for ingress rules. Can be specified multiple times for each ingress rule. Each ingress block supports fields documented below. This argument is processed in attribute-as-blocks mode.
    name string
    Name of the security group. If omitted, the provider will assign a random, unique name.
    namePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    revokeRulesOnDelete boolean
    Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default false.
    tags {[key: string]: string}
    Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    vpcId string
    VPC ID. Defaults to the region's default VPC.
    description str
    Security group description. Defaults to Managed by Pulumi. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags.
    egress Sequence[pulumi_aws.ec2.SecurityGroupEgressArgs]
    Configuration block for egress rules. Can be specified multiple times for each egress rule. Each egress block supports fields documented below. This argument is processed in attribute-as-blocks mode.
    ingress Sequence[pulumi_aws.ec2.SecurityGroupIngressArgs]
    Configuration block for ingress rules. Can be specified multiple times for each ingress rule. Each ingress block supports fields documented below. This argument is processed in attribute-as-blocks mode.
    name str
    Name of the security group. If omitted, the provider will assign a random, unique name.
    name_prefix str
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    revoke_rules_on_delete bool
    Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default false.
    tags Mapping[str, str]
    Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    vpc_id str
    VPC ID. Defaults to the region's default VPC.
    description String
    Security group description. Defaults to Managed by Pulumi. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags.
    egress List<Property Map>
    Configuration block for egress rules. Can be specified multiple times for each egress rule. Each egress block supports fields documented below. This argument is processed in attribute-as-blocks mode.
    ingress List<Property Map>
    Configuration block for ingress rules. Can be specified multiple times for each ingress rule. Each ingress block supports fields documented below. This argument is processed in attribute-as-blocks mode.
    name String
    Name of the security group. If omitted, the provider will assign a random, unique name.
    namePrefix String
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    revokeRulesOnDelete Boolean
    Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default false.
    tags Map<String>
    Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    vpcId String
    VPC ID. Defaults to the region's default VPC.

    TargetGroup, TargetGroupArgs

    ConnectionTermination bool
    Whether to terminate connections at the end of the deregistration timeout on Network Load Balancers. See doc for more information. Default is false.
    DeregistrationDelay int
    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.
    HealthCheck Pulumi.Aws.LB.Inputs.TargetGroupHealthCheck

    Health Check configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    IpAddressType string
    The type of IP addresses used by the target group, only supported when target type is set to ip. Possible values are ipv4 or ipv6.
    LambdaMultiValueHeadersEnabled bool
    Whether the request and response headers exchanged between the load balancer and the Lambda function include arrays of values or strings. Only applies when target_type is lambda. Default is false.
    LoadBalancingAlgorithmType string
    Determines how the load balancer selects targets when routing requests. Only applicable for Application Load Balancer Target Groups. The value is round_robin or least_outstanding_requests. The default is round_robin.
    LoadBalancingCrossZoneEnabled string
    Indicates whether cross zone load balancing is enabled. The value is "true", "false" or "use_load_balancer_configuration". The default is "use_load_balancer_configuration".
    Name string
    Name of the target group. If omitted, this provider will assign a random, unique name. 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 a hyphen.
    NamePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name. Cannot be longer than 6 characters.
    Port int
    Port on which targets receive traffic, unless overridden when registering a specific target. Required when target_type is instance, ip or alb. Does not apply when target_type is lambda.
    PreserveClientIp string
    Whether client IP preservation is enabled. See doc for more information.
    Protocol string
    Protocol to use for routing traffic to the targets. Should be one of GENEVE, HTTP, HTTPS, TCP, TCP_UDP, TLS, or UDP. Required when target_type is instance, ip or alb. Does not apply when target_type is lambda.
    ProtocolVersion string
    Only applicable when protocol is HTTP or HTTPS. 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 targets using HTTP/1.1
    ProxyProtocolV2 bool
    Whether to enable support for proxy protocol v2 on Network Load Balancers. See doc for more information. Default is false.
    SlowStart int
    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.
    Stickiness Pulumi.Aws.LB.Inputs.TargetGroupStickiness

    Stickiness configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    Tags Dictionary<string, string>
    Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    TargetFailovers List<Pulumi.Aws.LB.Inputs.TargetGroupTargetFailover>
    Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.
    TargetHealthStates List<Pulumi.Aws.LB.Inputs.TargetGroupTargetHealthState>
    Target health state block. Only applicable for Network Load Balancer target groups when protocol is TCP or TLS. See target_health_state for more information.
    TargetType string

    Type of target that you must specify when registering targets with this target group. See doc for supported values. The default is instance.

    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.

    Network Load Balancers do not support the lambda target type.

    Application Load Balancers do not support the alb target type.

    VpcId string
    Identifier of the VPC in which to create the target group. Required when target_type is instance, ip or alb. Does not apply when target_type is lambda.
    ConnectionTermination bool
    Whether to terminate connections at the end of the deregistration timeout on Network Load Balancers. See doc for more information. Default is false.
    DeregistrationDelay int
    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.
    HealthCheck TargetGroupHealthCheck

    Health Check configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    IpAddressType string
    The type of IP addresses used by the target group, only supported when target type is set to ip. Possible values are ipv4 or ipv6.
    LambdaMultiValueHeadersEnabled bool
    Whether the request and response headers exchanged between the load balancer and the Lambda function include arrays of values or strings. Only applies when target_type is lambda. Default is false.
    LoadBalancingAlgorithmType string
    Determines how the load balancer selects targets when routing requests. Only applicable for Application Load Balancer Target Groups. The value is round_robin or least_outstanding_requests. The default is round_robin.
    LoadBalancingCrossZoneEnabled string
    Indicates whether cross zone load balancing is enabled. The value is "true", "false" or "use_load_balancer_configuration". The default is "use_load_balancer_configuration".
    Name string
    Name of the target group. If omitted, this provider will assign a random, unique name. 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 a hyphen.
    NamePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name. Cannot be longer than 6 characters.
    Port int
    Port on which targets receive traffic, unless overridden when registering a specific target. Required when target_type is instance, ip or alb. Does not apply when target_type is lambda.
    PreserveClientIp string
    Whether client IP preservation is enabled. See doc for more information.
    Protocol string
    Protocol to use for routing traffic to the targets. Should be one of GENEVE, HTTP, HTTPS, TCP, TCP_UDP, TLS, or UDP. Required when target_type is instance, ip or alb. Does not apply when target_type is lambda.
    ProtocolVersion string
    Only applicable when protocol is HTTP or HTTPS. 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 targets using HTTP/1.1
    ProxyProtocolV2 bool
    Whether to enable support for proxy protocol v2 on Network Load Balancers. See doc for more information. Default is false.
    SlowStart int
    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.
    Stickiness TargetGroupStickiness

    Stickiness configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    Tags map[string]string
    Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    TargetFailovers TargetGroupTargetFailover
    Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.
    TargetHealthStates TargetGroupTargetHealthState
    Target health state block. Only applicable for Network Load Balancer target groups when protocol is TCP or TLS. See target_health_state for more information.
    TargetType string

    Type of target that you must specify when registering targets with this target group. See doc for supported values. The default is instance.

    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.

    Network Load Balancers do not support the lambda target type.

    Application Load Balancers do not support the alb target type.

    VpcId string
    Identifier of the VPC in which to create the target group. Required when target_type is instance, ip or alb. Does not apply when target_type is lambda.
    connectionTermination Boolean
    Whether to terminate connections at the end of the deregistration timeout on Network Load Balancers. See doc for more information. Default is false.
    deregistrationDelay Integer
    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.
    healthCheck TargetGroupHealthCheck

    Health Check configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    ipAddressType String
    The type of IP addresses used by the target group, only supported when target type is set to ip. Possible values are ipv4 or ipv6.
    lambdaMultiValueHeadersEnabled Boolean
    Whether the request and response headers exchanged between the load balancer and the Lambda function include arrays of values or strings. Only applies when target_type is lambda. Default is false.
    loadBalancingAlgorithmType String
    Determines how the load balancer selects targets when routing requests. Only applicable for Application Load Balancer Target Groups. The value is round_robin or least_outstanding_requests. The default is round_robin.
    loadBalancingCrossZoneEnabled String
    Indicates whether cross zone load balancing is enabled. The value is "true", "false" or "use_load_balancer_configuration". The default is "use_load_balancer_configuration".
    name String
    Name of the target group. If omitted, this provider will assign a random, unique name. 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 a hyphen.
    namePrefix String
    Creates a unique name beginning with the specified prefix. Conflicts with name. Cannot be longer than 6 characters.
    port Integer
    Port on which targets receive traffic, unless overridden when registering a specific target. Required when target_type is instance, ip or alb. Does not apply when target_type is lambda.
    preserveClientIp String
    Whether client IP preservation is enabled. See doc for more information.
    protocol String
    Protocol to use for routing traffic to the targets. Should be one of GENEVE, HTTP, HTTPS, TCP, TCP_UDP, TLS, or UDP. Required when target_type is instance, ip or alb. Does not apply when target_type is lambda.
    protocolVersion String
    Only applicable when protocol is HTTP or HTTPS. 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 targets using HTTP/1.1
    proxyProtocolV2 Boolean
    Whether to enable support for proxy protocol v2 on Network Load Balancers. See doc for more information. Default is false.
    slowStart Integer
    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.
    stickiness TargetGroupStickiness

    Stickiness configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    tags Map<String,String>
    Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    targetFailovers List<TargetGroupTargetFailover>
    Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.
    targetHealthStates List<TargetGroupTargetHealthState>
    Target health state block. Only applicable for Network Load Balancer target groups when protocol is TCP or TLS. See target_health_state for more information.
    targetType String

    Type of target that you must specify when registering targets with this target group. See doc for supported values. The default is instance.

    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.

    Network Load Balancers do not support the lambda target type.

    Application Load Balancers do not support the alb target type.

    vpcId String
    Identifier of the VPC in which to create the target group. Required when target_type is instance, ip or alb. Does not apply when target_type is lambda.
    connectionTermination boolean
    Whether to terminate connections at the end of the deregistration timeout on Network Load Balancers. See doc for more information. Default is false.
    deregistrationDelay number
    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.
    healthCheck pulumiAws.types.input.TargetGroupHealthCheck

    Health Check configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    ipAddressType string
    The type of IP addresses used by the target group, only supported when target type is set to ip. Possible values are ipv4 or ipv6.
    lambdaMultiValueHeadersEnabled boolean
    Whether the request and response headers exchanged between the load balancer and the Lambda function include arrays of values or strings. Only applies when target_type is lambda. Default is false.
    loadBalancingAlgorithmType string
    Determines how the load balancer selects targets when routing requests. Only applicable for Application Load Balancer Target Groups. The value is round_robin or least_outstanding_requests. The default is round_robin.
    loadBalancingCrossZoneEnabled string
    Indicates whether cross zone load balancing is enabled. The value is "true", "false" or "use_load_balancer_configuration". The default is "use_load_balancer_configuration".
    name string
    Name of the target group. If omitted, this provider will assign a random, unique name. 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 a hyphen.
    namePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name. Cannot be longer than 6 characters.
    port number
    Port on which targets receive traffic, unless overridden when registering a specific target. Required when target_type is instance, ip or alb. Does not apply when target_type is lambda.
    preserveClientIp string
    Whether client IP preservation is enabled. See doc for more information.
    protocol string
    Protocol to use for routing traffic to the targets. Should be one of GENEVE, HTTP, HTTPS, TCP, TCP_UDP, TLS, or UDP. Required when target_type is instance, ip or alb. Does not apply when target_type is lambda.
    protocolVersion string
    Only applicable when protocol is HTTP or HTTPS. 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 targets using HTTP/1.1
    proxyProtocolV2 boolean
    Whether to enable support for proxy protocol v2 on Network Load Balancers. See doc for more information. Default is false.
    slowStart number
    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.
    stickiness pulumiAws.types.input.TargetGroupStickiness

    Stickiness configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    tags {[key: string]: string}
    Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    targetFailovers pulumiAws.types.input.TargetGroupTargetFailover[]
    Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.
    targetHealthStates pulumiAws.types.input.TargetGroupTargetHealthState[]
    Target health state block. Only applicable for Network Load Balancer target groups when protocol is TCP or TLS. See target_health_state for more information.
    targetType string

    Type of target that you must specify when registering targets with this target group. See doc for supported values. The default is instance.

    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.

    Network Load Balancers do not support the lambda target type.

    Application Load Balancers do not support the alb target type.

    vpcId string
    Identifier of the VPC in which to create the target group. Required when target_type is instance, ip or alb. Does not apply when target_type is lambda.
    connection_termination bool
    Whether to terminate connections at the end of the deregistration timeout on Network Load Balancers. See doc for more information. Default is false.
    deregistration_delay int
    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.
    health_check pulumi_aws.lb.TargetGroupHealthCheckArgs

    Health Check configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    ip_address_type str
    The type of IP addresses used by the target group, only supported when target type is set to ip. Possible values are ipv4 or ipv6.
    lambda_multi_value_headers_enabled bool
    Whether the request and response headers exchanged between the load balancer and the Lambda function include arrays of values or strings. Only applies when target_type is lambda. Default is false.
    load_balancing_algorithm_type str
    Determines how the load balancer selects targets when routing requests. Only applicable for Application Load Balancer Target Groups. The value is round_robin or least_outstanding_requests. The default is round_robin.
    load_balancing_cross_zone_enabled str
    Indicates whether cross zone load balancing is enabled. The value is "true", "false" or "use_load_balancer_configuration". The default is "use_load_balancer_configuration".
    name str
    Name of the target group. If omitted, this provider will assign a random, unique name. 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 a hyphen.
    name_prefix str
    Creates a unique name beginning with the specified prefix. Conflicts with name. Cannot be longer than 6 characters.
    port int
    Port on which targets receive traffic, unless overridden when registering a specific target. Required when target_type is instance, ip or alb. Does not apply when target_type is lambda.
    preserve_client_ip str
    Whether client IP preservation is enabled. See doc for more information.
    protocol str
    Protocol to use for routing traffic to the targets. Should be one of GENEVE, HTTP, HTTPS, TCP, TCP_UDP, TLS, or UDP. Required when target_type is instance, ip or alb. Does not apply when target_type is lambda.
    protocol_version str
    Only applicable when protocol is HTTP or HTTPS. 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 targets using HTTP/1.1
    proxy_protocol_v2 bool
    Whether to enable support for proxy protocol v2 on Network Load Balancers. See doc for more information. Default is false.
    slow_start int
    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.
    stickiness pulumi_aws.lb.TargetGroupStickinessArgs

    Stickiness configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    tags Mapping[str, str]
    Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    target_failovers Sequence[pulumi_aws.lb.TargetGroupTargetFailoverArgs]
    Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.
    target_health_states Sequence[pulumi_aws.lb.TargetGroupTargetHealthStateArgs]
    Target health state block. Only applicable for Network Load Balancer target groups when protocol is TCP or TLS. See target_health_state for more information.
    target_type str

    Type of target that you must specify when registering targets with this target group. See doc for supported values. The default is instance.

    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.

    Network Load Balancers do not support the lambda target type.

    Application Load Balancers do not support the alb target type.

    vpc_id str
    Identifier of the VPC in which to create the target group. Required when target_type is instance, ip or alb. Does not apply when target_type is lambda.
    connectionTermination Boolean
    Whether to terminate connections at the end of the deregistration timeout on Network Load Balancers. See doc for more information. Default is false.
    deregistrationDelay Number
    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.
    healthCheck Property Map

    Health Check configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    ipAddressType String
    The type of IP addresses used by the target group, only supported when target type is set to ip. Possible values are ipv4 or ipv6.
    lambdaMultiValueHeadersEnabled Boolean
    Whether the request and response headers exchanged between the load balancer and the Lambda function include arrays of values or strings. Only applies when target_type is lambda. Default is false.
    loadBalancingAlgorithmType String
    Determines how the load balancer selects targets when routing requests. Only applicable for Application Load Balancer Target Groups. The value is round_robin or least_outstanding_requests. The default is round_robin.
    loadBalancingCrossZoneEnabled String
    Indicates whether cross zone load balancing is enabled. The value is "true", "false" or "use_load_balancer_configuration". The default is "use_load_balancer_configuration".
    name String
    Name of the target group. If omitted, this provider will assign a random, unique name. 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 a hyphen.
    namePrefix String
    Creates a unique name beginning with the specified prefix. Conflicts with name. Cannot be longer than 6 characters.
    port Number
    Port on which targets receive traffic, unless overridden when registering a specific target. Required when target_type is instance, ip or alb. Does not apply when target_type is lambda.
    preserveClientIp String
    Whether client IP preservation is enabled. See doc for more information.
    protocol String
    Protocol to use for routing traffic to the targets. Should be one of GENEVE, HTTP, HTTPS, TCP, TCP_UDP, TLS, or UDP. Required when target_type is instance, ip or alb. Does not apply when target_type is lambda.
    protocolVersion String
    Only applicable when protocol is HTTP or HTTPS. 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 targets using HTTP/1.1
    proxyProtocolV2 Boolean
    Whether to enable support for proxy protocol v2 on Network Load Balancers. See doc for more information. Default is false.
    slowStart Number
    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.
    stickiness Property Map

    Stickiness configuration block. Detailed below.

    This type is defined in the AWS Classic package.

    tags Map<String>
    Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    targetFailovers List<Property Map>
    Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.
    targetHealthStates List<Property Map>
    Target health state block. Only applicable for Network Load Balancer target groups when protocol is TCP or TLS. See target_health_state for more information.
    targetType String

    Type of target that you must specify when registering targets with this target group. See doc for supported values. The default is instance.

    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.

    Network Load Balancers do not support the lambda target type.

    Application Load Balancers do not support the alb target type.

    vpcId String
    Identifier of the VPC in which to create the target group. Required when target_type is instance, ip or alb. Does not apply when target_type is lambda.

    Package Details

    Repository
    AWSx (Pulumi Crosswalk for AWS) pulumi/pulumi-awsx
    License
    Apache-2.0
    awsx logo
    AWSx (Pulumi Crosswalk for AWS) v2.7.0 published on Wednesday, Apr 10, 2024 by Pulumi