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  }