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  }