github.com/ezbercih/terraform@v0.1.1-0.20140729011846-3c33865e0839/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_autoscaling_group": resource.Resource{ 16 ConfigValidator: resource_aws_autoscaling_group_validation(), 17 Create: resource_aws_autoscaling_group_create, 18 Destroy: resource_aws_autoscaling_group_destroy, 19 Diff: resource_aws_autoscaling_group_diff, 20 Refresh: resource_aws_autoscaling_group_refresh, 21 Update: resource_aws_autoscaling_group_update, 22 }, 23 24 "aws_db_instance": resource.Resource{ 25 ConfigValidator: resource_aws_db_instance_validation(), 26 Create: resource_aws_db_instance_create, 27 Destroy: resource_aws_db_instance_destroy, 28 Diff: resource_aws_db_instance_diff, 29 Refresh: resource_aws_db_instance_refresh, 30 Update: resource_aws_db_instance_update, 31 }, 32 33 "aws_db_security_group": resource.Resource{ 34 ConfigValidator: resource_aws_db_security_group_validation(), 35 Create: resource_aws_db_security_group_create, 36 Destroy: resource_aws_db_security_group_destroy, 37 Diff: resource_aws_db_security_group_diff, 38 Refresh: resource_aws_db_security_group_refresh, 39 }, 40 41 "aws_eip": resource.Resource{ 42 ConfigValidator: resource_aws_eip_validation(), 43 Create: resource_aws_eip_create, 44 Destroy: resource_aws_eip_destroy, 45 Diff: resource_aws_eip_diff, 46 Refresh: resource_aws_eip_refresh, 47 Update: resource_aws_eip_update, 48 }, 49 50 "aws_elb": resource.Resource{ 51 ConfigValidator: resource_aws_elb_validation(), 52 Create: resource_aws_elb_create, 53 Update: resource_aws_elb_update, 54 Destroy: resource_aws_elb_destroy, 55 Diff: resource_aws_elb_diff, 56 Refresh: resource_aws_elb_refresh, 57 }, 58 59 "aws_instance": resource.Resource{ 60 Create: resource_aws_instance_create, 61 Destroy: resource_aws_instance_destroy, 62 Diff: resource_aws_instance_diff, 63 Refresh: resource_aws_instance_refresh, 64 Update: resource_aws_instance_update, 65 }, 66 67 "aws_internet_gateway": resource.Resource{ 68 Create: resource_aws_internet_gateway_create, 69 Destroy: resource_aws_internet_gateway_destroy, 70 Diff: resource_aws_internet_gateway_diff, 71 Refresh: resource_aws_internet_gateway_refresh, 72 Update: resource_aws_internet_gateway_update, 73 }, 74 75 "aws_launch_configuration": resource.Resource{ 76 ConfigValidator: resource_aws_launch_configuration_validation(), 77 Create: resource_aws_launch_configuration_create, 78 Destroy: resource_aws_launch_configuration_destroy, 79 Diff: resource_aws_launch_configuration_diff, 80 Refresh: resource_aws_launch_configuration_refresh, 81 }, 82 83 "aws_route_table": resource.Resource{ 84 ConfigValidator: &config.Validator{ 85 Required: []string{ 86 "vpc_id", 87 "route.*.cidr_block", 88 }, 89 Optional: []string{ 90 "route.*.gateway_id", 91 "route.*.instance_id", 92 }, 93 }, 94 Create: resource_aws_route_table_create, 95 Destroy: resource_aws_route_table_destroy, 96 Diff: resource_aws_route_table_diff, 97 Refresh: resource_aws_route_table_refresh, 98 Update: resource_aws_route_table_update, 99 }, 100 101 "aws_route_table_association": resource.Resource{ 102 ConfigValidator: &config.Validator{ 103 Required: []string{ 104 "route_table_id", 105 "subnet_id", 106 }, 107 }, 108 Create: resource_aws_route_table_association_create, 109 Destroy: resource_aws_route_table_association_destroy, 110 Diff: resource_aws_route_table_association_diff, 111 Refresh: resource_aws_route_table_association_refresh, 112 Update: resource_aws_route_table_association_update, 113 }, 114 115 "aws_route53_record": resource.Resource{ 116 ConfigValidator: resource_aws_r53_record_validation(), 117 Create: resource_aws_r53_record_create, 118 Destroy: resource_aws_r53_record_destroy, 119 Diff: resource_aws_r53_record_diff, 120 Refresh: resource_aws_r53_record_refresh, 121 Update: resource_aws_r53_record_create, 122 }, 123 124 "aws_route53_zone": resource.Resource{ 125 ConfigValidator: resource_aws_r53_zone_validation(), 126 Create: resource_aws_r53_zone_create, 127 Destroy: resource_aws_r53_zone_destroy, 128 Diff: resource_aws_r53_zone_diff, 129 Refresh: resource_aws_r53_zone_refresh, 130 }, 131 132 "aws_s3_bucket": resource.Resource{ 133 ConfigValidator: resource_aws_s3_bucket_validation(), 134 Create: resource_aws_s3_bucket_create, 135 Destroy: resource_aws_s3_bucket_destroy, 136 Diff: resource_aws_s3_bucket_diff, 137 Refresh: resource_aws_s3_bucket_refresh, 138 }, 139 140 "aws_security_group": resource.Resource{ 141 ConfigValidator: resource_aws_security_group_validation(), 142 Create: resource_aws_security_group_create, 143 Destroy: resource_aws_security_group_destroy, 144 Diff: resource_aws_security_group_diff, 145 Refresh: resource_aws_security_group_refresh, 146 }, 147 148 "aws_subnet": resource.Resource{ 149 Create: resource_aws_subnet_create, 150 Destroy: resource_aws_subnet_destroy, 151 Diff: resource_aws_subnet_diff, 152 Refresh: resource_aws_subnet_refresh, 153 }, 154 155 "aws_vpc": resource.Resource{ 156 Create: resource_aws_vpc_create, 157 Destroy: resource_aws_vpc_destroy, 158 Diff: resource_aws_vpc_diff, 159 Refresh: resource_aws_vpc_refresh, 160 }, 161 }, 162 } 163 }