"use strict";
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
Object.defineProperty(exports, "__esModule", { value: true });
exports.Bucket = void 0;
const pulumi = require("@pulumi/pulumi");
const utilities = require("../utilities");
/**
 * The ``AWS::S3::Bucket`` resource creates an Amazon S3 bucket in the same AWS Region where you create the AWS CloudFormation stack.
 *  To control how AWS CloudFormation handles the bucket when the stack is deleted, you can set a deletion policy for your bucket. You can choose to *retain* the bucket or to *delete* the bucket. For more information, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).
 *   You can only delete empty buckets. Deletion fails for buckets that have contents.
 *
 * ## Example Usage
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const s3Bucket = new aws_native.s3.Bucket("s3Bucket", {});
 * const recordingConfiguration = new aws_native.ivs.RecordingConfiguration("recordingConfiguration", {
 *     name: "MyRecordingConfiguration",
 *     destinationConfiguration: {
 *         s3: {
 *             bucketName: s3Bucket.id,
 *         },
 *     },
 *     thumbnailConfiguration: {
 *         recordingMode: aws_native.ivs.RecordingConfigurationThumbnailConfigurationRecordingMode.Interval,
 *         targetIntervalSeconds: 60,
 *         storage: [
 *             aws_native.ivs.RecordingConfigurationThumbnailConfigurationStorageItem.Sequential,
 *             aws_native.ivs.RecordingConfigurationThumbnailConfigurationStorageItem.Latest,
 *         ],
 *         resolution: aws_native.ivs.RecordingConfigurationThumbnailConfigurationResolution.Hd,
 *     },
 *     renditionConfiguration: {
 *         renditionSelection: aws_native.ivs.RecordingConfigurationRenditionConfigurationRenditionSelection.Custom,
 *         renditions: [
 *             aws_native.ivs.RecordingConfigurationRenditionConfigurationRenditionsItem.Hd,
 *             aws_native.ivs.RecordingConfigurationRenditionConfigurationRenditionsItem.Sd,
 *         ],
 *     },
 * }, {
 *     dependsOn: [s3Bucket],
 * });
 * const channel = new aws_native.ivs.Channel("channel", {
 *     name: "MyRecordedChannel",
 *     recordingConfigurationArn: recordingConfiguration.id,
 * }, {
 *     dependsOn: [recordingConfiguration],
 * });
 *
 * ```
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const s3Bucket = new aws_native.s3.Bucket("s3Bucket", {});
 * const recordingConfiguration = new aws_native.ivs.RecordingConfiguration("recordingConfiguration", {
 *     name: "MyRecordingConfiguration",
 *     destinationConfiguration: {
 *         s3: {
 *             bucketName: s3Bucket.id,
 *         },
 *     },
 *     thumbnailConfiguration: {
 *         recordingMode: aws_native.ivs.RecordingConfigurationThumbnailConfigurationRecordingMode.Interval,
 *         targetIntervalSeconds: 60,
 *         resolution: aws_native.ivs.RecordingConfigurationThumbnailConfigurationResolution.Hd,
 *         storage: [
 *             aws_native.ivs.RecordingConfigurationThumbnailConfigurationStorageItem.Sequential,
 *             aws_native.ivs.RecordingConfigurationThumbnailConfigurationStorageItem.Latest,
 *         ],
 *     },
 *     renditionConfiguration: {
 *         renditionSelection: aws_native.ivs.RecordingConfigurationRenditionConfigurationRenditionSelection.Custom,
 *         renditions: [
 *             aws_native.ivs.RecordingConfigurationRenditionConfigurationRenditionsItem.Hd,
 *             aws_native.ivs.RecordingConfigurationRenditionConfigurationRenditionsItem.Sd,
 *         ],
 *     },
 * }, {
 *     dependsOn: [s3Bucket],
 * });
 * const channel = new aws_native.ivs.Channel("channel", {
 *     name: "MyRecordedChannel",
 *     recordingConfigurationArn: recordingConfiguration.id,
 * }, {
 *     dependsOn: [recordingConfiguration],
 * });
 *
 * ```
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const config = new pulumi.Config();
 * const latestAmiId = config.get("latestAmiId") || "";
 * const latestAmiIdValue = latestAmiId == "" ? "/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2" : aws_native.getSsmParameterString({
 *     name: latestAmiId,
 * }).then(invoke => invoke.value);
 * const gitHubOwner = config.require("gitHubOwner");
 * const gitHubRepo = config.require("gitHubRepo");
 * const gitHubBranch = config.require("gitHubBranch");
 * const ssmAssocLogs = new aws_native.s3.Bucket("ssmAssocLogs", {});
 * const ssmInstanceRole = new aws_native.iam.Role("ssmInstanceRole", {
 *     policies: [
 *         {
 *             policyDocument: {
 *                 version: "2012-10-17",
 *                 statement: [{
 *                     action: ["s3:GetObject"],
 *                     resource: [
 *                         "arn:aws:s3:::aws-ssm-${AWS::Region}/*",
 *                         "arn:aws:s3:::aws-windows-downloads-${AWS::Region}/*",
 *                         "arn:aws:s3:::amazon-ssm-${AWS::Region}/*",
 *                         "arn:aws:s3:::amazon-ssm-packages-${AWS::Region}/*",
 *                         "arn:aws:s3:::${AWS::Region}-birdwatcher-prod/*",
 *                         "arn:aws:s3:::patch-baseline-snapshot-${AWS::Region}/*",
 *                     ],
 *                     effect: "Allow",
 *                 }],
 *             },
 *             policyName: "ssm-custom-s3-policy",
 *         },
 *         {
 *             policyDocument: {
 *                 version: "2012-10-17",
 *                 statement: [{
 *                     action: [
 *                         "s3:GetObject",
 *                         "s3:PutObject",
 *                         "s3:PutObjectAcl",
 *                         "s3:ListBucket",
 *                     ],
 *                     resource: [
 *                         "arn:${AWS::Partition}:s3:::${SSMAssocLogs}/*",
 *                         "arn:${AWS::Partition}:s3:::${SSMAssocLogs}",
 *                     ],
 *                     effect: "Allow",
 *                 }],
 *             },
 *             policyName: "s3-instance-bucket-policy",
 *         },
 *     ],
 *     path: "/",
 *     managedPolicyArns: ["arn:${AWS::Partition}:iam::aws:policy/AmazonSSMManagedInstanceCore"],
 *     assumeRolePolicyDocument: {
 *         version: "2012-10-17",
 *         statement: [{
 *             effect: "Allow",
 *             principal: {
 *                 service: [
 *                     "ec2.amazonaws.com",
 *                     "ssm.amazonaws.com",
 *                 ],
 *             },
 *             action: "sts:AssumeRole",
 *         }],
 *     },
 * });
 * const ssmInstanceProfile = new aws_native.iam.InstanceProfile("ssmInstanceProfile", {roles: ["SSMInstanceRole"]});
 * const ec2Instance = new aws_native.ec2.Instance("ec2Instance", {
 *     imageId: "LatestAmiId",
 *     instanceType: "t3.small",
 *     iamInstanceProfile: "SSMInstanceProfile",
 * });
 * const ansibleAssociation = new aws_native.ssm.Association("ansibleAssociation", {
 *     name: "AWS-ApplyAnsiblePlaybooks",
 *     targets: [{
 *         key: "InstanceIds",
 *         values: ["EC2Instance"],
 *     }],
 *     outputLocation: {
 *         s3Location: {
 *             outputS3BucketName: "SSMAssocLogs",
 *             outputS3KeyPrefix: "logs/",
 *         },
 *     },
 *     parameters: {
 *         sourceType: ["GitHub"],
 *         sourceInfo: [`{"owner":"\${GitHubOwner}",
 * "repository":"\${GitHubRepo}",
 * "path":"",
 * "getOptions":"branch:\${GitHubBranch}"}
 * `],
 *         installDependencies: ["True"],
 *         playbookFile: ["playbook.yml"],
 *         extraVariables: ["SSM=True"],
 *         check: ["False"],
 *         verbose: ["-v"],
 *     },
 * });
 * export const webServerPublic = "EC2Instance.PublicDnsName";
 *
 * ```
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const config = new pulumi.Config();
 * const latestAmiId = config.get("latestAmiId") || "";
 * const latestAmiIdValue = latestAmiId == "" ? "/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2" : aws_native.getSsmParameterString({
 *     name: latestAmiId,
 * }).then(invoke => invoke.value);
 * const ssmAssocLogs = new aws_native.s3.Bucket("ssmAssocLogs", {});
 * const ssmInstanceRole = new aws_native.iam.Role("ssmInstanceRole", {
 *     policies: [
 *         {
 *             policyDocument: {
 *                 version: "2012-10-17",
 *                 statement: [{
 *                     action: ["s3:GetObject"],
 *                     resource: [
 *                         "arn:aws:s3:::aws-ssm-${AWS::Region}/*",
 *                         "arn:aws:s3:::aws-windows-downloads-${AWS::Region}/*",
 *                         "arn:aws:s3:::amazon-ssm-${AWS::Region}/*",
 *                         "arn:aws:s3:::amazon-ssm-packages-${AWS::Region}/*",
 *                         "arn:aws:s3:::${AWS::Region}-birdwatcher-prod/*",
 *                         "arn:aws:s3:::patch-baseline-snapshot-${AWS::Region}/*",
 *                     ],
 *                     effect: "Allow",
 *                 }],
 *             },
 *             policyName: "ssm-custom-s3-policy",
 *         },
 *         {
 *             policyDocument: {
 *                 version: "2012-10-17",
 *                 statement: [{
 *                     action: [
 *                         "s3:GetObject",
 *                         "s3:PutObject",
 *                         "s3:PutObjectAcl",
 *                         "s3:ListBucket",
 *                     ],
 *                     resource: [
 *                         "arn:${AWS::Partition}:s3:::${SSMAssocLogs}/*",
 *                         "arn:${AWS::Partition}:s3:::${SSMAssocLogs}",
 *                     ],
 *                     effect: "Allow",
 *                 }],
 *             },
 *             policyName: "s3-instance-bucket-policy",
 *         },
 *     ],
 *     path: "/",
 *     managedPolicyArns: [
 *         "arn:${AWS::Partition}:iam::aws:policy/AmazonSSMManagedInstanceCore",
 *         "arn:${AWS::Partition}:iam::aws:policy/CloudWatchAgentServerPolicy",
 *     ],
 *     assumeRolePolicyDocument: {
 *         version: "2012-10-17",
 *         statement: [{
 *             effect: "Allow",
 *             principal: {
 *                 service: [
 *                     "ec2.amazonaws.com",
 *                     "ssm.amazonaws.com",
 *                 ],
 *             },
 *             action: "sts:AssumeRole",
 *         }],
 *     },
 * });
 * const ssmInstanceProfile = new aws_native.iam.InstanceProfile("ssmInstanceProfile", {roles: ["SSMInstanceRole"]});
 * const ec2Instance = new aws_native.ec2.Instance("ec2Instance", {
 *     imageId: "LatestAmiId",
 *     instanceType: "t3.medium",
 *     iamInstanceProfile: "SSMInstanceProfile",
 *     tags: [{
 *         key: "nginx",
 *         value: "yes",
 *     }],
 * });
 * const nginxAssociation = new aws_native.ssm.Association("nginxAssociation", {
 *     name: "AWS-RunShellScript",
 *     targets: [{
 *         key: "tag:nginx",
 *         values: ["yes"],
 *     }],
 *     outputLocation: {
 *         s3Location: {
 *             outputS3BucketName: "SSMAssocLogs",
 *             outputS3KeyPrefix: "logs/",
 *         },
 *     },
 *     parameters: {
 *         commands: [`sudo amazon-linux-extras install nginx1 -y
 * sudo service nginx start
 * `],
 *     },
 * }, {
 *     dependsOn: [ec2Instance],
 * });
 * export const webServerPublic = "EC2Instance.PublicDnsName";
 *
 * ```
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const config = new pulumi.Config();
 * const latestAmiId = config.get("latestAmiId") || "";
 * const latestAmiIdValue = latestAmiId == "" ? "/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2" : aws_native.getSsmParameterString({
 *     name: latestAmiId,
 * }).then(invoke => invoke.value);
 * const ssmAssocLogs = new aws_native.s3.Bucket("ssmAssocLogs", {});
 * const nginxInstallAutomation = new aws_native.ssm.Document("nginxInstallAutomation", {
 *     documentType: aws_native.ssm.DocumentType.Automation,
 *     content: {
 *         schemaVersion: "0.3",
 *         description: "Updates AMI with Linux distribution packages and installs Nginx software",
 *         assumeRole: "{{AutomationAssumeRole}}",
 *         parameters: {
 *             instanceId: {
 *                 description: "ID of the Instance.",
 *                 type: "String",
 *             },
 *             automationAssumeRole: {
 *                 "default": "",
 *                 description: "(Optional) The ARN of the role that allows Automation to perform the actions on your behalf.",
 *                 type: "String",
 *             },
 *         },
 *         mainSteps: [
 *             {
 *                 name: "updateOSSoftware",
 *                 action: "aws:runCommand",
 *                 maxAttempts: 3,
 *                 timeoutSeconds: 3600,
 *                 inputs: {
 *                     documentName: "AWS-RunShellScript",
 *                     instanceIds: ["{{InstanceId}}"],
 *                     cloudWatchOutputConfig: {
 *                         cloudWatchOutputEnabled: "true",
 *                     },
 *                     parameters: {
 *                         commands: [`#!/bin/bash
 * sudo yum update -y
 * needs-restarting -r
 * if [ ? -eq 1 ]
 * then
 *         exit 194
 * else
 *         exit 0
 * fi
 * `],
 *                     },
 *                 },
 *             },
 *             {
 *                 name: "InstallNginx",
 *                 action: "aws:runCommand",
 *                 inputs: {
 *                     documentName: "AWS-RunShellScript",
 *                     instanceIds: ["{{InstanceId}}"],
 *                     cloudWatchOutputConfig: {
 *                         cloudWatchOutputEnabled: "true",
 *                     },
 *                     parameters: {
 *                         commands: [`sudo amazon-linux-extras install nginx1 -y
 * sudo service nginx start
 * `],
 *                     },
 *                 },
 *             },
 *             {
 *                 name: "TestInstall",
 *                 action: "aws:runCommand",
 *                 maxAttempts: 3,
 *                 timeoutSeconds: 3600,
 *                 onFailure: "Abort",
 *                 inputs: {
 *                     documentName: "AWS-RunShellScript",
 *                     instanceIds: ["{{InstanceId}}"],
 *                     parameters: {
 *                         commands: ["curl localhost\n"],
 *                     },
 *                 },
 *             },
 *         ],
 *     },
 * });
 * const ssmExecutionRole = new aws_native.iam.Role("ssmExecutionRole", {
 *     policies: [{
 *         policyDocument: {
 *             version: "2012-10-17",
 *             statement: [{
 *                 action: [
 *                     "ssm:StartAssociationsOnce",
 *                     "ssm:CreateAssociation",
 *                     "ssm:CreateAssociationBatch",
 *                     "ssm:UpdateAssociation",
 *                 ],
 *                 resource: "*",
 *                 effect: "Allow",
 *             }],
 *         },
 *         policyName: "ssm-association",
 *     }],
 *     path: "/",
 *     managedPolicyArns: ["arn:${AWS::Partition}:iam::aws:policy/service-role/AmazonSSMAutomationRole"],
 *     assumeRolePolicyDocument: {
 *         version: "2012-10-17",
 *         statement: [{
 *             effect: "Allow",
 *             principal: {
 *                 service: [
 *                     "ec2.amazonaws.com",
 *                     "ssm.amazonaws.com",
 *                 ],
 *             },
 *             action: "sts:AssumeRole",
 *         }],
 *     },
 * });
 * const ssmInstanceRole = new aws_native.iam.Role("ssmInstanceRole", {
 *     policies: [
 *         {
 *             policyDocument: {
 *                 version: "2012-10-17",
 *                 statement: [{
 *                     action: ["s3:GetObject"],
 *                     resource: [
 *                         "arn:aws:s3:::aws-ssm-${AWS::Region}/*",
 *                         "arn:aws:s3:::aws-windows-downloads-${AWS::Region}/*",
 *                         "arn:aws:s3:::amazon-ssm-${AWS::Region}/*",
 *                         "arn:aws:s3:::amazon-ssm-packages-${AWS::Region}/*",
 *                         "arn:aws:s3:::${AWS::Region}-birdwatcher-prod/*",
 *                         "arn:aws:s3:::patch-baseline-snapshot-${AWS::Region}/*",
 *                     ],
 *                     effect: "Allow",
 *                 }],
 *             },
 *             policyName: "ssm-custom-s3-policy",
 *         },
 *         {
 *             policyDocument: {
 *                 version: "2012-10-17",
 *                 statement: [{
 *                     action: [
 *                         "s3:GetObject",
 *                         "s3:PutObject",
 *                         "s3:PutObjectAcl",
 *                         "s3:ListBucket",
 *                     ],
 *                     resource: [
 *                         "arn:${AWS::Partition}:s3:::${SSMAssocLogs}/*",
 *                         "arn:${AWS::Partition}:s3:::${SSMAssocLogs}",
 *                     ],
 *                     effect: "Allow",
 *                 }],
 *             },
 *             policyName: "s3-instance-bucket-policy",
 *         },
 *     ],
 *     path: "/",
 *     managedPolicyArns: [
 *         "arn:${AWS::Partition}:iam::aws:policy/AmazonSSMManagedInstanceCore",
 *         "arn:${AWS::Partition}:iam::aws:policy/CloudWatchAgentServerPolicy",
 *     ],
 *     assumeRolePolicyDocument: {
 *         version: "2012-10-17",
 *         statement: [{
 *             effect: "Allow",
 *             principal: {
 *                 service: [
 *                     "ec2.amazonaws.com",
 *                     "ssm.amazonaws.com",
 *                 ],
 *             },
 *             action: "sts:AssumeRole",
 *         }],
 *     },
 * });
 * const ssmInstanceProfile = new aws_native.iam.InstanceProfile("ssmInstanceProfile", {roles: ["SSMInstanceRole"]});
 * const ec2Instance = new aws_native.ec2.Instance("ec2Instance", {
 *     imageId: "LatestAmiId",
 *     instanceType: "t3.medium",
 *     iamInstanceProfile: "SSMInstanceProfile",
 *     tags: [{
 *         key: "nginx",
 *         value: "true",
 *     }],
 * });
 * const nginxAssociation = new aws_native.ssm.Association("nginxAssociation", {
 *     name: "nginxInstallAutomation",
 *     outputLocation: {
 *         s3Location: {
 *             outputS3BucketName: "SSMAssocLogs",
 *             outputS3KeyPrefix: "logs/",
 *         },
 *     },
 *     automationTargetParameterName: "InstanceId",
 *     parameters: {
 *         automationAssumeRole: ["SSMExecutionRole.Arn"],
 *     },
 *     targets: [{
 *         key: "tag:nginx",
 *         values: ["true"],
 *     }],
 * }, {
 *     dependsOn: [ec2Instance],
 * });
 * export const webServerPublic = "EC2Instance.PublicDnsName";
 *
 * ```
 */
class Bucket extends pulumi.CustomResource {
    /**
     * Get an existing Bucket resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name, id, opts) {
        return new Bucket(name, undefined, { ...opts, id: id });
    }
    /**
     * Returns true if the given object is an instance of Bucket.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj) {
        if (obj === undefined || obj === null) {
            return false;
        }
        return obj['__pulumiType'] === Bucket.__pulumiType;
    }
    /**
     * Create a Bucket resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name, args, opts) {
        let resourceInputs = {};
        opts = opts || {};
        if (!opts.id) {
            resourceInputs["abacStatus"] = args?.abacStatus;
            resourceInputs["accelerateConfiguration"] = args?.accelerateConfiguration;
            resourceInputs["accessControl"] = args?.accessControl;
            resourceInputs["analyticsConfigurations"] = args?.analyticsConfigurations;
            resourceInputs["bucketEncryption"] = args?.bucketEncryption;
            resourceInputs["bucketName"] = args?.bucketName;
            resourceInputs["bucketNamePrefix"] = args?.bucketNamePrefix;
            resourceInputs["bucketNamespace"] = args?.bucketNamespace;
            resourceInputs["corsConfiguration"] = args?.corsConfiguration;
            resourceInputs["intelligentTieringConfigurations"] = args?.intelligentTieringConfigurations;
            resourceInputs["inventoryConfigurations"] = args?.inventoryConfigurations;
            resourceInputs["lifecycleConfiguration"] = args?.lifecycleConfiguration;
            resourceInputs["loggingConfiguration"] = args?.loggingConfiguration;
            resourceInputs["metadataConfiguration"] = args?.metadataConfiguration;
            resourceInputs["metadataTableConfiguration"] = args?.metadataTableConfiguration;
            resourceInputs["metricsConfigurations"] = args?.metricsConfigurations;
            resourceInputs["notificationConfiguration"] = args?.notificationConfiguration;
            resourceInputs["objectLockConfiguration"] = args?.objectLockConfiguration;
            resourceInputs["objectLockEnabled"] = args?.objectLockEnabled;
            resourceInputs["ownershipControls"] = args?.ownershipControls;
            resourceInputs["publicAccessBlockConfiguration"] = args?.publicAccessBlockConfiguration;
            resourceInputs["replicationConfiguration"] = args?.replicationConfiguration;
            resourceInputs["tags"] = args?.tags;
            resourceInputs["versioningConfiguration"] = args?.versioningConfiguration;
            resourceInputs["websiteConfiguration"] = args?.websiteConfiguration;
            resourceInputs["arn"] = undefined /*out*/;
            resourceInputs["domainName"] = undefined /*out*/;
            resourceInputs["dualStackDomainName"] = undefined /*out*/;
            resourceInputs["regionalDomainName"] = undefined /*out*/;
            resourceInputs["websiteUrl"] = undefined /*out*/;
        }
        else {
            resourceInputs["abacStatus"] = undefined /*out*/;
            resourceInputs["accelerateConfiguration"] = undefined /*out*/;
            resourceInputs["accessControl"] = undefined /*out*/;
            resourceInputs["analyticsConfigurations"] = undefined /*out*/;
            resourceInputs["arn"] = undefined /*out*/;
            resourceInputs["bucketEncryption"] = undefined /*out*/;
            resourceInputs["bucketName"] = undefined /*out*/;
            resourceInputs["bucketNamePrefix"] = undefined /*out*/;
            resourceInputs["bucketNamespace"] = undefined /*out*/;
            resourceInputs["corsConfiguration"] = undefined /*out*/;
            resourceInputs["domainName"] = undefined /*out*/;
            resourceInputs["dualStackDomainName"] = undefined /*out*/;
            resourceInputs["intelligentTieringConfigurations"] = undefined /*out*/;
            resourceInputs["inventoryConfigurations"] = undefined /*out*/;
            resourceInputs["lifecycleConfiguration"] = undefined /*out*/;
            resourceInputs["loggingConfiguration"] = undefined /*out*/;
            resourceInputs["metadataConfiguration"] = undefined /*out*/;
            resourceInputs["metadataTableConfiguration"] = undefined /*out*/;
            resourceInputs["metricsConfigurations"] = undefined /*out*/;
            resourceInputs["notificationConfiguration"] = undefined /*out*/;
            resourceInputs["objectLockConfiguration"] = undefined /*out*/;
            resourceInputs["objectLockEnabled"] = undefined /*out*/;
            resourceInputs["ownershipControls"] = undefined /*out*/;
            resourceInputs["publicAccessBlockConfiguration"] = undefined /*out*/;
            resourceInputs["regionalDomainName"] = undefined /*out*/;
            resourceInputs["replicationConfiguration"] = undefined /*out*/;
            resourceInputs["tags"] = undefined /*out*/;
            resourceInputs["versioningConfiguration"] = undefined /*out*/;
            resourceInputs["websiteConfiguration"] = undefined /*out*/;
            resourceInputs["websiteUrl"] = undefined /*out*/;
        }
        opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
        const replaceOnChanges = { replaceOnChanges: ["bucketName", "bucketNamePrefix", "bucketNamespace"] };
        opts = pulumi.mergeOptions(opts, replaceOnChanges);
        super(Bucket.__pulumiType, name, resourceInputs, opts);
    }
}
exports.Bucket = Bucket;
/** @internal */
Bucket.__pulumiType = 'aws-native:s3:Bucket';
//# sourceMappingURL=bucket.js.map