From 68e3eba5ec5eb35a0dc3e846a1cbc7fa4e65988d Mon Sep 17 00:00:00 2001 From: Kazunori Kojima Date: Thu, 18 Aug 2016 00:46:01 +0900 Subject: [PATCH] provider/aws: Support import of `aws_s3_bucket` --- .../aws/import_aws_s3_bucket_test.go | 32 +++++++++++++++++++ .../providers/aws/resource_aws_s3_bucket.go | 3 ++ .../providers/aws/r/s3_bucket.html.markdown | 8 +++++ 3 files changed, 43 insertions(+) create mode 100644 builtin/providers/aws/import_aws_s3_bucket_test.go diff --git a/builtin/providers/aws/import_aws_s3_bucket_test.go b/builtin/providers/aws/import_aws_s3_bucket_test.go new file mode 100644 index 000000000000..285a9918d597 --- /dev/null +++ b/builtin/providers/aws/import_aws_s3_bucket_test.go @@ -0,0 +1,32 @@ +package aws + +import ( + "testing" + + "github.com/hashicorp/terraform/helper/acctest" + "github.com/hashicorp/terraform/helper/resource" +) + +func TestAccAWSS3Bucket_importBasic(t *testing.T) { + resourceName := "aws_s3_bucket.bucket" + rInt := acctest.RandInt() + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckAWSS3BucketDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccAWSS3BucketConfig(rInt), + }, + + resource.TestStep{ + ResourceName: resourceName, + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{ + "force_destroy", "acl"}, + }, + }, + }) +} diff --git a/builtin/providers/aws/resource_aws_s3_bucket.go b/builtin/providers/aws/resource_aws_s3_bucket.go index 2a8dfc5cfa4c..e87d893b3ec5 100644 --- a/builtin/providers/aws/resource_aws_s3_bucket.go +++ b/builtin/providers/aws/resource_aws_s3_bucket.go @@ -23,6 +23,9 @@ func resourceAwsS3Bucket() *schema.Resource { Read: resourceAwsS3BucketRead, Update: resourceAwsS3BucketUpdate, Delete: resourceAwsS3BucketDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, Schema: map[string]*schema.Schema{ "bucket": &schema.Schema{ diff --git a/website/source/docs/providers/aws/r/s3_bucket.html.markdown b/website/source/docs/providers/aws/r/s3_bucket.html.markdown index 24cf910b32bb..9533291ac5c3 100644 --- a/website/source/docs/providers/aws/r/s3_bucket.html.markdown +++ b/website/source/docs/providers/aws/r/s3_bucket.html.markdown @@ -249,3 +249,11 @@ The following attributes are exported: * `region` - The AWS region this bucket resides in. * `website_endpoint` - The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. * `website_domain` - The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. + +## Import + +S3 bucket can be imported using the `bucket`, e.g. + +``` +$ terraform import aws_s3_bucket.bucket bucket-name +```