From 7753799021ad226e15381779ff66dba8cbea05c7 Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Thu, 27 Jun 2019 23:06:14 -0400 Subject: [PATCH 1/4] New Data Source: aws_servicequotas_service Reference: https://github.com/terraform-providers/terraform-provider-aws/issues/9122 Output from acceptance testing: ``` --- PASS: TestAccAwsServiceQuotasServiceDataSource_ServiceName (15.13s) ``` --- aws/data_source_aws_servicequotas_service.go | 61 +++++++++++++++++++ ...a_source_aws_servicequotas_service_test.go | 33 ++++++++++ aws/provider.go | 1 + website/aws.erb | 3 + .../d/servicequotas_service.html.markdown | 28 +++++++++ 5 files changed, 126 insertions(+) create mode 100644 aws/data_source_aws_servicequotas_service.go create mode 100644 aws/data_source_aws_servicequotas_service_test.go create mode 100644 website/docs/d/servicequotas_service.html.markdown diff --git a/aws/data_source_aws_servicequotas_service.go b/aws/data_source_aws_servicequotas_service.go new file mode 100644 index 000000000000..3a30361ab3bb --- /dev/null +++ b/aws/data_source_aws_servicequotas_service.go @@ -0,0 +1,61 @@ +package aws + +import ( + "fmt" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/servicequotas" + "github.com/hashicorp/terraform/helper/schema" +) + +func dataSourceAwsServiceQuotasService() *schema.Resource { + return &schema.Resource{ + Read: dataSourceAwsServiceQuotasServiceRead, + + Schema: map[string]*schema.Schema{ + "service_code": { + Type: schema.TypeString, + Computed: true, + }, + "service_name": { + Type: schema.TypeString, + Required: true, + }, + }, + } +} + + +func dataSourceAwsServiceQuotasServiceRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).servicequotasconn + + serviceName := d.Get("service_name").(string) + + input := &servicequotas.ListServicesInput{} + + var service *servicequotas.ServiceInfo + err := conn.ListServicesPages(input, func(page *servicequotas.ListServicesOutput, lastPage bool) bool { + for _, s := range page.Services { + if aws.StringValue(s.ServiceName) == serviceName { + service = s + break + } + } + + return !lastPage + }) + + if err != nil { + return fmt.Errorf("error listing Services: %s", err) + } + + if service == nil { + return fmt.Errorf("error finding Service (%s): no results found", serviceName) + } + + d.Set("service_code", service.ServiceCode) + d.Set("service_name", service.ServiceName) + d.SetId(aws.StringValue(service.ServiceCode)) + + return nil +} diff --git a/aws/data_source_aws_servicequotas_service_test.go b/aws/data_source_aws_servicequotas_service_test.go new file mode 100644 index 000000000000..fba060449a65 --- /dev/null +++ b/aws/data_source_aws_servicequotas_service_test.go @@ -0,0 +1,33 @@ +package aws + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform/helper/resource" +) + +func TestAccAwsServiceQuotasServiceDataSource_ServiceName(t *testing.T) { + dataSourceName := "data.aws_servicequotas_service.test" + + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + Steps: []resource.TestStep{ + { + Config: testAccAwsServiceQuotasServiceDataSourceConfigServiceName("Amazon Virtual Private Cloud (Amazon VPC)"), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr(dataSourceName, "service_code", "vpc"), + ), + }, + }, + }) +} + +func testAccAwsServiceQuotasServiceDataSourceConfigServiceName(serviceName string) string { + return fmt.Sprintf(` +data "aws_servicequotas_service" "test" { + service_name = %[1]q +} +`, serviceName) +} diff --git a/aws/provider.go b/aws/provider.go index d0755a7c13d2..dbd7a04c0074 100644 --- a/aws/provider.go +++ b/aws/provider.go @@ -252,6 +252,7 @@ func Provider() terraform.ResourceProvider { "aws_s3_bucket_object": dataSourceAwsS3BucketObject(), "aws_secretsmanager_secret": dataSourceAwsSecretsManagerSecret(), "aws_secretsmanager_secret_version": dataSourceAwsSecretsManagerSecretVersion(), + "aws_servicequotas_service": dataSourceAwsServiceQuotasService(), "aws_sns_topic": dataSourceAwsSnsTopic(), "aws_sqs_queue": dataSourceAwsSqsQueue(), "aws_ssm_document": dataSourceAwsSsmDocument(), diff --git a/website/aws.erb b/website/aws.erb index 18c27d60e950..76a726e942e4 100644 --- a/website/aws.erb +++ b/website/aws.erb @@ -396,6 +396,9 @@
  • aws_security_groups
  • +
  • + aws_servicequotas_service +
  • aws_sns_topic
  • diff --git a/website/docs/d/servicequotas_service.html.markdown b/website/docs/d/servicequotas_service.html.markdown new file mode 100644 index 000000000000..f81e1d4dc49a --- /dev/null +++ b/website/docs/d/servicequotas_service.html.markdown @@ -0,0 +1,28 @@ +--- +layout: "aws" +page_title: "AWS: aws_servicequotas_service" +sidebar_current: "docs-aws-datasource-servicequotas-service" +description: |- + Retrieve information about a Service Quotas Service +--- + +# Data Source: aws_servicequotas_service + +Retrieve information about a Service Quotas Service. + +## Example Usage + +```hcl +data "aws_servicequotas_service" "example" { + service_name = "Amazon Virtual Private Cloud (Amazon VPC)" +} +``` + +## Argument Reference + +* `service_name` - (Required) Service name to lookup within Service Quotas. Available values can be found with the [AWS CLI service-quotas list-services command](https://docs.aws.amazon.com/cli/latest/reference/service-quotas/list-services.html). + +## Attributes Reference + +* `id` - Code of the service. +* `service_code` - Code of the service. From 8778630eb23ff1be142f5e9cecaaf9892be80467 Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Thu, 27 Jun 2019 23:09:31 -0400 Subject: [PATCH 2/4] New Data Source: aws_servicequotas_service_quota Reference: https://github.com/terraform-providers/terraform-provider-aws/issues/9122 Output from acceptance testing: ``` --- PASS: TestAccAwsServiceQuotasServiceQuotaDataSource_QuotaCode (9.93s) --- PASS: TestAccAwsServiceQuotasServiceQuotaDataSource_QuotaName (10.11s) ``` --- ..._source_aws_servicequotas_service_quota.go | 122 ++++++++++++++++++ ...ce_aws_servicequotas_service_quota_test.go | 75 +++++++++++ aws/provider.go | 1 + website/aws.erb | 3 + .../servicequotas_service_quota.html.markdown | 44 +++++++ 5 files changed, 245 insertions(+) create mode 100644 aws/data_source_aws_servicequotas_service_quota.go create mode 100644 aws/data_source_aws_servicequotas_service_quota_test.go create mode 100644 website/docs/d/servicequotas_service_quota.html.markdown diff --git a/aws/data_source_aws_servicequotas_service_quota.go b/aws/data_source_aws_servicequotas_service_quota.go new file mode 100644 index 000000000000..5eb2526fec8f --- /dev/null +++ b/aws/data_source_aws_servicequotas_service_quota.go @@ -0,0 +1,122 @@ +package aws + +import ( + "fmt" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/servicequotas" + "github.com/hashicorp/terraform/helper/schema" +) + +func dataSourceAwsServiceQuotasServiceQuota() *schema.Resource { + return &schema.Resource{ + Read: dataSourceAwsServiceQuotasServiceQuotaRead, + + Schema: map[string]*schema.Schema{ + "adjustable": { + Type: schema.TypeBool, + Computed: true, + }, + "arn": { + Type: schema.TypeString, + Computed: true, + }, + "global_quota": { + Type: schema.TypeBool, + Computed: true, + }, + "quota_code": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ConflictsWith: []string{"quota_name"}, + }, + "quota_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ConflictsWith: []string{"quota_code"}, + }, + "service_code": { + Type: schema.TypeString, + Required: true, + }, + "service_name": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeFloat, + Computed: true, + }, + }, + } +} + +func dataSourceAwsServiceQuotasServiceQuotaRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).servicequotasconn + + quotaCode := d.Get("quota_code").(string) + quotaName := d.Get("quota_name").(string) + serviceCode := d.Get("service_code").(string) + + if quotaCode == "" && quotaName == "" { + return fmt.Errorf("either quota_code or quota_name must be configured") + } + + var serviceQuota *servicequotas.ServiceQuota + + if quotaCode != "" { + input := &servicequotas.GetServiceQuotaInput{ + QuotaCode: aws.String(quotaCode), + ServiceCode: aws.String(serviceCode), + } + + output, err := conn.GetServiceQuota(input) + + if err != nil { + return fmt.Errorf("error getting Service (%s) Quota (%s): %s", serviceCode, quotaCode, err) + } + + if output == nil { + return fmt.Errorf("error getting Service (%s) Quota (%s): empty result", serviceCode, quotaCode) + } + + serviceQuota = output.Quota + } else { + input := &servicequotas.ListServiceQuotasInput{ + ServiceCode: aws.String(serviceCode), + } + + err := conn.ListServiceQuotasPages(input, func(page *servicequotas.ListServiceQuotasOutput, lastPage bool) bool { + for _, q := range page.Quotas { + if aws.StringValue(q.QuotaName) == quotaName { + serviceQuota = q + break + } + } + + return !lastPage + }) + + if err != nil { + return fmt.Errorf("error listing Service (%s) Quotas: %s", serviceCode, err) + } + + if serviceQuota == nil { + return fmt.Errorf("error finding Service (%s) Quota (%s): no results found", serviceCode, quotaName) + } + } + + d.Set("adjustable", serviceQuota.Adjustable) + d.Set("arn", serviceQuota.QuotaArn) + d.Set("global_quota", serviceQuota.GlobalQuota) + d.Set("quota_code", serviceQuota.QuotaCode) + d.Set("quota_name", serviceQuota.QuotaName) + d.Set("service_code", serviceQuota.ServiceCode) + d.Set("service_name", serviceQuota.ServiceName) + d.Set("value", serviceQuota.Value) + d.SetId(aws.StringValue(serviceQuota.QuotaArn)) + + return nil +} diff --git a/aws/data_source_aws_servicequotas_service_quota_test.go b/aws/data_source_aws_servicequotas_service_quota_test.go new file mode 100644 index 000000000000..aca7a1e00fd9 --- /dev/null +++ b/aws/data_source_aws_servicequotas_service_quota_test.go @@ -0,0 +1,75 @@ +package aws + +import ( + "fmt" + "regexp" + "testing" + + "github.com/hashicorp/terraform/helper/resource" +) + +func TestAccAwsServiceQuotasServiceQuotaDataSource_QuotaCode(t *testing.T) { + dataSourceName := "data.aws_servicequotas_service_quota.test" + + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + Steps: []resource.TestStep{ + { + Config: testAccAwsServiceQuotasServiceQuotaDataSourceConfigQuotaCode("vpc", "L-F678F1CE"), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr(dataSourceName, "adjustable", "true"), + testAccCheckResourceAttrRegionalARN(dataSourceName, "arn", "servicequotas", "vpc/L-F678F1CE"), + resource.TestCheckResourceAttr(dataSourceName, "global_quota", "false"), + resource.TestCheckResourceAttr(dataSourceName, "quota_code", "L-F678F1CE"), + resource.TestCheckResourceAttr(dataSourceName, "quota_name", "VPCs per Region"), + resource.TestCheckResourceAttr(dataSourceName, "service_code", "vpc"), + resource.TestCheckResourceAttr(dataSourceName, "service_name", "Amazon Virtual Private Cloud (Amazon VPC)"), + resource.TestMatchResourceAttr(dataSourceName, "value", regexp.MustCompile(`^\d+$`)), + ), + }, + }, + }) +} + +func TestAccAwsServiceQuotasServiceQuotaDataSource_QuotaName(t *testing.T) { + dataSourceName := "data.aws_servicequotas_service_quota.test" + + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + Steps: []resource.TestStep{ + { + Config: testAccAwsServiceQuotasServiceQuotaDataSourceConfigQuotaName("vpc", "VPCs per Region"), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr(dataSourceName, "adjustable", "true"), + testAccCheckResourceAttrRegionalARN(dataSourceName, "arn", "servicequotas", "vpc/L-F678F1CE"), + resource.TestCheckResourceAttr(dataSourceName, "global_quota", "false"), + resource.TestCheckResourceAttr(dataSourceName, "quota_code", "L-F678F1CE"), + resource.TestCheckResourceAttr(dataSourceName, "quota_name", "VPCs per Region"), + resource.TestCheckResourceAttr(dataSourceName, "service_code", "vpc"), + resource.TestCheckResourceAttr(dataSourceName, "service_name", "Amazon Virtual Private Cloud (Amazon VPC)"), + resource.TestMatchResourceAttr(dataSourceName, "value", regexp.MustCompile(`^\d+$`)), + ), + }, + }, + }) +} + +func testAccAwsServiceQuotasServiceQuotaDataSourceConfigQuotaCode(serviceCode, quotaCode string) string { + return fmt.Sprintf(` +data "aws_servicequotas_service_quota" "test" { + quota_code = %[1]q + service_code = %[2]q +} +`, quotaCode, serviceCode) +} + +func testAccAwsServiceQuotasServiceQuotaDataSourceConfigQuotaName(serviceCode, quotaName string) string { + return fmt.Sprintf(` +data "aws_servicequotas_service_quota" "test" { + quota_name = %[1]q + service_code = %[2]q +} +`, quotaName, serviceCode) +} diff --git a/aws/provider.go b/aws/provider.go index dbd7a04c0074..24082a86343b 100644 --- a/aws/provider.go +++ b/aws/provider.go @@ -253,6 +253,7 @@ func Provider() terraform.ResourceProvider { "aws_secretsmanager_secret": dataSourceAwsSecretsManagerSecret(), "aws_secretsmanager_secret_version": dataSourceAwsSecretsManagerSecretVersion(), "aws_servicequotas_service": dataSourceAwsServiceQuotasService(), + "aws_servicequotas_service_quota": dataSourceAwsServiceQuotasServiceQuota(), "aws_sns_topic": dataSourceAwsSnsTopic(), "aws_sqs_queue": dataSourceAwsSqsQueue(), "aws_ssm_document": dataSourceAwsSsmDocument(), diff --git a/website/aws.erb b/website/aws.erb index 76a726e942e4..9b07e17adc82 100644 --- a/website/aws.erb +++ b/website/aws.erb @@ -399,6 +399,9 @@
  • aws_servicequotas_service
  • +
  • + aws_servicequotas_service_quota +
  • aws_sns_topic
  • diff --git a/website/docs/d/servicequotas_service_quota.html.markdown b/website/docs/d/servicequotas_service_quota.html.markdown new file mode 100644 index 000000000000..9346a6d22f31 --- /dev/null +++ b/website/docs/d/servicequotas_service_quota.html.markdown @@ -0,0 +1,44 @@ +--- +layout: "aws" +page_title: "AWS: aws_servicequotas_service_quota" +sidebar_current: "docs-aws-datasource-servicequotas-service-quota" +description: |- + Retrieve information about a Service Quota +--- + +# Data Source: aws_servicequotas_service_quota + +Retrieve information about a Service Quota. + +## Example Usage + +```hcl +data "aws_servicequotas_service_quota" "by_quota_code" { + quota_code = "L-F678F1CE" + service_code = "vpc" +} + +data "aws_servicequotas_service_quota" "by_quota_name" { + quota_name = "VPCs per Region" + service_code = "vpc" +} +``` + +## Argument Reference + +~> *NOTE:* Either `quota_code` or `quota_name` must be configured. + +* `service_code` - (Required) Service code for the quota. Available values can be found with the [`aws_servicequotas_service` data source](/docs/providers/aws/d/servicequotas_service.html) or [AWS CLI service-quotas list-services command](https://docs.aws.amazon.com/cli/latest/reference/service-quotas/list-services.html). +* `quota_code` - (Optional) Quota code within the service. When configured, the data source directly looks up the service quota. Available values can be found with the [AWS CLI service-quotas list-service-quotas command](https://docs.aws.amazon.com/cli/latest/reference/service-quotas/list-service-quotas.html). +* `quota_name` - (Optional) Quota name within the service. When configured, the data source searches through all service quotas to find the matching quota name. Available values can be found with the [AWS CLI service-quotas list-service-quotas command](https://docs.aws.amazon.com/cli/latest/reference/service-quotas/list-service-quotas.html). + +## Attributes Reference + +In addition to all arguments above, the following attributes are exported: + +* `adjustable` - Whether the service quota is adjustable. +* `arn` - Amazon Resource Name (ARN) of the service quota. +* `global_quota` - Whether the service quota is global for the AWS account. +* `id` - Amazon Resource Name (ARN) of the service quota. +* `service_name` - Name of the service. +* `value` - Current value of the service quota. From b84a32d24e68b89777bca75116ea55b13d3f7d15 Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Thu, 27 Jun 2019 23:28:35 -0400 Subject: [PATCH 3/4] data-source/aws_servicequotas_service: go fmt --- aws/data_source_aws_servicequotas_service.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/aws/data_source_aws_servicequotas_service.go b/aws/data_source_aws_servicequotas_service.go index 3a30361ab3bb..0d05342bd1dc 100644 --- a/aws/data_source_aws_servicequotas_service.go +++ b/aws/data_source_aws_servicequotas_service.go @@ -10,7 +10,7 @@ import ( func dataSourceAwsServiceQuotasService() *schema.Resource { return &schema.Resource{ - Read: dataSourceAwsServiceQuotasServiceRead, + Read: dataSourceAwsServiceQuotasServiceRead, Schema: map[string]*schema.Schema{ "service_code": { @@ -25,7 +25,6 @@ func dataSourceAwsServiceQuotasService() *schema.Resource { } } - func dataSourceAwsServiceQuotasServiceRead(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).servicequotasconn From c1f11ab5ef0346822d08d5a050667bf9905425a9 Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Fri, 28 Jun 2019 01:33:44 -0400 Subject: [PATCH 4/4] data-source/aws_servicequotas_service_quota: Add default_value attribute Output from acceptance testing: ``` --- PASS: TestAccAwsServiceQuotasServiceQuotaDataSource_QuotaCode (10.98s) --- PASS: TestAccAwsServiceQuotasServiceQuotaDataSource_QuotaName (10.98s) ``` --- ..._source_aws_servicequotas_service_quota.go | 58 +++++++++++++------ ...ce_aws_servicequotas_service_quota_test.go | 2 + .../servicequotas_service_quota.html.markdown | 1 + 3 files changed, 43 insertions(+), 18 deletions(-) diff --git a/aws/data_source_aws_servicequotas_service_quota.go b/aws/data_source_aws_servicequotas_service_quota.go index 5eb2526fec8f..29e2e4f6f445 100644 --- a/aws/data_source_aws_servicequotas_service_quota.go +++ b/aws/data_source_aws_servicequotas_service_quota.go @@ -21,6 +21,10 @@ func dataSourceAwsServiceQuotasServiceQuota() *schema.Resource { Type: schema.TypeString, Computed: true, }, + "default_value": { + Type: schema.TypeFloat, + Computed: true, + }, "global_quota": { Type: schema.TypeBool, Computed: true, @@ -66,24 +70,7 @@ func dataSourceAwsServiceQuotasServiceQuotaRead(d *schema.ResourceData, meta int var serviceQuota *servicequotas.ServiceQuota - if quotaCode != "" { - input := &servicequotas.GetServiceQuotaInput{ - QuotaCode: aws.String(quotaCode), - ServiceCode: aws.String(serviceCode), - } - - output, err := conn.GetServiceQuota(input) - - if err != nil { - return fmt.Errorf("error getting Service (%s) Quota (%s): %s", serviceCode, quotaCode, err) - } - - if output == nil { - return fmt.Errorf("error getting Service (%s) Quota (%s): empty result", serviceCode, quotaCode) - } - - serviceQuota = output.Quota - } else { + if quotaCode == "" { input := &servicequotas.ListServiceQuotasInput{ ServiceCode: aws.String(serviceCode), } @@ -106,10 +93,45 @@ func dataSourceAwsServiceQuotasServiceQuotaRead(d *schema.ResourceData, meta int if serviceQuota == nil { return fmt.Errorf("error finding Service (%s) Quota (%s): no results found", serviceCode, quotaName) } + } else { + input := &servicequotas.GetServiceQuotaInput{ + QuotaCode: aws.String(quotaCode), + ServiceCode: aws.String(serviceCode), + } + + output, err := conn.GetServiceQuota(input) + + if err != nil { + return fmt.Errorf("error getting Service (%s) Quota (%s): %s", serviceCode, quotaCode, err) + } + + if output == nil { + return fmt.Errorf("error getting Service (%s) Quota (%s): empty result", serviceCode, quotaCode) + } + + serviceQuota = output.Quota } + input := &servicequotas.GetAWSDefaultServiceQuotaInput{ + QuotaCode: serviceQuota.QuotaCode, + ServiceCode: serviceQuota.ServiceCode, + } + + output, err := conn.GetAWSDefaultServiceQuota(input) + + if err != nil { + return fmt.Errorf("error getting Service (%s) Default Quota (%s): %s", serviceCode, aws.StringValue(serviceQuota.QuotaCode), err) + } + + if output == nil { + return fmt.Errorf("error getting Service (%s) Default Quota (%s): empty result", serviceCode, aws.StringValue(serviceQuota.QuotaCode)) + } + + defaultQuota := output.Quota + d.Set("adjustable", serviceQuota.Adjustable) d.Set("arn", serviceQuota.QuotaArn) + d.Set("default_value", defaultQuota.Value) d.Set("global_quota", serviceQuota.GlobalQuota) d.Set("quota_code", serviceQuota.QuotaCode) d.Set("quota_name", serviceQuota.QuotaName) diff --git a/aws/data_source_aws_servicequotas_service_quota_test.go b/aws/data_source_aws_servicequotas_service_quota_test.go index aca7a1e00fd9..a7a0167777ee 100644 --- a/aws/data_source_aws_servicequotas_service_quota_test.go +++ b/aws/data_source_aws_servicequotas_service_quota_test.go @@ -20,6 +20,7 @@ func TestAccAwsServiceQuotasServiceQuotaDataSource_QuotaCode(t *testing.T) { Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr(dataSourceName, "adjustable", "true"), testAccCheckResourceAttrRegionalARN(dataSourceName, "arn", "servicequotas", "vpc/L-F678F1CE"), + resource.TestCheckResourceAttr(dataSourceName, "default_value", "5"), resource.TestCheckResourceAttr(dataSourceName, "global_quota", "false"), resource.TestCheckResourceAttr(dataSourceName, "quota_code", "L-F678F1CE"), resource.TestCheckResourceAttr(dataSourceName, "quota_name", "VPCs per Region"), @@ -44,6 +45,7 @@ func TestAccAwsServiceQuotasServiceQuotaDataSource_QuotaName(t *testing.T) { Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr(dataSourceName, "adjustable", "true"), testAccCheckResourceAttrRegionalARN(dataSourceName, "arn", "servicequotas", "vpc/L-F678F1CE"), + resource.TestCheckResourceAttr(dataSourceName, "default_value", "5"), resource.TestCheckResourceAttr(dataSourceName, "global_quota", "false"), resource.TestCheckResourceAttr(dataSourceName, "quota_code", "L-F678F1CE"), resource.TestCheckResourceAttr(dataSourceName, "quota_name", "VPCs per Region"), diff --git a/website/docs/d/servicequotas_service_quota.html.markdown b/website/docs/d/servicequotas_service_quota.html.markdown index 9346a6d22f31..8d51afb0a7c3 100644 --- a/website/docs/d/servicequotas_service_quota.html.markdown +++ b/website/docs/d/servicequotas_service_quota.html.markdown @@ -38,6 +38,7 @@ In addition to all arguments above, the following attributes are exported: * `adjustable` - Whether the service quota is adjustable. * `arn` - Amazon Resource Name (ARN) of the service quota. +* `default_value` - Default value of the service quota. * `global_quota` - Whether the service quota is global for the AWS account. * `id` - Amazon Resource Name (ARN) of the service quota. * `service_name` - Name of the service.