github.com/danp/terraform@v0.9.5-0.20170426144147-39d740081351/builtin/providers/aws/import_aws_s3_bucket.go (about) 1 package aws 2 3 import ( 4 "github.com/aws/aws-sdk-go/aws" 5 "github.com/aws/aws-sdk-go/aws/awserr" 6 "github.com/aws/aws-sdk-go/service/s3" 7 "github.com/hashicorp/errwrap" 8 "github.com/hashicorp/terraform/helper/schema" 9 ) 10 11 func resourceAwsS3BucketImportState( 12 d *schema.ResourceData, 13 meta interface{}) ([]*schema.ResourceData, error) { 14 15 results := make([]*schema.ResourceData, 1, 1) 16 results[0] = d 17 18 conn := meta.(*AWSClient).s3conn 19 pol, err := conn.GetBucketPolicy(&s3.GetBucketPolicyInput{ 20 Bucket: aws.String(d.Id()), 21 }) 22 if err != nil { 23 if awsErr, ok := err.(awserr.Error); ok && awsErr.Code() == "NoSuchBucketPolicy" { 24 // Bucket without policy 25 return results, nil 26 } 27 return nil, errwrap.Wrapf("Error importing AWS S3 bucket policy: {{err}}", err) 28 } 29 30 policy := resourceAwsS3BucketPolicy() 31 pData := policy.Data(nil) 32 pData.SetId(d.Id()) 33 pData.SetType("aws_s3_bucket_policy") 34 pData.Set("bucket", d.Id()) 35 pData.Set("policy", pol) 36 results = append(results, pData) 37 38 return results, nil 39 }