Package com.pulumi.aws.elb
Class ElbFunctions
- java.lang.Object
-
- com.pulumi.aws.elb.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.
-
-
-
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()); } }
-
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()); } }
-
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()); } }
-
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()); } }
-
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()); } }
-
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()); } }
-
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()); } }
-
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()); } }
-
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()); } }
-
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()); } }
-
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()); } }
-
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()); } }
-
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()); } }
-
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()); } }
-
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()); } }
-
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()); } }
-
-