github.com/bengesoff/terraform@v0.3.1-0.20141018223233-b25a53629922/builtin/providers/aws/resources.go (about) 1 package aws 2 3 import ( 4 "github.com/hashicorp/terraform/helper/config" 5 "github.com/hashicorp/terraform/helper/resource" 6 ) 7 8 // resourceMap is the mapping of resources we support to their basic 9 // operations. This makes it easy to implement new resource types. 10 var resourceMap *resource.Map 11 12 func init() { 13 resourceMap = &resource.Map{ 14 Mapping: map[string]resource.Resource{ 15 "aws_db_instance": resource.Resource{ 16 ConfigValidator: resource_aws_db_instance_validation(), 17 Create: resource_aws_db_instance_create, 18 Destroy: resource_aws_db_instance_destroy, 19 Diff: resource_aws_db_instance_diff, 20 Refresh: resource_aws_db_instance_refresh, 21 Update: resource_aws_db_instance_update, 22 }, 23 24 "aws_db_security_group": resource.Resource{ 25 ConfigValidator: resource_aws_db_security_group_validation(), 26 Create: resource_aws_db_security_group_create, 27 Destroy: resource_aws_db_security_group_destroy, 28 Diff: resource_aws_db_security_group_diff, 29 Refresh: resource_aws_db_security_group_refresh, 30 }, 31 32 "aws_internet_gateway": resource.Resource{ 33 Create: resource_aws_internet_gateway_create, 34 Destroy: resource_aws_internet_gateway_destroy, 35 Diff: resource_aws_internet_gateway_diff, 36 Refresh: resource_aws_internet_gateway_refresh, 37 Update: resource_aws_internet_gateway_update, 38 }, 39 40 "aws_route_table": resource.Resource{ 41 ConfigValidator: &config.Validator{ 42 Required: []string{ 43 "vpc_id", 44 "route.*.cidr_block", 45 }, 46 Optional: []string{ 47 "route.*.gateway_id", 48 "route.*.instance_id", 49 }, 50 }, 51 Create: resource_aws_route_table_create, 52 Destroy: resource_aws_route_table_destroy, 53 Diff: resource_aws_route_table_diff, 54 Refresh: resource_aws_route_table_refresh, 55 Update: resource_aws_route_table_update, 56 }, 57 58 "aws_route_table_association": resource.Resource{ 59 ConfigValidator: &config.Validator{ 60 Required: []string{ 61 "route_table_id", 62 "subnet_id", 63 }, 64 }, 65 Create: resource_aws_route_table_association_create, 66 Destroy: resource_aws_route_table_association_destroy, 67 Diff: resource_aws_route_table_association_diff, 68 Refresh: resource_aws_route_table_association_refresh, 69 Update: resource_aws_route_table_association_update, 70 }, 71 72 "aws_route53_record": resource.Resource{ 73 ConfigValidator: resource_aws_r53_record_validation(), 74 Create: resource_aws_r53_record_create, 75 Destroy: resource_aws_r53_record_destroy, 76 Diff: resource_aws_r53_record_diff, 77 Refresh: resource_aws_r53_record_refresh, 78 Update: resource_aws_r53_record_create, 79 }, 80 81 "aws_route53_zone": resource.Resource{ 82 ConfigValidator: resource_aws_r53_zone_validation(), 83 Create: resource_aws_r53_zone_create, 84 Destroy: resource_aws_r53_zone_destroy, 85 Diff: resource_aws_r53_zone_diff, 86 Refresh: resource_aws_r53_zone_refresh, 87 }, 88 89 "aws_s3_bucket": resource.Resource{ 90 ConfigValidator: resource_aws_s3_bucket_validation(), 91 Create: resource_aws_s3_bucket_create, 92 Destroy: resource_aws_s3_bucket_destroy, 93 Diff: resource_aws_s3_bucket_diff, 94 Refresh: resource_aws_s3_bucket_refresh, 95 }, 96 97 "aws_subnet": resource.Resource{ 98 Create: resource_aws_subnet_create, 99 Destroy: resource_aws_subnet_destroy, 100 Diff: resource_aws_subnet_diff, 101 Refresh: resource_aws_subnet_refresh, 102 }, 103 }, 104 } 105 }