Class S3Functions


  • public final class S3Functions
    extends java.lang.Object
    • Constructor Detail

      • S3Functions

        public S3Functions()
    • Method Detail

      • getAccessPoint

        public static com.pulumi.core.Output<GetAccessPointResult> getAccessPoint​(GetAccessPointArgs args)
        Provides details about a specific S3 access point. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetAccessPointArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getAccessPoint(GetAccessPointArgs.builder()
                     .name("example-access-point")
                     .build());
         
             }
         }
         
         
      • getAccessPointPlain

        public static java.util.concurrent.CompletableFuture<GetAccessPointResult> getAccessPointPlain​(GetAccessPointPlainArgs args)
        Provides details about a specific S3 access point. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetAccessPointArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getAccessPoint(GetAccessPointArgs.builder()
                     .name("example-access-point")
                     .build());
         
             }
         }
         
         
      • getAccessPoint

        public static com.pulumi.core.Output<GetAccessPointResult> getAccessPoint​(GetAccessPointArgs args,
                                                                                  com.pulumi.deployment.InvokeOptions options)
        Provides details about a specific S3 access point. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetAccessPointArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getAccessPoint(GetAccessPointArgs.builder()
                     .name("example-access-point")
                     .build());
         
             }
         }
         
         
      • getAccessPoint

        public static com.pulumi.core.Output<GetAccessPointResult> getAccessPoint​(GetAccessPointArgs args,
                                                                                  com.pulumi.deployment.InvokeOutputOptions options)
        Provides details about a specific S3 access point. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetAccessPointArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getAccessPoint(GetAccessPointArgs.builder()
                     .name("example-access-point")
                     .build());
         
             }
         }
         
         
      • getAccessPointPlain

        public static java.util.concurrent.CompletableFuture<GetAccessPointResult> getAccessPointPlain​(GetAccessPointPlainArgs args,
                                                                                                       com.pulumi.deployment.InvokeOptions options)
        Provides details about a specific S3 access point. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetAccessPointArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getAccessPoint(GetAccessPointArgs.builder()
                     .name("example-access-point")
                     .build());
         
             }
         }
         
         
      • getAccountPublicAccessBlock

        public static com.pulumi.core.Output<GetAccountPublicAccessBlockResult> getAccountPublicAccessBlock()
        The S3 account public access block data source returns account-level public access block configuration. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetAccountPublicAccessBlockArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getAccountPublicAccessBlock(GetAccountPublicAccessBlockArgs.builder()
                     .build());
         
             }
         }
         
         
      • getAccountPublicAccessBlockPlain

        public static java.util.concurrent.CompletableFuture<GetAccountPublicAccessBlockResult> getAccountPublicAccessBlockPlain()
        The S3 account public access block data source returns account-level public access block configuration. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetAccountPublicAccessBlockArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getAccountPublicAccessBlock(GetAccountPublicAccessBlockArgs.builder()
                     .build());
         
             }
         }
         
         
      • getAccountPublicAccessBlock

        public static com.pulumi.core.Output<GetAccountPublicAccessBlockResult> getAccountPublicAccessBlock​(GetAccountPublicAccessBlockArgs args)
        The S3 account public access block data source returns account-level public access block configuration. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetAccountPublicAccessBlockArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getAccountPublicAccessBlock(GetAccountPublicAccessBlockArgs.builder()
                     .build());
         
             }
         }
         
         
      • getAccountPublicAccessBlockPlain

        public static java.util.concurrent.CompletableFuture<GetAccountPublicAccessBlockResult> getAccountPublicAccessBlockPlain​(GetAccountPublicAccessBlockPlainArgs args)
        The S3 account public access block data source returns account-level public access block configuration. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetAccountPublicAccessBlockArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getAccountPublicAccessBlock(GetAccountPublicAccessBlockArgs.builder()
                     .build());
         
             }
         }
         
         
      • getAccountPublicAccessBlock

        public static com.pulumi.core.Output<GetAccountPublicAccessBlockResult> getAccountPublicAccessBlock​(GetAccountPublicAccessBlockArgs args,
                                                                                                            com.pulumi.deployment.InvokeOptions options)
        The S3 account public access block data source returns account-level public access block configuration. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetAccountPublicAccessBlockArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getAccountPublicAccessBlock(GetAccountPublicAccessBlockArgs.builder()
                     .build());
         
             }
         }
         
         
      • getAccountPublicAccessBlock

        public static com.pulumi.core.Output<GetAccountPublicAccessBlockResult> getAccountPublicAccessBlock​(GetAccountPublicAccessBlockArgs args,
                                                                                                            com.pulumi.deployment.InvokeOutputOptions options)
        The S3 account public access block data source returns account-level public access block configuration. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetAccountPublicAccessBlockArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getAccountPublicAccessBlock(GetAccountPublicAccessBlockArgs.builder()
                     .build());
         
             }
         }
         
         
      • getAccountPublicAccessBlockPlain

        public static java.util.concurrent.CompletableFuture<GetAccountPublicAccessBlockResult> getAccountPublicAccessBlockPlain​(GetAccountPublicAccessBlockPlainArgs args,
                                                                                                                                 com.pulumi.deployment.InvokeOptions options)
        The S3 account public access block data source returns account-level public access block configuration. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetAccountPublicAccessBlockArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getAccountPublicAccessBlock(GetAccountPublicAccessBlockArgs.builder()
                     .build());
         
             }
         }
         
         
      • getBucket

        public static com.pulumi.core.Output<GetBucketResult> getBucket​(GetBucketArgs args)
        Provides details about a specific S3 bucket. This resource may prove useful when setting up a Route53 record, or an origin for a CloudFront Distribution. ## Example Usage ### Route53 Record
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketArgs;
         import com.pulumi.aws.route53.Route53Functions;
         import com.pulumi.aws.route53.inputs.GetZoneArgs;
         import com.pulumi.aws.route53.Record;
         import com.pulumi.aws.route53.RecordArgs;
         import com.pulumi.aws.route53.inputs.RecordAliasArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 selected = S3Functions.getBucket(GetBucketArgs.builder()
                     .bucket("bucket.test.com")
                     .build());
         
                 final var testZone = Route53Functions.getZone(GetZoneArgs.builder()
                     .name("test.com.")
                     .build());
         
                 var example = new Record("example", RecordArgs.builder()
                     .aliases(RecordAliasArgs.builder()
                         .name(selected.websiteDomain())
                         .zoneId(selected.hostedZoneId())
                         .build())
                     .zoneId(testZone.id())
                     .name("bucket")
                     .type("A")
                     .build());
         
             }
         }
         
         
        ### CloudFront Origin
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketArgs;
         import com.pulumi.aws.cloudfront.Distribution;
         import com.pulumi.aws.cloudfront.DistributionArgs;
         import com.pulumi.aws.cloudfront.inputs.DistributionOriginArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 selected = S3Functions.getBucket(GetBucketArgs.builder()
                     .bucket("a-test-bucket")
                     .build());
         
                 var test = new Distribution("test", DistributionArgs.builder()
                     .origins(DistributionOriginArgs.builder()
                         .domainName(selected.bucketDomainName())
                         .originId("s3-selected-bucket")
                         .build())
                     .build());
         
             }
         }
         
         
      • getBucketPlain

        public static java.util.concurrent.CompletableFuture<GetBucketResult> getBucketPlain​(GetBucketPlainArgs args)
        Provides details about a specific S3 bucket. This resource may prove useful when setting up a Route53 record, or an origin for a CloudFront Distribution. ## Example Usage ### Route53 Record
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketArgs;
         import com.pulumi.aws.route53.Route53Functions;
         import com.pulumi.aws.route53.inputs.GetZoneArgs;
         import com.pulumi.aws.route53.Record;
         import com.pulumi.aws.route53.RecordArgs;
         import com.pulumi.aws.route53.inputs.RecordAliasArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 selected = S3Functions.getBucket(GetBucketArgs.builder()
                     .bucket("bucket.test.com")
                     .build());
         
                 final var testZone = Route53Functions.getZone(GetZoneArgs.builder()
                     .name("test.com.")
                     .build());
         
                 var example = new Record("example", RecordArgs.builder()
                     .aliases(RecordAliasArgs.builder()
                         .name(selected.websiteDomain())
                         .zoneId(selected.hostedZoneId())
                         .build())
                     .zoneId(testZone.id())
                     .name("bucket")
                     .type("A")
                     .build());
         
             }
         }
         
         
        ### CloudFront Origin
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketArgs;
         import com.pulumi.aws.cloudfront.Distribution;
         import com.pulumi.aws.cloudfront.DistributionArgs;
         import com.pulumi.aws.cloudfront.inputs.DistributionOriginArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 selected = S3Functions.getBucket(GetBucketArgs.builder()
                     .bucket("a-test-bucket")
                     .build());
         
                 var test = new Distribution("test", DistributionArgs.builder()
                     .origins(DistributionOriginArgs.builder()
                         .domainName(selected.bucketDomainName())
                         .originId("s3-selected-bucket")
                         .build())
                     .build());
         
             }
         }
         
         
      • getBucket

        public static com.pulumi.core.Output<GetBucketResult> getBucket​(GetBucketArgs args,
                                                                        com.pulumi.deployment.InvokeOptions options)
        Provides details about a specific S3 bucket. This resource may prove useful when setting up a Route53 record, or an origin for a CloudFront Distribution. ## Example Usage ### Route53 Record
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketArgs;
         import com.pulumi.aws.route53.Route53Functions;
         import com.pulumi.aws.route53.inputs.GetZoneArgs;
         import com.pulumi.aws.route53.Record;
         import com.pulumi.aws.route53.RecordArgs;
         import com.pulumi.aws.route53.inputs.RecordAliasArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 selected = S3Functions.getBucket(GetBucketArgs.builder()
                     .bucket("bucket.test.com")
                     .build());
         
                 final var testZone = Route53Functions.getZone(GetZoneArgs.builder()
                     .name("test.com.")
                     .build());
         
                 var example = new Record("example", RecordArgs.builder()
                     .aliases(RecordAliasArgs.builder()
                         .name(selected.websiteDomain())
                         .zoneId(selected.hostedZoneId())
                         .build())
                     .zoneId(testZone.id())
                     .name("bucket")
                     .type("A")
                     .build());
         
             }
         }
         
         
        ### CloudFront Origin
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketArgs;
         import com.pulumi.aws.cloudfront.Distribution;
         import com.pulumi.aws.cloudfront.DistributionArgs;
         import com.pulumi.aws.cloudfront.inputs.DistributionOriginArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 selected = S3Functions.getBucket(GetBucketArgs.builder()
                     .bucket("a-test-bucket")
                     .build());
         
                 var test = new Distribution("test", DistributionArgs.builder()
                     .origins(DistributionOriginArgs.builder()
                         .domainName(selected.bucketDomainName())
                         .originId("s3-selected-bucket")
                         .build())
                     .build());
         
             }
         }
         
         
      • getBucket

        public static com.pulumi.core.Output<GetBucketResult> getBucket​(GetBucketArgs args,
                                                                        com.pulumi.deployment.InvokeOutputOptions options)
        Provides details about a specific S3 bucket. This resource may prove useful when setting up a Route53 record, or an origin for a CloudFront Distribution. ## Example Usage ### Route53 Record
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketArgs;
         import com.pulumi.aws.route53.Route53Functions;
         import com.pulumi.aws.route53.inputs.GetZoneArgs;
         import com.pulumi.aws.route53.Record;
         import com.pulumi.aws.route53.RecordArgs;
         import com.pulumi.aws.route53.inputs.RecordAliasArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 selected = S3Functions.getBucket(GetBucketArgs.builder()
                     .bucket("bucket.test.com")
                     .build());
         
                 final var testZone = Route53Functions.getZone(GetZoneArgs.builder()
                     .name("test.com.")
                     .build());
         
                 var example = new Record("example", RecordArgs.builder()
                     .aliases(RecordAliasArgs.builder()
                         .name(selected.websiteDomain())
                         .zoneId(selected.hostedZoneId())
                         .build())
                     .zoneId(testZone.id())
                     .name("bucket")
                     .type("A")
                     .build());
         
             }
         }
         
         
        ### CloudFront Origin
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketArgs;
         import com.pulumi.aws.cloudfront.Distribution;
         import com.pulumi.aws.cloudfront.DistributionArgs;
         import com.pulumi.aws.cloudfront.inputs.DistributionOriginArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 selected = S3Functions.getBucket(GetBucketArgs.builder()
                     .bucket("a-test-bucket")
                     .build());
         
                 var test = new Distribution("test", DistributionArgs.builder()
                     .origins(DistributionOriginArgs.builder()
                         .domainName(selected.bucketDomainName())
                         .originId("s3-selected-bucket")
                         .build())
                     .build());
         
             }
         }
         
         
      • getBucketPlain

        public static java.util.concurrent.CompletableFuture<GetBucketResult> getBucketPlain​(GetBucketPlainArgs args,
                                                                                             com.pulumi.deployment.InvokeOptions options)
        Provides details about a specific S3 bucket. This resource may prove useful when setting up a Route53 record, or an origin for a CloudFront Distribution. ## Example Usage ### Route53 Record
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketArgs;
         import com.pulumi.aws.route53.Route53Functions;
         import com.pulumi.aws.route53.inputs.GetZoneArgs;
         import com.pulumi.aws.route53.Record;
         import com.pulumi.aws.route53.RecordArgs;
         import com.pulumi.aws.route53.inputs.RecordAliasArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 selected = S3Functions.getBucket(GetBucketArgs.builder()
                     .bucket("bucket.test.com")
                     .build());
         
                 final var testZone = Route53Functions.getZone(GetZoneArgs.builder()
                     .name("test.com.")
                     .build());
         
                 var example = new Record("example", RecordArgs.builder()
                     .aliases(RecordAliasArgs.builder()
                         .name(selected.websiteDomain())
                         .zoneId(selected.hostedZoneId())
                         .build())
                     .zoneId(testZone.id())
                     .name("bucket")
                     .type("A")
                     .build());
         
             }
         }
         
         
        ### CloudFront Origin
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketArgs;
         import com.pulumi.aws.cloudfront.Distribution;
         import com.pulumi.aws.cloudfront.DistributionArgs;
         import com.pulumi.aws.cloudfront.inputs.DistributionOriginArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 selected = S3Functions.getBucket(GetBucketArgs.builder()
                     .bucket("a-test-bucket")
                     .build());
         
                 var test = new Distribution("test", DistributionArgs.builder()
                     .origins(DistributionOriginArgs.builder()
                         .domainName(selected.bucketDomainName())
                         .originId("s3-selected-bucket")
                         .build())
                     .build());
         
             }
         }
         
         
      • getBucketNotification

        public static com.pulumi.core.Output<GetBucketNotificationResult> getBucketNotification​(GetBucketNotificationArgs args)
        Provides details about the notification configuration of an S3 bucket. Useful when `aws.s3.BucketNotification` is the right resource but the bucket already has notifications you do not manage. Read the existing notifications with this data source and re-emit them — alongside your own — in a single `aws.s3.BucketNotification` resource. See issue #501 for the longer story. For sharing a bucket across many independent consumers, enabling EventBridge on the resource is usually a better fit. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketNotificationArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBucketNotification(GetBucketNotificationArgs.builder()
                     .bucket("example-bucket")
                     .build());
         
             }
         }
         
         
        ### Conditionally Subscribe via EventBridge When the bucket forwards events to Amazon EventBridge, independent consumers can subscribe with their own `aws.cloudwatch.EventRule` resources. Use this data source to subscribe only when EventBridge is in fact enabled on the bucket.
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketNotificationArgs;
         import com.pulumi.aws.cloudwatch.EventRule;
         import com.pulumi.aws.cloudwatch.EventRuleArgs;
         import static com.pulumi.codegen.internal.Serialization.*;
         import com.pulumi.codegen.internal.KeyedValue;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 shared = S3Functions.getBucketNotification(GetBucketNotificationArgs.builder()
                     .bucket("shared-bucket")
                     .build());
         
                 for (var i = 0; i < shared.eventbridge() ? 1 : 0; i++) {
                     new EventRule("s3ObjectCreated-" + i, EventRuleArgs.builder()
                         .name("shared-bucket-object-created")
                         .description("S3 object-created events from the shared bucket.")
                         .eventPattern(serializeJson(
                             jsonObject(
                                 jsonProperty("source", jsonArray("aws.s3")),
                                 jsonProperty("detail-type", jsonArray("Object Created")),
                                 jsonProperty("detail", jsonObject(
                                     jsonProperty("bucket", jsonObject(
                                         jsonProperty("name", jsonArray(shared.bucket()))
                                     ))
                                 ))
                             )))
                         .build());
         
                 
         }
             }
         }
         
         
        ### Read Existing Notifications and Re-emit Them The S3 [`PutBucketNotificationConfiguration`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotificationConfiguration.html) API replaces the entire notification configuration on every call, so a single `aws.s3.BucketNotification` resource owns the bucket. To preserve notifications already on the bucket — or to mirror one bucket's configuration onto another — read them with this data source and pass them through `dynamic` blocks. The data source's output shape matches the resource's input shape, so each block forwards directly. To add a new rule alongside existing ones, exclude IDs your resource owns from the iteration to avoid duplicates, and declare those rules separately:
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.BucketNotification;
         import com.pulumi.aws.s3.BucketNotificationArgs;
         import com.pulumi.aws.s3.inputs.BucketNotificationLambdaFunctionArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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) {
                 var example = new BucketNotification("example", BucketNotificationArgs.builder()
                     .lambdaFunctions(BucketNotificationLambdaFunctionArgs.builder()
                         .id("my-team-rule")
                         .lambdaFunctionArn(mine.arn())
                         .events("s3:ObjectRemoved:*")
                         .build())
                     .bucket(exampleAwsS3Bucket.id())
                     .build());
         
             }
         }
         
         
        > **Note:** The S3 API has no per-rule mutation primitive and no compare-and-swap, so two `pulumi up` runs from different state files writing to the same bucket can still race. For independent consumers of one bucket, EventBridge is generally a better fit.
      • getBucketNotificationPlain

        public static java.util.concurrent.CompletableFuture<GetBucketNotificationResult> getBucketNotificationPlain​(GetBucketNotificationPlainArgs args)
        Provides details about the notification configuration of an S3 bucket. Useful when `aws.s3.BucketNotification` is the right resource but the bucket already has notifications you do not manage. Read the existing notifications with this data source and re-emit them — alongside your own — in a single `aws.s3.BucketNotification` resource. See issue #501 for the longer story. For sharing a bucket across many independent consumers, enabling EventBridge on the resource is usually a better fit. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketNotificationArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBucketNotification(GetBucketNotificationArgs.builder()
                     .bucket("example-bucket")
                     .build());
         
             }
         }
         
         
        ### Conditionally Subscribe via EventBridge When the bucket forwards events to Amazon EventBridge, independent consumers can subscribe with their own `aws.cloudwatch.EventRule` resources. Use this data source to subscribe only when EventBridge is in fact enabled on the bucket.
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketNotificationArgs;
         import com.pulumi.aws.cloudwatch.EventRule;
         import com.pulumi.aws.cloudwatch.EventRuleArgs;
         import static com.pulumi.codegen.internal.Serialization.*;
         import com.pulumi.codegen.internal.KeyedValue;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 shared = S3Functions.getBucketNotification(GetBucketNotificationArgs.builder()
                     .bucket("shared-bucket")
                     .build());
         
                 for (var i = 0; i < shared.eventbridge() ? 1 : 0; i++) {
                     new EventRule("s3ObjectCreated-" + i, EventRuleArgs.builder()
                         .name("shared-bucket-object-created")
                         .description("S3 object-created events from the shared bucket.")
                         .eventPattern(serializeJson(
                             jsonObject(
                                 jsonProperty("source", jsonArray("aws.s3")),
                                 jsonProperty("detail-type", jsonArray("Object Created")),
                                 jsonProperty("detail", jsonObject(
                                     jsonProperty("bucket", jsonObject(
                                         jsonProperty("name", jsonArray(shared.bucket()))
                                     ))
                                 ))
                             )))
                         .build());
         
                 
         }
             }
         }
         
         
        ### Read Existing Notifications and Re-emit Them The S3 [`PutBucketNotificationConfiguration`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotificationConfiguration.html) API replaces the entire notification configuration on every call, so a single `aws.s3.BucketNotification` resource owns the bucket. To preserve notifications already on the bucket — or to mirror one bucket's configuration onto another — read them with this data source and pass them through `dynamic` blocks. The data source's output shape matches the resource's input shape, so each block forwards directly. To add a new rule alongside existing ones, exclude IDs your resource owns from the iteration to avoid duplicates, and declare those rules separately:
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.BucketNotification;
         import com.pulumi.aws.s3.BucketNotificationArgs;
         import com.pulumi.aws.s3.inputs.BucketNotificationLambdaFunctionArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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) {
                 var example = new BucketNotification("example", BucketNotificationArgs.builder()
                     .lambdaFunctions(BucketNotificationLambdaFunctionArgs.builder()
                         .id("my-team-rule")
                         .lambdaFunctionArn(mine.arn())
                         .events("s3:ObjectRemoved:*")
                         .build())
                     .bucket(exampleAwsS3Bucket.id())
                     .build());
         
             }
         }
         
         
        > **Note:** The S3 API has no per-rule mutation primitive and no compare-and-swap, so two `pulumi up` runs from different state files writing to the same bucket can still race. For independent consumers of one bucket, EventBridge is generally a better fit.
      • getBucketNotification

        public static com.pulumi.core.Output<GetBucketNotificationResult> getBucketNotification​(GetBucketNotificationArgs args,
                                                                                                com.pulumi.deployment.InvokeOptions options)
        Provides details about the notification configuration of an S3 bucket. Useful when `aws.s3.BucketNotification` is the right resource but the bucket already has notifications you do not manage. Read the existing notifications with this data source and re-emit them — alongside your own — in a single `aws.s3.BucketNotification` resource. See issue #501 for the longer story. For sharing a bucket across many independent consumers, enabling EventBridge on the resource is usually a better fit. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketNotificationArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBucketNotification(GetBucketNotificationArgs.builder()
                     .bucket("example-bucket")
                     .build());
         
             }
         }
         
         
        ### Conditionally Subscribe via EventBridge When the bucket forwards events to Amazon EventBridge, independent consumers can subscribe with their own `aws.cloudwatch.EventRule` resources. Use this data source to subscribe only when EventBridge is in fact enabled on the bucket.
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketNotificationArgs;
         import com.pulumi.aws.cloudwatch.EventRule;
         import com.pulumi.aws.cloudwatch.EventRuleArgs;
         import static com.pulumi.codegen.internal.Serialization.*;
         import com.pulumi.codegen.internal.KeyedValue;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 shared = S3Functions.getBucketNotification(GetBucketNotificationArgs.builder()
                     .bucket("shared-bucket")
                     .build());
         
                 for (var i = 0; i < shared.eventbridge() ? 1 : 0; i++) {
                     new EventRule("s3ObjectCreated-" + i, EventRuleArgs.builder()
                         .name("shared-bucket-object-created")
                         .description("S3 object-created events from the shared bucket.")
                         .eventPattern(serializeJson(
                             jsonObject(
                                 jsonProperty("source", jsonArray("aws.s3")),
                                 jsonProperty("detail-type", jsonArray("Object Created")),
                                 jsonProperty("detail", jsonObject(
                                     jsonProperty("bucket", jsonObject(
                                         jsonProperty("name", jsonArray(shared.bucket()))
                                     ))
                                 ))
                             )))
                         .build());
         
                 
         }
             }
         }
         
         
        ### Read Existing Notifications and Re-emit Them The S3 [`PutBucketNotificationConfiguration`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotificationConfiguration.html) API replaces the entire notification configuration on every call, so a single `aws.s3.BucketNotification` resource owns the bucket. To preserve notifications already on the bucket — or to mirror one bucket's configuration onto another — read them with this data source and pass them through `dynamic` blocks. The data source's output shape matches the resource's input shape, so each block forwards directly. To add a new rule alongside existing ones, exclude IDs your resource owns from the iteration to avoid duplicates, and declare those rules separately:
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.BucketNotification;
         import com.pulumi.aws.s3.BucketNotificationArgs;
         import com.pulumi.aws.s3.inputs.BucketNotificationLambdaFunctionArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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) {
                 var example = new BucketNotification("example", BucketNotificationArgs.builder()
                     .lambdaFunctions(BucketNotificationLambdaFunctionArgs.builder()
                         .id("my-team-rule")
                         .lambdaFunctionArn(mine.arn())
                         .events("s3:ObjectRemoved:*")
                         .build())
                     .bucket(exampleAwsS3Bucket.id())
                     .build());
         
             }
         }
         
         
        > **Note:** The S3 API has no per-rule mutation primitive and no compare-and-swap, so two `pulumi up` runs from different state files writing to the same bucket can still race. For independent consumers of one bucket, EventBridge is generally a better fit.
      • getBucketNotification

        public static com.pulumi.core.Output<GetBucketNotificationResult> getBucketNotification​(GetBucketNotificationArgs args,
                                                                                                com.pulumi.deployment.InvokeOutputOptions options)
        Provides details about the notification configuration of an S3 bucket. Useful when `aws.s3.BucketNotification` is the right resource but the bucket already has notifications you do not manage. Read the existing notifications with this data source and re-emit them — alongside your own — in a single `aws.s3.BucketNotification` resource. See issue #501 for the longer story. For sharing a bucket across many independent consumers, enabling EventBridge on the resource is usually a better fit. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketNotificationArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBucketNotification(GetBucketNotificationArgs.builder()
                     .bucket("example-bucket")
                     .build());
         
             }
         }
         
         
        ### Conditionally Subscribe via EventBridge When the bucket forwards events to Amazon EventBridge, independent consumers can subscribe with their own `aws.cloudwatch.EventRule` resources. Use this data source to subscribe only when EventBridge is in fact enabled on the bucket.
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketNotificationArgs;
         import com.pulumi.aws.cloudwatch.EventRule;
         import com.pulumi.aws.cloudwatch.EventRuleArgs;
         import static com.pulumi.codegen.internal.Serialization.*;
         import com.pulumi.codegen.internal.KeyedValue;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 shared = S3Functions.getBucketNotification(GetBucketNotificationArgs.builder()
                     .bucket("shared-bucket")
                     .build());
         
                 for (var i = 0; i < shared.eventbridge() ? 1 : 0; i++) {
                     new EventRule("s3ObjectCreated-" + i, EventRuleArgs.builder()
                         .name("shared-bucket-object-created")
                         .description("S3 object-created events from the shared bucket.")
                         .eventPattern(serializeJson(
                             jsonObject(
                                 jsonProperty("source", jsonArray("aws.s3")),
                                 jsonProperty("detail-type", jsonArray("Object Created")),
                                 jsonProperty("detail", jsonObject(
                                     jsonProperty("bucket", jsonObject(
                                         jsonProperty("name", jsonArray(shared.bucket()))
                                     ))
                                 ))
                             )))
                         .build());
         
                 
         }
             }
         }
         
         
        ### Read Existing Notifications and Re-emit Them The S3 [`PutBucketNotificationConfiguration`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotificationConfiguration.html) API replaces the entire notification configuration on every call, so a single `aws.s3.BucketNotification` resource owns the bucket. To preserve notifications already on the bucket — or to mirror one bucket's configuration onto another — read them with this data source and pass them through `dynamic` blocks. The data source's output shape matches the resource's input shape, so each block forwards directly. To add a new rule alongside existing ones, exclude IDs your resource owns from the iteration to avoid duplicates, and declare those rules separately:
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.BucketNotification;
         import com.pulumi.aws.s3.BucketNotificationArgs;
         import com.pulumi.aws.s3.inputs.BucketNotificationLambdaFunctionArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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) {
                 var example = new BucketNotification("example", BucketNotificationArgs.builder()
                     .lambdaFunctions(BucketNotificationLambdaFunctionArgs.builder()
                         .id("my-team-rule")
                         .lambdaFunctionArn(mine.arn())
                         .events("s3:ObjectRemoved:*")
                         .build())
                     .bucket(exampleAwsS3Bucket.id())
                     .build());
         
             }
         }
         
         
        > **Note:** The S3 API has no per-rule mutation primitive and no compare-and-swap, so two `pulumi up` runs from different state files writing to the same bucket can still race. For independent consumers of one bucket, EventBridge is generally a better fit.
      • getBucketNotificationPlain

        public static java.util.concurrent.CompletableFuture<GetBucketNotificationResult> getBucketNotificationPlain​(GetBucketNotificationPlainArgs args,
                                                                                                                     com.pulumi.deployment.InvokeOptions options)
        Provides details about the notification configuration of an S3 bucket. Useful when `aws.s3.BucketNotification` is the right resource but the bucket already has notifications you do not manage. Read the existing notifications with this data source and re-emit them — alongside your own — in a single `aws.s3.BucketNotification` resource. See issue #501 for the longer story. For sharing a bucket across many independent consumers, enabling EventBridge on the resource is usually a better fit. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketNotificationArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBucketNotification(GetBucketNotificationArgs.builder()
                     .bucket("example-bucket")
                     .build());
         
             }
         }
         
         
        ### Conditionally Subscribe via EventBridge When the bucket forwards events to Amazon EventBridge, independent consumers can subscribe with their own `aws.cloudwatch.EventRule` resources. Use this data source to subscribe only when EventBridge is in fact enabled on the bucket.
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketNotificationArgs;
         import com.pulumi.aws.cloudwatch.EventRule;
         import com.pulumi.aws.cloudwatch.EventRuleArgs;
         import static com.pulumi.codegen.internal.Serialization.*;
         import com.pulumi.codegen.internal.KeyedValue;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 shared = S3Functions.getBucketNotification(GetBucketNotificationArgs.builder()
                     .bucket("shared-bucket")
                     .build());
         
                 for (var i = 0; i < shared.eventbridge() ? 1 : 0; i++) {
                     new EventRule("s3ObjectCreated-" + i, EventRuleArgs.builder()
                         .name("shared-bucket-object-created")
                         .description("S3 object-created events from the shared bucket.")
                         .eventPattern(serializeJson(
                             jsonObject(
                                 jsonProperty("source", jsonArray("aws.s3")),
                                 jsonProperty("detail-type", jsonArray("Object Created")),
                                 jsonProperty("detail", jsonObject(
                                     jsonProperty("bucket", jsonObject(
                                         jsonProperty("name", jsonArray(shared.bucket()))
                                     ))
                                 ))
                             )))
                         .build());
         
                 
         }
             }
         }
         
         
        ### Read Existing Notifications and Re-emit Them The S3 [`PutBucketNotificationConfiguration`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotificationConfiguration.html) API replaces the entire notification configuration on every call, so a single `aws.s3.BucketNotification` resource owns the bucket. To preserve notifications already on the bucket — or to mirror one bucket's configuration onto another — read them with this data source and pass them through `dynamic` blocks. The data source's output shape matches the resource's input shape, so each block forwards directly. To add a new rule alongside existing ones, exclude IDs your resource owns from the iteration to avoid duplicates, and declare those rules separately:
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.BucketNotification;
         import com.pulumi.aws.s3.BucketNotificationArgs;
         import com.pulumi.aws.s3.inputs.BucketNotificationLambdaFunctionArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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) {
                 var example = new BucketNotification("example", BucketNotificationArgs.builder()
                     .lambdaFunctions(BucketNotificationLambdaFunctionArgs.builder()
                         .id("my-team-rule")
                         .lambdaFunctionArn(mine.arn())
                         .events("s3:ObjectRemoved:*")
                         .build())
                     .bucket(exampleAwsS3Bucket.id())
                     .build());
         
             }
         }
         
         
        > **Note:** The S3 API has no per-rule mutation primitive and no compare-and-swap, so two `pulumi up` runs from different state files writing to the same bucket can still race. For independent consumers of one bucket, EventBridge is generally a better fit.
      • getBucketObject

        public static com.pulumi.core.Output<GetBucketObjectResult> getBucketObject​(GetBucketObjectArgs args)
        > **NOTE:** The `aws.s3.BucketObject` data source is DEPRECATED and will be removed in a future version! Use `aws.s3.BucketObjectv2` instead, where new features and fixes will be added. The S3 object data source allows access to the metadata and _optionally_ (see below) content of an object stored inside S3 bucket. > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable `Content-Type`: * `text/*` * `application/json` * `application/ld+json` * `application/x-httpd-php` * `application/xhtml+xml` * `application/x-csh` * `application/x-sh` * `application/xml` * `application/atom+xml` * `application/x-sql` This is to prevent printing unsafe characters and potentially downloading large amount of data which would be thrown away in favor of metadata. ## Example Usage The following example retrieves a text object (which must have a `Content-Type` value starting with `text/`) and uses it as the `userData` for an EC2 instance:
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketObjectArgs;
         import com.pulumi.aws.ec2.Instance;
         import com.pulumi.aws.ec2.InstanceArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 bootstrapScript = S3Functions.getBucketObject(GetBucketObjectArgs.builder()
                     .bucket("ourcorp-deploy-config")
                     .key("ec2-bootstrap-script.sh")
                     .build());
         
                 var example = new Instance("example", InstanceArgs.builder()
                     .instanceType("t2.micro")
                     .ami("ami-2757f631")
                     .userData(bootstrapScript.body())
                     .build());
         
             }
         }
         
         
        The following, more-complex example retrieves only the metadata for a zip file stored in S3, which is then used to pass the most recent `versionId` to AWS Lambda for use as a function implementation. More information about Lambda functions is available in the documentation for `aws.lambda.Function`.
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketObjectArgs;
         import com.pulumi.aws.lambda.Function;
         import com.pulumi.aws.lambda.FunctionArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 lambda = S3Functions.getBucketObject(GetBucketObjectArgs.builder()
                     .bucket("ourcorp-lambda-functions")
                     .key("hello-world.zip")
                     .build());
         
                 var testLambda = new Function("testLambda", FunctionArgs.builder()
                     .s3Bucket(lambda.id())
                     .s3Key(lambda.key())
                     .s3ObjectVersion(lambda.versionId())
                     .name("lambda_function_name")
                     .role(iamForLambda.arn())
                     .handler("exports.test")
                     .build());
         
             }
         }
         
         
      • getBucketObjectPlain

        public static java.util.concurrent.CompletableFuture<GetBucketObjectResult> getBucketObjectPlain​(GetBucketObjectPlainArgs args)
        > **NOTE:** The `aws.s3.BucketObject` data source is DEPRECATED and will be removed in a future version! Use `aws.s3.BucketObjectv2` instead, where new features and fixes will be added. The S3 object data source allows access to the metadata and _optionally_ (see below) content of an object stored inside S3 bucket. > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable `Content-Type`: * `text/*` * `application/json` * `application/ld+json` * `application/x-httpd-php` * `application/xhtml+xml` * `application/x-csh` * `application/x-sh` * `application/xml` * `application/atom+xml` * `application/x-sql` This is to prevent printing unsafe characters and potentially downloading large amount of data which would be thrown away in favor of metadata. ## Example Usage The following example retrieves a text object (which must have a `Content-Type` value starting with `text/`) and uses it as the `userData` for an EC2 instance:
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketObjectArgs;
         import com.pulumi.aws.ec2.Instance;
         import com.pulumi.aws.ec2.InstanceArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 bootstrapScript = S3Functions.getBucketObject(GetBucketObjectArgs.builder()
                     .bucket("ourcorp-deploy-config")
                     .key("ec2-bootstrap-script.sh")
                     .build());
         
                 var example = new Instance("example", InstanceArgs.builder()
                     .instanceType("t2.micro")
                     .ami("ami-2757f631")
                     .userData(bootstrapScript.body())
                     .build());
         
             }
         }
         
         
        The following, more-complex example retrieves only the metadata for a zip file stored in S3, which is then used to pass the most recent `versionId` to AWS Lambda for use as a function implementation. More information about Lambda functions is available in the documentation for `aws.lambda.Function`.
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketObjectArgs;
         import com.pulumi.aws.lambda.Function;
         import com.pulumi.aws.lambda.FunctionArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 lambda = S3Functions.getBucketObject(GetBucketObjectArgs.builder()
                     .bucket("ourcorp-lambda-functions")
                     .key("hello-world.zip")
                     .build());
         
                 var testLambda = new Function("testLambda", FunctionArgs.builder()
                     .s3Bucket(lambda.id())
                     .s3Key(lambda.key())
                     .s3ObjectVersion(lambda.versionId())
                     .name("lambda_function_name")
                     .role(iamForLambda.arn())
                     .handler("exports.test")
                     .build());
         
             }
         }
         
         
      • getBucketObject

        public static com.pulumi.core.Output<GetBucketObjectResult> getBucketObject​(GetBucketObjectArgs args,
                                                                                    com.pulumi.deployment.InvokeOptions options)
        > **NOTE:** The `aws.s3.BucketObject` data source is DEPRECATED and will be removed in a future version! Use `aws.s3.BucketObjectv2` instead, where new features and fixes will be added. The S3 object data source allows access to the metadata and _optionally_ (see below) content of an object stored inside S3 bucket. > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable `Content-Type`: * `text/*` * `application/json` * `application/ld+json` * `application/x-httpd-php` * `application/xhtml+xml` * `application/x-csh` * `application/x-sh` * `application/xml` * `application/atom+xml` * `application/x-sql` This is to prevent printing unsafe characters and potentially downloading large amount of data which would be thrown away in favor of metadata. ## Example Usage The following example retrieves a text object (which must have a `Content-Type` value starting with `text/`) and uses it as the `userData` for an EC2 instance:
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketObjectArgs;
         import com.pulumi.aws.ec2.Instance;
         import com.pulumi.aws.ec2.InstanceArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 bootstrapScript = S3Functions.getBucketObject(GetBucketObjectArgs.builder()
                     .bucket("ourcorp-deploy-config")
                     .key("ec2-bootstrap-script.sh")
                     .build());
         
                 var example = new Instance("example", InstanceArgs.builder()
                     .instanceType("t2.micro")
                     .ami("ami-2757f631")
                     .userData(bootstrapScript.body())
                     .build());
         
             }
         }
         
         
        The following, more-complex example retrieves only the metadata for a zip file stored in S3, which is then used to pass the most recent `versionId` to AWS Lambda for use as a function implementation. More information about Lambda functions is available in the documentation for `aws.lambda.Function`.
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketObjectArgs;
         import com.pulumi.aws.lambda.Function;
         import com.pulumi.aws.lambda.FunctionArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 lambda = S3Functions.getBucketObject(GetBucketObjectArgs.builder()
                     .bucket("ourcorp-lambda-functions")
                     .key("hello-world.zip")
                     .build());
         
                 var testLambda = new Function("testLambda", FunctionArgs.builder()
                     .s3Bucket(lambda.id())
                     .s3Key(lambda.key())
                     .s3ObjectVersion(lambda.versionId())
                     .name("lambda_function_name")
                     .role(iamForLambda.arn())
                     .handler("exports.test")
                     .build());
         
             }
         }
         
         
      • getBucketObject

        public static com.pulumi.core.Output<GetBucketObjectResult> getBucketObject​(GetBucketObjectArgs args,
                                                                                    com.pulumi.deployment.InvokeOutputOptions options)
        > **NOTE:** The `aws.s3.BucketObject` data source is DEPRECATED and will be removed in a future version! Use `aws.s3.BucketObjectv2` instead, where new features and fixes will be added. The S3 object data source allows access to the metadata and _optionally_ (see below) content of an object stored inside S3 bucket. > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable `Content-Type`: * `text/*` * `application/json` * `application/ld+json` * `application/x-httpd-php` * `application/xhtml+xml` * `application/x-csh` * `application/x-sh` * `application/xml` * `application/atom+xml` * `application/x-sql` This is to prevent printing unsafe characters and potentially downloading large amount of data which would be thrown away in favor of metadata. ## Example Usage The following example retrieves a text object (which must have a `Content-Type` value starting with `text/`) and uses it as the `userData` for an EC2 instance:
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketObjectArgs;
         import com.pulumi.aws.ec2.Instance;
         import com.pulumi.aws.ec2.InstanceArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 bootstrapScript = S3Functions.getBucketObject(GetBucketObjectArgs.builder()
                     .bucket("ourcorp-deploy-config")
                     .key("ec2-bootstrap-script.sh")
                     .build());
         
                 var example = new Instance("example", InstanceArgs.builder()
                     .instanceType("t2.micro")
                     .ami("ami-2757f631")
                     .userData(bootstrapScript.body())
                     .build());
         
             }
         }
         
         
        The following, more-complex example retrieves only the metadata for a zip file stored in S3, which is then used to pass the most recent `versionId` to AWS Lambda for use as a function implementation. More information about Lambda functions is available in the documentation for `aws.lambda.Function`.
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketObjectArgs;
         import com.pulumi.aws.lambda.Function;
         import com.pulumi.aws.lambda.FunctionArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 lambda = S3Functions.getBucketObject(GetBucketObjectArgs.builder()
                     .bucket("ourcorp-lambda-functions")
                     .key("hello-world.zip")
                     .build());
         
                 var testLambda = new Function("testLambda", FunctionArgs.builder()
                     .s3Bucket(lambda.id())
                     .s3Key(lambda.key())
                     .s3ObjectVersion(lambda.versionId())
                     .name("lambda_function_name")
                     .role(iamForLambda.arn())
                     .handler("exports.test")
                     .build());
         
             }
         }
         
         
      • getBucketObjectPlain

        public static java.util.concurrent.CompletableFuture<GetBucketObjectResult> getBucketObjectPlain​(GetBucketObjectPlainArgs args,
                                                                                                         com.pulumi.deployment.InvokeOptions options)
        > **NOTE:** The `aws.s3.BucketObject` data source is DEPRECATED and will be removed in a future version! Use `aws.s3.BucketObjectv2` instead, where new features and fixes will be added. The S3 object data source allows access to the metadata and _optionally_ (see below) content of an object stored inside S3 bucket. > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable `Content-Type`: * `text/*` * `application/json` * `application/ld+json` * `application/x-httpd-php` * `application/xhtml+xml` * `application/x-csh` * `application/x-sh` * `application/xml` * `application/atom+xml` * `application/x-sql` This is to prevent printing unsafe characters and potentially downloading large amount of data which would be thrown away in favor of metadata. ## Example Usage The following example retrieves a text object (which must have a `Content-Type` value starting with `text/`) and uses it as the `userData` for an EC2 instance:
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketObjectArgs;
         import com.pulumi.aws.ec2.Instance;
         import com.pulumi.aws.ec2.InstanceArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 bootstrapScript = S3Functions.getBucketObject(GetBucketObjectArgs.builder()
                     .bucket("ourcorp-deploy-config")
                     .key("ec2-bootstrap-script.sh")
                     .build());
         
                 var example = new Instance("example", InstanceArgs.builder()
                     .instanceType("t2.micro")
                     .ami("ami-2757f631")
                     .userData(bootstrapScript.body())
                     .build());
         
             }
         }
         
         
        The following, more-complex example retrieves only the metadata for a zip file stored in S3, which is then used to pass the most recent `versionId` to AWS Lambda for use as a function implementation. More information about Lambda functions is available in the documentation for `aws.lambda.Function`.
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketObjectArgs;
         import com.pulumi.aws.lambda.Function;
         import com.pulumi.aws.lambda.FunctionArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 lambda = S3Functions.getBucketObject(GetBucketObjectArgs.builder()
                     .bucket("ourcorp-lambda-functions")
                     .key("hello-world.zip")
                     .build());
         
                 var testLambda = new Function("testLambda", FunctionArgs.builder()
                     .s3Bucket(lambda.id())
                     .s3Key(lambda.key())
                     .s3ObjectVersion(lambda.versionId())
                     .name("lambda_function_name")
                     .role(iamForLambda.arn())
                     .handler("exports.test")
                     .build());
         
             }
         }
         
         
      • getBucketObjectLockConfiguration

        public static com.pulumi.core.Output<GetBucketObjectLockConfigurationResult> getBucketObjectLockConfiguration​(GetBucketObjectLockConfigurationArgs args)
        Provides details about an AWS S3 (Simple Storage) Bucket Object Lock Configuration. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketObjectLockConfigurationArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBucketObjectLockConfiguration(GetBucketObjectLockConfigurationArgs.builder()
                     .bucket("example-bucket")
                     .build());
         
             }
         }
         
         
      • getBucketObjectLockConfigurationPlain

        public static java.util.concurrent.CompletableFuture<GetBucketObjectLockConfigurationResult> getBucketObjectLockConfigurationPlain​(GetBucketObjectLockConfigurationPlainArgs args)
        Provides details about an AWS S3 (Simple Storage) Bucket Object Lock Configuration. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketObjectLockConfigurationArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBucketObjectLockConfiguration(GetBucketObjectLockConfigurationArgs.builder()
                     .bucket("example-bucket")
                     .build());
         
             }
         }
         
         
      • getBucketObjectLockConfiguration

        public static com.pulumi.core.Output<GetBucketObjectLockConfigurationResult> getBucketObjectLockConfiguration​(GetBucketObjectLockConfigurationArgs args,
                                                                                                                      com.pulumi.deployment.InvokeOptions options)
        Provides details about an AWS S3 (Simple Storage) Bucket Object Lock Configuration. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketObjectLockConfigurationArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBucketObjectLockConfiguration(GetBucketObjectLockConfigurationArgs.builder()
                     .bucket("example-bucket")
                     .build());
         
             }
         }
         
         
      • getBucketObjectLockConfiguration

        public static com.pulumi.core.Output<GetBucketObjectLockConfigurationResult> getBucketObjectLockConfiguration​(GetBucketObjectLockConfigurationArgs args,
                                                                                                                      com.pulumi.deployment.InvokeOutputOptions options)
        Provides details about an AWS S3 (Simple Storage) Bucket Object Lock Configuration. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketObjectLockConfigurationArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBucketObjectLockConfiguration(GetBucketObjectLockConfigurationArgs.builder()
                     .bucket("example-bucket")
                     .build());
         
             }
         }
         
         
      • getBucketObjectLockConfigurationPlain

        public static java.util.concurrent.CompletableFuture<GetBucketObjectLockConfigurationResult> getBucketObjectLockConfigurationPlain​(GetBucketObjectLockConfigurationPlainArgs args,
                                                                                                                                           com.pulumi.deployment.InvokeOptions options)
        Provides details about an AWS S3 (Simple Storage) Bucket Object Lock Configuration. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketObjectLockConfigurationArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBucketObjectLockConfiguration(GetBucketObjectLockConfigurationArgs.builder()
                     .bucket("example-bucket")
                     .build());
         
             }
         }
         
         
      • getBucketObjects

        public static com.pulumi.core.Output<GetBucketObjectsResult> getBucketObjects​(GetBucketObjectsArgs args)
        > **NOTE:** The `aws.s3.getBucketObjects` data source is DEPRECATED and will be removed in a future version! Use `aws.s3.getObjects` instead, where new features and fixes will be added. > **NOTE on `maxKeys`:** Retrieving very large numbers of keys can adversely affect this provider's performance. The objects data source returns keys (i.e., file names) and other metadata about objects in an S3 bucket.
      • getBucketObjectsPlain

        public static java.util.concurrent.CompletableFuture<GetBucketObjectsResult> getBucketObjectsPlain​(GetBucketObjectsPlainArgs args)
        > **NOTE:** The `aws.s3.getBucketObjects` data source is DEPRECATED and will be removed in a future version! Use `aws.s3.getObjects` instead, where new features and fixes will be added. > **NOTE on `maxKeys`:** Retrieving very large numbers of keys can adversely affect this provider's performance. The objects data source returns keys (i.e., file names) and other metadata about objects in an S3 bucket.
      • getBucketObjects

        public static com.pulumi.core.Output<GetBucketObjectsResult> getBucketObjects​(GetBucketObjectsArgs args,
                                                                                      com.pulumi.deployment.InvokeOptions options)
        > **NOTE:** The `aws.s3.getBucketObjects` data source is DEPRECATED and will be removed in a future version! Use `aws.s3.getObjects` instead, where new features and fixes will be added. > **NOTE on `maxKeys`:** Retrieving very large numbers of keys can adversely affect this provider's performance. The objects data source returns keys (i.e., file names) and other metadata about objects in an S3 bucket.
      • getBucketObjects

        public static com.pulumi.core.Output<GetBucketObjectsResult> getBucketObjects​(GetBucketObjectsArgs args,
                                                                                      com.pulumi.deployment.InvokeOutputOptions options)
        > **NOTE:** The `aws.s3.getBucketObjects` data source is DEPRECATED and will be removed in a future version! Use `aws.s3.getObjects` instead, where new features and fixes will be added. > **NOTE on `maxKeys`:** Retrieving very large numbers of keys can adversely affect this provider's performance. The objects data source returns keys (i.e., file names) and other metadata about objects in an S3 bucket.
      • getBucketObjectsPlain

        public static java.util.concurrent.CompletableFuture<GetBucketObjectsResult> getBucketObjectsPlain​(GetBucketObjectsPlainArgs args,
                                                                                                           com.pulumi.deployment.InvokeOptions options)
        > **NOTE:** The `aws.s3.getBucketObjects` data source is DEPRECATED and will be removed in a future version! Use `aws.s3.getObjects` instead, where new features and fixes will be added. > **NOTE on `maxKeys`:** Retrieving very large numbers of keys can adversely affect this provider's performance. The objects data source returns keys (i.e., file names) and other metadata about objects in an S3 bucket.
      • getBucketPolicy

        public static com.pulumi.core.Output<GetBucketPolicyResult> getBucketPolicy​(GetBucketPolicyArgs args)
        The bucket policy data source returns IAM policy of an S3 bucket. ## Example Usage The following example retrieves IAM policy of a specified S3 bucket.
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketPolicyArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBucketPolicy(GetBucketPolicyArgs.builder()
                     .bucket("example-bucket-name")
                     .build());
         
                 ctx.export("foo", example.policy());
             }
         }
         
         
      • getBucketPolicyPlain

        public static java.util.concurrent.CompletableFuture<GetBucketPolicyResult> getBucketPolicyPlain​(GetBucketPolicyPlainArgs args)
        The bucket policy data source returns IAM policy of an S3 bucket. ## Example Usage The following example retrieves IAM policy of a specified S3 bucket.
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketPolicyArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBucketPolicy(GetBucketPolicyArgs.builder()
                     .bucket("example-bucket-name")
                     .build());
         
                 ctx.export("foo", example.policy());
             }
         }
         
         
      • getBucketPolicy

        public static com.pulumi.core.Output<GetBucketPolicyResult> getBucketPolicy​(GetBucketPolicyArgs args,
                                                                                    com.pulumi.deployment.InvokeOptions options)
        The bucket policy data source returns IAM policy of an S3 bucket. ## Example Usage The following example retrieves IAM policy of a specified S3 bucket.
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketPolicyArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBucketPolicy(GetBucketPolicyArgs.builder()
                     .bucket("example-bucket-name")
                     .build());
         
                 ctx.export("foo", example.policy());
             }
         }
         
         
      • getBucketPolicy

        public static com.pulumi.core.Output<GetBucketPolicyResult> getBucketPolicy​(GetBucketPolicyArgs args,
                                                                                    com.pulumi.deployment.InvokeOutputOptions options)
        The bucket policy data source returns IAM policy of an S3 bucket. ## Example Usage The following example retrieves IAM policy of a specified S3 bucket.
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketPolicyArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBucketPolicy(GetBucketPolicyArgs.builder()
                     .bucket("example-bucket-name")
                     .build());
         
                 ctx.export("foo", example.policy());
             }
         }
         
         
      • getBucketPolicyPlain

        public static java.util.concurrent.CompletableFuture<GetBucketPolicyResult> getBucketPolicyPlain​(GetBucketPolicyPlainArgs args,
                                                                                                         com.pulumi.deployment.InvokeOptions options)
        The bucket policy data source returns IAM policy of an S3 bucket. ## Example Usage The following example retrieves IAM policy of a specified S3 bucket.
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketPolicyArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBucketPolicy(GetBucketPolicyArgs.builder()
                     .bucket("example-bucket-name")
                     .build());
         
                 ctx.export("foo", example.policy());
             }
         }
         
         
      • getBucketReplicationConfiguration

        public static com.pulumi.core.Output<GetBucketReplicationConfigurationResult> getBucketReplicationConfiguration​(GetBucketReplicationConfigurationArgs args)
        Data source for managing an AWS S3 (Simple Storage) Bucket Replication Configuration. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketReplicationConfigurationArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBucketReplicationConfiguration(GetBucketReplicationConfigurationArgs.builder()
                     .bucket("example-bucket")
                     .build());
         
             }
         }
         
         
      • getBucketReplicationConfigurationPlain

        public static java.util.concurrent.CompletableFuture<GetBucketReplicationConfigurationResult> getBucketReplicationConfigurationPlain​(GetBucketReplicationConfigurationPlainArgs args)
        Data source for managing an AWS S3 (Simple Storage) Bucket Replication Configuration. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketReplicationConfigurationArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBucketReplicationConfiguration(GetBucketReplicationConfigurationArgs.builder()
                     .bucket("example-bucket")
                     .build());
         
             }
         }
         
         
      • getBucketReplicationConfiguration

        public static com.pulumi.core.Output<GetBucketReplicationConfigurationResult> getBucketReplicationConfiguration​(GetBucketReplicationConfigurationArgs args,
                                                                                                                        com.pulumi.deployment.InvokeOptions options)
        Data source for managing an AWS S3 (Simple Storage) Bucket Replication Configuration. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketReplicationConfigurationArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBucketReplicationConfiguration(GetBucketReplicationConfigurationArgs.builder()
                     .bucket("example-bucket")
                     .build());
         
             }
         }
         
         
      • getBucketReplicationConfiguration

        public static com.pulumi.core.Output<GetBucketReplicationConfigurationResult> getBucketReplicationConfiguration​(GetBucketReplicationConfigurationArgs args,
                                                                                                                        com.pulumi.deployment.InvokeOutputOptions options)
        Data source for managing an AWS S3 (Simple Storage) Bucket Replication Configuration. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketReplicationConfigurationArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBucketReplicationConfiguration(GetBucketReplicationConfigurationArgs.builder()
                     .bucket("example-bucket")
                     .build());
         
             }
         }
         
         
      • getBucketReplicationConfigurationPlain

        public static java.util.concurrent.CompletableFuture<GetBucketReplicationConfigurationResult> getBucketReplicationConfigurationPlain​(GetBucketReplicationConfigurationPlainArgs args,
                                                                                                                                             com.pulumi.deployment.InvokeOptions options)
        Data source for managing an AWS S3 (Simple Storage) Bucket Replication Configuration. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketReplicationConfigurationArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBucketReplicationConfiguration(GetBucketReplicationConfigurationArgs.builder()
                     .bucket("example-bucket")
                     .build());
         
             }
         }
         
         
      • getBuckets

        public static com.pulumi.core.Output<GetBucketsResult> getBuckets()
        Provides details about AWS S3 (Simple Storage) buckets with optional filters. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBuckets(GetBucketsArgs.builder()
                     .build());
         
             }
         }
         
         
        ### Full Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBuckets(GetBucketsArgs.builder()
                     .bucketRegion("us-west-2")
                     .maxBuckets(3)
                     .prefix("tf-")
                     .build());
         
             }
         }
         
         
      • getBucketsPlain

        public static java.util.concurrent.CompletableFuture<GetBucketsResult> getBucketsPlain()
        Provides details about AWS S3 (Simple Storage) buckets with optional filters. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBuckets(GetBucketsArgs.builder()
                     .build());
         
             }
         }
         
         
        ### Full Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBuckets(GetBucketsArgs.builder()
                     .bucketRegion("us-west-2")
                     .maxBuckets(3)
                     .prefix("tf-")
                     .build());
         
             }
         }
         
         
      • getBuckets

        public static com.pulumi.core.Output<GetBucketsResult> getBuckets​(GetBucketsArgs args)
        Provides details about AWS S3 (Simple Storage) buckets with optional filters. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBuckets(GetBucketsArgs.builder()
                     .build());
         
             }
         }
         
         
        ### Full Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBuckets(GetBucketsArgs.builder()
                     .bucketRegion("us-west-2")
                     .maxBuckets(3)
                     .prefix("tf-")
                     .build());
         
             }
         }
         
         
      • getBucketsPlain

        public static java.util.concurrent.CompletableFuture<GetBucketsResult> getBucketsPlain​(GetBucketsPlainArgs args)
        Provides details about AWS S3 (Simple Storage) buckets with optional filters. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBuckets(GetBucketsArgs.builder()
                     .build());
         
             }
         }
         
         
        ### Full Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBuckets(GetBucketsArgs.builder()
                     .bucketRegion("us-west-2")
                     .maxBuckets(3)
                     .prefix("tf-")
                     .build());
         
             }
         }
         
         
      • getBuckets

        public static com.pulumi.core.Output<GetBucketsResult> getBuckets​(GetBucketsArgs args,
                                                                          com.pulumi.deployment.InvokeOptions options)
        Provides details about AWS S3 (Simple Storage) buckets with optional filters. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBuckets(GetBucketsArgs.builder()
                     .build());
         
             }
         }
         
         
        ### Full Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBuckets(GetBucketsArgs.builder()
                     .bucketRegion("us-west-2")
                     .maxBuckets(3)
                     .prefix("tf-")
                     .build());
         
             }
         }
         
         
      • getBuckets

        public static com.pulumi.core.Output<GetBucketsResult> getBuckets​(GetBucketsArgs args,
                                                                          com.pulumi.deployment.InvokeOutputOptions options)
        Provides details about AWS S3 (Simple Storage) buckets with optional filters. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBuckets(GetBucketsArgs.builder()
                     .build());
         
             }
         }
         
         
        ### Full Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBuckets(GetBucketsArgs.builder()
                     .bucketRegion("us-west-2")
                     .maxBuckets(3)
                     .prefix("tf-")
                     .build());
         
             }
         }
         
         
      • getBucketsPlain

        public static java.util.concurrent.CompletableFuture<GetBucketsResult> getBucketsPlain​(GetBucketsPlainArgs args,
                                                                                               com.pulumi.deployment.InvokeOptions options)
        Provides details about AWS S3 (Simple Storage) buckets with optional filters. ## Example Usage ### Basic Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBuckets(GetBucketsArgs.builder()
                     .build());
         
             }
         }
         
         
        ### Full Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getBuckets(GetBucketsArgs.builder()
                     .bucketRegion("us-west-2")
                     .maxBuckets(3)
                     .prefix("tf-")
                     .build());
         
             }
         }
         
         
      • getCanonicalUserId

        public static com.pulumi.core.Output<GetCanonicalUserIdResult> getCanonicalUserId()
        The Canonical User ID data source allows access to the [canonical user ID](http://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) for the effective account in which this provider is working. > **NOTE:** To use this data source, you must have the `s3:ListAllMyBuckets` permission. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 current = S3Functions.getCanonicalUserId(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);
         
                 ctx.export("canonicalUserId", current.id());
             }
         }
         
         
      • getCanonicalUserIdPlain

        public static java.util.concurrent.CompletableFuture<GetCanonicalUserIdResult> getCanonicalUserIdPlain()
        The Canonical User ID data source allows access to the [canonical user ID](http://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) for the effective account in which this provider is working. > **NOTE:** To use this data source, you must have the `s3:ListAllMyBuckets` permission. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 current = S3Functions.getCanonicalUserId(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);
         
                 ctx.export("canonicalUserId", current.id());
             }
         }
         
         
      • getCanonicalUserId

        public static com.pulumi.core.Output<GetCanonicalUserIdResult> getCanonicalUserId​(com.pulumi.resources.InvokeArgs args)
        The Canonical User ID data source allows access to the [canonical user ID](http://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) for the effective account in which this provider is working. > **NOTE:** To use this data source, you must have the `s3:ListAllMyBuckets` permission. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 current = S3Functions.getCanonicalUserId(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);
         
                 ctx.export("canonicalUserId", current.id());
             }
         }
         
         
      • getCanonicalUserIdPlain

        public static java.util.concurrent.CompletableFuture<GetCanonicalUserIdResult> getCanonicalUserIdPlain​(com.pulumi.resources.InvokeArgs args)
        The Canonical User ID data source allows access to the [canonical user ID](http://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) for the effective account in which this provider is working. > **NOTE:** To use this data source, you must have the `s3:ListAllMyBuckets` permission. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 current = S3Functions.getCanonicalUserId(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);
         
                 ctx.export("canonicalUserId", current.id());
             }
         }
         
         
      • getCanonicalUserId

        public static com.pulumi.core.Output<GetCanonicalUserIdResult> getCanonicalUserId​(com.pulumi.resources.InvokeArgs args,
                                                                                          com.pulumi.deployment.InvokeOptions options)
        The Canonical User ID data source allows access to the [canonical user ID](http://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) for the effective account in which this provider is working. > **NOTE:** To use this data source, you must have the `s3:ListAllMyBuckets` permission. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 current = S3Functions.getCanonicalUserId(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);
         
                 ctx.export("canonicalUserId", current.id());
             }
         }
         
         
      • getCanonicalUserId

        public static com.pulumi.core.Output<GetCanonicalUserIdResult> getCanonicalUserId​(com.pulumi.resources.InvokeArgs args,
                                                                                          com.pulumi.deployment.InvokeOutputOptions options)
        The Canonical User ID data source allows access to the [canonical user ID](http://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) for the effective account in which this provider is working. > **NOTE:** To use this data source, you must have the `s3:ListAllMyBuckets` permission. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 current = S3Functions.getCanonicalUserId(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);
         
                 ctx.export("canonicalUserId", current.id());
             }
         }
         
         
      • getCanonicalUserIdPlain

        public static java.util.concurrent.CompletableFuture<GetCanonicalUserIdResult> getCanonicalUserIdPlain​(com.pulumi.resources.InvokeArgs args,
                                                                                                               com.pulumi.deployment.InvokeOptions options)
        The Canonical User ID data source allows access to the [canonical user ID](http://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) for the effective account in which this provider is working. > **NOTE:** To use this data source, you must have the `s3:ListAllMyBuckets` permission. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 current = S3Functions.getCanonicalUserId(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);
         
                 ctx.export("canonicalUserId", current.id());
             }
         }
         
         
      • getDirectoryBuckets

        public static com.pulumi.core.Output<GetDirectoryBucketsResult> getDirectoryBuckets()
        Lists Amazon S3 Express directory buckets. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetDirectoryBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getDirectoryBuckets(GetDirectoryBucketsArgs.builder()
                     .build());
         
             }
         }
         
         
      • getDirectoryBucketsPlain

        public static java.util.concurrent.CompletableFuture<GetDirectoryBucketsResult> getDirectoryBucketsPlain()
        Lists Amazon S3 Express directory buckets. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetDirectoryBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getDirectoryBuckets(GetDirectoryBucketsArgs.builder()
                     .build());
         
             }
         }
         
         
      • getDirectoryBuckets

        public static com.pulumi.core.Output<GetDirectoryBucketsResult> getDirectoryBuckets​(GetDirectoryBucketsArgs args)
        Lists Amazon S3 Express directory buckets. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetDirectoryBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getDirectoryBuckets(GetDirectoryBucketsArgs.builder()
                     .build());
         
             }
         }
         
         
      • getDirectoryBucketsPlain

        public static java.util.concurrent.CompletableFuture<GetDirectoryBucketsResult> getDirectoryBucketsPlain​(GetDirectoryBucketsPlainArgs args)
        Lists Amazon S3 Express directory buckets. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetDirectoryBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getDirectoryBuckets(GetDirectoryBucketsArgs.builder()
                     .build());
         
             }
         }
         
         
      • getDirectoryBuckets

        public static com.pulumi.core.Output<GetDirectoryBucketsResult> getDirectoryBuckets​(GetDirectoryBucketsArgs args,
                                                                                            com.pulumi.deployment.InvokeOptions options)
        Lists Amazon S3 Express directory buckets. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetDirectoryBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getDirectoryBuckets(GetDirectoryBucketsArgs.builder()
                     .build());
         
             }
         }
         
         
      • getDirectoryBuckets

        public static com.pulumi.core.Output<GetDirectoryBucketsResult> getDirectoryBuckets​(GetDirectoryBucketsArgs args,
                                                                                            com.pulumi.deployment.InvokeOutputOptions options)
        Lists Amazon S3 Express directory buckets. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetDirectoryBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getDirectoryBuckets(GetDirectoryBucketsArgs.builder()
                     .build());
         
             }
         }
         
         
      • getDirectoryBucketsPlain

        public static java.util.concurrent.CompletableFuture<GetDirectoryBucketsResult> getDirectoryBucketsPlain​(GetDirectoryBucketsPlainArgs args,
                                                                                                                 com.pulumi.deployment.InvokeOptions options)
        Lists Amazon S3 Express directory buckets. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetDirectoryBucketsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getDirectoryBuckets(GetDirectoryBucketsArgs.builder()
                     .build());
         
             }
         }
         
         
      • getFilesAccessPoint

        public static com.pulumi.core.Output<GetFilesAccessPointResult> getFilesAccessPoint​(GetFilesAccessPointArgs args)
        Data source for managing an S3 Files Access Point. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesAccessPointArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesAccessPoint(GetFilesAccessPointArgs.builder()
                     .id("fsap-1234567890abcdef0")
                     .build());
         
             }
         }
         
         
      • getFilesAccessPointPlain

        public static java.util.concurrent.CompletableFuture<GetFilesAccessPointResult> getFilesAccessPointPlain​(GetFilesAccessPointPlainArgs args)
        Data source for managing an S3 Files Access Point. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesAccessPointArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesAccessPoint(GetFilesAccessPointArgs.builder()
                     .id("fsap-1234567890abcdef0")
                     .build());
         
             }
         }
         
         
      • getFilesAccessPoint

        public static com.pulumi.core.Output<GetFilesAccessPointResult> getFilesAccessPoint​(GetFilesAccessPointArgs args,
                                                                                            com.pulumi.deployment.InvokeOptions options)
        Data source for managing an S3 Files Access Point. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesAccessPointArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesAccessPoint(GetFilesAccessPointArgs.builder()
                     .id("fsap-1234567890abcdef0")
                     .build());
         
             }
         }
         
         
      • getFilesAccessPoint

        public static com.pulumi.core.Output<GetFilesAccessPointResult> getFilesAccessPoint​(GetFilesAccessPointArgs args,
                                                                                            com.pulumi.deployment.InvokeOutputOptions options)
        Data source for managing an S3 Files Access Point. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesAccessPointArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesAccessPoint(GetFilesAccessPointArgs.builder()
                     .id("fsap-1234567890abcdef0")
                     .build());
         
             }
         }
         
         
      • getFilesAccessPointPlain

        public static java.util.concurrent.CompletableFuture<GetFilesAccessPointResult> getFilesAccessPointPlain​(GetFilesAccessPointPlainArgs args,
                                                                                                                 com.pulumi.deployment.InvokeOptions options)
        Data source for managing an S3 Files Access Point. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesAccessPointArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesAccessPoint(GetFilesAccessPointArgs.builder()
                     .id("fsap-1234567890abcdef0")
                     .build());
         
             }
         }
         
         
      • getFilesFileSystem

        public static com.pulumi.core.Output<GetFilesFileSystemResult> getFilesFileSystem​(GetFilesFileSystemArgs args)
        Get information on an S3 Files File System. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesFileSystemArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesFileSystem(GetFilesFileSystemArgs.builder()
                     .id("fs-1234567890abcdef0")
                     .build());
         
             }
         }
         
         
      • getFilesFileSystemPlain

        public static java.util.concurrent.CompletableFuture<GetFilesFileSystemResult> getFilesFileSystemPlain​(GetFilesFileSystemPlainArgs args)
        Get information on an S3 Files File System. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesFileSystemArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesFileSystem(GetFilesFileSystemArgs.builder()
                     .id("fs-1234567890abcdef0")
                     .build());
         
             }
         }
         
         
      • getFilesFileSystem

        public static com.pulumi.core.Output<GetFilesFileSystemResult> getFilesFileSystem​(GetFilesFileSystemArgs args,
                                                                                          com.pulumi.deployment.InvokeOptions options)
        Get information on an S3 Files File System. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesFileSystemArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesFileSystem(GetFilesFileSystemArgs.builder()
                     .id("fs-1234567890abcdef0")
                     .build());
         
             }
         }
         
         
      • getFilesFileSystem

        public static com.pulumi.core.Output<GetFilesFileSystemResult> getFilesFileSystem​(GetFilesFileSystemArgs args,
                                                                                          com.pulumi.deployment.InvokeOutputOptions options)
        Get information on an S3 Files File System. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesFileSystemArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesFileSystem(GetFilesFileSystemArgs.builder()
                     .id("fs-1234567890abcdef0")
                     .build());
         
             }
         }
         
         
      • getFilesFileSystemPlain

        public static java.util.concurrent.CompletableFuture<GetFilesFileSystemResult> getFilesFileSystemPlain​(GetFilesFileSystemPlainArgs args,
                                                                                                               com.pulumi.deployment.InvokeOptions options)
        Get information on an S3 Files File System. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesFileSystemArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesFileSystem(GetFilesFileSystemArgs.builder()
                     .id("fs-1234567890abcdef0")
                     .build());
         
             }
         }
         
         
      • getFilesFileSystems

        public static com.pulumi.core.Output<GetFilesFileSystemsResult> getFilesFileSystems()
        Provides details about S3 Files File Systems. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesFileSystemsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesFileSystems(GetFilesFileSystemsArgs.builder()
                     .build());
         
             }
         }
         
         
      • getFilesFileSystemsPlain

        public static java.util.concurrent.CompletableFuture<GetFilesFileSystemsResult> getFilesFileSystemsPlain()
        Provides details about S3 Files File Systems. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesFileSystemsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesFileSystems(GetFilesFileSystemsArgs.builder()
                     .build());
         
             }
         }
         
         
      • getFilesFileSystems

        public static com.pulumi.core.Output<GetFilesFileSystemsResult> getFilesFileSystems​(GetFilesFileSystemsArgs args)
        Provides details about S3 Files File Systems. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesFileSystemsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesFileSystems(GetFilesFileSystemsArgs.builder()
                     .build());
         
             }
         }
         
         
      • getFilesFileSystemsPlain

        public static java.util.concurrent.CompletableFuture<GetFilesFileSystemsResult> getFilesFileSystemsPlain​(GetFilesFileSystemsPlainArgs args)
        Provides details about S3 Files File Systems. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesFileSystemsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesFileSystems(GetFilesFileSystemsArgs.builder()
                     .build());
         
             }
         }
         
         
      • getFilesFileSystems

        public static com.pulumi.core.Output<GetFilesFileSystemsResult> getFilesFileSystems​(GetFilesFileSystemsArgs args,
                                                                                            com.pulumi.deployment.InvokeOptions options)
        Provides details about S3 Files File Systems. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesFileSystemsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesFileSystems(GetFilesFileSystemsArgs.builder()
                     .build());
         
             }
         }
         
         
      • getFilesFileSystems

        public static com.pulumi.core.Output<GetFilesFileSystemsResult> getFilesFileSystems​(GetFilesFileSystemsArgs args,
                                                                                            com.pulumi.deployment.InvokeOutputOptions options)
        Provides details about S3 Files File Systems. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesFileSystemsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesFileSystems(GetFilesFileSystemsArgs.builder()
                     .build());
         
             }
         }
         
         
      • getFilesFileSystemsPlain

        public static java.util.concurrent.CompletableFuture<GetFilesFileSystemsResult> getFilesFileSystemsPlain​(GetFilesFileSystemsPlainArgs args,
                                                                                                                 com.pulumi.deployment.InvokeOptions options)
        Provides details about S3 Files File Systems. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesFileSystemsArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesFileSystems(GetFilesFileSystemsArgs.builder()
                     .build());
         
             }
         }
         
         
      • getFilesMountTarget

        public static com.pulumi.core.Output<GetFilesMountTargetResult> getFilesMountTarget​(GetFilesMountTargetArgs args)
        Provides details about an S3 Files Mount Target. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesMountTargetArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesMountTarget(GetFilesMountTargetArgs.builder()
                     .id("fsmt-1234567890abcdef0")
                     .build());
         
             }
         }
         
         
      • getFilesMountTargetPlain

        public static java.util.concurrent.CompletableFuture<GetFilesMountTargetResult> getFilesMountTargetPlain​(GetFilesMountTargetPlainArgs args)
        Provides details about an S3 Files Mount Target. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesMountTargetArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesMountTarget(GetFilesMountTargetArgs.builder()
                     .id("fsmt-1234567890abcdef0")
                     .build());
         
             }
         }
         
         
      • getFilesMountTarget

        public static com.pulumi.core.Output<GetFilesMountTargetResult> getFilesMountTarget​(GetFilesMountTargetArgs args,
                                                                                            com.pulumi.deployment.InvokeOptions options)
        Provides details about an S3 Files Mount Target. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesMountTargetArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesMountTarget(GetFilesMountTargetArgs.builder()
                     .id("fsmt-1234567890abcdef0")
                     .build());
         
             }
         }
         
         
      • getFilesMountTarget

        public static com.pulumi.core.Output<GetFilesMountTargetResult> getFilesMountTarget​(GetFilesMountTargetArgs args,
                                                                                            com.pulumi.deployment.InvokeOutputOptions options)
        Provides details about an S3 Files Mount Target. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesMountTargetArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesMountTarget(GetFilesMountTargetArgs.builder()
                     .id("fsmt-1234567890abcdef0")
                     .build());
         
             }
         }
         
         
      • getFilesMountTargetPlain

        public static java.util.concurrent.CompletableFuture<GetFilesMountTargetResult> getFilesMountTargetPlain​(GetFilesMountTargetPlainArgs args,
                                                                                                                 com.pulumi.deployment.InvokeOptions options)
        Provides details about an S3 Files Mount Target. ## Example Usage
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetFilesMountTargetArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 example = S3Functions.getFilesMountTarget(GetFilesMountTargetArgs.builder()
                     .id("fsmt-1234567890abcdef0")
                     .build());
         
             }
         }
         
         
      • getObject

        public static com.pulumi.core.Output<GetObjectResult> getObject​(GetObjectArgs args)
        The S3 object data source allows access to the metadata and _optionally_ (see below) content of an object stored inside S3 bucket. > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable `Content-Type`: * `text/*` * `application/json` * `application/ld+json` * `application/x-httpd-php` * `application/xhtml+xml` * `application/x-csh` * `application/x-sh` * `application/xml` * `application/atom+xml` * `application/x-sql` * `application/yaml` This is to prevent printing unsafe characters and potentially downloading large amount of data which would be thrown away in favor of metadata. ## Example Usage The following example retrieves a text object (which must have a `Content-Type` value starting with `text/`) and uses it as the `userData` for an EC2 instance:
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetObjectArgs;
         import com.pulumi.aws.ec2.Instance;
         import com.pulumi.aws.ec2.InstanceArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 bootstrapScript = S3Functions.getObject(GetObjectArgs.builder()
                     .bucket("ourcorp-deploy-config")
                     .key("ec2-bootstrap-script.sh")
                     .build());
         
                 var example = new Instance("example", InstanceArgs.builder()
                     .instanceType("t2.micro")
                     .ami("ami-2757f631")
                     .userData(bootstrapScript.body())
                     .build());
         
             }
         }
         
         
        The following, more-complex example retrieves only the metadata for a zip file stored in S3, which is then used to pass the most recent `versionId` to AWS Lambda for use as a function implementation. More information about Lambda functions is available in the documentation for `aws.lambda.Function`.
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetObjectArgs;
         import com.pulumi.aws.lambda.Function;
         import com.pulumi.aws.lambda.FunctionArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 lambda = S3Functions.getObject(GetObjectArgs.builder()
                     .bucket("ourcorp-lambda-functions")
                     .key("hello-world.zip")
                     .build());
         
                 var testLambda = new Function("testLambda", FunctionArgs.builder()
                     .s3Bucket(lambda.bucket())
                     .s3Key(lambda.key())
                     .s3ObjectVersion(lambda.versionId())
                     .name("lambda_function_name")
                     .role(iamForLambda.arn())
                     .handler("exports.test")
                     .build());
         
             }
         }
         
         
      • getObjectPlain

        public static java.util.concurrent.CompletableFuture<GetObjectResult> getObjectPlain​(GetObjectPlainArgs args)
        The S3 object data source allows access to the metadata and _optionally_ (see below) content of an object stored inside S3 bucket. > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable `Content-Type`: * `text/*` * `application/json` * `application/ld+json` * `application/x-httpd-php` * `application/xhtml+xml` * `application/x-csh` * `application/x-sh` * `application/xml` * `application/atom+xml` * `application/x-sql` * `application/yaml` This is to prevent printing unsafe characters and potentially downloading large amount of data which would be thrown away in favor of metadata. ## Example Usage The following example retrieves a text object (which must have a `Content-Type` value starting with `text/`) and uses it as the `userData` for an EC2 instance:
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetObjectArgs;
         import com.pulumi.aws.ec2.Instance;
         import com.pulumi.aws.ec2.InstanceArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 bootstrapScript = S3Functions.getObject(GetObjectArgs.builder()
                     .bucket("ourcorp-deploy-config")
                     .key("ec2-bootstrap-script.sh")
                     .build());
         
                 var example = new Instance("example", InstanceArgs.builder()
                     .instanceType("t2.micro")
                     .ami("ami-2757f631")
                     .userData(bootstrapScript.body())
                     .build());
         
             }
         }
         
         
        The following, more-complex example retrieves only the metadata for a zip file stored in S3, which is then used to pass the most recent `versionId` to AWS Lambda for use as a function implementation. More information about Lambda functions is available in the documentation for `aws.lambda.Function`.
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetObjectArgs;
         import com.pulumi.aws.lambda.Function;
         import com.pulumi.aws.lambda.FunctionArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 lambda = S3Functions.getObject(GetObjectArgs.builder()
                     .bucket("ourcorp-lambda-functions")
                     .key("hello-world.zip")
                     .build());
         
                 var testLambda = new Function("testLambda", FunctionArgs.builder()
                     .s3Bucket(lambda.bucket())
                     .s3Key(lambda.key())
                     .s3ObjectVersion(lambda.versionId())
                     .name("lambda_function_name")
                     .role(iamForLambda.arn())
                     .handler("exports.test")
                     .build());
         
             }
         }
         
         
      • getObject

        public static com.pulumi.core.Output<GetObjectResult> getObject​(GetObjectArgs args,
                                                                        com.pulumi.deployment.InvokeOptions options)
        The S3 object data source allows access to the metadata and _optionally_ (see below) content of an object stored inside S3 bucket. > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable `Content-Type`: * `text/*` * `application/json` * `application/ld+json` * `application/x-httpd-php` * `application/xhtml+xml` * `application/x-csh` * `application/x-sh` * `application/xml` * `application/atom+xml` * `application/x-sql` * `application/yaml` This is to prevent printing unsafe characters and potentially downloading large amount of data which would be thrown away in favor of metadata. ## Example Usage The following example retrieves a text object (which must have a `Content-Type` value starting with `text/`) and uses it as the `userData` for an EC2 instance:
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetObjectArgs;
         import com.pulumi.aws.ec2.Instance;
         import com.pulumi.aws.ec2.InstanceArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 bootstrapScript = S3Functions.getObject(GetObjectArgs.builder()
                     .bucket("ourcorp-deploy-config")
                     .key("ec2-bootstrap-script.sh")
                     .build());
         
                 var example = new Instance("example", InstanceArgs.builder()
                     .instanceType("t2.micro")
                     .ami("ami-2757f631")
                     .userData(bootstrapScript.body())
                     .build());
         
             }
         }
         
         
        The following, more-complex example retrieves only the metadata for a zip file stored in S3, which is then used to pass the most recent `versionId` to AWS Lambda for use as a function implementation. More information about Lambda functions is available in the documentation for `aws.lambda.Function`.
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetObjectArgs;
         import com.pulumi.aws.lambda.Function;
         import com.pulumi.aws.lambda.FunctionArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 lambda = S3Functions.getObject(GetObjectArgs.builder()
                     .bucket("ourcorp-lambda-functions")
                     .key("hello-world.zip")
                     .build());
         
                 var testLambda = new Function("testLambda", FunctionArgs.builder()
                     .s3Bucket(lambda.bucket())
                     .s3Key(lambda.key())
                     .s3ObjectVersion(lambda.versionId())
                     .name("lambda_function_name")
                     .role(iamForLambda.arn())
                     .handler("exports.test")
                     .build());
         
             }
         }
         
         
      • getObject

        public static com.pulumi.core.Output<GetObjectResult> getObject​(GetObjectArgs args,
                                                                        com.pulumi.deployment.InvokeOutputOptions options)
        The S3 object data source allows access to the metadata and _optionally_ (see below) content of an object stored inside S3 bucket. > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable `Content-Type`: * `text/*` * `application/json` * `application/ld+json` * `application/x-httpd-php` * `application/xhtml+xml` * `application/x-csh` * `application/x-sh` * `application/xml` * `application/atom+xml` * `application/x-sql` * `application/yaml` This is to prevent printing unsafe characters and potentially downloading large amount of data which would be thrown away in favor of metadata. ## Example Usage The following example retrieves a text object (which must have a `Content-Type` value starting with `text/`) and uses it as the `userData` for an EC2 instance:
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetObjectArgs;
         import com.pulumi.aws.ec2.Instance;
         import com.pulumi.aws.ec2.InstanceArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 bootstrapScript = S3Functions.getObject(GetObjectArgs.builder()
                     .bucket("ourcorp-deploy-config")
                     .key("ec2-bootstrap-script.sh")
                     .build());
         
                 var example = new Instance("example", InstanceArgs.builder()
                     .instanceType("t2.micro")
                     .ami("ami-2757f631")
                     .userData(bootstrapScript.body())
                     .build());
         
             }
         }
         
         
        The following, more-complex example retrieves only the metadata for a zip file stored in S3, which is then used to pass the most recent `versionId` to AWS Lambda for use as a function implementation. More information about Lambda functions is available in the documentation for `aws.lambda.Function`.
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetObjectArgs;
         import com.pulumi.aws.lambda.Function;
         import com.pulumi.aws.lambda.FunctionArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 lambda = S3Functions.getObject(GetObjectArgs.builder()
                     .bucket("ourcorp-lambda-functions")
                     .key("hello-world.zip")
                     .build());
         
                 var testLambda = new Function("testLambda", FunctionArgs.builder()
                     .s3Bucket(lambda.bucket())
                     .s3Key(lambda.key())
                     .s3ObjectVersion(lambda.versionId())
                     .name("lambda_function_name")
                     .role(iamForLambda.arn())
                     .handler("exports.test")
                     .build());
         
             }
         }
         
         
      • getObjectPlain

        public static java.util.concurrent.CompletableFuture<GetObjectResult> getObjectPlain​(GetObjectPlainArgs args,
                                                                                             com.pulumi.deployment.InvokeOptions options)
        The S3 object data source allows access to the metadata and _optionally_ (see below) content of an object stored inside S3 bucket. > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable `Content-Type`: * `text/*` * `application/json` * `application/ld+json` * `application/x-httpd-php` * `application/xhtml+xml` * `application/x-csh` * `application/x-sh` * `application/xml` * `application/atom+xml` * `application/x-sql` * `application/yaml` This is to prevent printing unsafe characters and potentially downloading large amount of data which would be thrown away in favor of metadata. ## Example Usage The following example retrieves a text object (which must have a `Content-Type` value starting with `text/`) and uses it as the `userData` for an EC2 instance:
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetObjectArgs;
         import com.pulumi.aws.ec2.Instance;
         import com.pulumi.aws.ec2.InstanceArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 bootstrapScript = S3Functions.getObject(GetObjectArgs.builder()
                     .bucket("ourcorp-deploy-config")
                     .key("ec2-bootstrap-script.sh")
                     .build());
         
                 var example = new Instance("example", InstanceArgs.builder()
                     .instanceType("t2.micro")
                     .ami("ami-2757f631")
                     .userData(bootstrapScript.body())
                     .build());
         
             }
         }
         
         
        The following, more-complex example retrieves only the metadata for a zip file stored in S3, which is then used to pass the most recent `versionId` to AWS Lambda for use as a function implementation. More information about Lambda functions is available in the documentation for `aws.lambda.Function`.
         
         package generated_program;
         
         import com.pulumi.Context;
         import com.pulumi.Pulumi;
         import com.pulumi.core.Output;
         import com.pulumi.aws.s3.S3Functions;
         import com.pulumi.aws.s3.inputs.GetObjectArgs;
         import com.pulumi.aws.lambda.Function;
         import com.pulumi.aws.lambda.FunctionArgs;
         import java.util.ArrayList;
         import java.util.Arrays;
         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 lambda = S3Functions.getObject(GetObjectArgs.builder()
                     .bucket("ourcorp-lambda-functions")
                     .key("hello-world.zip")
                     .build());
         
                 var testLambda = new Function("testLambda", FunctionArgs.builder()
                     .s3Bucket(lambda.bucket())
                     .s3Key(lambda.key())
                     .s3ObjectVersion(lambda.versionId())
                     .name("lambda_function_name")
                     .role(iamForLambda.arn())
                     .handler("exports.test")
                     .build());
         
             }
         }
         
         
      • getObjects

        public static com.pulumi.core.Output<GetObjectsResult> getObjects​(GetObjectsArgs args)
        > **NOTE on `maxKeys`:** Retrieving very large numbers of keys can adversely affect the provider's performance. The objects data source returns keys (i.e., file names) and other metadata about objects in an S3 bucket.
      • getObjectsPlain

        public static java.util.concurrent.CompletableFuture<GetObjectsResult> getObjectsPlain​(GetObjectsPlainArgs args)
        > **NOTE on `maxKeys`:** Retrieving very large numbers of keys can adversely affect the provider's performance. The objects data source returns keys (i.e., file names) and other metadata about objects in an S3 bucket.
      • getObjects

        public static com.pulumi.core.Output<GetObjectsResult> getObjects​(GetObjectsArgs args,
                                                                          com.pulumi.deployment.InvokeOptions options)
        > **NOTE on `maxKeys`:** Retrieving very large numbers of keys can adversely affect the provider's performance. The objects data source returns keys (i.e., file names) and other metadata about objects in an S3 bucket.
      • getObjects

        public static com.pulumi.core.Output<GetObjectsResult> getObjects​(GetObjectsArgs args,
                                                                          com.pulumi.deployment.InvokeOutputOptions options)
        > **NOTE on `maxKeys`:** Retrieving very large numbers of keys can adversely affect the provider's performance. The objects data source returns keys (i.e., file names) and other metadata about objects in an S3 bucket.
      • getObjectsPlain

        public static java.util.concurrent.CompletableFuture<GetObjectsResult> getObjectsPlain​(GetObjectsPlainArgs args,
                                                                                               com.pulumi.deployment.InvokeOptions options)
        > **NOTE on `maxKeys`:** Retrieving very large numbers of keys can adversely affect the provider's performance. The objects data source returns keys (i.e., file names) and other metadata about objects in an S3 bucket.