diff --git a/internal/provider/provider.go b/internal/provider/provider.go index bc9edde328fa..89c43b0394af 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -2009,6 +2009,7 @@ func Provider() *schema.Provider { "aws_ssm_patch_baseline": ssm.ResourcePatchBaseline(), "aws_ssm_patch_group": ssm.ResourcePatchGroup(), "aws_ssm_resource_data_sync": ssm.ResourceResourceDataSync(), + "aws_ssm_service_setting": ssm.ResourceServiceSetting(), "aws_ssoadmin_account_assignment": ssoadmin.ResourceAccountAssignment(), "aws_ssoadmin_managed_policy_attachment": ssoadmin.ResourceManagedPolicyAttachment(), diff --git a/internal/service/ssm/service_setting.go b/internal/service/ssm/service_setting.go index c33d03c8bb1b..4a44ebc6fab6 100644 --- a/internal/service/ssm/service_setting.go +++ b/internal/service/ssm/service_setting.go @@ -1,4 +1,4 @@ -package aws +package ssm import ( "fmt" @@ -7,15 +7,16 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/ssm" - "github.com/hashicorp/terraform-plugin-sdk/helper/schema" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/hashicorp/terraform-provider-aws/internal/conns" ) -func resourceAwsSsmServiceSetting() *schema.Resource { +func ResourceServiceSetting() *schema.Resource { return &schema.Resource{ - Create: resourceAwsSsmServiceSettingUpdate, - Read: resourceAwsSsmServiceSettingRead, - Update: resourceAwsSsmServiceSettingUpdate, - Delete: resourceAwsSsmServiceSettingReset, + Create: resourceServiceSettingUpdate, + Read: resourceServiceSettingRead, + Update: resourceServiceSettingUpdate, + Delete: resourceServiceSettingReset, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, @@ -49,8 +50,8 @@ func resourceAwsSsmServiceSetting() *schema.Resource { } } -func resourceAwsSsmServiceSettingUpdate(d *schema.ResourceData, meta interface{}) error { - ssmconn := meta.(*AWSClient).ssmconn +func resourceServiceSettingUpdate(d *schema.ResourceData, meta interface{}) error { + ssmconn := meta.(*conns.AWSClient).SSMConn log.Printf("[DEBUG] SSM service setting create: %s", d.Id()) @@ -65,11 +66,11 @@ func resourceAwsSsmServiceSettingUpdate(d *schema.ResourceData, meta interface{} d.SetId(d.Get("setting_id").(string)) - return resourceAwsSsmServiceSettingRead(d, meta) + return resourceServiceSettingRead(d, meta) } -func resourceAwsSsmServiceSettingRead(d *schema.ResourceData, meta interface{}) error { - ssmconn := meta.(*AWSClient).ssmconn +func resourceServiceSettingRead(d *schema.ResourceData, meta interface{}) error { + ssmconn := meta.(*conns.AWSClient).SSMConn log.Printf("[DEBUG] Reading SSM Activation: %s", d.Id()) @@ -96,8 +97,8 @@ func resourceAwsSsmServiceSettingRead(d *schema.ResourceData, meta interface{}) return nil } -func resourceAwsSsmServiceSettingReset(d *schema.ResourceData, meta interface{}) error { - ssmconn := meta.(*AWSClient).ssmconn +func resourceServiceSettingReset(d *schema.ResourceData, meta interface{}) error { + ssmconn := meta.(*conns.AWSClient).SSMConn log.Printf("[DEBUG] Deleting SSM Service Setting: %s", d.Id()) diff --git a/internal/service/ssm/service_setting_test.go b/internal/service/ssm/service_setting_test.go index 98bf3ce7e419..c313018dbdf2 100644 --- a/internal/service/ssm/service_setting_test.go +++ b/internal/service/ssm/service_setting_test.go @@ -1,4 +1,4 @@ -package aws +package ssm_test import ( "fmt" @@ -9,11 +9,13 @@ import ( "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/ssm" "github.com/aws/aws-sdk-go/service/sts" - "github.com/hashicorp/terraform-plugin-sdk/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/terraform" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/hashicorp/terraform-provider-aws/internal/acctest" + "github.com/hashicorp/terraform-provider-aws/internal/conns" ) -func TestAccAWSSSMServiceSetting_basic(t *testing.T) { +func TestAccSSMServiceSetting_basic(t *testing.T) { var setting ssm.GetServiceSettingOutput resourceName := "aws_ssm_service_setting.test" awsSession := session.New() @@ -21,14 +23,15 @@ func TestAccAWSSSMServiceSetting_basic(t *testing.T) { result, _ := stssvc.GetCallerIdentity(&sts.GetCallerIdentityInput{}) resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { testAccPreCheck(t) }, - Providers: testAccProviders, - CheckDestroy: testAccCheckAWSSSMServiceSettingDestroy, + PreCheck: func() { acctest.PreCheck(t) }, + ErrorCheck: acctest.ErrorCheck(t, ssm.EndpointsID), + ProviderFactories: acctest.ProviderFactories, + CheckDestroy: testAccServiceSettingDestroy, Steps: []resource.TestStep{ { - Config: testAccAWSSSMServiceSetting(aws.StringValue(result.Account), aws.StringValue(awsSession.Config.Region), "false"), + Config: testAccServiceSettingConfig_basic(aws.StringValue(result.Account), aws.StringValue(awsSession.Config.Region), "false"), Check: resource.ComposeTestCheckFunc( - testAccCheckAWSSSMServiceSettingExists(resourceName, &setting), + testAccServiceSettingExists(resourceName, &setting), resource.TestCheckResourceAttr(resourceName, "setting_value", "false"), ), }, @@ -38,9 +41,9 @@ func TestAccAWSSSMServiceSetting_basic(t *testing.T) { ImportStateVerify: true, }, { - Config: testAccAWSSSMServiceSetting(aws.StringValue(result.Account), aws.StringValue(awsSession.Config.Region), "true"), + Config: testAccServiceSettingConfig_basic(aws.StringValue(result.Account), aws.StringValue(awsSession.Config.Region), "true"), Check: resource.ComposeTestCheckFunc( - testAccCheckAWSSSMServiceSettingExists(resourceName, &setting), + testAccServiceSettingExists(resourceName, &setting), resource.TestCheckResourceAttr(resourceName, "setting_value", "true"), ), }, @@ -48,8 +51,8 @@ func TestAccAWSSSMServiceSetting_basic(t *testing.T) { }) } -func testAccCheckAWSSSMServiceSettingDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*AWSClient).ssmconn +func testAccServiceSettingDestroy(s *terraform.State) error { + conn := acctest.Provider.Meta().(*conns.AWSClient).SSMConn for _, rs := range s.RootModule().Resources { if rs.Type != "aws_ssm_service_setting" { @@ -71,14 +74,14 @@ func testAccCheckAWSSSMServiceSettingDestroy(s *terraform.State) error { return nil } -func testAccCheckAWSSSMServiceSettingExists(n string, res *ssm.GetServiceSettingOutput) resource.TestCheckFunc { +func testAccServiceSettingExists(n string, res *ssm.GetServiceSettingOutput) resource.TestCheckFunc { return func(s *terraform.State) error { rs, ok := s.RootModule().Resources[n] if !ok { return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*AWSClient).ssmconn + conn := acctest.Provider.Meta().(*conns.AWSClient).SSMConn resp, err := conn.GetServiceSetting(&ssm.GetServiceSettingInput{ SettingId: aws.String(rs.Primary.Attributes["setting_id"]), @@ -93,13 +96,15 @@ func testAccCheckAWSSSMServiceSettingExists(n string, res *ssm.GetServiceSetting } } -func testAccAWSSSMServiceSetting(accountID, region, value string) string { +func testAccServiceSettingConfig_basic(accountID, region, value string) string { return fmt.Sprintf(testSettingTemplate, region, accountID, value) } const testSettingTemplate = ` +data "aws_partition" "current" {} + resource "aws_ssm_service_setting" "test" { - setting_id = "arn:aws:ssm:%s:%s:servicesetting/ssm/parameter-store/high-throughput-enabled" - setting_value = "%s" + setting_id = "arn:${data.aws_partition.current.partition}:ssm:%s:%s:servicesetting/ssm/parameter-store/high-throughput-enabled" + setting_value = "%s" } ` diff --git a/website/ssm_service_setting.markdown b/website/docs/r/ssm_service_setting.html.markdown similarity index 96% rename from website/ssm_service_setting.markdown rename to website/docs/r/ssm_service_setting.html.markdown index 0a06ad56f67b..5b5158b7580b 100644 --- a/website/ssm_service_setting.markdown +++ b/website/docs/r/ssm_service_setting.html.markdown @@ -1,5 +1,5 @@ --- -subcategory: "SSM" +subcategory: "SSM (Systems Manager)" layout: "aws" page_title: "AWS: aws_ssm_service_setting" description: |- @@ -12,7 +12,7 @@ Defines how a user interacts with or uses a service or a feature of a SSM servic ## Example Usage -```hcl +```terraform resource "aws_ssm_service_setting" "test_setting" { service_id = "arn:aws:ssm:us-east-1:123456789012:servicesetting/ssm/parameter-store/high-throughput-enabled" service_value = "true"