From 0a4bd08dbc9e5c571a81658054705e30199afde0 Mon Sep 17 00:00:00 2001 From: drfaust92 Date: Sun, 6 Feb 2022 00:46:26 +0200 Subject: [PATCH 1/4] build import and object version --- internal/service/gamelift/build.go | 115 ++++++++++---------- internal/service/gamelift/build_test.go | 89 +++++++-------- internal/service/gamelift/find.go | 34 ++++++ internal/service/gamelift/status.go | 24 ++++ internal/service/gamelift/wait.go | 29 +++++ website/docs/r/gamelift_build.html.markdown | 9 +- 6 files changed, 187 insertions(+), 113 deletions(-) create mode 100644 internal/service/gamelift/find.go create mode 100644 internal/service/gamelift/status.go create mode 100644 internal/service/gamelift/wait.go diff --git a/internal/service/gamelift/build.go b/internal/service/gamelift/build.go index 3d9a2e388cf0..0c0879a51cc9 100644 --- a/internal/service/gamelift/build.go +++ b/internal/service/gamelift/build.go @@ -3,7 +3,6 @@ package gamelift import ( "fmt" "log" - "time" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/gamelift" @@ -12,6 +11,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" "github.com/hashicorp/terraform-provider-aws/internal/conns" + tfiam "github.com/hashicorp/terraform-provider-aws/internal/service/iam" tftags "github.com/hashicorp/terraform-provider-aws/internal/tags" "github.com/hashicorp/terraform-provider-aws/internal/tfresource" "github.com/hashicorp/terraform-provider-aws/internal/verify" @@ -23,8 +23,15 @@ func ResourceBuild() *schema.Resource { Read: resourceBuildRead, Update: resourceBuildUpdate, Delete: resourceBuildDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, Schema: map[string]*schema.Schema{ + "arn": { + Type: schema.TypeString, + Computed: true, + }, "name": { Type: schema.TypeString, Required: true, @@ -53,6 +60,11 @@ func ResourceBuild() *schema.Resource { Required: true, ForceNew: true, }, + "object_version": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, "role_arn": { Type: schema.TypeString, Required: true, @@ -67,12 +79,7 @@ func ResourceBuild() *schema.Resource { Optional: true, ValidateFunc: validation.StringLenBetween(1, 1024), }, - "arn": { - Type: schema.TypeString, - Computed: true, - }, - "tags": tftags.TagsSchema(), - + "tags": tftags.TagsSchema(), "tags_all": tftags.TagsSchemaComputed(), }, @@ -85,19 +92,20 @@ func resourceBuildCreate(d *schema.ResourceData, meta interface{}) error { defaultTagsConfig := meta.(*conns.AWSClient).DefaultTagsConfig tags := defaultTagsConfig.MergeTags(tftags.New(d.Get("tags").(map[string]interface{}))) - sl := expandGameliftStorageLocation(d.Get("storage_location").([]interface{})) input := gamelift.CreateBuildInput{ Name: aws.String(d.Get("name").(string)), OperatingSystem: aws.String(d.Get("operating_system").(string)), - StorageLocation: sl, + StorageLocation: expandGameliftStorageLocation(d.Get("storage_location").([]interface{})), Tags: Tags(tags.IgnoreAWS()), } + if v, ok := d.GetOk("version"); ok { input.Version = aws.String(v.(string)) } + log.Printf("[INFO] Creating Gamelift Build: %s", input) var out *gamelift.CreateBuildOutput - err := resource.Retry(30*time.Second, func() *resource.RetryError { + err := resource.Retry(tfiam.PropagationTimeout, func() *resource.RetryError { var err error out, err = conn.CreateBuild(&input) if err != nil { @@ -112,29 +120,13 @@ func resourceBuildCreate(d *schema.ResourceData, meta interface{}) error { out, err = conn.CreateBuild(&input) } if err != nil { - return fmt.Errorf("Error creating Gamelift build client: %s", err) + return fmt.Errorf("Error creating Gamelift build client: %w", err) } d.SetId(aws.StringValue(out.Build.BuildId)) - stateConf := resource.StateChangeConf{ - Pending: []string{gamelift.BuildStatusInitialized}, - Target: []string{gamelift.BuildStatusReady}, - Timeout: 1 * time.Minute, - Refresh: func() (interface{}, string, error) { - out, err := conn.DescribeBuild(&gamelift.DescribeBuildInput{ - BuildId: aws.String(d.Id()), - }) - if err != nil { - return 42, "", err - } - - return out, *out.Build.Status, nil - }, - } - _, err = stateConf.WaitForState() - if err != nil { - return err + if _, err := waitBuildReady(conn, d.Id()); err != nil { + return fmt.Errorf("error waiting for GameLift Build (%s) to ready: %w", d.Id(), err) } return resourceBuildRead(d, meta) @@ -146,29 +138,27 @@ func resourceBuildRead(d *schema.ResourceData, meta interface{}) error { ignoreTagsConfig := meta.(*conns.AWSClient).IgnoreTagsConfig log.Printf("[INFO] Reading Gamelift Build: %s", d.Id()) - out, err := conn.DescribeBuild(&gamelift.DescribeBuildInput{ - BuildId: aws.String(d.Id()), - }) + build, err := FindBuildByID(conn, d.Id()) + if !d.IsNewResource() && tfresource.NotFound(err) { + log.Printf("[WARN] GameLift Build (%s) not found, removing from state", d.Id()) + d.SetId("") + return nil + } + if err != nil { - if tfawserr.ErrMessageContains(err, gamelift.ErrCodeNotFoundException, "") { - log.Printf("[WARN] Gamelift Build (%s) not found, removing from state", d.Id()) - d.SetId("") - return nil - } - return err + return fmt.Errorf("error reading GameLift Build (%s): %w", d.Id(), err) } - b := out.Build - d.Set("name", b.Name) - d.Set("operating_system", b.OperatingSystem) - d.Set("version", b.Version) + d.Set("name", build.Name) + d.Set("operating_system", build.OperatingSystem) + d.Set("version", build.Version) - arn := aws.StringValue(b.BuildArn) + arn := aws.StringValue(build.BuildArn) d.Set("arn", arn) tags, err := ListTags(conn, arn) if err != nil { - return fmt.Errorf("error listing tags for Game Lift Build (%s): %s", arn, err) + return fmt.Errorf("error listing tags for Game Lift Build (%s): %w", arn, err) } tags = tags.IgnoreAWS().IgnoreConfig(ignoreTagsConfig) @@ -188,26 +178,28 @@ func resourceBuildRead(d *schema.ResourceData, meta interface{}) error { func resourceBuildUpdate(d *schema.ResourceData, meta interface{}) error { conn := meta.(*conns.AWSClient).GameLiftConn - log.Printf("[INFO] Updating Gamelift Build: %s", d.Id()) - input := gamelift.UpdateBuildInput{ - BuildId: aws.String(d.Id()), - Name: aws.String(d.Get("name").(string)), - } - if v, ok := d.GetOk("version"); ok { - input.Version = aws.String(v.(string)) - } + if d.HasChangesExcept("tags", "tags_all") { + log.Printf("[INFO] Updating Gamelift Build: %s", d.Id()) + input := gamelift.UpdateBuildInput{ + BuildId: aws.String(d.Id()), + Name: aws.String(d.Get("name").(string)), + } + if v, ok := d.GetOk("version"); ok { + input.Version = aws.String(v.(string)) + } - _, err := conn.UpdateBuild(&input) - if err != nil { - return err + _, err := conn.UpdateBuild(&input) + if err != nil { + return fmt.Errorf("Error updating Gamelift build client: %w", err) + } } - arn := d.Get("arn").(string) if d.HasChange("tags_all") { + arn := d.Get("arn").(string) o, n := d.GetChange("tags_all") if err := UpdateTags(conn, arn, o, n); err != nil { - return fmt.Errorf("error updating Game Lift Build (%s) tags: %s", arn, err) + return fmt.Errorf("error updating Game Lift Build (%s) tags: %w", arn, err) } } @@ -226,9 +218,16 @@ func resourceBuildDelete(d *schema.ResourceData, meta interface{}) error { func expandGameliftStorageLocation(cfg []interface{}) *gamelift.S3Location { loc := cfg[0].(map[string]interface{}) - return &gamelift.S3Location{ + + location := &gamelift.S3Location{ Bucket: aws.String(loc["bucket"].(string)), Key: aws.String(loc["key"].(string)), RoleArn: aws.String(loc["role_arn"].(string)), } + + if v, ok := loc["object_version"].(string); ok && v != "" { + location.ObjectVersion = aws.String(v) + } + + return location } diff --git a/internal/service/gamelift/build_test.go b/internal/service/gamelift/build_test.go index 9763833b01a1..f2b164902bbf 100644 --- a/internal/service/gamelift/build_test.go +++ b/internal/service/gamelift/build_test.go @@ -7,25 +7,21 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/gamelift" - "github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2/tfawserr" sdkacctest "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest" "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" + tfgamelift "github.com/hashicorp/terraform-provider-aws/internal/service/gamelift" "github.com/hashicorp/terraform-provider-aws/internal/tfresource" ) -const testAccGameliftBuildPrefix = "tf_acc_build_" - func TestAccGameLiftBuild_basic(t *testing.T) { var conf gamelift.Build - - rString := sdkacctest.RandString(8) resourceName := "aws_gamelift_build.test" - buildName := fmt.Sprintf("%s_%s", testAccGameliftBuildPrefix, rString) - uBuildName := fmt.Sprintf("%s_updated_%s", testAccGameliftBuildPrefix, rString) + rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix) + rNameUpdated := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix) region := acctest.Region() g, err := testAccSampleGame(region) @@ -54,10 +50,10 @@ func TestAccGameLiftBuild_basic(t *testing.T) { CheckDestroy: testAccCheckBuildDestroy, Steps: []resource.TestStep{ { - Config: testAccBuildBasicConfig(buildName, bucketName, key, roleArn), + Config: testAccBuildBasicConfig(rName, bucketName, key, roleArn), Check: resource.ComposeTestCheckFunc( testAccCheckBuildExists(resourceName, &conf), - resource.TestCheckResourceAttr(resourceName, "name", buildName), + resource.TestCheckResourceAttr(resourceName, "name", rName), acctest.MatchResourceAttrRegionalARN(resourceName, "arn", "gamelift", regexp.MustCompile(`build/build-.+`)), resource.TestCheckResourceAttr(resourceName, "operating_system", "WINDOWS_2012"), resource.TestCheckResourceAttr(resourceName, "storage_location.#", "1"), @@ -68,10 +64,16 @@ func TestAccGameLiftBuild_basic(t *testing.T) { ), }, { - Config: testAccBuildBasicConfig(uBuildName, bucketName, key, roleArn), + ResourceName: resourceName, + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{"storage_location"}, + }, + { + Config: testAccBuildBasicConfig(rNameUpdated, bucketName, key, roleArn), Check: resource.ComposeTestCheckFunc( testAccCheckBuildExists(resourceName, &conf), - resource.TestCheckResourceAttr(resourceName, "name", uBuildName), + resource.TestCheckResourceAttr(resourceName, "name", rNameUpdated), acctest.MatchResourceAttrRegionalARN(resourceName, "arn", "gamelift", regexp.MustCompile(`build/build-.+`)), resource.TestCheckResourceAttr(resourceName, "operating_system", "WINDOWS_2012"), resource.TestCheckResourceAttr(resourceName, "storage_location.#", "1"), @@ -88,10 +90,9 @@ func TestAccGameLiftBuild_basic(t *testing.T) { func TestAccGameLiftBuild_tags(t *testing.T) { var conf gamelift.Build - rString := sdkacctest.RandString(8) + rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix) resourceName := "aws_gamelift_build.test" - buildName := fmt.Sprintf("%s_%s", testAccGameliftBuildPrefix, rString) region := acctest.Region() g, err := testAccSampleGame(region) @@ -119,7 +120,7 @@ func TestAccGameLiftBuild_tags(t *testing.T) { CheckDestroy: testAccCheckBuildDestroy, Steps: []resource.TestStep{ { - Config: testAccBuildBasicTags1Config(buildName, bucketName, key, roleArn, "key1", "value1"), + Config: testAccBuildBasicTags1Config(rName, bucketName, key, roleArn, "key1", "value1"), Check: resource.ComposeTestCheckFunc( testAccCheckBuildExists(resourceName, &conf), resource.TestCheckResourceAttr(resourceName, "tags.%", "1"), @@ -127,7 +128,13 @@ func TestAccGameLiftBuild_tags(t *testing.T) { ), }, { - Config: testAccBuildBasicTags2Config(buildName, bucketName, key, roleArn, "key1", "value1updated", "key2", "value2"), + ResourceName: resourceName, + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{"storage_location"}, + }, + { + Config: testAccBuildBasicTags2Config(rName, bucketName, key, roleArn, "key1", "value1updated", "key2", "value2"), Check: resource.ComposeTestCheckFunc( testAccCheckBuildExists(resourceName, &conf), resource.TestCheckResourceAttr(resourceName, "tags.%", "2"), @@ -136,7 +143,7 @@ func TestAccGameLiftBuild_tags(t *testing.T) { ), }, { - Config: testAccBuildBasicTags1Config(buildName, bucketName, key, roleArn, "key2", "value2"), + Config: testAccBuildBasicTags1Config(rName, bucketName, key, roleArn, "key2", "value2"), Check: resource.ComposeTestCheckFunc( testAccCheckBuildExists(resourceName, &conf), resource.TestCheckResourceAttr(resourceName, "tags.%", "1"), @@ -150,11 +157,9 @@ func TestAccGameLiftBuild_tags(t *testing.T) { func TestAccGameLiftBuild_disappears(t *testing.T) { var conf gamelift.Build - rString := sdkacctest.RandString(8) + rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix) resourceName := "aws_gamelift_build.test" - buildName := fmt.Sprintf("%s_%s", testAccGameliftBuildPrefix, rString) - region := acctest.Region() g, err := testAccSampleGame(region) @@ -182,10 +187,11 @@ func TestAccGameLiftBuild_disappears(t *testing.T) { CheckDestroy: testAccCheckBuildDestroy, Steps: []resource.TestStep{ { - Config: testAccBuildBasicConfig(buildName, bucketName, key, roleArn), + Config: testAccBuildBasicConfig(rName, bucketName, key, roleArn), Check: resource.ComposeTestCheckFunc( testAccCheckBuildExists(resourceName, &conf), - testAccCheckBuildDisappears(&conf), + acctest.CheckResourceDisappears(acctest.Provider, tfgamelift.ResourceBuild(), resourceName), + acctest.CheckResourceDisappears(acctest.Provider, tfgamelift.ResourceBuild(), resourceName), ), ExpectNonEmptyPlan: true, }, @@ -206,37 +212,21 @@ func testAccCheckBuildExists(n string, res *gamelift.Build) resource.TestCheckFu conn := acctest.Provider.Meta().(*conns.AWSClient).GameLiftConn - req := &gamelift.DescribeBuildInput{ - BuildId: aws.String(rs.Primary.ID), - } - out, err := conn.DescribeBuild(req) + build, err := tfgamelift.FindBuildByID(conn, rs.Primary.ID) if err != nil { return err } - b := out.Build - - if *b.BuildId != rs.Primary.ID { + if aws.StringValue(build.BuildId) != rs.Primary.ID { return fmt.Errorf("Gamelift Build not found") } - *res = *b + *res = *build return nil } } -func testAccCheckBuildDisappears(res *gamelift.Build) resource.TestCheckFunc { - return func(s *terraform.State) error { - conn := acctest.Provider.Meta().(*conns.AWSClient).GameLiftConn - - input := &gamelift.DeleteBuildInput{BuildId: res.BuildId} - - _, err := conn.DeleteBuild(input) - return err - } -} - func testAccCheckBuildDestroy(s *terraform.State) error { conn := acctest.Provider.Meta().(*conns.AWSClient).GameLiftConn @@ -245,20 +235,15 @@ func testAccCheckBuildDestroy(s *terraform.State) error { continue } - req := gamelift.DescribeBuildInput{ - BuildId: aws.String(rs.Primary.ID), - } - out, err := conn.DescribeBuild(&req) - if err == nil { - if *out.Build.BuildId == rs.Primary.ID { - return fmt.Errorf("Gamelift Build still exists") - } - } - if tfawserr.ErrMessageContains(err, gamelift.ErrCodeNotFoundException, "") { - return nil + build, err := tfgamelift.FindBuildByID(conn, rs.Primary.ID) + + if tfresource.NotFound(err) { + continue } - return err + if build != nil { + return fmt.Errorf("GameLift Build (%s) still exists", rs.Primary.ID) + } } return nil diff --git a/internal/service/gamelift/find.go b/internal/service/gamelift/find.go new file mode 100644 index 000000000000..4f5f31c7053a --- /dev/null +++ b/internal/service/gamelift/find.go @@ -0,0 +1,34 @@ +package gamelift + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/gamelift" + "github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2/tfawserr" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-aws/internal/tfresource" +) + +func FindBuildByID(conn *gamelift.GameLift, id string) (*gamelift.Build, error) { + input := &gamelift.DescribeBuildInput{ + BuildId: aws.String(id), + } + + output, err := conn.DescribeBuild(input) + + if tfawserr.ErrCodeEquals(err, gamelift.ErrCodeNotFoundException) { + return nil, &resource.NotFoundError{ + LastError: err, + LastRequest: input, + } + } + + if err != nil { + return nil, err + } + + if output == nil || output.Build == nil { + return nil, tfresource.NewEmptyResultError(input) + } + + return output.Build, nil +} diff --git a/internal/service/gamelift/status.go b/internal/service/gamelift/status.go new file mode 100644 index 000000000000..6f05fb6dfaee --- /dev/null +++ b/internal/service/gamelift/status.go @@ -0,0 +1,24 @@ +package gamelift + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/gamelift" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-provider-aws/internal/tfresource" +) + +func statusBuild(conn *gamelift.GameLift, id string) resource.StateRefreshFunc { + return func() (interface{}, string, error) { + output, err := FindBuildByID(conn, id) + + if tfresource.NotFound(err) { + return nil, "", nil + } + + if err != nil { + return nil, "", err + } + + return output, aws.StringValue(output.Status), nil + } +} diff --git a/internal/service/gamelift/wait.go b/internal/service/gamelift/wait.go new file mode 100644 index 000000000000..ca9bba5a5d68 --- /dev/null +++ b/internal/service/gamelift/wait.go @@ -0,0 +1,29 @@ +package gamelift + +import ( + "time" + + "github.com/aws/aws-sdk-go/service/gamelift" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" +) + +const ( + buildReadyTimeout = 1 * time.Minute +) + +func waitBuildReady(conn *gamelift.GameLift, id string) (*gamelift.Build, error) { //nolint:unparam + stateConf := &resource.StateChangeConf{ + Pending: []string{gamelift.BuildStatusInitialized}, + Target: []string{gamelift.BuildStatusReady}, + Refresh: statusBuild(conn, id), + Timeout: buildReadyTimeout, + } + + outputRaw, err := stateConf.WaitForState() + + if output, ok := outputRaw.(*gamelift.Build); ok { + return output, err + } + + return nil, err +} diff --git a/website/docs/r/gamelift_build.html.markdown b/website/docs/r/gamelift_build.html.markdown index a2508fd1b49f..6051ff623e85 100644 --- a/website/docs/r/gamelift_build.html.markdown +++ b/website/docs/r/gamelift_build.html.markdown @@ -22,8 +22,6 @@ resource "aws_gamelift_build" "test" { key = aws_s3_object.test.key role_arn = aws_iam_role.test.arn } - - depends_on = [aws_iam_role_policy.test] } ``` @@ -44,6 +42,7 @@ The following arguments are supported: * `bucket` - (Required) Name of your S3 bucket. * `key` - (Required) Name of the zip file containing your build files. * `role_arn` - (Required) ARN of the access role that allows Amazon GameLift to access your S3 bucket. +* `object_version` - (Optional) A specific version of the file. If not set, the latest version of the file is retrieved. ## Attributes Reference @@ -55,4 +54,8 @@ In addition to all arguments above, the following attributes are exported: ## Import -Gamelift Builds cannot be imported at this time. +Gamelift Builds can be imported using the ID, e.g., + +``` +$ terraform import aws_gamelift_build.example +``` \ No newline at end of file From 1e1850f6ef0835e13eb50d56620b9b653b91d466 Mon Sep 17 00:00:00 2001 From: drfaust92 Date: Sun, 6 Feb 2022 00:52:07 +0200 Subject: [PATCH 2/4] changelog --- .changelog/22966.txt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changelog/22966.txt diff --git a/.changelog/22966.txt b/.changelog/22966.txt new file mode 100644 index 000000000000..6d372bff6efe --- /dev/null +++ b/.changelog/22966.txt @@ -0,0 +1,6 @@ +```release-note:enhancement +resource/aws_gamelift_build: Add import support +``` +```release-note:enhancement +resource/aws_gamelift_build: Add `object_version` argument to `storage_location` block. +``` \ No newline at end of file From f2a7202a60f585093d37a8e07ed97f85760f424a Mon Sep 17 00:00:00 2001 From: drfaust92 Date: Sun, 6 Feb 2022 00:54:40 +0200 Subject: [PATCH 3/4] wait for iam --- internal/service/gamelift/build.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/service/gamelift/build.go b/internal/service/gamelift/build.go index 0c0879a51cc9..5eb0cc9588a2 100644 --- a/internal/service/gamelift/build.go +++ b/internal/service/gamelift/build.go @@ -109,7 +109,8 @@ func resourceBuildCreate(d *schema.ResourceData, meta interface{}) error { var err error out, err = conn.CreateBuild(&input) if err != nil { - if tfawserr.ErrMessageContains(err, gamelift.ErrCodeInvalidRequestException, "Provided build is not accessible.") { + if tfawserr.ErrMessageContains(err, gamelift.ErrCodeInvalidRequestException, "Provided build is not accessible.") || + tfawserr.ErrMessageContains(err, gamelift.ErrCodeInvalidRequestException, "GameLift cannot assume the role") { return resource.RetryableError(err) } return resource.NonRetryableError(err) From 8543e18f48d6f0b0413f7ba76bd1fc7ba1b8ce34 Mon Sep 17 00:00:00 2001 From: Ilia Lazebnik Date: Sun, 6 Feb 2022 01:48:59 +0200 Subject: [PATCH 4/4] Update wait.go --- internal/service/gamelift/wait.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/service/gamelift/wait.go b/internal/service/gamelift/wait.go index ca9bba5a5d68..8847c1310756 100644 --- a/internal/service/gamelift/wait.go +++ b/internal/service/gamelift/wait.go @@ -11,7 +11,7 @@ const ( buildReadyTimeout = 1 * time.Minute ) -func waitBuildReady(conn *gamelift.GameLift, id string) (*gamelift.Build, error) { //nolint:unparam +func waitBuildReady(conn *gamelift.GameLift, id string) (*gamelift.Build, error) { stateConf := &resource.StateChangeConf{ Pending: []string{gamelift.BuildStatusInitialized}, Target: []string{gamelift.BuildStatusReady},