Class ElbFunctions


  • public final class ElbFunctions
    extends java.lang.Object
    • Constructor Summary

      Constructors 
      Constructor Description
      ElbFunctions()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static com.pulumi.core.Output<GetHostedZoneIdResult> getHostedZoneId()
      Use this data source to get the HostedZoneId of the AWS Elastic Load Balancing HostedZoneId in a given region for the purpose of using in an AWS Route53 Alias.
      static com.pulumi.core.Output<GetHostedZoneIdResult> getHostedZoneId​(GetHostedZoneIdArgs args)
      Use this data source to get the HostedZoneId of the AWS Elastic Load Balancing HostedZoneId in a given region for the purpose of using in an AWS Route53 Alias.
      static com.pulumi.core.Output<GetHostedZoneIdResult> getHostedZoneId​(GetHostedZoneIdArgs args, com.pulumi.deployment.InvokeOptions options)
      Use this data source to get the HostedZoneId of the AWS Elastic Load Balancing HostedZoneId in a given region for the purpose of using in an AWS Route53 Alias.
      static java.util.concurrent.CompletableFuture<GetHostedZoneIdResult> getHostedZoneIdPlain()
      Use this data source to get the HostedZoneId of the AWS Elastic Load Balancing HostedZoneId in a given region for the purpose of using in an AWS Route53 Alias.
      static java.util.concurrent.CompletableFuture<GetHostedZoneIdResult> getHostedZoneIdPlain​(GetHostedZoneIdPlainArgs args)
      Use this data source to get the HostedZoneId of the AWS Elastic Load Balancing HostedZoneId in a given region for the purpose of using in an AWS Route53 Alias.
      static java.util.concurrent.CompletableFuture<GetHostedZoneIdResult> getHostedZoneIdPlain​(GetHostedZoneIdPlainArgs args, com.pulumi.deployment.InvokeOptions options)
      Use this data source to get the HostedZoneId of the AWS Elastic Load Balancing HostedZoneId in a given region for the purpose of using in an AWS Route53 Alias.
      static com.pulumi.core.Output<GetLoadBalancerResult> getLoadBalancer​(GetLoadBalancerArgs args)
      Provides information about a "classic" Elastic Load Balancer (ELB).
      static com.pulumi.core.Output<GetLoadBalancerResult> getLoadBalancer​(GetLoadBalancerArgs args, com.pulumi.deployment.InvokeOptions options)
      Provides information about a "classic" Elastic Load Balancer (ELB).
      static java.util.concurrent.CompletableFuture<GetLoadBalancerResult> getLoadBalancerPlain​(GetLoadBalancerPlainArgs args)
      Provides information about a "classic" Elastic Load Balancer (ELB).
      static java.util.concurrent.CompletableFuture<GetLoadBalancerResult> getLoadBalancerPlain​(GetLoadBalancerPlainArgs args, com.pulumi.deployment.InvokeOptions options)
      Provides information about a "classic" Elastic Load Balancer (ELB).
      static com.pulumi.core.Output<GetServiceAccountResult> getServiceAccount()
      Use this data source to get the Account ID of the [AWS Elastic Load Balancing Service Account](http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy) in a given region for the purpose of permitting in S3 bucket policy.
      static com.pulumi.core.Output<GetServiceAccountResult> getServiceAccount​(GetServiceAccountArgs args)
      Use this data source to get the Account ID of the [AWS Elastic Load Balancing Service Account](http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy) in a given region for the purpose of permitting in S3 bucket policy.
      static com.pulumi.core.Output<GetServiceAccountResult> getServiceAccount​(GetServiceAccountArgs args, com.pulumi.deployment.InvokeOptions options)
      Use this data source to get the Account ID of the [AWS Elastic Load Balancing Service Account](http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy) in a given region for the purpose of permitting in S3 bucket policy.
      static java.util.concurrent.CompletableFuture<GetServiceAccountResult> getServiceAccountPlain()
      Use this data source to get the Account ID of the [AWS Elastic Load Balancing Service Account](http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy) in a given region for the purpose of permitting in S3 bucket policy.
      static java.util.concurrent.CompletableFuture<GetServiceAccountResult> getServiceAccountPlain​(GetServiceAccountPlainArgs args)
      Use this data source to get the Account ID of the [AWS Elastic Load Balancing Service Account](http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy) in a given region for the purpose of permitting in S3 bucket policy.
      static java.util.concurrent.CompletableFuture<GetServiceAccountResult> getServiceAccountPlain​(GetServiceAccountPlainArgs args, com.pulumi.deployment.InvokeOptions options)
      Use this data source to get the Account ID of the [AWS Elastic Load Balancing Service Account](http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy) in a given region for the purpose of permitting in S3 bucket policy.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ElbFunctions

        public ElbFunctions()
    • Method Detail

      • getHostedZoneId

        public static com.pulumi.core.Output<GetHostedZoneIdResult> getHostedZoneId()
        Use this data source to get the HostedZoneId of the AWS Elastic Load Balancing HostedZoneId in a given region for the purpose of using in an AWS Route53 Alias. ## Example Usage <!--Start PulumiCodeChooser -->
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.elb.ElbFunctions;
         import com.pulumi.aws.elb.inputs.GetHostedZoneIdArgs;
         import com.pulumi.aws.route53.Record;
         import com.pulumi.aws.route53.RecordArgs;
         import com.pulumi.aws.route53.inputs.RecordAliasArgs;
         import java.util.List;
         import java.util.ArrayList;
         import java.util.Map;
         import java.io.File;
         import java.nio.file.Files;
         import java.nio.file.Paths;
         
         public class App {
             public static void main(String[] args) {
                 Pulumi.run(App::stack);
             }
         
             public static void stack(Context ctx) {
                 final var main = ElbFunctions.getHostedZoneId();
         
                 var www = new Record("www", RecordArgs.builder()
                     .zoneId(primary.zoneId())
                     .name("example.com")
                     .type("A")
                     .aliases(RecordAliasArgs.builder()
                         .name(mainAwsElb.dnsName())
                         .zoneId(main.applyValue(getHostedZoneIdResult -> getHostedZoneIdResult.id()))
                         .evaluateTargetHealth(true)
                         .build())
                     .build());
         
             }
         }
         
         
        <!--End PulumiCodeChooser -->
      • getHostedZoneIdPlain

        public static java.util.concurrent.CompletableFuture<GetHostedZoneIdResult> getHostedZoneIdPlain()
        Use this data source to get the HostedZoneId of the AWS Elastic Load Balancing HostedZoneId in a given region for the purpose of using in an AWS Route53 Alias. ## Example Usage <!--Start PulumiCodeChooser -->
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.elb.ElbFunctions;
         import com.pulumi.aws.elb.inputs.GetHostedZoneIdArgs;
         import com.pulumi.aws.route53.Record;
         import com.pulumi.aws.route53.RecordArgs;
         import com.pulumi.aws.route53.inputs.RecordAliasArgs;
         import java.util.List;
         import java.util.ArrayList;
         import java.util.Map;
         import java.io.File;
         import java.nio.file.Files;
         import java.nio.file.Paths;
         
         public class App {
             public static void main(String[] args) {
                 Pulumi.run(App::stack);
             }
         
             public static void stack(Context ctx) {
                 final var main = ElbFunctions.getHostedZoneId();
         
                 var www = new Record("www", RecordArgs.builder()
                     .zoneId(primary.zoneId())
                     .name("example.com")
                     .type("A")
                     .aliases(RecordAliasArgs.builder()
                         .name(mainAwsElb.dnsName())
                         .zoneId(main.applyValue(getHostedZoneIdResult -> getHostedZoneIdResult.id()))
                         .evaluateTargetHealth(true)
                         .build())
                     .build());
         
             }
         }
         
         
        <!--End PulumiCodeChooser -->
      • getHostedZoneId

        public static com.pulumi.core.Output<GetHostedZoneIdResult> getHostedZoneId​(GetHostedZoneIdArgs args)
        Use this data source to get the HostedZoneId of the AWS Elastic Load Balancing HostedZoneId in a given region for the purpose of using in an AWS Route53 Alias. ## Example Usage <!--Start PulumiCodeChooser -->
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.elb.ElbFunctions;
         import com.pulumi.aws.elb.inputs.GetHostedZoneIdArgs;
         import com.pulumi.aws.route53.Record;
         import com.pulumi.aws.route53.RecordArgs;
         import com.pulumi.aws.route53.inputs.RecordAliasArgs;
         import java.util.List;
         import java.util.ArrayList;
         import java.util.Map;
         import java.io.File;
         import java.nio.file.Files;
         import java.nio.file.Paths;
         
         public class App {
             public static void main(String[] args) {
                 Pulumi.run(App::stack);
             }
         
             public static void stack(Context ctx) {
                 final var main = ElbFunctions.getHostedZoneId();
         
                 var www = new Record("www", RecordArgs.builder()
                     .zoneId(primary.zoneId())
                     .name("example.com")
                     .type("A")
                     .aliases(RecordAliasArgs.builder()
                         .name(mainAwsElb.dnsName())
                         .zoneId(main.applyValue(getHostedZoneIdResult -> getHostedZoneIdResult.id()))
                         .evaluateTargetHealth(true)
                         .build())
                     .build());
         
             }
         }
         
         
        <!--End PulumiCodeChooser -->
      • getHostedZoneIdPlain

        public static java.util.concurrent.CompletableFuture<GetHostedZoneIdResult> getHostedZoneIdPlain​(GetHostedZoneIdPlainArgs args)
        Use this data source to get the HostedZoneId of the AWS Elastic Load Balancing HostedZoneId in a given region for the purpose of using in an AWS Route53 Alias. ## Example Usage <!--Start PulumiCodeChooser -->
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.elb.ElbFunctions;
         import com.pulumi.aws.elb.inputs.GetHostedZoneIdArgs;
         import com.pulumi.aws.route53.Record;
         import com.pulumi.aws.route53.RecordArgs;
         import com.pulumi.aws.route53.inputs.RecordAliasArgs;
         import java.util.List;
         import java.util.ArrayList;
         import java.util.Map;
         import java.io.File;
         import java.nio.file.Files;
         import java.nio.file.Paths;
         
         public class App {
             public static void main(String[] args) {
                 Pulumi.run(App::stack);
             }
         
             public static void stack(Context ctx) {
                 final var main = ElbFunctions.getHostedZoneId();
         
                 var www = new Record("www", RecordArgs.builder()
                     .zoneId(primary.zoneId())
                     .name("example.com")
                     .type("A")
                     .aliases(RecordAliasArgs.builder()
                         .name(mainAwsElb.dnsName())
                         .zoneId(main.applyValue(getHostedZoneIdResult -> getHostedZoneIdResult.id()))
                         .evaluateTargetHealth(true)
                         .build())
                     .build());
         
             }
         }
         
         
        <!--End PulumiCodeChooser -->
      • getHostedZoneId

        public static com.pulumi.core.Output<GetHostedZoneIdResult> getHostedZoneId​(GetHostedZoneIdArgs args,
                                                                                    com.pulumi.deployment.InvokeOptions options)
        Use this data source to get the HostedZoneId of the AWS Elastic Load Balancing HostedZoneId in a given region for the purpose of using in an AWS Route53 Alias. ## Example Usage <!--Start PulumiCodeChooser -->
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.elb.ElbFunctions;
         import com.pulumi.aws.elb.inputs.GetHostedZoneIdArgs;
         import com.pulumi.aws.route53.Record;
         import com.pulumi.aws.route53.RecordArgs;
         import com.pulumi.aws.route53.inputs.RecordAliasArgs;
         import java.util.List;
         import java.util.ArrayList;
         import java.util.Map;
         import java.io.File;
         import java.nio.file.Files;
         import java.nio.file.Paths;
         
         public class App {
             public static void main(String[] args) {
                 Pulumi.run(App::stack);
             }
         
             public static void stack(Context ctx) {
                 final var main = ElbFunctions.getHostedZoneId();
         
                 var www = new Record("www", RecordArgs.builder()
                     .zoneId(primary.zoneId())
                     .name("example.com")
                     .type("A")
                     .aliases(RecordAliasArgs.builder()
                         .name(mainAwsElb.dnsName())
                         .zoneId(main.applyValue(getHostedZoneIdResult -> getHostedZoneIdResult.id()))
                         .evaluateTargetHealth(true)
                         .build())
                     .build());
         
             }
         }
         
         
        <!--End PulumiCodeChooser -->
      • getHostedZoneIdPlain

        public static java.util.concurrent.CompletableFuture<GetHostedZoneIdResult> getHostedZoneIdPlain​(GetHostedZoneIdPlainArgs args,
                                                                                                         com.pulumi.deployment.InvokeOptions options)
        Use this data source to get the HostedZoneId of the AWS Elastic Load Balancing HostedZoneId in a given region for the purpose of using in an AWS Route53 Alias. ## Example Usage <!--Start PulumiCodeChooser -->
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.elb.ElbFunctions;
         import com.pulumi.aws.elb.inputs.GetHostedZoneIdArgs;
         import com.pulumi.aws.route53.Record;
         import com.pulumi.aws.route53.RecordArgs;
         import com.pulumi.aws.route53.inputs.RecordAliasArgs;
         import java.util.List;
         import java.util.ArrayList;
         import java.util.Map;
         import java.io.File;
         import java.nio.file.Files;
         import java.nio.file.Paths;
         
         public class App {
             public static void main(String[] args) {
                 Pulumi.run(App::stack);
             }
         
             public static void stack(Context ctx) {
                 final var main = ElbFunctions.getHostedZoneId();
         
                 var www = new Record("www", RecordArgs.builder()
                     .zoneId(primary.zoneId())
                     .name("example.com")
                     .type("A")
                     .aliases(RecordAliasArgs.builder()
                         .name(mainAwsElb.dnsName())
                         .zoneId(main.applyValue(getHostedZoneIdResult -> getHostedZoneIdResult.id()))
                         .evaluateTargetHealth(true)
                         .build())
                     .build());
         
             }
         }
         
         
        <!--End PulumiCodeChooser -->
      • getLoadBalancer

        public static com.pulumi.core.Output<GetLoadBalancerResult> getLoadBalancer​(GetLoadBalancerArgs args)
        Provides information about a "classic" Elastic Load Balancer (ELB). See LB Data Source if you are looking for "v2" Application Load Balancer (ALB) or Network Load Balancer (NLB). This data source can prove useful when a module accepts an LB as an input variable and needs to, for example, determine the security groups associated with it, etc. ## Example Usage <!--Start PulumiCodeChooser -->
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.elb.ElbFunctions;
         import com.pulumi.aws.elb.inputs.GetLoadBalancerArgs;
         import java.util.List;
         import java.util.ArrayList;
         import java.util.Map;
         import java.io.File;
         import java.nio.file.Files;
         import java.nio.file.Paths;
         
         public class App {
             public static void main(String[] args) {
                 Pulumi.run(App::stack);
             }
         
             public static void stack(Context ctx) {
                 final var config = ctx.config();
                 final var lbName = config.get("lbName").orElse("");
                 final var test = ElbFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
                     .name(lbName)
                     .build());
         
             }
         }
         
         
        <!--End PulumiCodeChooser -->
      • getLoadBalancerPlain

        public static java.util.concurrent.CompletableFuture<GetLoadBalancerResult> getLoadBalancerPlain​(GetLoadBalancerPlainArgs args)
        Provides information about a "classic" Elastic Load Balancer (ELB). See LB Data Source if you are looking for "v2" Application Load Balancer (ALB) or Network Load Balancer (NLB). This data source can prove useful when a module accepts an LB as an input variable and needs to, for example, determine the security groups associated with it, etc. ## Example Usage <!--Start PulumiCodeChooser -->
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.elb.ElbFunctions;
         import com.pulumi.aws.elb.inputs.GetLoadBalancerArgs;
         import java.util.List;
         import java.util.ArrayList;
         import java.util.Map;
         import java.io.File;
         import java.nio.file.Files;
         import java.nio.file.Paths;
         
         public class App {
             public static void main(String[] args) {
                 Pulumi.run(App::stack);
             }
         
             public static void stack(Context ctx) {
                 final var config = ctx.config();
                 final var lbName = config.get("lbName").orElse("");
                 final var test = ElbFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
                     .name(lbName)
                     .build());
         
             }
         }
         
         
        <!--End PulumiCodeChooser -->
      • getLoadBalancer

        public static com.pulumi.core.Output<GetLoadBalancerResult> getLoadBalancer​(GetLoadBalancerArgs args,
                                                                                    com.pulumi.deployment.InvokeOptions options)
        Provides information about a "classic" Elastic Load Balancer (ELB). See LB Data Source if you are looking for "v2" Application Load Balancer (ALB) or Network Load Balancer (NLB). This data source can prove useful when a module accepts an LB as an input variable and needs to, for example, determine the security groups associated with it, etc. ## Example Usage <!--Start PulumiCodeChooser -->
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.elb.ElbFunctions;
         import com.pulumi.aws.elb.inputs.GetLoadBalancerArgs;
         import java.util.List;
         import java.util.ArrayList;
         import java.util.Map;
         import java.io.File;
         import java.nio.file.Files;
         import java.nio.file.Paths;
         
         public class App {
             public static void main(String[] args) {
                 Pulumi.run(App::stack);
             }
         
             public static void stack(Context ctx) {
                 final var config = ctx.config();
                 final var lbName = config.get("lbName").orElse("");
                 final var test = ElbFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
                     .name(lbName)
                     .build());
         
             }
         }
         
         
        <!--End PulumiCodeChooser -->
      • getLoadBalancerPlain

        public static java.util.concurrent.CompletableFuture<GetLoadBalancerResult> getLoadBalancerPlain​(GetLoadBalancerPlainArgs args,
                                                                                                         com.pulumi.deployment.InvokeOptions options)
        Provides information about a "classic" Elastic Load Balancer (ELB). See LB Data Source if you are looking for "v2" Application Load Balancer (ALB) or Network Load Balancer (NLB). This data source can prove useful when a module accepts an LB as an input variable and needs to, for example, determine the security groups associated with it, etc. ## Example Usage <!--Start PulumiCodeChooser -->
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.elb.ElbFunctions;
         import com.pulumi.aws.elb.inputs.GetLoadBalancerArgs;
         import java.util.List;
         import java.util.ArrayList;
         import java.util.Map;
         import java.io.File;
         import java.nio.file.Files;
         import java.nio.file.Paths;
         
         public class App {
             public static void main(String[] args) {
                 Pulumi.run(App::stack);
             }
         
             public static void stack(Context ctx) {
                 final var config = ctx.config();
                 final var lbName = config.get("lbName").orElse("");
                 final var test = ElbFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
                     .name(lbName)
                     .build());
         
             }
         }
         
         
        <!--End PulumiCodeChooser -->
      • getServiceAccount

        public static com.pulumi.core.Output<GetServiceAccountResult> getServiceAccount()
        Use this data source to get the Account ID of the [AWS Elastic Load Balancing Service Account](http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy) in a given region for the purpose of permitting in S3 bucket policy. > **Note:** For AWS Regions opened since Jakarta (`ap-southeast-3`) in December 2021, AWS [documents that](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy) a [service principal name](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) should be used instead of an AWS account ID in any relevant IAM policy. ## Example Usage <!--Start PulumiCodeChooser -->
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.elb.ElbFunctions;
         import com.pulumi.aws.elb.inputs.GetServiceAccountArgs;
         import com.pulumi.aws.s3.BucketV2;
         import com.pulumi.aws.s3.BucketV2Args;
         import com.pulumi.aws.s3.BucketAclV2;
         import com.pulumi.aws.s3.BucketAclV2Args;
         import com.pulumi.aws.iam.IamFunctions;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
         import com.pulumi.aws.s3.BucketPolicy;
         import com.pulumi.aws.s3.BucketPolicyArgs;
         import com.pulumi.aws.elb.LoadBalancer;
         import com.pulumi.aws.elb.LoadBalancerArgs;
         import com.pulumi.aws.elb.inputs.LoadBalancerAccessLogsArgs;
         import com.pulumi.aws.elb.inputs.LoadBalancerListenerArgs;
         import java.util.List;
         import java.util.ArrayList;
         import java.util.Map;
         import java.io.File;
         import java.nio.file.Files;
         import java.nio.file.Paths;
         
         public class App {
             public static void main(String[] args) {
                 Pulumi.run(App::stack);
             }
         
             public static void stack(Context ctx) {
                 final var main = ElbFunctions.getServiceAccount();
         
                 var elbLogs = new BucketV2("elbLogs", BucketV2Args.builder()
                     .bucket("my-elb-tf-test-bucket")
                     .build());
         
                 var elbLogsAcl = new BucketAclV2("elbLogsAcl", BucketAclV2Args.builder()
                     .bucket(elbLogs.id())
                     .acl("private")
                     .build());
         
                 final var allowElbLogging = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                     .statements(GetPolicyDocumentStatementArgs.builder()
                         .effect("Allow")
                         .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                             .type("AWS")
                             .identifiers(main.applyValue(getServiceAccountResult -> getServiceAccountResult.arn()))
                             .build())
                         .actions("s3:PutObject")
                         .resources(elbLogs.arn().applyValue(arn -> String.format("%s/AWSLogs/*", arn)))
                         .build())
                     .build());
         
                 var allowElbLoggingBucketPolicy = new BucketPolicy("allowElbLoggingBucketPolicy", BucketPolicyArgs.builder()
                     .bucket(elbLogs.id())
                     .policy(allowElbLogging.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult).applyValue(allowElbLogging -> allowElbLogging.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json())))
                     .build());
         
                 var bar = new LoadBalancer("bar", LoadBalancerArgs.builder()
                     .name("my-foobar-elb")
                     .availabilityZones("us-west-2a")
                     .accessLogs(LoadBalancerAccessLogsArgs.builder()
                         .bucket(elbLogs.id())
                         .interval(5)
                         .build())
                     .listeners(LoadBalancerListenerArgs.builder()
                         .instancePort(8000)
                         .instanceProtocol("http")
                         .lbPort(80)
                         .lbProtocol("http")
                         .build())
                     .build());
         
             }
         }
         
         
        <!--End PulumiCodeChooser -->
      • getServiceAccountPlain

        public static java.util.concurrent.CompletableFuture<GetServiceAccountResult> getServiceAccountPlain()
        Use this data source to get the Account ID of the [AWS Elastic Load Balancing Service Account](http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy) in a given region for the purpose of permitting in S3 bucket policy. > **Note:** For AWS Regions opened since Jakarta (`ap-southeast-3`) in December 2021, AWS [documents that](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy) a [service principal name](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) should be used instead of an AWS account ID in any relevant IAM policy. ## Example Usage <!--Start PulumiCodeChooser -->
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.elb.ElbFunctions;
         import com.pulumi.aws.elb.inputs.GetServiceAccountArgs;
         import com.pulumi.aws.s3.BucketV2;
         import com.pulumi.aws.s3.BucketV2Args;
         import com.pulumi.aws.s3.BucketAclV2;
         import com.pulumi.aws.s3.BucketAclV2Args;
         import com.pulumi.aws.iam.IamFunctions;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
         import com.pulumi.aws.s3.BucketPolicy;
         import com.pulumi.aws.s3.BucketPolicyArgs;
         import com.pulumi.aws.elb.LoadBalancer;
         import com.pulumi.aws.elb.LoadBalancerArgs;
         import com.pulumi.aws.elb.inputs.LoadBalancerAccessLogsArgs;
         import com.pulumi.aws.elb.inputs.LoadBalancerListenerArgs;
         import java.util.List;
         import java.util.ArrayList;
         import java.util.Map;
         import java.io.File;
         import java.nio.file.Files;
         import java.nio.file.Paths;
         
         public class App {
             public static void main(String[] args) {
                 Pulumi.run(App::stack);
             }
         
             public static void stack(Context ctx) {
                 final var main = ElbFunctions.getServiceAccount();
         
                 var elbLogs = new BucketV2("elbLogs", BucketV2Args.builder()
                     .bucket("my-elb-tf-test-bucket")
                     .build());
         
                 var elbLogsAcl = new BucketAclV2("elbLogsAcl", BucketAclV2Args.builder()
                     .bucket(elbLogs.id())
                     .acl("private")
                     .build());
         
                 final var allowElbLogging = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                     .statements(GetPolicyDocumentStatementArgs.builder()
                         .effect("Allow")
                         .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                             .type("AWS")
                             .identifiers(main.applyValue(getServiceAccountResult -> getServiceAccountResult.arn()))
                             .build())
                         .actions("s3:PutObject")
                         .resources(elbLogs.arn().applyValue(arn -> String.format("%s/AWSLogs/*", arn)))
                         .build())
                     .build());
         
                 var allowElbLoggingBucketPolicy = new BucketPolicy("allowElbLoggingBucketPolicy", BucketPolicyArgs.builder()
                     .bucket(elbLogs.id())
                     .policy(allowElbLogging.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult).applyValue(allowElbLogging -> allowElbLogging.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json())))
                     .build());
         
                 var bar = new LoadBalancer("bar", LoadBalancerArgs.builder()
                     .name("my-foobar-elb")
                     .availabilityZones("us-west-2a")
                     .accessLogs(LoadBalancerAccessLogsArgs.builder()
                         .bucket(elbLogs.id())
                         .interval(5)
                         .build())
                     .listeners(LoadBalancerListenerArgs.builder()
                         .instancePort(8000)
                         .instanceProtocol("http")
                         .lbPort(80)
                         .lbProtocol("http")
                         .build())
                     .build());
         
             }
         }
         
         
        <!--End PulumiCodeChooser -->
      • getServiceAccount

        public static com.pulumi.core.Output<GetServiceAccountResult> getServiceAccount​(GetServiceAccountArgs args)
        Use this data source to get the Account ID of the [AWS Elastic Load Balancing Service Account](http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy) in a given region for the purpose of permitting in S3 bucket policy. > **Note:** For AWS Regions opened since Jakarta (`ap-southeast-3`) in December 2021, AWS [documents that](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy) a [service principal name](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) should be used instead of an AWS account ID in any relevant IAM policy. ## Example Usage <!--Start PulumiCodeChooser -->
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.elb.ElbFunctions;
         import com.pulumi.aws.elb.inputs.GetServiceAccountArgs;
         import com.pulumi.aws.s3.BucketV2;
         import com.pulumi.aws.s3.BucketV2Args;
         import com.pulumi.aws.s3.BucketAclV2;
         import com.pulumi.aws.s3.BucketAclV2Args;
         import com.pulumi.aws.iam.IamFunctions;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
         import com.pulumi.aws.s3.BucketPolicy;
         import com.pulumi.aws.s3.BucketPolicyArgs;
         import com.pulumi.aws.elb.LoadBalancer;
         import com.pulumi.aws.elb.LoadBalancerArgs;
         import com.pulumi.aws.elb.inputs.LoadBalancerAccessLogsArgs;
         import com.pulumi.aws.elb.inputs.LoadBalancerListenerArgs;
         import java.util.List;
         import java.util.ArrayList;
         import java.util.Map;
         import java.io.File;
         import java.nio.file.Files;
         import java.nio.file.Paths;
         
         public class App {
             public static void main(String[] args) {
                 Pulumi.run(App::stack);
             }
         
             public static void stack(Context ctx) {
                 final var main = ElbFunctions.getServiceAccount();
         
                 var elbLogs = new BucketV2("elbLogs", BucketV2Args.builder()
                     .bucket("my-elb-tf-test-bucket")
                     .build());
         
                 var elbLogsAcl = new BucketAclV2("elbLogsAcl", BucketAclV2Args.builder()
                     .bucket(elbLogs.id())
                     .acl("private")
                     .build());
         
                 final var allowElbLogging = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                     .statements(GetPolicyDocumentStatementArgs.builder()
                         .effect("Allow")
                         .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                             .type("AWS")
                             .identifiers(main.applyValue(getServiceAccountResult -> getServiceAccountResult.arn()))
                             .build())
                         .actions("s3:PutObject")
                         .resources(elbLogs.arn().applyValue(arn -> String.format("%s/AWSLogs/*", arn)))
                         .build())
                     .build());
         
                 var allowElbLoggingBucketPolicy = new BucketPolicy("allowElbLoggingBucketPolicy", BucketPolicyArgs.builder()
                     .bucket(elbLogs.id())
                     .policy(allowElbLogging.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult).applyValue(allowElbLogging -> allowElbLogging.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json())))
                     .build());
         
                 var bar = new LoadBalancer("bar", LoadBalancerArgs.builder()
                     .name("my-foobar-elb")
                     .availabilityZones("us-west-2a")
                     .accessLogs(LoadBalancerAccessLogsArgs.builder()
                         .bucket(elbLogs.id())
                         .interval(5)
                         .build())
                     .listeners(LoadBalancerListenerArgs.builder()
                         .instancePort(8000)
                         .instanceProtocol("http")
                         .lbPort(80)
                         .lbProtocol("http")
                         .build())
                     .build());
         
             }
         }
         
         
        <!--End PulumiCodeChooser -->
      • getServiceAccountPlain

        public static java.util.concurrent.CompletableFuture<GetServiceAccountResult> getServiceAccountPlain​(GetServiceAccountPlainArgs args)
        Use this data source to get the Account ID of the [AWS Elastic Load Balancing Service Account](http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy) in a given region for the purpose of permitting in S3 bucket policy. > **Note:** For AWS Regions opened since Jakarta (`ap-southeast-3`) in December 2021, AWS [documents that](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy) a [service principal name](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) should be used instead of an AWS account ID in any relevant IAM policy. ## Example Usage <!--Start PulumiCodeChooser -->
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.elb.ElbFunctions;
         import com.pulumi.aws.elb.inputs.GetServiceAccountArgs;
         import com.pulumi.aws.s3.BucketV2;
         import com.pulumi.aws.s3.BucketV2Args;
         import com.pulumi.aws.s3.BucketAclV2;
         import com.pulumi.aws.s3.BucketAclV2Args;
         import com.pulumi.aws.iam.IamFunctions;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
         import com.pulumi.aws.s3.BucketPolicy;
         import com.pulumi.aws.s3.BucketPolicyArgs;
         import com.pulumi.aws.elb.LoadBalancer;
         import com.pulumi.aws.elb.LoadBalancerArgs;
         import com.pulumi.aws.elb.inputs.LoadBalancerAccessLogsArgs;
         import com.pulumi.aws.elb.inputs.LoadBalancerListenerArgs;
         import java.util.List;
         import java.util.ArrayList;
         import java.util.Map;
         import java.io.File;
         import java.nio.file.Files;
         import java.nio.file.Paths;
         
         public class App {
             public static void main(String[] args) {
                 Pulumi.run(App::stack);
             }
         
             public static void stack(Context ctx) {
                 final var main = ElbFunctions.getServiceAccount();
         
                 var elbLogs = new BucketV2("elbLogs", BucketV2Args.builder()
                     .bucket("my-elb-tf-test-bucket")
                     .build());
         
                 var elbLogsAcl = new BucketAclV2("elbLogsAcl", BucketAclV2Args.builder()
                     .bucket(elbLogs.id())
                     .acl("private")
                     .build());
         
                 final var allowElbLogging = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                     .statements(GetPolicyDocumentStatementArgs.builder()
                         .effect("Allow")
                         .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                             .type("AWS")
                             .identifiers(main.applyValue(getServiceAccountResult -> getServiceAccountResult.arn()))
                             .build())
                         .actions("s3:PutObject")
                         .resources(elbLogs.arn().applyValue(arn -> String.format("%s/AWSLogs/*", arn)))
                         .build())
                     .build());
         
                 var allowElbLoggingBucketPolicy = new BucketPolicy("allowElbLoggingBucketPolicy", BucketPolicyArgs.builder()
                     .bucket(elbLogs.id())
                     .policy(allowElbLogging.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult).applyValue(allowElbLogging -> allowElbLogging.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json())))
                     .build());
         
                 var bar = new LoadBalancer("bar", LoadBalancerArgs.builder()
                     .name("my-foobar-elb")
                     .availabilityZones("us-west-2a")
                     .accessLogs(LoadBalancerAccessLogsArgs.builder()
                         .bucket(elbLogs.id())
                         .interval(5)
                         .build())
                     .listeners(LoadBalancerListenerArgs.builder()
                         .instancePort(8000)
                         .instanceProtocol("http")
                         .lbPort(80)
                         .lbProtocol("http")
                         .build())
                     .build());
         
             }
         }
         
         
        <!--End PulumiCodeChooser -->
      • getServiceAccount

        public static com.pulumi.core.Output<GetServiceAccountResult> getServiceAccount​(GetServiceAccountArgs args,
                                                                                        com.pulumi.deployment.InvokeOptions options)
        Use this data source to get the Account ID of the [AWS Elastic Load Balancing Service Account](http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy) in a given region for the purpose of permitting in S3 bucket policy. > **Note:** For AWS Regions opened since Jakarta (`ap-southeast-3`) in December 2021, AWS [documents that](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy) a [service principal name](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) should be used instead of an AWS account ID in any relevant IAM policy. ## Example Usage <!--Start PulumiCodeChooser -->
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.elb.ElbFunctions;
         import com.pulumi.aws.elb.inputs.GetServiceAccountArgs;
         import com.pulumi.aws.s3.BucketV2;
         import com.pulumi.aws.s3.BucketV2Args;
         import com.pulumi.aws.s3.BucketAclV2;
         import com.pulumi.aws.s3.BucketAclV2Args;
         import com.pulumi.aws.iam.IamFunctions;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
         import com.pulumi.aws.s3.BucketPolicy;
         import com.pulumi.aws.s3.BucketPolicyArgs;
         import com.pulumi.aws.elb.LoadBalancer;
         import com.pulumi.aws.elb.LoadBalancerArgs;
         import com.pulumi.aws.elb.inputs.LoadBalancerAccessLogsArgs;
         import com.pulumi.aws.elb.inputs.LoadBalancerListenerArgs;
         import java.util.List;
         import java.util.ArrayList;
         import java.util.Map;
         import java.io.File;
         import java.nio.file.Files;
         import java.nio.file.Paths;
         
         public class App {
             public static void main(String[] args) {
                 Pulumi.run(App::stack);
             }
         
             public static void stack(Context ctx) {
                 final var main = ElbFunctions.getServiceAccount();
         
                 var elbLogs = new BucketV2("elbLogs", BucketV2Args.builder()
                     .bucket("my-elb-tf-test-bucket")
                     .build());
         
                 var elbLogsAcl = new BucketAclV2("elbLogsAcl", BucketAclV2Args.builder()
                     .bucket(elbLogs.id())
                     .acl("private")
                     .build());
         
                 final var allowElbLogging = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                     .statements(GetPolicyDocumentStatementArgs.builder()
                         .effect("Allow")
                         .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                             .type("AWS")
                             .identifiers(main.applyValue(getServiceAccountResult -> getServiceAccountResult.arn()))
                             .build())
                         .actions("s3:PutObject")
                         .resources(elbLogs.arn().applyValue(arn -> String.format("%s/AWSLogs/*", arn)))
                         .build())
                     .build());
         
                 var allowElbLoggingBucketPolicy = new BucketPolicy("allowElbLoggingBucketPolicy", BucketPolicyArgs.builder()
                     .bucket(elbLogs.id())
                     .policy(allowElbLogging.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult).applyValue(allowElbLogging -> allowElbLogging.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json())))
                     .build());
         
                 var bar = new LoadBalancer("bar", LoadBalancerArgs.builder()
                     .name("my-foobar-elb")
                     .availabilityZones("us-west-2a")
                     .accessLogs(LoadBalancerAccessLogsArgs.builder()
                         .bucket(elbLogs.id())
                         .interval(5)
                         .build())
                     .listeners(LoadBalancerListenerArgs.builder()
                         .instancePort(8000)
                         .instanceProtocol("http")
                         .lbPort(80)
                         .lbProtocol("http")
                         .build())
                     .build());
         
             }
         }
         
         
        <!--End PulumiCodeChooser -->
      • getServiceAccountPlain

        public static java.util.concurrent.CompletableFuture<GetServiceAccountResult> getServiceAccountPlain​(GetServiceAccountPlainArgs args,
                                                                                                             com.pulumi.deployment.InvokeOptions options)
        Use this data source to get the Account ID of the [AWS Elastic Load Balancing Service Account](http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy) in a given region for the purpose of permitting in S3 bucket policy. > **Note:** For AWS Regions opened since Jakarta (`ap-southeast-3`) in December 2021, AWS [documents that](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy) a [service principal name](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) should be used instead of an AWS account ID in any relevant IAM policy. ## Example Usage <!--Start PulumiCodeChooser -->
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.elb.ElbFunctions;
         import com.pulumi.aws.elb.inputs.GetServiceAccountArgs;
         import com.pulumi.aws.s3.BucketV2;
         import com.pulumi.aws.s3.BucketV2Args;
         import com.pulumi.aws.s3.BucketAclV2;
         import com.pulumi.aws.s3.BucketAclV2Args;
         import com.pulumi.aws.iam.IamFunctions;
         import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
         import com.pulumi.aws.s3.BucketPolicy;
         import com.pulumi.aws.s3.BucketPolicyArgs;
         import com.pulumi.aws.elb.LoadBalancer;
         import com.pulumi.aws.elb.LoadBalancerArgs;
         import com.pulumi.aws.elb.inputs.LoadBalancerAccessLogsArgs;
         import com.pulumi.aws.elb.inputs.LoadBalancerListenerArgs;
         import java.util.List;
         import java.util.ArrayList;
         import java.util.Map;
         import java.io.File;
         import java.nio.file.Files;
         import java.nio.file.Paths;
         
         public class App {
             public static void main(String[] args) {
                 Pulumi.run(App::stack);
             }
         
             public static void stack(Context ctx) {
                 final var main = ElbFunctions.getServiceAccount();
         
                 var elbLogs = new BucketV2("elbLogs", BucketV2Args.builder()
                     .bucket("my-elb-tf-test-bucket")
                     .build());
         
                 var elbLogsAcl = new BucketAclV2("elbLogsAcl", BucketAclV2Args.builder()
                     .bucket(elbLogs.id())
                     .acl("private")
                     .build());
         
                 final var allowElbLogging = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                     .statements(GetPolicyDocumentStatementArgs.builder()
                         .effect("Allow")
                         .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                             .type("AWS")
                             .identifiers(main.applyValue(getServiceAccountResult -> getServiceAccountResult.arn()))
                             .build())
                         .actions("s3:PutObject")
                         .resources(elbLogs.arn().applyValue(arn -> String.format("%s/AWSLogs/*", arn)))
                         .build())
                     .build());
         
                 var allowElbLoggingBucketPolicy = new BucketPolicy("allowElbLoggingBucketPolicy", BucketPolicyArgs.builder()
                     .bucket(elbLogs.id())
                     .policy(allowElbLogging.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult).applyValue(allowElbLogging -> allowElbLogging.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json())))
                     .build());
         
                 var bar = new LoadBalancer("bar", LoadBalancerArgs.builder()
                     .name("my-foobar-elb")
                     .availabilityZones("us-west-2a")
                     .accessLogs(LoadBalancerAccessLogsArgs.builder()
                         .bucket(elbLogs.id())
                         .interval(5)
                         .build())
                     .listeners(LoadBalancerListenerArgs.builder()
                         .instancePort(8000)
                         .instanceProtocol("http")
                         .lbPort(80)
                         .lbProtocol("http")
                         .build())
                     .build());
         
             }
         }
         
         
        <!--End PulumiCodeChooser -->