github.com/danp/terraform@v0.9.5-0.20170426144147-39d740081351/builtin/providers/aws/data_source_aws_elb_service_account.go (about) 1 package aws 2 3 import ( 4 "fmt" 5 6 "github.com/hashicorp/terraform/helper/schema" 7 ) 8 9 // See http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy 10 var elbAccountIdPerRegionMap = map[string]string{ 11 "ap-northeast-1": "582318560864", 12 "ap-northeast-2": "600734575887", 13 "ap-south-1": "718504428378", 14 "ap-southeast-1": "114774131450", 15 "ap-southeast-2": "783225319266", 16 "ca-central-1": "985666609251", 17 "cn-north-1": "638102146993", 18 "eu-central-1": "054676820928", 19 "eu-west-1": "156460612806", 20 "eu-west-2": "652711504416", 21 "sa-east-1": "507241528517", 22 "us-east-1": "127311923021", 23 "us-east-2": "033677994240", 24 "us-gov-west": "048591011584", 25 "us-west-1": "027434742980", 26 "us-west-2": "797873946194", 27 } 28 29 func dataSourceAwsElbServiceAccount() *schema.Resource { 30 return &schema.Resource{ 31 Read: dataSourceAwsElbServiceAccountRead, 32 33 Schema: map[string]*schema.Schema{ 34 "region": { 35 Type: schema.TypeString, 36 Optional: true, 37 }, 38 "arn": { 39 Type: schema.TypeString, 40 Computed: true, 41 }, 42 }, 43 } 44 } 45 46 func dataSourceAwsElbServiceAccountRead(d *schema.ResourceData, meta interface{}) error { 47 region := meta.(*AWSClient).region 48 if v, ok := d.GetOk("region"); ok { 49 region = v.(string) 50 } 51 52 if accid, ok := elbAccountIdPerRegionMap[region]; ok { 53 d.SetId(accid) 54 55 d.Set("arn", fmt.Sprintf("arn:%s:iam::%s:root", meta.(*AWSClient).partition, accid)) 56 57 return nil 58 } 59 60 return fmt.Errorf("Unknown region (%q)", region) 61 }